@proto-kit/common 0.1.1-develop.1087 → 0.1.1-develop.1309

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 (108) hide show
  1. package/dist/compiling/AtomicCompileHelper.d.ts +13 -0
  2. package/dist/compiling/AtomicCompileHelper.d.ts.map +1 -0
  3. package/dist/compiling/AtomicCompileHelper.js +40 -0
  4. package/dist/compiling/AtomicCompileHelper.js.map +1 -0
  5. package/dist/compiling/CompilableModule.d.ts +6 -0
  6. package/dist/compiling/CompilableModule.d.ts.map +1 -0
  7. package/dist/compiling/CompilableModule.js +2 -0
  8. package/dist/compiling/CompilableModule.js.map +1 -0
  9. package/dist/compiling/CompileRegistry.d.ts +26 -0
  10. package/dist/compiling/CompileRegistry.d.ts.map +1 -0
  11. package/dist/compiling/CompileRegistry.js +68 -0
  12. package/dist/compiling/CompileRegistry.js.map +1 -0
  13. package/dist/compiling/services/ChildVerificationKeyService.d.ts +10 -0
  14. package/dist/compiling/services/ChildVerificationKeyService.d.ts.map +1 -0
  15. package/dist/compiling/services/ChildVerificationKeyService.js +27 -0
  16. package/dist/compiling/services/ChildVerificationKeyService.js.map +1 -0
  17. package/dist/config/ChildContainerCreatable.js +1 -0
  18. package/dist/config/ChildContainerCreatable.js.map +1 -0
  19. package/dist/config/ChildContainerProvider.js +1 -0
  20. package/dist/config/ChildContainerProvider.js.map +1 -0
  21. package/dist/config/ConfigurableModule.js +1 -0
  22. package/dist/config/ConfigurableModule.js.map +1 -0
  23. package/dist/config/ModuleContainer.d.ts +1 -0
  24. package/dist/config/ModuleContainer.d.ts.map +1 -1
  25. package/dist/config/ModuleContainer.js +14 -3
  26. package/dist/config/ModuleContainer.js.map +1 -0
  27. package/dist/config/injectAlias.d.ts +18 -0
  28. package/dist/config/injectAlias.d.ts.map +1 -0
  29. package/dist/config/injectAlias.js +47 -0
  30. package/dist/config/injectAlias.js.map +1 -0
  31. package/dist/dependencyFactory/DependencyFactory.js +1 -0
  32. package/dist/dependencyFactory/DependencyFactory.js.map +1 -0
  33. package/dist/dependencyFactory/injectOptional.js +1 -0
  34. package/dist/dependencyFactory/injectOptional.js.map +1 -0
  35. package/dist/dummyVerificationKey.d.ts +3 -0
  36. package/dist/dummyVerificationKey.d.ts.map +1 -0
  37. package/dist/dummyVerificationKey.js +8 -0
  38. package/dist/dummyVerificationKey.js.map +1 -0
  39. package/dist/events/EventEmitter.js +1 -0
  40. package/dist/events/EventEmitter.js.map +1 -0
  41. package/dist/events/EventEmitterProxy.d.ts +1 -0
  42. package/dist/events/EventEmitterProxy.d.ts.map +1 -1
  43. package/dist/events/EventEmitterProxy.js +12 -0
  44. package/dist/events/EventEmitterProxy.js.map +1 -0
  45. package/dist/events/EventEmittingComponent.d.ts +3 -0
  46. package/dist/events/EventEmittingComponent.d.ts.map +1 -1
  47. package/dist/events/EventEmittingComponent.js +1 -0
  48. package/dist/events/EventEmittingComponent.js.map +1 -0
  49. package/dist/events/ReplayingSingleUseEventEmitter.d.ts +17 -0
  50. package/dist/events/ReplayingSingleUseEventEmitter.d.ts.map +1 -0
  51. package/dist/events/ReplayingSingleUseEventEmitter.js +34 -0
  52. package/dist/events/ReplayingSingleUseEventEmitter.js.map +1 -0
  53. package/dist/index.d.ts +6 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +7 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/log.d.ts +17 -0
  58. package/dist/log.d.ts.map +1 -1
  59. package/dist/log.js +40 -1
  60. package/dist/log.js.map +1 -0
  61. package/dist/trees/InMemoryMerkleTreeStorage.js +1 -0
  62. package/dist/trees/InMemoryMerkleTreeStorage.js.map +1 -0
  63. package/dist/trees/MerkleTreeStore.js +1 -0
  64. package/dist/trees/MerkleTreeStore.js.map +1 -0
  65. package/dist/trees/MockAsyncMerkleStore.js +1 -0
  66. package/dist/trees/MockAsyncMerkleStore.js.map +1 -0
  67. package/dist/trees/RollupMerkleTree.js +1 -0
  68. package/dist/trees/RollupMerkleTree.js.map +1 -0
  69. package/dist/trees/VirtualMerkleTreeStore.js +1 -0
  70. package/dist/trees/VirtualMerkleTreeStore.js.map +1 -0
  71. package/dist/types.d.ts +2 -1
  72. package/dist/types.d.ts.map +1 -1
  73. package/dist/types.js +1 -0
  74. package/dist/types.js.map +1 -0
  75. package/dist/utils.d.ts +13 -0
  76. package/dist/utils.d.ts.map +1 -1
  77. package/dist/utils.js +40 -0
  78. package/dist/utils.js.map +1 -0
  79. package/dist/zkProgrammable/ProvableMethodExecutionContext.js +1 -0
  80. package/dist/zkProgrammable/ProvableMethodExecutionContext.js.map +1 -0
  81. package/dist/zkProgrammable/ZkProgrammable.d.ts +6 -5
  82. package/dist/zkProgrammable/ZkProgrammable.d.ts.map +1 -1
  83. package/dist/zkProgrammable/ZkProgrammable.js +24 -12
  84. package/dist/zkProgrammable/ZkProgrammable.js.map +1 -0
  85. package/dist/zkProgrammable/provableMethod.d.ts.map +1 -1
  86. package/dist/zkProgrammable/provableMethod.js +11 -13
  87. package/dist/zkProgrammable/provableMethod.js.map +1 -0
  88. package/jest.config.cjs +12 -1
  89. package/package.json +4 -4
  90. package/src/compiling/AtomicCompileHelper.ts +62 -0
  91. package/src/compiling/CompilableModule.ts +6 -0
  92. package/src/compiling/CompileRegistry.ts +78 -0
  93. package/src/compiling/services/ChildVerificationKeyService.ts +26 -0
  94. package/src/config/ModuleContainer.ts +20 -5
  95. package/src/config/injectAlias.ts +70 -0
  96. package/src/dummyVerificationKey.ts +10 -0
  97. package/src/events/EventEmitterProxy.ts +27 -3
  98. package/src/events/EventEmittingComponent.ts +4 -0
  99. package/src/events/ReplayingSingleUseEventEmitter.ts +42 -0
  100. package/src/index.ts +6 -0
  101. package/src/log.ts +47 -1
  102. package/src/types.ts +10 -1
  103. package/src/utils.ts +53 -2
  104. package/src/zkProgrammable/ZkProgrammable.ts +33 -13
  105. package/src/zkProgrammable/provableMethod.ts +15 -14
  106. package/test/config/ModuleContainer.test.ts +45 -2
  107. package/test/config/injectAlias.test.ts +28 -0
  108. package/test/zkProgrammable/ZkProgrammable.test.ts +7 -7
@@ -0,0 +1,13 @@
1
+ import { AreProofsEnabled, CompileArtifact } from "../zkProgrammable/ZkProgrammable";
2
+ export type ArtifactRecord = Record<string, CompileArtifact>;
3
+ export type CompileTarget = {
4
+ name: string;
5
+ compile: () => Promise<CompileArtifact>;
6
+ };
7
+ export declare class AtomicCompileHelper {
8
+ private readonly areProofsEnabled;
9
+ constructor(areProofsEnabled: AreProofsEnabled);
10
+ private compilationPromises;
11
+ compileContract(contract: CompileTarget, overrideProofsEnabled?: boolean): Promise<CompileArtifact>;
12
+ }
13
+ //# sourceMappingURL=AtomicCompileHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomicCompileHelper.d.ts","sourceRoot":"","sources":["../../src/compiling/AtomicCompileHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,eAAe,EAEhB,MAAM,kCAAkC,CAAC;AAK1C,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAE7D,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;CACzC,CAAC;AAEF,qBAAa,mBAAmB;IACX,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAEtE,OAAO,CAAC,mBAAmB,CAEpB;IAEM,eAAe,CAC1B,QAAQ,EAAE,aAAa,EACvB,qBAAqB,CAAC,EAAE,OAAO,GAC9B,OAAO,CAAC,eAAe,CAAC;CAmC5B"}
@@ -0,0 +1,40 @@
1
+ import { MOCK_VERIFICATION_KEY, } from "../zkProgrammable/ZkProgrammable";
2
+ import { isSubtypeOfName } from "../utils";
3
+ import { log } from "../log";
4
+ export class AtomicCompileHelper {
5
+ constructor(areProofsEnabled) {
6
+ this.areProofsEnabled = areProofsEnabled;
7
+ this.compilationPromises = {};
8
+ }
9
+ async compileContract(contract, overrideProofsEnabled) {
10
+ let newPromise = false;
11
+ const { name } = contract;
12
+ if (this.compilationPromises[name] === undefined) {
13
+ const proofsEnabled = overrideProofsEnabled ?? this.areProofsEnabled.areProofsEnabled;
14
+ // We only care about proofs enabled here if it's a contract, because
15
+ // in all other cases, ZkProgrammable already handles this switch, and we
16
+ // want to preserve the artifact layout (which might be more than one
17
+ // entry for ZkProgrammables)
18
+ if (proofsEnabled ||
19
+ !isSubtypeOfName(
20
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
21
+ contract, "SmartContract")) {
22
+ log.time(`Compiling ${name}`);
23
+ this.compilationPromises[name] = contract.compile();
24
+ newPromise = true;
25
+ }
26
+ else {
27
+ log.trace(`Compiling ${name} - mock`);
28
+ this.compilationPromises[name] = Promise.resolve({
29
+ verificationKey: MOCK_VERIFICATION_KEY,
30
+ });
31
+ }
32
+ }
33
+ const result = await this.compilationPromises[name];
34
+ if (newPromise) {
35
+ log.timeEnd.info(`Compiling ${name}`);
36
+ }
37
+ return result;
38
+ }
39
+ }
40
+ //# sourceMappingURL=AtomicCompileHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AtomicCompileHelper.js","sourceRoot":"","sources":["../../src/compiling/AtomicCompileHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAS7B,MAAM,OAAO,mBAAmB;IAC9B,YAAoC,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAE9D,wBAAmB,GAEvB,EAAE,CAAC;IAJkE,CAAC;IAMnE,KAAK,CAAC,eAAe,CAC1B,QAAuB,EACvB,qBAA+B;QAE/B,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAC1B,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;YAChD,MAAM,aAAa,GACjB,qBAAqB,IAAI,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;YAElE,qEAAqE;YACrE,yEAAyE;YACzE,qEAAqE;YACrE,6BAA6B;YAC7B,IACE,aAAa;gBACb,CAAC,eAAe;gBACd,yEAAyE;gBACzE,QAAsC,EACtC,eAAe,CAChB,EACD;gBACA,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpD,UAAU,GAAG,IAAI,CAAC;aACnB;iBAAM;gBACL,GAAG,CAAC,KAAK,CAAC,aAAa,IAAI,SAAS,CAAC,CAAC;gBACtC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;oBAC/C,eAAe,EAAE,qBAAqB;iBACvC,CAAC,CAAC;aACJ;SACF;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,UAAU,EAAE;YACd,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;SACvC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import type { CompileRegistry } from "./CompileRegistry";
2
+ import type { ArtifactRecord } from "./AtomicCompileHelper";
3
+ export interface CompilableModule {
4
+ compile(registry: CompileRegistry): Promise<ArtifactRecord | void>;
5
+ }
6
+ //# sourceMappingURL=CompilableModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompilableModule.d.ts","sourceRoot":"","sources":["../../src/compiling/CompilableModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CACpE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=CompilableModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompilableModule.js","sourceRoot":"","sources":["../../src/compiling/CompilableModule.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { AreProofsEnabled, CompileArtifact } from "../zkProgrammable/ZkProgrammable";
2
+ import { ArtifactRecord, CompileTarget } from "./AtomicCompileHelper";
3
+ /**
4
+ * The CompileRegistry compiles "compilable modules"
5
+ * (i.e. zkprograms, contracts or contractmodules)
6
+ * while making sure they don't get compiled twice in the same process in parallel.
7
+ */
8
+ export declare class CompileRegistry {
9
+ private readonly areProofsEnabled;
10
+ constructor(areProofsEnabled: AreProofsEnabled);
11
+ private compiler;
12
+ private artifacts;
13
+ private inForceProverBlock;
14
+ /**
15
+ * This function forces compilation even if the artifact itself is in the registry.
16
+ * Basically the statement is: The artifact along is not enough, we need to
17
+ * actually have the prover compiled.
18
+ * This is true for non-sideloaded circuit dependencies.
19
+ */
20
+ forceProverExists(f: (registry: CompileRegistry) => Promise<void>): Promise<void>;
21
+ compile(target: CompileTarget): Promise<CompileArtifact>;
22
+ getArtifact(name: string): CompileArtifact | undefined;
23
+ addArtifactsRaw(artifacts: ArtifactRecord): void;
24
+ getAllArtifacts(): ArtifactRecord;
25
+ }
26
+ //# sourceMappingURL=CompileRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompileRegistry.d.ts","sourceRoot":"","sources":["../../src/compiling/CompileRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAChB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,cAAc,EAEd,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B;;;;GAIG;AACH,qBAEa,eAAe;IAGxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,gBAAgB;IAKrD,OAAO,CAAC,QAAQ,CAAsB;IAEtC,OAAO,CAAC,SAAS,CAAsB;IAEvC,OAAO,CAAC,kBAAkB,CAAS;IAEnC;;;;;OAKG;IACU,iBAAiB,CAC5B,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC;IAOpC,OAAO,CAAC,MAAM,EAAE,aAAa;IASnC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAUtD,eAAe,CAAC,SAAS,EAAE,cAAc;IAOzC,eAAe;CAGvB"}
@@ -0,0 +1,68 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ import { inject, injectable, singleton } from "tsyringe";
14
+ import { AtomicCompileHelper, } from "./AtomicCompileHelper";
15
+ /**
16
+ * The CompileRegistry compiles "compilable modules"
17
+ * (i.e. zkprograms, contracts or contractmodules)
18
+ * while making sure they don't get compiled twice in the same process in parallel.
19
+ */
20
+ export let CompileRegistry = class CompileRegistry {
21
+ constructor(areProofsEnabled) {
22
+ this.areProofsEnabled = areProofsEnabled;
23
+ this.artifacts = {};
24
+ this.inForceProverBlock = false;
25
+ this.compiler = new AtomicCompileHelper(this.areProofsEnabled);
26
+ }
27
+ /**
28
+ * This function forces compilation even if the artifact itself is in the registry.
29
+ * Basically the statement is: The artifact along is not enough, we need to
30
+ * actually have the prover compiled.
31
+ * This is true for non-sideloaded circuit dependencies.
32
+ */
33
+ async forceProverExists(f) {
34
+ this.inForceProverBlock = true;
35
+ await f(this);
36
+ this.inForceProverBlock = false;
37
+ }
38
+ async compile(target) {
39
+ if (this.artifacts[target.name] === undefined || this.inForceProverBlock) {
40
+ const artifact = await this.compiler.compileContract(target);
41
+ this.artifacts[target.name] = artifact;
42
+ return artifact;
43
+ }
44
+ return this.artifacts[target.name];
45
+ }
46
+ getArtifact(name) {
47
+ if (this.artifacts[name] === undefined) {
48
+ throw new Error(`Artifact for ${name} not available, did you compile it via the CompileRegistry?`);
49
+ }
50
+ return this.artifacts[name];
51
+ }
52
+ addArtifactsRaw(artifacts) {
53
+ this.artifacts = {
54
+ ...this.artifacts,
55
+ ...artifacts,
56
+ };
57
+ }
58
+ getAllArtifacts() {
59
+ return this.artifacts;
60
+ }
61
+ };
62
+ CompileRegistry = __decorate([
63
+ injectable(),
64
+ singleton(),
65
+ __param(0, inject("AreProofsEnabled")),
66
+ __metadata("design:paramtypes", [Object])
67
+ ], CompileRegistry);
68
+ //# sourceMappingURL=CompileRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompileRegistry.js","sourceRoot":"","sources":["../../src/compiling/CompileRegistry.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAOzD,OAAO,EAEL,mBAAmB,GAEpB,MAAM,uBAAuB,CAAC;AAE/B;;;;GAIG;AAGI,WAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAEE,gBAAmD;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAO7C,cAAS,GAAmB,EAAE,CAAC;QAE/B,uBAAkB,GAAG,KAAK,CAAC;QAPjC,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAmB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjE,CAAC;IAQD;;;;;OAKG;IACI,KAAK,CAAC,iBAAiB,CAC5B,CAA+C;QAE/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,MAAqB;QACxC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACxE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;YACvC,OAAO,QAAQ,CAAC;SACjB;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAEM,WAAW,CAAC,IAAY;QAC7B,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;YACtC,MAAM,IAAI,KAAK,CACb,gBAAgB,IAAI,6DAA6D,CAClF,CAAC;SACH;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEM,eAAe,CAAC,SAAyB;QAC9C,IAAI,CAAC,SAAS,GAAG;YACf,GAAG,IAAI,CAAC,SAAS;YACjB,GAAG,SAAS;SACb,CAAC;IACJ,CAAC;IAEM,eAAe;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;CACF,CAAA;AAzDY,eAAe;IAF3B,UAAU,EAAE;IACZ,SAAS,EAAE;IAGP,WAAA,MAAM,CAAC,kBAAkB,CAAC,CAAA;;GAFlB,eAAe,CAyD3B"}
@@ -0,0 +1,10 @@
1
+ import { CompileRegistry } from "../CompileRegistry";
2
+ export declare class ChildVerificationKeyService {
3
+ private compileRegistry?;
4
+ setCompileRegistry(registry: CompileRegistry): void;
5
+ getVerificationKey(name: string): {
6
+ data: string;
7
+ hash: import("o1js/dist/node/lib/provable/field").Field;
8
+ };
9
+ }
10
+ //# sourceMappingURL=ChildVerificationKeyService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChildVerificationKeyService.d.ts","sourceRoot":"","sources":["../../../src/compiling/services/ChildVerificationKeyService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,qBAEa,2BAA2B;IACtC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAEnC,kBAAkB,CAAC,QAAQ,EAAE,eAAe;IAI5C,kBAAkB,CAAC,IAAI,EAAE,MAAM;;;;CAYvC"}
@@ -0,0 +1,27 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { injectable, Lifecycle, scoped } from "tsyringe";
8
+ export let ChildVerificationKeyService = class ChildVerificationKeyService {
9
+ setCompileRegistry(registry) {
10
+ this.compileRegistry = registry;
11
+ }
12
+ getVerificationKey(name) {
13
+ if (this.compileRegistry === undefined) {
14
+ throw new Error("CompileRegistry hasn't been set yet");
15
+ }
16
+ const artifact = this.compileRegistry.getArtifact(name);
17
+ if (artifact === undefined) {
18
+ throw new Error(`Verification Key for child program ${name} not found in registry`);
19
+ }
20
+ return artifact.verificationKey;
21
+ }
22
+ };
23
+ ChildVerificationKeyService = __decorate([
24
+ injectable(),
25
+ scoped(Lifecycle.ContainerScoped)
26
+ ], ChildVerificationKeyService);
27
+ //# sourceMappingURL=ChildVerificationKeyService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChildVerificationKeyService.js","sourceRoot":"","sources":["../../../src/compiling/services/ChildVerificationKeyService.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMlD,WAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IAG/B,kBAAkB,CAAC,QAAyB;QACjD,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;IAEM,kBAAkB,CAAC,IAAY;QACpC,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;YACtC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAI,wBAAwB,CACnE,CAAC;SACH;QACD,OAAO,QAAQ,CAAC,eAAe,CAAC;IAClC,CAAC;CACF,CAAA;AAnBY,2BAA2B;IAFvC,UAAU,EAAE;IACZ,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC;GACrB,2BAA2B,CAmBvC"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=ChildContainerCreatable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChildContainerCreatable.js","sourceRoot":"","sources":["../../src/config/ChildContainerCreatable.ts"],"names":[],"mappings":""}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=ChildContainerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChildContainerProvider.js","sourceRoot":"","sources":["../../src/config/ChildContainerProvider.ts"],"names":[],"mappings":""}
@@ -21,3 +21,4 @@ export class ConfigurableModule {
21
21
  noop();
22
22
  }
23
23
  }
24
+ //# sourceMappingURL=ConfigurableModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigurableModule.js","sourceRoot":"","sources":["../../src/config/ConfigurableModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAKhC,MAAM,MAAM,GAAG;IACb,YAAY,EAAE,CAAC,UAAkB,EAAE,EAAE,CACnC,IAAI,KAAK,CACP,gCAAgC,UAAU,yBAAyB,CACpE;CACJ,CAAC;AAaF;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAS7B,+BAA+B;IAC/B,IAAW,MAAM;QACf,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YACpC,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAClD;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,iBAAiB;IACjB,IAAW,MAAM,CAAC,MAAc;QAC9B,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,sBAA8C;QAC1D,IAAI,EAAE,CAAC;IACT,CAAC;CACF"}
@@ -87,6 +87,7 @@ export declare class ModuleContainer<Modules extends ModulesRecord> extends Conf
87
87
  assertIsValidModuleName(moduleName: string): asserts moduleName is StringKeyOf<Modules>;
88
88
  isValidModuleName(modules: Modules, moduleName: number | string | symbol): moduleName is StringKeyOf<Modules>;
89
89
  assertContainerInitialized(container: DependencyContainer | undefined): asserts container is DependencyContainer;
90
+ protected registerAliases(originalToken: string, clas: TypedClass<any>): void;
90
91
  /**
91
92
  * Register modules into the current container, and registers
92
93
  * a respective resolution hook in order to decorate the module
@@ -1 +1 @@
1
- {"version":3,"file":"ModuleContainer.d.ts","sourceRoot":"","sources":["../../src/config/ModuleContainer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ModuleContainer.d.ts","sourceRoot":"","sources":["../../src/config/ModuleContainer.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import "reflect-metadata";
2
- import { instancePerContainerCachingFactory, isClassProvider, isFactoryProvider, isTokenProvider, isValueProvider, Lifecycle, } from "tsyringe";
2
+ import { instanceCachingFactory, isClassProvider, isFactoryProvider, isTokenProvider, isValueProvider, Lifecycle, } from "tsyringe";
3
3
  import log from "loglevel";
4
4
  import merge from "lodash/merge";
5
5
  import { EventEmitterProxy } from "../events/EventEmitterProxy";
6
6
  import { ConfigurableModule, } from "./ConfigurableModule";
7
+ import { getInjectAliases } from "./injectAlias";
7
8
  const errors = {
8
9
  configNotSetInContainer: (moduleName) => new Error(`Trying to get config of ${moduleName}, but it was not yet set in the module container`),
9
10
  onlyValidModuleNames: (moduleName) => new Error(
@@ -81,6 +82,12 @@ export class ModuleContainer extends ConfigurableModule {
81
82
  throw errors.dependencyContainerNotSet(this.constructor.name);
82
83
  }
83
84
  }
85
+ registerAliases(originalToken, clas) {
86
+ const aliases = getInjectAliases(clas);
87
+ aliases.forEach((alias) => this.container.register(alias, {
88
+ useToken: originalToken,
89
+ }));
90
+ }
84
91
  /**
85
92
  * Register modules into the current container, and registers
86
93
  * a respective resolution hook in order to decorate the module
@@ -96,6 +103,7 @@ export class ModuleContainer extends ConfigurableModule {
96
103
  const useClass = modules[moduleName];
97
104
  this.container.register(moduleName, { useClass }, { lifecycle: Lifecycle.ContainerScoped });
98
105
  this.onAfterModuleResolution(moduleName);
106
+ this.registerAliases(moduleName, useClass);
99
107
  }
100
108
  });
101
109
  }
@@ -212,14 +220,16 @@ export class ModuleContainer extends ConfigurableModule {
212
220
  // this enables us to have a singletoned factory
213
221
  // that returns the same instance for each resolve
214
222
  this.container.register(key, {
215
- useFactory: instancePerContainerCachingFactory(declaration.useFactory),
223
+ useFactory: instanceCachingFactory(declaration.useFactory),
216
224
  });
217
225
  }
218
226
  else if (isClassProvider(declaration)) {
219
227
  this.container.register(key, declaration, {
220
228
  lifecycle: Lifecycle.Singleton,
221
229
  });
222
- // eslint-disable-next-line sonarjs/no-duplicated-branches
230
+ this.registerAliases(key,
231
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
232
+ declaration.useClass);
223
233
  }
224
234
  else if (isTokenProvider(declaration)) {
225
235
  this.container.register(key, declaration, {
@@ -276,3 +286,4 @@ export class ModuleContainer extends ConfigurableModule {
276
286
  * from the tsyringe DI container
277
287
  */
278
288
  ModuleContainer.moduleDecorationFrequency = "Once";
289
+ //# sourceMappingURL=ModuleContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleContainer.js","sourceRoot":"","sources":["../../src/config/ModuleContainer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { TypedClass } from "../types";
2
+ export declare const injectAliasMetadataKey = "protokit-inject-alias";
3
+ /**
4
+ * Attaches metadata to the class that the ModuleContainer can pick up
5
+ * and inject this class in the DI container under the specified aliases.
6
+ * This method supports inheritance, therefore also gets aliases defined
7
+ * on superclasses
8
+ */
9
+ export declare function injectAlias(aliases: string[]): (target: TypedClass<unknown>) => void;
10
+ /**
11
+ * Marks the class to implement a certain interface T, while also attaching
12
+ * a DI-injection alias as metadata, that will be picked up by the ModuleContainer
13
+ * to allow resolving by that interface name
14
+ * @param name The name of the injection alias, convention is to use the same as the name of T
15
+ */
16
+ export declare function implement<T>(name: string): (target: TypedClass<T>) => void;
17
+ export declare function getInjectAliases(target: TypedClass<unknown>): string[];
18
+ //# sourceMappingURL=injectAlias.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectAlias.d.ts","sourceRoot":"","sources":["../../src/config/injectAlias.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,eAAO,MAAM,sBAAsB,0BAA0B,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,YAC3B,WAAW,OAAO,CAAC,UA+BpC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,YAM7B,WAAW,CAAC,CAAC,UAIxB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAOtE"}
@@ -0,0 +1,47 @@
1
+ export const injectAliasMetadataKey = "protokit-inject-alias";
2
+ /**
3
+ * Attaches metadata to the class that the ModuleContainer can pick up
4
+ * and inject this class in the DI container under the specified aliases.
5
+ * This method supports inheritance, therefore also gets aliases defined
6
+ * on superclasses
7
+ */
8
+ export function injectAlias(aliases) {
9
+ return (target) => {
10
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
11
+ const superAliases = Reflect.getMetadata(injectAliasMetadataKey,
12
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
13
+ Object.getPrototypeOf(target));
14
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
15
+ const existingAliases = Reflect.getMetadata(injectAliasMetadataKey, target);
16
+ let allAliases = aliases;
17
+ if (superAliases !== undefined) {
18
+ allAliases = allAliases.concat(superAliases);
19
+ }
20
+ if (existingAliases !== undefined) {
21
+ allAliases = allAliases.concat(existingAliases);
22
+ }
23
+ Reflect.defineMetadata(injectAliasMetadataKey, allAliases.filter((value, index, array) => array.indexOf(value) === index), target);
24
+ };
25
+ }
26
+ /**
27
+ * Marks the class to implement a certain interface T, while also attaching
28
+ * a DI-injection alias as metadata, that will be picked up by the ModuleContainer
29
+ * to allow resolving by that interface name
30
+ * @param name The name of the injection alias, convention is to use the same as the name of T
31
+ */
32
+ export function implement(name) {
33
+ return (
34
+ /**
35
+ * Check if the target class extends RuntimeModule, while
36
+ * also providing static config presets
37
+ */
38
+ target) => {
39
+ injectAlias([name])(target);
40
+ };
41
+ }
42
+ export function getInjectAliases(target) {
43
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
44
+ const aliases = Reflect.getMetadata(injectAliasMetadataKey, target);
45
+ return aliases ?? [];
46
+ }
47
+ //# sourceMappingURL=injectAlias.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectAlias.js","sourceRoot":"","sources":["../../src/config/injectAlias.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,OAAiB;IAC3C,OAAO,CAAC,MAA2B,EAAE,EAAE;QACrC,yEAAyE;QACzE,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CACtC,sBAAsB;QACtB,iEAAiE;QACjE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CACN,CAAC;QAE1B,yEAAyE;QACzE,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CACzC,sBAAsB,EACtB,MAAM,CACiB,CAAC;QAE1B,IAAI,UAAU,GAAG,OAAO,CAAC;QAEzB,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC9C;QACD,IAAI,eAAe,KAAK,SAAS,EAAE;YACjC,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;SACjD;QAED,OAAO,CAAC,cAAc,CACpB,sBAAsB,EACtB,UAAU,CAAC,MAAM,CACf,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CACxD,EACD,MAAM,CACP,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAI,IAAY;IACvC,OAAO;IACL;;;OAGG;IACH,MAAqB,EACrB,EAAE;QACF,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA2B;IAC1D,yEAAyE;IACzE,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CACjC,sBAAsB,EACtB,MAAM,CACK,CAAC;IACd,OAAO,OAAO,IAAI,EAAE,CAAC;AACvB,CAAC"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=DependencyFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DependencyFactory.js","sourceRoot":"","sources":["../../src/dependencyFactory/DependencyFactory.ts"],"names":[],"mappings":""}
@@ -37,3 +37,4 @@ export function injectOptional(token) {
37
37
  container.register(token, { useClass: UndefinedDisguise });
38
38
  return injectWithTransform(token, (UndefinedTransform));
39
39
  }
40
+ //# sourceMappingURL=injectOptional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"injectOptional.js","sourceRoot":"","sources":["../../src/dependencyFactory/injectOptional.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,SAAS,EACT,MAAM,GACP,MAAM,UAAU,CAAC;AAIlB,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;CAAG,CAAA;AAApB,iBAAiB;IAFtB,UAAU,EAAE;IACZ,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;GAC7B,iBAAiB,CAAG;AAE1B,MAAM,kBAAkB;IACf,SAAS,CACd,QAAwC;QAExC,IAAI,QAAQ,YAAY,iBAAiB,EAAE;YACzC,OAAO,SAAS,CAAC;SAClB;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,cAAc,CAAI,KAAa;IAC7C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC3D,OAAO,mBAAmB,CAAC,KAAK,EAAE,CAAA,kBAAqB,CAAA,CAAC,CAAC;AAC3D,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { VerificationKey } from "o1js";
2
+ export declare function dummyVerificationKey(): VerificationKey;
3
+ //# sourceMappingURL=dummyVerificationKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dummyVerificationKey.d.ts","sourceRoot":"","sources":["../src/dummyVerificationKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,eAAe,EAAE,MAAM,MAAM,CAAC;AAE9C,wBAAgB,oBAAoB,oBAOnC"}
@@ -0,0 +1,8 @@
1
+ import { Field, VerificationKey } from "o1js";
2
+ export function dummyVerificationKey() {
3
+ return new VerificationKey({
4
+ hash: Field("3392518251768960475377392625298437850623664973002200885669375116181514017494"),
5
+ data: "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",
6
+ });
7
+ }
8
+ //# sourceMappingURL=dummyVerificationKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dummyVerificationKey.js","sourceRoot":"","sources":["../src/dummyVerificationKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAE9C,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,eAAe,CAAC;QACzB,IAAI,EAAE,KAAK,CACT,8EAA8E,CAC/E;QACD,IAAI,EAAE,81EAA81E;KACr2E,CAAC,CAAC;AACL,CAAC"}
@@ -32,3 +32,4 @@ export class EventEmitter {
32
32
  }
33
33
  }
34
34
  }
35
+ //# sourceMappingURL=EventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventEmitter.js","sourceRoot":"","sources":["../../src/events/EventEmitter.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,YAAY;IAAzB;QACqB,cAAS,GAA4B,EAAE,CAAC;QAExC,sBAAiB,GAGrB,EAAE,CAAC;IA2CpB,CAAC;IAzCQ,IAAI,CACT,KAAU,EACV,GAAG,UAAuB;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;gBAC7B,QAAQ,CAAC,GAAG,UAAU,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE;YAClD,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,QAAwD;QACnE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAEM,EAAE,CACP,KAAU,EACV,QAAwC;;QAExC,OAAC,IAAI,CAAC,SAAS,EAAC,KAAK,SAAL,KAAK,IAAM,EAAE,EAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED;;;OAGG;IACI,GAAG,CACR,KAAU,EACV,QAAwC;QAExC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CACnC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,QAAQ,CACtC,CAAC;SACH;IACH,CAAC;CACF"}
@@ -12,6 +12,7 @@ export type FlattenedContainerEvents<Modules extends ModulesRecord> = FlattenObj
12
12
  export declare class EventEmitterProxy<Modules extends ModulesRecord> extends EventEmitter<CastToEventsRecord<FlattenedContainerEvents<Modules>>> {
13
13
  private readonly container;
14
14
  constructor(container: ModuleContainer<Modules>);
15
+ private isEventEmittingContainer;
15
16
  private isEventEmitter;
16
17
  }
17
18
  //# sourceMappingURL=EventEmitterProxy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventEmitterProxy.d.ts","sourceRoot":"","sources":["../../src/events/EventEmitterProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEhF,MAAM,MAAM,kBAAkB,CAAC,MAAM,IAAI,MAAM,SAAS,YAAY,GAChE,MAAM,GACN,EAAE,CAAC;AAEP,MAAM,MAAM,YAAY,CAAC,UAAU,SAAS,cAAc,IACxD,YAAY,CAAC,UAAU,CAAC,SAAS,sBAAsB,CAAC,MAAM,MAAM,CAAC,GACjE,MAAM,GACN,YAAY,CAAC,UAAU,CAAC,SAAS,eAAe,CAAC,MAAM,aAAa,CAAC,GACnE,kBAAkB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,GAClD,YAAY,CAAC;AAErB,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,aAAa,IAAI;KAC1D,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IACnE,mBAAmB,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;AAE5C,MAAM,MAAM,wBAAwB,CAAC,OAAO,SAAS,aAAa,IAChE,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAE1C,qBAAa,iBAAiB,CAC5B,OAAO,SAAS,aAAa,CAC7B,SAAQ,YAAY,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC;IAiBvE,OAAO,CAAC,cAAc;CAOvB"}
1
+ {"version":3,"file":"EventEmitterProxy.d.ts","sourceRoot":"","sources":["../../src/events/EventEmitterProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,sBAAsB,EAEtB,YAAY,EACb,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,kBAAkB,CAAC,MAAM,IAAI,MAAM,SAAS,YAAY,GAChE,MAAM,GACN,EAAE,CAAC;AAEP,MAAM,MAAM,YAAY,CAAC,UAAU,SAAS,cAAc,IACxD,YAAY,CAAC,UAAU,CAAC,SAAS,sBAAsB,CAAC,MAAM,MAAM,CAAC,GACjE,MAAM,GACN,YAAY,CAAC,UAAU,CAAC,SAAS,eAAe,CAAC,MAAM,aAAa,CAAC,GACnE,kBAAkB,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,GAOlD,YAAY,CAAC;AAErB,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,aAAa,IAAI;KAC1D,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IACnE,mBAAmB,CAAC,MAAM,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC;AAE5C,MAAM,MAAM,wBAAwB,CAAC,OAAO,SAAS,aAAa,IAChE,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAE1C,qBAAa,iBAAiB,CAC5B,OAAO,SAAS,aAAa,CAC7B,SAAQ,YAAY,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC;IAuBvE,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,cAAc;CAOvB"}
@@ -12,12 +12,24 @@ export class EventEmitterProxy extends EventEmitter {
12
12
  this.emit(events, ...args);
13
13
  });
14
14
  }
15
+ if (this.isEventEmittingContainer(module)) {
16
+ module.containerEvents.onAll((events, args) => {
17
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
18
+ this.emit(events, ...args);
19
+ });
20
+ }
15
21
  }
16
22
  });
17
23
  }
24
+ isEventEmittingContainer(module) {
25
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
26
+ const emitter = module.containerEvents;
27
+ return emitter !== undefined && emitter instanceof EventEmitter;
28
+ }
18
29
  isEventEmitter(module) {
19
30
  // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
20
31
  const emitter = module.events;
21
32
  return emitter !== undefined && emitter instanceof EventEmitter;
22
33
  }
23
34
  }
35
+ //# sourceMappingURL=EventEmitterProxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventEmitterProxy.js","sourceRoot":"","sources":["../../src/events/EventEmitterProxy.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAkC9C,MAAM,OAAO,iBAEX,SAAQ,YAAmE;IAC3E,YAAoC,SAAmC;QACrE,KAAK,EAAE,CAAC;QAD0B,cAAS,GAAT,SAAS,CAA0B;QAErE,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YAC3C,IACE,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EACrE;gBACA,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC7C,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE;oBAC/B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAW,EAAE,IAAW,EAAE,EAAE;wBAC/C,iEAAiE;wBACjE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;oBAC7B,CAAC,CAAC,CAAC;iBACJ;gBACD,IAAI,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAE;oBACzC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,MAAW,EAAE,IAAW,EAAE,EAAE;wBACxD,iEAAiE;wBACjE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;oBAC7B,CAAC,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,wBAAwB,CAC9B,MAAW;QAEX,mEAAmE;QACnE,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;QACvC,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,YAAY,YAAY,CAAC;IAClE,CAAC;IAEO,cAAc,CACpB,MAAW;QAEX,mEAAmE;QACnE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,YAAY,YAAY,CAAC;IAClE,CAAC;CACF"}
@@ -3,4 +3,7 @@ export type EventsRecord = Record<string, unknown[]>;
3
3
  export interface EventEmittingComponent<Events extends EventsRecord> {
4
4
  events: EventEmitter<Events>;
5
5
  }
6
+ export interface EventEmittingContainer<Events extends EventsRecord> {
7
+ containerEvents: EventEmitter<Events>;
8
+ }
6
9
  //# sourceMappingURL=EventEmittingComponent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventEmittingComponent.d.ts","sourceRoot":"","sources":["../../src/events/EventEmittingComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAErD,MAAM,WAAW,sBAAsB,CAAC,MAAM,SAAS,YAAY;IACjE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CAC9B"}
1
+ {"version":3,"file":"EventEmittingComponent.d.ts","sourceRoot":"","sources":["../../src/events/EventEmittingComponent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAErD,MAAM,WAAW,sBAAsB,CAAC,MAAM,SAAS,YAAY;IACjE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB,CAAC,MAAM,SAAS,YAAY;IACjE,eAAe,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;CACvC"}
@@ -1 +1,2 @@
1
1
  export {};
2
+ //# sourceMappingURL=EventEmittingComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventEmittingComponent.js","sourceRoot":"","sources":["../../src/events/EventEmittingComponent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
1
+ import { EventsRecord } from "./EventEmittingComponent";
2
+ import { EventEmitter } from "./EventEmitter";
3
+ /**
4
+ * Event Emitter variant that emits a certain event only once to a registered listener.
5
+ * Additionally, if a listener registers to a event that has already been emitted, it
6
+ * re-emits it to said listener.
7
+ * This pattern is especially useful for listening for inclusions of transactions.
8
+ * Those events will only occur once, and listeners could come too late to the party,
9
+ * so we need to make sure they get notified as well in those cases.
10
+ */
11
+ export declare class ReplayingSingleUseEventEmitter<Events extends EventsRecord> extends EventEmitter<Events> {
12
+ emitted: Partial<Events>;
13
+ emit<Key extends keyof Events>(event: Key, ...parameters: Events[Key]): void;
14
+ onAll(listener: (event: keyof Events, args: unknown[]) => void): void;
15
+ on<Key extends keyof Events>(event: Key, listener: (...args: Events[Key]) => void): void;
16
+ }
17
+ //# sourceMappingURL=ReplayingSingleUseEventEmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReplayingSingleUseEventEmitter.d.ts","sourceRoot":"","sources":["../../src/events/ReplayingSingleUseEventEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;GAOG;AACH,qBAAa,8BAA8B,CACzC,MAAM,SAAS,YAAY,CAC3B,SAAQ,YAAY,CAAC,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAM;IAE9B,IAAI,CAAC,GAAG,SAAS,MAAM,MAAM,EAClC,KAAK,EAAE,GAAG,EACV,GAAG,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC;IAOrB,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI;IAO9D,EAAE,CAAC,GAAG,SAAS,MAAM,MAAM,EAChC,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI;CAO3C"}