@layerzerolabs/base-definitions 0.0.2 → 0.0.6

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 (66) hide show
  1. package/.turbo/turbo-build.log +54 -37
  2. package/.turbo/turbo-lint.log +4 -0
  3. package/.turbo/turbo-test.log +14 -0
  4. package/dist/67HCA6YT.cjs +64 -0
  5. package/dist/67HCA6YT.cjs.map +1 -0
  6. package/dist/E2YEEYRA.cjs +17 -0
  7. package/dist/E2YEEYRA.cjs.map +1 -0
  8. package/dist/LXFPNTIJ.cjs +38 -0
  9. package/dist/LXFPNTIJ.cjs.map +1 -0
  10. package/dist/MELXRRC4.js +15 -0
  11. package/dist/MELXRRC4.js.map +1 -0
  12. package/dist/O4SGLGEI.js +62 -0
  13. package/dist/O4SGLGEI.js.map +1 -0
  14. package/dist/RWF76TF5.js +34 -0
  15. package/dist/RWF76TF5.js.map +1 -0
  16. package/dist/S2FOVFOI.js +134 -0
  17. package/dist/S2FOVFOI.js.map +1 -0
  18. package/dist/VO33UEHJ.cjs +136 -0
  19. package/dist/VO33UEHJ.cjs.map +1 -0
  20. package/dist/VUOMXK5T.js +6 -0
  21. package/dist/VUOMXK5T.js.map +1 -0
  22. package/dist/YJF4D23A.cjs +8 -0
  23. package/dist/YJF4D23A.cjs.map +1 -0
  24. package/dist/definitions.cjs +8 -4
  25. package/dist/definitions.d.ts +80 -39
  26. package/dist/definitions.d.ts.map +1 -1
  27. package/dist/definitions.js +2 -2
  28. package/dist/index.cjs +21 -7
  29. package/dist/index.d.ts +2 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +5 -3
  32. package/dist/lzyringe.cjs +13 -0
  33. package/dist/lzyringe.cjs.map +1 -0
  34. package/dist/lzyringe.d.ts +24 -0
  35. package/dist/lzyringe.d.ts.map +1 -0
  36. package/dist/lzyringe.js +4 -0
  37. package/dist/lzyringe.js.map +1 -0
  38. package/dist/registrarBuilder.cjs +3 -3
  39. package/dist/registrarBuilder.d.ts +35 -3
  40. package/dist/registrarBuilder.d.ts.map +1 -1
  41. package/dist/registrarBuilder.js +2 -2
  42. package/dist/utils.cjs +14 -0
  43. package/dist/utils.cjs.map +1 -0
  44. package/dist/utils.d.ts +4 -0
  45. package/dist/utils.d.ts.map +1 -0
  46. package/dist/utils.js +5 -0
  47. package/dist/utils.js.map +1 -0
  48. package/package.json +9 -9
  49. package/src/definitions.ts +137 -55
  50. package/src/index.ts +2 -0
  51. package/src/lzyringe.ts +63 -0
  52. package/src/registrarBuilder.ts +101 -6
  53. package/src/utils.ts +24 -0
  54. package/test/registrarBuilder.test.ts +122 -0
  55. package/tsconfig.json +0 -2
  56. package/tsup.config.ts +0 -2
  57. package/.eslintrc.cjs +0 -5
  58. package/dist/chunk-3HJUWVUI.js +0 -79
  59. package/dist/chunk-3HJUWVUI.js.map +0 -1
  60. package/dist/chunk-ALVDFXDA.js +0 -29
  61. package/dist/chunk-ALVDFXDA.js.map +0 -1
  62. package/dist/chunk-E4NXJ2OV.cjs +0 -32
  63. package/dist/chunk-E4NXJ2OV.cjs.map +0 -1
  64. package/dist/chunk-H2WIRLVA.cjs +0 -81
  65. package/dist/chunk-H2WIRLVA.cjs.map +0 -1
  66. package/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,136 @@
1
+ 'use strict';
2
+
3
+ var YJF4D23A_cjs = require('./YJF4D23A.cjs');
4
+ var dfs = require('@layerzerolabs/dfs');
5
+
6
+ var RegistrarBuilder = class {
7
+ static {
8
+ YJF4D23A_cjs.__name(this, "RegistrarBuilder");
9
+ }
10
+ defaultHandler;
11
+ constructor() {
12
+ this.defaultHandler = async (node) => {
13
+ throw new Error(`This registrar does not provide a handler for the dependency type used by ${JSON.stringify(node)}`);
14
+ };
15
+ }
16
+ classHandlers = [];
17
+ classAliases = [];
18
+ /**
19
+ * Add a function fn to be called on all nodes of class
20
+ * @param nodeClass
21
+ * @param identifier
22
+ * @param fn
23
+ */
24
+ addClassHandler(nodeClass, identifier, fn) {
25
+ if (this.classAliases.find(({ fromNodeClass }) => fromNodeClass === nodeClass)) {
26
+ throw new Error(`Cannot define a handler for a class that is aliased to something else. This would be pointless`);
27
+ }
28
+ let i = 0;
29
+ for (const handler of this.classHandlers) {
30
+ if (handler.nodeClass === nodeClass) {
31
+ this.classHandlers[i] = {
32
+ nodeClass,
33
+ identifier,
34
+ fn
35
+ };
36
+ return this;
37
+ }
38
+ if (handler.nodeClass.prototype.isPrototypeOf(nodeClass.prototype)) {
39
+ this.classHandlers.splice(i, 0, {
40
+ nodeClass,
41
+ identifier,
42
+ fn
43
+ });
44
+ return this;
45
+ }
46
+ i++;
47
+ }
48
+ this.classHandlers.push({
49
+ nodeClass,
50
+ identifier,
51
+ fn
52
+ });
53
+ return this;
54
+ }
55
+ /**
56
+ * Alias some class *from*, such that any node of that class in the tree will be
57
+ * treated as though it were some other node *to*. The *to* node is given as a
58
+ * function returning a class instance, so that its dependencies, name, etc can be fixed.
59
+ * The registrar will ignore the dependencies of the original node, and follow the alias's
60
+ * dependencies instead.
61
+ *
62
+ * Additionally, this method does not affect the typing of the registrar. The output type
63
+ * of the build() method will not reflect the alias.
64
+ *
65
+ * @param fromNodeClass alias instances of this class
66
+ * @param getToNode method that returns the *to* part of the alias
67
+ */
68
+ addClassAlias(fromNodeClass, getToNode) {
69
+ if (this.classHandlers.find(({ nodeClass }) => nodeClass === fromNodeClass)) {
70
+ throw new Error(`Cannot define an alias for a class that already has a handler`);
71
+ }
72
+ let i = 0;
73
+ for (const alias of this.classAliases) {
74
+ if (alias.fromNodeClass === fromNodeClass) {
75
+ this.classAliases[i] = {
76
+ fromNodeClass,
77
+ getToNode
78
+ };
79
+ return this;
80
+ }
81
+ if (alias.fromNodeClass.prototype.isPrototypeOf(fromNodeClass.prototype)) {
82
+ this.classAliases.splice(i, 0, {
83
+ fromNodeClass,
84
+ getToNode
85
+ });
86
+ return this;
87
+ }
88
+ i++;
89
+ }
90
+ this.classAliases.push({
91
+ fromNodeClass,
92
+ getToNode
93
+ });
94
+ return this;
95
+ }
96
+ /**
97
+ * Add a default function fn to be used on nodes whose types do not have handlers.
98
+ * If this is not set, the default behaviour will be to throw
99
+ * @param fn
100
+ */
101
+ addDefault(fn) {
102
+ this.defaultHandler = fn;
103
+ return this;
104
+ }
105
+ build() {
106
+ const mergedNodePrehandler = /* @__PURE__ */ YJF4D23A_cjs.__name((node) => {
107
+ for (const { fromNodeClass, getToNode: toNode } of this.classAliases) {
108
+ if (node instanceof fromNodeClass) {
109
+ return toNode(node);
110
+ }
111
+ }
112
+ return node;
113
+ }, "mergedNodePrehandler");
114
+ const mergedNodeHandler = /* @__PURE__ */ YJF4D23A_cjs.__name(async (node) => {
115
+ for (const { nodeClass, identifier, fn } of this.classHandlers) {
116
+ if (node instanceof nodeClass) {
117
+ return {
118
+ key: identifier,
119
+ value: await fn(node)
120
+ };
121
+ }
122
+ }
123
+ return {
124
+ key: "default",
125
+ value: await this.defaultHandler(node)
126
+ };
127
+ }, "mergedNodeHandler");
128
+ return {
129
+ traverseDependencies: /* @__PURE__ */ YJF4D23A_cjs.__name(async (node) => await dfs.dfs(node, mergedNodeHandler, mergedNodePrehandler)(), "traverseDependencies")
130
+ };
131
+ }
132
+ };
133
+
134
+ exports.RegistrarBuilder = RegistrarBuilder;
135
+ //# sourceMappingURL=VO33UEHJ.cjs.map
136
+ //# sourceMappingURL=VO33UEHJ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/registrarBuilder.ts"],"names":["RegistrarBuilder","defaultHandler","node","Error","JSON","stringify","classHandlers","classAliases","addClassHandler","nodeClass","identifier","fn","find","fromNodeClass","i","handler","prototype","isPrototypeOf","splice","push","addClassAlias","getToNode","alias","addDefault","build","mergedNodePrehandler","toNode","mergedNodeHandler","key","value","traverseDependencies","__name","dfs"],"mappings":"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","file":"VO33UEHJ.cjs","sourcesContent":["import type { DependencyNode } from '@layerzerolabs/dependency-graph';\nimport type { Registrar } from '@layerzerolabs/dfs';\nexport type { Registrar };\nimport { dfs } from '@layerzerolabs/dfs';\n\ntype NodeClass = new (...args: any[]) => DependencyNode<any, any>;\ntype AbstractNodeClass = abstract new (...args: any[]) => DependencyNode<any, any>;\n\n/**\n * A builder class for a {@link Registrar}.\n * Builds a registrar that switches on node class--i.e., enables defining\n * specific registration behaviour for specific node classes.\n * Intelligently handles inheritance, always using the most specific\n * handler defined for any given class.\n * The registrar built shall return an object that maps from a handler ID,\n * to a map from node name to the return of each handler,\n * e.g., { objectNodes: { myObjectNode: 'my handler return' }}.\n * This can be used to extract a specific resolved value after resolving the tree,\n * given that the handlers return the resolved nodes.\n */\nexport class RegistrarBuilder<_ReturnTypes> {\n protected defaultHandler: (node: DependencyNode<any, any>) => Promise<any>;\n constructor() {\n this.defaultHandler = async (node: DependencyNode<any, any>) => {\n throw new Error(\n `This registrar does not provide a handler for the dependency type used by ${JSON.stringify(node)}`,\n );\n };\n }\n\n protected classHandlers: {\n nodeClass: AbstractNodeClass;\n identifier: string;\n fn: (node: DependencyNode<any, any>) => Promise<any>;\n }[] = [];\n\n protected classAliases: {\n fromNodeClass: AbstractNodeClass;\n getToNode: (from: DependencyNode<any, any>) => DependencyNode<any, any>;\n }[] = [];\n\n /**\n * Add a function fn to be called on all nodes of class\n * @param nodeClass\n * @param identifier\n * @param fn\n */\n public addClassHandler<\n Identifier extends string,\n _NodeClass extends NodeClass,\n Function extends (node: InstanceType<_NodeClass>) => any,\n >(nodeClass: _NodeClass, identifier: Identifier, fn: Function) {\n if (this.classAliases.find(({ fromNodeClass }) => fromNodeClass === nodeClass)) {\n throw new Error(\n `Cannot define a handler for a class that is aliased to something else. This would be pointless`,\n );\n }\n\n let i = 0;\n for (const handler of this.classHandlers) {\n //check if we are overriding an existing handler\n if (handler.nodeClass === nodeClass) {\n this.classHandlers[i] = {\n nodeClass,\n identifier,\n fn: fn as unknown as (node: DependencyNode<any, any>) => Promise<any>,\n };\n\n return this as RegistrarBuilder<\n _ReturnTypes & {\n [K in Identifier]: { [nodeName: string]: Awaited<ReturnType<Function>> };\n }\n >;\n }\n //check if the new handler has an ordering requirement against an existing handler\n //(we always want to use more specific handlers if they exist)\n // eslint-disable-next-line no-prototype-builtins\n if (handler.nodeClass.prototype.isPrototypeOf(nodeClass.prototype)) {\n this.classHandlers.splice(i, 0, {\n nodeClass,\n identifier,\n fn: fn as unknown as (node: DependencyNode<any, any>) => Promise<any>,\n });\n\n return this as RegistrarBuilder<\n _ReturnTypes & {\n [K in Identifier]: { [nodeName: string]: Awaited<ReturnType<Function>> };\n }\n >;\n }\n i++;\n }\n\n this.classHandlers.push({\n nodeClass,\n identifier,\n fn: fn as unknown as (node: DependencyNode<any, any>) => Promise<any>,\n });\n\n return this as RegistrarBuilder<\n _ReturnTypes & {\n [K in Identifier]: { [nodeName: string]: Awaited<ReturnType<Function>> };\n }\n >;\n }\n\n /**\n * Alias some class *from*, such that any node of that class in the tree will be\n * treated as though it were some other node *to*. The *to* node is given as a\n * function returning a class instance, so that its dependencies, name, etc can be fixed.\n * The registrar will ignore the dependencies of the original node, and follow the alias's\n * dependencies instead.\n *\n * Additionally, this method does not affect the typing of the registrar. The output type\n * of the build() method will not reflect the alias.\n *\n * @param fromNodeClass alias instances of this class\n * @param getToNode method that returns the *to* part of the alias\n */\n public addClassAlias<FromNodeClass extends AbstractNodeClass>(\n fromNodeClass: FromNodeClass,\n getToNode: (fromNodeInstance: InstanceType<FromNodeClass>) => DependencyNode<any, any>,\n ) {\n if (this.classHandlers.find(({ nodeClass }) => nodeClass === fromNodeClass)) {\n throw new Error(`Cannot define an alias for a class that already has a handler`);\n }\n\n let i = 0;\n for (const alias of this.classAliases) {\n //check if we are overriding an existing alias\n if (alias.fromNodeClass === fromNodeClass) {\n this.classAliases[i] = {\n fromNodeClass,\n getToNode: getToNode as unknown as (\n from: DependencyNode<any, any>,\n ) => DependencyNode<any, any>,\n };\n\n return this;\n }\n //check if the new alias has an ordering requirement against an existing alias\n //(we always want to use more specific handlers if they exist)\n // eslint-disable-next-line no-prototype-builtins\n if (alias.fromNodeClass.prototype.isPrototypeOf(fromNodeClass.prototype)) {\n this.classAliases.splice(i, 0, {\n fromNodeClass,\n getToNode: getToNode as unknown as (\n from: DependencyNode<any, any>,\n ) => DependencyNode<any, any>,\n });\n\n return this;\n }\n i++;\n }\n\n this.classAliases.push({\n fromNodeClass,\n getToNode: getToNode as unknown as (\n from: DependencyNode<any, any>,\n ) => DependencyNode<any, any>,\n });\n\n return this;\n }\n\n /**\n * Add a default function fn to be used on nodes whose types do not have handlers.\n * If this is not set, the default behaviour will be to throw\n * @param fn\n */\n public addDefault(fn: (node: DependencyNode<any, any>) => any) {\n this.defaultHandler = fn;\n return this;\n }\n\n public build(): Registrar<_ReturnTypes> {\n const mergedNodePrehandler = (node: DependencyNode<any, any>) => {\n for (const { fromNodeClass, getToNode: toNode } of this.classAliases) {\n if (node instanceof fromNodeClass) {\n return toNode(node);\n }\n }\n return node;\n };\n\n const mergedNodeHandler = async (node: DependencyNode<any, any>) => {\n for (const { nodeClass, identifier, fn } of this.classHandlers) {\n if (node instanceof nodeClass) {\n return {\n key: identifier,\n value: await fn(node),\n };\n }\n }\n\n return {\n key: 'default',\n value: await this.defaultHandler(node),\n };\n };\n return {\n traverseDependencies: async (node: DependencyNode<any, any>) =>\n await dfs<any, _ReturnTypes>(node, mergedNodeHandler, mergedNodePrehandler)(),\n };\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
+
4
+ export { __name };
5
+ //# sourceMappingURL=VUOMXK5T.js.map
6
+ //# sourceMappingURL=VUOMXK5T.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"VUOMXK5T.js"}
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+
6
+ exports.__name = __name;
7
+ //# sourceMappingURL=YJF4D23A.cjs.map
8
+ //# sourceMappingURL=YJF4D23A.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"YJF4D23A.cjs"}
@@ -1,17 +1,21 @@
1
1
  'use strict';
2
2
 
3
- require('reflect-metadata');
4
- var chunkE4NXJ2OV_cjs = require('./chunk-E4NXJ2OV.cjs');
3
+ var LXFPNTIJ_cjs = require('./LXFPNTIJ.cjs');
4
+ require('./YJF4D23A.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "FactoryDefinition", {
9
9
  enumerable: true,
10
- get: function () { return chunkE4NXJ2OV_cjs.FactoryDefinition; }
10
+ get: function () { return LXFPNTIJ_cjs.FactoryDefinition; }
11
11
  });
12
12
  Object.defineProperty(exports, "ObjectDefinition", {
13
13
  enumerable: true,
14
- get: function () { return chunkE4NXJ2OV_cjs.ObjectDefinition; }
14
+ get: function () { return LXFPNTIJ_cjs.ObjectDefinition; }
15
+ });
16
+ Object.defineProperty(exports, "serializeDimensions", {
17
+ enumerable: true,
18
+ get: function () { return LXFPNTIJ_cjs.serializeDimensions; }
15
19
  });
16
20
  //# sourceMappingURL=definitions.cjs.map
17
21
  //# sourceMappingURL=definitions.cjs.map
@@ -1,35 +1,58 @@
1
- import type { z } from 'zod';
1
+ import type { z } from 'zod/v4';
2
+ import type { FunctionPointer } from '@layerzerolabs/common-utils';
2
3
  import type { Dependencies } from '@layerzerolabs/dependency-graph';
3
4
  import { DependencyNode } from '@layerzerolabs/dependency-graph';
4
- import type { IntersectionValueOf, RemoveNever } from '@layerzerolabs/typescript-utils';
5
- export type Factory<_Dependencies extends Dependencies, Dim extends z.ZodObject<any>, GetImplMetadata extends {
6
- getModel: (dim: z.infer<Dim>) => any;
7
- }> = {
8
- getImpl: (dim: z.infer<Dim>) => ReturnType<GetImplMetadata['getModel']>;
5
+ import type { AdvancedRecord, AdvancedRecordLookup, Merge, MethodNameOf, RemoveNever, UnionToIntersection } from '@layerzerolabs/typescript-utils';
6
+ export type DimensionToSchemaMap<DimConstraint extends object = object> = {
7
+ byDimension?: AdvancedRecord<DimConstraint, z.ZodType>;
8
+ base: z.ZodType;
9
9
  };
10
- export type GetFactory<_Dependencies extends Dependencies, Dim extends z.ZodObject<any>, GetImplMetadata extends {
11
- getModel: (dim: z.infer<Dim>) => any;
12
- }> = () => Factory<_Dependencies, Dim, GetImplMetadata> | Promise<Factory<_Dependencies, Dim, GetImplMetadata>>;
13
- export type GetFactoryForDefinition<Definition> = GetFactory<Definition extends FactoryDefinition<any, any, any, infer D> ? D : never, Definition extends FactoryDefinition<any, infer D, any, any> ? D : never, Definition extends FactoryDefinition<any, any, infer G, any> ? G : never>;
14
- export declare class FactoryDefinition<Name extends string, Dim extends z.ZodObject<any>, GetImplMetadata extends {
15
- getKey: (dim: z.infer<Dim>) => any;
16
- getModel: (dim: z.infer<Dim>) => any;
17
- revLookup: {
18
- [key: string]: {
19
- dim: z.infer<Dim>;
20
- model: any;
21
- };
22
- };
23
- }, _Dependencies extends Dependencies> extends DependencyNode<Name, _Dependencies> {
10
+ export type GetModelFromSchema<DMap extends DimensionToSchemaMap, Dim> = AdvancedRecordLookup<DMap['byDimension'], Dim> extends never ? z.infer<DMap['base']> : Merge<z.infer<DMap['base']>, z.infer<AdvancedRecordLookup<DMap['byDimension'], Dim>>>;
11
+ type GetImplFunctionWithConditionalOptionalDim<Dim, Return> = {} extends Dim ? (dim?: Dim) => Return : (dim: Dim) => Return;
12
+ type GetImplOverloads<Dim extends z.ZodObject<any>, DMap extends DimensionToSchemaMap<z.infer<Dim>>> = UnionToIntersection<{
13
+ [I in keyof DMap['byDimension']]: DMap['byDimension'][I] extends readonly [infer K, any] ? {
14
+ getImpl: GetImplFunctionWithConditionalOptionalDim<K, GetModelFromSchema<DMap, K>>;
15
+ } : never;
16
+ }[keyof DMap['byDimension']] | {
17
+ getImpl: GetImplFunctionWithConditionalOptionalDim<z.infer<Dim>, z.infer<DMap['base']>>;
18
+ }>;
19
+ export type Factory<_Dependencies extends Dependencies, Dim extends z.ZodObject<any>, DMap extends DimensionToSchemaMap<z.infer<Dim>>> = {
20
+ implKeys: string[];
21
+ } & GetImplOverloads<Dim, DMap>;
22
+ export type GetFactory<_Dependencies extends Dependencies, Dim extends z.ZodObject<any>, DMap extends DimensionToSchemaMap<z.infer<Dim>>> = () => Factory<_Dependencies, Dim, DMap> | Promise<Factory<_Dependencies, Dim, DMap>>;
23
+ /**
24
+ * Factory definitions are a type of dependency node that shall be resolved to a *factory*.
25
+ * A factory is an object that provides a getImpl method which accepts some parameters *dim*,
26
+ * and returns some object getImplMetadata.getModel(dim).
27
+ * That is, a factory definition is given by the set of parameters it uses to get its implementations,
28
+ * and a function defining the schema it will return for each set of parameters.
29
+ * @param name inherited from {@link DependencyNode}
30
+ * @param dependencies inherited from {@link DependencyNode}
31
+ * @param dimensions a Zod schema for the parameters this factory operates on.
32
+ * @param dimensionToSchemaMap A map from dimension objects to the Zod schema for the implementation.
33
+ * @param getFactory a method that should return an object with a getImpl method that returns
34
+ * entities adhering to the schema for the corresponding getModel call
35
+ */
36
+ export declare class FactoryDefinition<Name extends string, Dim extends z.ZodObject<any>, DMap extends DimensionToSchemaMap<z.infer<Dim>>, _Dependencies extends Dependencies> extends DependencyNode<Name, _Dependencies> {
24
37
  readonly dimensions: Dim;
25
- readonly getImplMetadata: GetImplMetadata;
26
- readonly getFactory: GetFactory<_Dependencies, Dim, GetImplMetadata>;
27
- constructor({ dimensions, getImplMetadata, getFactory, ...args }: {
38
+ readonly dimensionToSchemaMap: DMap;
39
+ readonly getFactory: GetFactory<_Dependencies, Dim, DMap>;
40
+ constructor({ dimensions, dimensionToSchemaMap, getFactory, ...args }: {
28
41
  dimensions: Dim;
29
- getImplMetadata: GetImplMetadata;
30
- getFactory: GetFactory<_Dependencies, Dim, GetImplMetadata>;
42
+ dimensionToSchemaMap: DMap;
43
+ getFactory: GetFactory<_Dependencies, Dim, DMap>;
31
44
  } & ConstructorParameters<typeof DependencyNode<Name, _Dependencies>>[0]);
32
45
  }
46
+ /**
47
+ * An object definition is a dependency node that refers to some entity
48
+ * matching a given schema. That is, it may be resolved to any entity
49
+ * that adheres to the {@link schema}.
50
+ * The object definition is abstract, as it cannot be meaningfully resolved without
51
+ * additional information. For an example of an object definition, see ReflexiveObjectDefinition or ContextDefinition
52
+ * @param name inherited from {@link DependencyNode}
53
+ * @param dependencies inherited from {@link DependencyNode}
54
+ * @param schema a Zod schema defining the expected resolution for this definition
55
+ */
33
56
  export declare abstract class ObjectDefinition<Name extends string, Schema extends z.ZodSchema, _Dependencies extends Dependencies> extends DependencyNode<Name, _Dependencies> {
34
57
  readonly schema: Schema;
35
58
  constructor({ schema, ...args }: {
@@ -37,21 +60,39 @@ export declare abstract class ObjectDefinition<Name extends string, Schema exten
37
60
  } & ConstructorParameters<typeof DependencyNode<Name, _Dependencies>>[0]);
38
61
  }
39
62
  export type Definition<Name extends string> = FactoryDefinition<Name, any, any, any> | ObjectDefinition<Name, any, any>;
40
- export type DefinitionResolution<Definition extends DependencyNode<any, any>> = Definition extends ObjectDefinition<any, infer Schema, any> ? z.infer<Schema> : Definition extends FactoryDefinition<any, any, infer GetImpl, any> ? {
41
- getImpl: GetImpl['getModel'];
42
- } : never;
43
- export type DefinitionsResolution<Deps extends Dependencies> = {
44
- [Key in keyof Deps]: DefinitionResolution<Deps[Key]>;
63
+ /**
64
+ * Infers the expected type of a definition once it has been resolved
65
+ */
66
+ export type ResolvedDefinition<Definition extends DependencyNode<any, any>> = Definition extends ObjectDefinition<any, infer Schema, any> ? z.infer<Schema> : Definition extends FactoryDefinition<any, infer Dim, infer DMap, any> ? Factory<Definition['dependencies'], Dim, DMap> : Definition extends FactoryDefinition<any, any, any, any> ? Factory<Definition['dependencies'], Definition['dimensions'], Definition['dimensionToSchemaMap']> : unknown;
67
+ /**
68
+ * Given a record from string to definition, maps each definition T to ResolvedDefinition<T>
69
+ */
70
+ export type ResolvedDefinitionMap<Deps extends Dependencies> = {
71
+ [Key in keyof Deps]: ResolvedDefinition<Deps[Key]>;
45
72
  };
46
- export type DefinitionImplsResolution<Definition extends DependencyNode<any, any>, Dim> = Definition extends FactoryDefinition<any, infer _Dim, infer GetImpl, any> ? Dim extends z.infer<_Dim> ? IntersectionValueOf<{
47
- [key in keyof GetImpl['revLookup']]: Dim extends GetImpl['revLookup'][key]['dim'] ? GetImpl['revLookup'][key]['model'] : GetImpl['revLookup']['__base']['model'];
48
- }> : never : never;
49
- export type DefinitionsImplsResolution<Deps extends Dependencies, Dim> = RemoveNever<{
50
- [Key in keyof Deps]: DefinitionImplsResolution<Deps[Key], Dim>;
73
+ /**
74
+ * For some factory definition F and some dimension D s.t. D ⊇ F.dimensions, infers the expected return type of
75
+ * ResolvedDefinition<F>.getImpl(D)
76
+ */
77
+ export type ResolvedFactoryImplementation<Definition extends DependencyNode<any, any>, Dim> = Definition extends FactoryDefinition<any, any, any, any> ? GetModelFromSchema<Definition['dimensionToSchemaMap'], Dim> : never;
78
+ /**
79
+ * Given a record from string to definition and some dimension D, maps each definition T to ResolvedFactoryImplementation<T, D>
80
+ */
81
+ export type ResolvedFactoryImplementationMap<Deps extends Dependencies, Dim> = RemoveNever<{
82
+ [Key in keyof Deps]: ResolvedFactoryImplementation<Deps[Key], Dim>;
51
83
  }>;
52
- export type Context<Deps extends Dependencies, Dim> = {
53
- dependencies: DefinitionsResolution<Deps>;
54
- impls: DefinitionsImplsResolution<Deps, Dim>;
55
- dim: Dim;
84
+ type ActivityFactoryContext<_FactoryDefinition extends FactoryDefinition<any, any, any, any>, Dim> = {
85
+ getFunctionPointer: _FactoryDefinition extends FactoryDefinition<any, any, any, any> ? <MethodName extends MethodNameOf<ResolvedFactoryImplementation<_FactoryDefinition, Dim>>>(methodName: MethodName) => FunctionPointer<ResolvedFactoryImplementation<_FactoryDefinition, Dim>[MethodName]> : never;
56
86
  };
87
+ /**
88
+ * The parameters that shall be received by a factory's implementation getter
89
+ */
90
+ export type Context<_FactoryDefinition extends FactoryDefinition<any, any, any, any>, Dim> = {
91
+ name: _FactoryDefinition extends FactoryDefinition<infer Name, any, any, any> ? Name : never;
92
+ dependencies: _FactoryDefinition extends FactoryDefinition<any, any, any, infer Deps> ? ResolvedDefinitionMap<Deps> : never;
93
+ dim: Dim;
94
+ impls: _FactoryDefinition extends FactoryDefinition<any, any, any, infer Deps> ? ResolvedFactoryImplementationMap<Deps, Dim> : never;
95
+ } & ActivityFactoryContext<_FactoryDefinition, Dim>;
96
+ export declare const serializeDimensions: (dim?: object) => string;
97
+ export {};
57
98
  //# sourceMappingURL=definitions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../src/definitions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import 'reflect-metadata';
2
- export { FactoryDefinition, ObjectDefinition } from './chunk-ALVDFXDA.js';
1
+ export { FactoryDefinition, ObjectDefinition, serializeDimensions } from './RWF76TF5.js';
2
+ import './VUOMXK5T.js';
3
3
  //# sourceMappingURL=definitions.js.map
4
4
  //# sourceMappingURL=definitions.js.map
package/dist/index.cjs CHANGED
@@ -1,22 +1,36 @@
1
1
  'use strict';
2
2
 
3
- require('reflect-metadata');
4
- var chunkE4NXJ2OV_cjs = require('./chunk-E4NXJ2OV.cjs');
5
- var chunkH2WIRLVA_cjs = require('./chunk-H2WIRLVA.cjs');
3
+ var _67HCA6YT_cjs = require('./67HCA6YT.cjs');
4
+ var VO33UEHJ_cjs = require('./VO33UEHJ.cjs');
5
+ var E2YEEYRA_cjs = require('./E2YEEYRA.cjs');
6
+ var LXFPNTIJ_cjs = require('./LXFPNTIJ.cjs');
7
+ require('./YJF4D23A.cjs');
6
8
 
7
9
 
8
10
 
11
+ Object.defineProperty(exports, "DependencyStore", {
12
+ enumerable: true,
13
+ get: function () { return _67HCA6YT_cjs.DependencyStore; }
14
+ });
15
+ Object.defineProperty(exports, "RegistrarBuilder", {
16
+ enumerable: true,
17
+ get: function () { return VO33UEHJ_cjs.RegistrarBuilder; }
18
+ });
19
+ Object.defineProperty(exports, "extractSchemaFromFactory", {
20
+ enumerable: true,
21
+ get: function () { return E2YEEYRA_cjs.extractSchemaFromFactory; }
22
+ });
9
23
  Object.defineProperty(exports, "FactoryDefinition", {
10
24
  enumerable: true,
11
- get: function () { return chunkE4NXJ2OV_cjs.FactoryDefinition; }
25
+ get: function () { return LXFPNTIJ_cjs.FactoryDefinition; }
12
26
  });
13
27
  Object.defineProperty(exports, "ObjectDefinition", {
14
28
  enumerable: true,
15
- get: function () { return chunkE4NXJ2OV_cjs.ObjectDefinition; }
29
+ get: function () { return LXFPNTIJ_cjs.ObjectDefinition; }
16
30
  });
17
- Object.defineProperty(exports, "RegistrarBuilder", {
31
+ Object.defineProperty(exports, "serializeDimensions", {
18
32
  enumerable: true,
19
- get: function () { return chunkH2WIRLVA_cjs.RegistrarBuilder; }
33
+ get: function () { return LXFPNTIJ_cjs.serializeDimensions; }
20
34
  });
21
35
  //# sourceMappingURL=index.cjs.map
22
36
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.ts CHANGED
@@ -1,3 +1,5 @@
1
1
  export * from './definitions';
2
+ export * from './lzyringe';
2
3
  export * from './registrarBuilder';
4
+ export * from './utils';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
- import 'reflect-metadata';
2
- export { FactoryDefinition, ObjectDefinition } from './chunk-ALVDFXDA.js';
3
- export { RegistrarBuilder } from './chunk-3HJUWVUI.js';
1
+ export { DependencyStore } from './O4SGLGEI.js';
2
+ export { RegistrarBuilder } from './S2FOVFOI.js';
3
+ export { extractSchemaFromFactory } from './MELXRRC4.js';
4
+ export { FactoryDefinition, ObjectDefinition, serializeDimensions } from './RWF76TF5.js';
5
+ import './VUOMXK5T.js';
4
6
  //# sourceMappingURL=index.js.map
5
7
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ var _67HCA6YT_cjs = require('./67HCA6YT.cjs');
4
+ require('./YJF4D23A.cjs');
5
+
6
+
7
+
8
+ Object.defineProperty(exports, "DependencyStore", {
9
+ enumerable: true,
10
+ get: function () { return _67HCA6YT_cjs.DependencyStore; }
11
+ });
12
+ //# sourceMappingURL=lzyringe.cjs.map
13
+ //# sourceMappingURL=lzyringe.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"lzyringe.cjs"}
@@ -0,0 +1,24 @@
1
+ export declare class DependencyStore {
2
+ private store;
3
+ private throwIfRegistered;
4
+ private throwIfUnregistered;
5
+ /** Registers a value that will be resolved literally by resolve()
6
+ * @throws if already registered
7
+ */
8
+ register(key: string, value: any): void;
9
+ /** Registers a factory function that will be called by resolve()
10
+ * @throws if already registered
11
+ */
12
+ registerFactory(key: string, factory: () => any): void;
13
+ /** Unregisters a key
14
+ * @throws if not registered
15
+ */
16
+ unregister(key: string): void;
17
+ /**
18
+ * Drops all registered values
19
+ */
20
+ invalidate(): void;
21
+ /** Resolves a key to a value */
22
+ resolve(key: string): any;
23
+ }
24
+ //# sourceMappingURL=lzyringe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lzyringe.d.ts","sourceRoot":"","sources":["../src/lzyringe.ts"],"names":[],"mappings":"AAUA,qBAAa,eAAe;IACxB,OAAO,CAAC,KAAK,CAA4C;IAEzD,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACI,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAKvC;;OAEG;IACI,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAKtD;;OAEG;IACI,UAAU,CAAC,GAAG,EAAE,MAAM;IAK7B;;OAEG;IACI,UAAU;IAIjB,gCAAgC;IACzB,OAAO,CAAC,GAAG,EAAE,MAAM;CAK7B"}
@@ -0,0 +1,4 @@
1
+ export { DependencyStore } from './O4SGLGEI.js';
2
+ import './VUOMXK5T.js';
3
+ //# sourceMappingURL=lzyringe.js.map
4
+ //# sourceMappingURL=lzyringe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"lzyringe.js"}
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- require('reflect-metadata');
4
- var chunkH2WIRLVA_cjs = require('./chunk-H2WIRLVA.cjs');
3
+ var VO33UEHJ_cjs = require('./VO33UEHJ.cjs');
4
+ require('./YJF4D23A.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "RegistrarBuilder", {
9
9
  enumerable: true,
10
- get: function () { return chunkH2WIRLVA_cjs.RegistrarBuilder; }
10
+ get: function () { return VO33UEHJ_cjs.RegistrarBuilder; }
11
11
  });
12
12
  //# sourceMappingURL=registrarBuilder.cjs.map
13
13
  //# sourceMappingURL=registrarBuilder.cjs.map
@@ -1,29 +1,61 @@
1
1
  import type { DependencyNode } from '@layerzerolabs/dependency-graph';
2
2
  import type { Registrar } from '@layerzerolabs/dfs';
3
3
  export type { Registrar };
4
+ type NodeClass = new (...args: any[]) => DependencyNode<any, any>;
5
+ type AbstractNodeClass = abstract new (...args: any[]) => DependencyNode<any, any>;
6
+ /**
7
+ * A builder class for a {@link Registrar}.
8
+ * Builds a registrar that switches on node class--i.e., enables defining
9
+ * specific registration behaviour for specific node classes.
10
+ * Intelligently handles inheritance, always using the most specific
11
+ * handler defined for any given class.
12
+ * The registrar built shall return an object that maps from a handler ID,
13
+ * to a map from node name to the return of each handler,
14
+ * e.g., { objectNodes: { myObjectNode: 'my handler return' }}.
15
+ * This can be used to extract a specific resolved value after resolving the tree,
16
+ * given that the handlers return the resolved nodes.
17
+ */
4
18
  export declare class RegistrarBuilder<_ReturnTypes> {
5
19
  protected defaultHandler: (node: DependencyNode<any, any>) => Promise<any>;
6
20
  constructor();
7
21
  protected classHandlers: {
8
- nodeClass: abstract new (...args: any[]) => DependencyNode<any, any>;
22
+ nodeClass: AbstractNodeClass;
9
23
  identifier: string;
10
24
  fn: (node: DependencyNode<any, any>) => Promise<any>;
11
25
  }[];
26
+ protected classAliases: {
27
+ fromNodeClass: AbstractNodeClass;
28
+ getToNode: (from: DependencyNode<any, any>) => DependencyNode<any, any>;
29
+ }[];
12
30
  /**
13
31
  * Add a function fn to be called on all nodes of class
14
32
  * @param nodeClass
15
33
  * @param identifier
16
34
  * @param fn
17
35
  */
18
- addClassHandler<Identifier extends string, NodeClass extends new (...args: any[]) => DependencyNode<any, any>, Function extends (node: InstanceType<NodeClass>) => any>(nodeClass: NodeClass, identifier: Identifier, fn: Function): RegistrarBuilder<_ReturnTypes & { [K in Identifier]: {
36
+ addClassHandler<Identifier extends string, _NodeClass extends NodeClass, Function extends (node: InstanceType<_NodeClass>) => any>(nodeClass: _NodeClass, identifier: Identifier, fn: Function): RegistrarBuilder<_ReturnTypes & { [K in Identifier]: {
19
37
  [nodeName: string]: Awaited<ReturnType<Function>>;
20
38
  }; }>;
39
+ /**
40
+ * Alias some class *from*, such that any node of that class in the tree will be
41
+ * treated as though it were some other node *to*. The *to* node is given as a
42
+ * function returning a class instance, so that its dependencies, name, etc can be fixed.
43
+ * The registrar will ignore the dependencies of the original node, and follow the alias's
44
+ * dependencies instead.
45
+ *
46
+ * Additionally, this method does not affect the typing of the registrar. The output type
47
+ * of the build() method will not reflect the alias.
48
+ *
49
+ * @param fromNodeClass alias instances of this class
50
+ * @param getToNode method that returns the *to* part of the alias
51
+ */
52
+ addClassAlias<FromNodeClass extends AbstractNodeClass>(fromNodeClass: FromNodeClass, getToNode: (fromNodeInstance: InstanceType<FromNodeClass>) => DependencyNode<any, any>): this;
21
53
  /**
22
54
  * Add a default function fn to be used on nodes whose types do not have handlers.
23
55
  * If this is not set, the default behaviour will be to throw
24
56
  * @param fn
25
57
  */
26
- addDefault(fn: (node: DependencyNode<any, any>) => Promise<any>): this;
58
+ addDefault(fn: (node: DependencyNode<any, any>) => any): this;
27
59
  build(): Registrar<_ReturnTypes>;
28
60
  }
29
61
  //# sourceMappingURL=registrarBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registrarBuilder.d.ts","sourceRoot":"","sources":["../src/registrarBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,CAAC;AAG1B,qBAAa,gBAAgB,CAAC,YAAY;IACtC,SAAS,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;;IAS3E,SAAS,CAAC,aAAa,EAAE;QACrB,SAAS,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrE,UAAU,EAAE,MAAM,CAAC;QACnB,EAAE,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KACxD,EAAE,CAAM;IAET;;;;;OAKG;IACI,eAAe,CAClB,UAAU,SAAS,MAAM,EACzB,SAAS,SAAS,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAClE,QAAQ,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,KAAK,GAAG,EACzD,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,sCAavC,CAAC;;;IAoCtB;;;;OAIG;IACI,UAAU,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC;IAK/D,KAAK,IAAI,SAAS,CAAC,YAAY,CAAC;CAqB1C"}
1
+ {"version":3,"file":"registrarBuilder.d.ts","sourceRoot":"","sources":["../src/registrarBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,SAAS,EAAE,CAAC;AAG1B,KAAK,SAAS,GAAG,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAClE,KAAK,iBAAiB,GAAG,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAEnF;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAgB,CAAC,YAAY;IACtC,SAAS,CAAC,cAAc,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;;IAS3E,SAAS,CAAC,aAAa,EAAE;QACrB,SAAS,EAAE,iBAAiB,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC;QACnB,EAAE,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;KACxD,EAAE,CAAM;IAET,SAAS,CAAC,YAAY,EAAE;QACpB,aAAa,EAAE,iBAAiB,CAAC;QACjC,SAAS,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KAC3E,EAAE,CAAM;IAET;;;;;OAKG;IACI,eAAe,CAClB,UAAU,SAAS,MAAM,EACzB,UAAU,SAAS,SAAS,EAC5B,QAAQ,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,EAC1D,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,sCAmBxC,CAAC;;;IAoCtB;;;;;;;;;;;;OAYG;IACI,aAAa,CAAC,aAAa,SAAS,iBAAiB,EACxD,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC,aAAa,CAAC,KAAK,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC;IA6C1F;;;;OAIG;IACI,UAAU,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,GAAG;IAKtD,KAAK,IAAI,SAAS,CAAC,YAAY,CAAC;CA8B1C"}
@@ -1,4 +1,4 @@
1
- import 'reflect-metadata';
2
- export { RegistrarBuilder } from './chunk-3HJUWVUI.js';
1
+ export { RegistrarBuilder } from './S2FOVFOI.js';
2
+ import './VUOMXK5T.js';
3
3
  //# sourceMappingURL=registrarBuilder.js.map
4
4
  //# sourceMappingURL=registrarBuilder.js.map