@taqueria/protocol 0.28.5 → 0.28.17
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.
- package/EphemeralState.js.map +1 -1
- package/SHA256.js +0 -4
- package/SHA256.js.map +1 -1
- package/SanitizedAbsPath.js +0 -4
- package/SanitizedAbsPath.js.map +1 -1
- package/SanitizedArgs.js +0 -4
- package/SanitizedArgs.js.map +1 -1
- package/i18n.js +0 -5
- package/i18n.js.map +1 -1
- package/index.js +0 -5
- package/index.js.map +1 -1
- package/package.json +16 -15
- package/taqueria-protocol-types.js +0 -5
- package/taqueria-protocol-types.js.map +1 -1
- package/types-config-files.js +0 -20
- package/types-config-files.js.map +1 -1
package/types-config-files.js
CHANGED
|
@@ -98,9 +98,7 @@ var transformConfigFileV1ToConfigFileSetV2 = (configFileV1) => {
|
|
|
98
98
|
environmentDefault: (_a = config.environment) == null ? void 0 : _a.default,
|
|
99
99
|
environments: Object.fromEntries(
|
|
100
100
|
Object.entries((_b = config.environment) != null ? _b : {}).filter(([k, v]) => k !== `default`).map(([k, v]) => [k, v]).map(([k, v]) => [k, {
|
|
101
|
-
// Known fields
|
|
102
101
|
type: v.sandboxes.length ? `flextesa` : `simple`,
|
|
103
|
-
// Unknown fields
|
|
104
102
|
...(() => {
|
|
105
103
|
var _a2, _b2, _c, _d, _e, _f, _g, _h;
|
|
106
104
|
const vClone = { ...v };
|
|
@@ -122,11 +120,8 @@ var transformConfigFileV1ToConfigFileSetV2 = (configFileV1) => {
|
|
|
122
120
|
}
|
|
123
121
|
return vClone;
|
|
124
122
|
})(),
|
|
125
|
-
// Preserve sandbox or network name
|
|
126
123
|
networkName: v.networks[0],
|
|
127
124
|
sandboxName: v.sandboxes[0],
|
|
128
|
-
// Fields from the first sandbox or network (there should be only 1)
|
|
129
|
-
// These overwrite fields in environment
|
|
130
125
|
...[
|
|
131
126
|
...v.networks.map((k2) => {
|
|
132
127
|
var _a2;
|
|
@@ -150,9 +145,7 @@ var transformConfigToConfigFileV2 = (config) => {
|
|
|
150
145
|
var _a, _b;
|
|
151
146
|
const environmentsV2Raw = Object.fromEntries(
|
|
152
147
|
Object.entries(config.environment).filter(([k]) => k !== `default`).map(([k, v]) => [k, v]).map(([k, v]) => [k, {
|
|
153
|
-
// Known fields
|
|
154
148
|
type: v.sandboxes.length ? `flextesa` : `simple`,
|
|
155
|
-
// Unknown fields
|
|
156
149
|
...(() => {
|
|
157
150
|
var _a2, _b2, _c, _d, _e;
|
|
158
151
|
const vClone = { ...v };
|
|
@@ -174,11 +167,8 @@ var transformConfigToConfigFileV2 = (config) => {
|
|
|
174
167
|
}
|
|
175
168
|
return vClone;
|
|
176
169
|
})(),
|
|
177
|
-
// Preserve sandbox or network name
|
|
178
170
|
networkName: v.networks[0],
|
|
179
171
|
sandboxName: v.sandboxes[0],
|
|
180
|
-
// Fields from the first sandbox or network (there should be only 1)
|
|
181
|
-
// These overwrite fields in environment
|
|
182
172
|
...[
|
|
183
173
|
...v.networks.map((k2) => {
|
|
184
174
|
var _a2;
|
|
@@ -256,7 +246,6 @@ var transformConfigFileV2ToConfig = (configFileSetV2) => {
|
|
|
256
246
|
key: k,
|
|
257
247
|
value: {
|
|
258
248
|
...v,
|
|
259
|
-
// merge in the fields from the envFile
|
|
260
249
|
...(_a2 = environmentFilesV2[k]) != null ? _a2 : {}
|
|
261
250
|
}
|
|
262
251
|
};
|
|
@@ -283,7 +272,6 @@ var transformConfigFileV2ToConfig = (configFileSetV2) => {
|
|
|
283
272
|
const simpleEnvironments = environments.filter((x) => x.value.type === `simple`);
|
|
284
273
|
const sandboxEnvironments = environments.filter((x) => x.value.type === `flextesa`);
|
|
285
274
|
const config = {
|
|
286
|
-
// Common fields
|
|
287
275
|
...(() => {
|
|
288
276
|
const vClone = { ...configFileV2 };
|
|
289
277
|
delete vClone.version;
|
|
@@ -291,7 +279,6 @@ var transformConfigFileV2ToConfig = (configFileSetV2) => {
|
|
|
291
279
|
delete vClone.environments;
|
|
292
280
|
return vClone;
|
|
293
281
|
})(),
|
|
294
|
-
// Transformed fields
|
|
295
282
|
accounts: !configFileV2.accounts ? void 0 : Object.fromEntries(
|
|
296
283
|
Object.entries(configFileV2.accounts).map(([k, v]) => [k, `${v.balance.amount}`])
|
|
297
284
|
),
|
|
@@ -300,19 +287,14 @@ var transformConfigFileV2ToConfig = (configFileSetV2) => {
|
|
|
300
287
|
...Object.fromEntries(environments.map((x) => {
|
|
301
288
|
var _a2, _b2;
|
|
302
289
|
return [x.key, {
|
|
303
|
-
// Network and sandbox
|
|
304
290
|
networks: x.value.type !== `simple` ? [] : [
|
|
305
|
-
// use same name as enviroment by default
|
|
306
291
|
(_a2 = x.value.networkName) != null ? _a2 : `${x.key}`
|
|
307
292
|
],
|
|
308
293
|
sandboxes: x.value.type !== `flextesa` ? [] : [
|
|
309
|
-
// use same name as enviroment by default
|
|
310
294
|
(_b2 = x.value.sandboxName) != null ? _b2 : `${x.key}`
|
|
311
295
|
],
|
|
312
|
-
// Known environment fields
|
|
313
296
|
storage: x.value.storage,
|
|
314
297
|
aliases: x.value.contracts,
|
|
315
|
-
// Unknown fields might need to be in the environment
|
|
316
298
|
...getUnknownFields(x, "environment")
|
|
317
299
|
}];
|
|
318
300
|
}))
|
|
@@ -322,7 +304,6 @@ var transformConfigFileV2ToConfig = (configFileSetV2) => {
|
|
|
322
304
|
return [(_a2 = x.value.networkName) != null ? _a2 : `${x.key}`, {
|
|
323
305
|
label: (_b2 = x.value.label) != null ? _b2 : ``,
|
|
324
306
|
rpcUrl: (_c2 = x.value.rpcUrl) != null ? _c2 : ``,
|
|
325
|
-
// Unknown fields might need to be in the network or sandbox
|
|
326
307
|
...getUnknownFields(x, "network"),
|
|
327
308
|
...["accounts", "contracts"].reduce(
|
|
328
309
|
(retval, fieldName) => {
|
|
@@ -348,7 +329,6 @@ var transformConfigFileV2ToConfig = (configFileSetV2) => {
|
|
|
348
329
|
return [(_a2 = x.value.sandboxName) != null ? _a2 : `${x.key}`, {
|
|
349
330
|
label: (_b2 = x.value.label) != null ? _b2 : ``,
|
|
350
331
|
rpcUrl: (_c2 = x.value.rpcUrl) != null ? _c2 : ``,
|
|
351
|
-
// Unknown fields might need to be in the network or sandbox
|
|
352
332
|
...getUnknownFields(x, "sandbox"),
|
|
353
333
|
...(() => {
|
|
354
334
|
const environment = x.value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["types-config-files.ts"],"sourcesContent":["import type {\n\tConfig,\n\tConfigEnvironmentFileV2,\n\tConfigFileV1,\n\tConfigFileV2,\n\tEnvironment,\n\tNetworkConfig,\n\tSandboxAccounts,\n\tSandboxConfig,\n} from './types';\n\nexport type ConfigFileSetV2 = {\n\tconfig: ConfigFileV2;\n\tenvironments: { [name: string]: ConfigEnvironmentFileV2 };\n};\n\nexport const readJsonFileInterceptConfig = (readJsonFile: <T>(filePath: string) => Promise<T>) =>\n\tasync <T>(filePath: string): Promise<T> => {\n\t\tif (filePath.endsWith(`.taq/config.json`)) {\n\t\t\treturn transformConfigFileV2ToConfig(await readConfigFiles(readJsonFile)(filePath)) as unknown as Promise<T>;\n\t\t}\n\n\t\treturn readJsonFile<T>(filePath);\n\t};\n\nexport const readConfigFiles = (readJsonFile: <T>(filePath: string) => Promise<T>) =>\n\tasync (configFilePath: string): Promise<ConfigFileSetV2> => {\n\t\tconst configFileObj = await readJsonFile(configFilePath);\n\n\t\tif ((configFileObj as ConfigFileV2).version !== `v2`) {\n\t\t\t// v1 - only file to load\n\t\t\tconst configFileSetV2 = transformConfigFileV1ToConfigFileSetV2(configFileObj as ConfigFileV1);\n\t\t\treturn configFileSetV2;\n\t\t}\n\n\t\t// Load env files\n\t\tconst configFileV2 = configFileObj as ConfigFileV2;\n\t\tconst envFiles = await Promise.all(\n\t\t\tObject.keys(configFileV2.environments ?? {}).map(async envName => {\n\t\t\t\ttry {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: envName,\n\t\t\t\t\t\tvalue: await readJsonFile(\n\t\t\t\t\t\t\tconfigFilePath.replace(`config.json`, `config.local.${envName}.json`),\n\t\t\t\t\t\t) as ConfigEnvironmentFileV2,\n\t\t\t\t\t};\n\t\t\t\t} catch {\n\t\t\t\t\t// ignore if file could not be read (no env file)\n\t\t\t\t\treturn {};\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\treturn {\n\t\t\tconfig: configFileV2,\n\t\t\tenvironments: Object.fromEntries(envFiles.filter(x => x.value).map(x => [x.key, x.value])),\n\t\t};\n\t};\n\nexport const writeJsonFileInterceptConfig = (writeJsonFile: (filePath: string) => (data: unknown) => Promise<string>) =>\n\t(filePath: string): ((data: unknown) => Promise<string>) => {\n\t\tif (filePath.endsWith(`.taq/config.json`)) {\n\t\t\treturn (async (config: Config) => {\n\t\t\t\t// DEBUG: write original file\n\t\t\t\t// await writeJsonFile(filePath.replace(`config.json`, `config.original-${Date.now()}.json`))(config);\n\n\t\t\t\treturn await writeConfigFiles(writeJsonFile)(filePath)(transformConfigToConfigFileV2(config));\n\t\t\t}) as (data: unknown) => Promise<string>;\n\t\t}\n\n\t\treturn writeJsonFile(filePath);\n\t};\n\nexport const writeConfigFiles = (writeJsonFile: (filePath: string) => (data: unknown) => Promise<string>) =>\n\t(configFilePath: string) =>\n\t\tasync (configFileSetV2: ConfigFileSetV2) => {\n\t\t\tconst configFileResult = await writeJsonFile(configFilePath)(configFileSetV2.config);\n\n\t\t\t// write the env files\n\t\t\tawait Promise.all(\n\t\t\t\tObject.entries(configFileSetV2.environments).map(async ([envName, value]) => {\n\t\t\t\t\tawait writeJsonFile(configFilePath.replace(`config.json`, `config.local.${envName}.json`))(value);\n\t\t\t\t}),\n\t\t\t);\n\n\t\t\treturn configFileResult;\n\t\t};\n\nconst removeUndefinedFields = <T>(x: T): T => {\n\treturn JSON.parse(JSON.stringify(x)) as T;\n};\n\n/** Migrate FileV1 to FileV2\n *\n * NOTE: Although this is nearly identical to transformConfigToConfigFileV2\n * This function should be sealed while the transformConfigToConfigFileV2\n * will change iteratively to become more like V2\n */\nexport const transformConfigFileV1ToConfigFileSetV2 = (configFileV1: ConfigFileV1): ConfigFileSetV2 => {\n\tconst config = configFileV1;\n\tconst configFileV2: ConfigFileV2 = {\n\t\tversion: `v2`,\n\t\tlanguage: config.language,\n\t\tmetadata: config.metadata,\n\t\tartifactsDir: config.artifactsDir,\n\t\tcontractsDir: config.contractsDir,\n\t\taccounts: !config.accounts\n\t\t\t? undefined\n\t\t\t: Object.fromEntries(\n\t\t\t\tObject.entries(config.accounts)\n\t\t\t\t\t.map(([k, v]) => [k, { balance: { amount: v, units: `mutez` } }]),\n\t\t\t),\n\t\tcontracts: config.contracts,\n\t\tenvironmentDefault: config.environment?.default as string,\n\t\tenvironments: Object.fromEntries(\n\t\t\tObject.entries(config.environment ?? {})\n\t\t\t\t.filter(([k, v]) => k !== `default`)\n\t\t\t\t.map(([k, v]) => [k, v] as [string, Environment])\n\t\t\t\t.map(([k, v]) => [k, {\n\t\t\t\t\t// Known fields\n\t\t\t\t\ttype: v.sandboxes.length ? `flextesa` : `simple`,\n\t\t\t\t\t// Unknown fields\n\t\t\t\t\t...((() => {\n\t\t\t\t\t\tconst vClone = { ...v } as Partial<typeof v> & ConfigEnvironmentFileV2;\n\t\t\t\t\t\tdelete vClone.networks;\n\t\t\t\t\t\tdelete vClone.sandboxes;\n\t\t\t\t\t\tdelete vClone.aliases;\n\t\t\t\t\t\tif (v.aliases) vClone.contracts = v.aliases;\n\n\t\t\t\t\t\tif (v.sandboxes?.[0]) {\n\t\t\t\t\t\t\tconst sandboxName = v.sandboxes[0];\n\t\t\t\t\t\t\tif (config.sandbox?.[sandboxName].accounts) {\n\t\t\t\t\t\t\t\tconst accountsClone = { ...config.sandbox[sandboxName].accounts };\n\t\t\t\t\t\t\t\tdelete accountsClone['default'];\n\t\t\t\t\t\t\t\tvClone.accounts = accountsClone as SandboxAccounts;\n\n\t\t\t\t\t\t\t\tif (config.sandbox?.[sandboxName]?.accounts?.['default']) {\n\t\t\t\t\t\t\t\t\tvClone.accountDefault = config.sandbox?.[sandboxName]?.accounts?.['default'] as string;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn vClone;\n\t\t\t\t\t})()),\n\t\t\t\t\t// Preserve sandbox or network name\n\t\t\t\t\tnetworkName: v.networks[0],\n\t\t\t\t\tsandboxName: v.sandboxes[0],\n\t\t\t\t\t// Fields from the first sandbox or network (there should be only 1)\n\t\t\t\t\t// These overwrite fields in environment\n\t\t\t\t\t...[\n\t\t\t\t\t\t...v.networks.map(k => config.network?.[k]),\n\t\t\t\t\t\t...v.sandboxes.map(k => {\n\t\t\t\t\t\t\tconst retval = { ...config.sandbox?.[k] };\n\t\t\t\t\t\t\tdelete retval['accounts'];\n\t\t\t\t\t\t\treturn retval;\n\t\t\t\t\t\t}),\n\t\t\t\t\t][0] as {},\n\t\t\t\t}]),\n\t\t),\n\t\tplugins: config.plugins,\n\t};\n\n\t// It is fine to leave everything in the main config V2 file since it will be parsed either way\n\tconst environmentsV2 = {};\n\treturn removeUndefinedFields({ config: configFileV2, environments: environmentsV2 });\n};\n\n// Object to FileV2\nexport const transformConfigToConfigFileV2 = (config: Config): ConfigFileSetV2 => {\n\tconst environmentsV2Raw = Object.fromEntries(\n\t\tObject.entries(config.environment)\n\t\t\t.filter(([k]) => k !== `default`)\n\t\t\t.map(([k, v]) => [k, v] as [string, Environment])\n\t\t\t.map(([k, v]) => [k, {\n\t\t\t\t// Known fields\n\t\t\t\ttype: v.sandboxes.length ? `flextesa` : `simple`,\n\t\t\t\t// Unknown fields\n\t\t\t\t...((() => {\n\t\t\t\t\tconst vClone = { ...v } as Partial<typeof v> & ConfigEnvironmentFileV2;\n\t\t\t\t\tdelete vClone.networks;\n\t\t\t\t\tdelete vClone.sandboxes;\n\t\t\t\t\tdelete vClone.aliases;\n\t\t\t\t\tif (v.aliases) vClone.contracts = v.aliases;\n\n\t\t\t\t\tif (v.sandboxes?.[0]) {\n\t\t\t\t\t\tconst sandboxName = v.sandboxes[0];\n\t\t\t\t\t\tif (config.sandbox?.[sandboxName]?.accounts) {\n\t\t\t\t\t\t\tconst accountsClone = { ...config.sandbox[sandboxName].accounts };\n\t\t\t\t\t\t\tdelete accountsClone['default'];\n\t\t\t\t\t\t\tvClone.accounts = accountsClone as SandboxAccounts;\n\n\t\t\t\t\t\t\tif (config.sandbox[sandboxName].accounts?.['default']) {\n\t\t\t\t\t\t\t\tvClone.accountDefault = config.sandbox[sandboxName].accounts?.['default'] as string;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn vClone;\n\t\t\t\t})()),\n\t\t\t\t// Preserve sandbox or network name\n\t\t\t\tnetworkName: v.networks[0],\n\t\t\t\tsandboxName: v.sandboxes[0],\n\t\t\t\t// Fields from the first sandbox or network (there should be only 1)\n\t\t\t\t// These overwrite fields in environment\n\t\t\t\t...[\n\t\t\t\t\t...v.networks.map(k => config.network?.[k]),\n\t\t\t\t\t...v.sandboxes.map(k => {\n\t\t\t\t\t\tconst retval = { ...config.sandbox?.[k] };\n\t\t\t\t\t\tdelete retval['accounts'];\n\t\t\t\t\t\treturn retval;\n\t\t\t\t\t}),\n\t\t\t\t][0] as {},\n\t\t\t}]),\n\t);\n\n\tconst configFileV2: ConfigFileV2 = {\n\t\tversion: `v2`,\n\t\tlanguage: config.language,\n\t\tmetadata: config.metadata,\n\t\tartifactsDir: config.artifactsDir,\n\t\tcontractsDir: config.contractsDir,\n\t\taccounts: !config.accounts\n\t\t\t? undefined\n\t\t\t: Object.fromEntries(\n\t\t\t\tObject.entries(config.accounts)\n\t\t\t\t\t.map(([k, v]) => [k, { balance: { amount: v, units: `mutez` } }]),\n\t\t\t),\n\t\tcontracts: config.contracts,\n\t\tenvironmentDefault: config.environment.default as string,\n\t\tenvironments: environmentsV2Raw,\n\t\tplugins: config.plugins,\n\t};\n\n\t// extract local only fields to environment specific files\n\t// This should only include fields that the environment plugin will replace if missing\n\t// This is providing a default implementation for a few known environments\n\tconst environmentsV2 = {} as ConfigFileSetV2['environments'];\n\n\tfor (const [envName, eMain] of Object.entries(configFileV2.environments ?? {})) {\n\t\t// clone eMain and delete fields from either main config or local env config\n\t\tconst eLocal = environmentsV2[envName] = { ...eMain };\n\n\t\tfor (const k of Object.keys(eMain)) {\n\t\t\tconst key = k as keyof typeof eMain;\n\n\t\t\tif (key === `type`) {\n\t\t\t\tdelete eLocal[key];\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Everything except label and protocol is local for sandbox\n\t\t\tif (eMain.type === 'flextesa') {\n\t\t\t\tif (\n\t\t\t\t\tk === 'label'\n\t\t\t\t\t|| k === 'protocol'\n\t\t\t\t) {\n\t\t\t\t\tdelete eLocal[key];\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For simple networks, keep the rpcUrl also\n\t\t\tif (eMain.type === 'simple') {\n\t\t\t\tif (\n\t\t\t\t\tk === 'label'\n\t\t\t\t\t|| k === 'protocol'\n\t\t\t\t\t|| k === 'rpcUrl'\n\t\t\t\t) {\n\t\t\t\t\tdelete eLocal[key];\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (k == 'aliases') {\n\t\t\t\teLocal['contracts'] = Object.entries(eLocal[key] ?? {}).reduce(\n\t\t\t\t\t(retval, [key, value]) => ({\n\t\t\t\t\t\t...retval,\n\t\t\t\t\t\t[key]: value,\n\t\t\t\t\t}),\n\t\t\t\t\t{},\n\t\t\t\t);\n\t\t\t\tdelete eLocal[key];\n\t\t\t}\n\n\t\t\t// Remove from main by default\n\t\t\tdelete eMain[key];\n\t\t}\n\t\tcontinue;\n\t}\n\n\treturn removeUndefinedFields({ config: configFileV2, environments: environmentsV2 });\n};\n\n// FileV2 to Object\nexport const transformConfigFileV2ToConfig = (configFileSetV2: ConfigFileSetV2): Config => {\n\tconst {\n\t\tconfig: configFileV2,\n\t\tenvironments: environmentFilesV2,\n\t} = configFileSetV2;\n\n\tconst environments = Object.entries(configFileV2.environments ?? {})\n\t\t.map(([k, v]) => ({\n\t\t\tkey: k,\n\t\t\tvalue: {\n\t\t\t\t...v,\n\t\t\t\t// merge in the fields from the envFile\n\t\t\t\t...environmentFilesV2[k] ?? {},\n\t\t\t} as typeof v & {\n\t\t\t\t// custom named network or sandbox\n\t\t\t\tnetworkName?: string;\n\t\t\t\tsandboxName?: string;\n\t\t\t\t// Known network/sandbox fields\n\t\t\t\tlabel?: string;\n\t\t\t\tprotocol?: string;\n\t\t\t\trpcUrl?: string;\n\t\t\t\t// Known environment fields\n\t\t\t\tstorage?: unknown;\n\t\t\t\taliases?: unknown;\n\t\t\t},\n\t\t}));\n\n\tconst getUnknownFields = (x: typeof environments[number], structure: 'environment' | 'network' | 'sandbox') => {\n\t\tif (structure === 'environment') {\n\t\t\t// environment should only have known fields\n\t\t\treturn {};\n\t\t}\n\n\t\t// Let all the unknown fields be placed in the network or sandbox\n\t\tconst unknownFields = ((() => {\n\t\t\tconst vClone = { ...x.value } as Partial<typeof x.value>;\n\t\t\t// Remove known fields that have a known structure\n\t\t\tdelete vClone.type;\n\t\t\tdelete vClone.networkName;\n\t\t\tdelete vClone.sandboxName;\n\t\t\tdelete vClone.label;\n\t\t\tdelete vClone.rpcUrl;\n\t\t\tdelete vClone.storage;\n\t\t\tdelete vClone.aliases;\n\t\t\tdelete vClone.contracts;\n\t\t\tdelete vClone.accounts;\n\t\t\treturn vClone;\n\t\t})());\n\n\t\treturn unknownFields;\n\t};\n\n\tconst simpleEnvironments = environments.filter(x => x.value.type === `simple`);\n\tconst sandboxEnvironments = environments.filter(x => x.value.type === `flextesa`);\n\n\tconst config: Config = {\n\t\t// Common fields\n\t\t...((() => {\n\t\t\tconst vClone = { ...configFileV2 } as Partial<typeof configFileV2>;\n\t\t\tdelete vClone.version;\n\t\t\tdelete vClone.environmentDefault;\n\t\t\tdelete vClone.environments;\n\t\t\treturn vClone;\n\t\t})()),\n\t\t// Transformed fields\n\t\taccounts: !configFileV2.accounts\n\t\t\t? undefined\n\t\t\t: Object.fromEntries(\n\t\t\t\tObject.entries(configFileV2.accounts)\n\t\t\t\t\t.map(([k, v]) => [k, `${v.balance.amount}`]),\n\t\t\t),\n\t\tenvironment: {\n\t\t\tdefault: configFileV2.environmentDefault ?? environments[0]?.key,\n\t\t\t...Object.fromEntries(environments.map(x => [x.key, {\n\t\t\t\t// Network and sandbox\n\t\t\t\tnetworks: x.value.type !== `simple` ? [] : [\n\t\t\t\t\t// use same name as enviroment by default\n\t\t\t\t\tx.value.networkName ?? `${x.key}`,\n\t\t\t\t],\n\t\t\t\tsandboxes: x.value.type !== `flextesa` ? [] : [\n\t\t\t\t\t// use same name as enviroment by default\n\t\t\t\t\tx.value.sandboxName ?? `${x.key}`,\n\t\t\t\t],\n\t\t\t\t// Known environment fields\n\t\t\t\tstorage: x.value.storage,\n\t\t\t\taliases: x.value.contracts,\n\t\t\t\t// Unknown fields might need to be in the environment\n\t\t\t\t...getUnknownFields(x, 'environment'),\n\t\t\t}])),\n\t\t},\n\t\tnetwork: !simpleEnvironments.length\n\t\t\t? undefined\n\t\t\t: Object.fromEntries(simpleEnvironments.map(x => [x.value.networkName ?? `${x.key}`, {\n\t\t\t\tlabel: x.value.label ?? ``,\n\t\t\t\trpcUrl: x.value.rpcUrl ?? ``,\n\t\t\t\t// Unknown fields might need to be in the network or sandbox\n\t\t\t\t...getUnknownFields(x, 'network') as {},\n\t\t\t\t...['accounts', 'contracts'].reduce(\n\t\t\t\t\t(retval, fieldName) => {\n\t\t\t\t\t\tif (fieldName === 'accounts') {\n\t\t\t\t\t\t\treturn x.value.accounts\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t...retval,\n\t\t\t\t\t\t\t\t\taccounts: x.value.accounts,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: retval;\n\t\t\t\t\t\t} else if (fieldName === 'contracts') {\n\t\t\t\t\t\t\treturn x.value.aliases\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t...retval,\n\t\t\t\t\t\t\t\t\tcontracts: x.value.aliases,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: retval;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn retval;\n\t\t\t\t\t},\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t}])) as Record<string, NetworkConfig>,\n\t\tsandbox: !sandboxEnvironments.length\n\t\t\t? undefined\n\t\t\t: Object.fromEntries(sandboxEnvironments.map(x => [x.value.sandboxName ?? `${x.key}`, {\n\t\t\t\tlabel: x.value.label ?? ``,\n\t\t\t\trpcUrl: x.value.rpcUrl ?? ``,\n\t\t\t\t// Unknown fields might need to be in the network or sandbox\n\t\t\t\t...getUnknownFields(x, 'sandbox') as {},\n\t\t\t\t...(() => {\n\t\t\t\t\tconst environment = x.value;\n\t\t\t\t\tif (environment && environment.accounts) {\n\t\t\t\t\t\treturn environment.accountDefault\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\taccounts: {\n\t\t\t\t\t\t\t\t\t...environment.accounts,\n\t\t\t\t\t\t\t\t\tdefault: environment.accountDefault,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\taccounts: {\n\t\t\t\t\t\t\t\t\t...environment.accounts,\n\t\t\t\t\t\t\t\t\tdefault: Object.keys(environment.accounts)[0],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn {};\n\t\t\t\t})(),\n\t\t\t}])) as Record<string, SandboxConfig>,\n\t};\n\n\treturn removeUndefinedFields(config);\n};\n"],"mappings":"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","names":["_a","_b","k","key","_c"]}
|
|
1
|
+
{"version":3,"sources":["types-config-files.ts"],"sourcesContent":["import type {\n\tConfig,\n\tConfigEnvironmentFileV2,\n\tConfigFileV1,\n\tConfigFileV2,\n\tEnvironment,\n\tNetworkConfig,\n\tSandboxAccounts,\n\tSandboxConfig,\n} from './types';\n\nexport type ConfigFileSetV2 = {\n\tconfig: ConfigFileV2;\n\tenvironments: { [name: string]: ConfigEnvironmentFileV2 };\n};\n\nexport const readJsonFileInterceptConfig = (readJsonFile: <T>(filePath: string) => Promise<T>) =>\n\tasync <T>(filePath: string): Promise<T> => {\n\t\tif (filePath.endsWith(`.taq/config.json`)) {\n\t\t\treturn transformConfigFileV2ToConfig(await readConfigFiles(readJsonFile)(filePath)) as unknown as Promise<T>;\n\t\t}\n\n\t\treturn readJsonFile<T>(filePath);\n\t};\n\nexport const readConfigFiles = (readJsonFile: <T>(filePath: string) => Promise<T>) =>\n\tasync (configFilePath: string): Promise<ConfigFileSetV2> => {\n\t\tconst configFileObj = await readJsonFile(configFilePath);\n\n\t\tif ((configFileObj as ConfigFileV2).version !== `v2`) {\n\t\t\t// v1 - only file to load\n\t\t\tconst configFileSetV2 = transformConfigFileV1ToConfigFileSetV2(configFileObj as ConfigFileV1);\n\t\t\treturn configFileSetV2;\n\t\t}\n\n\t\t// Load env files\n\t\tconst configFileV2 = configFileObj as ConfigFileV2;\n\t\tconst envFiles = await Promise.all(\n\t\t\tObject.keys(configFileV2.environments ?? {}).map(async envName => {\n\t\t\t\ttry {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tkey: envName,\n\t\t\t\t\t\tvalue: await readJsonFile(\n\t\t\t\t\t\t\tconfigFilePath.replace(`config.json`, `config.local.${envName}.json`),\n\t\t\t\t\t\t) as ConfigEnvironmentFileV2,\n\t\t\t\t\t};\n\t\t\t\t} catch {\n\t\t\t\t\t// ignore if file could not be read (no env file)\n\t\t\t\t\treturn {};\n\t\t\t\t}\n\t\t\t}),\n\t\t);\n\n\t\treturn {\n\t\t\tconfig: configFileV2,\n\t\t\tenvironments: Object.fromEntries(envFiles.filter(x => x.value).map(x => [x.key, x.value])),\n\t\t};\n\t};\n\nexport const writeJsonFileInterceptConfig = (writeJsonFile: (filePath: string) => (data: unknown) => Promise<string>) =>\n\t(filePath: string): ((data: unknown) => Promise<string>) => {\n\t\tif (filePath.endsWith(`.taq/config.json`)) {\n\t\t\treturn (async (config: Config) => {\n\t\t\t\t// DEBUG: write original file\n\t\t\t\t// await writeJsonFile(filePath.replace(`config.json`, `config.original-${Date.now()}.json`))(config);\n\n\t\t\t\treturn await writeConfigFiles(writeJsonFile)(filePath)(transformConfigToConfigFileV2(config));\n\t\t\t}) as (data: unknown) => Promise<string>;\n\t\t}\n\n\t\treturn writeJsonFile(filePath);\n\t};\n\nexport const writeConfigFiles = (writeJsonFile: (filePath: string) => (data: unknown) => Promise<string>) =>\n\t(configFilePath: string) =>\n\t\tasync (configFileSetV2: ConfigFileSetV2) => {\n\t\t\tconst configFileResult = await writeJsonFile(configFilePath)(configFileSetV2.config);\n\n\t\t\t// write the env files\n\t\t\tawait Promise.all(\n\t\t\t\tObject.entries(configFileSetV2.environments).map(async ([envName, value]) => {\n\t\t\t\t\tawait writeJsonFile(configFilePath.replace(`config.json`, `config.local.${envName}.json`))(value);\n\t\t\t\t}),\n\t\t\t);\n\n\t\t\treturn configFileResult;\n\t\t};\n\nconst removeUndefinedFields = <T>(x: T): T => {\n\treturn JSON.parse(JSON.stringify(x)) as T;\n};\n\n/** Migrate FileV1 to FileV2\n *\n * NOTE: Although this is nearly identical to transformConfigToConfigFileV2\n * This function should be sealed while the transformConfigToConfigFileV2\n * will change iteratively to become more like V2\n */\nexport const transformConfigFileV1ToConfigFileSetV2 = (configFileV1: ConfigFileV1): ConfigFileSetV2 => {\n\tconst config = configFileV1;\n\tconst configFileV2: ConfigFileV2 = {\n\t\tversion: `v2`,\n\t\tlanguage: config.language,\n\t\tmetadata: config.metadata,\n\t\tartifactsDir: config.artifactsDir,\n\t\tcontractsDir: config.contractsDir,\n\t\taccounts: !config.accounts\n\t\t\t? undefined\n\t\t\t: Object.fromEntries(\n\t\t\t\tObject.entries(config.accounts)\n\t\t\t\t\t.map(([k, v]) => [k, { balance: { amount: v, units: `mutez` } }]),\n\t\t\t),\n\t\tcontracts: config.contracts,\n\t\tenvironmentDefault: config.environment?.default as string,\n\t\tenvironments: Object.fromEntries(\n\t\t\tObject.entries(config.environment ?? {})\n\t\t\t\t.filter(([k, v]) => k !== `default`)\n\t\t\t\t.map(([k, v]) => [k, v] as [string, Environment])\n\t\t\t\t.map(([k, v]) => [k, {\n\t\t\t\t\t// Known fields\n\t\t\t\t\ttype: v.sandboxes.length ? `flextesa` : `simple`,\n\t\t\t\t\t// Unknown fields\n\t\t\t\t\t...((() => {\n\t\t\t\t\t\tconst vClone = { ...v } as Partial<typeof v> & ConfigEnvironmentFileV2;\n\t\t\t\t\t\tdelete vClone.networks;\n\t\t\t\t\t\tdelete vClone.sandboxes;\n\t\t\t\t\t\tdelete vClone.aliases;\n\t\t\t\t\t\tif (v.aliases) vClone.contracts = v.aliases;\n\n\t\t\t\t\t\tif (v.sandboxes?.[0]) {\n\t\t\t\t\t\t\tconst sandboxName = v.sandboxes[0];\n\t\t\t\t\t\t\tif (config.sandbox?.[sandboxName].accounts) {\n\t\t\t\t\t\t\t\tconst accountsClone = { ...config.sandbox[sandboxName].accounts };\n\t\t\t\t\t\t\t\tdelete accountsClone['default'];\n\t\t\t\t\t\t\t\tvClone.accounts = accountsClone as SandboxAccounts;\n\n\t\t\t\t\t\t\t\tif (config.sandbox?.[sandboxName]?.accounts?.['default']) {\n\t\t\t\t\t\t\t\t\tvClone.accountDefault = config.sandbox?.[sandboxName]?.accounts?.['default'] as string;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn vClone;\n\t\t\t\t\t})()),\n\t\t\t\t\t// Preserve sandbox or network name\n\t\t\t\t\tnetworkName: v.networks[0],\n\t\t\t\t\tsandboxName: v.sandboxes[0],\n\t\t\t\t\t// Fields from the first sandbox or network (there should be only 1)\n\t\t\t\t\t// These overwrite fields in environment\n\t\t\t\t\t...[\n\t\t\t\t\t\t...v.networks.map(k => config.network?.[k]),\n\t\t\t\t\t\t...v.sandboxes.map(k => {\n\t\t\t\t\t\t\tconst retval = { ...config.sandbox?.[k] };\n\t\t\t\t\t\t\tdelete retval['accounts'];\n\t\t\t\t\t\t\treturn retval;\n\t\t\t\t\t\t}),\n\t\t\t\t\t][0] as {},\n\t\t\t\t}]),\n\t\t),\n\t\tplugins: config.plugins,\n\t};\n\n\t// It is fine to leave everything in the main config V2 file since it will be parsed either way\n\tconst environmentsV2 = {};\n\treturn removeUndefinedFields({ config: configFileV2, environments: environmentsV2 });\n};\n\n// Object to FileV2\nexport const transformConfigToConfigFileV2 = (config: Config): ConfigFileSetV2 => {\n\tconst environmentsV2Raw = Object.fromEntries(\n\t\tObject.entries(config.environment)\n\t\t\t.filter(([k]) => k !== `default`)\n\t\t\t.map(([k, v]) => [k, v] as [string, Environment])\n\t\t\t.map(([k, v]) => [k, {\n\t\t\t\t// Known fields\n\t\t\t\ttype: v.sandboxes.length ? `flextesa` : `simple`,\n\t\t\t\t// Unknown fields\n\t\t\t\t...((() => {\n\t\t\t\t\tconst vClone = { ...v } as Partial<typeof v> & ConfigEnvironmentFileV2;\n\t\t\t\t\tdelete vClone.networks;\n\t\t\t\t\tdelete vClone.sandboxes;\n\t\t\t\t\tdelete vClone.aliases;\n\t\t\t\t\tif (v.aliases) vClone.contracts = v.aliases;\n\n\t\t\t\t\tif (v.sandboxes?.[0]) {\n\t\t\t\t\t\tconst sandboxName = v.sandboxes[0];\n\t\t\t\t\t\tif (config.sandbox?.[sandboxName]?.accounts) {\n\t\t\t\t\t\t\tconst accountsClone = { ...config.sandbox[sandboxName].accounts };\n\t\t\t\t\t\t\tdelete accountsClone['default'];\n\t\t\t\t\t\t\tvClone.accounts = accountsClone as SandboxAccounts;\n\n\t\t\t\t\t\t\tif (config.sandbox[sandboxName].accounts?.['default']) {\n\t\t\t\t\t\t\t\tvClone.accountDefault = config.sandbox[sandboxName].accounts?.['default'] as string;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn vClone;\n\t\t\t\t})()),\n\t\t\t\t// Preserve sandbox or network name\n\t\t\t\tnetworkName: v.networks[0],\n\t\t\t\tsandboxName: v.sandboxes[0],\n\t\t\t\t// Fields from the first sandbox or network (there should be only 1)\n\t\t\t\t// These overwrite fields in environment\n\t\t\t\t...[\n\t\t\t\t\t...v.networks.map(k => config.network?.[k]),\n\t\t\t\t\t...v.sandboxes.map(k => {\n\t\t\t\t\t\tconst retval = { ...config.sandbox?.[k] };\n\t\t\t\t\t\tdelete retval['accounts'];\n\t\t\t\t\t\treturn retval;\n\t\t\t\t\t}),\n\t\t\t\t][0] as {},\n\t\t\t}]),\n\t);\n\n\tconst configFileV2: ConfigFileV2 = {\n\t\tversion: `v2`,\n\t\tlanguage: config.language,\n\t\tmetadata: config.metadata,\n\t\tartifactsDir: config.artifactsDir,\n\t\tcontractsDir: config.contractsDir,\n\t\taccounts: !config.accounts\n\t\t\t? undefined\n\t\t\t: Object.fromEntries(\n\t\t\t\tObject.entries(config.accounts)\n\t\t\t\t\t.map(([k, v]) => [k, { balance: { amount: v, units: `mutez` } }]),\n\t\t\t),\n\t\tcontracts: config.contracts,\n\t\tenvironmentDefault: config.environment.default as string,\n\t\tenvironments: environmentsV2Raw,\n\t\tplugins: config.plugins,\n\t};\n\n\t// extract local only fields to environment specific files\n\t// This should only include fields that the environment plugin will replace if missing\n\t// This is providing a default implementation for a few known environments\n\tconst environmentsV2 = {} as ConfigFileSetV2['environments'];\n\n\tfor (const [envName, eMain] of Object.entries(configFileV2.environments ?? {})) {\n\t\t// clone eMain and delete fields from either main config or local env config\n\t\tconst eLocal = environmentsV2[envName] = { ...eMain };\n\n\t\tfor (const k of Object.keys(eMain)) {\n\t\t\tconst key = k as keyof typeof eMain;\n\n\t\t\tif (key === `type`) {\n\t\t\t\tdelete eLocal[key];\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Everything except label and protocol is local for sandbox\n\t\t\tif (eMain.type === 'flextesa') {\n\t\t\t\tif (\n\t\t\t\t\tk === 'label'\n\t\t\t\t\t|| k === 'protocol'\n\t\t\t\t) {\n\t\t\t\t\tdelete eLocal[key];\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For simple networks, keep the rpcUrl also\n\t\t\tif (eMain.type === 'simple') {\n\t\t\t\tif (\n\t\t\t\t\tk === 'label'\n\t\t\t\t\t|| k === 'protocol'\n\t\t\t\t\t|| k === 'rpcUrl'\n\t\t\t\t) {\n\t\t\t\t\tdelete eLocal[key];\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (k == 'aliases') {\n\t\t\t\teLocal['contracts'] = Object.entries(eLocal[key] ?? {}).reduce(\n\t\t\t\t\t(retval, [key, value]) => ({\n\t\t\t\t\t\t...retval,\n\t\t\t\t\t\t[key]: value,\n\t\t\t\t\t}),\n\t\t\t\t\t{},\n\t\t\t\t);\n\t\t\t\tdelete eLocal[key];\n\t\t\t}\n\n\t\t\t// Remove from main by default\n\t\t\tdelete eMain[key];\n\t\t}\n\t\tcontinue;\n\t}\n\n\treturn removeUndefinedFields({ config: configFileV2, environments: environmentsV2 });\n};\n\n// FileV2 to Object\nexport const transformConfigFileV2ToConfig = (configFileSetV2: ConfigFileSetV2): Config => {\n\tconst {\n\t\tconfig: configFileV2,\n\t\tenvironments: environmentFilesV2,\n\t} = configFileSetV2;\n\n\tconst environments = Object.entries(configFileV2.environments ?? {})\n\t\t.map(([k, v]) => ({\n\t\t\tkey: k,\n\t\t\tvalue: {\n\t\t\t\t...v,\n\t\t\t\t// merge in the fields from the envFile\n\t\t\t\t...environmentFilesV2[k] ?? {},\n\t\t\t} as typeof v & {\n\t\t\t\t// custom named network or sandbox\n\t\t\t\tnetworkName?: string;\n\t\t\t\tsandboxName?: string;\n\t\t\t\t// Known network/sandbox fields\n\t\t\t\tlabel?: string;\n\t\t\t\tprotocol?: string;\n\t\t\t\trpcUrl?: string;\n\t\t\t\t// Known environment fields\n\t\t\t\tstorage?: unknown;\n\t\t\t\taliases?: unknown;\n\t\t\t},\n\t\t}));\n\n\tconst getUnknownFields = (x: typeof environments[number], structure: 'environment' | 'network' | 'sandbox') => {\n\t\tif (structure === 'environment') {\n\t\t\t// environment should only have known fields\n\t\t\treturn {};\n\t\t}\n\n\t\t// Let all the unknown fields be placed in the network or sandbox\n\t\tconst unknownFields = ((() => {\n\t\t\tconst vClone = { ...x.value } as Partial<typeof x.value>;\n\t\t\t// Remove known fields that have a known structure\n\t\t\tdelete vClone.type;\n\t\t\tdelete vClone.networkName;\n\t\t\tdelete vClone.sandboxName;\n\t\t\tdelete vClone.label;\n\t\t\tdelete vClone.rpcUrl;\n\t\t\tdelete vClone.storage;\n\t\t\tdelete vClone.aliases;\n\t\t\tdelete vClone.contracts;\n\t\t\tdelete vClone.accounts;\n\t\t\treturn vClone;\n\t\t})());\n\n\t\treturn unknownFields;\n\t};\n\n\tconst simpleEnvironments = environments.filter(x => x.value.type === `simple`);\n\tconst sandboxEnvironments = environments.filter(x => x.value.type === `flextesa`);\n\n\tconst config: Config = {\n\t\t// Common fields\n\t\t...((() => {\n\t\t\tconst vClone = { ...configFileV2 } as Partial<typeof configFileV2>;\n\t\t\tdelete vClone.version;\n\t\t\tdelete vClone.environmentDefault;\n\t\t\tdelete vClone.environments;\n\t\t\treturn vClone;\n\t\t})()),\n\t\t// Transformed fields\n\t\taccounts: !configFileV2.accounts\n\t\t\t? undefined\n\t\t\t: Object.fromEntries(\n\t\t\t\tObject.entries(configFileV2.accounts)\n\t\t\t\t\t.map(([k, v]) => [k, `${v.balance.amount}`]),\n\t\t\t),\n\t\tenvironment: {\n\t\t\tdefault: configFileV2.environmentDefault ?? environments[0]?.key,\n\t\t\t...Object.fromEntries(environments.map(x => [x.key, {\n\t\t\t\t// Network and sandbox\n\t\t\t\tnetworks: x.value.type !== `simple` ? [] : [\n\t\t\t\t\t// use same name as enviroment by default\n\t\t\t\t\tx.value.networkName ?? `${x.key}`,\n\t\t\t\t],\n\t\t\t\tsandboxes: x.value.type !== `flextesa` ? [] : [\n\t\t\t\t\t// use same name as enviroment by default\n\t\t\t\t\tx.value.sandboxName ?? `${x.key}`,\n\t\t\t\t],\n\t\t\t\t// Known environment fields\n\t\t\t\tstorage: x.value.storage,\n\t\t\t\taliases: x.value.contracts,\n\t\t\t\t// Unknown fields might need to be in the environment\n\t\t\t\t...getUnknownFields(x, 'environment'),\n\t\t\t}])),\n\t\t},\n\t\tnetwork: !simpleEnvironments.length\n\t\t\t? undefined\n\t\t\t: Object.fromEntries(simpleEnvironments.map(x => [x.value.networkName ?? `${x.key}`, {\n\t\t\t\tlabel: x.value.label ?? ``,\n\t\t\t\trpcUrl: x.value.rpcUrl ?? ``,\n\t\t\t\t// Unknown fields might need to be in the network or sandbox\n\t\t\t\t...getUnknownFields(x, 'network') as {},\n\t\t\t\t...['accounts', 'contracts'].reduce(\n\t\t\t\t\t(retval, fieldName) => {\n\t\t\t\t\t\tif (fieldName === 'accounts') {\n\t\t\t\t\t\t\treturn x.value.accounts\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t...retval,\n\t\t\t\t\t\t\t\t\taccounts: x.value.accounts,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: retval;\n\t\t\t\t\t\t} else if (fieldName === 'contracts') {\n\t\t\t\t\t\t\treturn x.value.aliases\n\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t...retval,\n\t\t\t\t\t\t\t\t\tcontracts: x.value.aliases,\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t: retval;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn retval;\n\t\t\t\t\t},\n\t\t\t\t\t{},\n\t\t\t\t),\n\t\t\t}])) as Record<string, NetworkConfig>,\n\t\tsandbox: !sandboxEnvironments.length\n\t\t\t? undefined\n\t\t\t: Object.fromEntries(sandboxEnvironments.map(x => [x.value.sandboxName ?? `${x.key}`, {\n\t\t\t\tlabel: x.value.label ?? ``,\n\t\t\t\trpcUrl: x.value.rpcUrl ?? ``,\n\t\t\t\t// Unknown fields might need to be in the network or sandbox\n\t\t\t\t...getUnknownFields(x, 'sandbox') as {},\n\t\t\t\t...(() => {\n\t\t\t\t\tconst environment = x.value;\n\t\t\t\t\tif (environment && environment.accounts) {\n\t\t\t\t\t\treturn environment.accountDefault\n\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\taccounts: {\n\t\t\t\t\t\t\t\t\t...environment.accounts,\n\t\t\t\t\t\t\t\t\tdefault: environment.accountDefault,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\taccounts: {\n\t\t\t\t\t\t\t\t\t...environment.accounts,\n\t\t\t\t\t\t\t\t\tdefault: Object.keys(environment.accounts)[0],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\treturn {};\n\t\t\t\t})(),\n\t\t\t}])) as Record<string, SandboxConfig>,\n\t};\n\n\treturn removeUndefinedFields(config);\n};\n"],"mappings":"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","names":["_a","_b","k","key","_c"]}
|