@xemahq/contracts 0.32.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.
Files changed (122) hide show
  1. package/dist/.source-stamp.json +2 -2
  2. package/dist/authorization-facts/index.d.ts +6 -0
  3. package/dist/authorization-facts/index.d.ts.map +1 -0
  4. package/dist/authorization-facts/index.js +22 -0
  5. package/dist/authorization-facts/index.js.map +1 -0
  6. package/dist/authorization-facts/lib/fact-tuple.d.ts +38 -0
  7. package/dist/authorization-facts/lib/fact-tuple.d.ts.map +1 -0
  8. package/dist/authorization-facts/lib/fact-tuple.js +48 -0
  9. package/dist/authorization-facts/lib/fact-tuple.js.map +1 -0
  10. package/dist/authorization-facts/lib/facts-apply.d.ts +244 -0
  11. package/dist/authorization-facts/lib/facts-apply.d.ts.map +1 -0
  12. package/dist/authorization-facts/lib/facts-apply.js +141 -0
  13. package/dist/authorization-facts/lib/facts-apply.js.map +1 -0
  14. package/dist/authorization-facts/lib/facts-snapshot.d.ts +70 -0
  15. package/dist/authorization-facts/lib/facts-snapshot.d.ts.map +1 -0
  16. package/dist/authorization-facts/lib/facts-snapshot.js +39 -0
  17. package/dist/authorization-facts/lib/facts-snapshot.js.map +1 -0
  18. package/dist/authorization-facts/lib/facts-writer-authority.d.ts +15 -0
  19. package/dist/authorization-facts/lib/facts-writer-authority.d.ts.map +1 -0
  20. package/dist/authorization-facts/lib/facts-writer-authority.js +55 -0
  21. package/dist/authorization-facts/lib/facts-writer-authority.js.map +1 -0
  22. package/dist/authorization-facts/lib/revoke-intent.d.ts +23 -0
  23. package/dist/authorization-facts/lib/revoke-intent.d.ts.map +1 -0
  24. package/dist/authorization-facts/lib/revoke-intent.js +37 -0
  25. package/dist/authorization-facts/lib/revoke-intent.js.map +1 -0
  26. package/dist/authorization-module/index.d.ts +6 -0
  27. package/dist/authorization-module/index.d.ts.map +1 -0
  28. package/dist/authorization-module/index.js +22 -0
  29. package/dist/authorization-module/index.js.map +1 -0
  30. package/dist/authorization-module/lib/authorization-composition-error.d.ts +45 -0
  31. package/dist/authorization-module/lib/authorization-composition-error.d.ts.map +1 -0
  32. package/dist/authorization-module/lib/authorization-composition-error.js +52 -0
  33. package/dist/authorization-module/lib/authorization-composition-error.js.map +1 -0
  34. package/dist/authorization-module/lib/authorization-module-contribution.d.ts +143 -0
  35. package/dist/authorization-module/lib/authorization-module-contribution.d.ts.map +1 -0
  36. package/dist/authorization-module/lib/authorization-module-contribution.js +111 -0
  37. package/dist/authorization-module/lib/authorization-module-contribution.js.map +1 -0
  38. package/dist/authorization-module/lib/authorization-module-envelope.d.ts +116 -0
  39. package/dist/authorization-module/lib/authorization-module-envelope.d.ts.map +1 -0
  40. package/dist/authorization-module/lib/authorization-module-envelope.js +104 -0
  41. package/dist/authorization-module/lib/authorization-module-envelope.js.map +1 -0
  42. package/dist/authorization-module/lib/authorization-namespace.d.ts +23 -0
  43. package/dist/authorization-module/lib/authorization-namespace.d.ts.map +1 -0
  44. package/dist/authorization-module/lib/authorization-namespace.js +82 -0
  45. package/dist/authorization-module/lib/authorization-namespace.js.map +1 -0
  46. package/dist/authorization-module/lib/platform-authorization-modules.d.ts +17 -0
  47. package/dist/authorization-module/lib/platform-authorization-modules.d.ts.map +1 -0
  48. package/dist/authorization-module/lib/platform-authorization-modules.js +46 -0
  49. package/dist/authorization-module/lib/platform-authorization-modules.js.map +1 -0
  50. package/dist/authorization-module/platform/xema_capability.fga +23 -0
  51. package/dist/authorization-module/platform/xema_capability.fga.yaml +108 -0
  52. package/dist/authorization-module/platform/xema_core.fga +81 -0
  53. package/dist/authorization-module/platform/xema_core.fga.yaml +121 -0
  54. package/dist/authorization-module/platform/xema_sharing.fga +113 -0
  55. package/dist/authorization-module/platform/xema_sharing.fga.yaml +67 -0
  56. package/dist/authorization-module/server/authorization-compatibility.d.ts +16 -0
  57. package/dist/authorization-module/server/authorization-compatibility.d.ts.map +1 -0
  58. package/dist/authorization-module/server/authorization-compatibility.js +94 -0
  59. package/dist/authorization-module/server/authorization-compatibility.js.map +1 -0
  60. package/dist/authorization-module/server/authorization-model-json.d.ts +65 -0
  61. package/dist/authorization-module/server/authorization-model-json.d.ts.map +1 -0
  62. package/dist/authorization-module/server/authorization-model-json.js +21 -0
  63. package/dist/authorization-module/server/authorization-model-json.js.map +1 -0
  64. package/dist/authorization-module/server/compose-authorization-base.d.ts +67 -0
  65. package/dist/authorization-module/server/compose-authorization-base.d.ts.map +1 -0
  66. package/dist/authorization-module/server/compose-authorization-base.js +511 -0
  67. package/dist/authorization-module/server/compose-authorization-base.js.map +1 -0
  68. package/dist/authorization-module/server/index.d.ts +5 -0
  69. package/dist/authorization-module/server/index.d.ts.map +1 -0
  70. package/dist/authorization-module/server/index.js +21 -0
  71. package/dist/authorization-module/server/index.js.map +1 -0
  72. package/dist/authorization-module/server/platform-module-files.d.ts +16 -0
  73. package/dist/authorization-module/server/platform-module-files.d.ts.map +1 -0
  74. package/dist/authorization-module/server/platform-module-files.js +42 -0
  75. package/dist/authorization-module/server/platform-module-files.js.map +1 -0
  76. package/dist/authzen/index.d.ts +7 -0
  77. package/dist/authzen/index.d.ts.map +1 -0
  78. package/dist/authzen/index.js +23 -0
  79. package/dist/authzen/index.js.map +1 -0
  80. package/dist/authzen/lib/authzen-entities.d.ts +40 -0
  81. package/dist/authzen/lib/authzen-entities.d.ts.map +1 -0
  82. package/dist/authzen/lib/authzen-entities.js +48 -0
  83. package/dist/authzen/lib/authzen-entities.js.map +1 -0
  84. package/dist/authzen/lib/authzen-evaluation.d.ts +101 -0
  85. package/dist/authzen/lib/authzen-evaluation.d.ts.map +1 -0
  86. package/dist/authzen/lib/authzen-evaluation.js +103 -0
  87. package/dist/authzen/lib/authzen-evaluation.js.map +1 -0
  88. package/dist/authzen/lib/authzen-metadata.d.ts +25 -0
  89. package/dist/authzen/lib/authzen-metadata.d.ts.map +1 -0
  90. package/dist/authzen/lib/authzen-metadata.js +54 -0
  91. package/dist/authzen/lib/authzen-metadata.js.map +1 -0
  92. package/dist/authzen/lib/authzen-search.d.ts +135 -0
  93. package/dist/authzen/lib/authzen-search.d.ts.map +1 -0
  94. package/dist/authzen/lib/authzen-search.js +89 -0
  95. package/dist/authzen/lib/authzen-search.js.map +1 -0
  96. package/dist/authzen/lib/authzen-snapshot.d.ts +47 -0
  97. package/dist/authzen/lib/authzen-snapshot.d.ts.map +1 -0
  98. package/dist/authzen/lib/authzen-snapshot.js +96 -0
  99. package/dist/authzen/lib/authzen-snapshot.js.map +1 -0
  100. package/dist/authzen/lib/xema-authzen-profile.d.ts +155 -0
  101. package/dist/authzen/lib/xema-authzen-profile.d.ts.map +1 -0
  102. package/dist/authzen/lib/xema-authzen-profile.js +152 -0
  103. package/dist/authzen/lib/xema-authzen-profile.js.map +1 -0
  104. package/dist/contribution/lib/contribution-kind.d.ts +1 -0
  105. package/dist/contribution/lib/contribution-kind.d.ts.map +1 -1
  106. package/dist/contribution/lib/contribution-kind.js +1 -0
  107. package/dist/contribution/lib/contribution-kind.js.map +1 -1
  108. package/dist/platform-generation/index.d.ts +2 -0
  109. package/dist/platform-generation/index.d.ts.map +1 -0
  110. package/dist/platform-generation/index.js +18 -0
  111. package/dist/platform-generation/index.js.map +1 -0
  112. package/dist/platform-generation/lib/platform-generation.d.ts +20 -0
  113. package/dist/platform-generation/lib/platform-generation.d.ts.map +1 -0
  114. package/dist/platform-generation/lib/platform-generation.js +77 -0
  115. package/dist/platform-generation/lib/platform-generation.js.map +1 -0
  116. package/dist/resource/lib/resource-kind-descriptor.d.ts.map +1 -1
  117. package/dist/resource/lib/resource-kind-descriptor.js.map +1 -1
  118. package/dist/resource/lib/resource-kind-registry.d.ts.map +1 -1
  119. package/dist/resource/lib/resource-kind-registry.js.map +1 -1
  120. package/dist/resource/lib/resource-ownership-contribution.d.ts.map +1 -1
  121. package/dist/resource/lib/resource-ownership-contribution.js.map +1 -1
  122. 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":"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"}
@@ -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;IAezB,iBAAiB,uBAAuB;IAwCxC,YAAY,kBAAkB;IAa9B,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"}
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,gBA2lBX;AA3lBD,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;IAezB,4DAAwC,CAAA;IAwCxC,kDAA8B,CAAA;IAa9B,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,EA3lBW,gBAAgB,gCAAhB,gBAAgB,QA2lB3B;AAMY,QAAA,sBAAsB,GAAG,OAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC"}
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"}
@@ -0,0 +1,2 @@
1
+ export * from './lib/platform-generation';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/platform-generation/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./lib/platform-generation"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/platform-generation/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}