@layerzerolabs/base-definitions 0.0.53 → 0.0.56

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.
@@ -11,44 +11,44 @@
11
11
  CJS Build start
12
12
  ESM Build start
13
13
  CJS dist/definitions.cjs 742.00 B
14
- CJS dist/index.cjs 1.27 KB
15
14
  CJS dist/lzyringe.cjs 302.00 B
16
- CJS dist/JKTGUQY4.cjs 1.70 KB
17
15
  CJS dist/registrarBuilder.cjs 320.00 B
16
+ CJS dist/index.cjs 1.27 KB
18
17
  CJS dist/utils.cjs 341.00 B
19
18
  CJS dist/EVDGRGJ5.cjs 4.11 KB
20
- CJS dist/VCM72QIW.cjs 812.00 B
21
- CJS dist/UC6WCE77.cjs 1.68 KB
19
+ CJS dist/JKTGUQY4.cjs 1.70 KB
20
+ CJS dist/VTYVOFLM.cjs 1.68 KB
22
21
  CJS dist/YJF4D23A.cjs 245.00 B
22
+ CJS dist/OIBEOODK.cjs 812.00 B
23
23
  CJS dist/definitions.cjs.map 76.00 B
24
+ CJS dist/registrarBuilder.cjs.map 81.00 B
24
25
  CJS dist/index.cjs.map 70.00 B
26
+ CJS dist/utils.cjs.map 70.00 B
25
27
  CJS dist/lzyringe.cjs.map 73.00 B
26
28
  CJS dist/JKTGUQY4.cjs.map 3.78 KB
27
- CJS dist/utils.cjs.map 70.00 B
28
- CJS dist/registrarBuilder.cjs.map 81.00 B
29
- CJS dist/EVDGRGJ5.cjs.map 11.41 KB
30
- CJS dist/UC6WCE77.cjs.map 13.87 KB
29
+ CJS dist/VTYVOFLM.cjs.map 14.00 KB
31
30
  CJS dist/YJF4D23A.cjs.map 73.00 B
32
- CJS dist/VCM72QIW.cjs.map 1.83 KB
33
- CJS ⚡️ Build success in 280ms
31
+ CJS dist/EVDGRGJ5.cjs.map 11.41 KB
32
+ CJS dist/OIBEOODK.cjs.map 1.83 KB
33
+ CJS ⚡️ Build success in 177ms
34
34
  ESM dist/definitions.js 216.00 B
35
35
  ESM dist/lzyringe.js 146.00 B
36
36
  ESM dist/index.js 361.00 B
37
37
  ESM dist/registrarBuilder.js 163.00 B
38
38
  ESM dist/JJBD65HU.js 1.65 KB
39
39
  ESM dist/utils.js 173.00 B
40
- ESM dist/YNW6AMHY.js 733.00 B
41
- ESM dist/GDTSXFKQ.js 1.47 KB
42
40
  ESM dist/6D5TVHOU.js 4.01 KB
43
41
  ESM dist/VUOMXK5T.js 222.00 B
44
- ESM dist/lzyringe.js.map 72.00 B
45
- ESM dist/JJBD65HU.js.map 3.78 KB
42
+ ESM dist/EAPC6542.js 733.00 B
43
+ ESM dist/NQBJGAQC.js 1.47 KB
44
+ ESM dist/definitions.js.map 75.00 B
46
45
  ESM dist/index.js.map 69.00 B
46
+ ESM dist/lzyringe.js.map 72.00 B
47
47
  ESM dist/registrarBuilder.js.map 80.00 B
48
+ ESM dist/JJBD65HU.js.map 3.78 KB
48
49
  ESM dist/utils.js.map 69.00 B
49
- ESM dist/YNW6AMHY.js.map 1.82 KB
50
- ESM dist/GDTSXFKQ.js.map 13.86 KB
51
- ESM dist/VUOMXK5T.js.map 72.00 B
50
+ ESM dist/EAPC6542.js.map 1.82 KB
52
51
  ESM dist/6D5TVHOU.js.map 11.40 KB
53
- ESM dist/definitions.js.map 75.00 B
54
- ESM ⚡️ Build success in 280ms
52
+ ESM dist/NQBJGAQC.js.map 13.99 KB
53
+ ESM dist/VUOMXK5T.js.map 72.00 B
54
+ ESM ⚡️ Build success in 178ms
@@ -7,11 +7,11 @@ Breaking changes might not follow SemVer, please pin Vitest's version when using
7
7
 
8
8
   RUN  v3.2.3 /home/runner/work/monorepo-internal/monorepo-internal/packages/framework/definitions/base-definitions
9
9
 
10
- ✓ test/registrarBuilder.test.ts (4 tests) 6ms
10
+ ✓ test/registrarBuilder.test.ts (4 tests) 8ms
11
11
 
12
12
   Test Files  1 passed (1)
13
13
   Tests  4 passed (4)
14
14
  Type Errors  no errors
15
-  Start at  00:14:25
16
-  Duration  484ms (transform 89ms, setup 0ms, collect 70ms, tests 6ms, environment 0ms, prepare 187ms)
15
+  Start at  19:42:15
16
+  Duration  685ms (transform 92ms, setup 0ms, collect 95ms, tests 8ms, environment 0ms, prepare 117ms)
17
17
 
@@ -1,4 +1,4 @@
1
- import { serializeDimensions } from './GDTSXFKQ.js';
1
+ import { serializeDimensions } from './NQBJGAQC.js';
2
2
  import { __name } from './VUOMXK5T.js';
3
3
 
4
4
  // src/utils.ts
@@ -11,5 +11,5 @@ var extractSchemaFromFactory = /* @__PURE__ */ __name((factory, dimension) => {
11
11
  }, "extractSchemaFromFactory");
12
12
 
13
13
  export { extractSchemaFromFactory };
14
- //# sourceMappingURL=YNW6AMHY.js.map
15
- //# sourceMappingURL=YNW6AMHY.js.map
14
+ //# sourceMappingURL=EAPC6542.js.map
15
+ //# sourceMappingURL=EAPC6542.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts"],"names":["extractSchemaFromFactory","factory","dimension","schema","dimensionToSchemaMap","byDimension","Object","values","find","dim","serializeDimensions","base","shape","Error","name","JSON","stringify"],"mappings":";;;;AAOO,IAAMA,wBAAAA,mBAA2B,MAAA,CAAA,CACpCC,OAAAA,EACAC,SAAAA,KAAAA;AAEA,EAAA,MAAMC,MAAAA,GAAAA,CACDF,OAAAA,CAAQG,oBAAAA,CAAqBC,WAAAA,IAC1BC,MAAAA,CAAOC,OAAON,OAAAA,CAAQG,oBAAAA,CAAqBC,WAAW,CAAA,CAAoBG,IAAAA,CACtE,CAAC,CAACC,GAAAA,CAAAA,KAASC,mBAAAA,CAAoBD,GAAAA,CAAAA,KAASC,mBAAAA,CAAoBR,SAAAA,CAAAA,CAAAA,GAC5D,CAAA,CAAA,KACRD,OAAAA,CAAQG,oBAAAA,CAAqBO,IAAAA;AACjC,EAAA,IAAI,CAACR,QAAQS,KAAAA,EAAO;AAChB,IAAA,MAAM,IAAIC,KAAAA,CACN,CAAA,uCAAA,EAA0CZ,OAAAA,CAAQa,IAAI,YAAYC,IAAAA,CAAKC,SAAAA,CAAUd,SAAAA,CAAAA,CAAAA,CAAY,CAAA;AAErG,EAAA;AAEA,EAAA,OAAOC,MAAAA;AACX,CAAA,EAjBwC,0BAAA","file":"YNW6AMHY.js","sourcesContent":["import type z from 'zod/v4';\n\nimport type { AdvancedRecord } from '@layerzerolabs/typescript-utils';\n\nimport type { Factory } from './definitions';\nimport { type FactoryDefinition, serializeDimensions } from './definitions';\n\nexport const extractSchemaFromFactory = <Dim extends z.ZodObject>(\n factory: FactoryDefinition<any, Dim, any, any, any> | Factory<any, any, any, any>,\n dimension: z.infer<Dim>,\n): z.ZodObject => {\n const schema =\n (factory.dimensionToSchemaMap.byDimension &&\n Object.values(factory.dimensionToSchemaMap.byDimension as AdvancedRecord).find(\n ([dim]) => serializeDimensions(dim) === serializeDimensions(dimension),\n )?.[1]) ??\n factory.dimensionToSchemaMap.base;\n if (!schema?.shape) {\n throw new Error(\n `Couldn't resolve the schema of factory ${factory.name} for dim ${JSON.stringify(dimension)}`,\n );\n }\n\n return schema;\n};\n"]}
1
+ {"version":3,"sources":["../src/utils.ts"],"names":["extractSchemaFromFactory","factory","dimension","schema","dimensionToSchemaMap","byDimension","Object","values","find","dim","serializeDimensions","base","shape","Error","name","JSON","stringify"],"mappings":";;;;AAOO,IAAMA,wBAAAA,mBAA2B,MAAA,CAAA,CACpCC,OAAAA,EACAC,SAAAA,KAAAA;AAEA,EAAA,MAAMC,MAAAA,GAAAA,CACDF,OAAAA,CAAQG,oBAAAA,CAAqBC,WAAAA,IAC1BC,MAAAA,CAAOC,OAAON,OAAAA,CAAQG,oBAAAA,CAAqBC,WAAW,CAAA,CAAoBG,IAAAA,CACtE,CAAC,CAACC,GAAAA,CAAAA,KAASC,mBAAAA,CAAoBD,GAAAA,CAAAA,KAASC,mBAAAA,CAAoBR,SAAAA,CAAAA,CAAAA,GAC5D,CAAA,CAAA,KACRD,OAAAA,CAAQG,oBAAAA,CAAqBO,IAAAA;AACjC,EAAA,IAAI,CAACR,QAAQS,KAAAA,EAAO;AAChB,IAAA,MAAM,IAAIC,KAAAA,CACN,CAAA,uCAAA,EAA0CZ,OAAAA,CAAQa,IAAI,YAAYC,IAAAA,CAAKC,SAAAA,CAAUd,SAAAA,CAAAA,CAAAA,CAAY,CAAA;AAErG,EAAA;AAEA,EAAA,OAAOC,MAAAA;AACX,CAAA,EAjBwC,0BAAA","file":"EAPC6542.js","sourcesContent":["import type z from 'zod/v4';\n\nimport type { AdvancedRecord } from '@layerzerolabs/typescript-utils';\n\nimport type { Factory } from './definitions';\nimport { type FactoryDefinition, serializeDimensions } from './definitions';\n\nexport const extractSchemaFromFactory = <Dim extends z.ZodObject>(\n factory: FactoryDefinition<any, Dim, any, any, any> | Factory<any, any, any, any>,\n dimension: z.infer<Dim>,\n): z.ZodObject => {\n const schema =\n (factory.dimensionToSchemaMap.byDimension &&\n Object.values(factory.dimensionToSchemaMap.byDimension as AdvancedRecord).find(\n ([dim]) => serializeDimensions(dim) === serializeDimensions(dimension),\n )?.[1]) ??\n factory.dimensionToSchemaMap.base;\n if (!schema?.shape) {\n throw new Error(\n `Couldn't resolve the schema of factory ${factory.name} for dim ${JSON.stringify(dimension)}`,\n );\n }\n\n return schema;\n};\n"]}
@@ -44,5 +44,5 @@ var deserializeDimensions = /* @__PURE__ */ __name((serializedDim) => {
44
44
  }, "deserializeDimensions");
45
45
 
46
46
  export { FactoryDefinition, ObjectDefinition, deserializeDimensions, serializeDimensions };
47
- //# sourceMappingURL=GDTSXFKQ.js.map
48
- //# sourceMappingURL=GDTSXFKQ.js.map
47
+ //# sourceMappingURL=NQBJGAQC.js.map
48
+ //# sourceMappingURL=NQBJGAQC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/definitions.ts"],"names":["FactoryDefinition","DependencyNode","dimensions","specialization","dimensionToSchemaMap","getFactory","args","ObjectDefinition","schema","serializeDimensions","dim","Object","keys","length","entries","sort","map","dimName","dimVal","join","deserializeDimensions","serializedDim","fromEntries","split","pair","dimValParts"],"mappings":";;;AAkIO,IAAMA,iBAAAA,GAAN,cAMGC,cAAAA,CAAAA;EApIV;;;AAqIoBC,EAAAA,UAAAA;AACAC,EAAAA,cAAAA;AACAC,EAAAA,oBAAAA;AACAC,EAAAA,UAAAA;AAChB,EAAA,WAAA,CAAY,EACRH,UAAAA,EACAC,cAAAA,EACAC,sBACAC,UAAAA,EACA,GAAGC,MAAAA,EAMmE;AACtE,IAAA,KAAA,CAAMA,IAAAA,CAAAA;AACN,IAAA,IAAA,CAAKJ,UAAAA,GAAaA,UAAAA;AAClB,IAAA,IAAA,CAAKC,cAAAA,GAAiBA,cAAAA;AACtB,IAAA,IAAA,CAAKC,oBAAAA,GAAuBA,oBAAAA;AAC5B,IAAA,IAAA,CAAKC,UAAAA,GAAaA,UAAAA;AACtB,EAAA;AACJ;AAaO,IAAeE,gBAAAA,GAAf,cAIGN,cAAAA,CAAAA;EA5KV;;;AA6KoBO,EAAAA,MAAAA;AAEhB,EAAA,WAAA,CAAY,EACRA,MAAAA,EACA,GAAGF,IAAAA,EAAAA,EAGmE;AACtE,IAAA,KAAA,CAAMA,IAAAA,CAAAA;AACN,IAAA,IAAA,CAAKE,MAAAA,GAASA,MAAAA;AAClB,EAAA;AACJ;AA8GO,IAAMC,mBAAAA,mBAAsB,MAAA,CAAA,CAACC,GAAAA,GAAc,EAAC,KAAC;AAChD,EAAA,OAAOC,MAAAA,CAAOC,IAAAA,CAAKF,GAAAA,CAAAA,CAAKG,MAAAA,GAClBF,OAAOG,OAAAA,CAAQJ,GAAAA,CAAAA,CACVK,IAAAA,EAAI,CACJC,GAAAA,CAAI,CAAC,CAACC,OAAAA,EAASC,MAAAA,CAAAA,KAAY,CAAA,EAAGD,OAAAA,CAAAA,CAAAA,EAAWC,MAAAA,CAAAA,CAAQ,CAAA,CACjDC,IAAAA,CAAK,GAAA,CAAA,GACV,OAAA;AACV,CAAA,EAPmC,qBAAA;AAS5B,IAAMC,qBAAAA,2BAAyBC,aAAAA,KAAAA;AAClC,EAAA,IAAIA,kBAAkB,OAAA,EAAS;AAC3B,IAAA,OAAO,EAAC;AACZ,EAAA;AAEA,EAAA,OAAOV,MAAAA,CAAOW,YACVD,aAAAA,CAAcE,KAAAA,CAAM,GAAA,CAAA,CAAKP,GAAAA,CAAI,CAACQ,IAAAA,KAAAA;AAC1B,IAAA,MAAM,CAACP,OAAAA,EAAS,GAAGQ,WAAAA,CAAAA,GAAeD,IAAAA,CAAKD,MAAM,GAAA,CAAA;AAC7C,IAAA,OAAO;AAACN,MAAAA,OAAAA;AAASQ,MAAAA,WAAAA,CAAYN,KAAK,GAAA;;AACtC,EAAA,CAAA,CAAA,CAAA;AAER,CAAA,EAXqC,uBAAA","file":"NQBJGAQC.js","sourcesContent":["import type { z } from 'zod/v4';\n\nimport type { FunctionPointer } from '@layerzerolabs/common-utils';\nimport type { Dependencies } from '@layerzerolabs/dependency-graph';\nimport { DependencyNode } from '@layerzerolabs/dependency-graph';\nimport type {\n AdvancedRecord,\n AdvancedRecordLookup,\n Merge,\n MethodNameOf,\n RemoveNever,\n UnionToIntersection,\n} from '@layerzerolabs/typescript-utils';\nimport type { IsAny } from '@layerzerolabs/typescript-utils';\n\nexport type DimensionToSchemaMap<DimConstraint extends object = object> = {\n byDimension?: AdvancedRecord<DimConstraint, z.ZodType>;\n base: z.ZodType;\n};\n\nexport type FactorySpecialization<DMap extends DimensionToSchemaMap = DimensionToSchemaMap> = {\n spec: z.ZodObject<any>;\n exempt: readonly MethodNameOf<GetSupersetOfModelsFromSchema<DMap>>[];\n};\n\nexport type WithInjectedSpecialization<T, Specialization extends FactorySpecialization<any>> = [\n {},\n] extends [z.infer<Specialization['spec']>]\n ? T\n : {\n [K in keyof T]: K extends Specialization['exempt'][number]\n ? T[K]\n : T[K] extends (...args: infer A) => infer R\n ? (specialization: z.infer<Specialization['spec']>, ...args: A) => R\n : T[K];\n };\n\nexport type WithSpecializeMethod<WithInjection, WithoutInjection, S> = {} extends S\n ? WithoutInjection\n : WithInjection extends (...args: infer Args) => infer Ret\n ? (...args: Args) => Ret\n : WithInjection & {\n specialize: (specialization: S) => WithoutInjection;\n };\n\nexport type GetModelFromSchema<DMap extends DimensionToSchemaMap, Dim> =\n IsAny<Dim> extends true\n ? z.infer<DMap['base']>\n : AdvancedRecordLookup<DMap['byDimension'], Dim> extends never\n ? z.infer<DMap['base']>\n : Merge<z.infer<DMap['base']>, z.infer<AdvancedRecordLookup<DMap['byDimension'], Dim>>>;\n\nexport type GetSupersetOfModelsFromSchema<DMap extends DimensionToSchemaMap> = UnionToIntersection<\n {\n [Key in keyof DMap['byDimension']]: DMap['byDimension'][Key] extends [any, any]\n ? z.infer<DMap['byDimension'][Key][1]>\n : never;\n }[keyof DMap['byDimension']]\n> &\n z.infer<DMap['base']>;\n\ntype GetImplFunctionWithConditionalOptionalDim<Dim, Return> = {} extends Dim\n ? (dim?: Dim) => Return\n : (dim: Dim) => Return;\n\ntype GetImplOverloads<\n Dim extends z.ZodObject<any>,\n Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n> = UnionToIntersection<\n | {\n [I in keyof DMap['byDimension']]: DMap['byDimension'][I] extends readonly [infer K, any]\n ? {\n getImpl: GetImplFunctionWithConditionalOptionalDim<\n K,\n WithSpecializeMethod<\n WithInjectedSpecialization<GetModelFromSchema<DMap, K>, Specialization>,\n GetModelFromSchema<DMap, K>,\n z.infer<Specialization['spec']>\n >\n >;\n }\n : never;\n }[keyof DMap['byDimension']]\n | {\n getImpl: GetImplFunctionWithConditionalOptionalDim<\n z.infer<Dim>,\n WithSpecializeMethod<\n WithInjectedSpecialization<z.infer<DMap['base']>, Specialization>,\n z.infer<DMap['base']>,\n z.infer<Specialization['spec']>\n >\n >;\n }\n>;\n\nexport type Factory<\n _Dependencies extends Dependencies,\n Dim extends z.ZodObject<any>,\n Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n> = {\n name: string;\n implKeys: string[];\n dimensionToSchemaMap: DMap;\n} & GetImplOverloads<Dim, Specialization, DMap>;\n\nexport type GetFactory<\n _Dependencies extends Dependencies,\n Dim extends z.ZodObject<any>,\n Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n> = () =>\n | Factory<_Dependencies, Dim, Specialization, DMap>\n | Promise<Factory<_Dependencies, Dim, Specialization, DMap>>;\n\n/**\n * <!-- anchor:FactoryDefinition -->\n * Factory definitions are a type of dependency node that shall be resolved to a *factory*.\n * A factory is an object that provides a getImpl method which accepts some parameters `dim`,\n * and returns some object `getImplMetadata.getModel(dim)`.\n * That is, a factory definition is given by the set of parameters it uses to get its implementations,\n * and a function defining the schema it will return for each set of parameters.\n * @param name inherited from {@link DependencyNode}\n * @param dependencies inherited from {@link DependencyNode}\n * @param dimensions a Zod schema for the parameters this factory operates on.\n * @param dimensionToSchemaMap A map from dimension objects to the Zod schema for the implementation.\n * @param getFactory a method that should return an object with a `getImpl` method that returns\n * entities adhering to the schema for the corresponding `getModel` call\n */\nexport class FactoryDefinition<\n Name extends string,\n Dim extends z.ZodObject<any>,\n const Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n _Dependencies extends Dependencies,\n> extends DependencyNode<Name, _Dependencies> {\n public readonly dimensions: Dim;\n public readonly specialization: Specialization;\n public readonly dimensionToSchemaMap: DMap;\n public readonly getFactory: GetFactory<_Dependencies, Dim, Specialization, DMap>;\n constructor({\n dimensions,\n specialization,\n dimensionToSchemaMap,\n getFactory,\n ...args\n }: {\n dimensions: Dim;\n specialization: Specialization;\n dimensionToSchemaMap: DMap;\n getFactory: GetFactory<_Dependencies, Dim, Specialization, DMap>;\n } & ConstructorParameters<typeof DependencyNode<Name, _Dependencies>>[0]) {\n super(args);\n this.dimensions = dimensions;\n this.specialization = specialization;\n this.dimensionToSchemaMap = dimensionToSchemaMap;\n this.getFactory = getFactory;\n }\n}\n\n/**\n * <!-- anchor:ObjectDefinition -->\n * An object definition is a dependency node that refers to some entity\n * matching a given schema. That is, it may be resolved to any entity\n * that adheres to the {@link schema}.\n * The object definition is abstract, as it cannot be meaningfully resolved without\n * additional information. For an example of an object definition, see ReflexiveObjectDefinition or ContextDefinition\n * @param name inherited from {@link DependencyNode}\n * @param dependencies inherited from {@link DependencyNode}\n * @param schema a Zod schema defining the expected resolution for this definition\n */\nexport abstract class ObjectDefinition<\n Name extends string,\n Schema extends z.ZodSchema,\n _Dependencies extends Dependencies,\n> extends DependencyNode<Name, _Dependencies> {\n public readonly schema: Schema;\n\n constructor({\n schema,\n ...args\n }: {\n schema: Schema;\n } & ConstructorParameters<typeof DependencyNode<Name, _Dependencies>>[0]) {\n super(args);\n this.schema = schema;\n }\n}\n\nexport type Definition<Name extends string> =\n | FactoryDefinition<Name, any, any, any, any>\n | ObjectDefinition<Name, any, any>;\n\n/**\n * Infers the expected type of a definition once it has been resolved\n */\nexport type ResolvedDefinition<Definition extends DependencyNode<any, any>> =\n Definition extends ObjectDefinition<any, infer Schema, any>\n ? z.infer<Schema>\n : Definition extends FactoryDefinition<\n any,\n infer Dim,\n infer Specialization,\n infer DMap,\n any\n >\n ? Factory<Definition['dependencies'], Dim, Specialization, DMap>\n : Definition extends FactoryDefinition<any, any, any, any, any>\n ? Factory<\n Definition['dependencies'],\n Definition['dimensions'],\n Definition['specialization'],\n Definition['dimensionToSchemaMap']\n >\n : unknown;\n\n/**\n * Given a record from string to definition, maps each definition T to ResolvedDefinition<T>. Removes `definition` suffix from name\n */\nexport type ResolvedDefinitionMap<Deps extends Dependencies> = {\n [Key in keyof Deps as Key extends `${infer Name}Definition` ? Name : Key]: ResolvedDefinition<\n Deps[Key]\n >;\n};\n\n/**\n * For some factory definition F and some dimension D s.t. D ⊇ F.dimensions, infers the expected return type of\n * ResolvedDefinition<F>.getImpl(D)\n */\nexport type ResolvedFactoryImplementation<Definition extends DependencyNode<any, any>, Dim> =\n Definition extends FactoryDefinition<any, any, any, any, any>\n ? WithSpecializeMethod<\n WithInjectedSpecialization<\n GetModelFromSchema<Definition['dimensionToSchemaMap'], Dim>,\n Definition['specialization']\n >,\n GetModelFromSchema<Definition['dimensionToSchemaMap'], Dim>,\n z.infer<Definition['specialization']['spec']>\n >\n : never;\n\ntype RemoveDefinitionSuffix<Key extends string> = Key extends `${infer Name}Definition`\n ? Name\n : Key;\ntype ReplaceFactorySuffix<Key extends string> = Key extends `${infer Name}Factory`\n ? `${Name}Impl`\n : Key;\n\n/**\n * Given a record from string to definition and some dimension D, maps each definition T to ResolvedFactoryImplementation<T, D>\n * Removes Definition | ActivityFactory | Factory from the suffix of the key\n */\nexport type ResolvedFactoryImplementationMap<Deps extends Dependencies, Dim> = RemoveNever<{\n [Key in keyof Deps as Key extends string\n ? ReplaceFactorySuffix<RemoveDefinitionSuffix<Key>>\n : never]: ResolvedFactoryImplementation<Deps[Key], Dim>;\n}>;\n\ntype ActivityFactoryContext<\n _FactoryDefinition extends FactoryDefinition<any, any, any, any, any>,\n Dim,\n _PrivateSchemaExtension extends z.ZodObject = z.ZodObject<{}, z.core.$strip>,\n> = {\n getFunctionPointer: <\n MethodName extends MethodNameOf<\n ResolvedFactoryImplementation<_FactoryDefinition, Dim> &\n z.infer<_PrivateSchemaExtension>\n >,\n >(\n methodName: MethodName,\n ) => FunctionPointer<\n (ResolvedFactoryImplementation<_FactoryDefinition, Dim> &\n z.infer<_PrivateSchemaExtension>)[MethodName]\n >;\n};\n\n/**\n * The parameters that shall be received by a factory's implementation getter\n */\nexport type Context<\n _FactoryDefinition extends FactoryDefinition<any, any, any, any, any>,\n Dim,\n _PrivateSchemaExtension extends z.ZodObject = z.ZodObject<{}, z.core.$strip>,\n> = {\n name: _FactoryDefinition extends FactoryDefinition<infer Name, any, any, any, any>\n ? Name\n : never;\n dependencies: _FactoryDefinition extends FactoryDefinition<any, any, any, any, infer Deps>\n ? ResolvedDefinitionMap<Deps>\n : never;\n dim: Dim;\n impls: _FactoryDefinition extends FactoryDefinition<any, any, any, any, infer Deps>\n ? ResolvedFactoryImplementationMap<Deps, Dim>\n : never;\n self: ResolvedFactoryImplementation<_FactoryDefinition, Dim> & z.infer<_PrivateSchemaExtension>;\n} & ActivityFactoryContext<_FactoryDefinition, Dim, _PrivateSchemaExtension>;\n\nexport const serializeDimensions = (dim: object = {}) => {\n return Object.keys(dim).length\n ? Object.entries(dim)\n .sort()\n .map(([dimName, dimVal]) => `${dimName}_${dimVal}`)\n .join('&')\n : '_base';\n};\n\nexport const deserializeDimensions = (serializedDim: string) => {\n if (serializedDim === '_base') {\n return {};\n }\n\n return Object.fromEntries(\n serializedDim.split('&').map((pair) => {\n const [dimName, ...dimValParts] = pair.split('_');\n return [dimName, dimValParts.join('_')];\n }),\n );\n};\n"]}
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var UC6WCE77_cjs = require('./UC6WCE77.cjs');
3
+ var VTYVOFLM_cjs = require('./VTYVOFLM.cjs');
4
4
  var YJF4D23A_cjs = require('./YJF4D23A.cjs');
5
5
 
6
6
  // src/utils.ts
7
7
  var extractSchemaFromFactory = /* @__PURE__ */ YJF4D23A_cjs.__name((factory, dimension) => {
8
- const schema = (factory.dimensionToSchemaMap.byDimension && Object.values(factory.dimensionToSchemaMap.byDimension).find(([dim]) => UC6WCE77_cjs.serializeDimensions(dim) === UC6WCE77_cjs.serializeDimensions(dimension))?.[1]) ?? factory.dimensionToSchemaMap.base;
8
+ const schema = (factory.dimensionToSchemaMap.byDimension && Object.values(factory.dimensionToSchemaMap.byDimension).find(([dim]) => VTYVOFLM_cjs.serializeDimensions(dim) === VTYVOFLM_cjs.serializeDimensions(dimension))?.[1]) ?? factory.dimensionToSchemaMap.base;
9
9
  if (!schema?.shape) {
10
10
  throw new Error(`Couldn't resolve the schema of factory ${factory.name} for dim ${JSON.stringify(dimension)}`);
11
11
  }
@@ -13,5 +13,5 @@ var extractSchemaFromFactory = /* @__PURE__ */ YJF4D23A_cjs.__name((factory, dim
13
13
  }, "extractSchemaFromFactory");
14
14
 
15
15
  exports.extractSchemaFromFactory = extractSchemaFromFactory;
16
- //# sourceMappingURL=VCM72QIW.cjs.map
17
- //# sourceMappingURL=VCM72QIW.cjs.map
16
+ //# sourceMappingURL=OIBEOODK.cjs.map
17
+ //# sourceMappingURL=OIBEOODK.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts"],"names":["extractSchemaFromFactory","__name","factory","dimension","schema","dimensionToSchemaMap","byDimension","Object","values","find","dim","serializeDimensions","base","shape","Error","name","JSON","stringify"],"mappings":";;;;;;AAOO,IAAMA,wBAAAA,mBAA2BC,mBAAA,CAAA,CACpCC,OAAAA,EACAC,SAAAA,KAAAA;AAEA,EAAA,MAAMC,MAAAA,GAAAA,CACDF,OAAAA,CAAQG,oBAAAA,CAAqBC,WAAAA,IAC1BC,MAAAA,CAAOC,OAAON,OAAAA,CAAQG,oBAAAA,CAAqBC,WAAW,CAAA,CAAoBG,IAAAA,CACtE,CAAC,CAACC,GAAAA,CAAAA,KAASC,gCAAAA,CAAoBD,GAAAA,CAAAA,KAASC,gCAAAA,CAAoBR,SAAAA,CAAAA,CAAAA,GAC5D,CAAA,CAAA,KACRD,OAAAA,CAAQG,oBAAAA,CAAqBO,IAAAA;AACjC,EAAA,IAAI,CAACR,QAAQS,KAAAA,EAAO;AAChB,IAAA,MAAM,IAAIC,KAAAA,CACN,CAAA,uCAAA,EAA0CZ,OAAAA,CAAQa,IAAI,YAAYC,IAAAA,CAAKC,SAAAA,CAAUd,SAAAA,CAAAA,CAAAA,CAAY,CAAA;AAErG,EAAA;AAEA,EAAA,OAAOC,MAAAA;AACX,CAAA,EAjBwC,0BAAA","file":"VCM72QIW.cjs","sourcesContent":["import type z from 'zod/v4';\n\nimport type { AdvancedRecord } from '@layerzerolabs/typescript-utils';\n\nimport type { Factory } from './definitions';\nimport { type FactoryDefinition, serializeDimensions } from './definitions';\n\nexport const extractSchemaFromFactory = <Dim extends z.ZodObject>(\n factory: FactoryDefinition<any, Dim, any, any, any> | Factory<any, any, any, any>,\n dimension: z.infer<Dim>,\n): z.ZodObject => {\n const schema =\n (factory.dimensionToSchemaMap.byDimension &&\n Object.values(factory.dimensionToSchemaMap.byDimension as AdvancedRecord).find(\n ([dim]) => serializeDimensions(dim) === serializeDimensions(dimension),\n )?.[1]) ??\n factory.dimensionToSchemaMap.base;\n if (!schema?.shape) {\n throw new Error(\n `Couldn't resolve the schema of factory ${factory.name} for dim ${JSON.stringify(dimension)}`,\n );\n }\n\n return schema;\n};\n"]}
1
+ {"version":3,"sources":["../src/utils.ts"],"names":["extractSchemaFromFactory","__name","factory","dimension","schema","dimensionToSchemaMap","byDimension","Object","values","find","dim","serializeDimensions","base","shape","Error","name","JSON","stringify"],"mappings":";;;;;;AAOO,IAAMA,wBAAAA,mBAA2BC,mBAAA,CAAA,CACpCC,OAAAA,EACAC,SAAAA,KAAAA;AAEA,EAAA,MAAMC,MAAAA,GAAAA,CACDF,OAAAA,CAAQG,oBAAAA,CAAqBC,WAAAA,IAC1BC,MAAAA,CAAOC,OAAON,OAAAA,CAAQG,oBAAAA,CAAqBC,WAAW,CAAA,CAAoBG,IAAAA,CACtE,CAAC,CAACC,GAAAA,CAAAA,KAASC,gCAAAA,CAAoBD,GAAAA,CAAAA,KAASC,gCAAAA,CAAoBR,SAAAA,CAAAA,CAAAA,GAC5D,CAAA,CAAA,KACRD,OAAAA,CAAQG,oBAAAA,CAAqBO,IAAAA;AACjC,EAAA,IAAI,CAACR,QAAQS,KAAAA,EAAO;AAChB,IAAA,MAAM,IAAIC,KAAAA,CACN,CAAA,uCAAA,EAA0CZ,OAAAA,CAAQa,IAAI,YAAYC,IAAAA,CAAKC,SAAAA,CAAUd,SAAAA,CAAAA,CAAAA,CAAY,CAAA;AAErG,EAAA;AAEA,EAAA,OAAOC,MAAAA;AACX,CAAA,EAjBwC,0BAAA","file":"OIBEOODK.cjs","sourcesContent":["import type z from 'zod/v4';\n\nimport type { AdvancedRecord } from '@layerzerolabs/typescript-utils';\n\nimport type { Factory } from './definitions';\nimport { type FactoryDefinition, serializeDimensions } from './definitions';\n\nexport const extractSchemaFromFactory = <Dim extends z.ZodObject>(\n factory: FactoryDefinition<any, Dim, any, any, any> | Factory<any, any, any, any>,\n dimension: z.infer<Dim>,\n): z.ZodObject => {\n const schema =\n (factory.dimensionToSchemaMap.byDimension &&\n Object.values(factory.dimensionToSchemaMap.byDimension as AdvancedRecord).find(\n ([dim]) => serializeDimensions(dim) === serializeDimensions(dimension),\n )?.[1]) ??\n factory.dimensionToSchemaMap.base;\n if (!schema?.shape) {\n throw new Error(\n `Couldn't resolve the schema of factory ${factory.name} for dim ${JSON.stringify(dimension)}`,\n );\n }\n\n return schema;\n};\n"]}
@@ -49,5 +49,5 @@ exports.FactoryDefinition = FactoryDefinition;
49
49
  exports.ObjectDefinition = ObjectDefinition;
50
50
  exports.deserializeDimensions = deserializeDimensions;
51
51
  exports.serializeDimensions = serializeDimensions;
52
- //# sourceMappingURL=UC6WCE77.cjs.map
53
- //# sourceMappingURL=UC6WCE77.cjs.map
52
+ //# sourceMappingURL=VTYVOFLM.cjs.map
53
+ //# sourceMappingURL=VTYVOFLM.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/definitions.ts"],"names":["FactoryDefinition","DependencyNode","dimensions","specialization","dimensionToSchemaMap","getFactory","args","ObjectDefinition","schema","serializeDimensions","__name","dim","Object","keys","length","entries","sort","map","dimName","dimVal","join","deserializeDimensions","serializedDim","fromEntries","split","pair","dimValParts"],"mappings":";;;;;AAkIO,IAAMA,iBAAAA,GAAN,cAMGC,8BAAAA,CAAAA;EApIV;;;AAqIoBC,EAAAA,UAAAA;AACAC,EAAAA,cAAAA;AACAC,EAAAA,oBAAAA;AACAC,EAAAA,UAAAA;AAChB,EAAA,WAAA,CAAY,EACRH,UAAAA,EACAC,cAAAA,EACAC,sBACAC,UAAAA,EACA,GAAGC,MAAAA,EAMmE;AACtE,IAAA,KAAA,CAAMA,IAAAA,CAAAA;AACN,IAAA,IAAA,CAAKJ,UAAAA,GAAaA,UAAAA;AAClB,IAAA,IAAA,CAAKC,cAAAA,GAAiBA,cAAAA;AACtB,IAAA,IAAA,CAAKC,oBAAAA,GAAuBA,oBAAAA;AAC5B,IAAA,IAAA,CAAKC,UAAAA,GAAaA,UAAAA;AACtB,EAAA;AACJ;AAaO,IAAeE,gBAAAA,GAAf,cAIGN,8BAAAA,CAAAA;EA5KV;;;AA6KoBO,EAAAA,MAAAA;AAEhB,EAAA,WAAA,CAAY,EACRA,MAAAA,EACA,GAAGF,IAAAA,EAAAA,EAGmE;AACtE,IAAA,KAAA,CAAMA,IAAAA,CAAAA;AACN,IAAA,IAAA,CAAKE,MAAAA,GAASA,MAAAA;AAClB,EAAA;AACJ;AA8GO,IAAMC,mBAAAA,mBAAsBC,mBAAA,CAAA,CAACC,GAAAA,GAAc,EAAC,KAAC;AAChD,EAAA,OAAOC,MAAAA,CAAOC,IAAAA,CAAKF,GAAAA,CAAAA,CAAKG,MAAAA,GAClBF,OAAOG,OAAAA,CAAQJ,GAAAA,CAAAA,CACVK,IAAAA,EAAI,CACJC,GAAAA,CAAI,CAAC,CAACC,OAAAA,EAASC,MAAAA,CAAAA,KAAY,CAAA,EAAGD,OAAAA,CAAAA,CAAAA,EAAWC,MAAAA,CAAAA,CAAQ,CAAA,CACjDC,IAAAA,CAAK,GAAA,CAAA,GACV,OAAA;AACV,CAAA,EAPmC,qBAAA;AAS5B,IAAMC,qBAAAA,wCAAyBC,aAAAA,KAAAA;AAClC,EAAA,IAAIA,kBAAkB,OAAA,EAAS;AAC3B,IAAA,OAAO,EAAC;AACZ,EAAA;AAEA,EAAA,OAAOV,MAAAA,CAAOW,YACVD,aAAAA,CAAcE,KAAAA,CAAM,GAAA,CAAA,CAAKP,GAAAA,CAAI,CAACQ,IAAAA,KAAAA;AAC1B,IAAA,MAAM,CAACP,OAAAA,EAAS,GAAGQ,WAAAA,CAAAA,GAAeD,IAAAA,CAAKD,MAAM,GAAA,CAAA;AAC7C,IAAA,OAAO;AAACN,MAAAA,OAAAA;AAASQ,MAAAA,WAAAA,CAAYN,KAAK,GAAA;;AACtC,EAAA,CAAA,CAAA,CAAA;AAER,CAAA,EAXqC,uBAAA","file":"VTYVOFLM.cjs","sourcesContent":["import type { z } from 'zod/v4';\n\nimport type { FunctionPointer } from '@layerzerolabs/common-utils';\nimport type { Dependencies } from '@layerzerolabs/dependency-graph';\nimport { DependencyNode } from '@layerzerolabs/dependency-graph';\nimport type {\n AdvancedRecord,\n AdvancedRecordLookup,\n Merge,\n MethodNameOf,\n RemoveNever,\n UnionToIntersection,\n} from '@layerzerolabs/typescript-utils';\nimport type { IsAny } from '@layerzerolabs/typescript-utils';\n\nexport type DimensionToSchemaMap<DimConstraint extends object = object> = {\n byDimension?: AdvancedRecord<DimConstraint, z.ZodType>;\n base: z.ZodType;\n};\n\nexport type FactorySpecialization<DMap extends DimensionToSchemaMap = DimensionToSchemaMap> = {\n spec: z.ZodObject<any>;\n exempt: readonly MethodNameOf<GetSupersetOfModelsFromSchema<DMap>>[];\n};\n\nexport type WithInjectedSpecialization<T, Specialization extends FactorySpecialization<any>> = [\n {},\n] extends [z.infer<Specialization['spec']>]\n ? T\n : {\n [K in keyof T]: K extends Specialization['exempt'][number]\n ? T[K]\n : T[K] extends (...args: infer A) => infer R\n ? (specialization: z.infer<Specialization['spec']>, ...args: A) => R\n : T[K];\n };\n\nexport type WithSpecializeMethod<WithInjection, WithoutInjection, S> = {} extends S\n ? WithoutInjection\n : WithInjection extends (...args: infer Args) => infer Ret\n ? (...args: Args) => Ret\n : WithInjection & {\n specialize: (specialization: S) => WithoutInjection;\n };\n\nexport type GetModelFromSchema<DMap extends DimensionToSchemaMap, Dim> =\n IsAny<Dim> extends true\n ? z.infer<DMap['base']>\n : AdvancedRecordLookup<DMap['byDimension'], Dim> extends never\n ? z.infer<DMap['base']>\n : Merge<z.infer<DMap['base']>, z.infer<AdvancedRecordLookup<DMap['byDimension'], Dim>>>;\n\nexport type GetSupersetOfModelsFromSchema<DMap extends DimensionToSchemaMap> = UnionToIntersection<\n {\n [Key in keyof DMap['byDimension']]: DMap['byDimension'][Key] extends [any, any]\n ? z.infer<DMap['byDimension'][Key][1]>\n : never;\n }[keyof DMap['byDimension']]\n> &\n z.infer<DMap['base']>;\n\ntype GetImplFunctionWithConditionalOptionalDim<Dim, Return> = {} extends Dim\n ? (dim?: Dim) => Return\n : (dim: Dim) => Return;\n\ntype GetImplOverloads<\n Dim extends z.ZodObject<any>,\n Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n> = UnionToIntersection<\n | {\n [I in keyof DMap['byDimension']]: DMap['byDimension'][I] extends readonly [infer K, any]\n ? {\n getImpl: GetImplFunctionWithConditionalOptionalDim<\n K,\n WithSpecializeMethod<\n WithInjectedSpecialization<GetModelFromSchema<DMap, K>, Specialization>,\n GetModelFromSchema<DMap, K>,\n z.infer<Specialization['spec']>\n >\n >;\n }\n : never;\n }[keyof DMap['byDimension']]\n | {\n getImpl: GetImplFunctionWithConditionalOptionalDim<\n z.infer<Dim>,\n WithSpecializeMethod<\n WithInjectedSpecialization<z.infer<DMap['base']>, Specialization>,\n z.infer<DMap['base']>,\n z.infer<Specialization['spec']>\n >\n >;\n }\n>;\n\nexport type Factory<\n _Dependencies extends Dependencies,\n Dim extends z.ZodObject<any>,\n Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n> = {\n name: string;\n implKeys: string[];\n dimensionToSchemaMap: DMap;\n} & GetImplOverloads<Dim, Specialization, DMap>;\n\nexport type GetFactory<\n _Dependencies extends Dependencies,\n Dim extends z.ZodObject<any>,\n Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n> = () =>\n | Factory<_Dependencies, Dim, Specialization, DMap>\n | Promise<Factory<_Dependencies, Dim, Specialization, DMap>>;\n\n/**\n * <!-- anchor:FactoryDefinition -->\n * Factory definitions are a type of dependency node that shall be resolved to a *factory*.\n * A factory is an object that provides a getImpl method which accepts some parameters `dim`,\n * and returns some object `getImplMetadata.getModel(dim)`.\n * That is, a factory definition is given by the set of parameters it uses to get its implementations,\n * and a function defining the schema it will return for each set of parameters.\n * @param name inherited from {@link DependencyNode}\n * @param dependencies inherited from {@link DependencyNode}\n * @param dimensions a Zod schema for the parameters this factory operates on.\n * @param dimensionToSchemaMap A map from dimension objects to the Zod schema for the implementation.\n * @param getFactory a method that should return an object with a `getImpl` method that returns\n * entities adhering to the schema for the corresponding `getModel` call\n */\nexport class FactoryDefinition<\n Name extends string,\n Dim extends z.ZodObject<any>,\n const Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n _Dependencies extends Dependencies,\n> extends DependencyNode<Name, _Dependencies> {\n public readonly dimensions: Dim;\n public readonly specialization: Specialization;\n public readonly dimensionToSchemaMap: DMap;\n public readonly getFactory: GetFactory<_Dependencies, Dim, Specialization, DMap>;\n constructor({\n dimensions,\n specialization,\n dimensionToSchemaMap,\n getFactory,\n ...args\n }: {\n dimensions: Dim;\n specialization: Specialization;\n dimensionToSchemaMap: DMap;\n getFactory: GetFactory<_Dependencies, Dim, Specialization, DMap>;\n } & ConstructorParameters<typeof DependencyNode<Name, _Dependencies>>[0]) {\n super(args);\n this.dimensions = dimensions;\n this.specialization = specialization;\n this.dimensionToSchemaMap = dimensionToSchemaMap;\n this.getFactory = getFactory;\n }\n}\n\n/**\n * <!-- anchor:ObjectDefinition -->\n * An object definition is a dependency node that refers to some entity\n * matching a given schema. That is, it may be resolved to any entity\n * that adheres to the {@link schema}.\n * The object definition is abstract, as it cannot be meaningfully resolved without\n * additional information. For an example of an object definition, see ReflexiveObjectDefinition or ContextDefinition\n * @param name inherited from {@link DependencyNode}\n * @param dependencies inherited from {@link DependencyNode}\n * @param schema a Zod schema defining the expected resolution for this definition\n */\nexport abstract class ObjectDefinition<\n Name extends string,\n Schema extends z.ZodSchema,\n _Dependencies extends Dependencies,\n> extends DependencyNode<Name, _Dependencies> {\n public readonly schema: Schema;\n\n constructor({\n schema,\n ...args\n }: {\n schema: Schema;\n } & ConstructorParameters<typeof DependencyNode<Name, _Dependencies>>[0]) {\n super(args);\n this.schema = schema;\n }\n}\n\nexport type Definition<Name extends string> =\n | FactoryDefinition<Name, any, any, any, any>\n | ObjectDefinition<Name, any, any>;\n\n/**\n * Infers the expected type of a definition once it has been resolved\n */\nexport type ResolvedDefinition<Definition extends DependencyNode<any, any>> =\n Definition extends ObjectDefinition<any, infer Schema, any>\n ? z.infer<Schema>\n : Definition extends FactoryDefinition<\n any,\n infer Dim,\n infer Specialization,\n infer DMap,\n any\n >\n ? Factory<Definition['dependencies'], Dim, Specialization, DMap>\n : Definition extends FactoryDefinition<any, any, any, any, any>\n ? Factory<\n Definition['dependencies'],\n Definition['dimensions'],\n Definition['specialization'],\n Definition['dimensionToSchemaMap']\n >\n : unknown;\n\n/**\n * Given a record from string to definition, maps each definition T to ResolvedDefinition<T>. Removes `definition` suffix from name\n */\nexport type ResolvedDefinitionMap<Deps extends Dependencies> = {\n [Key in keyof Deps as Key extends `${infer Name}Definition` ? Name : Key]: ResolvedDefinition<\n Deps[Key]\n >;\n};\n\n/**\n * For some factory definition F and some dimension D s.t. D ⊇ F.dimensions, infers the expected return type of\n * ResolvedDefinition<F>.getImpl(D)\n */\nexport type ResolvedFactoryImplementation<Definition extends DependencyNode<any, any>, Dim> =\n Definition extends FactoryDefinition<any, any, any, any, any>\n ? WithSpecializeMethod<\n WithInjectedSpecialization<\n GetModelFromSchema<Definition['dimensionToSchemaMap'], Dim>,\n Definition['specialization']\n >,\n GetModelFromSchema<Definition['dimensionToSchemaMap'], Dim>,\n z.infer<Definition['specialization']['spec']>\n >\n : never;\n\ntype RemoveDefinitionSuffix<Key extends string> = Key extends `${infer Name}Definition`\n ? Name\n : Key;\ntype ReplaceFactorySuffix<Key extends string> = Key extends `${infer Name}Factory`\n ? `${Name}Impl`\n : Key;\n\n/**\n * Given a record from string to definition and some dimension D, maps each definition T to ResolvedFactoryImplementation<T, D>\n * Removes Definition | ActivityFactory | Factory from the suffix of the key\n */\nexport type ResolvedFactoryImplementationMap<Deps extends Dependencies, Dim> = RemoveNever<{\n [Key in keyof Deps as Key extends string\n ? ReplaceFactorySuffix<RemoveDefinitionSuffix<Key>>\n : never]: ResolvedFactoryImplementation<Deps[Key], Dim>;\n}>;\n\ntype ActivityFactoryContext<\n _FactoryDefinition extends FactoryDefinition<any, any, any, any, any>,\n Dim,\n _PrivateSchemaExtension extends z.ZodObject = z.ZodObject<{}, z.core.$strip>,\n> = {\n getFunctionPointer: <\n MethodName extends MethodNameOf<\n ResolvedFactoryImplementation<_FactoryDefinition, Dim> &\n z.infer<_PrivateSchemaExtension>\n >,\n >(\n methodName: MethodName,\n ) => FunctionPointer<\n (ResolvedFactoryImplementation<_FactoryDefinition, Dim> &\n z.infer<_PrivateSchemaExtension>)[MethodName]\n >;\n};\n\n/**\n * The parameters that shall be received by a factory's implementation getter\n */\nexport type Context<\n _FactoryDefinition extends FactoryDefinition<any, any, any, any, any>,\n Dim,\n _PrivateSchemaExtension extends z.ZodObject = z.ZodObject<{}, z.core.$strip>,\n> = {\n name: _FactoryDefinition extends FactoryDefinition<infer Name, any, any, any, any>\n ? Name\n : never;\n dependencies: _FactoryDefinition extends FactoryDefinition<any, any, any, any, infer Deps>\n ? ResolvedDefinitionMap<Deps>\n : never;\n dim: Dim;\n impls: _FactoryDefinition extends FactoryDefinition<any, any, any, any, infer Deps>\n ? ResolvedFactoryImplementationMap<Deps, Dim>\n : never;\n self: ResolvedFactoryImplementation<_FactoryDefinition, Dim> & z.infer<_PrivateSchemaExtension>;\n} & ActivityFactoryContext<_FactoryDefinition, Dim, _PrivateSchemaExtension>;\n\nexport const serializeDimensions = (dim: object = {}) => {\n return Object.keys(dim).length\n ? Object.entries(dim)\n .sort()\n .map(([dimName, dimVal]) => `${dimName}_${dimVal}`)\n .join('&')\n : '_base';\n};\n\nexport const deserializeDimensions = (serializedDim: string) => {\n if (serializedDim === '_base') {\n return {};\n }\n\n return Object.fromEntries(\n serializedDim.split('&').map((pair) => {\n const [dimName, ...dimValParts] = pair.split('_');\n return [dimName, dimValParts.join('_')];\n }),\n );\n};\n"]}
@@ -1,25 +1,25 @@
1
1
  'use strict';
2
2
 
3
- var UC6WCE77_cjs = require('./UC6WCE77.cjs');
3
+ var VTYVOFLM_cjs = require('./VTYVOFLM.cjs');
4
4
  require('./YJF4D23A.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "FactoryDefinition", {
9
9
  enumerable: true,
10
- get: function () { return UC6WCE77_cjs.FactoryDefinition; }
10
+ get: function () { return VTYVOFLM_cjs.FactoryDefinition; }
11
11
  });
12
12
  Object.defineProperty(exports, "ObjectDefinition", {
13
13
  enumerable: true,
14
- get: function () { return UC6WCE77_cjs.ObjectDefinition; }
14
+ get: function () { return VTYVOFLM_cjs.ObjectDefinition; }
15
15
  });
16
16
  Object.defineProperty(exports, "deserializeDimensions", {
17
17
  enumerable: true,
18
- get: function () { return UC6WCE77_cjs.deserializeDimensions; }
18
+ get: function () { return VTYVOFLM_cjs.deserializeDimensions; }
19
19
  });
20
20
  Object.defineProperty(exports, "serializeDimensions", {
21
21
  enumerable: true,
22
- get: function () { return UC6WCE77_cjs.serializeDimensions; }
22
+ get: function () { return VTYVOFLM_cjs.serializeDimensions; }
23
23
  });
24
24
  //# sourceMappingURL=definitions.cjs.map
25
25
  //# sourceMappingURL=definitions.cjs.map
@@ -3,6 +3,7 @@ import type { FunctionPointer } from '@layerzerolabs/common-utils';
3
3
  import type { Dependencies } from '@layerzerolabs/dependency-graph';
4
4
  import { DependencyNode } from '@layerzerolabs/dependency-graph';
5
5
  import type { AdvancedRecord, AdvancedRecordLookup, Merge, MethodNameOf, RemoveNever, UnionToIntersection } from '@layerzerolabs/typescript-utils';
6
+ import type { IsAny } from '@layerzerolabs/typescript-utils';
6
7
  export type DimensionToSchemaMap<DimConstraint extends object = object> = {
7
8
  byDimension?: AdvancedRecord<DimConstraint, z.ZodType>;
8
9
  base: z.ZodType;
@@ -19,7 +20,7 @@ export type WithInjectedSpecialization<T, Specialization extends FactorySpeciali
19
20
  export type WithSpecializeMethod<WithInjection, WithoutInjection, S> = {} extends S ? WithoutInjection : WithInjection extends (...args: infer Args) => infer Ret ? (...args: Args) => Ret : WithInjection & {
20
21
  specialize: (specialization: S) => WithoutInjection;
21
22
  };
22
- 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>>>;
23
+ export type GetModelFromSchema<DMap extends DimensionToSchemaMap, Dim> = IsAny<Dim> extends true ? z.infer<DMap['base']> : AdvancedRecordLookup<DMap['byDimension'], Dim> extends never ? z.infer<DMap['base']> : Merge<z.infer<DMap['base']>, z.infer<AdvancedRecordLookup<DMap['byDimension'], Dim>>>;
23
24
  export type GetSupersetOfModelsFromSchema<DMap extends DimensionToSchemaMap> = UnionToIntersection<{
24
25
  [Key in keyof DMap['byDimension']]: DMap['byDimension'][Key] extends [any, any] ? z.infer<DMap['byDimension'][Key][1]> : never;
25
26
  }[keyof DMap['byDimension']]> & z.infer<DMap['base']>;
@@ -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
- export { FactoryDefinition, ObjectDefinition, deserializeDimensions, serializeDimensions } from './GDTSXFKQ.js';
1
+ export { FactoryDefinition, ObjectDefinition, deserializeDimensions, serializeDimensions } from './NQBJGAQC.js';
2
2
  import './VUOMXK5T.js';
3
3
  //# sourceMappingURL=definitions.js.map
4
4
  //# sourceMappingURL=definitions.js.map
package/dist/index.cjs CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  var JKTGUQY4_cjs = require('./JKTGUQY4.cjs');
4
4
  var EVDGRGJ5_cjs = require('./EVDGRGJ5.cjs');
5
- var VCM72QIW_cjs = require('./VCM72QIW.cjs');
6
- var UC6WCE77_cjs = require('./UC6WCE77.cjs');
5
+ var OIBEOODK_cjs = require('./OIBEOODK.cjs');
6
+ var VTYVOFLM_cjs = require('./VTYVOFLM.cjs');
7
7
  require('./YJF4D23A.cjs');
8
8
 
9
9
 
@@ -18,23 +18,23 @@ Object.defineProperty(exports, "RegistrarBuilder", {
18
18
  });
19
19
  Object.defineProperty(exports, "extractSchemaFromFactory", {
20
20
  enumerable: true,
21
- get: function () { return VCM72QIW_cjs.extractSchemaFromFactory; }
21
+ get: function () { return OIBEOODK_cjs.extractSchemaFromFactory; }
22
22
  });
23
23
  Object.defineProperty(exports, "FactoryDefinition", {
24
24
  enumerable: true,
25
- get: function () { return UC6WCE77_cjs.FactoryDefinition; }
25
+ get: function () { return VTYVOFLM_cjs.FactoryDefinition; }
26
26
  });
27
27
  Object.defineProperty(exports, "ObjectDefinition", {
28
28
  enumerable: true,
29
- get: function () { return UC6WCE77_cjs.ObjectDefinition; }
29
+ get: function () { return VTYVOFLM_cjs.ObjectDefinition; }
30
30
  });
31
31
  Object.defineProperty(exports, "deserializeDimensions", {
32
32
  enumerable: true,
33
- get: function () { return UC6WCE77_cjs.deserializeDimensions; }
33
+ get: function () { return VTYVOFLM_cjs.deserializeDimensions; }
34
34
  });
35
35
  Object.defineProperty(exports, "serializeDimensions", {
36
36
  enumerable: true,
37
- get: function () { return UC6WCE77_cjs.serializeDimensions; }
37
+ get: function () { return VTYVOFLM_cjs.serializeDimensions; }
38
38
  });
39
39
  //# sourceMappingURL=index.cjs.map
40
40
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  export { DependencyStore } from './JJBD65HU.js';
2
2
  export { RegistrarBuilder } from './6D5TVHOU.js';
3
- export { extractSchemaFromFactory } from './YNW6AMHY.js';
4
- export { FactoryDefinition, ObjectDefinition, deserializeDimensions, serializeDimensions } from './GDTSXFKQ.js';
3
+ export { extractSchemaFromFactory } from './EAPC6542.js';
4
+ export { FactoryDefinition, ObjectDefinition, deserializeDimensions, serializeDimensions } from './NQBJGAQC.js';
5
5
  import './VUOMXK5T.js';
6
6
  //# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map
package/dist/utils.cjs CHANGED
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var VCM72QIW_cjs = require('./VCM72QIW.cjs');
4
- require('./UC6WCE77.cjs');
3
+ var OIBEOODK_cjs = require('./OIBEOODK.cjs');
4
+ require('./VTYVOFLM.cjs');
5
5
  require('./YJF4D23A.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "extractSchemaFromFactory", {
10
10
  enumerable: true,
11
- get: function () { return VCM72QIW_cjs.extractSchemaFromFactory; }
11
+ get: function () { return OIBEOODK_cjs.extractSchemaFromFactory; }
12
12
  });
13
13
  //# sourceMappingURL=utils.cjs.map
14
14
  //# sourceMappingURL=utils.cjs.map
package/dist/utils.js CHANGED
@@ -1,5 +1,5 @@
1
- export { extractSchemaFromFactory } from './YNW6AMHY.js';
2
- import './GDTSXFKQ.js';
1
+ export { extractSchemaFromFactory } from './EAPC6542.js';
2
+ import './NQBJGAQC.js';
3
3
  import './VUOMXK5T.js';
4
4
  //# sourceMappingURL=utils.js.map
5
5
  //# sourceMappingURL=utils.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/base-definitions",
3
- "version": "0.0.53",
3
+ "version": "0.0.56",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -15,16 +15,16 @@
15
15
  "types": "./dist/index.d.ts",
16
16
  "dependencies": {
17
17
  "zod": "^3.23.8",
18
- "@layerzerolabs/common-utils": "0.0.53",
19
- "@layerzerolabs/dependency-graph": "0.0.53",
20
- "@layerzerolabs/dfs": "0.0.53",
21
- "@layerzerolabs/typescript-utils": "0.0.53"
18
+ "@layerzerolabs/common-utils": "0.0.56",
19
+ "@layerzerolabs/dependency-graph": "0.0.56",
20
+ "@layerzerolabs/typescript-utils": "0.0.56",
21
+ "@layerzerolabs/dfs": "0.0.56"
22
22
  },
23
23
  "devDependencies": {
24
24
  "tsup": "^8.4.0",
25
25
  "vitest": "^3.2.3",
26
- "@layerzerolabs/tsup-configuration": "0.0.53",
27
- "@layerzerolabs/typescript-configuration": "0.0.53"
26
+ "@layerzerolabs/tsup-configuration": "0.0.56",
27
+ "@layerzerolabs/typescript-configuration": "0.0.56"
28
28
  },
29
29
  "publishConfig": {
30
30
  "access": "restricted",
@@ -11,6 +11,7 @@ import type {
11
11
  RemoveNever,
12
12
  UnionToIntersection,
13
13
  } from '@layerzerolabs/typescript-utils';
14
+ import type { IsAny } from '@layerzerolabs/typescript-utils';
14
15
 
15
16
  export type DimensionToSchemaMap<DimConstraint extends object = object> = {
16
17
  byDimension?: AdvancedRecord<DimConstraint, z.ZodType>;
@@ -43,9 +44,11 @@ export type WithSpecializeMethod<WithInjection, WithoutInjection, S> = {} extend
43
44
  };
44
45
 
45
46
  export type GetModelFromSchema<DMap extends DimensionToSchemaMap, Dim> =
46
- AdvancedRecordLookup<DMap['byDimension'], Dim> extends never
47
+ IsAny<Dim> extends true
47
48
  ? z.infer<DMap['base']>
48
- : Merge<z.infer<DMap['base']>, z.infer<AdvancedRecordLookup<DMap['byDimension'], Dim>>>;
49
+ : AdvancedRecordLookup<DMap['byDimension'], Dim> extends never
50
+ ? z.infer<DMap['base']>
51
+ : Merge<z.infer<DMap['base']>, z.infer<AdvancedRecordLookup<DMap['byDimension'], Dim>>>;
49
52
 
50
53
  export type GetSupersetOfModelsFromSchema<DMap extends DimensionToSchemaMap> = UnionToIntersection<
51
54
  {
@@ -1,8 +0,0 @@
1
-
2
- > @layerzerolabs/base-definitions@0.0.2 checkdeps /home/runner/work/monorepo-internal/monorepo-internal/packages/framework/definitions/base-definitions
3
- > pnpm --filter @layerzerolabs/depcheck run depcheck validate --catalog --missing-dependencies --only $npm_package_name
4
-
5
-
6
- > @layerzerolabs/depcheck@1.0.1 depcheck /home/runner/work/monorepo-internal/monorepo-internal/tools/repo/depcheck
7
- > tsx ./src/index.ts validate --catalog --missing-dependencies --only @layerzerolabs/base-definitions
8
-
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/definitions.ts"],"names":["FactoryDefinition","DependencyNode","dimensions","specialization","dimensionToSchemaMap","getFactory","args","ObjectDefinition","schema","serializeDimensions","dim","Object","keys","length","entries","sort","map","dimName","dimVal","join","deserializeDimensions","serializedDim","fromEntries","split","pair","dimValParts"],"mappings":";;;AA+HO,IAAMA,iBAAAA,GAAN,cAMGC,cAAAA,CAAAA;EAjIV;;;AAkIoBC,EAAAA,UAAAA;AACAC,EAAAA,cAAAA;AACAC,EAAAA,oBAAAA;AACAC,EAAAA,UAAAA;AAChB,EAAA,WAAA,CAAY,EACRH,UAAAA,EACAC,cAAAA,EACAC,sBACAC,UAAAA,EACA,GAAGC,MAAAA,EAMmE;AACtE,IAAA,KAAA,CAAMA,IAAAA,CAAAA;AACN,IAAA,IAAA,CAAKJ,UAAAA,GAAaA,UAAAA;AAClB,IAAA,IAAA,CAAKC,cAAAA,GAAiBA,cAAAA;AACtB,IAAA,IAAA,CAAKC,oBAAAA,GAAuBA,oBAAAA;AAC5B,IAAA,IAAA,CAAKC,UAAAA,GAAaA,UAAAA;AACtB,EAAA;AACJ;AAaO,IAAeE,gBAAAA,GAAf,cAIGN,cAAAA,CAAAA;EAzKV;;;AA0KoBO,EAAAA,MAAAA;AAEhB,EAAA,WAAA,CAAY,EACRA,MAAAA,EACA,GAAGF,IAAAA,EAAAA,EAGmE;AACtE,IAAA,KAAA,CAAMA,IAAAA,CAAAA;AACN,IAAA,IAAA,CAAKE,MAAAA,GAASA,MAAAA;AAClB,EAAA;AACJ;AA8GO,IAAMC,mBAAAA,mBAAsB,MAAA,CAAA,CAACC,GAAAA,GAAc,EAAC,KAAC;AAChD,EAAA,OAAOC,MAAAA,CAAOC,IAAAA,CAAKF,GAAAA,CAAAA,CAAKG,MAAAA,GAClBF,OAAOG,OAAAA,CAAQJ,GAAAA,CAAAA,CACVK,IAAAA,EAAI,CACJC,GAAAA,CAAI,CAAC,CAACC,OAAAA,EAASC,MAAAA,CAAAA,KAAY,CAAA,EAAGD,OAAAA,CAAAA,CAAAA,EAAWC,MAAAA,CAAAA,CAAQ,CAAA,CACjDC,IAAAA,CAAK,GAAA,CAAA,GACV,OAAA;AACV,CAAA,EAPmC,qBAAA;AAS5B,IAAMC,qBAAAA,2BAAyBC,aAAAA,KAAAA;AAClC,EAAA,IAAIA,kBAAkB,OAAA,EAAS;AAC3B,IAAA,OAAO,EAAC;AACZ,EAAA;AAEA,EAAA,OAAOV,MAAAA,CAAOW,YACVD,aAAAA,CAAcE,KAAAA,CAAM,GAAA,CAAA,CAAKP,GAAAA,CAAI,CAACQ,IAAAA,KAAAA;AAC1B,IAAA,MAAM,CAACP,OAAAA,EAAS,GAAGQ,WAAAA,CAAAA,GAAeD,IAAAA,CAAKD,MAAM,GAAA,CAAA;AAC7C,IAAA,OAAO;AAACN,MAAAA,OAAAA;AAASQ,MAAAA,WAAAA,CAAYN,KAAK,GAAA;;AACtC,EAAA,CAAA,CAAA,CAAA;AAER,CAAA,EAXqC,uBAAA","file":"GDTSXFKQ.js","sourcesContent":["import type { z } from 'zod/v4';\n\nimport type { FunctionPointer } from '@layerzerolabs/common-utils';\nimport type { Dependencies } from '@layerzerolabs/dependency-graph';\nimport { DependencyNode } from '@layerzerolabs/dependency-graph';\nimport type {\n AdvancedRecord,\n AdvancedRecordLookup,\n Merge,\n MethodNameOf,\n RemoveNever,\n UnionToIntersection,\n} from '@layerzerolabs/typescript-utils';\n\nexport type DimensionToSchemaMap<DimConstraint extends object = object> = {\n byDimension?: AdvancedRecord<DimConstraint, z.ZodType>;\n base: z.ZodType;\n};\n\nexport type FactorySpecialization<DMap extends DimensionToSchemaMap = DimensionToSchemaMap> = {\n spec: z.ZodObject<any>;\n exempt: readonly MethodNameOf<GetSupersetOfModelsFromSchema<DMap>>[];\n};\n\nexport type WithInjectedSpecialization<T, Specialization extends FactorySpecialization<any>> = [\n {},\n] extends [z.infer<Specialization['spec']>]\n ? T\n : {\n [K in keyof T]: K extends Specialization['exempt'][number]\n ? T[K]\n : T[K] extends (...args: infer A) => infer R\n ? (specialization: z.infer<Specialization['spec']>, ...args: A) => R\n : T[K];\n };\n\nexport type WithSpecializeMethod<WithInjection, WithoutInjection, S> = {} extends S\n ? WithoutInjection\n : WithInjection extends (...args: infer Args) => infer Ret\n ? (...args: Args) => Ret\n : WithInjection & {\n specialize: (specialization: S) => WithoutInjection;\n };\n\nexport type GetModelFromSchema<DMap extends DimensionToSchemaMap, Dim> =\n AdvancedRecordLookup<DMap['byDimension'], Dim> extends never\n ? z.infer<DMap['base']>\n : Merge<z.infer<DMap['base']>, z.infer<AdvancedRecordLookup<DMap['byDimension'], Dim>>>;\n\nexport type GetSupersetOfModelsFromSchema<DMap extends DimensionToSchemaMap> = UnionToIntersection<\n {\n [Key in keyof DMap['byDimension']]: DMap['byDimension'][Key] extends [any, any]\n ? z.infer<DMap['byDimension'][Key][1]>\n : never;\n }[keyof DMap['byDimension']]\n> &\n z.infer<DMap['base']>;\n\ntype GetImplFunctionWithConditionalOptionalDim<Dim, Return> = {} extends Dim\n ? (dim?: Dim) => Return\n : (dim: Dim) => Return;\n\ntype GetImplOverloads<\n Dim extends z.ZodObject<any>,\n Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n> = UnionToIntersection<\n | {\n [I in keyof DMap['byDimension']]: DMap['byDimension'][I] extends readonly [infer K, any]\n ? {\n getImpl: GetImplFunctionWithConditionalOptionalDim<\n K,\n WithSpecializeMethod<\n WithInjectedSpecialization<GetModelFromSchema<DMap, K>, Specialization>,\n GetModelFromSchema<DMap, K>,\n z.infer<Specialization['spec']>\n >\n >;\n }\n : never;\n }[keyof DMap['byDimension']]\n | {\n getImpl: GetImplFunctionWithConditionalOptionalDim<\n z.infer<Dim>,\n WithSpecializeMethod<\n WithInjectedSpecialization<z.infer<DMap['base']>, Specialization>,\n z.infer<DMap['base']>,\n z.infer<Specialization['spec']>\n >\n >;\n }\n>;\n\nexport type Factory<\n _Dependencies extends Dependencies,\n Dim extends z.ZodObject<any>,\n Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n> = {\n name: string;\n implKeys: string[];\n dimensionToSchemaMap: DMap;\n} & GetImplOverloads<Dim, Specialization, DMap>;\n\nexport type GetFactory<\n _Dependencies extends Dependencies,\n Dim extends z.ZodObject<any>,\n Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n> = () =>\n | Factory<_Dependencies, Dim, Specialization, DMap>\n | Promise<Factory<_Dependencies, Dim, Specialization, DMap>>;\n\n/**\n * <!-- anchor:FactoryDefinition -->\n * Factory definitions are a type of dependency node that shall be resolved to a *factory*.\n * A factory is an object that provides a getImpl method which accepts some parameters `dim`,\n * and returns some object `getImplMetadata.getModel(dim)`.\n * That is, a factory definition is given by the set of parameters it uses to get its implementations,\n * and a function defining the schema it will return for each set of parameters.\n * @param name inherited from {@link DependencyNode}\n * @param dependencies inherited from {@link DependencyNode}\n * @param dimensions a Zod schema for the parameters this factory operates on.\n * @param dimensionToSchemaMap A map from dimension objects to the Zod schema for the implementation.\n * @param getFactory a method that should return an object with a `getImpl` method that returns\n * entities adhering to the schema for the corresponding `getModel` call\n */\nexport class FactoryDefinition<\n Name extends string,\n Dim extends z.ZodObject<any>,\n const Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n _Dependencies extends Dependencies,\n> extends DependencyNode<Name, _Dependencies> {\n public readonly dimensions: Dim;\n public readonly specialization: Specialization;\n public readonly dimensionToSchemaMap: DMap;\n public readonly getFactory: GetFactory<_Dependencies, Dim, Specialization, DMap>;\n constructor({\n dimensions,\n specialization,\n dimensionToSchemaMap,\n getFactory,\n ...args\n }: {\n dimensions: Dim;\n specialization: Specialization;\n dimensionToSchemaMap: DMap;\n getFactory: GetFactory<_Dependencies, Dim, Specialization, DMap>;\n } & ConstructorParameters<typeof DependencyNode<Name, _Dependencies>>[0]) {\n super(args);\n this.dimensions = dimensions;\n this.specialization = specialization;\n this.dimensionToSchemaMap = dimensionToSchemaMap;\n this.getFactory = getFactory;\n }\n}\n\n/**\n * <!-- anchor:ObjectDefinition -->\n * An object definition is a dependency node that refers to some entity\n * matching a given schema. That is, it may be resolved to any entity\n * that adheres to the {@link schema}.\n * The object definition is abstract, as it cannot be meaningfully resolved without\n * additional information. For an example of an object definition, see ReflexiveObjectDefinition or ContextDefinition\n * @param name inherited from {@link DependencyNode}\n * @param dependencies inherited from {@link DependencyNode}\n * @param schema a Zod schema defining the expected resolution for this definition\n */\nexport abstract class ObjectDefinition<\n Name extends string,\n Schema extends z.ZodSchema,\n _Dependencies extends Dependencies,\n> extends DependencyNode<Name, _Dependencies> {\n public readonly schema: Schema;\n\n constructor({\n schema,\n ...args\n }: {\n schema: Schema;\n } & ConstructorParameters<typeof DependencyNode<Name, _Dependencies>>[0]) {\n super(args);\n this.schema = schema;\n }\n}\n\nexport type Definition<Name extends string> =\n | FactoryDefinition<Name, any, any, any, any>\n | ObjectDefinition<Name, any, any>;\n\n/**\n * Infers the expected type of a definition once it has been resolved\n */\nexport type ResolvedDefinition<Definition extends DependencyNode<any, any>> =\n Definition extends ObjectDefinition<any, infer Schema, any>\n ? z.infer<Schema>\n : Definition extends FactoryDefinition<\n any,\n infer Dim,\n infer Specialization,\n infer DMap,\n any\n >\n ? Factory<Definition['dependencies'], Dim, Specialization, DMap>\n : Definition extends FactoryDefinition<any, any, any, any, any>\n ? Factory<\n Definition['dependencies'],\n Definition['dimensions'],\n Definition['specialization'],\n Definition['dimensionToSchemaMap']\n >\n : unknown;\n\n/**\n * Given a record from string to definition, maps each definition T to ResolvedDefinition<T>. Removes `definition` suffix from name\n */\nexport type ResolvedDefinitionMap<Deps extends Dependencies> = {\n [Key in keyof Deps as Key extends `${infer Name}Definition` ? Name : Key]: ResolvedDefinition<\n Deps[Key]\n >;\n};\n\n/**\n * For some factory definition F and some dimension D s.t. D ⊇ F.dimensions, infers the expected return type of\n * ResolvedDefinition<F>.getImpl(D)\n */\nexport type ResolvedFactoryImplementation<Definition extends DependencyNode<any, any>, Dim> =\n Definition extends FactoryDefinition<any, any, any, any, any>\n ? WithSpecializeMethod<\n WithInjectedSpecialization<\n GetModelFromSchema<Definition['dimensionToSchemaMap'], Dim>,\n Definition['specialization']\n >,\n GetModelFromSchema<Definition['dimensionToSchemaMap'], Dim>,\n z.infer<Definition['specialization']['spec']>\n >\n : never;\n\ntype RemoveDefinitionSuffix<Key extends string> = Key extends `${infer Name}Definition`\n ? Name\n : Key;\ntype ReplaceFactorySuffix<Key extends string> = Key extends `${infer Name}Factory`\n ? `${Name}Impl`\n : Key;\n\n/**\n * Given a record from string to definition and some dimension D, maps each definition T to ResolvedFactoryImplementation<T, D>\n * Removes Definition | ActivityFactory | Factory from the suffix of the key\n */\nexport type ResolvedFactoryImplementationMap<Deps extends Dependencies, Dim> = RemoveNever<{\n [Key in keyof Deps as Key extends string\n ? ReplaceFactorySuffix<RemoveDefinitionSuffix<Key>>\n : never]: ResolvedFactoryImplementation<Deps[Key], Dim>;\n}>;\n\ntype ActivityFactoryContext<\n _FactoryDefinition extends FactoryDefinition<any, any, any, any, any>,\n Dim,\n _PrivateSchemaExtension extends z.ZodObject = z.ZodObject<{}, z.core.$strip>,\n> = {\n getFunctionPointer: <\n MethodName extends MethodNameOf<\n ResolvedFactoryImplementation<_FactoryDefinition, Dim> &\n z.infer<_PrivateSchemaExtension>\n >,\n >(\n methodName: MethodName,\n ) => FunctionPointer<\n (ResolvedFactoryImplementation<_FactoryDefinition, Dim> &\n z.infer<_PrivateSchemaExtension>)[MethodName]\n >;\n};\n\n/**\n * The parameters that shall be received by a factory's implementation getter\n */\nexport type Context<\n _FactoryDefinition extends FactoryDefinition<any, any, any, any, any>,\n Dim,\n _PrivateSchemaExtension extends z.ZodObject = z.ZodObject<{}, z.core.$strip>,\n> = {\n name: _FactoryDefinition extends FactoryDefinition<infer Name, any, any, any, any>\n ? Name\n : never;\n dependencies: _FactoryDefinition extends FactoryDefinition<any, any, any, any, infer Deps>\n ? ResolvedDefinitionMap<Deps>\n : never;\n dim: Dim;\n impls: _FactoryDefinition extends FactoryDefinition<any, any, any, any, infer Deps>\n ? ResolvedFactoryImplementationMap<Deps, Dim>\n : never;\n self: ResolvedFactoryImplementation<_FactoryDefinition, Dim> & z.infer<_PrivateSchemaExtension>;\n} & ActivityFactoryContext<_FactoryDefinition, Dim, _PrivateSchemaExtension>;\n\nexport const serializeDimensions = (dim: object = {}) => {\n return Object.keys(dim).length\n ? Object.entries(dim)\n .sort()\n .map(([dimName, dimVal]) => `${dimName}_${dimVal}`)\n .join('&')\n : '_base';\n};\n\nexport const deserializeDimensions = (serializedDim: string) => {\n if (serializedDim === '_base') {\n return {};\n }\n\n return Object.fromEntries(\n serializedDim.split('&').map((pair) => {\n const [dimName, ...dimValParts] = pair.split('_');\n return [dimName, dimValParts.join('_')];\n }),\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/definitions.ts"],"names":["FactoryDefinition","DependencyNode","dimensions","specialization","dimensionToSchemaMap","getFactory","args","ObjectDefinition","schema","serializeDimensions","__name","dim","Object","keys","length","entries","sort","map","dimName","dimVal","join","deserializeDimensions","serializedDim","fromEntries","split","pair","dimValParts"],"mappings":";;;;;AA+HO,IAAMA,iBAAAA,GAAN,cAMGC,8BAAAA,CAAAA;EAjIV;;;AAkIoBC,EAAAA,UAAAA;AACAC,EAAAA,cAAAA;AACAC,EAAAA,oBAAAA;AACAC,EAAAA,UAAAA;AAChB,EAAA,WAAA,CAAY,EACRH,UAAAA,EACAC,cAAAA,EACAC,sBACAC,UAAAA,EACA,GAAGC,MAAAA,EAMmE;AACtE,IAAA,KAAA,CAAMA,IAAAA,CAAAA;AACN,IAAA,IAAA,CAAKJ,UAAAA,GAAaA,UAAAA;AAClB,IAAA,IAAA,CAAKC,cAAAA,GAAiBA,cAAAA;AACtB,IAAA,IAAA,CAAKC,oBAAAA,GAAuBA,oBAAAA;AAC5B,IAAA,IAAA,CAAKC,UAAAA,GAAaA,UAAAA;AACtB,EAAA;AACJ;AAaO,IAAeE,gBAAAA,GAAf,cAIGN,8BAAAA,CAAAA;EAzKV;;;AA0KoBO,EAAAA,MAAAA;AAEhB,EAAA,WAAA,CAAY,EACRA,MAAAA,EACA,GAAGF,IAAAA,EAAAA,EAGmE;AACtE,IAAA,KAAA,CAAMA,IAAAA,CAAAA;AACN,IAAA,IAAA,CAAKE,MAAAA,GAASA,MAAAA;AAClB,EAAA;AACJ;AA8GO,IAAMC,mBAAAA,mBAAsBC,mBAAA,CAAA,CAACC,GAAAA,GAAc,EAAC,KAAC;AAChD,EAAA,OAAOC,MAAAA,CAAOC,IAAAA,CAAKF,GAAAA,CAAAA,CAAKG,MAAAA,GAClBF,OAAOG,OAAAA,CAAQJ,GAAAA,CAAAA,CACVK,IAAAA,EAAI,CACJC,GAAAA,CAAI,CAAC,CAACC,OAAAA,EAASC,MAAAA,CAAAA,KAAY,CAAA,EAAGD,OAAAA,CAAAA,CAAAA,EAAWC,MAAAA,CAAAA,CAAQ,CAAA,CACjDC,IAAAA,CAAK,GAAA,CAAA,GACV,OAAA;AACV,CAAA,EAPmC,qBAAA;AAS5B,IAAMC,qBAAAA,wCAAyBC,aAAAA,KAAAA;AAClC,EAAA,IAAIA,kBAAkB,OAAA,EAAS;AAC3B,IAAA,OAAO,EAAC;AACZ,EAAA;AAEA,EAAA,OAAOV,MAAAA,CAAOW,YACVD,aAAAA,CAAcE,KAAAA,CAAM,GAAA,CAAA,CAAKP,GAAAA,CAAI,CAACQ,IAAAA,KAAAA;AAC1B,IAAA,MAAM,CAACP,OAAAA,EAAS,GAAGQ,WAAAA,CAAAA,GAAeD,IAAAA,CAAKD,MAAM,GAAA,CAAA;AAC7C,IAAA,OAAO;AAACN,MAAAA,OAAAA;AAASQ,MAAAA,WAAAA,CAAYN,KAAK,GAAA;;AACtC,EAAA,CAAA,CAAA,CAAA;AAER,CAAA,EAXqC,uBAAA","file":"UC6WCE77.cjs","sourcesContent":["import type { z } from 'zod/v4';\n\nimport type { FunctionPointer } from '@layerzerolabs/common-utils';\nimport type { Dependencies } from '@layerzerolabs/dependency-graph';\nimport { DependencyNode } from '@layerzerolabs/dependency-graph';\nimport type {\n AdvancedRecord,\n AdvancedRecordLookup,\n Merge,\n MethodNameOf,\n RemoveNever,\n UnionToIntersection,\n} from '@layerzerolabs/typescript-utils';\n\nexport type DimensionToSchemaMap<DimConstraint extends object = object> = {\n byDimension?: AdvancedRecord<DimConstraint, z.ZodType>;\n base: z.ZodType;\n};\n\nexport type FactorySpecialization<DMap extends DimensionToSchemaMap = DimensionToSchemaMap> = {\n spec: z.ZodObject<any>;\n exempt: readonly MethodNameOf<GetSupersetOfModelsFromSchema<DMap>>[];\n};\n\nexport type WithInjectedSpecialization<T, Specialization extends FactorySpecialization<any>> = [\n {},\n] extends [z.infer<Specialization['spec']>]\n ? T\n : {\n [K in keyof T]: K extends Specialization['exempt'][number]\n ? T[K]\n : T[K] extends (...args: infer A) => infer R\n ? (specialization: z.infer<Specialization['spec']>, ...args: A) => R\n : T[K];\n };\n\nexport type WithSpecializeMethod<WithInjection, WithoutInjection, S> = {} extends S\n ? WithoutInjection\n : WithInjection extends (...args: infer Args) => infer Ret\n ? (...args: Args) => Ret\n : WithInjection & {\n specialize: (specialization: S) => WithoutInjection;\n };\n\nexport type GetModelFromSchema<DMap extends DimensionToSchemaMap, Dim> =\n AdvancedRecordLookup<DMap['byDimension'], Dim> extends never\n ? z.infer<DMap['base']>\n : Merge<z.infer<DMap['base']>, z.infer<AdvancedRecordLookup<DMap['byDimension'], Dim>>>;\n\nexport type GetSupersetOfModelsFromSchema<DMap extends DimensionToSchemaMap> = UnionToIntersection<\n {\n [Key in keyof DMap['byDimension']]: DMap['byDimension'][Key] extends [any, any]\n ? z.infer<DMap['byDimension'][Key][1]>\n : never;\n }[keyof DMap['byDimension']]\n> &\n z.infer<DMap['base']>;\n\ntype GetImplFunctionWithConditionalOptionalDim<Dim, Return> = {} extends Dim\n ? (dim?: Dim) => Return\n : (dim: Dim) => Return;\n\ntype GetImplOverloads<\n Dim extends z.ZodObject<any>,\n Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n> = UnionToIntersection<\n | {\n [I in keyof DMap['byDimension']]: DMap['byDimension'][I] extends readonly [infer K, any]\n ? {\n getImpl: GetImplFunctionWithConditionalOptionalDim<\n K,\n WithSpecializeMethod<\n WithInjectedSpecialization<GetModelFromSchema<DMap, K>, Specialization>,\n GetModelFromSchema<DMap, K>,\n z.infer<Specialization['spec']>\n >\n >;\n }\n : never;\n }[keyof DMap['byDimension']]\n | {\n getImpl: GetImplFunctionWithConditionalOptionalDim<\n z.infer<Dim>,\n WithSpecializeMethod<\n WithInjectedSpecialization<z.infer<DMap['base']>, Specialization>,\n z.infer<DMap['base']>,\n z.infer<Specialization['spec']>\n >\n >;\n }\n>;\n\nexport type Factory<\n _Dependencies extends Dependencies,\n Dim extends z.ZodObject<any>,\n Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n> = {\n name: string;\n implKeys: string[];\n dimensionToSchemaMap: DMap;\n} & GetImplOverloads<Dim, Specialization, DMap>;\n\nexport type GetFactory<\n _Dependencies extends Dependencies,\n Dim extends z.ZodObject<any>,\n Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n> = () =>\n | Factory<_Dependencies, Dim, Specialization, DMap>\n | Promise<Factory<_Dependencies, Dim, Specialization, DMap>>;\n\n/**\n * <!-- anchor:FactoryDefinition -->\n * Factory definitions are a type of dependency node that shall be resolved to a *factory*.\n * A factory is an object that provides a getImpl method which accepts some parameters `dim`,\n * and returns some object `getImplMetadata.getModel(dim)`.\n * That is, a factory definition is given by the set of parameters it uses to get its implementations,\n * and a function defining the schema it will return for each set of parameters.\n * @param name inherited from {@link DependencyNode}\n * @param dependencies inherited from {@link DependencyNode}\n * @param dimensions a Zod schema for the parameters this factory operates on.\n * @param dimensionToSchemaMap A map from dimension objects to the Zod schema for the implementation.\n * @param getFactory a method that should return an object with a `getImpl` method that returns\n * entities adhering to the schema for the corresponding `getModel` call\n */\nexport class FactoryDefinition<\n Name extends string,\n Dim extends z.ZodObject<any>,\n const Specialization extends FactorySpecialization<DMap>,\n DMap extends DimensionToSchemaMap<z.infer<Dim>>,\n _Dependencies extends Dependencies,\n> extends DependencyNode<Name, _Dependencies> {\n public readonly dimensions: Dim;\n public readonly specialization: Specialization;\n public readonly dimensionToSchemaMap: DMap;\n public readonly getFactory: GetFactory<_Dependencies, Dim, Specialization, DMap>;\n constructor({\n dimensions,\n specialization,\n dimensionToSchemaMap,\n getFactory,\n ...args\n }: {\n dimensions: Dim;\n specialization: Specialization;\n dimensionToSchemaMap: DMap;\n getFactory: GetFactory<_Dependencies, Dim, Specialization, DMap>;\n } & ConstructorParameters<typeof DependencyNode<Name, _Dependencies>>[0]) {\n super(args);\n this.dimensions = dimensions;\n this.specialization = specialization;\n this.dimensionToSchemaMap = dimensionToSchemaMap;\n this.getFactory = getFactory;\n }\n}\n\n/**\n * <!-- anchor:ObjectDefinition -->\n * An object definition is a dependency node that refers to some entity\n * matching a given schema. That is, it may be resolved to any entity\n * that adheres to the {@link schema}.\n * The object definition is abstract, as it cannot be meaningfully resolved without\n * additional information. For an example of an object definition, see ReflexiveObjectDefinition or ContextDefinition\n * @param name inherited from {@link DependencyNode}\n * @param dependencies inherited from {@link DependencyNode}\n * @param schema a Zod schema defining the expected resolution for this definition\n */\nexport abstract class ObjectDefinition<\n Name extends string,\n Schema extends z.ZodSchema,\n _Dependencies extends Dependencies,\n> extends DependencyNode<Name, _Dependencies> {\n public readonly schema: Schema;\n\n constructor({\n schema,\n ...args\n }: {\n schema: Schema;\n } & ConstructorParameters<typeof DependencyNode<Name, _Dependencies>>[0]) {\n super(args);\n this.schema = schema;\n }\n}\n\nexport type Definition<Name extends string> =\n | FactoryDefinition<Name, any, any, any, any>\n | ObjectDefinition<Name, any, any>;\n\n/**\n * Infers the expected type of a definition once it has been resolved\n */\nexport type ResolvedDefinition<Definition extends DependencyNode<any, any>> =\n Definition extends ObjectDefinition<any, infer Schema, any>\n ? z.infer<Schema>\n : Definition extends FactoryDefinition<\n any,\n infer Dim,\n infer Specialization,\n infer DMap,\n any\n >\n ? Factory<Definition['dependencies'], Dim, Specialization, DMap>\n : Definition extends FactoryDefinition<any, any, any, any, any>\n ? Factory<\n Definition['dependencies'],\n Definition['dimensions'],\n Definition['specialization'],\n Definition['dimensionToSchemaMap']\n >\n : unknown;\n\n/**\n * Given a record from string to definition, maps each definition T to ResolvedDefinition<T>. Removes `definition` suffix from name\n */\nexport type ResolvedDefinitionMap<Deps extends Dependencies> = {\n [Key in keyof Deps as Key extends `${infer Name}Definition` ? Name : Key]: ResolvedDefinition<\n Deps[Key]\n >;\n};\n\n/**\n * For some factory definition F and some dimension D s.t. D ⊇ F.dimensions, infers the expected return type of\n * ResolvedDefinition<F>.getImpl(D)\n */\nexport type ResolvedFactoryImplementation<Definition extends DependencyNode<any, any>, Dim> =\n Definition extends FactoryDefinition<any, any, any, any, any>\n ? WithSpecializeMethod<\n WithInjectedSpecialization<\n GetModelFromSchema<Definition['dimensionToSchemaMap'], Dim>,\n Definition['specialization']\n >,\n GetModelFromSchema<Definition['dimensionToSchemaMap'], Dim>,\n z.infer<Definition['specialization']['spec']>\n >\n : never;\n\ntype RemoveDefinitionSuffix<Key extends string> = Key extends `${infer Name}Definition`\n ? Name\n : Key;\ntype ReplaceFactorySuffix<Key extends string> = Key extends `${infer Name}Factory`\n ? `${Name}Impl`\n : Key;\n\n/**\n * Given a record from string to definition and some dimension D, maps each definition T to ResolvedFactoryImplementation<T, D>\n * Removes Definition | ActivityFactory | Factory from the suffix of the key\n */\nexport type ResolvedFactoryImplementationMap<Deps extends Dependencies, Dim> = RemoveNever<{\n [Key in keyof Deps as Key extends string\n ? ReplaceFactorySuffix<RemoveDefinitionSuffix<Key>>\n : never]: ResolvedFactoryImplementation<Deps[Key], Dim>;\n}>;\n\ntype ActivityFactoryContext<\n _FactoryDefinition extends FactoryDefinition<any, any, any, any, any>,\n Dim,\n _PrivateSchemaExtension extends z.ZodObject = z.ZodObject<{}, z.core.$strip>,\n> = {\n getFunctionPointer: <\n MethodName extends MethodNameOf<\n ResolvedFactoryImplementation<_FactoryDefinition, Dim> &\n z.infer<_PrivateSchemaExtension>\n >,\n >(\n methodName: MethodName,\n ) => FunctionPointer<\n (ResolvedFactoryImplementation<_FactoryDefinition, Dim> &\n z.infer<_PrivateSchemaExtension>)[MethodName]\n >;\n};\n\n/**\n * The parameters that shall be received by a factory's implementation getter\n */\nexport type Context<\n _FactoryDefinition extends FactoryDefinition<any, any, any, any, any>,\n Dim,\n _PrivateSchemaExtension extends z.ZodObject = z.ZodObject<{}, z.core.$strip>,\n> = {\n name: _FactoryDefinition extends FactoryDefinition<infer Name, any, any, any, any>\n ? Name\n : never;\n dependencies: _FactoryDefinition extends FactoryDefinition<any, any, any, any, infer Deps>\n ? ResolvedDefinitionMap<Deps>\n : never;\n dim: Dim;\n impls: _FactoryDefinition extends FactoryDefinition<any, any, any, any, infer Deps>\n ? ResolvedFactoryImplementationMap<Deps, Dim>\n : never;\n self: ResolvedFactoryImplementation<_FactoryDefinition, Dim> & z.infer<_PrivateSchemaExtension>;\n} & ActivityFactoryContext<_FactoryDefinition, Dim, _PrivateSchemaExtension>;\n\nexport const serializeDimensions = (dim: object = {}) => {\n return Object.keys(dim).length\n ? Object.entries(dim)\n .sort()\n .map(([dimName, dimVal]) => `${dimName}_${dimVal}`)\n .join('&')\n : '_base';\n};\n\nexport const deserializeDimensions = (serializedDim: string) => {\n if (serializedDim === '_base') {\n return {};\n }\n\n return Object.fromEntries(\n serializedDim.split('&').map((pair) => {\n const [dimName, ...dimValParts] = pair.split('_');\n return [dimName, dimValParts.join('_')];\n }),\n );\n};\n"]}