@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
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../../src/schemas/primitives.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,IAAI,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,gFAAgF,EAAE,CAAC;AACnM,MAAM,CAAC,MAAM,IAAI,GAAe,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC/D,MAAM,CAAC,MAAM,SAAS,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;AAEpF,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,MAAM,CAAC;IAClB,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,+BAA+B,EAAE,EAAE;CAC1F,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAe;IACtC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC;IACxB,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE;CACrC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC;AAEnI,MAAM,CAAC,MAAM,UAAU,GAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC;AAE1G,MAAM,CAAC,MAAM,iBAAiB,GAAe,EAAE,WAAW,EAAE,kDAAkD,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC;AAEpJ,MAAM,UAAU,GAAG,CAAC,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,UAAU,OAAO,CAAC,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":"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"}
@@ -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"}
@@ -4,10 +4,14 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  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;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { Injectable } from '@spinajs/di';
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Autoinject, Injectable } from '@spinajs/di';
8
11
  import { SchemaProvider } from '@spinajs/validation';
9
12
  import * as bodies from './bodies.js';
10
- /** Every schema of the admin routes by name, as the swagger document names them. */
13
+ import { AuthzCommandSchemaRegistry } from './registry.js';
14
+ /** Every schema of the admin routes by name, as the swagger document names them, over the built-in commands. */
11
15
  export const AUTHZ_ADMIN_SCHEMAS = { ...bodies };
12
16
  /**
13
17
  * Serves the schemas to http-swagger by the type names the controller's `@response` tags use.
@@ -15,10 +19,20 @@ export const AUTHZ_ADMIN_SCHEMAS = { ...bodies };
15
19
  * metadata and route argument schemas, neither of which these routes carry.
16
20
  */
17
21
  let AuthzAdminSchemaProvider = class AuthzAdminSchemaProvider extends SchemaProvider {
22
+ /** Every schema of the admin routes by name, with AuthzAdminBatch listing the registered command kinds. */
23
+ schemas() {
24
+ return { ...AUTHZ_ADMIN_SCHEMAS, AuthzAdminBatch: this.Registry.batch() };
25
+ }
18
26
  getSchema(typeName) {
27
+ if (typeName === 'AuthzAdminBatch')
28
+ return this.Registry.batch();
19
29
  return Object.hasOwn(AUTHZ_ADMIN_SCHEMAS, typeName) ? AUTHZ_ADMIN_SCHEMAS[typeName] : undefined;
20
30
  }
21
31
  };
32
+ __decorate([
33
+ Autoinject(AuthzCommandSchemaRegistry),
34
+ __metadata("design:type", AuthzCommandSchemaRegistry)
35
+ ], AuthzAdminSchemaProvider.prototype, "Registry", void 0);
22
36
  AuthzAdminSchemaProvider = __decorate([
23
37
  Injectable(SchemaProvider)
24
38
  ], AuthzAdminSchemaProvider);
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/schemas/provider.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAGtC,oFAAoF;AACpF,MAAM,CAAC,MAAM,mBAAmB,GAAyC,EAAE,GAAG,MAAM,EAAE,CAAC;AAEvF;;;;GAIG;AAEI,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,cAAc;IACnD,SAAS,CAAC,QAAgB;QAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,CAAC;CACF,CAAA;AAJY,wBAAwB;IADpC,UAAU,CAAC,cAAc,CAAC;GACd,wBAAwB,CAIpC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/schemas/provider.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAE3D,gHAAgH;AAChH,MAAM,CAAC,MAAM,mBAAmB,GAAyC,EAAE,GAAG,MAAM,EAAE,CAAC;AAEvF;;;;GAIG;AAEI,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,cAAc;IAI1D,2GAA2G;IACpG,OAAO;QACZ,OAAO,EAAE,GAAG,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,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,CAAC;CACF,CAAA;AAXW;IADT,UAAU,CAAC,0BAA0B,CAAC;8BACnB,0BAA0B;0DAAC;AAFpC,wBAAwB;IADpC,UAAU,CAAC,cAAc,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,67 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ 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;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { AuthzConfigError } from '@spinajs/authz';
11
+ import { Container, Inject, Singleton } from '@spinajs/di';
12
+ import { commandBatch } from './primitives.js';
13
+ /**
14
+ * The JSON schemas of one model's admin commands, by command kind. Each model contributes one with
15
+ * `@Injectable(AuthzCommandSchemaSource)`; the batch body of POST /authz/commands lists every registered kind.
16
+ */
17
+ export class AuthzCommandSchemaSource {
18
+ }
19
+ const q = (v) => JSON.stringify(v);
20
+ function namesKind(schema, kind) {
21
+ const property = schema.properties?.kind;
22
+ return Array.isArray(property?.enum) && property.enum.length === 1 && property.enum[0] === kind;
23
+ }
24
+ /** The command schemas of every registered AuthzCommandSchemaSource, read on each call so a late registration counts. */
25
+ let AuthzCommandSchemaRegistry = class AuthzCommandSchemaRegistry {
26
+ constructor(container) {
27
+ this.container = container;
28
+ }
29
+ /** Command kind -> JSON schema, merged from the sources of this container and its ancestors. */
30
+ commands() {
31
+ const out = {};
32
+ const owners = new Map();
33
+ for (const source of this.sources()) {
34
+ const name = source.constructor.name;
35
+ for (const [kind, schema] of Object.entries(source.schemas())) {
36
+ const other = owners.get(kind);
37
+ if (other !== undefined)
38
+ throw new AuthzConfigError(`Two AuthzCommandSchemaSources describe command kind ${q(kind)}: ${other} and ${name}`);
39
+ if (!namesKind(schema, kind))
40
+ throw new AuthzConfigError(`${name}: the schema of command kind ${q(kind)} must have properties.kind.enum [${q(kind)}]`);
41
+ owners.set(kind, name);
42
+ out[kind] = schema;
43
+ }
44
+ }
45
+ return out;
46
+ }
47
+ /** The body of POST /authz/commands over the registered command kinds (schema AuthzAdminBatch). */
48
+ batch() {
49
+ return commandBatch(Object.values(this.commands()));
50
+ }
51
+ sources() {
52
+ const sources = this.container.resolve(Array.chainOf(AuthzCommandSchemaSource));
53
+ // SchemaProvider.getSchema is synchronous, so the sources must be too.
54
+ if (sources instanceof Promise) {
55
+ sources.catch(() => undefined);
56
+ throw new AuthzConfigError('An AuthzCommandSchemaSource must not be an AsyncService');
57
+ }
58
+ return [...sources];
59
+ }
60
+ };
61
+ AuthzCommandSchemaRegistry = __decorate([
62
+ Singleton(),
63
+ Inject(Container),
64
+ __metadata("design:paramtypes", [Object])
65
+ ], AuthzCommandSchemaRegistry);
66
+ export { AuthzCommandSchemaRegistry };
67
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/schemas/registry.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C;;;GAGG;AACH,MAAM,OAAgB,wBAAwB;CAG7C;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,gBAAgB,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,gBAAgB,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,YAAY,CAAC,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,gBAAgB,CAAC,yDAAyD,CAAC,CAAC;QACxF,CAAC;QACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;IACtB,CAAC;CACF,CAAA;AAlCY,0BAA0B;IAFtC,SAAS,EAAE;IACX,MAAM,CAAC,SAAS,CAAC;;GACL,0BAA0B,CAkCtC"}