From 9d91a6965caa366b35c5fea70cb610d37b0301b4 Mon Sep 17 00:00:00 2001 From: Joe Porpeglia Date: Fri, 4 Feb 2022 16:43:40 -0500 Subject: [PATCH] Fix api reports Signed-off-by: Joe Porpeglia --- plugins/permission-common/api-report.md | 30 ++++++++++++++------ plugins/permission-common/src/types/api.ts | 15 ++++++++-- plugins/permission-common/src/types/index.ts | 1 + 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/plugins/permission-common/api-report.md b/plugins/permission-common/api-report.md index 30a67e8c8b..8ac9559861 100644 --- a/plugins/permission-common/api-report.md +++ b/plugins/permission-common/api-report.md @@ -5,6 +5,16 @@ ```ts import { Config } from '@backstage/config'; +// @public +export type AllOfCriteria = { + allOf: NonEmptyArray>; +}; + +// @public +export type AnyOfCriteria = { + anyOf: NonEmptyArray>; +}; + // @public export type AuthorizeDecision = | { @@ -65,6 +75,14 @@ export function isReadPermission(permission: Permission): boolean; // @public export function isUpdatePermission(permission: Permission): boolean; +// @public +export type NonEmptyArray = [T, ...T[]]; + +// @public +export type NotCriteria = { + not: PermissionCriteria; +}; + // @public export type Permission = { name: string; @@ -103,14 +121,8 @@ export type PermissionCondition = { // @public export type PermissionCriteria = - | { - allOf: PermissionCriteria[]; - } - | { - anyOf: PermissionCriteria[]; - } - | { - not: PermissionCriteria; - } + | AllOfCriteria + | AnyOfCriteria + | NotCriteria | TQuery; ``` diff --git a/plugins/permission-common/src/types/api.ts b/plugins/permission-common/src/types/api.ts index cf1cdd403e..5d526e0c01 100644 --- a/plugins/permission-common/src/types/api.ts +++ b/plugins/permission-common/src/types/api.ts @@ -74,19 +74,30 @@ export type PermissionCondition = { /** * Utility type to represent an array with 1 or more elements. - * - * @private + * @public */ export type NonEmptyArray = [T, ...T[]]; +/** + * Represnts a logical AND for the provided criteria. + * @public + */ export type AllOfCriteria = { allOf: NonEmptyArray>; }; +/** + * Represnts a logical OR for the provided criteria. + * @public + */ export type AnyOfCriteria = { anyOf: NonEmptyArray>; }; +/** + * Represents a negation of the provided criteria. + * @public + */ export type NotCriteria = { not: PermissionCriteria; }; diff --git a/plugins/permission-common/src/types/index.ts b/plugins/permission-common/src/types/index.ts index fa98de73f1..28c21ec9f5 100644 --- a/plugins/permission-common/src/types/index.ts +++ b/plugins/permission-common/src/types/index.ts @@ -26,6 +26,7 @@ export type { AllOfCriteria, AnyOfCriteria, NotCriteria, + NonEmptyArray, } from './api'; export type { DiscoveryApi } from './discovery'; export type {