@taqueria/protocol 0.28.3 → 0.28.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/EphemeralState.d.ts +1112 -836
  2. package/EphemeralState.d.ts.map +1 -1
  3. package/EphemeralState.js.map +1 -1
  4. package/ParsedPluginInfo.d.ts +1169 -3011
  5. package/ParsedPluginInfo.d.ts.map +1 -1
  6. package/PersistentState.d.ts +254 -110
  7. package/PersistentState.d.ts.map +1 -1
  8. package/PluginInfo.d.ts +1840 -3078
  9. package/PluginInfo.d.ts.map +1 -1
  10. package/PluginSchema.d.ts +31266 -4773
  11. package/PluginSchema.d.ts.map +1 -1
  12. package/SHA256.js +4 -0
  13. package/SHA256.js.map +1 -1
  14. package/SanitizedAbsPath.js +4 -0
  15. package/SanitizedAbsPath.js.map +1 -1
  16. package/SanitizedArgs.d.ts +1634 -1395
  17. package/SanitizedArgs.d.ts.map +1 -1
  18. package/SanitizedArgs.js +4 -0
  19. package/SanitizedArgs.js.map +1 -1
  20. package/i18n.js +5 -0
  21. package/i18n.js.map +1 -1
  22. package/index.js +5 -0
  23. package/index.js.map +1 -1
  24. package/out/types/Config.d.ts +221 -221
  25. package/out/types/ConfigEnvironmentFileV2.d.ts +160 -88
  26. package/out/types/ConfigEnvironmentFileV2.d.ts.map +1 -1
  27. package/out/types/ConfigFileV1.d.ts +321 -321
  28. package/out/types/ConfigFileV2.d.ts +378 -242
  29. package/out/types/ConfigFileV2.d.ts.map +1 -1
  30. package/out/types/Environment.d.ts +13 -13
  31. package/out/types/EphemeralState.d.ts +6709 -6745
  32. package/out/types/EphemeralState.d.ts.map +1 -1
  33. package/out/types/LoadedConfig.d.ts +435 -439
  34. package/out/types/LoadedConfig.d.ts.map +1 -1
  35. package/out/types/NetworkAccountConfig.d.ts +9 -9
  36. package/out/types/NetworkConfig.d.ts +30 -30
  37. package/out/types/Operation.d.ts +6307 -1763
  38. package/out/types/Operation.d.ts.map +1 -1
  39. package/out/types/Option.d.ts +40 -40
  40. package/out/types/ParsedConfig.d.ts +161 -425
  41. package/out/types/ParsedConfig.d.ts.map +1 -1
  42. package/out/types/ParsedOperation.d.ts +3414 -1282
  43. package/out/types/ParsedOperation.d.ts.map +1 -1
  44. package/out/types/ParsedTemplate.d.ts +217 -2365
  45. package/out/types/ParsedTemplate.d.ts.map +1 -1
  46. package/out/types/PersistedOperation.d.ts +9 -9
  47. package/out/types/PersistedTask.d.ts +9 -9
  48. package/out/types/PersistentState.d.ts +34 -34
  49. package/out/types/PluginDependenciesResponse.d.ts +16 -20
  50. package/out/types/PluginDependenciesResponse.d.ts.map +1 -1
  51. package/out/types/PluginInfo.d.ts +3014 -3034
  52. package/out/types/PluginInfo.d.ts.map +1 -1
  53. package/out/types/PluginJsonResponse.d.ts +4 -4
  54. package/out/types/PluginProxyResponse.d.ts +4 -4
  55. package/out/types/PluginSchema.d.ts +46162 -13114
  56. package/out/types/PluginSchema.d.ts.map +1 -1
  57. package/out/types/PositionalArg.d.ts +27 -27
  58. package/out/types/Provisioner.d.ts +17 -17
  59. package/out/types/Provisions.d.ts +17 -17
  60. package/out/types/ProxyTaskArgs.d.ts +3318 -922
  61. package/out/types/ProxyTaskArgs.d.ts.map +1 -1
  62. package/out/types/ProxyTemplateArgs.d.ts +3318 -922
  63. package/out/types/ProxyTemplateArgs.d.ts.map +1 -1
  64. package/out/types/RequestArgs.d.ts +3288 -888
  65. package/out/types/RequestArgs.d.ts.map +1 -1
  66. package/out/types/RuntimeDependencyReport.d.ts +16 -20
  67. package/out/types/RuntimeDependencyReport.d.ts.map +1 -1
  68. package/out/types/SandboxAccount.d.ts +22 -22
  69. package/out/types/SandboxAccount.d.ts.map +1 -1
  70. package/out/types/SandboxAccounts.d.ts +22 -22
  71. package/out/types/SandboxAccounts.d.ts.map +1 -1
  72. package/out/types/SandboxConfig.d.ts +22 -22
  73. package/out/types/SanitizedArgs.d.ts +157 -157
  74. package/out/types/SanitizedArgs.d.ts.map +1 -1
  75. package/out/types/Task.d.ts +212 -212
  76. package/out/types/Template.d.ts +9547 -1799
  77. package/out/types/Template.d.ts.map +1 -1
  78. package/out/types-zod.d.ts +22716 -10470
  79. package/out/types-zod.d.ts.map +1 -1
  80. package/package.json +1 -1
  81. package/taqueria-protocol-types.js +5 -0
  82. package/taqueria-protocol-types.js.map +1 -1
  83. package/types-config-files.js +20 -0
  84. package/types-config-files.js.map +1 -1
@@ -98,7 +98,9 @@ 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
101
102
  type: v.sandboxes.length ? `flextesa` : `simple`,
103
+ // Unknown fields
102
104
  ...(() => {
103
105
  var _a2, _b2, _c, _d, _e, _f, _g, _h;
104
106
  const vClone = { ...v };
@@ -120,8 +122,11 @@ var transformConfigFileV1ToConfigFileSetV2 = (configFileV1) => {
120
122
  }
121
123
  return vClone;
122
124
  })(),
125
+ // Preserve sandbox or network name
123
126
  networkName: v.networks[0],
124
127
  sandboxName: v.sandboxes[0],
128
+ // Fields from the first sandbox or network (there should be only 1)
129
+ // These overwrite fields in environment
125
130
  ...[
126
131
  ...v.networks.map((k2) => {
127
132
  var _a2;
@@ -145,7 +150,9 @@ var transformConfigToConfigFileV2 = (config) => {
145
150
  var _a, _b;
146
151
  const environmentsV2Raw = Object.fromEntries(
147
152
  Object.entries(config.environment).filter(([k]) => k !== `default`).map(([k, v]) => [k, v]).map(([k, v]) => [k, {
153
+ // Known fields
148
154
  type: v.sandboxes.length ? `flextesa` : `simple`,
155
+ // Unknown fields
149
156
  ...(() => {
150
157
  var _a2, _b2, _c, _d, _e;
151
158
  const vClone = { ...v };
@@ -167,8 +174,11 @@ var transformConfigToConfigFileV2 = (config) => {
167
174
  }
168
175
  return vClone;
169
176
  })(),
177
+ // Preserve sandbox or network name
170
178
  networkName: v.networks[0],
171
179
  sandboxName: v.sandboxes[0],
180
+ // Fields from the first sandbox or network (there should be only 1)
181
+ // These overwrite fields in environment
172
182
  ...[
173
183
  ...v.networks.map((k2) => {
174
184
  var _a2;
@@ -246,6 +256,7 @@ var transformConfigFileV2ToConfig = (configFileSetV2) => {
246
256
  key: k,
247
257
  value: {
248
258
  ...v,
259
+ // merge in the fields from the envFile
249
260
  ...(_a2 = environmentFilesV2[k]) != null ? _a2 : {}
250
261
  }
251
262
  };
@@ -272,6 +283,7 @@ var transformConfigFileV2ToConfig = (configFileSetV2) => {
272
283
  const simpleEnvironments = environments.filter((x) => x.value.type === `simple`);
273
284
  const sandboxEnvironments = environments.filter((x) => x.value.type === `flextesa`);
274
285
  const config = {
286
+ // Common fields
275
287
  ...(() => {
276
288
  const vClone = { ...configFileV2 };
277
289
  delete vClone.version;
@@ -279,6 +291,7 @@ var transformConfigFileV2ToConfig = (configFileSetV2) => {
279
291
  delete vClone.environments;
280
292
  return vClone;
281
293
  })(),
294
+ // Transformed fields
282
295
  accounts: !configFileV2.accounts ? void 0 : Object.fromEntries(
283
296
  Object.entries(configFileV2.accounts).map(([k, v]) => [k, `${v.balance.amount}`])
284
297
  ),
@@ -287,14 +300,19 @@ var transformConfigFileV2ToConfig = (configFileSetV2) => {
287
300
  ...Object.fromEntries(environments.map((x) => {
288
301
  var _a2, _b2;
289
302
  return [x.key, {
303
+ // Network and sandbox
290
304
  networks: x.value.type !== `simple` ? [] : [
305
+ // use same name as enviroment by default
291
306
  (_a2 = x.value.networkName) != null ? _a2 : `${x.key}`
292
307
  ],
293
308
  sandboxes: x.value.type !== `flextesa` ? [] : [
309
+ // use same name as enviroment by default
294
310
  (_b2 = x.value.sandboxName) != null ? _b2 : `${x.key}`
295
311
  ],
312
+ // Known environment fields
296
313
  storage: x.value.storage,
297
314
  aliases: x.value.contracts,
315
+ // Unknown fields might need to be in the environment
298
316
  ...getUnknownFields(x, "environment")
299
317
  }];
300
318
  }))
@@ -304,6 +322,7 @@ var transformConfigFileV2ToConfig = (configFileSetV2) => {
304
322
  return [(_a2 = x.value.networkName) != null ? _a2 : `${x.key}`, {
305
323
  label: (_b2 = x.value.label) != null ? _b2 : ``,
306
324
  rpcUrl: (_c2 = x.value.rpcUrl) != null ? _c2 : ``,
325
+ // Unknown fields might need to be in the network or sandbox
307
326
  ...getUnknownFields(x, "network"),
308
327
  ...["accounts", "contracts"].reduce(
309
328
  (retval, fieldName) => {
@@ -329,6 +348,7 @@ var transformConfigFileV2ToConfig = (configFileSetV2) => {
329
348
  return [(_a2 = x.value.sandboxName) != null ? _a2 : `${x.key}`, {
330
349
  label: (_b2 = x.value.label) != null ? _b2 : ``,
331
350
  rpcUrl: (_c2 = x.value.rpcUrl) != null ? _c2 : ``,
351
+ // Unknown fields might need to be in the network or sandbox
332
352
  ...getUnknownFields(x, "sandbox"),
333
353
  ...(() => {
334
354
  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"]}