@pristine-ts/core 1.0.440 → 2.0.2

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 (93) hide show
  1. package/dist/lib/cjs/core.module.js +1 -0
  2. package/dist/lib/cjs/core.module.js.map +1 -1
  3. package/dist/lib/cjs/enums/enums.js +2 -0
  4. package/dist/lib/cjs/enums/enums.js.map +1 -1
  5. package/dist/lib/cjs/enums/execution-context-keyname.enum.js +6 -0
  6. package/dist/lib/cjs/enums/execution-context-keyname.enum.js.map +1 -1
  7. package/dist/lib/cjs/enums/instantiation-phase.enum.js +18 -0
  8. package/dist/lib/cjs/enums/instantiation-phase.enum.js.map +1 -0
  9. package/dist/lib/cjs/enums/instantiation-status.enum.js +11 -0
  10. package/dist/lib/cjs/enums/instantiation-status.enum.js.map +1 -0
  11. package/dist/lib/cjs/interfaces/instantiation-test-result.interface.js +3 -0
  12. package/dist/lib/cjs/interfaces/instantiation-test-result.interface.js.map +1 -0
  13. package/dist/lib/cjs/interfaces/instantiation-test.interface.js +3 -0
  14. package/dist/lib/cjs/interfaces/instantiation-test.interface.js.map +1 -0
  15. package/dist/lib/cjs/interfaces/interfaces.js +4 -0
  16. package/dist/lib/cjs/interfaces/interfaces.js.map +1 -1
  17. package/dist/lib/cjs/interfaces/runtime-server.interface.js +3 -0
  18. package/dist/lib/cjs/interfaces/runtime-server.interface.js.map +1 -0
  19. package/dist/lib/cjs/interfaces/serialized-error.interface.js +3 -0
  20. package/dist/lib/cjs/interfaces/serialized-error.interface.js.map +1 -0
  21. package/dist/lib/cjs/kernel.js +316 -17
  22. package/dist/lib/cjs/kernel.js.map +1 -1
  23. package/dist/lib/cjs/models/instantiation-report.js +138 -0
  24. package/dist/lib/cjs/models/instantiation-report.js.map +1 -0
  25. package/dist/lib/cjs/models/instantiation-test-execution-result.js +16 -0
  26. package/dist/lib/cjs/models/instantiation-test-execution-result.js.map +1 -0
  27. package/dist/lib/cjs/models/missing-required-configuration-entry.js +11 -0
  28. package/dist/lib/cjs/models/missing-required-configuration-entry.js.map +1 -0
  29. package/dist/lib/cjs/models/models.js +4 -0
  30. package/dist/lib/cjs/models/models.js.map +1 -1
  31. package/dist/lib/cjs/models/phase-result.js +18 -0
  32. package/dist/lib/cjs/models/phase-result.js.map +1 -0
  33. package/dist/lib/cjs/runtime-servers/default-runtime-server.js +59 -0
  34. package/dist/lib/cjs/runtime-servers/default-runtime-server.js.map +1 -0
  35. package/dist/lib/cjs/runtime-servers/runtime-servers.js +18 -0
  36. package/dist/lib/cjs/runtime-servers/runtime-servers.js.map +1 -0
  37. package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  38. package/dist/lib/esm/core.module.js +1 -0
  39. package/dist/lib/esm/core.module.js.map +1 -1
  40. package/dist/lib/esm/enums/enums.js +2 -0
  41. package/dist/lib/esm/enums/enums.js.map +1 -1
  42. package/dist/lib/esm/enums/execution-context-keyname.enum.js +6 -0
  43. package/dist/lib/esm/enums/execution-context-keyname.enum.js.map +1 -1
  44. package/dist/lib/esm/enums/instantiation-phase.enum.js +15 -0
  45. package/dist/lib/esm/enums/instantiation-phase.enum.js.map +1 -0
  46. package/dist/lib/esm/enums/instantiation-status.enum.js +8 -0
  47. package/dist/lib/esm/enums/instantiation-status.enum.js.map +1 -0
  48. package/dist/lib/esm/interfaces/instantiation-test-result.interface.js +2 -0
  49. package/dist/lib/esm/interfaces/instantiation-test-result.interface.js.map +1 -0
  50. package/dist/lib/esm/interfaces/instantiation-test.interface.js +2 -0
  51. package/dist/lib/esm/interfaces/instantiation-test.interface.js.map +1 -0
  52. package/dist/lib/esm/interfaces/interfaces.js +4 -0
  53. package/dist/lib/esm/interfaces/interfaces.js.map +1 -1
  54. package/dist/lib/esm/interfaces/runtime-server.interface.js +2 -0
  55. package/dist/lib/esm/interfaces/runtime-server.interface.js.map +1 -0
  56. package/dist/lib/esm/interfaces/serialized-error.interface.js +2 -0
  57. package/dist/lib/esm/interfaces/serialized-error.interface.js.map +1 -0
  58. package/dist/lib/esm/kernel.js +317 -18
  59. package/dist/lib/esm/kernel.js.map +1 -1
  60. package/dist/lib/esm/models/instantiation-report.js +134 -0
  61. package/dist/lib/esm/models/instantiation-report.js.map +1 -0
  62. package/dist/lib/esm/models/instantiation-test-execution-result.js +12 -0
  63. package/dist/lib/esm/models/instantiation-test-execution-result.js.map +1 -0
  64. package/dist/lib/esm/models/missing-required-configuration-entry.js +7 -0
  65. package/dist/lib/esm/models/missing-required-configuration-entry.js.map +1 -0
  66. package/dist/lib/esm/models/models.js +4 -0
  67. package/dist/lib/esm/models/models.js.map +1 -1
  68. package/dist/lib/esm/models/phase-result.js +14 -0
  69. package/dist/lib/esm/models/phase-result.js.map +1 -0
  70. package/dist/lib/esm/runtime-servers/default-runtime-server.js +56 -0
  71. package/dist/lib/esm/runtime-servers/default-runtime-server.js.map +1 -0
  72. package/dist/lib/esm/runtime-servers/runtime-servers.js +2 -0
  73. package/dist/lib/esm/runtime-servers/runtime-servers.js.map +1 -0
  74. package/dist/lib/esm/tsconfig.tsbuildinfo +1 -0
  75. package/dist/types/core.module.d.ts +1 -0
  76. package/dist/types/enums/enums.d.ts +2 -0
  77. package/dist/types/enums/execution-context-keyname.enum.d.ts +6 -0
  78. package/dist/types/enums/instantiation-phase.enum.d.ts +13 -0
  79. package/dist/types/enums/instantiation-status.enum.d.ts +6 -0
  80. package/dist/types/interfaces/instantiation-test-result.interface.d.ts +11 -0
  81. package/dist/types/interfaces/instantiation-test.interface.d.ts +13 -0
  82. package/dist/types/interfaces/interfaces.d.ts +4 -0
  83. package/dist/types/interfaces/runtime-server.interface.d.ts +33 -0
  84. package/dist/types/interfaces/serialized-error.interface.d.ts +11 -0
  85. package/dist/types/kernel.d.ts +77 -6
  86. package/dist/types/models/instantiation-report.d.ts +43 -0
  87. package/dist/types/models/instantiation-test-execution-result.d.ts +11 -0
  88. package/dist/types/models/missing-required-configuration-entry.d.ts +5 -0
  89. package/dist/types/models/models.d.ts +4 -0
  90. package/dist/types/models/phase-result.d.ts +15 -0
  91. package/dist/types/runtime-servers/default-runtime-server.d.ts +22 -0
  92. package/dist/types/runtime-servers/runtime-servers.d.ts +1 -0
  93. package/package.json +7 -7
@@ -32,6 +32,7 @@ __exportStar(require("./managers/managers"), exports);
32
32
  __exportStar(require("./mappers/mappers"), exports);
33
33
  __exportStar(require("./models/models"), exports);
34
34
  __exportStar(require("./pipelines/pipelines"), exports);
35
+ __exportStar(require("./runtime-servers/runtime-servers"), exports);
35
36
  __exportStar(require("./core.module.keyname"), exports);
36
37
  exports.CoreModule = {
37
38
  keyname: core_module_keyname_1.CoreModuleKeyname,
@@ -1 +1 @@
1
- {"version":3,"file":"core.module.js","sourceRoot":"","sources":["../../../src/core.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,+DAAwD;AACxD,sDAAuD;AACvD,8DAA0G;AAC1G,kDAAmD;AACnD,2FAAkF;AAElF,2CAAyB;AAEzB,4DAA0C;AAC1C,gDAA8B;AAC9B,kDAAgC;AAChC,sDAAoC;AACpC,8DAA4C;AAC5C,0DAAwC;AACxC,wDAAsC;AACtC,sDAAoC;AACpC,oDAAkC;AAClC,kDAAgC;AAChC,wDAAsC;AAEtC,wDAAsC;AAEzB,QAAA,UAAU,GAAoB;IACzC,OAAO,EAAE,uCAAiB;IAC1B,aAAa,EAAE;QACb,mCAAmB;QACnB,2BAAe;QACf,uBAAa;KACd;IACD,qBAAqB,EAAE,EAAE;IACzB,wBAAwB,EAAE;QACxB;YACE,aAAa,EAAE,uCAAiB,GAAG,4BAA4B;YAC/D,YAAY,EAAE,2DAA0B,CAAC,IAAI;YAC7C,UAAU,EAAE,KAAK;YACjB,gBAAgB,EAAE;gBAChB,IAAI,4BAAY,CAAC,IAAI,2CAA2B,CAAC,yCAAyC,CAAC,EAAE,2DAA0B,CAAC;aACzH;SACF;QACD;YACE,aAAa,EAAE,uCAAiB,GAAG,6BAA6B;YAChE,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,KAAK;YACjB,gBAAgB,EAAE;gBAChB,IAAI,2CAA2B,CAAC,6CAA6C,CAAC;aAC/E;SACF;KACF;CACF,CAAA"}
1
+ {"version":3,"file":"core.module.js","sourceRoot":"","sources":["../../../src/core.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,+DAAwD;AACxD,sDAAuD;AACvD,8DAA0G;AAC1G,kDAAmD;AACnD,2FAAkF;AAElF,2CAAyB;AAEzB,4DAA0C;AAC1C,gDAA8B;AAC9B,kDAAgC;AAChC,sDAAoC;AACpC,8DAA4C;AAC5C,0DAAwC;AACxC,wDAAsC;AACtC,sDAAoC;AACpC,oDAAkC;AAClC,kDAAgC;AAChC,wDAAsC;AACtC,oEAAkD;AAElD,wDAAsC;AAEzB,QAAA,UAAU,GAAoB;IACzC,OAAO,EAAE,uCAAiB;IAC1B,aAAa,EAAE;QACb,mCAAmB;QACnB,2BAAe;QACf,uBAAa;KACd;IACD,qBAAqB,EAAE,EAAE;IACzB,wBAAwB,EAAE;QACxB;YACE,aAAa,EAAE,uCAAiB,GAAG,4BAA4B;YAC/D,YAAY,EAAE,2DAA0B,CAAC,IAAI;YAC7C,UAAU,EAAE,KAAK;YACjB,gBAAgB,EAAE;gBAChB,IAAI,4BAAY,CAAC,IAAI,2CAA2B,CAAC,yCAAyC,CAAC,EAAE,2DAA0B,CAAC;aACzH;SACF;QACD;YACE,aAAa,EAAE,uCAAiB,GAAG,6BAA6B;YAChE,YAAY,EAAE,IAAI;YAClB,UAAU,EAAE,KAAK;YACjB,gBAAgB,EAAE;gBAChB,IAAI,2CAA2B,CAAC,6CAA6C,CAAC;aAC/E;SACF;KACF;CACF,CAAA"}
@@ -16,4 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./event-id-generation-style.enum"), exports);
18
18
  __exportStar(require("./execution-context-keyname.enum"), exports);
19
+ __exportStar(require("./instantiation-phase.enum"), exports);
20
+ __exportStar(require("./instantiation-status.enum"), exports);
19
21
  //# sourceMappingURL=enums.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../src/enums/enums.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAiD;AACjD,mEAAiD"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../src/enums/enums.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mEAAiD;AACjD,mEAAiD;AACjD,6DAA2C;AAC3C,8DAA4C"}
@@ -6,6 +6,12 @@ var ExecutionContextKeynameEnum;
6
6
  ExecutionContextKeynameEnum["AwsLambda"] = "AWS_LAMBDA";
7
7
  ExecutionContextKeynameEnum["Cloudflare"] = "CLOUDFLARE";
8
8
  ExecutionContextKeynameEnum["Express"] = "EXPRESS";
9
+ /**
10
+ * Used by `KernelHttpServer` (the built-in Node `http.Server` wrapper used by `pristine start`)
11
+ * to identify requests coming from the kernel-routed HTTP server, distinct from Express-fronted
12
+ * requests that go through `@pristine-ts/express`.
13
+ */
14
+ ExecutionContextKeynameEnum["Http"] = "HTTP";
9
15
  ExecutionContextKeynameEnum["Jest"] = "JEST";
10
16
  ExecutionContextKeynameEnum["Cli"] = "CLI";
11
17
  })(ExecutionContextKeynameEnum || (exports.ExecutionContextKeynameEnum = ExecutionContextKeynameEnum = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"execution-context-keyname.enum.js","sourceRoot":"","sources":["../../../../src/enums/execution-context-keyname.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,2BAMX;AAND,WAAY,2BAA2B;IACrC,uDAAwB,CAAA;IACxB,wDAAyB,CAAA;IACzB,kDAAmB,CAAA;IACnB,4CAAa,CAAA;IACb,0CAAW,CAAA;AACb,CAAC,EANW,2BAA2B,2CAA3B,2BAA2B,QAMtC"}
1
+ {"version":3,"file":"execution-context-keyname.enum.js","sourceRoot":"","sources":["../../../../src/enums/execution-context-keyname.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,2BAYX;AAZD,WAAY,2BAA2B;IACrC,uDAAwB,CAAA;IACxB,wDAAyB,CAAA;IACzB,kDAAmB,CAAA;IACnB;;;;OAIG;IACH,4CAAa,CAAA;IACb,4CAAa,CAAA;IACb,0CAAW,CAAA;AACb,CAAC,EAZW,2BAA2B,2CAA3B,2BAA2B,QAYtC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InstantiationPhaseEnum = void 0;
4
+ /**
5
+ * Distinct phases of `Kernel.start()`. `verifyInstantiation` runs each phase in order on a fresh kernel
6
+ * and reports the outcome of each independently so callers can pinpoint which phase failed.
7
+ */
8
+ var InstantiationPhaseEnum;
9
+ (function (InstantiationPhaseEnum) {
10
+ InstantiationPhaseEnum["ModuleRegistration"] = "ModuleRegistration";
11
+ InstantiationPhaseEnum["ConfigurationCheck"] = "ConfigurationCheck";
12
+ InstantiationPhaseEnum["ConfigurationLoad"] = "ConfigurationLoad";
13
+ InstantiationPhaseEnum["ServiceTagRegistration"] = "ServiceTagRegistration";
14
+ InstantiationPhaseEnum["AfterInit"] = "AfterInit";
15
+ InstantiationPhaseEnum["BootProbe"] = "BootProbe";
16
+ InstantiationPhaseEnum["InstantiationTests"] = "InstantiationTests";
17
+ })(InstantiationPhaseEnum || (exports.InstantiationPhaseEnum = InstantiationPhaseEnum = {}));
18
+ //# sourceMappingURL=instantiation-phase.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instantiation-phase.enum.js","sourceRoot":"","sources":["../../../../src/enums/instantiation-phase.enum.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,IAAY,sBAQX;AARD,WAAY,sBAAsB;IAChC,mEAAyC,CAAA;IACzC,mEAAyC,CAAA;IACzC,iEAAuC,CAAA;IACvC,2EAAiD,CAAA;IACjD,iDAAuB,CAAA;IACvB,iDAAuB,CAAA;IACvB,mEAAyC,CAAA;AAC3C,CAAC,EARW,sBAAsB,sCAAtB,sBAAsB,QAQjC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InstantiationStatusEnum = void 0;
4
+ var InstantiationStatusEnum;
5
+ (function (InstantiationStatusEnum) {
6
+ InstantiationStatusEnum["Passed"] = "Passed";
7
+ InstantiationStatusEnum["PassedWithWarnings"] = "PassedWithWarnings";
8
+ InstantiationStatusEnum["Failed"] = "Failed";
9
+ InstantiationStatusEnum["Skipped"] = "Skipped";
10
+ })(InstantiationStatusEnum || (exports.InstantiationStatusEnum = InstantiationStatusEnum = {}));
11
+ //# sourceMappingURL=instantiation-status.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instantiation-status.enum.js","sourceRoot":"","sources":["../../../../src/enums/instantiation-status.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,4CAAiB,CAAA;IACjB,oEAAyC,CAAA;IACzC,4CAAiB,CAAA;IACjB,8CAAmB,CAAA;AACrB,CAAC,EALW,uBAAuB,uCAAvB,uBAAuB,QAKlC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=instantiation-test-result.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instantiation-test-result.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/instantiation-test-result.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=instantiation-test.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instantiation-test.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/instantiation-test.interface.ts"],"names":[],"mappings":""}
@@ -21,5 +21,9 @@ __exportStar(require("./event-listener.interface"), exports);
21
21
  __exportStar(require("./event-mapper.interface"), exports);
22
22
  __exportStar(require("./events-execution-options.interface"), exports);
23
23
  __exportStar(require("./execution-context.interface"), exports);
24
+ __exportStar(require("./instantiation-test.interface"), exports);
25
+ __exportStar(require("./instantiation-test-result.interface"), exports);
24
26
  __exportStar(require("./options-mapper.interface"), exports);
27
+ __exportStar(require("./runtime-server.interface"), exports);
28
+ __exportStar(require("./serialized-error.interface"), exports);
25
29
  //# sourceMappingURL=interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/interfaces/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,gEAA8C;AAC9C,4DAA0C;AAC1C,6DAA2C;AAC3C,2DAAyC;AACzC,uEAAqD;AACrD,gEAA8C;AAC9C,6DAA2C"}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/interfaces/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C;AAC7C,gEAA8C;AAC9C,4DAA0C;AAC1C,6DAA2C;AAC3C,2DAAyC;AACzC,uEAAqD;AACrD,gEAA8C;AAC9C,iEAA+C;AAC/C,wEAAsD;AACtD,6DAA2C;AAC3C,6DAA2C;AAC3C,+DAA6C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=runtime-server.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-server.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/runtime-server.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=serialized-error.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialized-error.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/serialized-error.interface.ts"],"names":[],"mappings":""}
@@ -19,6 +19,12 @@ const telemetry_1 = require("@pristine-ts/telemetry");
19
19
  const uuid_1 = require("uuid");
20
20
  const event_pipeline_1 = require("./pipelines/event.pipeline");
21
21
  const kernel_initialization_error_1 = require("./errors/kernel-initialization.error");
22
+ const instantiation_report_1 = require("./models/instantiation-report");
23
+ const phase_result_1 = require("./models/phase-result");
24
+ const instantiation_test_execution_result_1 = require("./models/instantiation-test-execution-result");
25
+ const missing_required_configuration_entry_1 = require("./models/missing-required-configuration-entry");
26
+ const instantiation_phase_enum_1 = require("./enums/instantiation-phase.enum");
27
+ const instantiation_status_enum_1 = require("./enums/instantiation-status.enum");
22
28
  /**
23
29
  * This is the central class that manages the lifecyle of this library.
24
30
  */
@@ -35,7 +41,7 @@ class Kernel {
35
41
  this.instantiationId = (0, uuid_1.v4)();
36
42
  /**
37
43
  * Contains a map of all the modules that were instantiated indexed by the modules names.
38
- * @private
44
+ * @public Exposed read-only so commands like `pristine info` can introspect the boot graph.
39
45
  */
40
46
  this.instantiatedModules = {};
41
47
  /**
@@ -43,6 +49,12 @@ class Kernel {
43
49
  * @private
44
50
  */
45
51
  this.afterInstantiatedModules = {};
52
+ /**
53
+ * True after `stop()` has begun (or completed). Prevents double-shutdown when multiple
54
+ * SIGTERM/SIGINT signals arrive in quick succession.
55
+ * @private
56
+ */
57
+ this.stopped = false;
46
58
  }
47
59
  /**
48
60
  * This function is the entry point of the Kernel. It initializes the module for your application (AppModule) as well as its the dependencies,
@@ -67,7 +79,8 @@ class Kernel {
67
79
  initializedModuleSpans.forEach(span => this.initializationSpan.addChild(span));
68
80
  // Register the configuration.
69
81
  const configurationInitializationSpan = new telemetry_1.Span(telemetry_1.SpanKeynameEnum.ConfigurationInitialization);
70
- yield this.initConfiguration(moduleConfigurationValues);
82
+ const configurationManager = this.registerConfigurationDefinitions();
83
+ yield this.loadConfiguration(configurationManager, moduleConfigurationValues);
71
84
  configurationInitializationSpan.endDate = Date.now();
72
85
  this.initializationSpan.addChild(configurationInitializationSpan);
73
86
  // Register the non module scoped tags
@@ -86,6 +99,240 @@ class Kernel {
86
99
  });
87
100
  });
88
101
  }
102
+ /**
103
+ * Verifies that this kernel can be fully instantiated against the provided AppModule and configuration values.
104
+ * Runs the same boot phases as `start()` on this kernel, capturing each phase's outcome rather than letting
105
+ * exceptions propagate, then collects and runs every embedder-registered `InstantiationTestInterface`.
106
+ *
107
+ * Important: this method mutates the kernel's container (it actually performs registration). It should be
108
+ * called on a fresh `new Kernel()` instance, not on a kernel that has already had `start()` invoked.
109
+ *
110
+ * @param module The AppModule to verify.
111
+ * @param moduleConfigurationValues The configuration values that would be passed to `start()`.
112
+ * @param options.runInstantiationTests When false, skips the test discovery/execution phase. Default true.
113
+ * @param options.stopOnFirstFailure When true, halts after the first failed phase and marks the rest as skipped. Default false.
114
+ */
115
+ verifyInstantiation(module, moduleConfigurationValues, options) {
116
+ return __awaiter(this, void 0, void 0, function* () {
117
+ const report = new instantiation_report_1.InstantiationReport();
118
+ const startedAt = Date.now();
119
+ const runInstantiationTests = (options === null || options === void 0 ? void 0 : options.runInstantiationTests) !== false;
120
+ const stopOnFirstFailure = (options === null || options === void 0 ? void 0 : options.stopOnFirstFailure) === true;
121
+ // Phase 1: ModuleRegistration. Must succeed for any subsequent phase to be meaningful — if it fails,
122
+ // the container is in an indeterminate state and we skip everything else.
123
+ const moduleRegistrationOk = yield this.runPhase(report, instantiation_phase_enum_1.InstantiationPhaseEnum.ModuleRegistration, () => __awaiter(this, void 0, void 0, function* () {
124
+ this.container.register(common_1.InternalContainerParameterEnum.KernelInstantiationId, {
125
+ useValue: this.instantiationId,
126
+ });
127
+ yield this.initModule(module);
128
+ }));
129
+ if (!moduleRegistrationOk) {
130
+ this.skipRemainingPhases(report, [
131
+ instantiation_phase_enum_1.InstantiationPhaseEnum.ConfigurationCheck,
132
+ instantiation_phase_enum_1.InstantiationPhaseEnum.ConfigurationLoad,
133
+ instantiation_phase_enum_1.InstantiationPhaseEnum.ServiceTagRegistration,
134
+ instantiation_phase_enum_1.InstantiationPhaseEnum.AfterInit,
135
+ instantiation_phase_enum_1.InstantiationPhaseEnum.BootProbe,
136
+ instantiation_phase_enum_1.InstantiationPhaseEnum.InstantiationTests,
137
+ ]);
138
+ report.totalDurationMs = Date.now() - startedAt;
139
+ return report;
140
+ }
141
+ // Phase 2: ConfigurationCheck. Register all module configuration definitions, then non-mutatively
142
+ // inspect for missing required values. This phase is informational only — it surfaces what is missing
143
+ // but cannot itself determine whether `start()` would throw, because a defaultResolver might or might
144
+ // not succeed at load time (resolver failures are silently swallowed by ConfigurationManager.load).
145
+ // ConfigurationLoad is the source of truth for "would start throw."
146
+ let configurationManager;
147
+ const configurationCheckOk = yield this.runPhase(report, instantiation_phase_enum_1.InstantiationPhaseEnum.ConfigurationCheck, () => __awaiter(this, void 0, void 0, function* () {
148
+ configurationManager = this.registerConfigurationDefinitions();
149
+ const missing = configurationManager.getMissingRequiredParameters(moduleConfigurationValues !== null && moduleConfigurationValues !== void 0 ? moduleConfigurationValues : {});
150
+ report.missingRequiredConfiguration = missing.map(m => new missing_required_configuration_entry_1.MissingRequiredConfigurationEntry(m.parameterName, m.hasDefaultResolvers));
151
+ }));
152
+ if (configurationCheckOk && report.missingRequiredConfiguration.length > 0) {
153
+ const lastPhase = report.phases[report.phases.length - 1];
154
+ lastPhase.status = instantiation_status_enum_1.InstantiationStatusEnum.PassedWithWarnings;
155
+ }
156
+ if (!configurationCheckOk && stopOnFirstFailure) {
157
+ this.skipRemainingPhases(report, [
158
+ instantiation_phase_enum_1.InstantiationPhaseEnum.ConfigurationLoad,
159
+ instantiation_phase_enum_1.InstantiationPhaseEnum.ServiceTagRegistration,
160
+ instantiation_phase_enum_1.InstantiationPhaseEnum.AfterInit,
161
+ instantiation_phase_enum_1.InstantiationPhaseEnum.BootProbe,
162
+ instantiation_phase_enum_1.InstantiationPhaseEnum.InstantiationTests,
163
+ ]);
164
+ report.totalDurationMs = Date.now() - startedAt;
165
+ return report;
166
+ }
167
+ // ConfigurationCheck registers definitions but doesn't load. If that registration itself failed,
168
+ // there's no manager to load from — skip ConfigurationLoad.
169
+ let configurationLoadOk;
170
+ if (configurationManager === undefined) {
171
+ this.skipPhase(report, instantiation_phase_enum_1.InstantiationPhaseEnum.ConfigurationLoad);
172
+ configurationLoadOk = false;
173
+ }
174
+ else {
175
+ configurationLoadOk = yield this.runPhase(report, instantiation_phase_enum_1.InstantiationPhaseEnum.ConfigurationLoad, () => __awaiter(this, void 0, void 0, function* () {
176
+ yield this.loadConfiguration(configurationManager, moduleConfigurationValues);
177
+ }));
178
+ }
179
+ if (!configurationLoadOk && stopOnFirstFailure) {
180
+ this.skipRemainingPhases(report, [
181
+ instantiation_phase_enum_1.InstantiationPhaseEnum.ServiceTagRegistration,
182
+ instantiation_phase_enum_1.InstantiationPhaseEnum.AfterInit,
183
+ instantiation_phase_enum_1.InstantiationPhaseEnum.BootProbe,
184
+ instantiation_phase_enum_1.InstantiationPhaseEnum.InstantiationTests,
185
+ ]);
186
+ report.totalDurationMs = Date.now() - startedAt;
187
+ return report;
188
+ }
189
+ const serviceTagOk = yield this.runPhase(report, instantiation_phase_enum_1.InstantiationPhaseEnum.ServiceTagRegistration, () => __awaiter(this, void 0, void 0, function* () {
190
+ this.registerNonModuleScopedServiceTags();
191
+ }));
192
+ if (!serviceTagOk && stopOnFirstFailure) {
193
+ this.skipRemainingPhases(report, [
194
+ instantiation_phase_enum_1.InstantiationPhaseEnum.AfterInit,
195
+ instantiation_phase_enum_1.InstantiationPhaseEnum.BootProbe,
196
+ instantiation_phase_enum_1.InstantiationPhaseEnum.InstantiationTests,
197
+ ]);
198
+ report.totalDurationMs = Date.now() - startedAt;
199
+ return report;
200
+ }
201
+ const afterInitOk = yield this.runPhase(report, instantiation_phase_enum_1.InstantiationPhaseEnum.AfterInit, () => __awaiter(this, void 0, void 0, function* () {
202
+ yield this.afterInitModule(module);
203
+ }));
204
+ if (!afterInitOk && stopOnFirstFailure) {
205
+ this.skipRemainingPhases(report, [instantiation_phase_enum_1.InstantiationPhaseEnum.BootProbe, instantiation_phase_enum_1.InstantiationPhaseEnum.InstantiationTests]);
206
+ report.totalDurationMs = Date.now() - startedAt;
207
+ return report;
208
+ }
209
+ const bootProbeOk = yield this.runPhase(report, instantiation_phase_enum_1.InstantiationPhaseEnum.BootProbe, () => __awaiter(this, void 0, void 0, function* () {
210
+ // Mirror the cosmetic LogHandler resolve at the end of `start()`. If LoggingModule wasn't imported,
211
+ // the resolve will throw and the phase is marked Failed.
212
+ this.container.resolve("LogHandlerInterface");
213
+ }));
214
+ // Once BootProbe has confirmed LogHandler is resolvable, stamp it onto the report so `report.log()`
215
+ // can route through the project's logging stack without callers having to pass one in.
216
+ if (bootProbeOk) {
217
+ try {
218
+ report.logHandler = this.container.resolve("LogHandlerInterface");
219
+ }
220
+ catch (_a) {
221
+ // Should not happen since BootProbe already succeeded, but defensive.
222
+ }
223
+ }
224
+ if (runInstantiationTests) {
225
+ yield this.runPhase(report, instantiation_phase_enum_1.InstantiationPhaseEnum.InstantiationTests, () => __awaiter(this, void 0, void 0, function* () {
226
+ let tests = [];
227
+ try {
228
+ tests = this.container.resolveAll(common_1.ServiceDefinitionTagEnum.InstantiationTest);
229
+ }
230
+ catch (_a) {
231
+ // resolveAll throws when nothing is registered for the token. That's not a failure — there are simply no tests.
232
+ tests = [];
233
+ }
234
+ for (const test of tests) {
235
+ report.instantiationTests.push(yield this.runInstantiationTest(test));
236
+ }
237
+ }));
238
+ }
239
+ else {
240
+ this.skipPhase(report, instantiation_phase_enum_1.InstantiationPhaseEnum.InstantiationTests);
241
+ }
242
+ report.totalDurationMs = Date.now() - startedAt;
243
+ return report;
244
+ });
245
+ }
246
+ /**
247
+ * Gracefully shuts down the kernel by invoking each instantiated module's `onShutdown` hook
248
+ * in reverse instantiation order (root module first, deepest dependencies last). Modules
249
+ * without an `onShutdown` hook are skipped silently.
250
+ *
251
+ * Each hook runs under a per-hook timeout so a single misbehaving module cannot block the
252
+ * shutdown indefinitely. When a hook throws or times out, the error is logged via the
253
+ * resolved `LogHandlerInterface` (or stderr if logging itself failed) and shutdown continues
254
+ * with the next module — the goal is to release as much as possible, not to abort on the
255
+ * first failure.
256
+ *
257
+ * Calling `stop()` more than once is a no-op (subsequent calls return immediately) so this
258
+ * method is safe to wire up to multiple signal handlers.
259
+ *
260
+ * @param options.perHookTimeoutMs Maximum milliseconds to wait for a single module's
261
+ * `onShutdown` to resolve. Default 10_000 (10 seconds). Set to 0 to wait indefinitely.
262
+ */
263
+ stop(options) {
264
+ return __awaiter(this, void 0, void 0, function* () {
265
+ var _a;
266
+ if (this.stopped) {
267
+ return;
268
+ }
269
+ this.stopped = true;
270
+ const perHookTimeoutMs = (_a = options === null || options === void 0 ? void 0 : options.perHookTimeoutMs) !== null && _a !== void 0 ? _a : 10000;
271
+ let logHandler;
272
+ try {
273
+ logHandler = this.container.resolve("LogHandlerInterface");
274
+ }
275
+ catch (_b) {
276
+ // Logging may not have booted (e.g. start() failed mid-flight). Fall back to stderr.
277
+ }
278
+ // Insertion order: `initModule` records the parent BEFORE recursing into children, so the
279
+ // map's natural key order is root → branch → leaf. Shutting down in that order means the
280
+ // outer-most modules (AppModule and its direct imports) tear down first while their
281
+ // dependencies (logging, configuration, the container itself) are still healthy — exactly
282
+ // what we want.
283
+ const moduleNames = Object.keys(this.instantiatedModules);
284
+ for (const name of moduleNames) {
285
+ const module = this.instantiatedModules[name];
286
+ if (typeof module.onShutdown !== "function") {
287
+ continue;
288
+ }
289
+ try {
290
+ yield this.runWithTimeout(module.onShutdown(this.container), perHookTimeoutMs, name);
291
+ }
292
+ catch (error) {
293
+ const message = `[Kernel] onShutdown failed for module '${name}': ${error.message}`;
294
+ if (logHandler !== undefined) {
295
+ logHandler.error(message, { extra: { moduleKeyname: name, error } });
296
+ }
297
+ else {
298
+ process.stderr.write(message + "\n");
299
+ }
300
+ }
301
+ }
302
+ if (logHandler !== undefined && typeof logHandler.terminate === "function") {
303
+ try {
304
+ logHandler.terminate();
305
+ }
306
+ catch (_c) {
307
+ // Best-effort.
308
+ }
309
+ }
310
+ });
311
+ }
312
+ /**
313
+ * Wraps a Promise in a timeout that rejects with a clear error if not settled in time.
314
+ * `timeoutMs <= 0` disables the timeout entirely.
315
+ * @private
316
+ */
317
+ runWithTimeout(promise, timeoutMs, label) {
318
+ return __awaiter(this, void 0, void 0, function* () {
319
+ if (timeoutMs <= 0) {
320
+ return promise;
321
+ }
322
+ let timer;
323
+ const timeout = new Promise((_, reject) => {
324
+ timer = setTimeout(() => reject(new Error(`onShutdown for '${label}' exceeded ${timeoutMs}ms`)), timeoutMs);
325
+ });
326
+ try {
327
+ return yield Promise.race([promise, timeout]);
328
+ }
329
+ finally {
330
+ if (timer !== undefined) {
331
+ clearTimeout(timer);
332
+ }
333
+ }
334
+ });
335
+ }
89
336
  /**
90
337
  *
91
338
  * @param event
@@ -185,24 +432,31 @@ class Kernel {
185
432
  });
186
433
  }
187
434
  /**
188
- * Registers all the configuration definitions that all the modules have defined.
189
- * @param moduleConfigurationValues
435
+ * Resolves the ConfigurationManager and registers every module's configuration definitions onto it.
436
+ * Returns the manager so the caller can subsequently inspect required parameters or call `load()`.
437
+ * Split out from the original `initConfiguration` so `verifyInstantiation` can run a non-mutating
438
+ * check between definition registration and value loading.
190
439
  * @private
191
440
  */
192
- initConfiguration(moduleConfigurationValues) {
193
- return __awaiter(this, void 0, void 0, function* () {
194
- const configurationManager = this.container.resolve(configuration_1.ConfigurationManager);
195
- // Start by loading the configuration definitions of all the modules
196
- for (const key in this.instantiatedModules) {
197
- if (this.instantiatedModules.hasOwnProperty(key) === false) {
198
- continue;
199
- }
200
- const instantiatedModule = this.instantiatedModules[key];
201
- if (instantiatedModule.configurationDefinitions) {
202
- instantiatedModule.configurationDefinitions.forEach(configurationDefinition => configurationManager.register(configurationDefinition));
203
- }
441
+ registerConfigurationDefinitions() {
442
+ const configurationManager = this.container.resolve(configuration_1.ConfigurationManager);
443
+ for (const key in this.instantiatedModules) {
444
+ if (this.instantiatedModules.hasOwnProperty(key) === false) {
445
+ continue;
446
+ }
447
+ const instantiatedModule = this.instantiatedModules[key];
448
+ if (instantiatedModule.configurationDefinitions) {
449
+ instantiatedModule.configurationDefinitions.forEach(configurationDefinition => configurationManager.register(configurationDefinition));
204
450
  }
205
- // Load the configuration values passed by the app
451
+ }
452
+ return configurationManager;
453
+ }
454
+ /**
455
+ * Loads the configuration values into the previously-registered ConfigurationManager.
456
+ * @private
457
+ */
458
+ loadConfiguration(configurationManager, moduleConfigurationValues) {
459
+ return __awaiter(this, void 0, void 0, function* () {
206
460
  yield configurationManager.load(moduleConfigurationValues !== null && moduleConfigurationValues !== void 0 ? moduleConfigurationValues : {}, this.container);
207
461
  });
208
462
  }
@@ -265,6 +519,51 @@ class Kernel {
265
519
  this.registerProviderRegistration(taggedRegistrationType.providerRegistration);
266
520
  });
267
521
  }
522
+ /**
523
+ * Wraps a phase invocation: times it, captures any thrown error into a serialized form, appends a
524
+ * PhaseResult to the report, and returns whether the phase passed.
525
+ * @private
526
+ */
527
+ runPhase(report, phase, fn) {
528
+ return __awaiter(this, void 0, void 0, function* () {
529
+ const startedAt = Date.now();
530
+ try {
531
+ yield fn();
532
+ report.phases.push(new phase_result_1.PhaseResult(phase, instantiation_status_enum_1.InstantiationStatusEnum.Passed, Date.now() - startedAt));
533
+ return true;
534
+ }
535
+ catch (error) {
536
+ report.phases.push(new phase_result_1.PhaseResult(phase, instantiation_status_enum_1.InstantiationStatusEnum.Failed, Date.now() - startedAt, this.serializeError(error)));
537
+ return false;
538
+ }
539
+ });
540
+ }
541
+ runInstantiationTest(test) {
542
+ return __awaiter(this, void 0, void 0, function* () {
543
+ const startedAt = Date.now();
544
+ try {
545
+ const result = yield test.run(this.container);
546
+ return new instantiation_test_execution_result_1.InstantiationTestExecutionResult(test.name, result.passed, Date.now() - startedAt, test.description, result.message, result.details);
547
+ }
548
+ catch (error) {
549
+ return new instantiation_test_execution_result_1.InstantiationTestExecutionResult(test.name, false, Date.now() - startedAt, test.description, undefined, undefined, this.serializeError(error));
550
+ }
551
+ });
552
+ }
553
+ skipPhase(report, phase) {
554
+ report.phases.push(new phase_result_1.PhaseResult(phase, instantiation_status_enum_1.InstantiationStatusEnum.Skipped, 0));
555
+ }
556
+ skipRemainingPhases(report, phases) {
557
+ for (const phase of phases) {
558
+ this.skipPhase(report, phase);
559
+ }
560
+ }
561
+ serializeError(error) {
562
+ if (error instanceof Error) {
563
+ return { name: error.name, message: error.message, stack: error.stack };
564
+ }
565
+ return { name: "UnknownError", message: String(error) };
566
+ }
268
567
  }
269
568
  exports.Kernel = Kernel;
270
569
  //# sourceMappingURL=kernel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../src/kernel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAC1B,uCAAwD;AACxD,gDAS6B;AAC7B,8DAA0F;AAC1F,sFAA+E;AAC/E,sDAAsF;AACtF,+BAAkC;AAElC,+DAAyD;AAEzD,sFAA+E;AAG/E;;GAEG;AACH,MAAa,MAAM;IAAnB;QACE;;WAEG;QACI,cAAS,GAAwB,oBAAS,CAAC,oBAAoB,EAAE,CAAC;QACzE;;;WAGG;QACI,oBAAe,GAAW,IAAA,SAAM,GAAE,CAAC;QAC1C;;;WAGG;QACK,wBAAmB,GAAsC,EAAE,CAAC;QACpE;;;WAGG;QACK,6BAAwB,GAAsC,EAAE,CAAC;IA0Q3E,CAAC;IAnQC;;;;;OAKG;IACU,KAAK,CAAC,MAA0B,EAAE,yBAE9C;;YACC,IAAI,CAAC,kBAAkB,GAAG,IAAI,gBAAI,CAAC,2BAAe,CAAC,oBAAoB,CAAC,CAAC;YACzE,iDAAiD;YACjD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uCAA8B,CAAC,qBAAqB,EAAE;gBAC5E,QAAQ,EAAE,IAAI,CAAC,eAAe;aAC/B,CAAC,CAAC;YAEH,qDAAqD;YACrD,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAE7D,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,IAAI,uDAAyB,CAAC,uDAAuD,CAAC,CAAA;YAC9F,CAAC;YAED,wDAAwD;YACxD,oEAAoE;YACpE,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAEhF,8BAA8B;YAC9B,MAAM,+BAA+B,GAAG,IAAI,gBAAI,CAAC,2BAAe,CAAC,2BAA2B,CAAC,CAAA;YAC7F,MAAM,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,CAAC;YACxD,+BAA+B,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAErD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;YAElE,sCAAsC;YACtC,MAAM,IAAI,CAAC,kCAAkC,EAAE,CAAC;YAEhD,wDAAwD;YACxD,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAEnC,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7C,MAAM,UAAU,GAAwB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAEtF,UAAU,CAAC,KAAK,CAAC,0CAA0C,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,EAAE;gBAC3J,UAAU,EAAE;oBACV,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;iBACnG;gBACD,KAAK,EAAE;oBACL,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;iBAC5C;aACF,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;;;OAIG;IACU,MAAM,CAAI,KAAiC,EAAE,gBAA8C;;;YACtG,oBAAoB;YACpB,MAAM,cAAc,GAA4B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;YAClG,cAAc,CAAC,YAAY,EAAE,CAAC;YAE9B,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,MAAA,MAAA,cAAc,CAAC,KAAK,0CAAE,QAAQ,0CAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;gBACjE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAEhD,gBAAgB;gBAChB,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;gBAE9B,0FAA0F;gBAC1F,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACtC,CAAC;YAED,oGAAoG;YACpG,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,8BAAa,CAAC,CAAC;YAE5D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtF,cAAc,CAAC,QAAQ,EAAE,CAAC;YAE1B,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAED;;;;OAIG;IACK,4BAA4B,CAAC,oBAA0C;QAC7E,MAAM,IAAI,GAAG;YACX,oBAAoB,CAAC,KAAK;YAC1B,oBAAoB;SACrB,CAAC;QAEF,IAAI,oBAAoB,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,2FAA2F;YAC3F,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC;YACH,sDAAsD;YACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,uDAAyB,CAAC,2DAA2D,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAC/H,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACW,UAAU,CAAC,MAAuB;;YAC9C,gGAAgG;YAChG,IAAI,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5D,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,iDAAiD;YACjD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YAElD,MAAM,KAAK,GAAW,EAAE,CAAC;YAEzB,gFAAgF;YAChF,MAAM,IAAI,GAAS,IAAI,gBAAI,CAAC,2BAAe,CAAC,oBAAoB,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAEzF,MAAM,iBAAiB,GAAS,IAAI,gBAAI,CAAC,2BAAe,CAAC,iCAAiC,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnH,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;YAEhC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,kDAAkD;gBAClD,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBAClD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YAED,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvC,gFAAgF;YAChF,oFAAoF;YACpF,kCAAkC;YAClC,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAE7C,yCAAyC;YACzC,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACjC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,oBAA0C,EAAE,EAAE;oBAClF,IAAI,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,0CAA0C;YAC1C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YAED,gGAAgG;YAChG,uEAAuE;YACvE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEjB,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAED;;;;OAIG;IACW,iBAAiB,CAAC,yBAAuE;;YACrG,MAAM,oBAAoB,GAAyB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oCAAoB,CAAC,CAAC;YAEhG,oEAAoE;YACpE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3C,IAAI,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;oBAC3D,SAAS;gBACX,CAAC;gBAED,MAAM,kBAAkB,GAAoB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBAC1E,IAAI,kBAAkB,CAAC,wBAAwB,EAAE,CAAC;oBAChD,kBAAkB,CAAC,wBAAwB,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBACzI,CAAC;YACH,CAAC;YAED,kDAAkD;YAClD,MAAM,oBAAoB,CAAC,IAAI,CAAC,yBAAyB,aAAzB,yBAAyB,cAAzB,yBAAyB,GAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnF,CAAC;KAAA;IAED;;;;;;OAMG;IACW,eAAe,CAAC,MAAuB;;YACnD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,kDAAkD;gBAClD,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBAClD,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjE,yCAAyC;gBACzC,OAAO;YACT,CAAC;YAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;QACzD,CAAC;KAAA;IAED;;;;;;OAMG;IACK,yBAAyB,CAAC,MAAuB;QACvD,4CAAmC,CAAC,OAAO,CAAC,CAAC,sBAAmD,EAAE,EAAE;YAClG,8GAA8G;YAC9G,wFAAwF;YACxF,uEAAuE;YACvE,gHAAgH;YAChH,MAAM,wBAAwB,GAAG,qCAA4B,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAClG,IAAI,MAAM,CAAC,OAAO,MAAK,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,aAAa,CAAA,EAAE,CAAC;gBAC/D,OAAO;YACT,CAAC;YAED,IAAI,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QACjF,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACK,kCAAkC;QACxC,4CAAmC,CAAC,OAAO,CAAC,CAAC,sBAAmD,EAAE,EAAE;YAClG,MAAM,wBAAwB,GAAG,qCAA4B,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAClG,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QACjF,CAAC,CAAC,CAAA;IACJ,CAAC;CAEF;AA7RD,wBA6RC"}
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../../src/kernel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAC1B,uCAAwD;AACxD,gDAU6B;AAC7B,8DAA0F;AAC1F,sFAA+E;AAC/E,sDAAsF;AACtF,+BAAkC;AAElC,+DAAyD;AAEzD,sFAA+E;AAG/E,wEAAkE;AAClE,wDAAkD;AAElD,sGAA8F;AAC9F,wGAAgG;AAChG,+EAAwE;AACxE,iFAA0E;AAE1E;;GAEG;AACH,MAAa,MAAM;IAAnB;QACE;;WAEG;QACI,cAAS,GAAwB,oBAAS,CAAC,oBAAoB,EAAE,CAAC;QACzE;;;WAGG;QACI,oBAAe,GAAW,IAAA,SAAM,GAAE,CAAC;QAC1C;;;WAGG;QACI,wBAAmB,GAAsC,EAAE,CAAC;QACnE;;;WAGG;QACK,6BAAwB,GAAsC,EAAE,CAAC;QAOzE;;;;WAIG;QACK,YAAO,GAAY,KAAK,CAAC;IAijBnC,CAAC;IA/iBC;;;;;OAKG;IACU,KAAK,CAAC,MAA0B,EAAE,yBAE9C;;YACC,IAAI,CAAC,kBAAkB,GAAG,IAAI,gBAAI,CAAC,2BAAe,CAAC,oBAAoB,CAAC,CAAC;YACzE,iDAAiD;YACjD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uCAA8B,CAAC,qBAAqB,EAAE;gBAC5E,QAAQ,EAAE,IAAI,CAAC,eAAe;aAC/B,CAAC,CAAC;YAEH,qDAAqD;YACrD,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAE7D,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;gBAC1C,MAAM,IAAI,uDAAyB,CAAC,uDAAuD,CAAC,CAAA;YAC9F,CAAC;YAED,wDAAwD;YACxD,oEAAoE;YACpE,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YAEhF,8BAA8B;YAC9B,MAAM,+BAA+B,GAAG,IAAI,gBAAI,CAAC,2BAAe,CAAC,2BAA2B,CAAC,CAAA;YAC7F,MAAM,oBAAoB,GAAG,IAAI,CAAC,gCAAgC,EAAE,CAAC;YACrE,MAAM,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,EAAE,yBAAyB,CAAC,CAAC;YAC9E,+BAA+B,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAErD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;YAElE,sCAAsC;YACtC,MAAM,IAAI,CAAC,kCAAkC,EAAE,CAAC;YAEhD,wDAAwD;YACxD,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAEnC,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7C,MAAM,UAAU,GAAwB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAEtF,UAAU,CAAC,KAAK,CAAC,0CAA0C,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,GAAG,YAAY,EAAE;gBAC3J,UAAU,EAAE;oBACV,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;iBACnG;gBACD,KAAK,EAAE;oBACL,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;iBAC5C;aACF,CAAC,CAAC;QACL,CAAC;KAAA;IAED;;;;;;;;;;;;OAYG;IACU,mBAAmB,CAAC,MAA0B,EAAE,yBAE5D,EAAE,OAA2E;;YAC5E,MAAM,MAAM,GAAG,IAAI,0CAAmB,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE7B,MAAM,qBAAqB,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,qBAAqB,MAAK,KAAK,CAAC;YACvE,MAAM,kBAAkB,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,kBAAkB,MAAK,IAAI,CAAC;YAEhE,qGAAqG;YACrG,0EAA0E;YAC1E,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,iDAAsB,CAAC,kBAAkB,EAAE,GAAS,EAAE;gBAC7G,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,uCAA8B,CAAC,qBAAqB,EAAE;oBAC5E,QAAQ,EAAE,IAAI,CAAC,eAAe;iBAC/B,CAAC,CAAC;gBACH,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC,CAAA,CAAC,CAAC;YAEH,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC1B,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;oBAC/B,iDAAsB,CAAC,kBAAkB;oBACzC,iDAAsB,CAAC,iBAAiB;oBACxC,iDAAsB,CAAC,sBAAsB;oBAC7C,iDAAsB,CAAC,SAAS;oBAChC,iDAAsB,CAAC,SAAS;oBAChC,iDAAsB,CAAC,kBAAkB;iBAC1C,CAAC,CAAC;gBACH,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAChD,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,kGAAkG;YAClG,sGAAsG;YACtG,sGAAsG;YACtG,oGAAoG;YACpG,oEAAoE;YACpE,IAAI,oBAAsD,CAAC;YAC3D,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,iDAAsB,CAAC,kBAAkB,EAAE,GAAS,EAAE;gBAC7G,oBAAoB,GAAG,IAAI,CAAC,gCAAgC,EAAE,CAAC;gBAC/D,MAAM,OAAO,GAAG,oBAAoB,CAAC,4BAA4B,CAAC,yBAAyB,aAAzB,yBAAyB,cAAzB,yBAAyB,GAAI,EAAE,CAAC,CAAC;gBACnG,MAAM,CAAC,4BAA4B,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,wEAAiC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;YACxI,CAAC,CAAA,CAAC,CAAC;YACH,IAAI,oBAAoB,IAAI,MAAM,CAAC,4BAA4B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC1D,SAAS,CAAC,MAAM,GAAG,mDAAuB,CAAC,kBAAkB,CAAC;YAChE,CAAC;YAED,IAAI,CAAC,oBAAoB,IAAI,kBAAkB,EAAE,CAAC;gBAChD,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;oBAC/B,iDAAsB,CAAC,iBAAiB;oBACxC,iDAAsB,CAAC,sBAAsB;oBAC7C,iDAAsB,CAAC,SAAS;oBAChC,iDAAsB,CAAC,SAAS;oBAChC,iDAAsB,CAAC,kBAAkB;iBAC1C,CAAC,CAAC;gBACH,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAChD,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,iGAAiG;YACjG,4DAA4D;YAC5D,IAAI,mBAA4B,CAAC;YACjC,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,iDAAsB,CAAC,iBAAiB,CAAC,CAAC;gBACjE,mBAAmB,GAAG,KAAK,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,mBAAmB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,iDAAsB,CAAC,iBAAiB,EAAE,GAAS,EAAE;oBACrG,MAAM,IAAI,CAAC,iBAAiB,CAAC,oBAAqB,EAAE,yBAAyB,CAAC,CAAC;gBACjF,CAAC,CAAA,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,mBAAmB,IAAI,kBAAkB,EAAE,CAAC;gBAC/C,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;oBAC/B,iDAAsB,CAAC,sBAAsB;oBAC7C,iDAAsB,CAAC,SAAS;oBAChC,iDAAsB,CAAC,SAAS;oBAChC,iDAAsB,CAAC,kBAAkB;iBAC1C,CAAC,CAAC;gBACH,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAChD,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,iDAAsB,CAAC,sBAAsB,EAAE,GAAS,EAAE;gBACzG,IAAI,CAAC,kCAAkC,EAAE,CAAC;YAC5C,CAAC,CAAA,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,IAAI,kBAAkB,EAAE,CAAC;gBACxC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;oBAC/B,iDAAsB,CAAC,SAAS;oBAChC,iDAAsB,CAAC,SAAS;oBAChC,iDAAsB,CAAC,kBAAkB;iBAC1C,CAAC,CAAC;gBACH,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAChD,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,iDAAsB,CAAC,SAAS,EAAE,GAAS,EAAE;gBAC3F,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YACrC,CAAC,CAAA,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAC;gBACvC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,iDAAsB,CAAC,SAAS,EAAE,iDAAsB,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBAChH,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBAChD,OAAO,MAAM,CAAC;YAChB,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,iDAAsB,CAAC,SAAS,EAAE,GAAS,EAAE;gBAC3F,oGAAoG;gBACpG,yDAAyD;gBACzD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAsB,qBAAqB,CAAC,CAAC;YACrE,CAAC,CAAA,CAAC,CAAC;YAEH,oGAAoG;YACpG,uFAAuF;YACvF,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAsB,qBAAqB,CAAC,CAAC;gBACzF,CAAC;gBAAC,WAAM,CAAC;oBACP,sEAAsE;gBACxE,CAAC;YACH,CAAC;YAED,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,iDAAsB,CAAC,kBAAkB,EAAE,GAAS,EAAE;oBAChF,IAAI,KAAK,GAAiC,EAAE,CAAC;oBAC7C,IAAI,CAAC;wBACH,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAA6B,iCAAwB,CAAC,iBAAiB,CAAC,CAAC;oBAC5G,CAAC;oBAAC,WAAM,CAAC;wBACP,gHAAgH;wBAChH,KAAK,GAAG,EAAE,CAAC;oBACb,CAAC;oBAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;wBACzB,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;oBACxE,CAAC;gBACH,CAAC,CAAA,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,iDAAsB,CAAC,kBAAkB,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAChD,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;IAED;;;;;;;;;;;;;;;;OAgBG;IACU,IAAI,CAAC,OAAqC;;;YACrD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,MAAM,gBAAgB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,mCAAI,KAAM,CAAC;YAE7D,IAAI,UAA2C,CAAC;YAChD,IAAI,CAAC;gBACH,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAsB,qBAAqB,CAAC,CAAC;YAClF,CAAC;YAAC,WAAM,CAAC;gBACP,qFAAqF;YACvF,CAAC;YAED,0FAA0F;YAC1F,yFAAyF;YACzF,oFAAoF;YACpF,0FAA0F;YAC1F,gBAAgB;YAChB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAE1D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;oBAC5C,SAAS;gBACX,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;gBACvF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,OAAO,GAAG,0CAA0C,IAAI,MAAO,KAAe,CAAC,OAAO,EAAE,CAAC;oBAC/F,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;wBAC7B,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,EAAC,KAAK,EAAE,EAAC,aAAa,EAAE,IAAI,EAAE,KAAK,EAAC,EAAC,CAAC,CAAC;oBACnE,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;oBACvC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;gBAC3E,IAAI,CAAC;oBACH,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,CAAC;gBAAC,WAAM,CAAC;oBACP,eAAe;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED;;;;OAIG;IACW,cAAc,CAAI,OAAmB,EAAE,SAAiB,EAAE,KAAa;;YACnF,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,IAAI,KAAgD,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBAC/C,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,KAAK,cAAc,SAAS,IAAI,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC9G,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAChD,CAAC;oBAAS,CAAC;gBACT,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED;;;;OAIG;IACU,MAAM,CAAI,KAAiC,EAAE,gBAA8C;;;YACtG,oBAAoB;YACpB,MAAM,cAAc,GAA4B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;YAClG,cAAc,CAAC,YAAY,EAAE,CAAC;YAE9B,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,MAAA,MAAA,cAAc,CAAC,KAAK,0CAAE,QAAQ,0CAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;gBACjE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAEhD,gBAAgB;gBAChB,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;gBAE9B,0FAA0F;gBAC1F,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACtC,CAAC;YAED,oGAAoG;YACpG,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,8BAAa,CAAC,CAAC;YAE5D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAEtF,cAAc,CAAC,QAAQ,EAAE,CAAC;YAE1B,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;IAED;;;;OAIG;IACK,4BAA4B,CAAC,oBAA0C;QAC7E,MAAM,IAAI,GAAG;YACX,oBAAoB,CAAC,KAAK;YAC1B,oBAAoB;SACrB,CAAC;QAEF,IAAI,oBAAoB,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;YACnD,2FAA2F;YAC3F,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC;YACH,sDAAsD;YACtD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,uDAAyB,CAAC,2DAA2D,EAAE,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAC/H,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACW,UAAU,CAAC,MAAuB;;YAC9C,gGAAgG;YAChG,IAAI,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5D,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,iDAAiD;YACjD,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YAElD,MAAM,KAAK,GAAW,EAAE,CAAC;YAEzB,gFAAgF;YAChF,MAAM,IAAI,GAAS,IAAI,gBAAI,CAAC,2BAAe,CAAC,oBAAoB,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAEzF,MAAM,iBAAiB,GAAS,IAAI,gBAAI,CAAC,2BAAe,CAAC,iCAAiC,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;YAEnH,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAA;YAEhC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,kDAAkD;gBAClD,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBAClD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;YAED,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEvC,gFAAgF;YAChF,oFAAoF;YACpF,kCAAkC;YAClC,MAAM,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;YAE7C,yCAAyC;YACzC,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;gBACjC,MAAM,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,oBAA0C,EAAE,EAAE;oBAClF,IAAI,CAAC,4BAA4B,CAAC,oBAAoB,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAA;YACJ,CAAC;YAED,0CAA0C;YAC1C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YAED,gGAAgG;YAChG,uEAAuE;YACvE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAE1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEjB,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;IAED;;;;;;OAMG;IACK,gCAAgC;QACtC,MAAM,oBAAoB,GAAyB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oCAAoB,CAAC,CAAC;QAEhG,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC3D,SAAS;YACX,CAAC;YAED,MAAM,kBAAkB,GAAoB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC1E,IAAI,kBAAkB,CAAC,wBAAwB,EAAE,CAAC;gBAChD,kBAAkB,CAAC,wBAAwB,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACzI,CAAC;QACH,CAAC;QAED,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACW,iBAAiB,CAAC,oBAA0C,EAAE,yBAAuE;;YACjJ,MAAM,oBAAoB,CAAC,IAAI,CAAC,yBAAyB,aAAzB,yBAAyB,cAAzB,yBAAyB,GAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnF,CAAC;KAAA;IAED;;;;;;OAMG;IACW,eAAe,CAAC,MAAuB;;YACnD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,kDAAkD;gBAClD,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;oBAClD,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAED,IAAI,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjE,yCAAyC;gBACzC,OAAO;YACT,CAAC;YAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YAED,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;QACzD,CAAC;KAAA;IAED;;;;;;OAMG;IACK,yBAAyB,CAAC,MAAuB;QACvD,4CAAmC,CAAC,OAAO,CAAC,CAAC,sBAAmD,EAAE,EAAE;YAClG,8GAA8G;YAC9G,wFAAwF;YACxF,uEAAuE;YACvE,gHAAgH;YAChH,MAAM,wBAAwB,GAAG,qCAA4B,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAClG,IAAI,MAAM,CAAC,OAAO,MAAK,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,aAAa,CAAA,EAAE,CAAC;gBAC/D,OAAO;YACT,CAAC;YAED,IAAI,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QACjF,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACK,kCAAkC;QACxC,4CAAmC,CAAC,OAAO,CAAC,CAAC,sBAAmD,EAAE,EAAE;YAClG,MAAM,wBAAwB,GAAG,qCAA4B,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAClG,IAAI,wBAAwB,EAAE,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;QACjF,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACW,QAAQ,CAAC,MAA2B,EAAE,KAA6B,EAAE,EAAuB;;YACxG,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,EAAE,EAAE,CAAC;gBACX,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,0BAAW,CAAC,KAAK,EAAE,mDAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;gBACnG,OAAO,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,0BAAW,CAAC,KAAK,EAAE,mDAAuB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC/H,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;KAAA;IAEa,oBAAoB,CAAC,IAAgC;;YACjE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9C,OAAO,IAAI,sEAAgC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAClJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,sEAAgC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5J,CAAC;QACH,CAAC;KAAA;IAEO,SAAS,CAAC,MAA2B,EAAE,KAA6B;QAC1E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,0BAAW,CAAC,KAAK,EAAE,mDAAuB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IAEO,mBAAmB,CAAC,MAA2B,EAAE,MAAgC;QACvF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,KAAc;QACnC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAC,CAAC;QACxE,CAAC;QACD,OAAO,EAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAC,CAAC;IACxD,CAAC;CAEF;AAhlBD,wBAglBC"}