@spinajs/authz-http-admin 3.0.3 → 3.0.5

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 (83) hide show
  1. package/lib/cjs/controllers/AuthzAdminController.d.ts +35 -19
  2. package/lib/cjs/controllers/AuthzAdminController.d.ts.map +1 -1
  3. package/lib/cjs/controllers/AuthzAdminController.js +56 -28
  4. package/lib/cjs/controllers/AuthzAdminController.js.map +1 -1
  5. package/lib/cjs/routes/query.d.ts +12 -4
  6. package/lib/cjs/routes/query.d.ts.map +1 -1
  7. package/lib/cjs/routes/query.js +18 -6
  8. package/lib/cjs/routes/query.js.map +1 -1
  9. package/lib/cjs/routes/status.d.ts +1 -1
  10. package/lib/cjs/routes/status.d.ts.map +1 -1
  11. package/lib/cjs/routes/status.js +4 -2
  12. package/lib/cjs/routes/status.js.map +1 -1
  13. package/lib/cjs/schemas/bodies.d.ts +1 -0
  14. package/lib/cjs/schemas/bodies.d.ts.map +1 -1
  15. package/lib/cjs/schemas/bodies.js +3 -7
  16. package/lib/cjs/schemas/bodies.js.map +1 -1
  17. package/lib/cjs/schemas/commands.d.ts +15 -1
  18. package/lib/cjs/schemas/commands.d.ts.map +1 -1
  19. package/lib/cjs/schemas/commands.js +48 -3
  20. package/lib/cjs/schemas/commands.js.map +1 -1
  21. package/lib/cjs/schemas/document.d.ts +5 -2
  22. package/lib/cjs/schemas/document.d.ts.map +1 -1
  23. package/lib/cjs/schemas/document.js +12 -8
  24. package/lib/cjs/schemas/document.js.map +1 -1
  25. package/lib/cjs/schemas/index.d.ts +1 -0
  26. package/lib/cjs/schemas/index.d.ts.map +1 -1
  27. package/lib/cjs/schemas/index.js +1 -0
  28. package/lib/cjs/schemas/index.js.map +1 -1
  29. package/lib/cjs/schemas/primitives.d.ts +2 -0
  30. package/lib/cjs/schemas/primitives.d.ts.map +1 -1
  31. package/lib/cjs/schemas/primitives.js +10 -0
  32. package/lib/cjs/schemas/primitives.js.map +1 -1
  33. package/lib/cjs/schemas/provider.d.ts +5 -1
  34. package/lib/cjs/schemas/provider.d.ts.map +1 -1
  35. package/lib/cjs/schemas/provider.js +15 -1
  36. package/lib/cjs/schemas/provider.js.map +1 -1
  37. package/lib/cjs/schemas/registry.d.ts +21 -0
  38. package/lib/cjs/schemas/registry.d.ts.map +1 -0
  39. package/lib/cjs/schemas/registry.js +71 -0
  40. package/lib/cjs/schemas/registry.js.map +1 -0
  41. package/lib/mjs/controllers/AuthzAdminController.d.ts +35 -19
  42. package/lib/mjs/controllers/AuthzAdminController.d.ts.map +1 -1
  43. package/lib/mjs/controllers/AuthzAdminController.js +58 -30
  44. package/lib/mjs/controllers/AuthzAdminController.js.map +1 -1
  45. package/lib/mjs/routes/query.d.ts +12 -4
  46. package/lib/mjs/routes/query.d.ts.map +1 -1
  47. package/lib/mjs/routes/query.js +18 -6
  48. package/lib/mjs/routes/query.js.map +1 -1
  49. package/lib/mjs/routes/status.d.ts +1 -1
  50. package/lib/mjs/routes/status.d.ts.map +1 -1
  51. package/lib/mjs/routes/status.js +4 -2
  52. package/lib/mjs/routes/status.js.map +1 -1
  53. package/lib/mjs/schemas/bodies.d.ts +1 -0
  54. package/lib/mjs/schemas/bodies.d.ts.map +1 -1
  55. package/lib/mjs/schemas/bodies.js +4 -8
  56. package/lib/mjs/schemas/bodies.js.map +1 -1
  57. package/lib/mjs/schemas/commands.d.ts +15 -1
  58. package/lib/mjs/schemas/commands.d.ts.map +1 -1
  59. package/lib/mjs/schemas/commands.js +47 -2
  60. package/lib/mjs/schemas/commands.js.map +1 -1
  61. package/lib/mjs/schemas/document.d.ts +5 -2
  62. package/lib/mjs/schemas/document.d.ts.map +1 -1
  63. package/lib/mjs/schemas/document.js +12 -8
  64. package/lib/mjs/schemas/document.js.map +1 -1
  65. package/lib/mjs/schemas/index.d.ts +1 -0
  66. package/lib/mjs/schemas/index.d.ts.map +1 -1
  67. package/lib/mjs/schemas/index.js +1 -0
  68. package/lib/mjs/schemas/index.js.map +1 -1
  69. package/lib/mjs/schemas/primitives.d.ts +2 -0
  70. package/lib/mjs/schemas/primitives.d.ts.map +1 -1
  71. package/lib/mjs/schemas/primitives.js +9 -0
  72. package/lib/mjs/schemas/primitives.js.map +1 -1
  73. package/lib/mjs/schemas/provider.d.ts +5 -1
  74. package/lib/mjs/schemas/provider.d.ts.map +1 -1
  75. package/lib/mjs/schemas/provider.js +16 -2
  76. package/lib/mjs/schemas/provider.js.map +1 -1
  77. package/lib/mjs/schemas/registry.d.ts +21 -0
  78. package/lib/mjs/schemas/registry.d.ts.map +1 -0
  79. package/lib/mjs/schemas/registry.js +67 -0
  80. package/lib/mjs/schemas/registry.js.map +1 -0
  81. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  82. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  83. package/package.json +12 -12
@@ -67,19 +67,29 @@ function count(q, field) {
67
67
  invalid(field, `${field} must be a non-negative integer`);
68
68
  return Number(v);
69
69
  }
70
- /** `limit` and `offset` as AuthzAdmin's page, only the ones given; AuthzAdmin defaults the rest. */
70
+ /** `after`, the `next` of the previous page; it replaces `offset`. */
71
+ function cursor(q, offset) {
72
+ const after = text(q, 'after');
73
+ if (after === '')
74
+ invalid('after', 'after must not be empty');
75
+ if (after !== undefined && offset !== undefined)
76
+ invalid('after', 'after replaces offset: give one of them');
77
+ return after;
78
+ }
79
+ /** `limit`, `offset` and `after` as AuthzAdmin's page, only the ones given; AuthzAdmin defaults the rest. */
71
80
  function page(q) {
72
81
  const limit = count(q, 'limit');
73
82
  const offset = count(q, 'offset');
74
- if (limit === undefined && offset === undefined)
83
+ const after = cursor(q, offset);
84
+ if (limit === undefined && offset === undefined && after === undefined)
75
85
  return {};
76
- return { page: { ...(limit === undefined ? {} : { limit }), ...(offset === undefined ? {} : { offset }) } };
86
+ return { page: { ...(limit === undefined ? {} : { limit }), ...(offset === undefined ? {} : { offset }), ...(after === undefined ? {} : { after }) } };
77
87
  }
78
88
  function scope(q) {
79
89
  const v = text(q, 'scope');
80
90
  return v === undefined ? {} : { scope: parseResourceRef(v, 'scope') };
81
91
  }
82
- /** GET /authz/assignments: `scope`, `subject`, `role`, `includeExpired`, `limit`, `offset`. */
92
+ /** GET /authz/assignments: `scope`, `subject`, `role`, `includeExpired`, `limit`, `offset` or `after`. */
83
93
  function readAssignmentsQuery(q) {
84
94
  const subject = text(q, 'subject');
85
95
  const role = text(q, 'role');
@@ -93,7 +103,7 @@ function readAssignmentsQuery(q) {
93
103
  ...page(q),
94
104
  };
95
105
  }
96
- /** GET /authz/holders: `scope` and `permission` (both required), `expandSets`, `limit`, `offset`. */
106
+ /** GET /authz/holders: `scope` and `permission` (both required), `expandSets`, `limit`, `offset` or `after`. */
97
107
  function readHoldersQuery(q) {
98
108
  const scope = text(q, 'scope');
99
109
  const permission = text(q, 'permission');
@@ -110,8 +120,10 @@ function readHoldersQuery(q) {
110
120
  ...page(q),
111
121
  };
112
122
  }
113
- /** GET /authz/links, /authz/rules and /authz/policies: `scope`, `limit`, `offset`. */
123
+ /** GET /authz/links and /authz/rules: `scope`, `limit`, `offset` or `after`; GET /authz/policies has no `after`. */
114
124
  function readPageQuery(kind, q) {
125
+ if (kind === 'policies' && text(q, 'after') !== undefined)
126
+ invalid('after', 'policies are paged by offset: after is not supported');
115
127
  return { kind, ...scope(q), ...page(q) };
116
128
  }
117
129
  /** The AuthzAdminOptions of a single-command route: `reason`, `idempotencyKey`, `dryRun`. */
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/routes/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/routes/query.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { AuthzCommandResult } from '@spinajs/authz';
2
- /** The HTTP status of an AuthzAdminError code: refusals 403, not_found 404, conflict 409, the rest (validation) 400. */
2
+ /** The HTTP status of an AuthzAdminError code: refusals and hook refusals 403, a failing hook 500, not_found 404, conflict 409, the rest (validation) 400. */
3
3
  export declare function adminErrorStatus(code: string): number;
4
4
  /** 200 when every command succeeded, else the status of the failed one (a batch reports its first failure). */
5
5
  export declare function resultsStatus(results: readonly AuthzCommandResult[]): number;
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/routes/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIzD,wHAAwH;AACxH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,+GAA+G;AAC/G,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,GAAG,MAAM,CAG5E"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/routes/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAIzD,8JAA8J;AAC9J,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,+GAA+G;AAC/G,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,GAAG,MAAM,CAG5E"}
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.adminErrorStatus = adminErrorStatus;
4
4
  exports.resultsStatus = resultsStatus;
5
5
  const REFUSED = new Set(['forbidden', 'escalation', 'last_holder', 'self_lockout', 'protected_role']);
6
- /** The HTTP status of an AuthzAdminError code: refusals 403, not_found 404, conflict 409, the rest (validation) 400. */
6
+ /** The HTTP status of an AuthzAdminError code: refusals and hook refusals 403, a failing hook 500, not_found 404, conflict 409, the rest (validation) 400. */
7
7
  function adminErrorStatus(code) {
8
- if (REFUSED.has(code))
8
+ if (REFUSED.has(code) || code.startsWith('hook:'))
9
9
  return 403;
10
+ if (code === 'hook_error')
11
+ return 500;
10
12
  if (code === 'not_found')
11
13
  return 404;
12
14
  if (code === 'conflict')
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/routes/status.ts"],"names":[],"mappings":";;;;AAEA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAEtG,wHAAwH;AACxH,0BAAiC,IAAY;IAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC;IAClC,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,GAAG,CAAC;IACrC,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+GAA+G;AAC/G,uBAA8B,OAAsC;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/routes/status.ts"],"names":[],"mappings":";;;;AAEA,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAEtG,8JAA8J;AAC9J,0BAAiC,IAAY;IAC3C,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,GAAG,CAAC;IAC9D,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,GAAG,CAAC;IACtC,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,GAAG,CAAC;IACrC,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC;IACpC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,+GAA+G;AAC/G,uBAA8B,OAAsC;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1C,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1E,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { JsonSchema } from './primitives.js';
2
+ /** Over the built-in command schemas; AuthzAdminSchemaProvider serves it over every registered source. */
2
3
  export declare const AuthzAdminBatch: JsonSchema;
3
4
  export declare const AuthzAssignmentGrant: JsonSchema;
4
5
  export declare const AuthzAssignmentPatch: JsonSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"bodies.d.ts","sourceRoot":"","sources":["../../../src/schemas/bodies.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAWlD,eAAO,MAAM,eAAe,EAAE,UAAiO,CAAC;AAEhQ,eAAO,MAAM,oBAAoB,EAAE,UAA2S,CAAC;AAE/U,eAAO,MAAM,oBAAoB,EAAE,UAIlC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,UAA4T,CAAC;AAE3V,eAAO,MAAM,cAAc,EAAE,UAI5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,UAA4H,CAAC;AACzJ,eAAO,MAAM,eAAe,EAAE,UAA2I,CAAC;AAC1K,eAAO,MAAM,oBAAoB,EAAE,UAAyH,CAAC;AAC7J,eAAO,MAAM,mBAAmB,EAAE,UAA+G,CAAC;AAIlJ,eAAO,MAAM,eAAe,EAAE,UAA+Z,CAAC;AAM9b,eAAO,MAAM,kBAAkB,EAAE,UAA4E,CAAC;AAE9G,eAAO,MAAM,iBAAiB,EAAE,UAAyR,CAAC;AAE1T,eAAO,MAAM,cAAc,EAAE,UAA0L,CAAC;AAExN,eAAO,MAAM,oBAAoB,EAAE,UAAuE,CAAC"}
1
+ {"version":3,"file":"bodies.d.ts","sourceRoot":"","sources":["../../../src/schemas/bodies.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAKlD,0GAA0G;AAC1G,eAAO,MAAM,eAAe,EAAE,UAAyC,CAAC;AAExE,eAAO,MAAM,oBAAoB,EAAE,UAA2S,CAAC;AAE/U,eAAO,MAAM,oBAAoB,EAAE,UAIlC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,UAA4T,CAAC;AAE3V,eAAO,MAAM,cAAc,EAAE,UAI5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,UAA4H,CAAC;AACzJ,eAAO,MAAM,eAAe,EAAE,UAA2I,CAAC;AAC1K,eAAO,MAAM,oBAAoB,EAAE,UAAyH,CAAC;AAC7J,eAAO,MAAM,mBAAmB,EAAE,UAA+G,CAAC;AAIlJ,eAAO,MAAM,eAAe,EAAE,UAA+Z,CAAC;AAM9b,eAAO,MAAM,kBAAkB,EAAE,UAA4E,CAAC;AAE9G,eAAO,MAAM,iBAAiB,EAAE,UAAyR,CAAC;AAE1T,eAAO,MAAM,cAAc,EAAE,UAA+T,CAAC;AAE7V,eAAO,MAAM,oBAAoB,EAAE,UAAuE,CAAC"}
@@ -5,12 +5,8 @@ const commands_js_1 = require("./commands.js");
5
5
  const primitives_js_1 = require("./primitives.js");
6
6
  const { id: _ruleId, ...ruleFields } = commands_js_1.ruleBody.properties;
7
7
  const { id: _policyId, ...policyFields } = commands_js_1.policyBody.properties;
8
- const writeOptions = {
9
- reason: { ...primitives_js_1.text, description: 'goes to the audit trail' },
10
- idempotencyKey: { ...primitives_js_1.text, description: 'a retried batch with the same key returns the first result' },
11
- dryRun: { type: 'boolean', description: 'validate and guard, then roll back' },
12
- };
13
- exports.AuthzAdminBatch = (0, primitives_js_1.obj)(['commands'], { commands: { type: 'array', items: { oneOf: commands_js_1.commandSchemas } }, ...writeOptions }, 'POST /authz/commands: the commands run in one transaction, in order; the first failure rolls the batch back');
8
+ /** Over the built-in command schemas; AuthzAdminSchemaProvider serves it over every registered source. */
9
+ exports.AuthzAdminBatch = (0, primitives_js_1.commandBatch)(commands_js_1.commandSchemas);
14
10
  exports.AuthzAssignmentGrant = (0, primitives_js_1.obj)(['subject', 'role', 'scope'], { subject: primitives_js_1.assignmentSubject, role: primitives_js_1.text, scope: primitives_js_1.resourceRef, tags: primitives_js_1.tags, expiresAt: primitives_js_1.nullableDateTime, replaceLadder: { type: 'boolean' } }, 'POST /authz/assignments: the fields of assignment.grant (reason, idempotencyKey and dryRun go in the query string)');
15
11
  exports.AuthzAssignmentPatch = {
16
12
  ...(0, primitives_js_1.obj)([], { tags: { ...primitives_js_1.tags, description: 'replaces the tags' }, addTags: primitives_js_1.tags, removeTags: primitives_js_1.tags, expiresAt: primitives_js_1.nullableDateTime }, 'PATCH /authz/assignments/{id}: at least one key; the keys run as assignment.setTags, addTags, removeTags and setExpiry in one batch'),
@@ -34,6 +30,6 @@ const commandResult = {
34
30
  };
35
31
  exports.AuthzCommandResult = { ...commandResult, description: 'The outcome of one command' };
36
32
  exports.AuthzAdminResults = (0, primitives_js_1.obj)(['results'], { results: { type: 'array', items: commandResult, description: 'one per command, in order; the first failure ends the list' } }, 'The answer of a write route: 200 when every command succeeded, else the status of the first failure, with the same body');
37
- exports.AuthzAdminPage = (0, primitives_js_1.obj)(['items', 'total'], { items: { type: 'array', items: primitives_js_1.anyObject }, total: { type: 'integer', description: 'rows matching before paging' } }, 'The answer of a list route');
33
+ exports.AuthzAdminPage = (0, primitives_js_1.obj)(['items', 'total'], { items: { type: 'array', items: primitives_js_1.anyObject }, total: { type: 'integer', description: 'rows matching before paging' }, next: { type: 'string', description: 'pass it as `after` to read the following page; absent on the last page and on offset pages' } }, 'The answer of a list route');
38
34
  exports.AuthzAdminAttributes = { ...primitives_js_1.anyObject, description: 'The attributes of a scope' };
39
35
  //# sourceMappingURL=bodies.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bodies.js","sourceRoot":"","sources":["../../../src/schemas/bodies.ts"],"names":[],"mappings":";;;AAAA,+CAAqE;AACrE,mDAA+G;AAG/G,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,sBAAQ,CAAC,UAAwC,CAAC;AACzF,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,GAAG,wBAAU,CAAC,UAAwC,CAAC;AAE/F,MAAM,YAAY,GAAG;IACnB,MAAM,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAC3D,cAAc,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,4DAA4D,EAAE;IACtG,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oCAAoC,EAAE;CAC/E,CAAC;AAEW,QAAA,eAAe,GAAe,IAAA,mBAAG,EAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,4BAAc,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,EAAE,6GAA6G,CAAC,CAAC;AAEnP,QAAA,oBAAoB,GAAe,IAAA,mBAAG,EAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiB,EAAE,IAAI,EAAE,oBAAI,EAAE,KAAK,EAAE,2BAAW,EAAE,IAAI,EAAJ,oBAAI,EAAE,SAAS,EAAE,gCAAgB,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,oHAAoH,CAAC,CAAC;AAElU,QAAA,oBAAoB,GAAe;IAC9C,GAAG,IAAA,mBAAG,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,oBAAI,EAAE,UAAU,EAAE,oBAAI,EAAE,SAAS,EAAE,gCAAgB,EAAE,EAAE,qIAAqI,CAAC;IACxQ,oBAAoB,EAAE,KAAK;IAC3B,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;CACtF,CAAC;AAEW,QAAA,eAAe,GAAe,IAAA,mBAAG,EAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,2BAAW,EAAE,IAAI,EAAE,oBAAI,EAAE,IAAI,EAAJ,oBAAI,EAAE,SAAS,EAAE,gCAAgB,EAAE,UAAU,EAAE,yBAAS,EAAE,EAAE,yLAAyL,CAAC,CAAC;AAE9U,QAAA,cAAc,GAAe;IACxC,GAAG,IAAA,mBAAG,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,kCAAkC,EAAE,EAAE,SAAS,EAAE,gCAAgB,EAAE,UAAU,EAAE,yBAAS,EAAE,IAAI,EAAE,oBAAI,EAAE,IAAI,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,+CAA+C,EAAE,EAAE,EAAE,qGAAqG,CAAC;IACxU,oBAAoB,EAAE,KAAK;IAC3B,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;CACnF,CAAC;AAEW,QAAA,aAAa,GAAe,IAAA,mBAAG,EAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,2EAA2E,CAAC,CAAC;AAC5I,QAAA,eAAe,GAAe,IAAA,mBAAG,EAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,gFAAgF,CAAC,CAAC;AAC7J,QAAA,oBAAoB,GAAe,EAAE,GAAG,yBAAS,EAAE,WAAW,EAAE,6EAA6E,EAAE,CAAC;AAChJ,QAAA,mBAAmB,GAAe,EAAE,GAAG,yBAAS,EAAE,WAAW,EAAE,mEAAmE,EAAE,CAAC;AAElJ,MAAM,UAAU,GAAG,IAAA,mBAAG,EAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,oBAAI,EAAE,OAAO,EAAE,oBAAI,EAAE,KAAK,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,wCAAwC,EAAE,EAAE,CAAC,CAAC;AAEzI,QAAA,eAAe,GAAe,IAAA,mBAAG,EAAC,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,2WAA2W,CAAC,CAAC;AAE9b,MAAM,aAAa,GAAe;IAChC,KAAK,EAAE,CAAC,IAAA,mBAAG,EAAC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,oBAAI,EAAE,EAAE,EAAE,oBAAI,EAAE,KAAK,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,8BAA8B,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,IAAA,mBAAG,EAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,oBAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;CACnT,CAAC;AAEW,QAAA,kBAAkB,GAAe,EAAE,GAAG,aAAa,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;AAEjG,QAAA,iBAAiB,GAAe,IAAA,mBAAG,EAAC,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,4DAA4D,EAAE,EAAE,EAAE,yHAAyH,CAAC,CAAC;AAE7S,QAAA,cAAc,GAAe,IAAA,mBAAG,EAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAS,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE,EAAE,EAAE,4BAA4B,CAAC,CAAC;AAE3M,QAAA,oBAAoB,GAAe,EAAE,GAAG,yBAAS,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"bodies.js","sourceRoot":"","sources":["../../../src/schemas/bodies.ts"],"names":[],"mappings":";;;AAAA,+CAAqE;AACrE,mDAA6H;AAG7H,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,sBAAQ,CAAC,UAAwC,CAAC;AACzF,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,GAAG,wBAAU,CAAC,UAAwC,CAAC;AAE/F,0GAA0G;AAC7F,QAAA,eAAe,GAAe,IAAA,4BAAY,EAAC,4BAAc,CAAC,CAAC;AAE3D,QAAA,oBAAoB,GAAe,IAAA,mBAAG,EAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,iCAAiB,EAAE,IAAI,EAAE,oBAAI,EAAE,KAAK,EAAE,2BAAW,EAAE,IAAI,EAAJ,oBAAI,EAAE,SAAS,EAAE,gCAAgB,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,oHAAoH,CAAC,CAAC;AAElU,QAAA,oBAAoB,GAAe;IAC9C,GAAG,IAAA,mBAAG,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,oBAAI,EAAE,UAAU,EAAE,oBAAI,EAAE,SAAS,EAAE,gCAAgB,EAAE,EAAE,qIAAqI,CAAC;IACxQ,oBAAoB,EAAE,KAAK;IAC3B,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;CACtF,CAAC;AAEW,QAAA,eAAe,GAAe,IAAA,mBAAG,EAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,2BAAW,EAAE,IAAI,EAAE,oBAAI,EAAE,IAAI,EAAJ,oBAAI,EAAE,SAAS,EAAE,gCAAgB,EAAE,UAAU,EAAE,yBAAS,EAAE,EAAE,yLAAyL,CAAC,CAAC;AAE9U,QAAA,cAAc,GAAe;IACxC,GAAG,IAAA,mBAAG,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,kCAAkC,EAAE,EAAE,SAAS,EAAE,gCAAgB,EAAE,UAAU,EAAE,yBAAS,EAAE,IAAI,EAAE,oBAAI,EAAE,IAAI,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,+CAA+C,EAAE,EAAE,EAAE,qGAAqG,CAAC;IACxU,oBAAoB,EAAE,KAAK;IAC3B,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;CACnF,CAAC;AAEW,QAAA,aAAa,GAAe,IAAA,mBAAG,EAAC,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,2EAA2E,CAAC,CAAC;AAC5I,QAAA,eAAe,GAAe,IAAA,mBAAG,EAAC,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,YAAY,EAAE,gFAAgF,CAAC,CAAC;AAC7J,QAAA,oBAAoB,GAAe,EAAE,GAAG,yBAAS,EAAE,WAAW,EAAE,6EAA6E,EAAE,CAAC;AAChJ,QAAA,mBAAmB,GAAe,EAAE,GAAG,yBAAS,EAAE,WAAW,EAAE,mEAAmE,EAAE,CAAC;AAElJ,MAAM,UAAU,GAAG,IAAA,mBAAG,EAAC,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,oBAAI,EAAE,OAAO,EAAE,oBAAI,EAAE,KAAK,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,wCAAwC,EAAE,EAAE,CAAC,CAAC;AAEzI,QAAA,eAAe,GAAe,IAAA,mBAAG,EAAC,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,2WAA2W,CAAC,CAAC;AAE9b,MAAM,aAAa,GAAe;IAChC,KAAK,EAAE,CAAC,IAAA,mBAAG,EAAC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,oBAAI,EAAE,EAAE,EAAE,oBAAI,EAAE,KAAK,EAAE,EAAE,GAAG,oBAAI,EAAE,WAAW,EAAE,8BAA8B,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,IAAA,mBAAG,EAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,oBAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;CACnT,CAAC;AAEW,QAAA,kBAAkB,GAAe,EAAE,GAAG,aAAa,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;AAEjG,QAAA,iBAAiB,GAAe,IAAA,mBAAG,EAAC,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,4DAA4D,EAAE,EAAE,EAAE,yHAAyH,CAAC,CAAC;AAE7S,QAAA,cAAc,GAAe,IAAA,mBAAG,EAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAS,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,4FAA4F,EAAE,EAAE,EAAE,4BAA4B,CAAC,CAAC;AAEhV,QAAA,oBAAoB,GAAe,EAAE,GAAG,yBAAS,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC"}
@@ -1,9 +1,23 @@
1
1
  import type { JsonSchema } from './primitives.js';
2
+ import { AuthzCommandSchemaSource } from './registry.js';
2
3
  /** A rule as `rule.put` takes it; the condition language is described by @spinajs/authz. */
3
4
  export declare const ruleBody: JsonSchema;
4
5
  /** A policy as `policy.put` takes it. */
5
6
  export declare const policyBody: JsonSchema;
6
- /** The command kinds of AuthzCommand (packages/authz/src/contracts/admin.ts), in declaration order. */
7
+ /** The command kinds the built-in sources describe: authz-rbac's, authz-abac's and the core's. */
7
8
  export declare const COMMAND_KINDS: readonly ['assignment.grant', 'assignment.revoke', 'assignment.revokeWhere', 'assignment.setTags', 'assignment.addTags', 'assignment.removeTags', 'assignment.setExpiry', 'set.addMember', 'set.removeMember', 'link.create', 'link.update', 'link.revoke', 'rule.put', 'rule.delete', 'policy.put', 'policy.delete', 'scope.setAttributes', 'scope.replaceAttributes', 'scope.forget'];
9
+ /** The schemas of the built-in sources, in COMMAND_KINDS order. */
8
10
  export declare const commandSchemas: readonly JsonSchema[];
11
+ /** The commands of @spinajs/authz-rbac. */
12
+ export declare class RbacCommandSchemas extends AuthzCommandSchemaSource {
13
+ schemas(): Readonly<Record<string, JsonSchema>>;
14
+ }
15
+ /** The commands of @spinajs/authz-abac. */
16
+ export declare class AbacCommandSchemas extends AuthzCommandSchemaSource {
17
+ schemas(): Readonly<Record<string, JsonSchema>>;
18
+ }
19
+ /** The core's scope commands. */
20
+ export declare class CoreCommandSchemas extends AuthzCommandSchemaSource {
21
+ schemas(): Readonly<Record<string, JsonSchema>>;
22
+ }
9
23
  //# sourceMappingURL=commands.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/schemas/commands.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,4FAA4F;AAC5F,eAAO,MAAM,QAAQ,EAAE,UAsBtB,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,UAAU,EAAE,UAiBxB,CAAC;AAEF,uGAAuG;AACvG,eAAO,MAAM,aAAa,YAAI,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,cAAc,CAAU,CAAC;AAErZ,eAAO,MAAM,cAAc,EAAE,SAAS,UAAU,EAoB/C,CAAC"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/schemas/commands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAIzD,4FAA4F;AAC5F,eAAO,MAAM,QAAQ,EAAE,UAsBtB,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,UAAU,EAAE,UAiBxB,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,aAAa,YAAI,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,cAAc,CAAU,CAAC;AA8BrZ,mEAAmE;AACnE,eAAO,MAAM,cAAc,EAAE,SAAS,UAAU,EAAwD,CAAC;AAIzG,2CAA2C;AAC3C,qBACa,kBAAmB,SAAQ,wBAAwB;IAC9D,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAE9C;CACF;AAED,2CAA2C;AAC3C,qBACa,kBAAmB,SAAQ,wBAAwB;IAC9D,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAE9C;CACF;AAED,iCAAiC;AACjC,qBACa,kBAAmB,SAAQ,wBAAwB;IAC9D,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAE9C;CACF"}
@@ -1,7 +1,15 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
2
8
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.commandSchemas = exports.COMMAND_KINDS = exports.policyBody = exports.ruleBody = void 0;
9
+ exports.CoreCommandSchemas = exports.AbacCommandSchemas = exports.RbacCommandSchemas = exports.commandSchemas = exports.COMMAND_KINDS = exports.policyBody = exports.ruleBody = void 0;
10
+ const di_1 = require("@spinajs/di");
4
11
  const primitives_js_1 = require("./primitives.js");
12
+ const registry_js_1 = require("./registry.js");
5
13
  const idOnly = { id: { ...primitives_js_1.text, description: 'the id of the row' } };
6
14
  /** A rule as `rule.put` takes it; the condition language is described by @spinajs/authz. */
7
15
  exports.ruleBody = (0, primitives_js_1.obj)(['id', 'kind', 'scope'], {
@@ -38,9 +46,9 @@ exports.policyBody = (0, primitives_js_1.obj)(['id', 'effect', 'permissions'], {
38
46
  priority: { type: 'integer', description: 'default 500' },
39
47
  expiresAt: primitives_js_1.nullableDateTime,
40
48
  }, 'An ABAC policy; the server sets `source`');
41
- /** The command kinds of AuthzCommand (packages/authz/src/contracts/admin.ts), in declaration order. */
49
+ /** The command kinds the built-in sources describe: authz-rbac's, authz-abac's and the core's. */
42
50
  exports.COMMAND_KINDS = ['assignment.grant', 'assignment.revoke', 'assignment.revokeWhere', 'assignment.setTags', 'assignment.addTags', 'assignment.removeTags', 'assignment.setExpiry', 'set.addMember', 'set.removeMember', 'link.create', 'link.update', 'link.revoke', 'rule.put', 'rule.delete', 'policy.put', 'policy.delete', 'scope.setAttributes', 'scope.replaceAttributes', 'scope.forget'];
43
- exports.commandSchemas = [
51
+ const rbacCommands = [
44
52
  (0, primitives_js_1.command)('assignment.grant', ['subject', 'role', 'scope'], { subject: primitives_js_1.assignmentSubject, role: primitives_js_1.text, scope: primitives_js_1.resourceRef, tags: primitives_js_1.tags, expiresAt: primitives_js_1.nullableDateTime, replaceLadder: { type: 'boolean', description: "revoke the subject's other roles of the same ladder at this scope" } }, 'Grants a role to a subject at a scope'),
45
53
  (0, primitives_js_1.command)('assignment.revoke', ['id'], idOnly, 'Revokes one assignment'),
46
54
  (0, primitives_js_1.command)('assignment.revokeWhere', ['scope'], { scope: primitives_js_1.resourceRef, subject: primitives_js_1.assignmentSubject, role: primitives_js_1.text }, 'Revokes the assignments at a scope, narrowed by subject and role'),
@@ -55,10 +63,47 @@ exports.commandSchemas = [
55
63
  (0, primitives_js_1.command)('link.revoke', ['id'], idOnly, 'Revokes a share link'),
56
64
  (0, primitives_js_1.command)('rule.put', ['rule'], { rule: exports.ruleBody }, 'Inserts or replaces a RBAC rule by id'),
57
65
  (0, primitives_js_1.command)('rule.delete', ['id'], idOnly, 'Deletes a RBAC rule'),
66
+ ];
67
+ const abacCommands = [
58
68
  (0, primitives_js_1.command)('policy.put', ['policy'], { policy: exports.policyBody }, 'Inserts or replaces an ABAC policy by id'),
59
69
  (0, primitives_js_1.command)('policy.delete', ['id'], idOnly, 'Deletes an ABAC policy'),
70
+ ];
71
+ const coreCommands = [
60
72
  (0, primitives_js_1.command)('scope.setAttributes', ['scope', 'patch'], { scope: primitives_js_1.resourceRef, patch: { ...primitives_js_1.anyObject, description: 'deep merge; null deletes a path' } }, 'Merges a patch into the attributes of a scope'),
61
73
  (0, primitives_js_1.command)('scope.replaceAttributes', ['scope', 'attributes'], { scope: primitives_js_1.resourceRef, attributes: primitives_js_1.anyObject }, 'Replaces the attributes of a scope'),
62
74
  (0, primitives_js_1.command)('scope.forget', ['scope'], { scope: primitives_js_1.resourceRef }, 'Removes everything held AT a scope node (assignments, links, rules, policies, attributes)'),
63
75
  ];
76
+ /** The schemas of the built-in sources, in COMMAND_KINDS order. */
77
+ exports.commandSchemas = [...rbacCommands, ...abacCommands, ...coreCommands];
78
+ const byKind = (schemas) => Object.fromEntries(schemas.map((s) => [s.properties.kind.enum[0], s]));
79
+ /** The commands of @spinajs/authz-rbac. */
80
+ let RbacCommandSchemas = class RbacCommandSchemas extends registry_js_1.AuthzCommandSchemaSource {
81
+ schemas() {
82
+ return byKind(rbacCommands);
83
+ }
84
+ };
85
+ exports.RbacCommandSchemas = RbacCommandSchemas;
86
+ exports.RbacCommandSchemas = RbacCommandSchemas = __decorate([
87
+ (0, di_1.Injectable)(registry_js_1.AuthzCommandSchemaSource)
88
+ ], RbacCommandSchemas);
89
+ /** The commands of @spinajs/authz-abac. */
90
+ let AbacCommandSchemas = class AbacCommandSchemas extends registry_js_1.AuthzCommandSchemaSource {
91
+ schemas() {
92
+ return byKind(abacCommands);
93
+ }
94
+ };
95
+ exports.AbacCommandSchemas = AbacCommandSchemas;
96
+ exports.AbacCommandSchemas = AbacCommandSchemas = __decorate([
97
+ (0, di_1.Injectable)(registry_js_1.AuthzCommandSchemaSource)
98
+ ], AbacCommandSchemas);
99
+ /** The core's scope commands. */
100
+ let CoreCommandSchemas = class CoreCommandSchemas extends registry_js_1.AuthzCommandSchemaSource {
101
+ schemas() {
102
+ return byKind(coreCommands);
103
+ }
104
+ };
105
+ exports.CoreCommandSchemas = CoreCommandSchemas;
106
+ exports.CoreCommandSchemas = CoreCommandSchemas = __decorate([
107
+ (0, di_1.Injectable)(registry_js_1.AuthzCommandSchemaSource)
108
+ ], CoreCommandSchemas);
64
109
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/schemas/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/schemas/commands.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { JsonSchema } from './primitives.js';
1
2
  interface RouteDoc {
2
3
  readonly method: 'get' | 'post' | 'put' | 'patch' | 'delete';
3
4
  readonly path: string;
@@ -12,8 +13,10 @@ export declare const AUTHZ_ADMIN_ROUTES: readonly RouteDoc[];
12
13
  * routes read both from `@Req()` so that no http-layer step can refuse what AuthzAdmin would answer.
13
14
  * This adds what the builder cannot see to an OpenAPI document it built: the request bodies, the
14
15
  * query parameters, the path parameter text and the body schemas as components. Operations are
15
- * matched by method and path suffix, so a route prefix does not matter. Changes the document in place.
16
+ * matched by method and path suffix, so a route prefix does not matter. `basePath` is the configured
17
+ * `authz.http.admin.basePath` when the app moved the routes. Changes the document in place.
18
+ * Pass `AuthzAdminSchemaProvider.schemas()` as `schemas` to list the commands every registered model contributes.
16
19
  */
17
- export declare function describeAuthzAdminDocument<T extends object>(doc: T): T;
20
+ export declare function describeAuthzAdminDocument<T extends object>(doc: T, basePath?: string, schemas?: Readonly<Record<string, JsonSchema>>): T;
18
21
  export {};
19
22
  //# sourceMappingURL=document.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/schemas/document.ts"],"names":[],"mappings":"AAIA,UAAU,QAAQ;IAChB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAuBD,uGAAuG;AACvG,eAAO,MAAM,kBAAkB,EAAE,SAAS,QAAQ,EAoBjD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAmBtE"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/schemas/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAKlD,UAAU,QAAQ;IAChB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAwBD,uGAAuG;AACvG,eAAO,MAAM,kBAAkB,EAAE,SAAS,QAAQ,EAoBjD,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,SAAU,EAAE,OAAO,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAuB,GAAG,CAAC,CAoB/J"}
@@ -13,6 +13,7 @@ const QUERY = {
13
13
  includeExpired: { schema: { type: 'boolean' }, description: '`true` or `false`' },
14
14
  limit: { schema: { type: 'integer', minimum: 0 }, description: 'page size; the server sets the default' },
15
15
  offset: { schema: { type: 'integer', minimum: 0 }, description: 'rows to skip' },
16
+ after: { schema: { type: 'string' }, description: 'the `next` of the previous page: continues behind its last row; give it instead of `offset`' },
16
17
  reason: { schema: { type: 'string' }, description: 'goes to the audit trail' },
17
18
  idempotencyKey: { schema: { type: 'string' }, description: 'a retried request with the same key returns the first result' },
18
19
  dryRun: { schema: { type: 'boolean' }, description: '`true` validates and guards, then rolls back' },
@@ -24,16 +25,16 @@ const PATH_PARAMS = {
24
25
  /** What each route takes that the controller's signature cannot say: its body and its query string. */
25
26
  exports.AUTHZ_ADMIN_ROUTES = [
26
27
  { method: 'post', path: '/authz/commands', body: 'AuthzAdminBatch' },
27
- { method: 'get', path: '/authz/assignments', query: ['scope', 'subject', 'role', 'includeExpired', 'limit', 'offset'] },
28
- { method: 'get', path: '/authz/holders', query: ['scope', 'permission', 'expandSets', 'limit', 'offset'], requiredQuery: ['scope', 'permission'] },
28
+ { method: 'get', path: '/authz/assignments', query: ['scope', 'subject', 'role', 'includeExpired', 'limit', 'offset', 'after'] },
29
+ { method: 'get', path: '/authz/holders', query: ['scope', 'permission', 'expandSets', 'limit', 'offset', 'after'], requiredQuery: ['scope', 'permission'] },
29
30
  { method: 'post', path: '/authz/assignments', body: 'AuthzAssignmentGrant', query: WRITE_OPTIONS },
30
31
  { method: 'patch', path: '/authz/assignments/{id}', body: 'AuthzAssignmentPatch', query: WRITE_OPTIONS },
31
32
  { method: 'delete', path: '/authz/assignments/{id}', query: WRITE_OPTIONS },
32
- { method: 'get', path: '/authz/links', query: ['scope', 'limit', 'offset'] },
33
+ { method: 'get', path: '/authz/links', query: ['scope', 'limit', 'offset', 'after'] },
33
34
  { method: 'post', path: '/authz/links', body: 'AuthzLinkCreate', query: WRITE_OPTIONS },
34
35
  { method: 'patch', path: '/authz/links/{id}', body: 'AuthzLinkPatch', query: WRITE_OPTIONS },
35
36
  { method: 'delete', path: '/authz/links/{id}', query: WRITE_OPTIONS },
36
- { method: 'get', path: '/authz/rules', query: ['scope', 'limit', 'offset'] },
37
+ { method: 'get', path: '/authz/rules', query: ['scope', 'limit', 'offset', 'after'] },
37
38
  { method: 'put', path: '/authz/rules/{id}', body: 'AuthzRuleBody', query: WRITE_OPTIONS },
38
39
  { method: 'delete', path: '/authz/rules/{id}', query: WRITE_OPTIONS },
39
40
  { method: 'get', path: '/authz/policies', query: ['scope', 'limit', 'offset'] },
@@ -48,15 +49,18 @@ exports.AUTHZ_ADMIN_ROUTES = [
48
49
  * routes read both from `@Req()` so that no http-layer step can refuse what AuthzAdmin would answer.
49
50
  * This adds what the builder cannot see to an OpenAPI document it built: the request bodies, the
50
51
  * query parameters, the path parameter text and the body schemas as components. Operations are
51
- * matched by method and path suffix, so a route prefix does not matter. Changes the document in place.
52
+ * matched by method and path suffix, so a route prefix does not matter. `basePath` is the configured
53
+ * `authz.http.admin.basePath` when the app moved the routes. Changes the document in place.
54
+ * Pass `AuthzAdminSchemaProvider.schemas()` as `schemas` to list the commands every registered model contributes.
52
55
  */
53
- function describeAuthzAdminDocument(doc) {
56
+ function describeAuthzAdminDocument(doc, basePath = 'authz', schemas = provider_js_1.AUTHZ_ADMIN_SCHEMAS) {
54
57
  const document = doc;
55
58
  const components = ((document.components ??= {}).schemas ??= {});
56
- for (const [name, schema] of Object.entries(provider_js_1.AUTHZ_ADMIN_SCHEMAS))
59
+ for (const [name, schema] of Object.entries(schemas))
57
60
  components[name] ??= schema;
58
61
  for (const route of exports.AUTHZ_ADMIN_ROUTES) {
59
- const path = Object.keys(document.paths ?? {}).find((p) => p === route.path || p.endsWith(route.path));
62
+ const routePath = route.path.replace(/^\/authz/, `/${basePath.replace(/^\/+|\/+$/g, '')}`);
63
+ const path = Object.keys(document.paths ?? {}).find((p) => p === routePath || p.endsWith(routePath));
60
64
  const operation = path ? document.paths[path][route.method] : undefined;
61
65
  if (!operation)
62
66
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/schemas/document.ts"],"names":[],"mappings":";;;;AAAA,+CAAoD;AAYpD,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAU,CAAC;AAEtE,MAAM,KAAK,GAAmC;IAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,kFAAkF,EAAE;IACtI,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,yEAAyE,EAAE;IAC/H,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE;IAClF,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,oDAAoD,EAAE;IAC7G,UAAU,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,2EAA2E,EAAE;IACrI,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACjF,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,wCAAwC,EAAE;IACzG,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE;IAChF,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAC9E,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,8DAA8D,EAAE;IAC3H,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,8CAA8C,EAAE;CACrG,CAAC;AAEF,MAAM,WAAW,GAAqC;IACpD,EAAE,EAAE,yEAAyE;IAC7E,IAAI,EAAE,qCAAqC;CAC5C,CAAC;AAEF,uGAAuG;AAC1F,QAAA,kBAAkB,GAAwB;IACrD,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,iBAAiB,EAAE;IACpE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE;IACvH,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE;IAClJ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,aAAa,EAAE;IAClG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,aAAa,EAAE;IACxG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,aAAa,EAAE;IAC3E,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE;IAC5E,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE;IACvF,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE;IAC5F,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,EAAE;IACrE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE;IAC5E,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE;IACzF,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,aAAa,EAAE;IACrE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE;IAC/E,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE;IAC9F,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,aAAa,EAAE;IACxE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sCAAsC,EAAE;IAC/D,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,sCAAsC,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,aAAa,EAAE;IACrH,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sCAAsC,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,aAAa,EAAE;CACnH,CAAC;AAEF;;;;;;GAMG;AACH,oCAA6D,GAAM;IACjE,MAAM,QAAQ,GAAG,GAAW,CAAC;IAC7B,MAAM,UAAU,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,OAAO,KAAK,EAAE,CAAS,CAAC;IACzE,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iCAAmB,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;IAE9F,KAAK,MAAM,KAAK,IAAI,QAAA,kBAAkB,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACvG,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,IAAI,CAAC,SAAS;YAAE,SAAS;QAEzB,IAAI,KAAK,CAAC,IAAI;YAAE,SAAS,CAAC,WAAW,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,wBAAwB,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;QAExJ,MAAM,UAAU,GAAW,CAAC,SAAS,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC;QACzD,KAAK,MAAM,CAAC,IAAI,UAAU;YAAE,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,WAAW;gBAAE,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvG,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/schemas/document.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export * from './commands.js';
3
3
  export * from './bodies.js';
4
4
  export * from './provider.js';
5
5
  export * from './document.js';
6
+ export * from './registry.js';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
@@ -18,4 +18,5 @@ __exportStar(require("./commands.js"), exports);
18
18
  __exportStar(require("./bodies.js"), exports);
19
19
  __exportStar(require("./provider.js"), exports);
20
20
  __exportStar(require("./document.js"), exports);
21
+ __exportStar(require("./registry.js"), exports);
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,gDAA8B;AAC9B,8CAA4B;AAC5B,gDAA8B;AAC9B,gDAA8B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,gDAA8B;AAC9B,8CAA4B;AAC5B,gDAA8B;AAC9B,gDAA8B;AAC9B,gDAA8B"}
@@ -9,5 +9,7 @@ export declare const roleSet: JsonSchema;
9
9
  export declare const subjectSet: JsonSchema;
10
10
  export declare const assignmentSubject: JsonSchema;
11
11
  export declare function obj(required: readonly string[], properties: Record<string, JsonSchema>, description?: string): JsonSchema;
12
+ /** The body of POST /authz/commands over the given command schemas. */
13
+ export declare function commandBatch(commands: readonly JsonSchema[]): JsonSchema;
12
14
  export declare function command(kind: string, required: readonly string[], properties: Record<string, JsonSchema>, description: string): JsonSchema;
13
15
  //# sourceMappingURL=primitives.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/schemas/primitives.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,eAAO,MAAM,IAAI,EAAE,UAA+B,CAAC;AACnD,eAAO,MAAM,gBAAgB,EAAE,UAAmK,CAAC;AACnM,eAAO,MAAM,IAAI,EAAE,UAA2C,CAAC;AAC/D,eAAO,MAAM,SAAS,EAAE,UAA2D,CAAC;AAEpF,eAAO,MAAM,WAAW,EAAE,UAIzB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,UAI1B,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,UAA4G,CAAC;AAEnI,eAAO,MAAM,UAAU,EAAE,UAAgF,CAAC;AAE1G,eAAO,MAAM,iBAAiB,EAAE,UAAmH,CAAC;AAEpJ,wBAAgB,GAAG,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzH;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAE1I"}
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../../src/schemas/primitives.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,eAAO,MAAM,IAAI,EAAE,UAA+B,CAAC;AACnD,eAAO,MAAM,gBAAgB,EAAE,UAAmK,CAAC;AACnM,eAAO,MAAM,IAAI,EAAE,UAA2C,CAAC;AAC/D,eAAO,MAAM,SAAS,EAAE,UAA2D,CAAC;AAEpF,eAAO,MAAM,WAAW,EAAE,UAIzB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,UAI1B,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,UAA4G,CAAC;AAEnI,eAAO,MAAM,UAAU,EAAE,UAAgF,CAAC;AAE1G,eAAO,MAAM,iBAAiB,EAAE,UAAmH,CAAC;AAEpJ,wBAAgB,GAAG,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,CAEzH;AAQD,uEAAuE;AACvE,wBAAgB,YAAY,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,CAExE;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,UAAU,CAE1I"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.assignmentSubject = exports.subjectSet = exports.roleSet = exports.principalRef = exports.resourceRef = exports.anyObject = exports.tags = exports.nullableDateTime = exports.text = void 0;
4
4
  exports.obj = obj;
5
+ exports.commandBatch = commandBatch;
5
6
  exports.command = command;
6
7
  exports.text = { type: 'string' };
7
8
  exports.nullableDateTime = { type: 'string', format: 'date-time', nullable: true, description: 'ISO 8601 date-time with Z or an offset, read as a Date; null clears the expiry' };
@@ -23,6 +24,15 @@ exports.assignmentSubject = { description: 'A principal, or the holders of a rol
23
24
  function obj(required, properties, description) {
24
25
  return { type: 'object', ...(description ? { description } : {}), ...(required.length ? { required } : {}), properties };
25
26
  }
27
+ const writeOptions = {
28
+ reason: { ...exports.text, description: 'goes to the audit trail' },
29
+ idempotencyKey: { ...exports.text, description: 'a retried batch with the same key returns the first result' },
30
+ dryRun: { type: 'boolean', description: 'validate and guard, then roll back' },
31
+ };
32
+ /** The body of POST /authz/commands over the given command schemas. */
33
+ function commandBatch(commands) {
34
+ return obj(['commands'], { commands: { type: 'array', items: { oneOf: commands } }, ...writeOptions }, 'POST /authz/commands: the commands run in one transaction, in order; the first failure rolls the batch back');
35
+ }
26
36
  function command(kind, required, properties, description) {
27
37
  return obj(['kind', ...required], { kind: { type: 'string', enum: [kind] }, ...properties }, description);
28
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../../src/schemas/primitives.ts"],"names":[],"mappings":";;;;;AAEa,QAAA,IAAI,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACtC,QAAA,gBAAgB,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gFAAgF,EAAE,CAAC;AACtL,QAAA,IAAI,GAAe,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAA,IAAI,EAAE,CAAC;AAClD,QAAA,SAAS,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;AAEvE,QAAA,WAAW,GAAe;IACrC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAA,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,QAAA,IAAI,EAAE,WAAW,EAAE,+BAA+B,EAAE,EAAE;CAC1F,CAAC;AAEW,QAAA,YAAY,GAAe;IACtC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;IACxB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAA,IAAI,EAAE,EAAE,EAAE,QAAA,IAAI,EAAE;CACrC,CAAC;AAEW,QAAA,OAAO,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAA,IAAI,EAAE,KAAK,EAAE,QAAA,WAAW,EAAE,EAAE,CAAC;AAEtH,QAAA,UAAU,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,QAAA,OAAO,EAAE,EAAE,CAAC;AAE7F,QAAA,iBAAiB,GAAe,EAAE,WAAW,EAAE,kDAAkD,EAAE,KAAK,EAAE,CAAC,QAAA,YAAY,EAAE,QAAA,UAAU,CAAC,EAAE,CAAC;AAEpJ,aAAoB,QAA2B,EAAE,UAAsC,EAAE,WAAoB;IAC3G,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;AAC3H,CAAC;AAED,iBAAwB,IAAY,EAAE,QAA2B,EAAE,UAAsC,EAAE,WAAmB;IAC5H,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;AAC5G,CAAC"}
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../../src/schemas/primitives.ts"],"names":[],"mappings":";;;;;;AAEa,QAAA,IAAI,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACtC,QAAA,gBAAgB,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gFAAgF,EAAE,CAAC;AACtL,QAAA,IAAI,GAAe,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAA,IAAI,EAAE,CAAC;AAClD,QAAA,SAAS,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;AAEvE,QAAA,WAAW,GAAe;IACrC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAA,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,QAAA,IAAI,EAAE,WAAW,EAAE,+BAA+B,EAAE,EAAE;CAC1F,CAAC;AAEW,QAAA,YAAY,GAAe;IACtC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;IACxB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAA,IAAI,EAAE,EAAE,EAAE,QAAA,IAAI,EAAE;CACrC,CAAC;AAEW,QAAA,OAAO,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAA,IAAI,EAAE,KAAK,EAAE,QAAA,WAAW,EAAE,EAAE,CAAC;AAEtH,QAAA,UAAU,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,QAAA,OAAO,EAAE,EAAE,CAAC;AAE7F,QAAA,iBAAiB,GAAe,EAAE,WAAW,EAAE,kDAAkD,EAAE,KAAK,EAAE,CAAC,QAAA,YAAY,EAAE,QAAA,UAAU,CAAC,EAAE,CAAC;AAEpJ,aAAoB,QAA2B,EAAE,UAAsC,EAAE,WAAoB;IAC3G,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;AAC3H,CAAC;AAED,MAAM,YAAY,GAAG;IACnB,MAAM,EAAE,EAAE,GAAG,QAAA,IAAI,EAAE,WAAW,EAAE,yBAAyB,EAAE;IAC3D,cAAc,EAAE,EAAE,GAAG,QAAA,IAAI,EAAE,WAAW,EAAE,4DAA4D,EAAE;IACtG,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oCAAoC,EAAE;CAC/E,CAAC;AAEF,uEAAuE;AACvE,sBAA6B,QAA+B;IAC1D,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,EAAE,6GAA6G,CAAC,CAAC;AACxN,CAAC;AAED,iBAAwB,IAAY,EAAE,QAA2B,EAAE,UAAsC,EAAE,WAAmB;IAC5H,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;AAC5G,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { SchemaProvider } from '@spinajs/validation';
2
2
  import type { JsonSchema } from './primitives.js';
3
- /** Every schema of the admin routes by name, as the swagger document names them. */
3
+ import { AuthzCommandSchemaRegistry } from './registry.js';
4
+ /** Every schema of the admin routes by name, as the swagger document names them, over the built-in commands. */
4
5
  export declare const AUTHZ_ADMIN_SCHEMAS: Readonly<Record<string, JsonSchema>>;
5
6
  /**
6
7
  * Serves the schemas to http-swagger by the type names the controller's `@response` tags use.
@@ -8,6 +9,9 @@ export declare const AUTHZ_ADMIN_SCHEMAS: Readonly<Record<string, JsonSchema>>;
8
9
  * metadata and route argument schemas, neither of which these routes carry.
9
10
  */
10
11
  export declare class AuthzAdminSchemaProvider extends SchemaProvider {
12
+ protected Registry: AuthzCommandSchemaRegistry;
13
+ /** Every schema of the admin routes by name, with AuthzAdminBatch listing the registered command kinds. */
14
+ schemas(): Readonly<Record<string, JsonSchema>>;
11
15
  getSchema(typeName: string): Record<string, unknown> | undefined;
12
16
  }
13
17
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/schemas/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,oFAAoF;AACpF,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAiB,CAAC;AAEvF;;;;GAIG;AACH,qBACa,wBAAyB,SAAQ,cAAc;IACnD,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAEtE;CACF"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/schemas/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,gHAAgH;AAChH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAiB,CAAC;AAEvF;;;;GAIG;AACH,qBACa,wBAAyB,SAAQ,cAAc;IAE1D,SAAS,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAE/C,2GAA2G;IACpG,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAErD;IAEM,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAGtE;CACF"}
@@ -38,12 +38,16 @@ var __importStar = (this && this.__importStar) || (function () {
38
38
  return result;
39
39
  };
40
40
  })();
41
+ var __metadata = (this && this.__metadata) || function (k, v) {
42
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
+ };
41
44
  Object.defineProperty(exports, "__esModule", { value: true });
42
45
  exports.AuthzAdminSchemaProvider = exports.AUTHZ_ADMIN_SCHEMAS = void 0;
43
46
  const di_1 = require("@spinajs/di");
44
47
  const validation_1 = require("@spinajs/validation");
45
48
  const bodies = __importStar(require("./bodies.js"));
46
- /** Every schema of the admin routes by name, as the swagger document names them. */
49
+ const registry_js_1 = require("./registry.js");
50
+ /** Every schema of the admin routes by name, as the swagger document names them, over the built-in commands. */
47
51
  exports.AUTHZ_ADMIN_SCHEMAS = { ...bodies };
48
52
  /**
49
53
  * Serves the schemas to http-swagger by the type names the controller's `@response` tags use.
@@ -51,11 +55,21 @@ exports.AUTHZ_ADMIN_SCHEMAS = { ...bodies };
51
55
  * metadata and route argument schemas, neither of which these routes carry.
52
56
  */
53
57
  let AuthzAdminSchemaProvider = class AuthzAdminSchemaProvider extends validation_1.SchemaProvider {
58
+ /** Every schema of the admin routes by name, with AuthzAdminBatch listing the registered command kinds. */
59
+ schemas() {
60
+ return { ...exports.AUTHZ_ADMIN_SCHEMAS, AuthzAdminBatch: this.Registry.batch() };
61
+ }
54
62
  getSchema(typeName) {
63
+ if (typeName === 'AuthzAdminBatch')
64
+ return this.Registry.batch();
55
65
  return Object.hasOwn(exports.AUTHZ_ADMIN_SCHEMAS, typeName) ? exports.AUTHZ_ADMIN_SCHEMAS[typeName] : undefined;
56
66
  }
57
67
  };
58
68
  exports.AuthzAdminSchemaProvider = AuthzAdminSchemaProvider;
69
+ __decorate([
70
+ (0, di_1.Autoinject)(registry_js_1.AuthzCommandSchemaRegistry),
71
+ __metadata("design:type", registry_js_1.AuthzCommandSchemaRegistry)
72
+ ], AuthzAdminSchemaProvider.prototype, "Registry", void 0);
59
73
  exports.AuthzAdminSchemaProvider = AuthzAdminSchemaProvider = __decorate([
60
74
  (0, di_1.Injectable)(validation_1.SchemaProvider)
61
75
  ], AuthzAdminSchemaProvider);
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/schemas/provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAyC;AACzC,oDAAqD;AAErD,MAAY,MAAM,wCAAoB;AAGtC,oFAAoF;AACvE,QAAA,mBAAmB,GAAyC,EAAE,GAAG,MAAM,EAAE,CAAC;AAEvF;;;;GAIG;AAEI,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,2BAAc;IACnD,SAAS,CAAC,QAAgB;QAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,QAAA,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAA,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,CAAC;CACF,CAAA;;mCAJY,wBAAwB;IADpC,IAAA,eAAU,EAAC,2BAAc,CAAC;GACd,wBAAwB,CAIpC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/schemas/provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oCAAqD;AACrD,oDAAqD;AAErD,MAAY,MAAM,wCAAoB;AAEtC,+CAA2D;AAE3D,gHAAgH;AACnG,QAAA,mBAAmB,GAAyC,EAAE,GAAG,MAAM,EAAE,CAAC;AAEvF;;;;GAIG;AAEI,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,2BAAc;IAI1D,2GAA2G;IACpG,OAAO;QACZ,OAAO,EAAE,GAAG,QAAA,mBAAmB,EAAE,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;IAC5E,CAAC;IAEM,SAAS,CAAC,QAAgB;QAC/B,IAAI,QAAQ,KAAK,iBAAiB;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjE,OAAO,MAAM,CAAC,MAAM,CAAC,QAAA,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAA,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,CAAC;CACF,CAAA;;AAXW;IADT,IAAA,eAAU,EAAC,wCAA0B,CAAC;8BACnB,wCAA0B;0DAAC;mCAFpC,wBAAwB;IADpC,IAAA,eAAU,EAAC,2BAAc,CAAC;GACd,wBAAwB,CAapC"}