@spinajs/authz-http-admin 3.0.3 → 3.0.4

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 (75) hide show
  1. package/lib/cjs/controllers/AuthzAdminController.d.ts +9 -6
  2. package/lib/cjs/controllers/AuthzAdminController.d.ts.map +1 -1
  3. package/lib/cjs/controllers/AuthzAdminController.js +28 -15
  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/schemas/bodies.d.ts +1 -0
  10. package/lib/cjs/schemas/bodies.d.ts.map +1 -1
  11. package/lib/cjs/schemas/bodies.js +3 -7
  12. package/lib/cjs/schemas/bodies.js.map +1 -1
  13. package/lib/cjs/schemas/commands.d.ts +15 -1
  14. package/lib/cjs/schemas/commands.d.ts.map +1 -1
  15. package/lib/cjs/schemas/commands.js +48 -3
  16. package/lib/cjs/schemas/commands.js.map +1 -1
  17. package/lib/cjs/schemas/document.d.ts +5 -2
  18. package/lib/cjs/schemas/document.d.ts.map +1 -1
  19. package/lib/cjs/schemas/document.js +12 -8
  20. package/lib/cjs/schemas/document.js.map +1 -1
  21. package/lib/cjs/schemas/index.d.ts +1 -0
  22. package/lib/cjs/schemas/index.d.ts.map +1 -1
  23. package/lib/cjs/schemas/index.js +1 -0
  24. package/lib/cjs/schemas/index.js.map +1 -1
  25. package/lib/cjs/schemas/primitives.d.ts +2 -0
  26. package/lib/cjs/schemas/primitives.d.ts.map +1 -1
  27. package/lib/cjs/schemas/primitives.js +10 -0
  28. package/lib/cjs/schemas/primitives.js.map +1 -1
  29. package/lib/cjs/schemas/provider.d.ts +5 -1
  30. package/lib/cjs/schemas/provider.d.ts.map +1 -1
  31. package/lib/cjs/schemas/provider.js +15 -1
  32. package/lib/cjs/schemas/provider.js.map +1 -1
  33. package/lib/cjs/schemas/registry.d.ts +21 -0
  34. package/lib/cjs/schemas/registry.d.ts.map +1 -0
  35. package/lib/cjs/schemas/registry.js +71 -0
  36. package/lib/cjs/schemas/registry.js.map +1 -0
  37. package/lib/mjs/controllers/AuthzAdminController.d.ts +9 -6
  38. package/lib/mjs/controllers/AuthzAdminController.d.ts.map +1 -1
  39. package/lib/mjs/controllers/AuthzAdminController.js +29 -16
  40. package/lib/mjs/controllers/AuthzAdminController.js.map +1 -1
  41. package/lib/mjs/routes/query.d.ts +12 -4
  42. package/lib/mjs/routes/query.d.ts.map +1 -1
  43. package/lib/mjs/routes/query.js +18 -6
  44. package/lib/mjs/routes/query.js.map +1 -1
  45. package/lib/mjs/schemas/bodies.d.ts +1 -0
  46. package/lib/mjs/schemas/bodies.d.ts.map +1 -1
  47. package/lib/mjs/schemas/bodies.js +4 -8
  48. package/lib/mjs/schemas/bodies.js.map +1 -1
  49. package/lib/mjs/schemas/commands.d.ts +15 -1
  50. package/lib/mjs/schemas/commands.d.ts.map +1 -1
  51. package/lib/mjs/schemas/commands.js +47 -2
  52. package/lib/mjs/schemas/commands.js.map +1 -1
  53. package/lib/mjs/schemas/document.d.ts +5 -2
  54. package/lib/mjs/schemas/document.d.ts.map +1 -1
  55. package/lib/mjs/schemas/document.js +12 -8
  56. package/lib/mjs/schemas/document.js.map +1 -1
  57. package/lib/mjs/schemas/index.d.ts +1 -0
  58. package/lib/mjs/schemas/index.d.ts.map +1 -1
  59. package/lib/mjs/schemas/index.js +1 -0
  60. package/lib/mjs/schemas/index.js.map +1 -1
  61. package/lib/mjs/schemas/primitives.d.ts +2 -0
  62. package/lib/mjs/schemas/primitives.d.ts.map +1 -1
  63. package/lib/mjs/schemas/primitives.js +9 -0
  64. package/lib/mjs/schemas/primitives.js.map +1 -1
  65. package/lib/mjs/schemas/provider.d.ts +5 -1
  66. package/lib/mjs/schemas/provider.d.ts.map +1 -1
  67. package/lib/mjs/schemas/provider.js +16 -2
  68. package/lib/mjs/schemas/provider.js.map +1 -1
  69. package/lib/mjs/schemas/registry.d.ts +21 -0
  70. package/lib/mjs/schemas/registry.d.ts.map +1 -0
  71. package/lib/mjs/schemas/registry.js +67 -0
  72. package/lib/mjs/schemas/registry.js.map +1 -0
  73. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  74. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  75. package/package.json +12 -12
@@ -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":"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"}
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"}
@@ -0,0 +1,21 @@
1
+ import type { IContainer } from '@spinajs/di';
2
+ import type { JsonSchema } from './primitives.js';
3
+ /**
4
+ * The JSON schemas of one model's admin commands, by command kind. Each model contributes one with
5
+ * `@Injectable(AuthzCommandSchemaSource)`; the batch body of POST /authz/commands lists every registered kind.
6
+ */
7
+ export declare abstract class AuthzCommandSchemaSource {
8
+ /** Command kind -> the JSON schema of that command, `kind` included. */
9
+ abstract schemas(): Readonly<Record<string, object>>;
10
+ }
11
+ /** The command schemas of every registered AuthzCommandSchemaSource, read on each call so a late registration counts. */
12
+ export declare class AuthzCommandSchemaRegistry {
13
+ protected readonly container: IContainer;
14
+ constructor(container: IContainer);
15
+ /** Command kind -> JSON schema, merged from the sources of this container and its ancestors. */
16
+ commands(): Readonly<Record<string, JsonSchema>>;
17
+ /** The body of POST /authz/commands over the registered command kinds (schema AuthzAdminBatch). */
18
+ batch(): JsonSchema;
19
+ private sources;
20
+ }
21
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/schemas/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;GAGG;AACH,8BAAsB,wBAAwB;IAC5C,wEAAwE;IACxE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACtD;AASD,yHAAyH;AACzH,qBAEa,0BAA0B;IACzB,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU;IAApD,YAA+B,SAAS,EAAE,UAAU,EAAI;IAExD,gGAAgG;IACzF,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CActD;IAED,mGAAmG;IAC5F,KAAK,IAAI,UAAU,CAEzB;IAED,OAAO,CAAC,OAAO;CAShB"}
@@ -0,0 +1,71 @@
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
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AuthzCommandSchemaRegistry = exports.AuthzCommandSchemaSource = void 0;
13
+ const authz_1 = require("@spinajs/authz");
14
+ const di_1 = require("@spinajs/di");
15
+ const primitives_js_1 = require("./primitives.js");
16
+ /**
17
+ * The JSON schemas of one model's admin commands, by command kind. Each model contributes one with
18
+ * `@Injectable(AuthzCommandSchemaSource)`; the batch body of POST /authz/commands lists every registered kind.
19
+ */
20
+ class AuthzCommandSchemaSource {
21
+ }
22
+ exports.AuthzCommandSchemaSource = AuthzCommandSchemaSource;
23
+ const q = (v) => JSON.stringify(v);
24
+ function namesKind(schema, kind) {
25
+ const property = schema.properties?.kind;
26
+ return Array.isArray(property?.enum) && property.enum.length === 1 && property.enum[0] === kind;
27
+ }
28
+ /** The command schemas of every registered AuthzCommandSchemaSource, read on each call so a late registration counts. */
29
+ let AuthzCommandSchemaRegistry = class AuthzCommandSchemaRegistry {
30
+ constructor(container) {
31
+ this.container = container;
32
+ }
33
+ /** Command kind -> JSON schema, merged from the sources of this container and its ancestors. */
34
+ commands() {
35
+ const out = {};
36
+ const owners = new Map();
37
+ for (const source of this.sources()) {
38
+ const name = source.constructor.name;
39
+ for (const [kind, schema] of Object.entries(source.schemas())) {
40
+ const other = owners.get(kind);
41
+ if (other !== undefined)
42
+ throw new authz_1.AuthzConfigError(`Two AuthzCommandSchemaSources describe command kind ${q(kind)}: ${other} and ${name}`);
43
+ if (!namesKind(schema, kind))
44
+ throw new authz_1.AuthzConfigError(`${name}: the schema of command kind ${q(kind)} must have properties.kind.enum [${q(kind)}]`);
45
+ owners.set(kind, name);
46
+ out[kind] = schema;
47
+ }
48
+ }
49
+ return out;
50
+ }
51
+ /** The body of POST /authz/commands over the registered command kinds (schema AuthzAdminBatch). */
52
+ batch() {
53
+ return (0, primitives_js_1.commandBatch)(Object.values(this.commands()));
54
+ }
55
+ sources() {
56
+ const sources = this.container.resolve(Array.chainOf(AuthzCommandSchemaSource));
57
+ // SchemaProvider.getSchema is synchronous, so the sources must be too.
58
+ if (sources instanceof Promise) {
59
+ sources.catch(() => undefined);
60
+ throw new authz_1.AuthzConfigError('An AuthzCommandSchemaSource must not be an AsyncService');
61
+ }
62
+ return [...sources];
63
+ }
64
+ };
65
+ exports.AuthzCommandSchemaRegistry = AuthzCommandSchemaRegistry;
66
+ exports.AuthzCommandSchemaRegistry = AuthzCommandSchemaRegistry = __decorate([
67
+ (0, di_1.Singleton)(),
68
+ (0, di_1.Inject)(di_1.Container),
69
+ __metadata("design:paramtypes", [Object])
70
+ ], AuthzCommandSchemaRegistry);
71
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/schemas/registry.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAkD;AAClD,oCAA2D;AAG3D,mDAA+C;AAG/C;;;GAGG;AACH;CAGC;;AAED,MAAM,CAAC,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAEpD,SAAS,SAAS,CAAC,MAAc,EAAE,IAAY;IAC7C,MAAM,QAAQ,GAAI,MAAyD,CAAC,UAAU,EAAE,IAAI,CAAC;IAC7F,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAClG,CAAC;AAED,yHAAyH;AAGlH,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrC,YAA+B,SAAqB;yBAArB,SAAS;IAAe,CAAC;IAExD,gGAAgG;IACzF,QAAQ;QACb,MAAM,GAAG,GAA+B,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,KAAK,KAAK,SAAS;oBAAE,MAAM,IAAI,wBAAgB,CAAC,uDAAuD,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,EAAE,CAAC,CAAC;gBAC5I,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;oBAAE,MAAM,IAAI,wBAAgB,CAAC,GAAG,IAAI,gCAAgC,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACvJ,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,GAAG,MAAoB,CAAC;YACnC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,mGAAmG;IAC5F,KAAK;QACV,OAAO,IAAA,4BAAY,EAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IAEO,OAAO;QACb,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAChF,uEAAuE;QACvE,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC/B,MAAM,IAAI,wBAAgB,CAAC,yDAAyD,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;IACtB,CAAC;CACF,CAAA;;qCAlCY,0BAA0B;IAFtC,IAAA,cAAS,GAAE;IACX,IAAA,WAAM,EAAC,cAAS,CAAC;;GACL,0BAA0B,CAkCtC"}
@@ -16,8 +16,11 @@ import '../schemas/provider.js';
16
16
  export declare class AuthzAdminController extends BaseController {
17
17
  protected AdminDomain: string;
18
18
  protected Domains: AuthzDomains;
19
- /** Runs a route on the domain's AuthzAdmin; an AuthzAdminFailure becomes its status with `{ error }`, anything else propagates. */
20
- protected guarded(fn: (admin: AuthzAdmin) => Promise<Response>): Promise<Response>;
19
+ /**
20
+ * Runs a route on the AuthzAdmin of the domain the AuthzDomainResolver names for `req`, `authz.http.admin.domain` being its fallback and the domain without a request.
21
+ * An AuthzAdminFailure becomes its status with `{ error }`, a domain no live domain bears 403 `unknown_domain`, anything else propagates.
22
+ */
23
+ protected guarded(fn: (admin: AuthzAdmin) => Promise<Response>, req?: Request): Promise<Response>;
21
24
  /** One batch built from the route, with the options of the query string. */
22
25
  protected single(req: Request, build: () => AuthzCommand[]): Promise<Response<any>>;
23
26
  protected list(req: Request, build: () => AuthzAdminQuery): Promise<Response<any>>;
@@ -37,7 +40,7 @@ export declare class AuthzAdminController extends BaseController {
37
40
  /**
38
41
  * List assignments
39
42
  * Lists assignments, filtered by the query.
40
- * Query: `scope` (`<type>` or `<type>:<id>`), `subject` (`<type>:<id>` or `set:<role>@<type>:<id>`), `role`, `includeExpired` (`true` or `false`), `limit`, `offset`.
43
+ * Query: `scope` (`<type>` or `<type>:<id>`), `subject` (`<type>:<id>` or `set:<role>@<type>:<id>`), `role`, `includeExpired` (`true` or `false`), `limit`, `offset` or `after` (the `next` of the previous page).
41
44
  * @response 200 {AuthzAdminPage} One page of rows
42
45
  * @response 400 {AuthzAdminError} invalid_query: a malformed query parameter
43
46
  * @response 401 Unauthorized: a valid session or token is required
@@ -47,7 +50,7 @@ export declare class AuthzAdminController extends BaseController {
47
50
  /**
48
51
  * List holders
49
52
  * Who holds a permission on a resource through role assignments on it, its ancestors or $global; each principal is verified by a fresh check.
50
- * Query: `scope` (`<type>:<id>`), `permission`, `expandSets` (`true` or `false`), `limit`, `offset`.
53
+ * Query: `scope` (`<type>:<id>`), `permission`, `expandSets` (`true` or `false`), `limit`, `offset` or `after` (the `next` of the previous page).
51
54
  * @response 200 {AuthzAdminPage} One page of holders
52
55
  * @response 400 {AuthzAdminError} invalid_query: a malformed or missing query parameter
53
56
  * @response 401 Unauthorized: a valid session or token is required
@@ -95,7 +98,7 @@ export declare class AuthzAdminController extends BaseController {
95
98
  /**
96
99
  * List share links
97
100
  * Lists the share links, filtered by the query. A listing never carries a token or its hash: the token is shown once, when the link is created.
98
- * Query: `scope` (`<type>` or `<type>:<id>`), `limit`, `offset`.
101
+ * Query: `scope` (`<type>` or `<type>:<id>`), `limit`, `offset` or `after` (the `next` of the previous page).
99
102
  * @response 200 {AuthzAdminPage} One page of rows
100
103
  * @response 400 {AuthzAdminError} invalid_query: a malformed query parameter
101
104
  * @response 401 Unauthorized: a valid session or token is required
@@ -143,7 +146,7 @@ export declare class AuthzAdminController extends BaseController {
143
146
  /**
144
147
  * List rules
145
148
  * Lists the RBAC rules held as rows.
146
- * Query: `scope` (`<type>` or `<type>:<id>`), `limit`, `offset`.
149
+ * Query: `scope` (`<type>` or `<type>:<id>`), `limit`, `offset` or `after` (the `next` of the previous page).
147
150
  * @response 200 {AuthzAdminPage} One page of rows
148
151
  * @response 400 {AuthzAdminError} invalid_query: a malformed query parameter
149
152
  * @response 401 Unauthorized: a valid session or token is required
@@ -1 +1 @@
1
- {"version":3,"file":"AuthzAdminController.d.ts","sourceRoot":"","sources":["../../../src/controllers/AuthzAdminController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,KAAK,EAAE,UAAU,EAAqB,eAAe,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAC;AAC3H,OAAO,EAAsB,cAAc,EAAgG,MAAM,eAAe,CAAC;AACjK,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIvD,OAAO,wBAAwB,CAAC;AAkEhC;;;;;;;;;GASG;AACH,qBAEa,oBAAqB,SAAQ,cAAc;IAEtD,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAG9B,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;IAEhC,mIAAmI;IACnI,UAAgB,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAQvF;IAED,4EAA4E;IAC5E,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,EAAE,0BAKzD;IAED,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,0BAExD;IAED;;;;;;;;;;;OAWG;IAEU,QAAQ,CAAQ,GAAG,EAAE,OAAO,0BAQxC;IAED;;;;;;;;OAQG;IAEU,eAAe,CAAQ,GAAG,EAAE,OAAO,0BAE/C;IAED;;;;;;;;OAQG;IAEU,WAAW,CAAQ,GAAG,EAAE,OAAO,0BAE3C;IAED;;;;;;;;;;;OAWG;IAEU,KAAK,CAAQ,GAAG,EAAE,OAAO,0BAErC;IAED;;;;;;;;;;;OAWG;IAEU,eAAe,CAAQ,GAAG,EAAE,OAAO,0BAY/C;IAED;;;;;;;;;;OAUG;IAEU,MAAM,CAAQ,GAAG,EAAE,OAAO,0BAEtC;IAED;;;;;;;;OAQG;IAEU,SAAS,CAAQ,GAAG,EAAE,OAAO,0BAEzC;IAED;;;;;;;;;;;OAWG;IAEU,UAAU,CAAQ,GAAG,EAAE,OAAO,0BAG1C;IAED;;;;;;;;;;;OAWG;IAEU,SAAS,CAAQ,GAAG,EAAE,OAAO,0BAEzC;IAED;;;;;;;;;;OAUG;IAEU,UAAU,CAAQ,GAAG,EAAE,OAAO,0BAE1C;IAED;;;;;;;;OAQG;IAEU,SAAS,CAAQ,GAAG,EAAE,OAAO,0BAEzC;IAED;;;;;;;;;;;OAWG;IAEU,OAAO,CAAQ,GAAG,EAAE,OAAO,0BAEvC;IAED;;;;;;;;;;OAUG;IAEU,UAAU,CAAQ,GAAG,EAAE,OAAO,0BAE1C;IAED;;;;;;;;OAQG;IAEU,YAAY,CAAQ,GAAG,EAAE,OAAO,0BAE5C;IAED;;;;;;;;;;;OAWG;IAEU,SAAS,CAAQ,GAAG,EAAE,OAAO,0BAEzC;IAED;;;;;;;;;;OAUG;IAEU,YAAY,CAAQ,GAAG,EAAE,OAAO,0BAE5C;IAED;;;;;;;OAOG;IAEU,UAAU,CAAQ,GAAG,EAAE,OAAO,0BAE1C;IAED;;;;;;;;;;;OAWG;IAEU,eAAe,CAAQ,GAAG,EAAE,OAAO,0BAE/C;IAED;;;;;;;;;;;OAWG;IAEU,iBAAiB,CAAQ,GAAG,EAAE,OAAO,0BAEjD;CACF"}
1
+ {"version":3,"file":"AuthzAdminController.d.ts","sourceRoot":"","sources":["../../../src/controllers/AuthzAdminController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,KAAK,EAAE,UAAU,EAAqB,eAAe,EAAE,YAAY,EAA0B,MAAM,gBAAgB,CAAC;AAC3H,OAAO,EAAsB,cAAc,EAAgG,MAAM,eAAe,CAAC;AACjK,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIvD,OAAO,wBAAwB,CAAC;AAqEhC;;;;;;;;;GASG;AACH,qBAEa,oBAAqB,SAAQ,cAAc;IAEtD,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAG9B,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;IAEhC;;;OAGG;IACH,UAAgB,OAAO,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CActG;IAED,4EAA4E;IAC5E,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,EAAE,0BAKzD;IAED,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,0BAExD;IAED;;;;;;;;;;;OAWG;IAEU,QAAQ,CAAQ,GAAG,EAAE,OAAO,0BAQxC;IAED;;;;;;;;OAQG;IAEU,eAAe,CAAQ,GAAG,EAAE,OAAO,0BAE/C;IAED;;;;;;;;OAQG;IAEU,WAAW,CAAQ,GAAG,EAAE,OAAO,0BAE3C;IAED;;;;;;;;;;;OAWG;IAEU,KAAK,CAAQ,GAAG,EAAE,OAAO,0BAErC;IAED;;;;;;;;;;;OAWG;IAEU,eAAe,CAAQ,GAAG,EAAE,OAAO,0BAY/C;IAED;;;;;;;;;;OAUG;IAEU,MAAM,CAAQ,GAAG,EAAE,OAAO,0BAEtC;IAED;;;;;;;;OAQG;IAEU,SAAS,CAAQ,GAAG,EAAE,OAAO,0BAEzC;IAED;;;;;;;;;;;OAWG;IAEU,UAAU,CAAQ,GAAG,EAAE,OAAO,0BAG1C;IAED;;;;;;;;;;;OAWG;IAEU,SAAS,CAAQ,GAAG,EAAE,OAAO,0BAEzC;IAED;;;;;;;;;;OAUG;IAEU,UAAU,CAAQ,GAAG,EAAE,OAAO,0BAE1C;IAED;;;;;;;;OAQG;IAEU,SAAS,CAAQ,GAAG,EAAE,OAAO,0BAEzC;IAED;;;;;;;;;;;OAWG;IAEU,OAAO,CAAQ,GAAG,EAAE,OAAO,0BAEvC;IAED;;;;;;;;;;OAUG;IAEU,UAAU,CAAQ,GAAG,EAAE,OAAO,0BAE1C;IAED;;;;;;;;OAQG;IAEU,YAAY,CAAQ,GAAG,EAAE,OAAO,0BAE5C;IAED;;;;;;;;;;;OAWG;IAEU,SAAS,CAAQ,GAAG,EAAE,OAAO,0BAEzC;IAED;;;;;;;;;;OAUG;IAEU,YAAY,CAAQ,GAAG,EAAE,OAAO,0BAE5C;IAED;;;;;;;OAOG;IAEU,UAAU,CAAQ,GAAG,EAAE,OAAO,0BAE1C;IAED;;;;;;;;;;;OAWG;IAEU,eAAe,CAAQ,GAAG,EAAE,OAAO,0BAE/C;IAED;;;;;;;;;;;OAWG;IAEU,iBAAiB,CAAQ,GAAG,EAAE,OAAO,0BAEjD;CACF"}
@@ -14,7 +14,7 @@ import { AuthzAdminFailure, AuthzDomains } from '@spinajs/authz';
14
14
  import { Config } from '@spinajs/configuration';
15
15
  import { Autoinject } from '@spinajs/di';
16
16
  import { BadRequestResponse, BaseController, BasePath, Conflict, Del, ForbiddenResponse, Get, NotFound, Ok, Patch, Policy, Post, Put, Req } from '@spinajs/http';
17
- import { IsAuthenticated } from '@spinajs/authz-http';
17
+ import { IsAuthenticated, UnknownAuthzDomain, resolveAuthzDomain } from '@spinajs/authz-http';
18
18
  import { isPlainObject } from '@spinajs/util';
19
19
  import '../schemas/provider.js';
20
20
  import { decodeCommand, decodeCommands } from '../routes/decode.js';
@@ -54,6 +54,8 @@ function withPathId(body, id, what) {
54
54
  badRequest(`the body id ${JSON.stringify(o.id)} is not the path id ${JSON.stringify(id)}`, 'id');
55
55
  return { ...o, id };
56
56
  }
57
+ // The routes serve the RBAC and ABAC commands, whose AuthzCommandMap entries this package does not import.
58
+ const byId = (kind, id) => ({ kind, id });
57
59
  const LINK_PATCH_KEYS = ['expiresAt', 'attributes', 'role', 'tags'];
58
60
  /** PATCH /authz/links/:id as one link.update; like the assignment patch, a key it does not serve is refused, not ignored. */
59
61
  function linkUpdate(body, id) {
@@ -85,9 +87,20 @@ const scopeOf = (req) => ({ type: param(req, 'type'), id: param(req, 'id') });
85
87
  * @tags Authz admin
86
88
  */
87
89
  let AuthzAdminController = class AuthzAdminController extends BaseController {
88
- /** Runs a route on the domain's AuthzAdmin; an AuthzAdminFailure becomes its status with `{ error }`, anything else propagates. */
89
- async guarded(fn) {
90
- const admin = (await this.Domains.service(this.AdminDomain)).admin();
90
+ /**
91
+ * Runs a route on the AuthzAdmin of the domain the AuthzDomainResolver names for `req`, `authz.http.admin.domain` being its fallback and the domain without a request.
92
+ * An AuthzAdminFailure becomes its status with `{ error }`, a domain no live domain bears 403 `unknown_domain`, anything else propagates.
93
+ */
94
+ async guarded(fn, req) {
95
+ let admin;
96
+ try {
97
+ admin = (await this.Domains.service(req ? await resolveAuthzDomain(req, this.AdminDomain) : this.AdminDomain)).admin();
98
+ }
99
+ catch (e) {
100
+ if (e instanceof UnknownAuthzDomain)
101
+ return respond(403, { error: { code: 'unknown_domain', message: e.message } });
102
+ throw e;
103
+ }
91
104
  try {
92
105
  return await fn(admin);
93
106
  }
@@ -102,10 +115,10 @@ let AuthzAdminController = class AuthzAdminController extends BaseController {
102
115
  return this.guarded(async (admin) => {
103
116
  const opts = readWriteOptions(query(req));
104
117
  return results(await admin.execute(actorOf(req), build(), opts));
105
- });
118
+ }, req);
106
119
  }
107
120
  list(req, build) {
108
- return this.guarded(async (admin) => respond(200, await admin.list(actorOf(req), build())));
121
+ return this.guarded(async (admin) => respond(200, await admin.list(actorOf(req), build())), req);
109
122
  }
110
123
  /**
111
124
  * Run a batch of commands
@@ -128,12 +141,12 @@ let AuthzAdminController = class AuthzAdminController extends BaseController {
128
141
  if (key in body)
129
142
  opts[key] = body[key];
130
143
  return results(await admin.execute(actorOf(req), decodeCommands(body.commands), opts));
131
- });
144
+ }, req);
132
145
  }
133
146
  /**
134
147
  * List assignments
135
148
  * Lists assignments, filtered by the query.
136
- * Query: `scope` (`<type>` or `<type>:<id>`), `subject` (`<type>:<id>` or `set:<role>@<type>:<id>`), `role`, `includeExpired` (`true` or `false`), `limit`, `offset`.
149
+ * Query: `scope` (`<type>` or `<type>:<id>`), `subject` (`<type>:<id>` or `set:<role>@<type>:<id>`), `role`, `includeExpired` (`true` or `false`), `limit`, `offset` or `after` (the `next` of the previous page).
137
150
  * @response 200 {AuthzAdminPage} One page of rows
138
151
  * @response 400 {AuthzAdminError} invalid_query: a malformed query parameter
139
152
  * @response 401 Unauthorized: a valid session or token is required
@@ -145,7 +158,7 @@ let AuthzAdminController = class AuthzAdminController extends BaseController {
145
158
  /**
146
159
  * List holders
147
160
  * Who holds a permission on a resource through role assignments on it, its ancestors or $global; each principal is verified by a fresh check.
148
- * Query: `scope` (`<type>:<id>`), `permission`, `expandSets` (`true` or `false`), `limit`, `offset`.
161
+ * Query: `scope` (`<type>:<id>`), `permission`, `expandSets` (`true` or `false`), `limit`, `offset` or `after` (the `next` of the previous page).
149
162
  * @response 200 {AuthzAdminPage} One page of holders
150
163
  * @response 400 {AuthzAdminError} invalid_query: a malformed or missing query parameter
151
164
  * @response 401 Unauthorized: a valid session or token is required
@@ -211,12 +224,12 @@ let AuthzAdminController = class AuthzAdminController extends BaseController {
211
224
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
212
225
  */
213
226
  async revoke(req) {
214
- return this.single(req, () => [{ kind: 'assignment.revoke', id: param(req, 'id') }]);
227
+ return this.single(req, () => [byId('assignment.revoke', param(req, 'id'))]);
215
228
  }
216
229
  /**
217
230
  * List share links
218
231
  * Lists the share links, filtered by the query. A listing never carries a token or its hash: the token is shown once, when the link is created.
219
- * Query: `scope` (`<type>` or `<type>:<id>`), `limit`, `offset`.
232
+ * Query: `scope` (`<type>` or `<type>:<id>`), `limit`, `offset` or `after` (the `next` of the previous page).
220
233
  * @response 200 {AuthzAdminPage} One page of rows
221
234
  * @response 400 {AuthzAdminError} invalid_query: a malformed query parameter
222
235
  * @response 401 Unauthorized: a valid session or token is required
@@ -268,12 +281,12 @@ let AuthzAdminController = class AuthzAdminController extends BaseController {
268
281
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
269
282
  */
270
283
  async revokeLink(req) {
271
- return this.single(req, () => [{ kind: 'link.revoke', id: param(req, 'id') }]);
284
+ return this.single(req, () => [byId('link.revoke', param(req, 'id'))]);
272
285
  }
273
286
  /**
274
287
  * List rules
275
288
  * Lists the RBAC rules held as rows.
276
- * Query: `scope` (`<type>` or `<type>:<id>`), `limit`, `offset`.
289
+ * Query: `scope` (`<type>` or `<type>:<id>`), `limit`, `offset` or `after` (the `next` of the previous page).
277
290
  * @response 200 {AuthzAdminPage} One page of rows
278
291
  * @response 400 {AuthzAdminError} invalid_query: a malformed query parameter
279
292
  * @response 401 Unauthorized: a valid session or token is required
@@ -309,7 +322,7 @@ let AuthzAdminController = class AuthzAdminController extends BaseController {
309
322
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
310
323
  */
311
324
  async deleteRule(req) {
312
- return this.single(req, () => [{ kind: 'rule.delete', id: param(req, 'id') }]);
325
+ return this.single(req, () => [byId('rule.delete', param(req, 'id'))]);
313
326
  }
314
327
  /**
315
328
  * List policies
@@ -350,7 +363,7 @@ let AuthzAdminController = class AuthzAdminController extends BaseController {
350
363
  * @response 409 {AuthzAdminError} conflict: the row changed or exists already
351
364
  */
352
365
  async deletePolicy(req) {
353
- return this.single(req, () => [{ kind: 'policy.delete', id: param(req, 'id') }]);
366
+ return this.single(req, () => [byId('policy.delete', param(req, 'id'))]);
354
367
  }
355
368
  /**
356
369
  * Read scope attributes
@@ -537,7 +550,7 @@ __decorate([
537
550
  ], AuthzAdminController.prototype, "replaceAttributes", null);
538
551
  AuthzAdminController = __decorate([
539
552
  Policy(IsAuthenticated),
540
- BasePath('authz')
553
+ BasePath({ config: 'authz.http.admin.basePath', default: 'authz' })
541
554
  ], AuthzAdminController);
542
555
  export { AuthzAdminController };
543
556
  function results(r) {
@@ -1 +1 @@
1
- {"version":3,"file":"AuthzAdminController.js","sourceRoot":"","sources":["../../../src/controllers/AuthzAdminController.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEjK,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE7G,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEtE,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,CAAU,CAAC;AAC3E,MAAM,WAAW,GAAG,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,uBAAuB,EAAW,CAAC;AAEhI,SAAS,OAAO,CAAC,MAAc,EAAE,IAAa;IAC5C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,GAAG;YACN,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;QACtB,KAAK,GAAG;YACN,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACrC,KAAK,GAAG;YACN,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,KAAK,GAAG;YACN,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B;YACE,OAAO,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,CAAoB;IACnC,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAClJ,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,KAAc;IACjD,MAAM,IAAI,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,UAAU,CAAC,IAAa,EAAE,IAAY;IAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,UAAU,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iHAAiH;AACjH,SAAS,UAAU,CAAC,IAAa,EAAE,EAAU,EAAE,IAAY;IACzD,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE;QAAE,UAAU,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACxI,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAU,CAAC;AAE7E,6HAA6H;AAC7H,SAAS,UAAU,CAAC,IAAa,EAAE,EAAU;IAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,qDAAqD,CAAC,CAAC;IAC1F,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAE,eAAqC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAClH,IAAI,OAAO,KAAK,SAAS;QAAE,UAAU,CAAC,sBAAsB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACnI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,UAAU,CAAC,6BAA6B,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpH,OAAO,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,CAAiB,CAAC;AAC1E,CAAC;AAED,iJAAiJ;AACjJ,SAAS,OAAO,CAAC,GAAY;IAC3B,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IAChD,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,GAAY,EAAc,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAe,CAAC;AAC5E,MAAM,KAAK,GAAG,CAAC,GAAY,EAAE,IAAY,EAAU,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAW,CAAC;AACjF,MAAM,OAAO,GAAG,CAAC,GAAY,EAAa,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,SAAU,CAAC;AACpE,MAAM,OAAO,GAAG,CAAC,GAAY,EAAe,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAEpG;;;;;;;;;GASG;AAGI,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,cAAc;IAOtD,mIAAmI;IACzH,KAAK,CAAC,OAAO,CAAC,EAA4C;QAClE,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACrE,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,YAAY,iBAAiB;gBAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED,4EAA4E;IAClE,MAAM,CAAC,GAAY,EAAE,KAA2B;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAClC,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC1C,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC;IAES,IAAI,CAAC,GAAY,EAAE,KAA4B;QACvD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED;;;;;;;;;;;OAWG;IAEU,AAAN,KAAK,CAAC,QAAQ,CAAQ,GAAY;QACvC,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAClC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,2DAA2D,CAAC,CAAC;YAC/F,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAU;gBAAE,IAAI,GAAG,IAAI,IAAI;oBAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1G,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAmB,EAAE,IAAyB,CAAC,CAAC,CAAC;QAChI,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IAEU,AAAN,KAAK,CAAC,eAAe,CAAQ,GAAY;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;;;OAQG;IAEU,AAAN,KAAK,CAAC,WAAW,CAAQ,GAAY;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;;;;;OAWG;IAEU,AAAN,KAAK,CAAC,KAAK,CAAQ,GAAY;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,gCAAgC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAiB,CAAC,CAAC,CAAC;IAC1J,CAAC;IAED;;;;;;;;;;;OAWG;IAEU,AAAN,KAAK,CAAC,eAAe,CAAQ,GAAY;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;YAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,wDAAwD,CAAC,CAAC;YAC5F,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAE,UAAgC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9F,IAAI,OAAO,KAAK,SAAS;gBAAE,UAAU,CAAC,6BAA6B,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YACrI,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAc,EAAE,CAAC;YAC/B,KAAK,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAU;gBAAE,IAAI,GAAG,IAAI,IAAI;oBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9I,IAAI,WAAW,IAAI,IAAI;gBAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YACvH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,UAAU,CAAC,oCAAoC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnG,OAAO,QAA0B,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;OAUG;IAEU,AAAN,KAAK,CAAC,MAAM,CAAQ,GAAY;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC;IAED;;;;;;;;OAQG;IAEU,AAAN,KAAK,CAAC,SAAS,CAAQ,GAAY;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;OAWG;IAEU,AAAN,KAAK,CAAC,UAAU,CAAQ,GAAY;QACzC,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,2BAA2B,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAiB,CAAC,CAAC,CAAC;IAChJ,CAAC;IAED;;;;;;;;;;;OAWG;IAEU,AAAN,KAAK,CAAC,SAAS,CAAQ,GAAY;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;;;;;OAUG;IAEU,AAAN,KAAK,CAAC,UAAU,CAAQ,GAAY;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;;OAQG;IAEU,AAAN,KAAK,CAAC,SAAS,CAAQ,GAAY;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;;;;;;OAWG;IAEU,AAAN,KAAK,CAAC,OAAO,CAAQ,GAAY;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAiB,CAAC,CAAC,CAAC;IAC/I,CAAC;IAED;;;;;;;;;;OAUG;IAEU,AAAN,KAAK,CAAC,UAAU,CAAQ,GAAY;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;;OAQG;IAEU,AAAN,KAAK,CAAC,YAAY,CAAQ,GAAY;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;OAWG;IAEU,AAAN,KAAK,CAAC,SAAS,CAAQ,GAAY;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,EAAE,CAAiB,CAAC,CAAC,CAAC;IACrJ,CAAC;IAED;;;;;;;;;;OAUG;IAEU,AAAN,KAAK,CAAC,YAAY,CAAQ,GAAY;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACnF,CAAC;IAED;;;;;;;OAOG;IAEU,AAAN,KAAK,CAAC,UAAU,CAAQ,GAAY;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;;;;OAWG;IAEU,AAAN,KAAK,CAAC,eAAe,CAAQ,GAAY;QAC9C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACzG,CAAC;IAED;;;;;;;;;;;OAWG;IAEU,AAAN,KAAK,CAAC,iBAAiB,CAAQ,GAAY;QAChD,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;CACF,CAAA;AAxVW;IADT,MAAM,CAAC,yBAAyB,CAAC;;yDACJ;AAGpB;IADT,UAAU,CAAC,YAAY,CAAC;8BACN,YAAY;qDAAC;AAsCnB;IADZ,IAAI,CAAC,UAAU,CAAC;IACM,WAAA,GAAG,EAAE,CAAA;;;;oDAQ3B;AAYY;IADZ,GAAG,CAAC,aAAa,CAAC;IACW,WAAA,GAAG,EAAE,CAAA;;;;2DAElC;AAYY;IADZ,GAAG,CAAC,SAAS,CAAC;IACW,WAAA,GAAG,EAAE,CAAA;;;;uDAE9B;AAeY;IADZ,IAAI,CAAC,aAAa,CAAC;IACA,WAAA,GAAG,EAAE,CAAA;;;;iDAExB;AAeY;IADZ,KAAK,CAAC,iBAAiB,CAAC;IACK,WAAA,GAAG,EAAE,CAAA;;;;2DAYlC;AAcY;IADZ,GAAG,CAAC,iBAAiB,CAAC;IACF,WAAA,GAAG,EAAE,CAAA;;;;kDAEzB;AAYY;IADZ,GAAG,CAAC,OAAO,CAAC;IACW,WAAA,GAAG,EAAE,CAAA;;;;qDAE5B;AAeY;IADZ,IAAI,CAAC,OAAO,CAAC;IACW,WAAA,GAAG,EAAE,CAAA;;;;sDAG7B;AAeY;IADZ,KAAK,CAAC,WAAW,CAAC;IACK,WAAA,GAAG,EAAE,CAAA;;;;qDAE5B;AAcY;IADZ,GAAG,CAAC,WAAW,CAAC;IACQ,WAAA,GAAG,EAAE,CAAA;;;;sDAE7B;AAYY;IADZ,GAAG,CAAC,OAAO,CAAC;IACW,WAAA,GAAG,EAAE,CAAA;;;;qDAE5B;AAeY;IADZ,GAAG,CAAC,WAAW,CAAC;IACK,WAAA,GAAG,EAAE,CAAA;;;;mDAE1B;AAcY;IADZ,GAAG,CAAC,WAAW,CAAC;IACQ,WAAA,GAAG,EAAE,CAAA;;;;sDAE7B;AAYY;IADZ,GAAG,CAAC,UAAU,CAAC;IACW,WAAA,GAAG,EAAE,CAAA;;;;wDAE/B;AAeY;IADZ,GAAG,CAAC,cAAc,CAAC;IACI,WAAA,GAAG,EAAE,CAAA;;;;qDAE5B;AAcY;IADZ,GAAG,CAAC,cAAc,CAAC;IACO,WAAA,GAAG,EAAE,CAAA;;;;wDAE/B;AAWY;IADZ,GAAG,CAAC,6BAA6B,CAAC;IACV,WAAA,GAAG,EAAE,CAAA;;;;sDAE7B;AAeY;IADZ,KAAK,CAAC,6BAA6B,CAAC;IACP,WAAA,GAAG,EAAE,CAAA;;;;2DAElC;AAeY;IADZ,GAAG,CAAC,6BAA6B,CAAC;IACH,WAAA,GAAG,EAAE,CAAA;;;;6DAEpC;AAzVU,oBAAoB;IAFhC,MAAM,CAAC,eAAe,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC;GACL,oBAAoB,CA0VhC;;AAED,SAAS,OAAO,CAAC,CAA6C;IAC5D,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"AuthzAdminController.js","sourceRoot":"","sources":["../../../src/controllers/AuthzAdminController.ts"],"names":[],"mappings":"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"}