@layerzerolabs/dw-model 0.2.15 → 0.2.19

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.
@@ -1,6 +1,7 @@
1
1
  import z from 'zod';
2
2
 
3
3
  import type { NormalizedHexString } from '@layerzerolabs/common-chain-model';
4
+ import { throwError } from '@layerzerolabs/common-error-utils';
4
5
  import { ChainName } from '@layerzerolabs/layerzero-definitions';
5
6
  import type { IsAny } from '@layerzerolabs/typescript-utils';
6
7
 
@@ -31,82 +32,104 @@ export type BaseResource = z.infer<typeof baseResourceSchema>;
31
32
  export type BaseMeshResource = z.infer<typeof baseMeshResourceSchema>;
32
33
  export type BaseContractResource = z.infer<typeof baseContractResourceSchema>;
33
34
 
34
- export type ContractResourceDependency<T extends BaseContractResource = BaseContractResource> = {
35
- id: string;
36
- /** WARNING: this field is not present at runtime */
37
- __dependencyType: T;
38
- ['__CONTRACT_RESOURCE_DEPENDENCY']: true;
35
+ // the actual expected runtime value for this type is #C_REF:${id}
36
+ export type ContractResourceReference<T extends BaseContractResource = BaseContractResource> = {
37
+ /** WARNING: these fields are not present at runtime */
38
+ __resourceReferenceType: T;
39
+ ['__CONTRACT_RESOURCE_REFERENCE']: true;
39
40
  };
40
41
 
41
- export const isContractResourceDependency = (o: any): o is ContractResourceDependency =>
42
- o != null &&
43
- typeof o === 'object' &&
44
- (o as ContractResourceDependency).__CONTRACT_RESOURCE_DEPENDENCY;
42
+ export const extractIdFromContractResourceReference = (ref: ContractResourceReference) =>
43
+ ((ref as unknown as string).startsWith('#C_REF:') &&
44
+ (ref as unknown as string).slice('#C_REF:'.length)) ||
45
+ throwError(`Ref ${JSON.stringify(ref)} is not a contract resource ref`);
45
46
 
46
- export type ContractResourceDependencySchema<T extends typeof baseContractResourceSchema> =
47
- z.ZodType<ContractResourceDependency<z.infer<T>>>;
47
+ export type ContractResourceReferenceSchema<T extends typeof baseContractResourceSchema> =
48
+ z.ZodType<ContractResourceReference<z.infer<T>>>;
48
49
 
49
- export const contractResourceDependencySchema: ContractResourceDependencySchema<
50
+ export const contractResourceReferenceSchema: ContractResourceReferenceSchema<
50
51
  typeof baseContractResourceSchema
51
- > = z.custom<ContractResourceDependency>(isContractResourceDependency);
52
-
53
- export const contractResourceDependencySchemaFor = <T extends typeof baseContractResourceSchema>(
52
+ // at runtime, we expect a string
53
+ > = z.string().meta({
54
+ id: 'contract-resource-dependency',
55
+ title: 'Contract dependency to any',
56
+ description: 'A reference to another contract resource (any)',
57
+ }) as unknown as z.ZodType<ContractResourceReference>;
58
+
59
+ let contractResourceDependencyForSchemaZodMetaIdIdx = 0;
60
+ export const contractResourceReferenceSchemaFor = <T extends typeof baseContractResourceSchema>(
54
61
  // FIXME use this to generate a real schema
55
62
  _resource: T,
56
- ): ContractResourceDependencySchema<T> =>
57
- z.custom<ContractResourceDependency<z.infer<T>>>(isContractResourceDependency);
58
-
59
- export type ResolvedContractResourceDependency<T extends BaseContractResource> = {
63
+ ): ContractResourceReferenceSchema<T> =>
64
+ z.string().meta({
65
+ id: `contract-resource-dependency-for-${++contractResourceDependencyForSchemaZodMetaIdIdx}`,
66
+ // we can't generate this properly yet because this function needs more information
67
+ // will be fixed when we clean up the runtime of dependencies id
68
+ title: 'Contract dependency to (unknown)',
69
+ description: 'A reference to another contract resource (unknown)',
70
+ }) as unknown as z.ZodType<ContractResourceReference<z.infer<T>>>;
71
+
72
+ export type ResolvedContractResourceReference<T extends BaseContractResource> = {
60
73
  id: string;
61
74
  resource: T;
62
75
  address: NormalizedHexString;
63
76
  };
64
77
 
65
- export type ResolvedContractResourceDependencySchema<T extends typeof baseContractResourceSchema> =
66
- z.ZodType<ResolvedContractResourceDependency<z.infer<T>>>;
78
+ export type ResolvedContractResourceReferenceSchema<T extends typeof baseContractResourceSchema> =
79
+ z.ZodType<ResolvedContractResourceReference<z.infer<T>>>;
67
80
 
68
- export const resolvedContractResourceDependencySchema: ResolvedContractResourceDependencySchema<any> =
81
+ export const resolvedContractResourceReferenceSchema: ResolvedContractResourceReferenceSchema<any> =
69
82
  // FIXME could be a real schema
70
- z.custom<ResolvedContractResourceDependency<any>>();
83
+ z.custom<ResolvedContractResourceReference<any>>();
71
84
 
72
- export type MeshResourceDependency<T extends BaseMeshResource = BaseMeshResource> = {
73
- id: string;
74
- /** WARNING: this field is not present at runtime */
75
- __dependencyType: T;
76
- ['__MESH_RESOURCE_DEPENDENCY']: true;
85
+ // the actual expected runtime value for this type is #M_REF:${id}
86
+ export type MeshResourceReference<T extends BaseMeshResource = BaseMeshResource> = {
87
+ /** WARNING: these fields are not present at runtime */
88
+ __resourceReferenceType: T;
89
+ ['__MESH_RESOURCE_REFERENCE']: true;
77
90
  };
78
91
 
79
- export const isMeshResourceDependency = (o: any): o is MeshResourceDependency =>
80
- o != null && typeof o === 'object' && (o as MeshResourceDependency).__MESH_RESOURCE_DEPENDENCY;
81
-
82
- export type MeshResourceDependencySchema<T extends typeof baseMeshResourceSchema> = z.ZodType<
83
- MeshResourceDependency<z.infer<T>>
92
+ export type MeshResourceReferenceSchema<T extends typeof baseMeshResourceSchema> = z.ZodType<
93
+ MeshResourceReference<z.infer<T>>
84
94
  >;
85
95
 
86
- export const meshResourceDependencySchema: MeshResourceDependencySchema<
96
+ export const meshResourceReferenceSchema: MeshResourceReferenceSchema<
87
97
  typeof baseMeshResourceSchema
88
- > = z.custom<MeshResourceDependency>(isMeshResourceDependency);
89
-
90
- export const meshResourceDependencySchemaFor = <T extends typeof baseMeshResourceSchema>(
98
+ > = z.string().meta({
99
+ id: 'mesh-resource-dependency',
100
+ title: 'Mesh dependency to any',
101
+ description: 'A reference to another mesh resource (any)',
102
+ }) as unknown as z.ZodType<MeshResourceReference>;
103
+
104
+ let meshResourceDependencyForSchemaZodMetaIdIdx = 0;
105
+ export const meshResourceReferenceSchemaFor = <T extends typeof baseMeshResourceSchema>(
91
106
  // FIXME use this to generate a real schema
92
107
  _resource: T,
93
- ): MeshResourceDependencySchema<T> =>
94
- z.custom<MeshResourceDependency<z.infer<T>>>(isMeshResourceDependency);
95
-
96
- export type ResolvedMeshResourceDependency<T extends BaseMeshResource> = {
108
+ ): MeshResourceReferenceSchema<T> =>
109
+ z.string().meta({
110
+ id: `mesh-resource-dependency-for-${++meshResourceDependencyForSchemaZodMetaIdIdx}`,
111
+ title: 'Mesh dependency to (unknown)',
112
+ description: 'A reference to another mesh resource (unknown)',
113
+ }) as unknown as z.ZodType<MeshResourceReference<z.infer<T>>>;
114
+
115
+ export type ResolvedMeshResourceReference<T extends BaseMeshResource> = {
97
116
  id: string;
98
117
  resource: T;
99
118
  // TODO: is there any other resolved information we want to inject here?
100
119
  };
101
120
 
102
- export type ResolvedMeshResourceDependencySchema<T extends typeof baseMeshResourceSchema> =
121
+ export const extractIdFromMeshResourceReference = (ref: MeshResourceReference) =>
122
+ ((ref as unknown as string).startsWith('#M_REF:') &&
123
+ (ref as unknown as string).slice('#M_REF:'.length)) ||
124
+ throwError(`Ref ${JSON.stringify(ref)} is not a mesh resource ref`);
125
+
126
+ export type ResolvedMeshResourceReferenceSchema<T extends typeof baseMeshResourceSchema> =
103
127
  // FIXME could be a real schema
104
- z.ZodType<ResolvedMeshResourceDependency<z.infer<T>>>;
128
+ z.ZodType<ResolvedMeshResourceReference<z.infer<T>>>;
105
129
 
106
- export const resolvedMeshResourceDependencySchema: ResolvedMeshResourceDependencySchema<any> =
107
- z.custom<ResolvedMeshResourceDependency<any>>();
130
+ export const resolvedMeshResourceReferenceSchema: ResolvedMeshResourceReferenceSchema<any> =
131
+ z.custom<ResolvedMeshResourceReference<any>>();
108
132
 
109
- // FIXME this could be recursive, probably overkill
110
133
  export type ResolvedResourceSchema<Resource extends typeof baseResourceSchema> = z.ZodObject<
111
134
  {
112
135
  [K in keyof Resource['shape']]: Resource['shape'][K] extends infer R extends z.ZodType
@@ -114,21 +137,20 @@ export type ResolvedResourceSchema<Resource extends typeof baseResourceSchema> =
114
137
  ? R
115
138
  : R extends z.ZodOptional<z.ZodAny>
116
139
  ? R
117
- : R extends ContractResourceDependencySchema<infer I>
118
- ? ResolvedContractResourceDependencySchema<I>
119
- : R extends z.ZodOptional<ContractResourceDependencySchema<infer I>>
120
- ? z.ZodOptional<ResolvedContractResourceDependencySchema<I>>
121
- : R extends MeshResourceDependencySchema<infer I>
122
- ? ResolvedMeshResourceDependencySchema<I>
123
- : R extends z.ZodOptional<MeshResourceDependencySchema<infer I>>
124
- ? z.ZodOptional<ResolvedMeshResourceDependencySchema<I>>
140
+ : R extends ContractResourceReferenceSchema<infer I>
141
+ ? ResolvedContractResourceReferenceSchema<I>
142
+ : R extends z.ZodOptional<ContractResourceReferenceSchema<infer I>>
143
+ ? z.ZodOptional<ResolvedContractResourceReferenceSchema<I>>
144
+ : R extends MeshResourceReferenceSchema<infer I>
145
+ ? ResolvedMeshResourceReferenceSchema<I>
146
+ : R extends z.ZodOptional<MeshResourceReferenceSchema<infer I>>
147
+ ? z.ZodOptional<ResolvedMeshResourceReferenceSchema<I>>
125
148
  : R
126
149
  : never;
127
150
  },
128
151
  z.core.$strip
129
152
  >;
130
153
 
131
- // FIXME this could be recursive, probably overkill
132
154
  export type ResolvedResource<Resource extends BaseResource> = {
133
155
  [K in keyof Resource]: Resource[K] extends infer R
134
156
  ? R extends undefined
@@ -137,33 +159,29 @@ export type ResolvedResource<Resource extends BaseResource> = {
137
159
  ? R
138
160
  : IsAny<Exclude<R, undefined>> extends true
139
161
  ? R
140
- : R extends ContractResourceDependency<infer I>
141
- ? ResolvedContractResourceDependency<I>
142
- : R extends ContractResourceDependency<infer I> | undefined
143
- ? ResolvedContractResourceDependency<I> | undefined
144
- : R extends MeshResourceDependency<infer I>
145
- ? ResolvedMeshResourceDependency<I>
146
- : R extends MeshResourceDependency<infer I> | undefined
147
- ? ResolvedMeshResourceDependency<I> | undefined
162
+ : R extends ContractResourceReference<infer I>
163
+ ? ResolvedContractResourceReference<I>
164
+ : R extends ContractResourceReference<infer I> | undefined
165
+ ? ResolvedContractResourceReference<I> | undefined
166
+ : R extends MeshResourceReference<infer I>
167
+ ? ResolvedMeshResourceReference<I>
168
+ : R extends MeshResourceReference<infer I> | undefined
169
+ ? ResolvedMeshResourceReference<I> | undefined
148
170
  : R
149
171
  : never;
150
172
  };
151
173
 
152
- export const extractContractResourceDependencyIds = <Resource extends BaseResource>(
153
- resource: Resource,
154
- ) =>
155
- Object.entries(resource).filter(([, id]) => isContractResourceDependency(id)) as unknown as [
156
- prop: string,
157
- id: ContractResourceDependency,
158
- ][];
159
-
160
- export const extractMeshResourceDependencyIds = <Resource extends BaseResource>(
174
+ export const extractContractResourceReferences = <Resource extends BaseResource>(
161
175
  resource: Resource,
162
176
  ) =>
163
- Object.entries(resource).filter(([, id]) => isMeshResourceDependency(id)) as unknown as [
164
- prop: string,
165
- id: MeshResourceDependency,
166
- ][];
177
+ Object.entries(resource).filter(
178
+ ([, id]) => typeof id === 'string' && id.startsWith('#C_REF:'),
179
+ ) as unknown as [prop: string, id: ContractResourceReference][];
180
+
181
+ export const extractMeshResourceReferences = <Resource extends BaseResource>(resource: Resource) =>
182
+ Object.entries(resource).filter(
183
+ ([, id]) => typeof id === 'string' && id.startsWith('#M_REF:'),
184
+ ) as unknown as [prop: string, id: MeshResourceReference][];
167
185
 
168
186
  // FIXME implement runtime
169
187
  export const createResolvedResourceSchema = <Resource extends typeof baseResourceSchema>(
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/deploy/resourceBuilder.ts"],"names":["createResourceBuilder","_resourceSchema","resourceBaseType","type","resource","id","__CONTRACT_RESOURCE_DEPENDENCY","__dependencyType","build","__name","__MESH_RESOURCE_DEPENDENCY","Error"],"mappings":";;;;;AAoBO,IAAMA,qBAAAA,wCAELC,eAAAA,EACA,EACIC,kBACAC,IAAAA,EAAI,KAMZ,CACIC,QAAAA,KAAAA;AAMA,EAAA,IAAIF,qBAAqB,UAAA,EAAY;AACjC,IAAA,OAAO;MACHG,EAAAA,EAAI;QACAC,8BAAAA,EAAgC,IAAA;QAChCC,gBAAAA,EAAkB,IAAA;AAClBF,QAAAA,EAAAA,EAAID,QAAAA,CAASC;AACjB,OAAA;AACAG,MAAAA,KAAAA,kBAAOC,mBAAA,CAAA,OAAO;QAAE,GAAGL,QAAAA;AAAUD,QAAAA,IAAAA;AAAMD,QAAAA;OAAiB,CAAA,EAA7C,OAAA;AACX,KAAA;AACJ,EAAA;AACA,EAAA,IAAIA,qBAAqB,MAAA,EAAQ;AAC7B,IAAA,OAAO;MACHG,EAAAA,EAAI;QACAK,0BAAAA,EAA4B,IAAA;;QAE5BH,gBAAAA,EAAkB,IAAA;AAClBF,QAAAA,EAAAA,EAAID,QAAAA,CAASC;AACjB,OAAA;AACAG,MAAAA,KAAAA,kBAAOC,mBAAA,CAAA,OAAO;QAAE,GAAGL,QAAAA;AAAUD,QAAAA,IAAAA;AAAMD,QAAAA;OAAiB,CAAA,EAA7C,OAAA;AACX,KAAA;AACJ,EAAA;AAEA,EAAA,MAAM,IAAIS,KAAAA,CAAM,CAAA,8BAAA,EAAiCT,gBAAAA,CAAAA,CAAAA,CAAmB,CAAA;AACxE,CAAA,EAxCA,uBAAA","file":"FI3AZVUW.cjs","sourcesContent":["import type { z } from 'zod';\n\nimport type {\n BaseContractResource,\n BaseMeshResource,\n baseResourceSchema,\n ContractResourceDependency,\n MeshResourceDependency,\n} from './resources';\n\nexport type ContractResourceBuilderResult<Resource extends BaseContractResource> = {\n id: ContractResourceDependency<Resource>;\n build: () => Resource;\n};\n\nexport type MeshResourceBuilderResult<Resource extends BaseMeshResource> = {\n id: MeshResourceDependency<Resource>;\n build: () => Resource;\n};\n\nexport const createResourceBuilder =\n <T extends typeof baseResourceSchema, U extends Omit<z.infer<T>, 'type' | 'resourceBaseType'>>(\n _resourceSchema: T,\n {\n resourceBaseType,\n type,\n }: {\n resourceBaseType: 'CONTRACT' | 'MESH';\n type: T['shape'] extends { type: z.ZodType<infer Type> } ? Type : undefined;\n },\n ) =>\n (\n resource: U,\n ): z.infer<T> extends BaseContractResource\n ? ContractResourceBuilderResult<z.infer<T>>\n : z.infer<T> extends BaseMeshResource\n ? MeshResourceBuilderResult<z.infer<T>>\n : never => {\n if (resourceBaseType === 'CONTRACT') {\n return {\n id: {\n __CONTRACT_RESOURCE_DEPENDENCY: true,\n __dependencyType: null as any,\n id: resource.id,\n },\n build: () => ({ ...resource, type, resourceBaseType }),\n } satisfies ContractResourceBuilderResult<any> as any;\n }\n if (resourceBaseType === 'MESH') {\n return {\n id: {\n __MESH_RESOURCE_DEPENDENCY: true,\n // this is just a type brand, doesnt need to exist\n __dependencyType: null as any,\n id: resource.id,\n },\n build: () => ({ ...resource, type, resourceBaseType }),\n } satisfies MeshResourceBuilderResult<any> as any;\n }\n\n throw new Error(`Can't handle resouceBaseType \"${resourceBaseType}\"`);\n };\n"]}
package/dist/MIREQZRR.cjs DELETED
@@ -1,59 +0,0 @@
1
- 'use strict';
2
-
3
- var WYAGX6NX_cjs = require('./WYAGX6NX.cjs');
4
- var YJF4D23A_cjs = require('./YJF4D23A.cjs');
5
- var z = require('zod');
6
- var layerzeroDefinitions = require('@layerzerolabs/layerzero-definitions');
7
-
8
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
9
-
10
- var z__default = /*#__PURE__*/_interopDefault(z);
11
-
12
- var baseResourceSchema = z__default.default.object({
13
- id: z__default.default.string(),
14
- name: z__default.default.string().optional(),
15
- resourceBaseType: z__default.default.string()
16
- });
17
- var baseMeshResourceSchema = z__default.default.object({
18
- ...baseResourceSchema.shape,
19
- resourceBaseType: z__default.default.literal("MESH")
20
- });
21
- var baseContractResourceSchema = z__default.default.object({
22
- ...baseResourceSchema.shape,
23
- resourceBaseType: z__default.default.literal("CONTRACT"),
24
- chainName: z__default.default.enum(layerzeroDefinitions.ChainName),
25
- upgradeConfig: WYAGX6NX_cjs.upgradeableConfigSchema.optional(),
26
- verifyContract: z__default.default.boolean().optional(),
27
- chainConfig: z__default.default.any().optional()
28
- });
29
- var isContractResourceDependency = /* @__PURE__ */ YJF4D23A_cjs.__name((o) => o != null && typeof o === "object" && o.__CONTRACT_RESOURCE_DEPENDENCY, "isContractResourceDependency");
30
- var contractResourceDependencySchema = z__default.default.custom(isContractResourceDependency);
31
- var contractResourceDependencySchemaFor = /* @__PURE__ */ YJF4D23A_cjs.__name((_resource) => z__default.default.custom(isContractResourceDependency), "contractResourceDependencySchemaFor");
32
- var resolvedContractResourceDependencySchema = (
33
- // FIXME could be a real schema
34
- z__default.default.custom()
35
- );
36
- var isMeshResourceDependency = /* @__PURE__ */ YJF4D23A_cjs.__name((o) => o != null && typeof o === "object" && o.__MESH_RESOURCE_DEPENDENCY, "isMeshResourceDependency");
37
- var meshResourceDependencySchema = z__default.default.custom(isMeshResourceDependency);
38
- var meshResourceDependencySchemaFor = /* @__PURE__ */ YJF4D23A_cjs.__name((_resource) => z__default.default.custom(isMeshResourceDependency), "meshResourceDependencySchemaFor");
39
- var resolvedMeshResourceDependencySchema = z__default.default.custom();
40
- var extractContractResourceDependencyIds = /* @__PURE__ */ YJF4D23A_cjs.__name((resource) => Object.entries(resource).filter(([, id]) => isContractResourceDependency(id)), "extractContractResourceDependencyIds");
41
- var extractMeshResourceDependencyIds = /* @__PURE__ */ YJF4D23A_cjs.__name((resource) => Object.entries(resource).filter(([, id]) => isMeshResourceDependency(id)), "extractMeshResourceDependencyIds");
42
- var createResolvedResourceSchema = /* @__PURE__ */ YJF4D23A_cjs.__name((resource) => resource, "createResolvedResourceSchema");
43
-
44
- exports.baseContractResourceSchema = baseContractResourceSchema;
45
- exports.baseMeshResourceSchema = baseMeshResourceSchema;
46
- exports.baseResourceSchema = baseResourceSchema;
47
- exports.contractResourceDependencySchema = contractResourceDependencySchema;
48
- exports.contractResourceDependencySchemaFor = contractResourceDependencySchemaFor;
49
- exports.createResolvedResourceSchema = createResolvedResourceSchema;
50
- exports.extractContractResourceDependencyIds = extractContractResourceDependencyIds;
51
- exports.extractMeshResourceDependencyIds = extractMeshResourceDependencyIds;
52
- exports.isContractResourceDependency = isContractResourceDependency;
53
- exports.isMeshResourceDependency = isMeshResourceDependency;
54
- exports.meshResourceDependencySchema = meshResourceDependencySchema;
55
- exports.meshResourceDependencySchemaFor = meshResourceDependencySchemaFor;
56
- exports.resolvedContractResourceDependencySchema = resolvedContractResourceDependencySchema;
57
- exports.resolvedMeshResourceDependencySchema = resolvedMeshResourceDependencySchema;
58
- //# sourceMappingURL=MIREQZRR.cjs.map
59
- //# sourceMappingURL=MIREQZRR.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/deploy/resources.ts"],"names":["baseResourceSchema","z","object","id","string","name","optional","resourceBaseType","baseMeshResourceSchema","shape","literal","baseContractResourceSchema","chainName","enum","ChainName","upgradeConfig","upgradeableConfigSchema","verifyContract","boolean","chainConfig","any","isContractResourceDependency","o","__CONTRACT_RESOURCE_DEPENDENCY","contractResourceDependencySchema","custom","contractResourceDependencySchemaFor","__name","_resource","resolvedContractResourceDependencySchema","isMeshResourceDependency","__MESH_RESOURCE_DEPENDENCY","meshResourceDependencySchema","meshResourceDependencySchemaFor","resolvedMeshResourceDependencySchema","extractContractResourceDependencyIds","resource","Object","entries","filter","extractMeshResourceDependencyIds","createResolvedResourceSchema"],"mappings":";;;;;;;;;;;AAQO,IAAMA,kBAAAA,GAAqBC,mBAAEC,MAAAA,CAAO;AACvCC,EAAAA,EAAAA,EAAIF,mBAAEG,MAAAA,EAAM;EACZC,IAAAA,EAAMJ,kBAAAA,CAAEG,MAAAA,EAAM,CAAGE,QAAAA,EAAQ;AACzBC,EAAAA,gBAAAA,EAAkBN,mBAAEG,MAAAA;AACxB,CAAA;AAEO,IAAMI,sBAAAA,GAAyBP,mBAAEC,MAAAA,CAAO;AAC3C,EAAA,GAAGF,kBAAAA,CAAmBS,KAAAA;EACtBF,gBAAAA,EAAkBN,kBAAAA,CAAES,QAAQ,MAAA;AAChC,CAAA;AAEO,IAAMC,0BAAAA,GAA6BV,mBAAEC,MAAAA,CAAO;AAC/C,EAAA,GAAGF,kBAAAA,CAAmBS,KAAAA;EACtBF,gBAAAA,EAAkBN,kBAAAA,CAAES,QAAQ,UAAA,CAAA;EAC5BE,SAAAA,EAAWX,kBAAAA,CAAEY,KAAKC,8BAAAA,CAAAA;AAClBC,EAAAA,aAAAA,EAAeC,qCAAwBV,QAAAA,EAAQ;EAC/CW,cAAAA,EAAgBhB,kBAAAA,CAAEiB,OAAAA,EAAO,CAAGZ,QAAAA,EAAQ;EAEpCa,WAAAA,EAAalB,kBAAAA,CAAEmB,GAAAA,EAAG,CAAGd,QAAAA;AACzB,CAAA;AAaO,IAAMe,4BAAAA,wCAAgCC,CAAAA,KACzCA,CAAAA,IAAK,QACL,OAAOA,CAAAA,KAAM,QAAA,IACZA,CAAAA,CAAiCC,8BAAAA,EAHM,8BAAA;AAQrC,IAAMC,gCAAAA,GAETvB,kBAAAA,CAAEwB,MAAAA,CAAmCJ,4BAAAA;AAElC,IAAMK,sDAAsCC,mBAAA,CAAA,CAE/CC,SAAAA,KAEA3B,kBAAAA,CAAEwB,MAAAA,CAA+CJ,4BAAAA,CAAAA,EAJF,qCAAA;AAe5C,IAAMQ,wCAAAA;;AAET5B,EAAAA,kBAAAA,CAAEwB,MAAAA;;AASC,IAAMK,wBAAAA,wCAA4BR,CAAAA,KACrCA,CAAAA,IAAK,QAAQ,OAAOA,CAAAA,KAAM,QAAA,IAAaA,CAAAA,CAA6BS,0BAAAA,EADhC,0BAAA;AAOjC,IAAMC,4BAAAA,GAET/B,kBAAAA,CAAEwB,MAAAA,CAA+BK,wBAAAA;AAE9B,IAAMG,kDAAkCN,mBAAA,CAAA,CAE3CC,SAAAA,KAEA3B,kBAAAA,CAAEwB,MAAAA,CAA2CK,wBAAAA,CAAAA,EAJF,iCAAA;AAgBxC,IAAMI,oCAAAA,GACTjC,mBAAEwB,MAAAA;AA6CC,IAAMU,uDAAuCR,mBAAA,CAAA,CAChDS,QAAAA,KAEAC,MAAAA,CAAOC,OAAAA,CAAQF,QAAAA,CAAAA,CAAUG,MAAAA,CAAO,CAAC,GAAGpC,EAAAA,CAAAA,KAAQkB,4BAAAA,CAA6BlB,EAAAA,CAAAA,CAAAA,EAHzB,sCAAA;AAQ7C,IAAMqC,mDAAmCb,mBAAA,CAAA,CAC5CS,QAAAA,KAEAC,MAAAA,CAAOC,OAAAA,CAAQF,QAAAA,CAAAA,CAAUG,MAAAA,CAAO,CAAC,GAAGpC,EAAAA,CAAAA,KAAQ2B,wBAAAA,CAAyB3B,EAAAA,CAAAA,CAAAA,EAHzB,kCAAA;AASzC,IAAMsC,4BAAAA,mBAA+Bd,mBAAA,CAAA,CACxCS,QAAAA,KACCA,QAAAA,EAFuC,8BAAA","file":"MIREQZRR.cjs","sourcesContent":["import z from 'zod';\n\nimport type { NormalizedHexString } from '@layerzerolabs/common-chain-model';\nimport { ChainName } from '@layerzerolabs/layerzero-definitions';\nimport type { IsAny } from '@layerzerolabs/typescript-utils';\n\nimport { upgradeableConfigSchema } from '../upgrade';\n\nexport const baseResourceSchema = z.object({\n id: z.string(), // account-unique ID for this resource\n name: z.string().optional(), // display name for this resource\n resourceBaseType: z.string() as z.ZodString | z.ZodLiteral,\n});\n\nexport const baseMeshResourceSchema = z.object({\n ...baseResourceSchema.shape,\n resourceBaseType: z.literal('MESH'),\n});\n\nexport const baseContractResourceSchema = z.object({\n ...baseResourceSchema.shape,\n resourceBaseType: z.literal('CONTRACT'),\n chainName: z.enum(ChainName),\n upgradeConfig: upgradeableConfigSchema.optional(),\n verifyContract: z.boolean().optional(),\n\n chainConfig: z.any().optional(),\n});\n\nexport type BaseResource = z.infer<typeof baseResourceSchema>;\nexport type BaseMeshResource = z.infer<typeof baseMeshResourceSchema>;\nexport type BaseContractResource = z.infer<typeof baseContractResourceSchema>;\n\nexport type ContractResourceDependency<T extends BaseContractResource = BaseContractResource> = {\n id: string;\n /** WARNING: this field is not present at runtime */\n __dependencyType: T;\n ['__CONTRACT_RESOURCE_DEPENDENCY']: true;\n};\n\nexport const isContractResourceDependency = (o: any): o is ContractResourceDependency =>\n o != null &&\n typeof o === 'object' &&\n (o as ContractResourceDependency).__CONTRACT_RESOURCE_DEPENDENCY;\n\nexport type ContractResourceDependencySchema<T extends typeof baseContractResourceSchema> =\n z.ZodType<ContractResourceDependency<z.infer<T>>>;\n\nexport const contractResourceDependencySchema: ContractResourceDependencySchema<\n typeof baseContractResourceSchema\n> = z.custom<ContractResourceDependency>(isContractResourceDependency);\n\nexport const contractResourceDependencySchemaFor = <T extends typeof baseContractResourceSchema>(\n // FIXME use this to generate a real schema\n _resource: T,\n): ContractResourceDependencySchema<T> =>\n z.custom<ContractResourceDependency<z.infer<T>>>(isContractResourceDependency);\n\nexport type ResolvedContractResourceDependency<T extends BaseContractResource> = {\n id: string;\n resource: T;\n address: NormalizedHexString;\n};\n\nexport type ResolvedContractResourceDependencySchema<T extends typeof baseContractResourceSchema> =\n z.ZodType<ResolvedContractResourceDependency<z.infer<T>>>;\n\nexport const resolvedContractResourceDependencySchema: ResolvedContractResourceDependencySchema<any> =\n // FIXME could be a real schema\n z.custom<ResolvedContractResourceDependency<any>>();\n\nexport type MeshResourceDependency<T extends BaseMeshResource = BaseMeshResource> = {\n id: string;\n /** WARNING: this field is not present at runtime */\n __dependencyType: T;\n ['__MESH_RESOURCE_DEPENDENCY']: true;\n};\n\nexport const isMeshResourceDependency = (o: any): o is MeshResourceDependency =>\n o != null && typeof o === 'object' && (o as MeshResourceDependency).__MESH_RESOURCE_DEPENDENCY;\n\nexport type MeshResourceDependencySchema<T extends typeof baseMeshResourceSchema> = z.ZodType<\n MeshResourceDependency<z.infer<T>>\n>;\n\nexport const meshResourceDependencySchema: MeshResourceDependencySchema<\n typeof baseMeshResourceSchema\n> = z.custom<MeshResourceDependency>(isMeshResourceDependency);\n\nexport const meshResourceDependencySchemaFor = <T extends typeof baseMeshResourceSchema>(\n // FIXME use this to generate a real schema\n _resource: T,\n): MeshResourceDependencySchema<T> =>\n z.custom<MeshResourceDependency<z.infer<T>>>(isMeshResourceDependency);\n\nexport type ResolvedMeshResourceDependency<T extends BaseMeshResource> = {\n id: string;\n resource: T;\n // TODO: is there any other resolved information we want to inject here?\n};\n\nexport type ResolvedMeshResourceDependencySchema<T extends typeof baseMeshResourceSchema> =\n // FIXME could be a real schema\n z.ZodType<ResolvedMeshResourceDependency<z.infer<T>>>;\n\nexport const resolvedMeshResourceDependencySchema: ResolvedMeshResourceDependencySchema<any> =\n z.custom<ResolvedMeshResourceDependency<any>>();\n\n// FIXME this could be recursive, probably overkill\nexport type ResolvedResourceSchema<Resource extends typeof baseResourceSchema> = z.ZodObject<\n {\n [K in keyof Resource['shape']]: Resource['shape'][K] extends infer R extends z.ZodType\n ? R extends z.ZodAny\n ? R\n : R extends z.ZodOptional<z.ZodAny>\n ? R\n : R extends ContractResourceDependencySchema<infer I>\n ? ResolvedContractResourceDependencySchema<I>\n : R extends z.ZodOptional<ContractResourceDependencySchema<infer I>>\n ? z.ZodOptional<ResolvedContractResourceDependencySchema<I>>\n : R extends MeshResourceDependencySchema<infer I>\n ? ResolvedMeshResourceDependencySchema<I>\n : R extends z.ZodOptional<MeshResourceDependencySchema<infer I>>\n ? z.ZodOptional<ResolvedMeshResourceDependencySchema<I>>\n : R\n : never;\n },\n z.core.$strip\n>;\n\n// FIXME this could be recursive, probably overkill\nexport type ResolvedResource<Resource extends BaseResource> = {\n [K in keyof Resource]: Resource[K] extends infer R\n ? R extends undefined\n ? R\n : IsAny<R> extends true\n ? R\n : IsAny<Exclude<R, undefined>> extends true\n ? R\n : R extends ContractResourceDependency<infer I>\n ? ResolvedContractResourceDependency<I>\n : R extends ContractResourceDependency<infer I> | undefined\n ? ResolvedContractResourceDependency<I> | undefined\n : R extends MeshResourceDependency<infer I>\n ? ResolvedMeshResourceDependency<I>\n : R extends MeshResourceDependency<infer I> | undefined\n ? ResolvedMeshResourceDependency<I> | undefined\n : R\n : never;\n};\n\nexport const extractContractResourceDependencyIds = <Resource extends BaseResource>(\n resource: Resource,\n) =>\n Object.entries(resource).filter(([, id]) => isContractResourceDependency(id)) as unknown as [\n prop: string,\n id: ContractResourceDependency,\n ][];\n\nexport const extractMeshResourceDependencyIds = <Resource extends BaseResource>(\n resource: Resource,\n) =>\n Object.entries(resource).filter(([, id]) => isMeshResourceDependency(id)) as unknown as [\n prop: string,\n id: MeshResourceDependency,\n ][];\n\n// FIXME implement runtime\nexport const createResolvedResourceSchema = <Resource extends typeof baseResourceSchema>(\n resource: Resource,\n) => resource as ResolvedResourceSchema<Resource>;\n"]}
package/dist/NYPXCJOJ.js DELETED
@@ -1,40 +0,0 @@
1
- import { upgradeableConfigSchema } from './RDYET6CZ.js';
2
- import { __name } from './VUOMXK5T.js';
3
- import z from 'zod';
4
- import { ChainName } from '@layerzerolabs/layerzero-definitions';
5
-
6
- var baseResourceSchema = z.object({
7
- id: z.string(),
8
- name: z.string().optional(),
9
- resourceBaseType: z.string()
10
- });
11
- var baseMeshResourceSchema = z.object({
12
- ...baseResourceSchema.shape,
13
- resourceBaseType: z.literal("MESH")
14
- });
15
- var baseContractResourceSchema = z.object({
16
- ...baseResourceSchema.shape,
17
- resourceBaseType: z.literal("CONTRACT"),
18
- chainName: z.enum(ChainName),
19
- upgradeConfig: upgradeableConfigSchema.optional(),
20
- verifyContract: z.boolean().optional(),
21
- chainConfig: z.any().optional()
22
- });
23
- var isContractResourceDependency = /* @__PURE__ */ __name((o) => o != null && typeof o === "object" && o.__CONTRACT_RESOURCE_DEPENDENCY, "isContractResourceDependency");
24
- var contractResourceDependencySchema = z.custom(isContractResourceDependency);
25
- var contractResourceDependencySchemaFor = /* @__PURE__ */ __name((_resource) => z.custom(isContractResourceDependency), "contractResourceDependencySchemaFor");
26
- var resolvedContractResourceDependencySchema = (
27
- // FIXME could be a real schema
28
- z.custom()
29
- );
30
- var isMeshResourceDependency = /* @__PURE__ */ __name((o) => o != null && typeof o === "object" && o.__MESH_RESOURCE_DEPENDENCY, "isMeshResourceDependency");
31
- var meshResourceDependencySchema = z.custom(isMeshResourceDependency);
32
- var meshResourceDependencySchemaFor = /* @__PURE__ */ __name((_resource) => z.custom(isMeshResourceDependency), "meshResourceDependencySchemaFor");
33
- var resolvedMeshResourceDependencySchema = z.custom();
34
- var extractContractResourceDependencyIds = /* @__PURE__ */ __name((resource) => Object.entries(resource).filter(([, id]) => isContractResourceDependency(id)), "extractContractResourceDependencyIds");
35
- var extractMeshResourceDependencyIds = /* @__PURE__ */ __name((resource) => Object.entries(resource).filter(([, id]) => isMeshResourceDependency(id)), "extractMeshResourceDependencyIds");
36
- var createResolvedResourceSchema = /* @__PURE__ */ __name((resource) => resource, "createResolvedResourceSchema");
37
-
38
- export { baseContractResourceSchema, baseMeshResourceSchema, baseResourceSchema, contractResourceDependencySchema, contractResourceDependencySchemaFor, createResolvedResourceSchema, extractContractResourceDependencyIds, extractMeshResourceDependencyIds, isContractResourceDependency, isMeshResourceDependency, meshResourceDependencySchema, meshResourceDependencySchemaFor, resolvedContractResourceDependencySchema, resolvedMeshResourceDependencySchema };
39
- //# sourceMappingURL=NYPXCJOJ.js.map
40
- //# sourceMappingURL=NYPXCJOJ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/deploy/resources.ts"],"names":["baseResourceSchema","z","object","id","string","name","optional","resourceBaseType","baseMeshResourceSchema","shape","literal","baseContractResourceSchema","chainName","enum","ChainName","upgradeConfig","upgradeableConfigSchema","verifyContract","boolean","chainConfig","any","isContractResourceDependency","o","__CONTRACT_RESOURCE_DEPENDENCY","contractResourceDependencySchema","custom","contractResourceDependencySchemaFor","_resource","resolvedContractResourceDependencySchema","isMeshResourceDependency","__MESH_RESOURCE_DEPENDENCY","meshResourceDependencySchema","meshResourceDependencySchemaFor","resolvedMeshResourceDependencySchema","extractContractResourceDependencyIds","resource","Object","entries","filter","extractMeshResourceDependencyIds","createResolvedResourceSchema"],"mappings":";;;;;AAQO,IAAMA,kBAAAA,GAAqBC,EAAEC,MAAAA,CAAO;AACvCC,EAAAA,EAAAA,EAAIF,EAAEG,MAAAA,EAAM;EACZC,IAAAA,EAAMJ,CAAAA,CAAEG,MAAAA,EAAM,CAAGE,QAAAA,EAAQ;AACzBC,EAAAA,gBAAAA,EAAkBN,EAAEG,MAAAA;AACxB,CAAA;AAEO,IAAMI,sBAAAA,GAAyBP,EAAEC,MAAAA,CAAO;AAC3C,EAAA,GAAGF,kBAAAA,CAAmBS,KAAAA;EACtBF,gBAAAA,EAAkBN,CAAAA,CAAES,QAAQ,MAAA;AAChC,CAAA;AAEO,IAAMC,0BAAAA,GAA6BV,EAAEC,MAAAA,CAAO;AAC/C,EAAA,GAAGF,kBAAAA,CAAmBS,KAAAA;EACtBF,gBAAAA,EAAkBN,CAAAA,CAAES,QAAQ,UAAA,CAAA;EAC5BE,SAAAA,EAAWX,CAAAA,CAAEY,KAAKC,SAAAA,CAAAA;AAClBC,EAAAA,aAAAA,EAAeC,wBAAwBV,QAAAA,EAAQ;EAC/CW,cAAAA,EAAgBhB,CAAAA,CAAEiB,OAAAA,EAAO,CAAGZ,QAAAA,EAAQ;EAEpCa,WAAAA,EAAalB,CAAAA,CAAEmB,GAAAA,EAAG,CAAGd,QAAAA;AACzB,CAAA;AAaO,IAAMe,4BAAAA,2BAAgCC,CAAAA,KACzCA,CAAAA,IAAK,QACL,OAAOA,CAAAA,KAAM,QAAA,IACZA,CAAAA,CAAiCC,8BAAAA,EAHM,8BAAA;AAQrC,IAAMC,gCAAAA,GAETvB,CAAAA,CAAEwB,MAAAA,CAAmCJ,4BAAAA;AAElC,IAAMK,sDAAsC,MAAA,CAAA,CAE/CC,SAAAA,KAEA1B,CAAAA,CAAEwB,MAAAA,CAA+CJ,4BAAAA,CAAAA,EAJF,qCAAA;AAe5C,IAAMO,wCAAAA;;AAET3B,EAAAA,CAAAA,CAAEwB,MAAAA;;AASC,IAAMI,wBAAAA,2BAA4BP,CAAAA,KACrCA,CAAAA,IAAK,QAAQ,OAAOA,CAAAA,KAAM,QAAA,IAAaA,CAAAA,CAA6BQ,0BAAAA,EADhC,0BAAA;AAOjC,IAAMC,4BAAAA,GAET9B,CAAAA,CAAEwB,MAAAA,CAA+BI,wBAAAA;AAE9B,IAAMG,kDAAkC,MAAA,CAAA,CAE3CL,SAAAA,KAEA1B,CAAAA,CAAEwB,MAAAA,CAA2CI,wBAAAA,CAAAA,EAJF,iCAAA;AAgBxC,IAAMI,oCAAAA,GACThC,EAAEwB,MAAAA;AA6CC,IAAMS,uDAAuC,MAAA,CAAA,CAChDC,QAAAA,KAEAC,MAAAA,CAAOC,OAAAA,CAAQF,QAAAA,CAAAA,CAAUG,MAAAA,CAAO,CAAC,GAAGnC,EAAAA,CAAAA,KAAQkB,4BAAAA,CAA6BlB,EAAAA,CAAAA,CAAAA,EAHzB,sCAAA;AAQ7C,IAAMoC,mDAAmC,MAAA,CAAA,CAC5CJ,QAAAA,KAEAC,MAAAA,CAAOC,OAAAA,CAAQF,QAAAA,CAAAA,CAAUG,MAAAA,CAAO,CAAC,GAAGnC,EAAAA,CAAAA,KAAQ0B,wBAAAA,CAAyB1B,EAAAA,CAAAA,CAAAA,EAHzB,kCAAA;AASzC,IAAMqC,4BAAAA,mBAA+B,MAAA,CAAA,CACxCL,QAAAA,KACCA,QAAAA,EAFuC,8BAAA","file":"NYPXCJOJ.js","sourcesContent":["import z from 'zod';\n\nimport type { NormalizedHexString } from '@layerzerolabs/common-chain-model';\nimport { ChainName } from '@layerzerolabs/layerzero-definitions';\nimport type { IsAny } from '@layerzerolabs/typescript-utils';\n\nimport { upgradeableConfigSchema } from '../upgrade';\n\nexport const baseResourceSchema = z.object({\n id: z.string(), // account-unique ID for this resource\n name: z.string().optional(), // display name for this resource\n resourceBaseType: z.string() as z.ZodString | z.ZodLiteral,\n});\n\nexport const baseMeshResourceSchema = z.object({\n ...baseResourceSchema.shape,\n resourceBaseType: z.literal('MESH'),\n});\n\nexport const baseContractResourceSchema = z.object({\n ...baseResourceSchema.shape,\n resourceBaseType: z.literal('CONTRACT'),\n chainName: z.enum(ChainName),\n upgradeConfig: upgradeableConfigSchema.optional(),\n verifyContract: z.boolean().optional(),\n\n chainConfig: z.any().optional(),\n});\n\nexport type BaseResource = z.infer<typeof baseResourceSchema>;\nexport type BaseMeshResource = z.infer<typeof baseMeshResourceSchema>;\nexport type BaseContractResource = z.infer<typeof baseContractResourceSchema>;\n\nexport type ContractResourceDependency<T extends BaseContractResource = BaseContractResource> = {\n id: string;\n /** WARNING: this field is not present at runtime */\n __dependencyType: T;\n ['__CONTRACT_RESOURCE_DEPENDENCY']: true;\n};\n\nexport const isContractResourceDependency = (o: any): o is ContractResourceDependency =>\n o != null &&\n typeof o === 'object' &&\n (o as ContractResourceDependency).__CONTRACT_RESOURCE_DEPENDENCY;\n\nexport type ContractResourceDependencySchema<T extends typeof baseContractResourceSchema> =\n z.ZodType<ContractResourceDependency<z.infer<T>>>;\n\nexport const contractResourceDependencySchema: ContractResourceDependencySchema<\n typeof baseContractResourceSchema\n> = z.custom<ContractResourceDependency>(isContractResourceDependency);\n\nexport const contractResourceDependencySchemaFor = <T extends typeof baseContractResourceSchema>(\n // FIXME use this to generate a real schema\n _resource: T,\n): ContractResourceDependencySchema<T> =>\n z.custom<ContractResourceDependency<z.infer<T>>>(isContractResourceDependency);\n\nexport type ResolvedContractResourceDependency<T extends BaseContractResource> = {\n id: string;\n resource: T;\n address: NormalizedHexString;\n};\n\nexport type ResolvedContractResourceDependencySchema<T extends typeof baseContractResourceSchema> =\n z.ZodType<ResolvedContractResourceDependency<z.infer<T>>>;\n\nexport const resolvedContractResourceDependencySchema: ResolvedContractResourceDependencySchema<any> =\n // FIXME could be a real schema\n z.custom<ResolvedContractResourceDependency<any>>();\n\nexport type MeshResourceDependency<T extends BaseMeshResource = BaseMeshResource> = {\n id: string;\n /** WARNING: this field is not present at runtime */\n __dependencyType: T;\n ['__MESH_RESOURCE_DEPENDENCY']: true;\n};\n\nexport const isMeshResourceDependency = (o: any): o is MeshResourceDependency =>\n o != null && typeof o === 'object' && (o as MeshResourceDependency).__MESH_RESOURCE_DEPENDENCY;\n\nexport type MeshResourceDependencySchema<T extends typeof baseMeshResourceSchema> = z.ZodType<\n MeshResourceDependency<z.infer<T>>\n>;\n\nexport const meshResourceDependencySchema: MeshResourceDependencySchema<\n typeof baseMeshResourceSchema\n> = z.custom<MeshResourceDependency>(isMeshResourceDependency);\n\nexport const meshResourceDependencySchemaFor = <T extends typeof baseMeshResourceSchema>(\n // FIXME use this to generate a real schema\n _resource: T,\n): MeshResourceDependencySchema<T> =>\n z.custom<MeshResourceDependency<z.infer<T>>>(isMeshResourceDependency);\n\nexport type ResolvedMeshResourceDependency<T extends BaseMeshResource> = {\n id: string;\n resource: T;\n // TODO: is there any other resolved information we want to inject here?\n};\n\nexport type ResolvedMeshResourceDependencySchema<T extends typeof baseMeshResourceSchema> =\n // FIXME could be a real schema\n z.ZodType<ResolvedMeshResourceDependency<z.infer<T>>>;\n\nexport const resolvedMeshResourceDependencySchema: ResolvedMeshResourceDependencySchema<any> =\n z.custom<ResolvedMeshResourceDependency<any>>();\n\n// FIXME this could be recursive, probably overkill\nexport type ResolvedResourceSchema<Resource extends typeof baseResourceSchema> = z.ZodObject<\n {\n [K in keyof Resource['shape']]: Resource['shape'][K] extends infer R extends z.ZodType\n ? R extends z.ZodAny\n ? R\n : R extends z.ZodOptional<z.ZodAny>\n ? R\n : R extends ContractResourceDependencySchema<infer I>\n ? ResolvedContractResourceDependencySchema<I>\n : R extends z.ZodOptional<ContractResourceDependencySchema<infer I>>\n ? z.ZodOptional<ResolvedContractResourceDependencySchema<I>>\n : R extends MeshResourceDependencySchema<infer I>\n ? ResolvedMeshResourceDependencySchema<I>\n : R extends z.ZodOptional<MeshResourceDependencySchema<infer I>>\n ? z.ZodOptional<ResolvedMeshResourceDependencySchema<I>>\n : R\n : never;\n },\n z.core.$strip\n>;\n\n// FIXME this could be recursive, probably overkill\nexport type ResolvedResource<Resource extends BaseResource> = {\n [K in keyof Resource]: Resource[K] extends infer R\n ? R extends undefined\n ? R\n : IsAny<R> extends true\n ? R\n : IsAny<Exclude<R, undefined>> extends true\n ? R\n : R extends ContractResourceDependency<infer I>\n ? ResolvedContractResourceDependency<I>\n : R extends ContractResourceDependency<infer I> | undefined\n ? ResolvedContractResourceDependency<I> | undefined\n : R extends MeshResourceDependency<infer I>\n ? ResolvedMeshResourceDependency<I>\n : R extends MeshResourceDependency<infer I> | undefined\n ? ResolvedMeshResourceDependency<I> | undefined\n : R\n : never;\n};\n\nexport const extractContractResourceDependencyIds = <Resource extends BaseResource>(\n resource: Resource,\n) =>\n Object.entries(resource).filter(([, id]) => isContractResourceDependency(id)) as unknown as [\n prop: string,\n id: ContractResourceDependency,\n ][];\n\nexport const extractMeshResourceDependencyIds = <Resource extends BaseResource>(\n resource: Resource,\n) =>\n Object.entries(resource).filter(([, id]) => isMeshResourceDependency(id)) as unknown as [\n prop: string,\n id: MeshResourceDependency,\n ][];\n\n// FIXME implement runtime\nexport const createResolvedResourceSchema = <Resource extends typeof baseResourceSchema>(\n resource: Resource,\n) => resource as ResolvedResourceSchema<Resource>;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/deploy/resourceBuilder.ts"],"names":["createResourceBuilder","_resourceSchema","resourceBaseType","type","resource","id","__CONTRACT_RESOURCE_DEPENDENCY","__dependencyType","build","__MESH_RESOURCE_DEPENDENCY","Error"],"mappings":";;;AAoBO,IAAMA,qBAAAA,2BAELC,eAAAA,EACA,EACIC,kBACAC,IAAAA,EAAI,KAMZ,CACIC,QAAAA,KAAAA;AAMA,EAAA,IAAIF,qBAAqB,UAAA,EAAY;AACjC,IAAA,OAAO;MACHG,EAAAA,EAAI;QACAC,8BAAAA,EAAgC,IAAA;QAChCC,gBAAAA,EAAkB,IAAA;AAClBF,QAAAA,EAAAA,EAAID,QAAAA,CAASC;AACjB,OAAA;AACAG,MAAAA,KAAAA,kBAAO,MAAA,CAAA,OAAO;QAAE,GAAGJ,QAAAA;AAAUD,QAAAA,IAAAA;AAAMD,QAAAA;OAAiB,CAAA,EAA7C,OAAA;AACX,KAAA;AACJ,EAAA;AACA,EAAA,IAAIA,qBAAqB,MAAA,EAAQ;AAC7B,IAAA,OAAO;MACHG,EAAAA,EAAI;QACAI,0BAAAA,EAA4B,IAAA;;QAE5BF,gBAAAA,EAAkB,IAAA;AAClBF,QAAAA,EAAAA,EAAID,QAAAA,CAASC;AACjB,OAAA;AACAG,MAAAA,KAAAA,kBAAO,MAAA,CAAA,OAAO;QAAE,GAAGJ,QAAAA;AAAUD,QAAAA,IAAAA;AAAMD,QAAAA;OAAiB,CAAA,EAA7C,OAAA;AACX,KAAA;AACJ,EAAA;AAEA,EAAA,MAAM,IAAIQ,KAAAA,CAAM,CAAA,8BAAA,EAAiCR,gBAAAA,CAAAA,CAAAA,CAAmB,CAAA;AACxE,CAAA,EAxCA,uBAAA","file":"WR5OHKNE.js","sourcesContent":["import type { z } from 'zod';\n\nimport type {\n BaseContractResource,\n BaseMeshResource,\n baseResourceSchema,\n ContractResourceDependency,\n MeshResourceDependency,\n} from './resources';\n\nexport type ContractResourceBuilderResult<Resource extends BaseContractResource> = {\n id: ContractResourceDependency<Resource>;\n build: () => Resource;\n};\n\nexport type MeshResourceBuilderResult<Resource extends BaseMeshResource> = {\n id: MeshResourceDependency<Resource>;\n build: () => Resource;\n};\n\nexport const createResourceBuilder =\n <T extends typeof baseResourceSchema, U extends Omit<z.infer<T>, 'type' | 'resourceBaseType'>>(\n _resourceSchema: T,\n {\n resourceBaseType,\n type,\n }: {\n resourceBaseType: 'CONTRACT' | 'MESH';\n type: T['shape'] extends { type: z.ZodType<infer Type> } ? Type : undefined;\n },\n ) =>\n (\n resource: U,\n ): z.infer<T> extends BaseContractResource\n ? ContractResourceBuilderResult<z.infer<T>>\n : z.infer<T> extends BaseMeshResource\n ? MeshResourceBuilderResult<z.infer<T>>\n : never => {\n if (resourceBaseType === 'CONTRACT') {\n return {\n id: {\n __CONTRACT_RESOURCE_DEPENDENCY: true,\n __dependencyType: null as any,\n id: resource.id,\n },\n build: () => ({ ...resource, type, resourceBaseType }),\n } satisfies ContractResourceBuilderResult<any> as any;\n }\n if (resourceBaseType === 'MESH') {\n return {\n id: {\n __MESH_RESOURCE_DEPENDENCY: true,\n // this is just a type brand, doesnt need to exist\n __dependencyType: null as any,\n id: resource.id,\n },\n build: () => ({ ...resource, type, resourceBaseType }),\n } satisfies MeshResourceBuilderResult<any> as any;\n }\n\n throw new Error(`Can't handle resouceBaseType \"${resourceBaseType}\"`);\n };\n"]}