@xemahq/contracts 0.31.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.source-stamp.json +2 -2
- package/dist/authorization-facts/index.d.ts +6 -0
- package/dist/authorization-facts/index.d.ts.map +1 -0
- package/dist/authorization-facts/index.js +22 -0
- package/dist/authorization-facts/index.js.map +1 -0
- package/dist/authorization-facts/lib/fact-tuple.d.ts +38 -0
- package/dist/authorization-facts/lib/fact-tuple.d.ts.map +1 -0
- package/dist/authorization-facts/lib/fact-tuple.js +48 -0
- package/dist/authorization-facts/lib/fact-tuple.js.map +1 -0
- package/dist/authorization-facts/lib/facts-apply.d.ts +244 -0
- package/dist/authorization-facts/lib/facts-apply.d.ts.map +1 -0
- package/dist/authorization-facts/lib/facts-apply.js +141 -0
- package/dist/authorization-facts/lib/facts-apply.js.map +1 -0
- package/dist/authorization-facts/lib/facts-snapshot.d.ts +70 -0
- package/dist/authorization-facts/lib/facts-snapshot.d.ts.map +1 -0
- package/dist/authorization-facts/lib/facts-snapshot.js +39 -0
- package/dist/authorization-facts/lib/facts-snapshot.js.map +1 -0
- package/dist/authorization-facts/lib/facts-writer-authority.d.ts +15 -0
- package/dist/authorization-facts/lib/facts-writer-authority.d.ts.map +1 -0
- package/dist/authorization-facts/lib/facts-writer-authority.js +55 -0
- package/dist/authorization-facts/lib/facts-writer-authority.js.map +1 -0
- package/dist/authorization-facts/lib/revoke-intent.d.ts +23 -0
- package/dist/authorization-facts/lib/revoke-intent.d.ts.map +1 -0
- package/dist/authorization-facts/lib/revoke-intent.js +37 -0
- package/dist/authorization-facts/lib/revoke-intent.js.map +1 -0
- package/dist/authorization-module/index.d.ts +6 -0
- package/dist/authorization-module/index.d.ts.map +1 -0
- package/dist/authorization-module/index.js +22 -0
- package/dist/authorization-module/index.js.map +1 -0
- package/dist/authorization-module/lib/authorization-composition-error.d.ts +45 -0
- package/dist/authorization-module/lib/authorization-composition-error.d.ts.map +1 -0
- package/dist/authorization-module/lib/authorization-composition-error.js +52 -0
- package/dist/authorization-module/lib/authorization-composition-error.js.map +1 -0
- package/dist/authorization-module/lib/authorization-module-contribution.d.ts +143 -0
- package/dist/authorization-module/lib/authorization-module-contribution.d.ts.map +1 -0
- package/dist/authorization-module/lib/authorization-module-contribution.js +111 -0
- package/dist/authorization-module/lib/authorization-module-contribution.js.map +1 -0
- package/dist/authorization-module/lib/authorization-module-envelope.d.ts +116 -0
- package/dist/authorization-module/lib/authorization-module-envelope.d.ts.map +1 -0
- package/dist/authorization-module/lib/authorization-module-envelope.js +104 -0
- package/dist/authorization-module/lib/authorization-module-envelope.js.map +1 -0
- package/dist/authorization-module/lib/authorization-namespace.d.ts +23 -0
- package/dist/authorization-module/lib/authorization-namespace.d.ts.map +1 -0
- package/dist/authorization-module/lib/authorization-namespace.js +82 -0
- package/dist/authorization-module/lib/authorization-namespace.js.map +1 -0
- package/dist/authorization-module/lib/platform-authorization-modules.d.ts +17 -0
- package/dist/authorization-module/lib/platform-authorization-modules.d.ts.map +1 -0
- package/dist/authorization-module/lib/platform-authorization-modules.js +46 -0
- package/dist/authorization-module/lib/platform-authorization-modules.js.map +1 -0
- package/dist/authorization-module/platform/xema_capability.fga +23 -0
- package/dist/authorization-module/platform/xema_capability.fga.yaml +108 -0
- package/dist/authorization-module/platform/xema_core.fga +81 -0
- package/dist/authorization-module/platform/xema_core.fga.yaml +121 -0
- package/dist/authorization-module/platform/xema_sharing.fga +113 -0
- package/dist/authorization-module/platform/xema_sharing.fga.yaml +67 -0
- package/dist/authorization-module/server/authorization-compatibility.d.ts +16 -0
- package/dist/authorization-module/server/authorization-compatibility.d.ts.map +1 -0
- package/dist/authorization-module/server/authorization-compatibility.js +94 -0
- package/dist/authorization-module/server/authorization-compatibility.js.map +1 -0
- package/dist/authorization-module/server/authorization-model-json.d.ts +65 -0
- package/dist/authorization-module/server/authorization-model-json.d.ts.map +1 -0
- package/dist/authorization-module/server/authorization-model-json.js +21 -0
- package/dist/authorization-module/server/authorization-model-json.js.map +1 -0
- package/dist/authorization-module/server/compose-authorization-base.d.ts +67 -0
- package/dist/authorization-module/server/compose-authorization-base.d.ts.map +1 -0
- package/dist/authorization-module/server/compose-authorization-base.js +511 -0
- package/dist/authorization-module/server/compose-authorization-base.js.map +1 -0
- package/dist/authorization-module/server/index.d.ts +5 -0
- package/dist/authorization-module/server/index.d.ts.map +1 -0
- package/dist/authorization-module/server/index.js +21 -0
- package/dist/authorization-module/server/index.js.map +1 -0
- package/dist/authorization-module/server/platform-module-files.d.ts +16 -0
- package/dist/authorization-module/server/platform-module-files.d.ts.map +1 -0
- package/dist/authorization-module/server/platform-module-files.js +42 -0
- package/dist/authorization-module/server/platform-module-files.js.map +1 -0
- package/dist/authzen/index.d.ts +7 -0
- package/dist/authzen/index.d.ts.map +1 -0
- package/dist/authzen/index.js +23 -0
- package/dist/authzen/index.js.map +1 -0
- package/dist/authzen/lib/authzen-entities.d.ts +40 -0
- package/dist/authzen/lib/authzen-entities.d.ts.map +1 -0
- package/dist/authzen/lib/authzen-entities.js +48 -0
- package/dist/authzen/lib/authzen-entities.js.map +1 -0
- package/dist/authzen/lib/authzen-evaluation.d.ts +101 -0
- package/dist/authzen/lib/authzen-evaluation.d.ts.map +1 -0
- package/dist/authzen/lib/authzen-evaluation.js +103 -0
- package/dist/authzen/lib/authzen-evaluation.js.map +1 -0
- package/dist/authzen/lib/authzen-metadata.d.ts +25 -0
- package/dist/authzen/lib/authzen-metadata.d.ts.map +1 -0
- package/dist/authzen/lib/authzen-metadata.js +54 -0
- package/dist/authzen/lib/authzen-metadata.js.map +1 -0
- package/dist/authzen/lib/authzen-search.d.ts +135 -0
- package/dist/authzen/lib/authzen-search.d.ts.map +1 -0
- package/dist/authzen/lib/authzen-search.js +89 -0
- package/dist/authzen/lib/authzen-search.js.map +1 -0
- package/dist/authzen/lib/authzen-snapshot.d.ts +47 -0
- package/dist/authzen/lib/authzen-snapshot.d.ts.map +1 -0
- package/dist/authzen/lib/authzen-snapshot.js +96 -0
- package/dist/authzen/lib/authzen-snapshot.js.map +1 -0
- package/dist/authzen/lib/xema-authzen-profile.d.ts +155 -0
- package/dist/authzen/lib/xema-authzen-profile.d.ts.map +1 -0
- package/dist/authzen/lib/xema-authzen-profile.js +152 -0
- package/dist/authzen/lib/xema-authzen-profile.js.map +1 -0
- package/dist/contribution/lib/contribution-kind.d.ts +1 -0
- package/dist/contribution/lib/contribution-kind.d.ts.map +1 -1
- package/dist/contribution/lib/contribution-kind.js +1 -0
- package/dist/contribution/lib/contribution-kind.js.map +1 -1
- package/dist/http/lib/problem-definition.d.ts +30 -11
- package/dist/http/lib/problem-definition.d.ts.map +1 -1
- package/dist/http/lib/problem-definition.js +33 -14
- package/dist/http/lib/problem-definition.js.map +1 -1
- package/dist/http/lib/problem-details.d.ts +1 -0
- package/dist/http/lib/problem-details.d.ts.map +1 -1
- package/dist/http/lib/problem-details.js +9 -3
- package/dist/http/lib/problem-details.js.map +1 -1
- package/dist/platform-generation/index.d.ts +2 -0
- package/dist/platform-generation/index.d.ts.map +1 -0
- package/dist/platform-generation/index.js +18 -0
- package/dist/platform-generation/index.js.map +1 -0
- package/dist/platform-generation/lib/platform-generation.d.ts +20 -0
- package/dist/platform-generation/lib/platform-generation.d.ts.map +1 -0
- package/dist/platform-generation/lib/platform-generation.js +77 -0
- package/dist/platform-generation/lib/platform-generation.js.map +1 -0
- package/dist/resource/lib/resource-kind-descriptor.d.ts.map +1 -1
- package/dist/resource/lib/resource-kind-descriptor.js.map +1 -1
- package/dist/resource/lib/resource-kind-registry.d.ts.map +1 -1
- package/dist/resource/lib/resource-kind-registry.js.map +1 -1
- package/dist/resource/lib/resource-ownership-contribution.d.ts.map +1 -1
- package/dist/resource/lib/resource-ownership-contribution.js.map +1 -1
- package/package.json +6 -4
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActionSearchResponseSchema = exports.ResourceSearchResponseSchema = exports.SubjectSearchResponseSchema = exports.ActionSearchRequestSchema = exports.ResourceSearchRequestSchema = exports.SubjectSearchRequestSchema = exports.AUTHZEN_LAST_PAGE_TOKEN = exports.AuthzenPageResponseSchema = exports.AuthzenPageRequestSchema = void 0;
|
|
4
|
+
exports.searchResultsOutsideQueriedType = searchResultsOutsideQueriedType;
|
|
5
|
+
exports.searchContinuationMatches = searchContinuationMatches;
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
const authzen_entities_1 = require("./authzen-entities");
|
|
8
|
+
exports.AuthzenPageRequestSchema = zod_1.z
|
|
9
|
+
.object({
|
|
10
|
+
token: zod_1.z.string().optional(),
|
|
11
|
+
limit: zod_1.z.number().int().nonnegative().optional(),
|
|
12
|
+
properties: authzen_entities_1.AuthzenAttributesSchema.optional(),
|
|
13
|
+
})
|
|
14
|
+
.strict();
|
|
15
|
+
exports.AuthzenPageResponseSchema = zod_1.z
|
|
16
|
+
.object({
|
|
17
|
+
next_token: zod_1.z.string(),
|
|
18
|
+
count: zod_1.z.number().int().nonnegative().optional(),
|
|
19
|
+
total: zod_1.z.number().int().nonnegative().optional(),
|
|
20
|
+
})
|
|
21
|
+
.strict();
|
|
22
|
+
exports.AUTHZEN_LAST_PAGE_TOKEN = '';
|
|
23
|
+
exports.SubjectSearchRequestSchema = zod_1.z
|
|
24
|
+
.object({
|
|
25
|
+
subject: authzen_entities_1.AuthzenSubjectQuerySchema,
|
|
26
|
+
action: authzen_entities_1.AuthzenActionSchema,
|
|
27
|
+
resource: authzen_entities_1.AuthzenResourceSchema,
|
|
28
|
+
context: authzen_entities_1.AuthzenContextSchema.optional(),
|
|
29
|
+
page: exports.AuthzenPageRequestSchema.optional(),
|
|
30
|
+
})
|
|
31
|
+
.strict();
|
|
32
|
+
exports.ResourceSearchRequestSchema = zod_1.z
|
|
33
|
+
.object({
|
|
34
|
+
subject: authzen_entities_1.AuthzenSubjectSchema,
|
|
35
|
+
action: authzen_entities_1.AuthzenActionSchema,
|
|
36
|
+
resource: authzen_entities_1.AuthzenResourceQuerySchema,
|
|
37
|
+
context: authzen_entities_1.AuthzenContextSchema.optional(),
|
|
38
|
+
page: exports.AuthzenPageRequestSchema.optional(),
|
|
39
|
+
})
|
|
40
|
+
.strict();
|
|
41
|
+
exports.ActionSearchRequestSchema = zod_1.z
|
|
42
|
+
.object({
|
|
43
|
+
subject: authzen_entities_1.AuthzenSubjectSchema,
|
|
44
|
+
resource: authzen_entities_1.AuthzenResourceSchema,
|
|
45
|
+
context: authzen_entities_1.AuthzenContextSchema.optional(),
|
|
46
|
+
page: exports.AuthzenPageRequestSchema.optional(),
|
|
47
|
+
})
|
|
48
|
+
.strict();
|
|
49
|
+
function searchResponseSchema(entity) {
|
|
50
|
+
return zod_1.z
|
|
51
|
+
.object({
|
|
52
|
+
page: exports.AuthzenPageResponseSchema.optional(),
|
|
53
|
+
context: authzen_entities_1.AuthzenContextSchema.optional(),
|
|
54
|
+
results: zod_1.z.array(entity),
|
|
55
|
+
})
|
|
56
|
+
.strict();
|
|
57
|
+
}
|
|
58
|
+
exports.SubjectSearchResponseSchema = searchResponseSchema(authzen_entities_1.AuthzenSubjectSchema);
|
|
59
|
+
exports.ResourceSearchResponseSchema = searchResponseSchema(authzen_entities_1.AuthzenResourceSchema);
|
|
60
|
+
exports.ActionSearchResponseSchema = searchResponseSchema(authzen_entities_1.AuthzenActionSchema);
|
|
61
|
+
function searchResultsOutsideQueriedType(results, queriedType) {
|
|
62
|
+
return results.filter((result) => result.type !== queriedType);
|
|
63
|
+
}
|
|
64
|
+
function searchContinuationMatches(previous, next) {
|
|
65
|
+
return stableStringify(withoutToken(previous)) ===
|
|
66
|
+
stableStringify(withoutToken(next));
|
|
67
|
+
}
|
|
68
|
+
function withoutToken(request) {
|
|
69
|
+
if (request.page === undefined) {
|
|
70
|
+
return request;
|
|
71
|
+
}
|
|
72
|
+
const { token: _token, ...page } = request.page;
|
|
73
|
+
return { ...request, page };
|
|
74
|
+
}
|
|
75
|
+
function stableStringify(value) {
|
|
76
|
+
if (Array.isArray(value)) {
|
|
77
|
+
return `[${value.map(stableStringify).join(',')}]`;
|
|
78
|
+
}
|
|
79
|
+
if (value !== null && typeof value === 'object') {
|
|
80
|
+
const entries = Object.entries(value)
|
|
81
|
+
.filter(([, v]) => v !== undefined)
|
|
82
|
+
.sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0));
|
|
83
|
+
return `{${entries
|
|
84
|
+
.map(([k, v]) => `${JSON.stringify(k)}:${stableStringify(v)}`)
|
|
85
|
+
.join(',')}}`;
|
|
86
|
+
}
|
|
87
|
+
return JSON.stringify(value);
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=authzen-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authzen-search.js","sourceRoot":"","sources":["../../../src/authzen/lib/authzen-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const XEMA_AUTHZ_SNAPSHOT_VERSION: 1;
|
|
3
|
+
export declare const XemaAuthorityRevisionSchema: z.ZodObject<{
|
|
4
|
+
factsPosition: z.ZodString;
|
|
5
|
+
principalRevision: z.ZodNullable<z.ZodString>;
|
|
6
|
+
}, z.core.$strict>;
|
|
7
|
+
export type XemaAuthorityRevision = z.infer<typeof XemaAuthorityRevisionSchema>;
|
|
8
|
+
export declare const XemaAuthzSnapshotClaimsSchema: z.ZodObject<{
|
|
9
|
+
v: z.ZodLiteral<1>;
|
|
10
|
+
modelId: z.ZodString;
|
|
11
|
+
authorityRevision: z.ZodObject<{
|
|
12
|
+
factsPosition: z.ZodString;
|
|
13
|
+
principalRevision: z.ZodNullable<z.ZodString>;
|
|
14
|
+
}, z.core.$strict>;
|
|
15
|
+
contextDigest: z.ZodString;
|
|
16
|
+
issuedAtMs: z.ZodNumber;
|
|
17
|
+
}, z.core.$strict>;
|
|
18
|
+
export type XemaAuthzSnapshotClaims = z.infer<typeof XemaAuthzSnapshotClaimsSchema>;
|
|
19
|
+
export declare const XEMA_AUTHZ_SNAPSHOT_TOKEN_PATTERN: RegExp;
|
|
20
|
+
export declare const XemaAuthzSnapshotTokenSchema: z.ZodString;
|
|
21
|
+
export interface XemaAuthzContextSnapshot {
|
|
22
|
+
readonly orgId: string;
|
|
23
|
+
readonly orgAuthorityKind: string | null;
|
|
24
|
+
readonly delegationId: string | null;
|
|
25
|
+
readonly capability: string | null;
|
|
26
|
+
readonly environment: string | null;
|
|
27
|
+
}
|
|
28
|
+
export declare const XemaAuthzContextSnapshotSchema: z.ZodObject<{
|
|
29
|
+
orgId: z.ZodString;
|
|
30
|
+
orgAuthorityKind: z.ZodNullable<z.ZodString>;
|
|
31
|
+
delegationId: z.ZodNullable<z.ZodString>;
|
|
32
|
+
capability: z.ZodNullable<z.ZodString>;
|
|
33
|
+
environment: z.ZodNullable<z.ZodString>;
|
|
34
|
+
}, z.core.$strict>;
|
|
35
|
+
export declare function digestXemaAuthzContextSnapshot(snapshot: XemaAuthzContextSnapshot): Promise<string>;
|
|
36
|
+
export declare class XemaAuthzSnapshotTokenError extends Error {
|
|
37
|
+
constructor(message: string);
|
|
38
|
+
}
|
|
39
|
+
export declare function encodeXemaAuthzSnapshotPayload(claims: XemaAuthzSnapshotClaims): string;
|
|
40
|
+
export declare function composeXemaAuthzSnapshotToken(payload: string, signature: Uint8Array): string;
|
|
41
|
+
export interface XemaAuthzSnapshotTokenParts {
|
|
42
|
+
readonly payload: string;
|
|
43
|
+
readonly signature: Uint8Array;
|
|
44
|
+
readonly claims: XemaAuthzSnapshotClaims;
|
|
45
|
+
}
|
|
46
|
+
export declare function readXemaAuthzSnapshotTokenUnverified(token: string): XemaAuthzSnapshotTokenParts;
|
|
47
|
+
//# sourceMappingURL=authzen-snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authzen-snapshot.d.ts","sourceRoot":"","sources":["../../../src/authzen/lib/authzen-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB,eAAO,MAAM,2BAA2B,EAAG,CAAU,CAAC;AAatD,eAAO,MAAM,2BAA2B;;;kBAK7B,CAAC;AACZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAGhF,eAAO,MAAM,6BAA6B;;;;;;;;;kBAW/B,CAAC;AACZ,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAC3C,OAAO,6BAA6B,CACrC,CAAC;AAGF,eAAO,MAAM,iCAAiC,QACV,CAAC;AAErC,eAAO,MAAM,4BAA4B,aAKrC,CAAC;AASL,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,eAAO,MAAM,8BAA8B;;;;;;kBAQhC,CAAC;AAGZ,wBAAsB,8BAA8B,CAClD,QAAQ,EAAE,wBAAwB,GACjC,OAAO,CAAC,MAAM,CAAC,CAGjB;AAGD,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAI5B;AAwBD,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,uBAAuB,GAC9B,MAAM,CAGR;AAGD,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,UAAU,GACpB,MAAM,CASR;AAED,MAAM,WAAW,2BAA2B;IAE1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC;IAE/B,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;CAC1C;AAOD,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,MAAM,GACZ,2BAA2B,CAsB7B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XemaAuthzSnapshotTokenError = exports.XemaAuthzContextSnapshotSchema = exports.XemaAuthzSnapshotTokenSchema = exports.XEMA_AUTHZ_SNAPSHOT_TOKEN_PATTERN = exports.XemaAuthzSnapshotClaimsSchema = exports.XemaAuthorityRevisionSchema = exports.XEMA_AUTHZ_SNAPSHOT_VERSION = void 0;
|
|
4
|
+
exports.digestXemaAuthzContextSnapshot = digestXemaAuthzContextSnapshot;
|
|
5
|
+
exports.encodeXemaAuthzSnapshotPayload = encodeXemaAuthzSnapshotPayload;
|
|
6
|
+
exports.composeXemaAuthzSnapshotToken = composeXemaAuthzSnapshotToken;
|
|
7
|
+
exports.readXemaAuthzSnapshotTokenUnverified = readXemaAuthzSnapshotTokenUnverified;
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
const content_address_1 = require("../../content-address");
|
|
10
|
+
exports.XEMA_AUTHZ_SNAPSHOT_VERSION = 1;
|
|
11
|
+
exports.XemaAuthorityRevisionSchema = zod_1.z
|
|
12
|
+
.object({
|
|
13
|
+
factsPosition: zod_1.z.string().min(1),
|
|
14
|
+
principalRevision: zod_1.z.string().min(1).nullable(),
|
|
15
|
+
})
|
|
16
|
+
.strict();
|
|
17
|
+
exports.XemaAuthzSnapshotClaimsSchema = zod_1.z
|
|
18
|
+
.object({
|
|
19
|
+
v: zod_1.z.literal(exports.XEMA_AUTHZ_SNAPSHOT_VERSION),
|
|
20
|
+
modelId: zod_1.z.string().min(1),
|
|
21
|
+
authorityRevision: exports.XemaAuthorityRevisionSchema,
|
|
22
|
+
contextDigest: content_address_1.Sha256HexSchema,
|
|
23
|
+
issuedAtMs: zod_1.z.number().int().nonnegative(),
|
|
24
|
+
})
|
|
25
|
+
.strict();
|
|
26
|
+
exports.XEMA_AUTHZ_SNAPSHOT_TOKEN_PATTERN = /^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/;
|
|
27
|
+
exports.XemaAuthzSnapshotTokenSchema = zod_1.z
|
|
28
|
+
.string()
|
|
29
|
+
.regex(exports.XEMA_AUTHZ_SNAPSHOT_TOKEN_PATTERN, {
|
|
30
|
+
message: 'a Xema snapshot token is `<base64url payload>.<base64url signature>`.',
|
|
31
|
+
});
|
|
32
|
+
exports.XemaAuthzContextSnapshotSchema = zod_1.z
|
|
33
|
+
.object({
|
|
34
|
+
orgId: zod_1.z.string().min(1),
|
|
35
|
+
orgAuthorityKind: zod_1.z.string().min(1).nullable(),
|
|
36
|
+
delegationId: zod_1.z.string().min(1).nullable(),
|
|
37
|
+
capability: zod_1.z.string().min(1).nullable(),
|
|
38
|
+
environment: zod_1.z.string().min(1).nullable(),
|
|
39
|
+
})
|
|
40
|
+
.strict();
|
|
41
|
+
async function digestXemaAuthzContextSnapshot(snapshot) {
|
|
42
|
+
const parsed = exports.XemaAuthzContextSnapshotSchema.parse(snapshot);
|
|
43
|
+
return (0, content_address_1.canonicalContentHash)(parsed);
|
|
44
|
+
}
|
|
45
|
+
class XemaAuthzSnapshotTokenError extends Error {
|
|
46
|
+
constructor(message) {
|
|
47
|
+
super(message);
|
|
48
|
+
this.name = 'XemaAuthzSnapshotTokenError';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.XemaAuthzSnapshotTokenError = XemaAuthzSnapshotTokenError;
|
|
52
|
+
function toBase64Url(bytes) {
|
|
53
|
+
let binary = '';
|
|
54
|
+
for (const byte of bytes) {
|
|
55
|
+
binary += String.fromCharCode(byte);
|
|
56
|
+
}
|
|
57
|
+
return btoa(binary).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
58
|
+
}
|
|
59
|
+
function fromBase64Url(value) {
|
|
60
|
+
const padded = value.replace(/-/g, '+').replace(/_/g, '/');
|
|
61
|
+
const binary = atob(padded + '='.repeat((4 - (padded.length % 4)) % 4));
|
|
62
|
+
const bytes = new Uint8Array(binary.length);
|
|
63
|
+
for (let i = 0; i < binary.length; i += 1) {
|
|
64
|
+
bytes[i] = binary.charCodeAt(i);
|
|
65
|
+
}
|
|
66
|
+
return bytes;
|
|
67
|
+
}
|
|
68
|
+
function encodeXemaAuthzSnapshotPayload(claims) {
|
|
69
|
+
const parsed = exports.XemaAuthzSnapshotClaimsSchema.parse(claims);
|
|
70
|
+
return toBase64Url(new TextEncoder().encode((0, content_address_1.canonicalJsonStringify)(parsed)));
|
|
71
|
+
}
|
|
72
|
+
function composeXemaAuthzSnapshotToken(payload, signature) {
|
|
73
|
+
if (signature.length === 0) {
|
|
74
|
+
throw new XemaAuthzSnapshotTokenError('composeXemaAuthzSnapshotToken: an empty signature is not a signature.');
|
|
75
|
+
}
|
|
76
|
+
return exports.XemaAuthzSnapshotTokenSchema.parse(`${payload}.${toBase64Url(signature)}`);
|
|
77
|
+
}
|
|
78
|
+
function readXemaAuthzSnapshotTokenUnverified(token) {
|
|
79
|
+
if (!exports.XEMA_AUTHZ_SNAPSHOT_TOKEN_PATTERN.test(token)) {
|
|
80
|
+
throw new XemaAuthzSnapshotTokenError('readXemaAuthzSnapshotTokenUnverified: the token is not `<payload>.<signature>`.');
|
|
81
|
+
}
|
|
82
|
+
const [payload, signature] = token.split('.');
|
|
83
|
+
let claims;
|
|
84
|
+
try {
|
|
85
|
+
claims = JSON.parse(new TextDecoder().decode(fromBase64Url(payload)));
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
throw new XemaAuthzSnapshotTokenError('readXemaAuthzSnapshotTokenUnverified: the payload is not base64url JSON.');
|
|
89
|
+
}
|
|
90
|
+
const parsed = exports.XemaAuthzSnapshotClaimsSchema.safeParse(claims);
|
|
91
|
+
if (!parsed.success) {
|
|
92
|
+
throw new XemaAuthzSnapshotTokenError(`readXemaAuthzSnapshotTokenUnverified: the claims do not parse: ${parsed.error.message}`);
|
|
93
|
+
}
|
|
94
|
+
return { payload, signature: fromBase64Url(signature), claims: parsed.data };
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=authzen-snapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authzen-snapshot.js","sourceRoot":"","sources":["../../../src/authzen/lib/authzen-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { AuditAuthorityKind } from '../../audit';
|
|
3
|
+
import { SubjectKind } from '../../subject';
|
|
4
|
+
export declare const XEMA_AUTHZEN_SUBJECT_KINDS: readonly [SubjectKind.User, SubjectKind.Agent, SubjectKind.Service, SubjectKind.ExternalSubject];
|
|
5
|
+
export type XemaAuthzenSubjectKind = (typeof XEMA_AUTHZEN_SUBJECT_KINDS)[number];
|
|
6
|
+
export declare const XemaAuthzenSubjectKindSchema: z.ZodEnum<{
|
|
7
|
+
user: SubjectKind.User;
|
|
8
|
+
agent: SubjectKind.Agent;
|
|
9
|
+
service: SubjectKind.Service;
|
|
10
|
+
"external-subject": SubjectKind.ExternalSubject;
|
|
11
|
+
}>;
|
|
12
|
+
export declare const XemaOrgAuthorityInstrumentSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
13
|
+
kind: z.ZodLiteral<AuditAuthorityKind.OrgRole>;
|
|
14
|
+
orgRole: z.ZodEnum<typeof import("../../tenant").OrgRole>;
|
|
15
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
16
|
+
kind: z.ZodLiteral<AuditAuthorityKind.PlatformAdmin>;
|
|
17
|
+
}, z.core.$strict>], "kind">;
|
|
18
|
+
export type XemaOrgAuthorityInstrument = z.infer<typeof XemaOrgAuthorityInstrumentSchema>;
|
|
19
|
+
export declare const XemaAuthzenSubjectPropertiesSchema: z.ZodObject<{
|
|
20
|
+
orgAuthority: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
21
|
+
kind: z.ZodLiteral<AuditAuthorityKind.OrgRole>;
|
|
22
|
+
orgRole: z.ZodEnum<typeof import("../../tenant").OrgRole>;
|
|
23
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
24
|
+
kind: z.ZodLiteral<AuditAuthorityKind.PlatformAdmin>;
|
|
25
|
+
}, z.core.$strict>], "kind">>;
|
|
26
|
+
}, z.core.$strict>;
|
|
27
|
+
export type XemaAuthzenSubjectProperties = z.infer<typeof XemaAuthzenSubjectPropertiesSchema>;
|
|
28
|
+
export declare const XemaAuthzenSubjectSchema: z.ZodObject<{
|
|
29
|
+
type: z.ZodEnum<{
|
|
30
|
+
user: SubjectKind.User;
|
|
31
|
+
agent: SubjectKind.Agent;
|
|
32
|
+
service: SubjectKind.Service;
|
|
33
|
+
"external-subject": SubjectKind.ExternalSubject;
|
|
34
|
+
}>;
|
|
35
|
+
id: z.ZodString;
|
|
36
|
+
properties: z.ZodOptional<z.ZodObject<{
|
|
37
|
+
orgAuthority: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
38
|
+
kind: z.ZodLiteral<AuditAuthorityKind.OrgRole>;
|
|
39
|
+
orgRole: z.ZodEnum<typeof import("../../tenant").OrgRole>;
|
|
40
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
41
|
+
kind: z.ZodLiteral<AuditAuthorityKind.PlatformAdmin>;
|
|
42
|
+
}, z.core.$strict>], "kind">>;
|
|
43
|
+
}, z.core.$strict>>;
|
|
44
|
+
}, z.core.$strict>;
|
|
45
|
+
export type XemaAuthzenSubject = z.infer<typeof XemaAuthzenSubjectSchema>;
|
|
46
|
+
export declare const XEMA_ORG_RESOURCE_TYPE = "org";
|
|
47
|
+
export declare const XEMA_QUALIFIED_ID_SEPARATOR = "|";
|
|
48
|
+
export declare const XEMA_QUALIFIED_ID_SEGMENT_PATTERN: RegExp;
|
|
49
|
+
export declare const XemaQualifiedResourceIdSchema: z.ZodString;
|
|
50
|
+
export declare class XemaQualifiedResourceIdError extends Error {
|
|
51
|
+
constructor(message: string);
|
|
52
|
+
}
|
|
53
|
+
export declare function qualifyResourceId(orgId: string, localId: string): string;
|
|
54
|
+
export interface XemaQualifiedResourceId {
|
|
55
|
+
readonly orgId: string;
|
|
56
|
+
readonly localId: string;
|
|
57
|
+
}
|
|
58
|
+
export declare function parseQualifiedResourceId(id: string): XemaQualifiedResourceId;
|
|
59
|
+
export declare function resourceBelongsToOrg(resource: {
|
|
60
|
+
readonly type: string;
|
|
61
|
+
readonly id: string;
|
|
62
|
+
}, orgId: string): boolean;
|
|
63
|
+
export declare const XemaAuthzenResourceSchema: z.ZodObject<{
|
|
64
|
+
type: z.ZodString;
|
|
65
|
+
id: z.ZodString;
|
|
66
|
+
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
67
|
+
}, z.core.$strict>;
|
|
68
|
+
export declare const XemaAuthzenActionSchema: z.ZodObject<{
|
|
69
|
+
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
70
|
+
name: z.ZodString;
|
|
71
|
+
}, z.core.$strict>;
|
|
72
|
+
export declare const XemaAuthzenContextSchema: z.ZodObject<{
|
|
73
|
+
orgId: z.ZodString;
|
|
74
|
+
capability: z.ZodOptional<z.ZodString>;
|
|
75
|
+
environment: z.ZodOptional<z.ZodString>;
|
|
76
|
+
delegation: z.ZodOptional<z.ZodType<import("../../subject").DelegatedAuthority, unknown, z.core.$ZodTypeInternals<import("../../subject").DelegatedAuthority, unknown>>>;
|
|
77
|
+
snapshot: z.ZodOptional<z.ZodString>;
|
|
78
|
+
}, z.core.$strict>;
|
|
79
|
+
export type XemaAuthzenContext = z.infer<typeof XemaAuthzenContextSchema>;
|
|
80
|
+
export declare const XemaAccessEvaluationRequestSchema: z.ZodObject<{
|
|
81
|
+
subject: z.ZodObject<{
|
|
82
|
+
type: z.ZodEnum<{
|
|
83
|
+
user: SubjectKind.User;
|
|
84
|
+
agent: SubjectKind.Agent;
|
|
85
|
+
service: SubjectKind.Service;
|
|
86
|
+
"external-subject": SubjectKind.ExternalSubject;
|
|
87
|
+
}>;
|
|
88
|
+
id: z.ZodString;
|
|
89
|
+
properties: z.ZodOptional<z.ZodObject<{
|
|
90
|
+
orgAuthority: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
91
|
+
kind: z.ZodLiteral<AuditAuthorityKind.OrgRole>;
|
|
92
|
+
orgRole: z.ZodEnum<typeof import("../../tenant").OrgRole>;
|
|
93
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
94
|
+
kind: z.ZodLiteral<AuditAuthorityKind.PlatformAdmin>;
|
|
95
|
+
}, z.core.$strict>], "kind">>;
|
|
96
|
+
}, z.core.$strict>>;
|
|
97
|
+
}, z.core.$strict>;
|
|
98
|
+
action: z.ZodObject<{
|
|
99
|
+
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
100
|
+
name: z.ZodString;
|
|
101
|
+
}, z.core.$strict>;
|
|
102
|
+
resource: z.ZodObject<{
|
|
103
|
+
type: z.ZodString;
|
|
104
|
+
id: z.ZodString;
|
|
105
|
+
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
106
|
+
}, z.core.$strict>;
|
|
107
|
+
context: z.ZodObject<{
|
|
108
|
+
orgId: z.ZodString;
|
|
109
|
+
capability: z.ZodOptional<z.ZodString>;
|
|
110
|
+
environment: z.ZodOptional<z.ZodString>;
|
|
111
|
+
delegation: z.ZodOptional<z.ZodType<import("../../subject").DelegatedAuthority, unknown, z.core.$ZodTypeInternals<import("../../subject").DelegatedAuthority, unknown>>>;
|
|
112
|
+
snapshot: z.ZodOptional<z.ZodString>;
|
|
113
|
+
}, z.core.$strict>;
|
|
114
|
+
}, z.core.$strict>;
|
|
115
|
+
export type XemaAccessEvaluationRequest = z.infer<typeof XemaAccessEvaluationRequestSchema>;
|
|
116
|
+
export declare enum XemaAuthzenReasonCode {
|
|
117
|
+
TenantMismatch = "tenant_mismatch",
|
|
118
|
+
RelationNotHeld = "relation_not_held",
|
|
119
|
+
CapabilityNotGranted = "capability_not_granted",
|
|
120
|
+
DelegationRequired = "delegation_required",
|
|
121
|
+
CapabilityNotDelegated = "capability_not_delegated",
|
|
122
|
+
ResourceOutsideDelegatedScope = "resource_outside_delegated_scope",
|
|
123
|
+
CeilingRefused = "ceiling_refused",
|
|
124
|
+
NamespaceWithdrawn = "namespace_withdrawn"
|
|
125
|
+
}
|
|
126
|
+
export declare const XemaAuthzenReasonCodeSchema: z.ZodEnum<typeof XemaAuthzenReasonCode>;
|
|
127
|
+
export declare enum XemaAuthzenErrorCode {
|
|
128
|
+
ListTooLarge = "list_too_large",
|
|
129
|
+
SnapshotExpired = "snapshot_expired",
|
|
130
|
+
ContinuationMismatch = "continuation_mismatch",
|
|
131
|
+
UnknownType = "unknown_type",
|
|
132
|
+
UnknownAction = "unknown_action",
|
|
133
|
+
ProfileViolation = "profile_violation"
|
|
134
|
+
}
|
|
135
|
+
export declare const XemaAuthzenErrorCodeSchema: z.ZodEnum<typeof XemaAuthzenErrorCode>;
|
|
136
|
+
export declare const XemaAuthzenItemErrorSchema: z.ZodObject<{
|
|
137
|
+
status: z.ZodNumber;
|
|
138
|
+
message: z.ZodString;
|
|
139
|
+
code: z.ZodEnum<typeof XemaAuthzenErrorCode>;
|
|
140
|
+
}, z.core.$strict>;
|
|
141
|
+
export declare const XemaAuthzenDecisionContextSchema: z.ZodObject<{
|
|
142
|
+
reason_code: z.ZodOptional<z.ZodEnum<typeof XemaAuthzenReasonCode>>;
|
|
143
|
+
error: z.ZodOptional<z.ZodObject<{
|
|
144
|
+
status: z.ZodNumber;
|
|
145
|
+
message: z.ZodString;
|
|
146
|
+
code: z.ZodEnum<typeof XemaAuthzenErrorCode>;
|
|
147
|
+
}, z.core.$strict>>;
|
|
148
|
+
snapshot: z.ZodOptional<z.ZodString>;
|
|
149
|
+
}, z.core.$strip>;
|
|
150
|
+
export type XemaAuthzenDecisionContext = z.infer<typeof XemaAuthzenDecisionContextSchema>;
|
|
151
|
+
export declare const XemaAuthzenErrorBodySchema: z.ZodIntersection<z.ZodObject<{
|
|
152
|
+
code: z.ZodEnum<typeof XemaAuthzenErrorCode>;
|
|
153
|
+
message: z.ZodString;
|
|
154
|
+
}, z.core.$strip>, z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
155
|
+
//# sourceMappingURL=xema-authzen-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xema-authzen-profile.d.ts","sourceRoot":"","sources":["../../../src/authzen/lib/xema-authzen-profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XemaAuthzenErrorBodySchema = exports.XemaAuthzenDecisionContextSchema = exports.XemaAuthzenItemErrorSchema = exports.XemaAuthzenErrorCodeSchema = exports.XemaAuthzenErrorCode = exports.XemaAuthzenReasonCodeSchema = exports.XemaAuthzenReasonCode = exports.XemaAccessEvaluationRequestSchema = exports.XemaAuthzenContextSchema = exports.XemaAuthzenActionSchema = exports.XemaAuthzenResourceSchema = exports.XemaQualifiedResourceIdError = exports.XemaQualifiedResourceIdSchema = exports.XEMA_QUALIFIED_ID_SEGMENT_PATTERN = exports.XEMA_QUALIFIED_ID_SEPARATOR = exports.XEMA_ORG_RESOURCE_TYPE = exports.XemaAuthzenSubjectSchema = exports.XemaAuthzenSubjectPropertiesSchema = exports.XemaOrgAuthorityInstrumentSchema = exports.XemaAuthzenSubjectKindSchema = exports.XEMA_AUTHZEN_SUBJECT_KINDS = void 0;
|
|
4
|
+
exports.qualifyResourceId = qualifyResourceId;
|
|
5
|
+
exports.parseQualifiedResourceId = parseQualifiedResourceId;
|
|
6
|
+
exports.resourceBelongsToOrg = resourceBelongsToOrg;
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
const audit_1 = require("../../audit");
|
|
9
|
+
const subject_1 = require("../../subject");
|
|
10
|
+
const tenant_1 = require("../../tenant");
|
|
11
|
+
const authzen_entities_1 = require("./authzen-entities");
|
|
12
|
+
const authzen_snapshot_1 = require("./authzen-snapshot");
|
|
13
|
+
exports.XEMA_AUTHZEN_SUBJECT_KINDS = Object.freeze([
|
|
14
|
+
subject_1.SubjectKind.User,
|
|
15
|
+
subject_1.SubjectKind.Agent,
|
|
16
|
+
subject_1.SubjectKind.Service,
|
|
17
|
+
subject_1.SubjectKind.ExternalSubject,
|
|
18
|
+
]);
|
|
19
|
+
exports.XemaAuthzenSubjectKindSchema = zod_1.z.enum([
|
|
20
|
+
subject_1.SubjectKind.User,
|
|
21
|
+
subject_1.SubjectKind.Agent,
|
|
22
|
+
subject_1.SubjectKind.Service,
|
|
23
|
+
subject_1.SubjectKind.ExternalSubject,
|
|
24
|
+
]);
|
|
25
|
+
exports.XemaOrgAuthorityInstrumentSchema = zod_1.z.discriminatedUnion('kind', [
|
|
26
|
+
zod_1.z
|
|
27
|
+
.object({
|
|
28
|
+
kind: zod_1.z.literal(audit_1.AuditAuthorityKind.OrgRole),
|
|
29
|
+
orgRole: tenant_1.OrgRoleSchema,
|
|
30
|
+
})
|
|
31
|
+
.strict(),
|
|
32
|
+
zod_1.z.object({ kind: zod_1.z.literal(audit_1.AuditAuthorityKind.PlatformAdmin) }).strict(),
|
|
33
|
+
]);
|
|
34
|
+
exports.XemaAuthzenSubjectPropertiesSchema = zod_1.z
|
|
35
|
+
.object({
|
|
36
|
+
orgAuthority: exports.XemaOrgAuthorityInstrumentSchema.optional(),
|
|
37
|
+
})
|
|
38
|
+
.strict();
|
|
39
|
+
exports.XemaAuthzenSubjectSchema = zod_1.z
|
|
40
|
+
.object({
|
|
41
|
+
type: exports.XemaAuthzenSubjectKindSchema,
|
|
42
|
+
id: zod_1.z.string().min(1),
|
|
43
|
+
properties: exports.XemaAuthzenSubjectPropertiesSchema.optional(),
|
|
44
|
+
})
|
|
45
|
+
.strict();
|
|
46
|
+
exports.XEMA_ORG_RESOURCE_TYPE = 'org';
|
|
47
|
+
exports.XEMA_QUALIFIED_ID_SEPARATOR = '|';
|
|
48
|
+
exports.XEMA_QUALIFIED_ID_SEGMENT_PATTERN = /^[^|:\s]+$/;
|
|
49
|
+
exports.XemaQualifiedResourceIdSchema = zod_1.z
|
|
50
|
+
.string()
|
|
51
|
+
.regex(/^[^|:\s]+\|[^|:\s]+$/, {
|
|
52
|
+
message: 'a Xema resource id is org-qualified: `<orgId>|<localId>`, neither segment containing `|`, `:` or whitespace.',
|
|
53
|
+
});
|
|
54
|
+
class XemaQualifiedResourceIdError extends Error {
|
|
55
|
+
constructor(message) {
|
|
56
|
+
super(message);
|
|
57
|
+
this.name = 'XemaQualifiedResourceIdError';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.XemaQualifiedResourceIdError = XemaQualifiedResourceIdError;
|
|
61
|
+
function qualifyResourceId(orgId, localId) {
|
|
62
|
+
for (const [name, segment] of [
|
|
63
|
+
['orgId', orgId],
|
|
64
|
+
['localId', localId],
|
|
65
|
+
]) {
|
|
66
|
+
if (!exports.XEMA_QUALIFIED_ID_SEGMENT_PATTERN.test(segment)) {
|
|
67
|
+
throw new XemaQualifiedResourceIdError(`qualifyResourceId: ${name} "${segment}" is empty or contains \`|\`, \`:\` or whitespace.`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return `${orgId}${exports.XEMA_QUALIFIED_ID_SEPARATOR}${localId}`;
|
|
71
|
+
}
|
|
72
|
+
function parseQualifiedResourceId(id) {
|
|
73
|
+
if (!exports.XemaQualifiedResourceIdSchema.safeParse(id).success) {
|
|
74
|
+
throw new XemaQualifiedResourceIdError(`parseQualifiedResourceId: "${id}" is not \`<orgId>|<localId>\`.`);
|
|
75
|
+
}
|
|
76
|
+
const index = id.indexOf(exports.XEMA_QUALIFIED_ID_SEPARATOR);
|
|
77
|
+
return { orgId: id.slice(0, index), localId: id.slice(index + 1) };
|
|
78
|
+
}
|
|
79
|
+
function resourceBelongsToOrg(resource, orgId) {
|
|
80
|
+
if (resource.type === exports.XEMA_ORG_RESOURCE_TYPE) {
|
|
81
|
+
return resource.id === orgId;
|
|
82
|
+
}
|
|
83
|
+
const parsed = exports.XemaQualifiedResourceIdSchema.safeParse(resource.id);
|
|
84
|
+
if (!parsed.success) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
return parseQualifiedResourceId(resource.id).orgId === orgId;
|
|
88
|
+
}
|
|
89
|
+
exports.XemaAuthzenResourceSchema = authzen_entities_1.AuthzenResourceSchema;
|
|
90
|
+
exports.XemaAuthzenActionSchema = authzen_entities_1.AuthzenActionSchema.extend({
|
|
91
|
+
name: zod_1.z.string().regex(/^[^:#@*\s]{1,50}$/, {
|
|
92
|
+
message: 'a Xema action name is an OpenFGA relation name.',
|
|
93
|
+
}),
|
|
94
|
+
});
|
|
95
|
+
exports.XemaAuthzenContextSchema = zod_1.z
|
|
96
|
+
.object({
|
|
97
|
+
orgId: zod_1.z.string().min(1),
|
|
98
|
+
capability: zod_1.z.string().min(1).optional(),
|
|
99
|
+
environment: zod_1.z.string().min(1).optional(),
|
|
100
|
+
delegation: subject_1.DelegatedAuthoritySchema.optional(),
|
|
101
|
+
snapshot: authzen_snapshot_1.XemaAuthzSnapshotTokenSchema.optional(),
|
|
102
|
+
})
|
|
103
|
+
.strict();
|
|
104
|
+
exports.XemaAccessEvaluationRequestSchema = zod_1.z
|
|
105
|
+
.object({
|
|
106
|
+
subject: exports.XemaAuthzenSubjectSchema,
|
|
107
|
+
action: exports.XemaAuthzenActionSchema,
|
|
108
|
+
resource: exports.XemaAuthzenResourceSchema,
|
|
109
|
+
context: exports.XemaAuthzenContextSchema,
|
|
110
|
+
})
|
|
111
|
+
.strict();
|
|
112
|
+
var XemaAuthzenReasonCode;
|
|
113
|
+
(function (XemaAuthzenReasonCode) {
|
|
114
|
+
XemaAuthzenReasonCode["TenantMismatch"] = "tenant_mismatch";
|
|
115
|
+
XemaAuthzenReasonCode["RelationNotHeld"] = "relation_not_held";
|
|
116
|
+
XemaAuthzenReasonCode["CapabilityNotGranted"] = "capability_not_granted";
|
|
117
|
+
XemaAuthzenReasonCode["DelegationRequired"] = "delegation_required";
|
|
118
|
+
XemaAuthzenReasonCode["CapabilityNotDelegated"] = "capability_not_delegated";
|
|
119
|
+
XemaAuthzenReasonCode["ResourceOutsideDelegatedScope"] = "resource_outside_delegated_scope";
|
|
120
|
+
XemaAuthzenReasonCode["CeilingRefused"] = "ceiling_refused";
|
|
121
|
+
XemaAuthzenReasonCode["NamespaceWithdrawn"] = "namespace_withdrawn";
|
|
122
|
+
})(XemaAuthzenReasonCode || (exports.XemaAuthzenReasonCode = XemaAuthzenReasonCode = {}));
|
|
123
|
+
exports.XemaAuthzenReasonCodeSchema = zod_1.z.nativeEnum(XemaAuthzenReasonCode);
|
|
124
|
+
var XemaAuthzenErrorCode;
|
|
125
|
+
(function (XemaAuthzenErrorCode) {
|
|
126
|
+
XemaAuthzenErrorCode["ListTooLarge"] = "list_too_large";
|
|
127
|
+
XemaAuthzenErrorCode["SnapshotExpired"] = "snapshot_expired";
|
|
128
|
+
XemaAuthzenErrorCode["ContinuationMismatch"] = "continuation_mismatch";
|
|
129
|
+
XemaAuthzenErrorCode["UnknownType"] = "unknown_type";
|
|
130
|
+
XemaAuthzenErrorCode["UnknownAction"] = "unknown_action";
|
|
131
|
+
XemaAuthzenErrorCode["ProfileViolation"] = "profile_violation";
|
|
132
|
+
})(XemaAuthzenErrorCode || (exports.XemaAuthzenErrorCode = XemaAuthzenErrorCode = {}));
|
|
133
|
+
exports.XemaAuthzenErrorCodeSchema = zod_1.z.nativeEnum(XemaAuthzenErrorCode);
|
|
134
|
+
exports.XemaAuthzenItemErrorSchema = zod_1.z
|
|
135
|
+
.object({
|
|
136
|
+
status: zod_1.z.number().int().min(400).max(599),
|
|
137
|
+
message: zod_1.z.string().min(1),
|
|
138
|
+
code: exports.XemaAuthzenErrorCodeSchema,
|
|
139
|
+
})
|
|
140
|
+
.strict();
|
|
141
|
+
exports.XemaAuthzenDecisionContextSchema = zod_1.z.object({
|
|
142
|
+
reason_code: exports.XemaAuthzenReasonCodeSchema.optional(),
|
|
143
|
+
error: exports.XemaAuthzenItemErrorSchema.optional(),
|
|
144
|
+
snapshot: authzen_snapshot_1.XemaAuthzSnapshotTokenSchema.optional(),
|
|
145
|
+
});
|
|
146
|
+
exports.XemaAuthzenErrorBodySchema = zod_1.z
|
|
147
|
+
.object({
|
|
148
|
+
code: exports.XemaAuthzenErrorCodeSchema,
|
|
149
|
+
message: zod_1.z.string().min(1),
|
|
150
|
+
})
|
|
151
|
+
.and(authzen_entities_1.AuthzenAttributesSchema);
|
|
152
|
+
//# sourceMappingURL=xema-authzen-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xema-authzen-profile.js","sourceRoot":"","sources":["../../../src/authzen/lib/xema-authzen-profile.ts"],"names":[],"mappings":";;;AAqIA,8CAYC;AAQD,4DAQC;AAQD,oDAYC;AArLD,6BAAwB;AAExB,uCAAiD;AACjD,2CAAsE;AACtE,yCAA6C;AAE7C,yDAI4B;AAC5B,yDAAkE;AAqBrD,QAAA,0BAA0B,GAAG,MAAM,CAAC,MAAM,CAAC;IACtD,qBAAW,CAAC,IAAI;IAChB,qBAAW,CAAC,KAAK;IACjB,qBAAW,CAAC,OAAO;IACnB,qBAAW,CAAC,eAAe;CACnB,CAAC,CAAC;AAIC,QAAA,4BAA4B,GAAG,OAAC,CAAC,IAAI,CAAC;IACjD,qBAAW,CAAC,IAAI;IAChB,qBAAW,CAAC,KAAK;IACjB,qBAAW,CAAC,OAAO;IACnB,qBAAW,CAAC,eAAe;CAC5B,CAAC,CAAC;AAcU,QAAA,gCAAgC,GAAG,OAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC3E,OAAC;SACE,MAAM,CAAC;QACN,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,0BAAkB,CAAC,OAAO,CAAC;QAC3C,OAAO,EAAE,sBAAa;KACvB,CAAC;SACD,MAAM,EAAE;IACX,OAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAC,CAAC,OAAO,CAAC,0BAAkB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;CACzE,CAAC,CAAC;AAWU,QAAA,kCAAkC,GAAG,OAAC;KAChD,MAAM,CAAC;IACN,YAAY,EAAE,wCAAgC,CAAC,QAAQ,EAAE;CAC1D,CAAC;KACD,MAAM,EAAE,CAAC;AAMC,QAAA,wBAAwB,GAAG,OAAC;KACtC,MAAM,CAAC;IACN,IAAI,EAAE,oCAA4B;IAClC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,0CAAkC,CAAC,QAAQ,EAAE;CAC1D,CAAC;KACD,MAAM,EAAE,CAAC;AAUC,QAAA,sBAAsB,GAAG,KAAK,CAAC;AAO/B,QAAA,2BAA2B,GAAG,GAAG,CAAC;AAGlC,QAAA,iCAAiC,GAAG,YAAY,CAAC;AAEjD,QAAA,6BAA6B,GAAG,OAAC;KAC3C,MAAM,EAAE;KACR,KAAK,CAAC,sBAAsB,EAAE;IAC7B,OAAO,EACL,8GAA8G;CACjH,CAAC,CAAC;AAGL,MAAa,4BAA6B,SAAQ,KAAK;IACrD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;CACF;AALD,oEAKC;AAGD,SAAgB,iBAAiB,CAAC,KAAa,EAAE,OAAe;IAC9D,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI;QAC5B,CAAC,OAAO,EAAE,KAAK,CAAC;QAChB,CAAC,SAAS,EAAE,OAAO,CAAC;KACZ,EAAE,CAAC;QACX,IAAI,CAAC,yCAAiC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,4BAA4B,CACpC,sBAAsB,IAAI,KAAK,OAAO,oDAAoD,CAC3F,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,GAAG,KAAK,GAAG,mCAA2B,GAAG,OAAO,EAAE,CAAC;AAC5D,CAAC;AAQD,SAAgB,wBAAwB,CAAC,EAAU;IACjD,IAAI,CAAC,qCAA6B,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QACzD,MAAM,IAAI,4BAA4B,CACpC,8BAA8B,EAAE,iCAAiC,CAClE,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,mCAA2B,CAAC,CAAC;IACtD,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;AACrE,CAAC;AAQD,SAAgB,oBAAoB,CAClC,QAAwD,EACxD,KAAa;IAEb,IAAI,QAAQ,CAAC,IAAI,KAAK,8BAAsB,EAAE,CAAC;QAC7C,OAAO,QAAQ,CAAC,EAAE,KAAK,KAAK,CAAC;IAC/B,CAAC;IACD,MAAM,MAAM,GAAG,qCAA6B,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACpE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;AAC/D,CAAC;AAGY,QAAA,yBAAyB,GAAG,wCAAqB,CAAC;AAMlD,QAAA,uBAAuB,GAAG,sCAAmB,CAAC,MAAM,CAAC;IAChE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,EAAE;QAC1C,OAAO,EAAE,iDAAiD;KAC3D,CAAC;CACH,CAAC,CAAC;AAmBU,QAAA,wBAAwB,GAAG,OAAC;KACtC,MAAM,CAAC;IACN,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACxC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACzC,UAAU,EAAE,kCAAwB,CAAC,QAAQ,EAAE;IAC/C,QAAQ,EAAE,+CAA4B,CAAC,QAAQ,EAAE;CAClD,CAAC;KACD,MAAM,EAAE,CAAC;AAIC,QAAA,iCAAiC,GAAG,OAAC;KAC/C,MAAM,CAAC;IACN,OAAO,EAAE,gCAAwB;IACjC,MAAM,EAAE,+BAAuB;IAC/B,QAAQ,EAAE,iCAAyB;IACnC,OAAO,EAAE,gCAAwB;CAClC,CAAC;KACD,MAAM,EAAE,CAAC;AAcZ,IAAY,qBAiBX;AAjBD,WAAY,qBAAqB;IAE/B,2DAAkC,CAAA;IAElC,8DAAqC,CAAA;IAErC,wEAA+C,CAAA;IAE/C,mEAA0C,CAAA;IAE1C,4EAAmD,CAAA;IAEnD,2FAAkE,CAAA;IAElE,2DAAkC,CAAA;IAElC,mEAA0C,CAAA;AAC5C,CAAC,EAjBW,qBAAqB,qCAArB,qBAAqB,QAiBhC;AAEY,QAAA,2BAA2B,GAAG,OAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;AAO/E,IAAY,oBAaX;AAbD,WAAY,oBAAoB;IAE9B,uDAA+B,CAAA;IAE/B,4DAAoC,CAAA;IAEpC,sEAA8C,CAAA;IAE9C,oDAA4B,CAAA;IAE5B,wDAAgC,CAAA;IAEhC,8DAAsC,CAAA;AACxC,CAAC,EAbW,oBAAoB,oCAApB,oBAAoB,QAa/B;AAEY,QAAA,0BAA0B,GAAG,OAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;AAGhE,QAAA,0BAA0B,GAAG,OAAC;KACxC,MAAM,CAAC;IACN,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAC1C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAI,EAAE,kCAA0B;CACjC,CAAC;KACD,MAAM,EAAE,CAAC;AAOC,QAAA,gCAAgC,GAAG,OAAC,CAAC,MAAM,CAAC;IACvD,WAAW,EAAE,mCAA2B,CAAC,QAAQ,EAAE;IACnD,KAAK,EAAE,kCAA0B,CAAC,QAAQ,EAAE;IAC5C,QAAQ,EAAE,+CAA4B,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAUU,QAAA,0BAA0B,GAAG,OAAC;KACxC,MAAM,CAAC;IACN,IAAI,EAAE,kCAA0B;IAChC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3B,CAAC;KACD,GAAG,CAAC,0CAAuB,CAAC,CAAC"}
|
|
@@ -30,6 +30,7 @@ export declare enum ContributionKind {
|
|
|
30
30
|
Capability = "capability",
|
|
31
31
|
ResourceOwnership = "resource-ownership",
|
|
32
32
|
ResourceKind = "resource-kind",
|
|
33
|
+
AuthorizationModule = "authorization-module",
|
|
33
34
|
ResourceDefinition = "resource-definition",
|
|
34
35
|
StageMachine = "stage-machine",
|
|
35
36
|
SearchType = "search-type",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contribution-kind.d.ts","sourceRoot":"","sources":["../../../src/contribution/lib/contribution-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqFxB,oBAAY,gBAAgB;IAW1B,YAAY,kBAAkB;IAC9B,UAAU,gBAAgB;IAC1B,WAAW,iBAAiB;IAuC5B,SAAS,eAAe;IAmBxB,YAAY,kBAAkB;IAC9B,UAAU,gBAAgB;IA2B1B,WAAW,iBAAiB;IAQ5B,YAAY,kBAAkB;IAE9B,YAAY,kBAAkB;IAE9B,gBAAgB,uBAAuB;IAEvC,QAAQ,aAAa;IAErB,YAAY,kBAAkB;IAM9B,WAAW,iBAAiB;IAW5B,cAAc,oBAAoB;IAclC,kBAAkB,yBAAyB;IAY3C,IAAI,SAAS;IAEb,UAAU,gBAAgB;IAe1B,oBAAoB,0BAA0B;IAG9C,gBAAgB,sBAAsB;IAmBtC,eAAe,qBAAqB;IAIpC,cAAc,oBAAoB;IAElC,eAAe,qBAAqB;IAEpC,iBAAiB,uBAAuB;IAMxC,WAAW,iBAAiB;IAI5B,UAAU,gBAAgB;IA4C1B,YAAY,kBAAkB;IAuB9B,cAAc,oBAAoB;IAmClC,UAAU,eAAe;
|
|
1
|
+
{"version":3,"file":"contribution-kind.d.ts","sourceRoot":"","sources":["../../../src/contribution/lib/contribution-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqFxB,oBAAY,gBAAgB;IAW1B,YAAY,kBAAkB;IAC9B,UAAU,gBAAgB;IAC1B,WAAW,iBAAiB;IAuC5B,SAAS,eAAe;IAmBxB,YAAY,kBAAkB;IAC9B,UAAU,gBAAgB;IA2B1B,WAAW,iBAAiB;IAQ5B,YAAY,kBAAkB;IAE9B,YAAY,kBAAkB;IAE9B,gBAAgB,uBAAuB;IAEvC,QAAQ,aAAa;IAErB,YAAY,kBAAkB;IAM9B,WAAW,iBAAiB;IAW5B,cAAc,oBAAoB;IAclC,kBAAkB,yBAAyB;IAY3C,IAAI,SAAS;IAEb,UAAU,gBAAgB;IAe1B,oBAAoB,0BAA0B;IAG9C,gBAAgB,sBAAsB;IAmBtC,eAAe,qBAAqB;IAIpC,cAAc,oBAAoB;IAElC,eAAe,qBAAqB;IAEpC,iBAAiB,uBAAuB;IAMxC,WAAW,iBAAiB;IAI5B,UAAU,gBAAgB;IA4C1B,YAAY,kBAAkB;IAuB9B,cAAc,oBAAoB;IAmClC,UAAU,eAAe;IAsBzB,iBAAiB,uBAAuB;IA8CxC,YAAY,kBAAkB;IAsB9B,mBAAmB,yBAAyB;IAa5C,kBAAkB,wBAAwB;IAc1C,YAAY,kBAAkB;IAkB9B,UAAU,gBAAgB;IAoB1B,kBAAkB,wBAAwB;IAmB1C,mBAAmB,0BAA0B;IA4B7C,YAAY,kBAAkB;IA0B9B,0BAA0B,kCAAkC;IAkB5D,eAAe,qBAAqB;IAsCpC,sBAAsB,4BAA4B;IAoClD,0BAA0B,sBAAsB;CACjD;AAMD,eAAO,MAAM,sBAAsB,oCAAiC,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAAG,GAAG,gBAAgB,EAAE,CAAC"}
|
|
@@ -34,6 +34,7 @@ var ContributionKind;
|
|
|
34
34
|
ContributionKind["Capability"] = "capability";
|
|
35
35
|
ContributionKind["ResourceOwnership"] = "resource-ownership";
|
|
36
36
|
ContributionKind["ResourceKind"] = "resource-kind";
|
|
37
|
+
ContributionKind["AuthorizationModule"] = "authorization-module";
|
|
37
38
|
ContributionKind["ResourceDefinition"] = "resource-definition";
|
|
38
39
|
ContributionKind["StageMachine"] = "stage-machine";
|
|
39
40
|
ContributionKind["SearchType"] = "search-type";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contribution-kind.js","sourceRoot":"","sources":["../../../src/contribution/lib/contribution-kind.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAqFxB,IAAY,
|
|
1
|
+
{"version":3,"file":"contribution-kind.js","sourceRoot":"","sources":["../../../src/contribution/lib/contribution-kind.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAqFxB,IAAY,gBA8nBX;AA9nBD,WAAY,gBAAgB;IAW1B,kDAA8B,CAAA;IAC9B,8CAA0B,CAAA;IAC1B,gDAA4B,CAAA;IAuC5B,4CAAwB,CAAA;IAmBxB,kDAA8B,CAAA;IAC9B,8CAA0B,CAAA;IA2B1B,gDAA4B,CAAA;IAQ5B,kDAA8B,CAAA;IAE9B,kDAA8B,CAAA;IAE9B,2DAAuC,CAAA;IAEvC,yCAAqB,CAAA;IAErB,kDAA8B,CAAA;IAM9B,gDAA4B,CAAA;IAW5B,sDAAkC,CAAA;IAclC,+DAA2C,CAAA;IAY3C,iCAAa,CAAA;IAEb,8CAA0B,CAAA;IAe1B,kEAA8C,CAAA;IAG9C,0DAAsC,CAAA;IAmBtC,wDAAoC,CAAA;IAIpC,sDAAkC,CAAA;IAElC,wDAAoC,CAAA;IAEpC,4DAAwC,CAAA;IAMxC,gDAA4B,CAAA;IAI5B,8CAA0B,CAAA;IA4C1B,kDAA8B,CAAA;IAuB9B,sDAAkC,CAAA;IAmClC,6CAAyB,CAAA;IAsBzB,4DAAwC,CAAA;IA8CxC,kDAA8B,CAAA;IAsB9B,gEAA4C,CAAA;IAa5C,8DAA0C,CAAA;IAc1C,kDAA8B,CAAA;IAkB9B,8CAA0B,CAAA;IAoB1B,8DAA0C,CAAA;IAmB1C,iEAA6C,CAAA;IA4B7C,kDAA8B,CAAA;IA0B9B,gFAA4D,CAAA;IAkB5D,wDAAoC,CAAA;IAsCpC,sEAAkD,CAAA;IAoClD,oEAAgD,CAAA;AAClD,CAAC,EA9nBW,gBAAgB,gCAAhB,gBAAgB,QA8nB3B;AAMY,QAAA,sBAAsB,GAAG,OAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC"}
|