@venizia/ignis-kernel 0.2.0-23 → 0.2.0-25

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 (163) hide show
  1. package/dist/cjs/base/applications/artifact-index.d.ts +9 -0
  2. package/dist/cjs/base/applications/artifact-index.d.ts.map +1 -1
  3. package/dist/cjs/base/applications/artifact-index.js +84 -10
  4. package/dist/cjs/base/applications/artifact-index.js.map +1 -1
  5. package/dist/cjs/base/applications/boot-sequence.d.ts +1 -0
  6. package/dist/cjs/base/applications/boot-sequence.d.ts.map +1 -1
  7. package/dist/cjs/base/applications/boot-sequence.js +2 -0
  8. package/dist/cjs/base/applications/boot-sequence.js.map +1 -1
  9. package/dist/cjs/base/applications/common/constants.d.ts +1 -0
  10. package/dist/cjs/base/applications/common/constants.d.ts.map +1 -1
  11. package/dist/cjs/base/applications/common/constants.js +2 -0
  12. package/dist/cjs/base/applications/common/constants.js.map +1 -1
  13. package/dist/cjs/base/applications/common/types/artifacts.d.ts +2 -0
  14. package/dist/cjs/base/applications/common/types/artifacts.d.ts.map +1 -1
  15. package/dist/cjs/base/applications/rest.d.ts +9 -5
  16. package/dist/cjs/base/applications/rest.d.ts.map +1 -1
  17. package/dist/cjs/base/applications/rest.js +77 -31
  18. package/dist/cjs/base/applications/rest.js.map +1 -1
  19. package/dist/cjs/base/configurations/base.d.ts +14 -0
  20. package/dist/cjs/base/configurations/base.d.ts.map +1 -0
  21. package/dist/cjs/base/configurations/base.js +21 -0
  22. package/dist/cjs/base/configurations/base.js.map +1 -0
  23. package/dist/cjs/base/configurations/common/index.d.ts +2 -0
  24. package/dist/cjs/base/configurations/common/index.d.ts.map +1 -0
  25. package/dist/cjs/base/configurations/common/index.js +18 -0
  26. package/dist/cjs/base/configurations/common/index.js.map +1 -0
  27. package/dist/cjs/base/configurations/common/types.d.ts +3 -0
  28. package/dist/cjs/base/configurations/common/types.d.ts.map +1 -0
  29. package/dist/cjs/base/configurations/common/types.js +3 -0
  30. package/dist/cjs/base/configurations/common/types.js.map +1 -0
  31. package/dist/cjs/base/configurations/index.d.ts +3 -0
  32. package/dist/cjs/base/configurations/index.d.ts.map +1 -0
  33. package/dist/cjs/base/configurations/index.js +19 -0
  34. package/dist/cjs/base/configurations/index.js.map +1 -0
  35. package/dist/cjs/base/index.d.ts +1 -0
  36. package/dist/cjs/base/index.d.ts.map +1 -1
  37. package/dist/cjs/base/index.js +1 -0
  38. package/dist/cjs/base/index.js.map +1 -1
  39. package/dist/cjs/base/metadata/injectable.d.ts +1 -0
  40. package/dist/cjs/base/metadata/injectable.d.ts.map +1 -1
  41. package/dist/cjs/base/metadata/injectable.js +29 -3
  42. package/dist/cjs/base/metadata/injectable.js.map +1 -1
  43. package/dist/cjs/base/metadata/injectors.d.ts +11 -4
  44. package/dist/cjs/base/metadata/injectors.d.ts.map +1 -1
  45. package/dist/cjs/base/metadata/injectors.js +6 -2
  46. package/dist/cjs/base/metadata/injectors.js.map +1 -1
  47. package/dist/cjs/base/metadata/persistents.d.ts.map +1 -1
  48. package/dist/cjs/base/metadata/persistents.js +6 -2
  49. package/dist/cjs/base/metadata/persistents.js.map +1 -1
  50. package/dist/cjs/base/mixins/common/types.d.ts +13 -6
  51. package/dist/cjs/base/mixins/common/types.d.ts.map +1 -1
  52. package/dist/cjs/base/repositories/core/abstract.js +2 -2
  53. package/dist/cjs/base/repositories/core/abstract.js.map +1 -1
  54. package/dist/cjs/common/bindings.d.ts +16 -0
  55. package/dist/cjs/common/bindings.d.ts.map +1 -1
  56. package/dist/cjs/common/bindings.js +38 -2
  57. package/dist/cjs/common/bindings.js.map +1 -1
  58. package/dist/cjs/helpers/inversion/common/constants.d.ts +1 -0
  59. package/dist/cjs/helpers/inversion/common/constants.d.ts.map +1 -1
  60. package/dist/cjs/helpers/inversion/common/constants.js +2 -0
  61. package/dist/cjs/helpers/inversion/common/constants.js.map +1 -1
  62. package/dist/cjs/helpers/inversion/common/keys.d.ts +1 -0
  63. package/dist/cjs/helpers/inversion/common/keys.d.ts.map +1 -1
  64. package/dist/cjs/helpers/inversion/common/types/artifact.d.ts +2 -0
  65. package/dist/cjs/helpers/inversion/common/types/artifact.d.ts.map +1 -1
  66. package/dist/cjs/helpers/inversion/mixins/artifact.mixin.d.ts +8 -0
  67. package/dist/cjs/helpers/inversion/mixins/artifact.mixin.d.ts.map +1 -1
  68. package/dist/cjs/helpers/inversion/mixins/controllers/controller.d.ts +8 -0
  69. package/dist/cjs/helpers/inversion/mixins/controllers/controller.d.ts.map +1 -1
  70. package/dist/cjs/helpers/inversion/mixins/controllers/grpc.d.ts +8 -0
  71. package/dist/cjs/helpers/inversion/mixins/controllers/grpc.d.ts.map +1 -1
  72. package/dist/cjs/helpers/inversion/mixins/controllers/rest.d.ts +8 -0
  73. package/dist/cjs/helpers/inversion/mixins/controllers/rest.d.ts.map +1 -1
  74. package/dist/cjs/helpers/inversion/mixins/datasource.mixin.d.ts +8 -0
  75. package/dist/cjs/helpers/inversion/mixins/datasource.mixin.d.ts.map +1 -1
  76. package/dist/cjs/helpers/inversion/mixins/model.mixin.d.ts +8 -0
  77. package/dist/cjs/helpers/inversion/mixins/model.mixin.d.ts.map +1 -1
  78. package/dist/cjs/helpers/inversion/mixins/repository.mixin.d.ts +8 -0
  79. package/dist/cjs/helpers/inversion/mixins/repository.mixin.d.ts.map +1 -1
  80. package/dist/cjs/helpers/inversion/registry.d.ts +56 -0
  81. package/dist/cjs/helpers/inversion/registry.d.ts.map +1 -1
  82. package/dist/esm/base/applications/artifact-index.d.ts +9 -0
  83. package/dist/esm/base/applications/artifact-index.d.ts.map +1 -1
  84. package/dist/esm/base/applications/artifact-index.js +85 -11
  85. package/dist/esm/base/applications/artifact-index.js.map +1 -1
  86. package/dist/esm/base/applications/boot-sequence.d.ts +1 -0
  87. package/dist/esm/base/applications/boot-sequence.d.ts.map +1 -1
  88. package/dist/esm/base/applications/boot-sequence.js +2 -0
  89. package/dist/esm/base/applications/boot-sequence.js.map +1 -1
  90. package/dist/esm/base/applications/common/constants.d.ts +1 -0
  91. package/dist/esm/base/applications/common/constants.d.ts.map +1 -1
  92. package/dist/esm/base/applications/common/constants.js +2 -0
  93. package/dist/esm/base/applications/common/constants.js.map +1 -1
  94. package/dist/esm/base/applications/common/types/artifacts.d.ts +2 -0
  95. package/dist/esm/base/applications/common/types/artifacts.d.ts.map +1 -1
  96. package/dist/esm/base/applications/rest.d.ts +9 -5
  97. package/dist/esm/base/applications/rest.d.ts.map +1 -1
  98. package/dist/esm/base/applications/rest.js +78 -32
  99. package/dist/esm/base/applications/rest.js.map +1 -1
  100. package/dist/esm/base/configurations/base.d.ts +14 -0
  101. package/dist/esm/base/configurations/base.d.ts.map +1 -0
  102. package/dist/esm/base/configurations/base.js +17 -0
  103. package/dist/esm/base/configurations/base.js.map +1 -0
  104. package/dist/esm/base/configurations/common/index.d.ts +2 -0
  105. package/dist/esm/base/configurations/common/index.d.ts.map +1 -0
  106. package/dist/esm/base/configurations/common/index.js +2 -0
  107. package/dist/esm/base/configurations/common/index.js.map +1 -0
  108. package/dist/esm/base/configurations/common/types.d.ts +3 -0
  109. package/dist/esm/base/configurations/common/types.d.ts.map +1 -0
  110. package/dist/esm/base/configurations/common/types.js +2 -0
  111. package/dist/esm/base/configurations/common/types.js.map +1 -0
  112. package/dist/esm/base/configurations/index.d.ts +3 -0
  113. package/dist/esm/base/configurations/index.d.ts.map +1 -0
  114. package/dist/esm/base/configurations/index.js +3 -0
  115. package/dist/esm/base/configurations/index.js.map +1 -0
  116. package/dist/esm/base/index.d.ts +1 -0
  117. package/dist/esm/base/index.d.ts.map +1 -1
  118. package/dist/esm/base/index.js +1 -0
  119. package/dist/esm/base/index.js.map +1 -1
  120. package/dist/esm/base/metadata/injectable.d.ts +1 -0
  121. package/dist/esm/base/metadata/injectable.d.ts.map +1 -1
  122. package/dist/esm/base/metadata/injectable.js +28 -3
  123. package/dist/esm/base/metadata/injectable.js.map +1 -1
  124. package/dist/esm/base/metadata/injectors.d.ts +11 -4
  125. package/dist/esm/base/metadata/injectors.d.ts.map +1 -1
  126. package/dist/esm/base/metadata/injectors.js +6 -2
  127. package/dist/esm/base/metadata/injectors.js.map +1 -1
  128. package/dist/esm/base/metadata/persistents.d.ts.map +1 -1
  129. package/dist/esm/base/metadata/persistents.js +6 -2
  130. package/dist/esm/base/metadata/persistents.js.map +1 -1
  131. package/dist/esm/base/mixins/common/types.d.ts +13 -6
  132. package/dist/esm/base/mixins/common/types.d.ts.map +1 -1
  133. package/dist/esm/base/repositories/core/abstract.js +2 -2
  134. package/dist/esm/base/repositories/core/abstract.js.map +1 -1
  135. package/dist/esm/common/bindings.d.ts +16 -0
  136. package/dist/esm/common/bindings.d.ts.map +1 -1
  137. package/dist/esm/common/bindings.js +37 -2
  138. package/dist/esm/common/bindings.js.map +1 -1
  139. package/dist/esm/helpers/inversion/common/constants.d.ts +1 -0
  140. package/dist/esm/helpers/inversion/common/constants.d.ts.map +1 -1
  141. package/dist/esm/helpers/inversion/common/constants.js +2 -0
  142. package/dist/esm/helpers/inversion/common/constants.js.map +1 -1
  143. package/dist/esm/helpers/inversion/common/keys.d.ts +1 -0
  144. package/dist/esm/helpers/inversion/common/keys.d.ts.map +1 -1
  145. package/dist/esm/helpers/inversion/common/types/artifact.d.ts +2 -0
  146. package/dist/esm/helpers/inversion/common/types/artifact.d.ts.map +1 -1
  147. package/dist/esm/helpers/inversion/mixins/artifact.mixin.d.ts +8 -0
  148. package/dist/esm/helpers/inversion/mixins/artifact.mixin.d.ts.map +1 -1
  149. package/dist/esm/helpers/inversion/mixins/controllers/controller.d.ts +8 -0
  150. package/dist/esm/helpers/inversion/mixins/controllers/controller.d.ts.map +1 -1
  151. package/dist/esm/helpers/inversion/mixins/controllers/grpc.d.ts +8 -0
  152. package/dist/esm/helpers/inversion/mixins/controllers/grpc.d.ts.map +1 -1
  153. package/dist/esm/helpers/inversion/mixins/controllers/rest.d.ts +8 -0
  154. package/dist/esm/helpers/inversion/mixins/controllers/rest.d.ts.map +1 -1
  155. package/dist/esm/helpers/inversion/mixins/datasource.mixin.d.ts +8 -0
  156. package/dist/esm/helpers/inversion/mixins/datasource.mixin.d.ts.map +1 -1
  157. package/dist/esm/helpers/inversion/mixins/model.mixin.d.ts +8 -0
  158. package/dist/esm/helpers/inversion/mixins/model.mixin.d.ts.map +1 -1
  159. package/dist/esm/helpers/inversion/mixins/repository.mixin.d.ts +8 -0
  160. package/dist/esm/helpers/inversion/mixins/repository.mixin.d.ts.map +1 -1
  161. package/dist/esm/helpers/inversion/registry.d.ts +56 -0
  162. package/dist/esm/helpers/inversion/registry.d.ts.map +1 -1
  163. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CoreBindings = exports.BindingNamespaces = void 0;
3
+ exports.CoreBindings = exports.ArtifactNamespaces = exports.BindingNamespaces = void 0;
4
4
  const inversion_1 = require("../helpers/inversion");
5
5
  const core_1 = require("@venizia/ignis-helpers/core");
6
6
  /** Static binding namespaces for dependency injection. */
@@ -20,17 +20,53 @@ class BindingNamespaces {
20
20
  * A namespace is the leading segment of a binding key, and a binding is tagged with that segment
21
21
  * alone - a name carrying '.' or whitespace yields a key no boot step can drain by tag.
22
22
  */
23
+ static isValid(opts) {
24
+ const { name } = opts;
25
+ return typeof name === 'string' && BindingNamespaces.NAME_PATTERN.test(name);
26
+ }
23
27
  static createNamespace(opts) {
24
28
  const { name } = opts;
25
- if (typeof name !== 'string' || !BindingNamespaces.NAME_PATTERN.test(name)) {
29
+ if (!BindingNamespaces.isValid({ name })) {
26
30
  throw (0, core_1.getError)({
27
31
  message: `[BindingNamespaces][createNamespace] Invalid namespace | Expected a single non-empty segment without '.' or whitespace | Got: '${name}'`,
28
32
  });
29
33
  }
30
34
  return name;
31
35
  }
36
+ /** A namespace-less key is untagged: no boot step drains it and `doVerify` never sees it. */
37
+ static assertArtifactNamespace(opts) {
38
+ const { namespace, artifact, caller } = opts;
39
+ if (BindingNamespaces.isValid({ name: namespace })) {
40
+ return namespace;
41
+ }
42
+ throw (0, core_1.getError)({
43
+ message: `[${caller}] '${artifact}' declares a binding with no usable namespace | namespace: '${namespace}' | A key with no leading namespace segment carries no tag, so no boot step drains it and 'bootChecks.binding.doVerify' never sees it`,
44
+ });
45
+ }
32
46
  }
33
47
  exports.BindingNamespaces = BindingNamespaces;
48
+ /** Artifact kind -> namespace. `registerArtifact` gets its namespace from the call site; `@injectable` has only the class. */
49
+ class ArtifactNamespaces {
50
+ static { this.BY_TYPE = {
51
+ [inversion_1.ArtifactTypes.CONFIGURATION]: BindingNamespaces.CONFIGURATION,
52
+ [inversion_1.ArtifactTypes.COMPONENT]: BindingNamespaces.COMPONENT,
53
+ [inversion_1.ArtifactTypes.CONTROLLER]: BindingNamespaces.CONTROLLER,
54
+ [inversion_1.ArtifactTypes.SERVICE]: BindingNamespaces.SERVICE,
55
+ [inversion_1.ArtifactTypes.REPOSITORY]: BindingNamespaces.REPOSITORY,
56
+ [inversion_1.ArtifactTypes.DATASOURCE]: BindingNamespaces.DATASOURCE,
57
+ [inversion_1.ArtifactTypes.MODEL]: BindingNamespaces.MODEL,
58
+ }; }
59
+ static resolve(opts) {
60
+ const namespace = ArtifactNamespaces.BY_TYPE[opts.type];
61
+ if (namespace === undefined) {
62
+ throw (0, core_1.getError)({
63
+ message: `[ArtifactNamespaces][resolve] No namespace for artifact type | type: '${opts.type}' | known: ${Object.keys(ArtifactNamespaces.BY_TYPE).join(', ')}`,
64
+ });
65
+ }
66
+ return namespace;
67
+ }
68
+ }
69
+ exports.ArtifactNamespaces = ArtifactNamespaces;
34
70
  /** Core binding keys for fundamental application components and configuration. */
35
71
  class CoreBindings extends inversion_1.BindingKeys {
36
72
  static { this.APPLICATION_INSTANCE = '@app/instance'; }
@@ -1 +1 @@
1
- {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../../src/common/bindings.ts"],"names":[],"mappings":";;;AAAA,mDAAkD;AAElD,sDAAuD;AAIvD,0DAA0D;AAC1D,MAAa,iBAAiB;IAC5B,kGAAkG;aAC1E,iBAAY,GAAG,WAAW,CAAC;aAEnC,cAAS,GAAG,iBAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;aAEtE,eAAU,GAAG,iBAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;aACxE,eAAU,GAAG,iBAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;aACzE,UAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;aAE9D,YAAO,GAAG,iBAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;aAClE,eAAU,GAAG,iBAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;aACxE,aAAQ,GAAG,iBAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;aACpE,eAAU,GAAG,iBAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;aAExE,kBAAa,GAAG,iBAAiB,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAE9F;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,IAAsB;QAC3C,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QAEtB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAA,eAAQ,EAAC;gBACb,OAAO,EAAE,kIAAkI,IAAI,GAAG;aACnJ,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;;AA/BH,8CAgCC;AAED,kFAAkF;AAClF,MAAa,YAAa,SAAQ,uBAAW;aAC3B,yBAAoB,GAAG,eAAe,CAAC;aACvC,uBAAkB,GAAG,aAAa,CAAC;aACnC,uBAAkB,GAAG,aAAa,CAAC;aACnC,6BAAwB,GAAG,mBAAmB,CAAC;aAE/C,4BAAuB,GAAG,kBAAkB,CAAC;aAE7C,6BAAwB,GAAG,mBAAmB,CAAC;aAC/C,mCAA8B,GAAG,yBAAyB,CAAC;;AAT7E,oCAUC"}
1
+ {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../../src/common/bindings.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  /** What a decorated class is to the application - the one fact the artifact generator and the registration methods both read. */
2
2
  export declare class ArtifactTypes {
3
+ static readonly CONFIGURATION = "configuration";
3
4
  static readonly COMPONENT = "component";
4
5
  static readonly CONTROLLER = "controller";
5
6
  static readonly SERVICE = "service";
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/common/constants.ts"],"names":[],"mappings":"AAAA,iIAAiI;AACjI,qBAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,SAAS,eAAe;IACxC,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IACpC,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAEhC,MAAM,CAAC,QAAQ,CAAC,UAAU,cAOvB;IAEH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/common/constants.ts"],"names":[],"mappings":"AAAA,iIAAiI;AACjI,qBAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,aAAa,mBAAmB;IAChD,MAAM,CAAC,QAAQ,CAAC,SAAS,eAAe;IACxC,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,OAAO,aAAa;IACpC,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAAgB;IAC1C,MAAM,CAAC,QAAQ,CAAC,KAAK,WAAW;IAEhC,MAAM,CAAC,QAAQ,CAAC,UAAU,cAQvB;IAEH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGvC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ArtifactTypes = void 0;
4
4
  /** What a decorated class is to the application - the one fact the artifact generator and the registration methods both read. */
5
5
  class ArtifactTypes {
6
+ static { this.CONFIGURATION = 'configuration'; }
6
7
  static { this.COMPONENT = 'component'; }
7
8
  static { this.CONTROLLER = 'controller'; }
8
9
  static { this.SERVICE = 'service'; }
@@ -10,6 +11,7 @@ class ArtifactTypes {
10
11
  static { this.DATASOURCE = 'datasource'; }
11
12
  static { this.MODEL = 'model'; }
12
13
  static { this.SCHEME_SET = new Set([
14
+ this.CONFIGURATION,
13
15
  this.COMPONENT,
14
16
  this.CONTROLLER,
15
17
  this.SERVICE,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/helpers/inversion/common/constants.ts"],"names":[],"mappings":";;;AAAA,iIAAiI;AACjI,MAAa,aAAa;aACR,cAAS,GAAG,WAAW,CAAC;aACxB,eAAU,GAAG,YAAY,CAAC;aAC1B,YAAO,GAAG,SAAS,CAAC;aACpB,eAAU,GAAG,YAAY,CAAC;aAC1B,eAAU,GAAG,YAAY,CAAC;aAC1B,UAAK,GAAG,OAAO,CAAC;aAEhB,eAAU,GAAG,IAAI,GAAG,CAAS;QAC3C,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,KAAK;KACX,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AAnBH,sCAoBC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../src/helpers/inversion/common/constants.ts"],"names":[],"mappings":";;;AAAA,iIAAiI;AACjI,MAAa,aAAa;aACR,kBAAa,GAAG,eAAe,CAAC;aAChC,cAAS,GAAG,WAAW,CAAC;aACxB,eAAU,GAAG,YAAY,CAAC;aAC1B,YAAO,GAAG,SAAS,CAAC;aACpB,eAAU,GAAG,YAAY,CAAC;aAC1B,eAAU,GAAG,YAAY,CAAC;aAC1B,UAAK,GAAG,OAAO,CAAC;aAEhB,eAAU,GAAG,IAAI,GAAG,CAAS;QAC3C,IAAI,CAAC,aAAa;QAClB,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,UAAU;QACf,IAAI,CAAC,KAAK;KACX,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,KAAa;QAC1B,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AArBH,sCAsBC"}
@@ -1,6 +1,7 @@
1
1
  export declare const MetadataKeys: {
2
2
  PROPERTIES: symbol;
3
3
  INJECT: symbol;
4
+ BINDING_KEY: symbol;
4
5
  } & {
5
6
  CONTROLLER: symbol;
6
7
  CONTROLLER_REST_ROUTE: symbol;
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/common/keys.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;CAWvB,CAAC"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/common/keys.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAWvB,CAAC"}
@@ -19,6 +19,8 @@ export interface IArtifactRegistrationOptions<ApplicationType = unknown> {
19
19
  /** Lower registers first within its kind. Default 0; ties keep index order. */
20
20
  order?: number;
21
21
  when?: TArtifactCondition<ApplicationType>;
22
+ /** Topological ordering for configurations: must run after these configuration classes. */
23
+ after?: ReadonlyArray<TClass<unknown>>;
22
24
  }
23
25
  export interface IArtifactMetadata<ApplicationType = unknown> extends IArtifactRegistrationOptions<ApplicationType> {
24
26
  type: TArtifactType;
@@ -1 +1 @@
1
- {"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../../../../../src/helpers/inversion/common/types/artifact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,2FAA2F;AAC3F,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,aAAa,CAAC,CAAC;AAE9D,uLAAuL;AACvL,MAAM,MAAM,kBAAkB,CAAC,eAAe,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE;IACjE,WAAW,EAAE,eAAe,CAAC;CAC9B,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC;AAE9B,8GAA8G;AAC9G,MAAM,WAAW,4BAA4B,CAAC,eAAe,GAAG,OAAO;IACrE,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,iBAAiB,CAChC,eAAe,GAAG,OAAO,CACzB,SAAQ,4BAA4B,CAAC,eAAe,CAAC;IACrD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,uGAAuG;AACvG,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB"}
1
+ {"version":3,"file":"artifact.d.ts","sourceRoot":"","sources":["../../../../../../src/helpers/inversion/common/types/artifact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,2FAA2F;AAC3F,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,aAAa,CAAC,CAAC;AAE9D,uLAAuL;AACvL,MAAM,MAAM,kBAAkB,CAAC,eAAe,GAAG,OAAO,IAAI,CAAC,IAAI,EAAE;IACjE,WAAW,EAAE,eAAe,CAAC;CAC9B,KAAK,cAAc,CAAC,OAAO,CAAC,CAAC;AAE9B,8GAA8G;AAC9G,MAAM,WAAW,4BAA4B,CAAC,eAAe,GAAG,OAAO;IACrE,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC3C,2FAA2F;IAC3F,KAAK,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB,CAChC,eAAe,GAAG,OAAO,CACzB,SAAQ,4BAA4B,CAAC,eAAe,CAAC;IACrD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,uGAAuG;AACvG,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB"}
@@ -63,6 +63,14 @@ export declare const ArtifactMetadataMixin: <BaseClass extends TMixinTarget<_Met
63
63
  getInjectMetadata: <T extends object = object>(opts: {
64
64
  target: T;
65
65
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
66
+ setBindingKey: <T extends object = object>(opts: {
67
+ target: T;
68
+ key: import("@venizia/ignis-inversion").TBindingKey;
69
+ isProvisional?: boolean;
70
+ }) => void;
71
+ getBindingKey: <T extends object = object>(opts: {
72
+ target: T;
73
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
66
74
  scope: string;
67
75
  identifier: string;
68
76
  };
@@ -1 +1 @@
1
- {"version":3,"file":"artifact.mixin.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/mixins/artifact.mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,eAAO,MAAM,qBAAqB,GAAI,SAAS,SAAS,YAAY,CAAC,iBAAiB,CAAC,EACrF,WAAW,SAAS;;4BAGE,MAAM,SAAS,MAAM,WAAW,eAAe,kBAAkB;YACnF,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;SAC9C,GAAG,IAAI;4BAKY,MAAM,SAAS,MAAM,iBAAiB;YACxD,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,iBAAiB,GAAG,SAAS;2BAId,MAAM,SAAS,MAAM,iBAAiB;YACvD,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,gBAAgB,CAAC;SAC5B,GAAG,IAAI;2BAKW,MAAM,SAAS,MAAM,iBAAiB;YACvD,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAIzB,CAAC"}
1
+ {"version":3,"file":"artifact.mixin.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/mixins/artifact.mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,eAAO,MAAM,qBAAqB,GAAI,SAAS,SAAS,YAAY,CAAC,iBAAiB,CAAC,EACrF,WAAW,SAAS;;4BAGE,MAAM,SAAS,MAAM,WAAW,eAAe,kBAAkB;YACnF,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;SAC9C,GAAG,IAAI;4BAKY,MAAM,SAAS,MAAM,iBAAiB;YACxD,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,iBAAiB,GAAG,SAAS;2BAId,MAAM,SAAS,MAAM,iBAAiB;YACvD,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,gBAAgB,CAAC;SAC5B,GAAG,IAAI;2BAKW,MAAM,SAAS,MAAM,iBAAiB;YACvD,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAKijB,CAAC;;;;;;;;aAD3kB,CAAC"}
@@ -62,6 +62,14 @@ export declare const ControllerMetadataMixin: <BaseClass extends TMixinTarget<_M
62
62
  getInjectMetadata: <T extends object = object>(opts: {
63
63
  target: T;
64
64
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
65
+ setBindingKey: <T extends object = object>(opts: {
66
+ target: T;
67
+ key: import("@venizia/ignis-inversion").TBindingKey;
68
+ isProvisional?: boolean;
69
+ }) => void;
70
+ getBindingKey: <T extends object = object>(opts: {
71
+ target: T;
72
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
65
73
  scope: string;
66
74
  identifier: string;
67
75
  };
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../../../src/helpers/inversion/mixins/controllers/controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,uBAAuB,GAAI,SAAS,SAAS,YAAY,CAAC,iBAAiB,CAAC,EACvF,WAAW,SAAS;;8BAGI,MAAM,SAAS,MAAM,iBAAiB;YAC1D,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,mBAAmB,CAAC;SAC/B,GAAG,IAAI;8BAUc,MAAM,SAAS,MAAM,iBAAiB;YAC1D,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,mBAAmB,GAAG,SAAS;kCAKT,MAAM,SAAS,MAAM,iBAAiB;YAC9D,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,uBAAuB,GAAG,SAAS;kCAQb,MAAM,SAAS,MAAM,iBAAiB;YAC9D,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,uBAAuB,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAQ1C,CAAC"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../../../../../src/helpers/inversion/mixins/controllers/controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,uBAAuB,GAAI,SAAS,SAAS,YAAY,CAAC,iBAAiB,CAAC,EACvF,WAAW,SAAS;;8BAGI,MAAM,SAAS,MAAM,iBAAiB;YAC1D,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,mBAAmB,CAAC;SAC/B,GAAG,IAAI;8BAUc,MAAM,SAAS,MAAM,iBAAiB;YAC1D,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,mBAAmB,GAAG,SAAS;kCAKT,MAAM,SAAS,MAAM,iBAAiB;YAC9D,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,uBAAuB,GAAG,SAAS;kCAQb,MAAM,SAAS,MAAM,iBAAiB;YAC9D,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,uBAAuB,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBASqJ,CAAC;;;;;;;;aADhM,CAAC"}
@@ -64,6 +64,14 @@ export declare const GrpcControllerMetadataMixin: <BaseClass extends TMixinTarge
64
64
  getInjectMetadata: <T extends object = object>(opts: {
65
65
  target: T;
66
66
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
67
+ setBindingKey: <T extends object = object>(opts: {
68
+ target: T;
69
+ key: import("@venizia/ignis-inversion").TBindingKey;
70
+ isProvisional?: boolean;
71
+ }) => void;
72
+ getBindingKey: <T extends object = object>(opts: {
73
+ target: T;
74
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
67
75
  scope: string;
68
76
  identifier: string;
69
77
  };
@@ -1 +1 @@
1
- {"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../../../../../src/helpers/inversion/mixins/controllers/grpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,eAAO,MAAM,2BAA2B,GAAI,SAAS,SAAS,YAAY,CAAC,iBAAiB,CAAC,EAC3F,WAAW,SAAS;;eAGX,MAAM,SAAS,MAAM,iBAAiB;YAC3C,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;YAC5B,OAAO,EAAE,YAAY,CAAC;SACvB,GAAG,IAAI;gBAaA,MAAM,SAAS,MAAM,iBAAiB;YAC5C,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS;eAK3C,MAAM,SAAS,MAAM,iBAAiB;YAC3C,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;SAC7B,GAAG,YAAY,GAAG,SAAS;gBAMpB,MAAM,SAAS,MAAM,iBAAiB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAK7E,CAAC"}
1
+ {"version":3,"file":"grpc.d.ts","sourceRoot":"","sources":["../../../../../../src/helpers/inversion/mixins/controllers/grpc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,eAAO,MAAM,2BAA2B,GAAI,SAAS,SAAS,YAAY,CAAC,iBAAiB,CAAC,EAC3F,WAAW,SAAS;;eAGX,MAAM,SAAS,MAAM,iBAAiB;YAC3C,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;YAC5B,OAAO,EAAE,YAAY,CAAC;SACvB,GAAG,IAAI;gBAaA,MAAM,SAAS,MAAM,iBAAiB;YAC5C,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS;eAK3C,MAAM,SAAS,MAAM,iBAAiB;YAC3C,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;SAC7B,GAAG,YAAY,GAAG,SAAS;gBAMpB,MAAM,SAAS,MAAM,iBAAiB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAMyJ,CAAC;;;;;;;;aADvO,CAAC"}
@@ -64,6 +64,14 @@ export declare const RestControllerMetadataMixin: <BaseClass extends TMixinTarge
64
64
  getInjectMetadata: <T extends object = object>(opts: {
65
65
  target: T;
66
66
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
67
+ setBindingKey: <T extends object = object>(opts: {
68
+ target: T;
69
+ key: import("@venizia/ignis-inversion").TBindingKey;
70
+ isProvisional?: boolean;
71
+ }) => void;
72
+ getBindingKey: <T extends object = object>(opts: {
73
+ target: T;
74
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
67
75
  scope: string;
68
76
  identifier: string;
69
77
  };
@@ -1 +1 @@
1
- {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../../../../../src/helpers/inversion/mixins/controllers/rest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,eAAO,MAAM,2BAA2B,GAAI,SAAS,SAAS,YAAY,CAAC,iBAAiB,CAAC,EAC3F,WAAW,SAAS;;kBAGR,MAAM,SAAS,MAAM,iBAAiB;YAC9C,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS;iBAK7C,MAAM,SAAS,MAAM,iBAAiB;YAC7C,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;SAC7B,GAAG,gBAAgB,GAAG,SAAS;kBAMtB,MAAM,SAAS,MAAM,iBAAiB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO;iBAKnE,MAAM,SAAS,MAAM,iBAAiB;YAC7C,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;YAC5B,OAAO,EAAE,gBAAgB,CAAC;SAC3B,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAcX,CAAC"}
1
+ {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../../../../../src/helpers/inversion/mixins/controllers/rest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,eAAO,MAAM,2BAA2B,GAAI,SAAS,SAAS,YAAY,CAAC,iBAAiB,CAAC,EAC3F,WAAW,SAAS;;kBAGR,MAAM,SAAS,MAAM,iBAAiB;YAC9C,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS;iBAK7C,MAAM,SAAS,MAAM,iBAAiB;YAC7C,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;SAC7B,GAAG,gBAAgB,GAAG,SAAS;kBAMtB,MAAM,SAAS,MAAM,iBAAiB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO;iBAKnE,MAAM,SAAS,MAAM,iBAAiB;YAC7C,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;YAC5B,OAAO,EAAE,gBAAgB,CAAC;SAC3B,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAekH,CAAC;;;;;;;;aAD9H,CAAC"}
@@ -56,6 +56,14 @@ export declare const DatasourceMetadataMixin: <BaseClass extends TMixinTarget<_M
56
56
  getInjectMetadata: <T extends object = object>(opts: {
57
57
  target: T;
58
58
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
59
+ setBindingKey: <T extends object = object>(opts: {
60
+ target: T;
61
+ key: import("@venizia/ignis-inversion").TBindingKey;
62
+ isProvisional?: boolean;
63
+ }) => void;
64
+ getBindingKey: <T extends object = object>(opts: {
65
+ target: T;
66
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
59
67
  scope: string;
60
68
  identifier: string;
61
69
  };
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.mixin.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/mixins/datasource.mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,eAAO,MAAM,uBAAuB,GAAI,SAAS,SAAS,YAAY,CAAC,iBAAiB,CAAC,EACvF,WAAW,SAAS;;8BAGI,MAAM,SAAS,MAAM,iBAAiB;YAC1D,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,CAAC,EAAE,mBAAmB,CAAC;SAChC,GAAG,IAAI;8BAUc,MAAM,SAAS,MAAM,iBAAiB;YAC1D,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,mBAAmB,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAKtC,CAAC"}
1
+ {"version":3,"file":"datasource.mixin.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/mixins/datasource.mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,eAAO,MAAM,uBAAuB,GAAI,SAAS,SAAS,YAAY,CAAC,iBAAiB,CAAC,EACvF,WAAW,SAAS;;8BAGI,MAAM,SAAS,MAAM,iBAAiB;YAC1D,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,CAAC,EAAE,mBAAmB,CAAC;SAChC,GAAG,IAAI;8BAUc,MAAM,SAAS,MAAM,iBAAiB;YAC1D,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,mBAAmB,GAAG,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAM8hC,CAAC;;;;;;;;aADrkC,CAAC"}
@@ -90,6 +90,14 @@ export declare const ModelMetadataMixin: <BaseClass extends TMixinTarget<_Metada
90
90
  getInjectMetadata: <T extends object = object>(opts: {
91
91
  target: T;
92
92
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
93
+ setBindingKey: <T extends object = object>(opts: {
94
+ target: T;
95
+ key: import("@venizia/ignis-inversion").TBindingKey;
96
+ isProvisional?: boolean;
97
+ }) => void;
98
+ getBindingKey: <T extends object = object>(opts: {
99
+ target: T;
100
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
93
101
  scope: string;
94
102
  identifier: string;
95
103
  };
@@ -1 +1 @@
1
- {"version":3,"file":"model.mixin.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/mixins/model.mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,KAAK,EACV,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EAEtB,MAAM,iBAAiB,CAAC;AA0CzB,eAAO,MAAM,kBAAkB,GAAI,SAAS,SAAS,YAAY,CAAC,iBAAiB,CAAC,EAClF,WAAW,SAAS;;uBAGH,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;yBAE9B,MAAM,SAAS,MAAM,iBAAiB;YACrD,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,cAAc,CAAC;SAC1B,GAAG,IAAI;yBAKS,MAAM,SAAS,MAAM,iBAAiB;YACrD,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,cAAc,GAAG,SAAS;QAK9B,kLAAkL;sBACpK,KAAK,SAAS,cAAc;;sBAE9B,cAAc;;4BA0BN;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,mBAAmB,GAAG,SAAS;wBAItD,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;wCAIhB;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,uBAAuB,GAAG,SAAS;QAKtF,oFAAoF;0CAClD;YAAE,MAAM,EAAE,OAAO,CAAA;SAAE,GAAG,MAAM,EAAE;0CAC9B;YAAE,MAAM,EAAE,QAAQ,CAAA;SAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;wCAyB/C;YAAE,MAAM,EAAE,OAAO,CAAA;SAAE,GAAG,KAAK,CAAC;YAC1D,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,uBAAuB,CAAC;YACnC,KAAK,EAAE,mBAAmB,CAAC;SAC5B,CAAC;wCAC8B;YAC9B,MAAM,EAAE,QAAQ,CAAC;SAClB,GAAG,MAAM,CAAC,MAAM,EAAE;YAAE,SAAS,EAAE,uBAAuB,CAAC;YAAC,KAAK,EAAE,mBAAmB,CAAA;SAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA0BzF,CAAC"}
1
+ {"version":3,"file":"model.mixin.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/mixins/model.mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,KAAK,EACV,uBAAuB,EACvB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EAEtB,MAAM,iBAAiB,CAAC;AA0CzB,eAAO,MAAM,kBAAkB,GAAI,SAAS,SAAS,YAAY,CAAC,iBAAiB,CAAC,EAClF,WAAW,SAAS;;uBAGH,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;yBAE9B,MAAM,SAAS,MAAM,iBAAiB;YACrD,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,cAAc,CAAC;SAC1B,GAAG,IAAI;yBAKS,MAAM,SAAS,MAAM,iBAAiB;YACrD,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,cAAc,GAAG,SAAS;QAK9B,kLAAkL;sBACpK,KAAK,SAAS,cAAc;;sBAE9B,cAAc;;4BA0BN;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,mBAAmB,GAAG,SAAS;wBAItD,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;wCAIhB;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,uBAAuB,GAAG,SAAS;QAKtF,oFAAoF;0CAClD;YAAE,MAAM,EAAE,OAAO,CAAA;SAAE,GAAG,MAAM,EAAE;0CAC9B;YAAE,MAAM,EAAE,QAAQ,CAAA;SAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;wCAyB/C;YAAE,MAAM,EAAE,OAAO,CAAA;SAAE,GAAG,KAAK,CAAC;YAC1D,IAAI,EAAE,MAAM,CAAC;YACb,SAAS,EAAE,uBAAuB,CAAC;YACnC,KAAK,EAAE,mBAAmB,CAAC;SAC5B,CAAC;wCAC8B;YAC9B,MAAM,EAAE,QAAQ,CAAC;SAClB,GAAG,MAAM,CAAC,MAAM,EAAE;YAAE,SAAS,EAAE,uBAAuB,CAAC;YAAC,KAAK,EAAE,mBAAmB,CAAA;SAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAnFnD,CAAC;;;;;;;;aA6GvC,CAAC"}
@@ -115,6 +115,14 @@ export declare const RepositoryMetadataMixin: <BaseClass extends TMixinTarget<_M
115
115
  getInjectMetadata: <T extends object = object>(opts: {
116
116
  target: T;
117
117
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
118
+ setBindingKey: <T extends object = object>(opts: {
119
+ target: T;
120
+ key: import("@venizia/ignis-inversion").TBindingKey;
121
+ isProvisional?: boolean;
122
+ }) => void;
123
+ getBindingKey: <T extends object = object>(opts: {
124
+ target: T;
125
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
118
126
  scope: string;
119
127
  identifier: string;
120
128
  modelRegistry: Map<string, IModelRegistryEntry>;
@@ -1 +1 @@
1
- {"version":3,"file":"repository.mixin.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/mixins/repository.mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGnF,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,uBAAuB,GAClC,SAAS,SAAS,YAAY,CAC5B,iBAAiB,GAAG;IAClB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAChD,gBAAgB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,GAAG,SAAS,CAAC;CACxE,CACF,EAED,WAAW,SAAS;;4BAGE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAEnE;;;WAGG;0BACe,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;8BAGjD,MAAM,SAAS,MAAM,WACrB,KAAK,SAAS,cAAc,4BAC5B,UAAU,SAAS,WAAW,iFACxB;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;SAAE,GAAG,IAAI;8BAK7D,MAAM,SAAS,MAAM,iBAAiB;YAC1D,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,CAAC,mBAAmB,GAAG;YAAE,SAAS,CAAC,EAAE,2BAA2B,CAAA;SAAE,CAAC,GAAG,SAAS;QAKnF,6GAA6G;kDAE7F,cAAc,iDACT,WAAW;mCAoBL;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,SAAS;QAI5F;;;;WAIG;yCAC8B,mBAAmB,GAAG,OAAO;QA+B9D;;;;WAIG;wBACa;YAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;SAAE,GAAG,KAAK,CAAC;YACnE,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,OAAO,CAAC;YAChB,SAAS,CAAC,EAAE,OAAO,CAAC;SACrB,CAAC;QAmCF;;;WAGG;8BACmB;YAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;SAAE,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAS3F,wGAAwG;8BAClF;YAAE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;SAAE,GAAG,MAAM;QAU9D,gFAAgF;0BAC9D;YAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;SAAE,GAAG;YAC/D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACpC;wBAsBe;YAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;SAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA7LrD,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;iCACxB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAG,cAAc,GAAG,SAAS;;aAkM3E,CAAC"}
1
+ {"version":3,"file":"repository.mixin.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/inversion/mixins/repository.mixin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAGnF,OAAO,KAAK,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGtF,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC5B,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,uBAAuB,GAClC,SAAS,SAAS,YAAY,CAC5B,iBAAiB,GAAG;IAClB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAChD,gBAAgB,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,GAAG,SAAS,CAAC;CACxE,CACF,EAED,WAAW,SAAS;;4BAGE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;QAEnE;;;WAGG;0BACe,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;8BAGjD,MAAM,SAAS,MAAM,WACrB,KAAK,SAAS,cAAc,4BAC5B,UAAU,SAAS,WAAW,iFACxB;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;SAAE,GAAG,IAAI;8BAK7D,MAAM,SAAS,MAAM,iBAAiB;YAC1D,MAAM,EAAE,MAAM,CAAC;SAChB,GAAG,CAAC,mBAAmB,GAAG;YAAE,SAAS,CAAC,EAAE,2BAA2B,CAAA;SAAE,CAAC,GAAG,SAAS;QAKnF,6GAA6G;kDAE7F,cAAc,iDACT,WAAW;mCAoBL;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,kBAAkB,CAAC,cAAc,CAAC,GAAG,SAAS;QAI5F;;;;WAIG;yCAC8B,mBAAmB,GAAG,OAAO;QA+B9D;;;;WAIG;wBACa;YAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;SAAE,GAAG,KAAK,CAAC;YACnE,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,OAAO,CAAC;YAChB,SAAS,CAAC,EAAE,OAAO,CAAC;SACrB,CAAC;QAmCF;;;WAGG;8BACmB;YAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;SAAE,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAS3F,wGAAwG;8BAClF;YAAE,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAA;SAAE,GAAG,MAAM;QAU9D,gFAAgF;0BAC9D;YAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;SAAE,GAAG;YAC/D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACpC;wBAsBe;YAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;SAAE,GAAG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA7J6B,CAAC;;;;;;;uBAhCnF,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;iCACxB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAG,cAAc,GAAG,SAAS;;aAkM3E,CAAC"}
@@ -63,6 +63,14 @@ declare const BaseRegistry: {
63
63
  getInjectMetadata: <T extends object = object>(opts: {
64
64
  target: T;
65
65
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
66
+ setBindingKey: <T extends object = object>(opts: {
67
+ target: T;
68
+ key: import("@venizia/ignis-inversion").TBindingKey;
69
+ isProvisional?: boolean;
70
+ }) => void;
71
+ getBindingKey: <T extends object = object>(opts: {
72
+ target: T;
73
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
66
74
  scope: string;
67
75
  identifier: string;
68
76
  };
@@ -129,6 +137,14 @@ declare const BaseRegistry: {
129
137
  getInjectMetadata: <T extends object = object>(opts: {
130
138
  target: T;
131
139
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
140
+ setBindingKey: <T extends object = object>(opts: {
141
+ target: T;
142
+ key: import("@venizia/ignis-inversion").TBindingKey;
143
+ isProvisional?: boolean;
144
+ }) => void;
145
+ getBindingKey: <T extends object = object>(opts: {
146
+ target: T;
147
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
132
148
  scope: string;
133
149
  identifier: string;
134
150
  };
@@ -195,6 +211,14 @@ declare const BaseRegistry: {
195
211
  getInjectMetadata: <T extends object = object>(opts: {
196
212
  target: T;
197
213
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
214
+ setBindingKey: <T extends object = object>(opts: {
215
+ target: T;
216
+ key: import("@venizia/ignis-inversion").TBindingKey;
217
+ isProvisional?: boolean;
218
+ }) => void;
219
+ getBindingKey: <T extends object = object>(opts: {
220
+ target: T;
221
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
198
222
  scope: string;
199
223
  identifier: string;
200
224
  };
@@ -259,6 +283,14 @@ declare const BaseRegistry: {
259
283
  getInjectMetadata: <T extends object = object>(opts: {
260
284
  target: T;
261
285
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
286
+ setBindingKey: <T extends object = object>(opts: {
287
+ target: T;
288
+ key: import("@venizia/ignis-inversion").TBindingKey;
289
+ isProvisional?: boolean;
290
+ }) => void;
291
+ getBindingKey: <T extends object = object>(opts: {
292
+ target: T;
293
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
262
294
  scope: string;
263
295
  identifier: string;
264
296
  };
@@ -348,6 +380,14 @@ declare const BaseRegistry: {
348
380
  getInjectMetadata: <T extends object = object>(opts: {
349
381
  target: T;
350
382
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
383
+ setBindingKey: <T extends object = object>(opts: {
384
+ target: T;
385
+ key: import("@venizia/ignis-inversion").TBindingKey;
386
+ isProvisional?: boolean;
387
+ }) => void;
388
+ getBindingKey: <T extends object = object>(opts: {
389
+ target: T;
390
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
351
391
  scope: string;
352
392
  identifier: string;
353
393
  modelRegistry: Map<string, IModelRegistryEntry>;
@@ -441,6 +481,14 @@ declare const BaseRegistry: {
441
481
  getInjectMetadata: <T extends object = object>(opts: {
442
482
  target: T;
443
483
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
484
+ setBindingKey: <T extends object = object>(opts: {
485
+ target: T;
486
+ key: import("@venizia/ignis-inversion").TBindingKey;
487
+ isProvisional?: boolean;
488
+ }) => void;
489
+ getBindingKey: <T extends object = object>(opts: {
490
+ target: T;
491
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
444
492
  scope: string;
445
493
  identifier: string;
446
494
  };
@@ -499,6 +547,14 @@ declare const BaseRegistry: {
499
547
  getInjectMetadata: <T extends object = object>(opts: {
500
548
  target: T;
501
549
  }) => import("@venizia/ignis-inversion").IInjectMetadata[] | undefined;
550
+ setBindingKey: <T extends object = object>(opts: {
551
+ target: T;
552
+ key: import("@venizia/ignis-inversion").TBindingKey;
553
+ isProvisional?: boolean;
554
+ }) => void;
555
+ getBindingKey: <T extends object = object>(opts: {
556
+ target: T;
557
+ }) => import("@venizia/ignis-inversion").TBindingKey | undefined;
502
558
  scope: string;
503
559
  identifier: string;
504
560
  };
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/helpers/inversion/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAW9E,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BAQjB,CAAC;AAEF,iHAAiH;AACjH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,MAAM,CAAC,QAAQ,CAAC,kBAAkB,uBAAuB;IAEzD,OAAO;IAOP,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAOtC,QAAQ,IAAI,IAAI;CAKjB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/helpers/inversion/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,gBAAgB,IAAI,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAW9E,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAkC2gB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAAD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAAD,CAAC;;;;;;;;4BA1B7hB,CAAC;AAEF,iHAAiH;AACjH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,MAAM,CAAC,QAAQ,CAAC,kBAAkB,uBAAuB;IAEzD,OAAO;IAOP,MAAM,CAAC,WAAW,IAAI,gBAAgB;IAOtC,QAAQ,IAAI,IAAI;CAKjB"}
@@ -1,3 +1,4 @@
1
+ import type { TClass } from '@venizia/ignis-helpers/common';
1
2
  import { BaseHelper } from '@venizia/ignis-helpers/core';
2
3
  import type { IArtifactIndex, TArtifactIndexInput } from './common/index.js';
3
4
  /** Turns a `configs.artifacts` input into the classes to register: flattens nested indexes, drops the classes whose `when` says no, orders the rest. It never touches the container - `registerArtifacts` does the binding. */
@@ -10,6 +11,14 @@ export declare class ArtifactIndexHelper extends BaseHelper {
10
11
  input: TArtifactIndexInput;
11
12
  application: unknown;
12
13
  }): Promise<Required<IArtifactIndex>>;
14
+ /**
15
+ * Topologically sort configurations based on `after` dependencies.
16
+ * Siblings with no dependency relation are sorted deterministically by class name.
17
+ * Throws if an unknown `after` dependency is referenced or if a dependency cycle is detected.
18
+ */
19
+ sortConfigurationsTopologically(opts: {
20
+ classes: ReadonlyArray<TClass<any>>;
21
+ }): TClass<any>[];
13
22
  /** One index, or arrays nested to any depth, as a flat list in input order; a conditional entry contributes its subtree only when its `when` answers true. */
14
23
  flatten(opts: {
15
24
  input: TArtifactIndexInput;
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-index.d.ts","sourceRoot":"","sources":["../../../../src/base/applications/artifact-index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAA6B,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/F,+NAA+N;AAC/N,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,MAAM,CAAC,QAAQ,CAAC,mBAAmB,2BAA2B;IAE9D,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,mBAAmB;IAOzC,yHAAyH;IACnH,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IAiCrC,8JAA8J;IACxJ,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAsB7B,4IAA4I;IAC5I,OAAO,CAAC,aAAa;IAMrB,mNAAmN;IAC7M,MAAM,CAAC,KAAK,SAAS,MAAM,cAAc,EAAE,IAAI,EAAE;QACrD,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1B,KAAK,EAAE,KAAK,CAAC;QACb,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YA0B3C,UAAU;CAYzB"}
1
+ {"version":3,"file":"artifact-index.d.ts","sourceRoot":"","sources":["../../../../src/base/applications/artifact-index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAY,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAA6B,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG/F,+NAA+N;AAC/N,qBAAa,mBAAoB,SAAQ,UAAU;IACjD,MAAM,CAAC,QAAQ,CAAC,mBAAmB,2BAA2B;IAE9D,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,mBAAmB;IAOzC,yHAAyH;IACnH,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IA0CrC;;;;OAIG;IACH,+BAA+B,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;KAAE,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE;IA0E7F,8JAA8J;IACxJ,OAAO,CAAC,IAAI,EAAE;QAClB,KAAK,EAAE,mBAAmB,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAsB7B,4IAA4I;IAC5I,OAAO,CAAC,aAAa;IAMrB,mNAAmN;IAC7M,MAAM,CAAC,KAAK,SAAS,MAAM,cAAc,EAAE,IAAI,EAAE;QACrD,OAAO,EAAE,cAAc,EAAE,CAAC;QAC1B,KAAK,EAAE,KAAK,CAAC;QACb,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YA4B3C,UAAU;CAWzB"}
@@ -1,6 +1,6 @@
1
1
  import { MetadataRegistry } from '../../helpers/inversion/index.js';
2
2
  import { SingletonRealm } from '../../helpers/singleton-realm.js';
3
- import { BaseHelper } from '@venizia/ignis-helpers/core';
3
+ import { BaseHelper, getError } from '@venizia/ignis-helpers/core';
4
4
  import { ArtifactIndexFields } from './common/index.js';
5
5
  /** Turns a `configs.artifacts` input into the classes to register: flattens nested indexes, drops the classes whose `when` says no, orders the rest. It never touches the container - `registerArtifacts` does the binding. */
6
6
  export class ArtifactIndexHelper extends BaseHelper {
@@ -18,6 +18,14 @@ export class ArtifactIndexHelper extends BaseHelper {
18
18
  async resolve(opts) {
19
19
  const { input, application } = opts;
20
20
  const indexes = await this.flatten({ input, application });
21
+ const rawConfigurations = await this.select({
22
+ indexes,
23
+ field: ArtifactIndexFields.CONFIGURATIONS,
24
+ application,
25
+ });
26
+ const configurations = this.sortConfigurationsTopologically({
27
+ classes: rawConfigurations,
28
+ });
21
29
  const dataSources = await this.select({
22
30
  indexes,
23
31
  field: ArtifactIndexFields.DATA_SOURCES,
@@ -43,7 +51,73 @@ export class ArtifactIndexHelper extends BaseHelper {
43
51
  field: ArtifactIndexFields.CONTROLLERS,
44
52
  application,
45
53
  });
46
- return { dataSources, components, repositories, services, controllers };
54
+ return { configurations, dataSources, components, repositories, services, controllers };
55
+ }
56
+ /**
57
+ * Topologically sort configurations based on `after` dependencies.
58
+ * Siblings with no dependency relation are sorted deterministically by class name.
59
+ * Throws if an unknown `after` dependency is referenced or if a dependency cycle is detected.
60
+ */
61
+ sortConfigurationsTopologically(opts) {
62
+ const { classes } = opts;
63
+ if (classes.length === 0) {
64
+ return [];
65
+ }
66
+ const registry = MetadataRegistry.getInstance();
67
+ const classMap = new Map();
68
+ for (const target of classes) {
69
+ classMap.set(target.name, target);
70
+ }
71
+ // Build graph: edge A -> B means A must run before B (B declared after: [A])
72
+ const inDegree = new Map();
73
+ const adjacency = new Map();
74
+ for (const target of classes) {
75
+ inDegree.set(target.name, 0);
76
+ adjacency.set(target.name, []);
77
+ }
78
+ for (const target of classes) {
79
+ const metadata = registry.getArtifactMetadata({ target });
80
+ const afterList = metadata?.after ?? [];
81
+ for (const prereq of afterList) {
82
+ const prereqName = typeof prereq === 'function' ? prereq.name : String(prereq);
83
+ if (!classMap.has(prereqName)) {
84
+ throw getError({
85
+ message: `[sortConfigurationsTopologically][${target.name}] Declared 'after' dependency '${prereqName}' is not registered as a configuration`,
86
+ });
87
+ }
88
+ adjacency.get(prereqName).push(target.name);
89
+ inDegree.set(target.name, (inDegree.get(target.name) ?? 0) + 1);
90
+ }
91
+ }
92
+ // Kahn's algorithm with priority queue (sorted by class name for deterministic sibling ordering)
93
+ const available = [];
94
+ for (const [name, deg] of inDegree.entries()) {
95
+ if (deg === 0) {
96
+ available.push(name);
97
+ }
98
+ }
99
+ available.sort((a, b) => a.localeCompare(b));
100
+ const sortedNames = [];
101
+ while (available.length > 0) {
102
+ const current = available.shift();
103
+ sortedNames.push(current);
104
+ const dependents = adjacency.get(current) ?? [];
105
+ for (const dep of dependents) {
106
+ const newDeg = inDegree.get(dep) - 1;
107
+ inDegree.set(dep, newDeg);
108
+ if (newDeg === 0) {
109
+ available.push(dep);
110
+ available.sort((a, b) => a.localeCompare(b));
111
+ }
112
+ }
113
+ }
114
+ if (sortedNames.length !== classes.length) {
115
+ const unvisited = classes.filter(c => !sortedNames.includes(c.name)).map(c => c.name);
116
+ throw getError({
117
+ message: `[sortConfigurationsTopologically] Dependency cycle detected in configurations: ${unvisited.join(', ')}`,
118
+ });
119
+ }
120
+ return sortedNames.map(name => classMap.get(name));
47
121
  }
48
122
  /** One index, or arrays nested to any depth, as a flat list in input order; a conditional entry contributes its subtree only when its `when` answers true. */
49
123
  async flatten(opts) {
@@ -71,26 +145,26 @@ export class ArtifactIndexHelper extends BaseHelper {
71
145
  const { indexes, field, application } = opts;
72
146
  const registry = MetadataRegistry.getInstance();
73
147
  const listed = indexes.flatMap(index => [...(index[field] ?? [])]);
74
- const decisions = await Promise.all(listed.map(ctor => this.isSelected({ ctor, application })));
75
- const kept = listed.filter((ctor, position) => {
148
+ const decisions = await Promise.all(listed.map(target => this.isSelected({ target, application })));
149
+ const kept = listed.filter((target, position) => {
76
150
  if (decisions[position]) {
77
151
  return true;
78
152
  }
79
- this.logger.debug('Skipped by condition | kind: %s | class: %s', field, ctor.name);
153
+ this.logger.debug('Skipped by condition | kind: %s | class: %s', field, target.name);
80
154
  return false;
81
155
  });
82
156
  return kept
83
- .map((ctor, position) => ({
84
- ctor,
157
+ .map((target, position) => ({
158
+ target,
85
159
  position,
86
- order: registry.getArtifactMetadata({ target: ctor })?.order ?? 0,
160
+ order: registry.getArtifactMetadata({ target })?.order ?? 0,
87
161
  }))
88
162
  .sort((a, b) => a.order - b.order || a.position - b.position)
89
- .map(entry => entry.ctor);
163
+ .map(entry => entry.target);
90
164
  }
91
165
  async isSelected(opts) {
92
- const { ctor, application } = opts;
93
- const when = MetadataRegistry.getInstance().getArtifactMetadata({ target: ctor })?.when;
166
+ const { target, application } = opts;
167
+ const when = MetadataRegistry.getInstance().getArtifactMetadata({ target })?.when;
94
168
  if (!when) {
95
169
  return true;
96
170
  }
@@ -1 +1 @@
1
- {"version":3,"file":"artifact-index.js","sourceRoot":"","sources":["../../../../src/base/applications/artifact-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"artifact-index.js","sourceRoot":"","sources":["../../../../src/base/applications/artifact-index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,+NAA+N;AAC/N,MAAM,OAAO,mBAAoB,SAAQ,UAAU;aACjC,wBAAmB,GAAG,uBAAuB,CAAC;IAE9D;QACE,KAAK,CAAC,EAAE,KAAK,EAAE,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,OAAO,cAAc,CAAC,OAAO,CAAC;YAC5B,GAAG,EAAE,mBAAmB,CAAC,mBAAmB;YAC5C,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE;SACxC,CAAC,CAAC;IACL,CAAC;IAED,yHAAyH;IACzH,KAAK,CAAC,OAAO,CAAC,IAGb;QACC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAE3D,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YAC1C,OAAO;YACP,KAAK,EAAE,mBAAmB,CAAC,cAAc;YACzC,WAAW;SACZ,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,CAAC,+BAA+B,CAAC;YAC1D,OAAO,EAAE,iBAAiB;SAC3B,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YACpC,OAAO;YACP,KAAK,EAAE,mBAAmB,CAAC,YAAY;YACvC,WAAW;SACZ,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YACnC,OAAO;YACP,KAAK,EAAE,mBAAmB,CAAC,UAAU;YACrC,WAAW;SACZ,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YACrC,OAAO;YACP,KAAK,EAAE,mBAAmB,CAAC,YAAY;YACvC,WAAW;SACZ,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YACjC,OAAO;YACP,KAAK,EAAE,mBAAmB,CAAC,QAAQ;YACnC,WAAW;SACZ,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YACpC,OAAO;YACP,KAAK,EAAE,mBAAmB,CAAC,WAAW;YACtC,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IAC1F,CAAC;IAED;;;;OAIG;IACH,+BAA+B,CAAC,IAA6C;QAC3E,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;QAChD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;QAED,6EAA6E;QAC7E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;QAE9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;YAExC,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC/E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC9B,MAAM,QAAQ,CAAC;wBACb,OAAO,EAAE,qCAAqC,MAAM,CAAC,IAAI,kCAAkC,UAAU,wCAAwC;qBAC9I,CAAC,CAAC;gBACL,CAAC;gBAED,SAAS,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC7C,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,iGAAiG;QACjG,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;YAC7C,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBACd,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7C,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,EAAG,CAAC;YACnC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE1B,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAChD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC;gBACtC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC1B,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACpB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtF,MAAM,QAAQ,CAAC;gBACb,OAAO,EAAE,kFAAkF,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aAClH,CAAC,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC;IACtD,CAAC;IAED,8JAA8J;IAC9J,KAAK,CAAC,OAAO,CAAC,IAGb;QACC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QACpC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAChE,CAAC;YACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACpE,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,4IAA4I;IACpI,aAAa,CACnB,KAAiD;QAEjD,OAAO,MAAM,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,CAAC;IAC7C,CAAC;IAED,mNAAmN;IACnN,KAAK,CAAC,MAAM,CAAqC,IAIhD;QACC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;QAEhD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAC/D,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;YAC9C,IAAI,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACrF,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI;aACR,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC1B,MAAM;YACN,QAAQ;YACR,KAAK,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;SAC5D,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;aAC5D,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,IAGxB;QACC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QACrC,MAAM,IAAI,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC;QAClF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/B,CAAC"}