@taqueria/plugin-archetype 0.25.6-alpha → 0.25.11-rc

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/compile.ts CHANGED
@@ -2,13 +2,12 @@ import {
2
2
  execCmd,
3
3
  getContracts,
4
4
  getDockerImage,
5
- ProxyTaskArgs,
6
- RequestArgs,
7
5
  sendAsyncErr,
8
6
  sendAsyncRes,
9
7
  sendErr,
10
8
  sendJsonRes,
11
9
  } from '@taqueria/node-sdk';
10
+ import { RequestArgs } from '@taqueria/node-sdk/types';
12
11
  import { basename, extname, join } from 'path';
13
12
  import { match } from 'ts-pattern';
14
13
 
@@ -19,20 +18,20 @@ const ARCHETYPE_IMAGE_ENV_VAR = 'TAQ_ARCHETYPE_IMAGE';
19
18
 
20
19
  export const getArchetypeDockerImage = (): string => getDockerImage(ARCHETYPE_DEFAULT_IMAGE, ARCHETYPE_IMAGE_ENV_VAR);
21
20
 
22
- interface Opts extends ProxyTaskArgs.t {
21
+ interface Opts extends RequestArgs.ProxyRequestArgs {
23
22
  sourceFile?: string;
24
23
  }
25
24
 
26
25
  const getInputFilename = (opts: Opts) =>
27
26
  (sourceFile: string) => {
28
27
  const inputFile = basename(sourceFile, extname(sourceFile));
29
- return join(opts.config.contractsDir ?? 'contracts', `${inputFile}.arl`);
28
+ return join(opts.config.contractsDir, `${inputFile}.arl`);
30
29
  };
31
30
 
32
31
  const getContractArtifactFilename = (opts: Opts) =>
33
32
  (sourceFile: string) => {
34
33
  const outFile = basename(sourceFile, extname(sourceFile));
35
- return join(opts.config.artifactsDir ?? 'contracts', `${outFile}.tz`);
34
+ return join(opts.config.artifactsDir, `${outFile}.tz`);
36
35
  };
37
36
 
38
37
  const getCompileCommand = (opts: Opts) =>
@@ -76,15 +75,14 @@ const compileAll = (opts: Opts): Promise<{ contract: string; artifact: string }[
76
75
  )
77
76
  .then(promises => Promise.all(promises));
78
77
 
79
- const compile = (parsedArgs: RequestArgs.t) => {
80
- const unsafeOpts = parsedArgs as unknown as Opts;
81
- return match(unsafeOpts)
82
- .when(unsafeOpts => unsafeOpts.task === 'get-image', () => sendAsyncRes(getArchetypeDockerImage()))
78
+ const compile = <T>(parsedArgs: Opts) =>
79
+ match(parsedArgs)
80
+ .when(opts => opts.task === 'get-image', () => sendAsyncRes(getArchetypeDockerImage()))
83
81
  .otherwise(() => {
84
- const p = unsafeOpts.sourceFile
85
- ? compileContract(unsafeOpts)(unsafeOpts.sourceFile)
82
+ const p = parsedArgs.sourceFile
83
+ ? compileContract(parsedArgs)(parsedArgs.sourceFile)
86
84
  .then(result => [result])
87
- : compileAll(unsafeOpts)
85
+ : compileAll(parsedArgs)
88
86
  .then(results => {
89
87
  if (results.length === 0) sendErr('No contracts found to compile.');
90
88
  return results;
@@ -94,6 +92,5 @@ const compile = (parsedArgs: RequestArgs.t) => {
94
92
  .then(sendJsonRes)
95
93
  .catch(err => sendAsyncErr(err, false));
96
94
  });
97
- };
98
95
 
99
96
  export default compile;
package/createContract.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { experimental, RequestArgs, sendAsyncErr } from '@taqueria/node-sdk';
1
+ import { experimental, sendAsyncErr } from '@taqueria/node-sdk';
2
+ import * as RequestArgs from '@taqueria/protocol/RequestArgs';
2
3
  import { writeFile } from 'fs/promises';
3
4
  import { arl_template } from './archetype_template';
4
5
 
@@ -16,12 +17,12 @@ const validateExtension = async (contractName: string) => {
16
17
  return sendAsyncErr(`"${contractName}" doesn't have extension "arl".`);
17
18
  };
18
19
 
19
- const createContract = (args: Opts) => {
20
- const contractName = args.sourceFileName as string;
21
- const contractsDir = `${args.config.projectDir}/${args.config.contractsDir}`;
20
+ const createContract = (arg: Opts) => {
21
+ const contractName = arg.sourceFileName as string;
22
+ const contractsDir = `${arg.config.projectDir}/${arg.config.contractsDir}`;
22
23
  return validateExtension(contractName)
23
24
  .then(_ => writeFile(`${contractsDir}/${contractName}`, arl_template))
24
- .then(_ => registerContract(args, contractName));
25
+ .then(_ => registerContract(arg, contractName));
25
26
  };
26
27
 
27
28
  export default createContract;
package/index.js CHANGED
@@ -13,11 +13,11 @@ const $bb055a91efa18df7$var$ARCHETYPE_IMAGE_ENV_VAR = "TAQ_ARCHETYPE_IMAGE";
13
13
  const $bb055a91efa18df7$export$9c99d2e0f552e13b = ()=>(0, $dTHpf$taquerianodesdk.getDockerImage)($bb055a91efa18df7$var$ARCHETYPE_DEFAULT_IMAGE, $bb055a91efa18df7$var$ARCHETYPE_IMAGE_ENV_VAR);
14
14
  const $bb055a91efa18df7$var$getInputFilename = (opts)=>(sourceFile)=>{
15
15
  const inputFile = (0, $dTHpf$path.basename)(sourceFile, (0, $dTHpf$path.extname)(sourceFile));
16
- return (0, $dTHpf$path.join)(opts.config.contractsDir ?? "contracts", `${inputFile}.arl`);
16
+ return (0, $dTHpf$path.join)(opts.config.contractsDir, `${inputFile}.arl`);
17
17
  };
18
18
  const $bb055a91efa18df7$var$getContractArtifactFilename = (opts)=>(sourceFile)=>{
19
19
  const outFile = (0, $dTHpf$path.basename)(sourceFile, (0, $dTHpf$path.extname)(sourceFile));
20
- return (0, $dTHpf$path.join)(opts.config.artifactsDir ?? "contracts", `${outFile}.tz`);
20
+ return (0, $dTHpf$path.join)(opts.config.artifactsDir, `${outFile}.tz`);
21
21
  };
22
22
  const $bb055a91efa18df7$var$getCompileCommand = (opts)=>(sourceFile)=>{
23
23
  const { projectDir: projectDir } = opts;
@@ -48,18 +48,15 @@ const $bb055a91efa18df7$var$compileAll = (opts)=>Promise.all((0, $dTHpf$taqueria
48
48
  artifact: "N/A"
49
49
  }
50
50
  ]).then((promises)=>Promise.all(promises));
51
- const $bb055a91efa18df7$var$compile = (parsedArgs)=>{
52
- const unsafeOpts = parsedArgs;
53
- return (0, $dTHpf$tspattern.match)(unsafeOpts).when((unsafeOpts)=>unsafeOpts.task === "get-image", ()=>(0, $dTHpf$taquerianodesdk.sendAsyncRes)($bb055a91efa18df7$export$9c99d2e0f552e13b())).otherwise(()=>{
54
- const p = unsafeOpts.sourceFile ? $bb055a91efa18df7$var$compileContract(unsafeOpts)(unsafeOpts.sourceFile).then((result)=>[
51
+ const $bb055a91efa18df7$var$compile = (parsedArgs)=>(0, $dTHpf$tspattern.match)(parsedArgs).when((opts)=>opts.task === "get-image", ()=>(0, $dTHpf$taquerianodesdk.sendAsyncRes)($bb055a91efa18df7$export$9c99d2e0f552e13b())).otherwise(()=>{
52
+ const p = parsedArgs.sourceFile ? $bb055a91efa18df7$var$compileContract(parsedArgs)(parsedArgs.sourceFile).then((result)=>[
55
53
  result
56
- ]) : $bb055a91efa18df7$var$compileAll(unsafeOpts).then((results)=>{
54
+ ]) : $bb055a91efa18df7$var$compileAll(parsedArgs).then((results)=>{
57
55
  if (results.length === 0) (0, $dTHpf$taquerianodesdk.sendErr)("No contracts found to compile.");
58
56
  return results;
59
57
  });
60
58
  return p.then((0, $dTHpf$taquerianodesdk.sendJsonRes)).catch((err)=>(0, $dTHpf$taquerianodesdk.sendAsyncErr)(err, false));
61
59
  });
62
- };
63
60
  var $bb055a91efa18df7$export$2e2bcd8739ae039 = $bb055a91efa18df7$var$compile;
64
61
 
65
62
 
@@ -84,10 +81,10 @@ const $decf18aeaad317ec$var$validateExtension = async (contractName)=>{
84
81
  if (matchResult) return;
85
82
  return (0, $dTHpf$taquerianodesdk.sendAsyncErr)(`"${contractName}" doesn't have extension "arl".`);
86
83
  };
87
- const $decf18aeaad317ec$var$createContract = (args)=>{
88
- const contractName = args.sourceFileName;
89
- const contractsDir = `${args.config.projectDir}/${args.config.contractsDir}`;
90
- return $decf18aeaad317ec$var$validateExtension(contractName).then((_)=>(0, $dTHpf$fspromises.writeFile)(`${contractsDir}/${contractName}`, (0, $94ea212fa0656741$export$fc3df5870c3ce31c))).then((_)=>$decf18aeaad317ec$var$registerContract(args, contractName));
84
+ const $decf18aeaad317ec$var$createContract = (arg)=>{
85
+ const contractName = arg.sourceFileName;
86
+ const contractsDir = `${arg.config.projectDir}/${arg.config.contractsDir}`;
87
+ return $decf18aeaad317ec$var$validateExtension(contractName).then((_)=>(0, $dTHpf$fspromises.writeFile)(`${contractsDir}/${contractName}`, (0, $94ea212fa0656741$export$fc3df5870c3ce31c))).then((_)=>$decf18aeaad317ec$var$registerContract(arg, contractName));
91
88
  };
92
89
  var $decf18aeaad317ec$export$2e2bcd8739ae039 = $decf18aeaad317ec$var$createContract;
93
90
 
@@ -115,7 +112,7 @@ var $decf18aeaad317ec$export$2e2bcd8739ae039 = $decf18aeaad317ec$var$createContr
115
112
  description: "Gets the name of the image to be used",
116
113
  handler: "proxy",
117
114
  hidden: true
118
- })
115
+ }),
119
116
  ],
120
117
  templates: [
121
118
  (0, $dTHpf$taquerianodesdk.Template).create({
@@ -127,10 +124,10 @@ var $decf18aeaad317ec$export$2e2bcd8739ae039 = $decf18aeaad317ec$var$createContr
127
124
  placeholder: "sourceFileName",
128
125
  type: "string",
129
126
  description: "The name of the Archetype contract to generate"
130
- })
127
+ }),
131
128
  ],
132
129
  handler: (0, $decf18aeaad317ec$export$2e2bcd8739ae039)
133
- })
130
+ }),
134
131
  ],
135
132
  proxy: (0, $bb055a91efa18df7$export$2e2bcd8739ae039)
136
133
  }), process.argv);
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["taqueria-plugin-archetype/index.ts","taqueria-plugin-archetype/compile.ts","taqueria-plugin-archetype/createContract.ts","taqueria-plugin-archetype/archetype_template.ts"],"sourcesContent":["import { Plugin, PositionalArg, Task, Template } from '@taqueria/node-sdk';\nimport compile from './compile';\nimport createContract from './createContract';\n\nPlugin.create(i18n => ({\n\tschema: '1.0',\n\tversion: '0.1',\n\talias: 'archetype',\n\ttasks: [\n\t\tTask.create({\n\t\t\ttask: 'compile',\n\t\t\tcommand: 'compile [sourceFile]',\n\t\t\taliases: ['c', 'compile-archetype'],\n\t\t\tdescription: 'Compile a smart contract written in a Archetype syntax to Michelson code',\n\t\t\toptions: [],\n\t\t\thandler: 'proxy',\n\t\t\tencoding: 'json',\n\t\t}),\n\t\tTask.create({\n\t\t\ttask: 'get-image',\n\t\t\tcommand: 'get-image',\n\t\t\tdescription: 'Gets the name of the image to be used',\n\t\t\thandler: 'proxy',\n\t\t\thidden: true,\n\t\t}),\n\t],\n\ttemplates: [\n\t\tTemplate.create({\n\t\t\ttemplate: 'archetypeContract',\n\t\t\tcommand: 'archetypeContract <sourceFileName>',\n\t\t\tdescription: 'Create a Archetype contract with boilerplate code',\n\t\t\tpositionals: [\n\t\t\t\tPositionalArg.create({\n\t\t\t\t\tplaceholder: 'sourceFileName',\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdescription: 'The name of the Archetype contract to generate',\n\t\t\t\t}),\n\t\t\t],\n\t\t\thandler: createContract,\n\t\t}),\n\t],\n\tproxy: compile,\n}), process.argv);\n","import {\n\texecCmd,\n\tgetContracts,\n\tgetDockerImage,\n\tProxyTaskArgs,\n\tRequestArgs,\n\tsendAsyncErr,\n\tsendAsyncRes,\n\tsendErr,\n\tsendJsonRes,\n} from '@taqueria/node-sdk';\nimport { basename, extname, join } from 'path';\nimport { match } from 'ts-pattern';\n\n// Should point to the latest stable version, so it needs to be updated as part of our release process.\nconst ARCHETYPE_DEFAULT_IMAGE = 'completium/archetype:1.2.12';\n\nconst ARCHETYPE_IMAGE_ENV_VAR = 'TAQ_ARCHETYPE_IMAGE';\n\nexport const getArchetypeDockerImage = (): string => getDockerImage(ARCHETYPE_DEFAULT_IMAGE, ARCHETYPE_IMAGE_ENV_VAR);\n\ninterface Opts extends ProxyTaskArgs.t {\n\tsourceFile?: string;\n}\n\nconst getInputFilename = (opts: Opts) =>\n\t(sourceFile: string) => {\n\t\tconst inputFile = basename(sourceFile, extname(sourceFile));\n\t\treturn join(opts.config.contractsDir ?? 'contracts', `${inputFile}.arl`);\n\t};\n\nconst getContractArtifactFilename = (opts: Opts) =>\n\t(sourceFile: string) => {\n\t\tconst outFile = basename(sourceFile, extname(sourceFile));\n\t\treturn join(opts.config.artifactsDir ?? 'contracts', `${outFile}.tz`);\n\t};\n\nconst getCompileCommand = (opts: Opts) =>\n\t(sourceFile: string) => {\n\t\tconst { projectDir } = opts;\n\t\tconst inputFile = getInputFilename(opts)(sourceFile);\n\t\tconst baseCommand =\n\t\t\t`DOCKER_DEFAULT_PLATFORM=linux/amd64 docker run --rm -v \\\"${projectDir}\\\":/project -u $(id -u):$(id -g) -w /project ${getArchetypeDockerImage()} ${inputFile}`;\n\t\tconst outFile = `-o ${getContractArtifactFilename(opts)(sourceFile)}`;\n\t\tconst cmd = `${baseCommand} ${outFile}`;\n\t\treturn cmd;\n\t};\n\nconst compileContract = (opts: Opts) =>\n\t(sourceFile: string): Promise<{ contract: string; artifact: string }> =>\n\t\t// const sourceAbspath = join(opts.contractsDir, sourceFile)\n\t\texecCmd(getCompileCommand(opts)(sourceFile))\n\t\t\t.then(({ stderr }) => { // How should we output warnings?\n\t\t\t\tif (stderr.length > 0) sendErr(stderr);\n\t\t\t\treturn {\n\t\t\t\t\tcontract: sourceFile,\n\t\t\t\t\tartifact: getContractArtifactFilename(opts)(sourceFile),\n\t\t\t\t};\n\t\t\t})\n\t\t\t.catch(err => {\n\t\t\t\tsendErr(' ');\n\t\t\t\tsendErr(err.message.split('\\n').slice(1).join('\\n'));\n\t\t\t\treturn Promise.resolve({\n\t\t\t\t\tcontract: sourceFile,\n\t\t\t\t\tartifact: 'Not compiled',\n\t\t\t\t});\n\t\t\t});\n\nconst compileAll = (opts: Opts): Promise<{ contract: string; artifact: string }[]> =>\n\tPromise.all(getContracts(/\\.arl$/, opts.config))\n\t\t.then(entries => entries.map(compileContract(opts)))\n\t\t.then(processes =>\n\t\t\tprocesses.length > 0\n\t\t\t\t? processes\n\t\t\t\t: [{ contract: 'None found', artifact: 'N/A' }]\n\t\t)\n\t\t.then(promises => Promise.all(promises));\n\nconst compile = (parsedArgs: RequestArgs.t) => {\n\tconst unsafeOpts = parsedArgs as unknown as Opts;\n\treturn match(unsafeOpts)\n\t\t.when(unsafeOpts => unsafeOpts.task === 'get-image', () => sendAsyncRes(getArchetypeDockerImage()))\n\t\t.otherwise(() => {\n\t\t\tconst p = unsafeOpts.sourceFile\n\t\t\t\t? compileContract(unsafeOpts)(unsafeOpts.sourceFile)\n\t\t\t\t\t.then(result => [result])\n\t\t\t\t: compileAll(unsafeOpts)\n\t\t\t\t\t.then(results => {\n\t\t\t\t\t\tif (results.length === 0) sendErr('No contracts found to compile.');\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t});\n\n\t\t\treturn p\n\t\t\t\t.then(sendJsonRes)\n\t\t\t\t.catch(err => sendAsyncErr(err, false));\n\t\t});\n};\n\nexport default compile;\n","import { experimental, RequestArgs, sendAsyncErr } from '@taqueria/node-sdk';\nimport { writeFile } from 'fs/promises';\nimport { arl_template } from './archetype_template';\n\ninterface Opts extends RequestArgs.t {\n\tsourceFileName?: string;\n}\n\nconst registerContract = (arg: Opts, contractName: string) => {\n\texperimental.registerContract(arg, contractName);\n};\n\nconst validateExtension = async (contractName: string) => {\n\tconst matchResult = contractName.match(/\\.arl$/);\n\tif (matchResult) return;\n\treturn sendAsyncErr(`\"${contractName}\" doesn't have extension \"arl\".`);\n};\n\nconst createContract = (args: Opts) => {\n\tconst contractName = args.sourceFileName as string;\n\tconst contractsDir = `${args.config.projectDir}/${args.config.contractsDir}`;\n\treturn validateExtension(contractName)\n\t\t.then(_ => writeFile(`${contractsDir}/${contractName}`, arl_template))\n\t\t.then(_ => registerContract(args, contractName));\n};\n\nexport default createContract;\n","export const arl_template = `\narchetype hello\n\nvariable msg : string = \"Hello\"\n\nentry input(name : string) {\n msg += \" \" + name\n}\n`;\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"}
1
+ {"mappings":"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","sources":["taqueria-plugin-archetype/index.ts","taqueria-plugin-archetype/compile.ts","taqueria-plugin-archetype/createContract.ts","taqueria-plugin-archetype/archetype_template.ts"],"sourcesContent":["import { Option, Plugin, PositionalArg, Task, Template } from '@taqueria/node-sdk';\nimport compile from './compile';\nimport createContract from './createContract';\n\nPlugin.create(i18n => ({\n\tschema: '1.0',\n\tversion: '0.1',\n\talias: 'archetype',\n\ttasks: [\n\t\tTask.create({\n\t\t\ttask: 'compile',\n\t\t\tcommand: 'compile [sourceFile]',\n\t\t\taliases: ['c', 'compile-archetype'],\n\t\t\tdescription: 'Compile a smart contract written in a Archetype syntax to Michelson code',\n\t\t\toptions: [],\n\t\t\thandler: 'proxy',\n\t\t\tencoding: 'json',\n\t\t}),\n\t\tTask.create({\n\t\t\ttask: 'get-image',\n\t\t\tcommand: 'get-image',\n\t\t\tdescription: 'Gets the name of the image to be used',\n\t\t\thandler: 'proxy',\n\t\t\thidden: true,\n\t\t}),\n\t],\n\ttemplates: [\n\t\tTemplate.create({\n\t\t\ttemplate: 'archetypeContract',\n\t\t\tcommand: 'archetypeContract <sourceFileName>',\n\t\t\tdescription: 'Create a Archetype contract with boilerplate code',\n\t\t\tpositionals: [\n\t\t\t\tPositionalArg.create({\n\t\t\t\t\tplaceholder: 'sourceFileName',\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdescription: 'The name of the Archetype contract to generate',\n\t\t\t\t}),\n\t\t\t],\n\t\t\thandler: createContract,\n\t\t}),\n\t],\n\tproxy: compile,\n}), process.argv);\n","import {\n\texecCmd,\n\tgetContracts,\n\tgetDockerImage,\n\tsendAsyncErr,\n\tsendAsyncRes,\n\tsendErr,\n\tsendJsonRes,\n} from '@taqueria/node-sdk';\nimport { RequestArgs } from '@taqueria/node-sdk/types';\nimport { basename, extname, join } from 'path';\nimport { match } from 'ts-pattern';\n\n// Should point to the latest stable version, so it needs to be updated as part of our release process.\nconst ARCHETYPE_DEFAULT_IMAGE = 'completium/archetype:1.2.12';\n\nconst ARCHETYPE_IMAGE_ENV_VAR = 'TAQ_ARCHETYPE_IMAGE';\n\nexport const getArchetypeDockerImage = (): string => getDockerImage(ARCHETYPE_DEFAULT_IMAGE, ARCHETYPE_IMAGE_ENV_VAR);\n\ninterface Opts extends RequestArgs.ProxyRequestArgs {\n\tsourceFile?: string;\n}\n\nconst getInputFilename = (opts: Opts) =>\n\t(sourceFile: string) => {\n\t\tconst inputFile = basename(sourceFile, extname(sourceFile));\n\t\treturn join(opts.config.contractsDir, `${inputFile}.arl`);\n\t};\n\nconst getContractArtifactFilename = (opts: Opts) =>\n\t(sourceFile: string) => {\n\t\tconst outFile = basename(sourceFile, extname(sourceFile));\n\t\treturn join(opts.config.artifactsDir, `${outFile}.tz`);\n\t};\n\nconst getCompileCommand = (opts: Opts) =>\n\t(sourceFile: string) => {\n\t\tconst { projectDir } = opts;\n\t\tconst inputFile = getInputFilename(opts)(sourceFile);\n\t\tconst baseCommand =\n\t\t\t`DOCKER_DEFAULT_PLATFORM=linux/amd64 docker run --rm -v \\\"${projectDir}\\\":/project -u $(id -u):$(id -g) -w /project ${getArchetypeDockerImage()} ${inputFile}`;\n\t\tconst outFile = `-o ${getContractArtifactFilename(opts)(sourceFile)}`;\n\t\tconst cmd = `${baseCommand} ${outFile}`;\n\t\treturn cmd;\n\t};\n\nconst compileContract = (opts: Opts) =>\n\t(sourceFile: string): Promise<{ contract: string; artifact: string }> =>\n\t\t// const sourceAbspath = join(opts.contractsDir, sourceFile)\n\t\texecCmd(getCompileCommand(opts)(sourceFile))\n\t\t\t.then(({ stderr }) => { // How should we output warnings?\n\t\t\t\tif (stderr.length > 0) sendErr(stderr);\n\t\t\t\treturn {\n\t\t\t\t\tcontract: sourceFile,\n\t\t\t\t\tartifact: getContractArtifactFilename(opts)(sourceFile),\n\t\t\t\t};\n\t\t\t})\n\t\t\t.catch(err => {\n\t\t\t\tsendErr(' ');\n\t\t\t\tsendErr(err.message.split('\\n').slice(1).join('\\n'));\n\t\t\t\treturn Promise.resolve({\n\t\t\t\t\tcontract: sourceFile,\n\t\t\t\t\tartifact: 'Not compiled',\n\t\t\t\t});\n\t\t\t});\n\nconst compileAll = (opts: Opts): Promise<{ contract: string; artifact: string }[]> =>\n\tPromise.all(getContracts(/\\.arl$/, opts.config))\n\t\t.then(entries => entries.map(compileContract(opts)))\n\t\t.then(processes =>\n\t\t\tprocesses.length > 0\n\t\t\t\t? processes\n\t\t\t\t: [{ contract: 'None found', artifact: 'N/A' }]\n\t\t)\n\t\t.then(promises => Promise.all(promises));\n\nconst compile = <T>(parsedArgs: Opts) =>\n\tmatch(parsedArgs)\n\t\t.when(opts => opts.task === 'get-image', () => sendAsyncRes(getArchetypeDockerImage()))\n\t\t.otherwise(() => {\n\t\t\tconst p = parsedArgs.sourceFile\n\t\t\t\t? compileContract(parsedArgs)(parsedArgs.sourceFile)\n\t\t\t\t\t.then(result => [result])\n\t\t\t\t: compileAll(parsedArgs)\n\t\t\t\t\t.then(results => {\n\t\t\t\t\t\tif (results.length === 0) sendErr('No contracts found to compile.');\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t});\n\n\t\t\treturn p\n\t\t\t\t.then(sendJsonRes)\n\t\t\t\t.catch(err => sendAsyncErr(err, false));\n\t\t});\n\nexport default compile;\n","import { experimental, sendAsyncErr } from '@taqueria/node-sdk';\nimport * as RequestArgs from '@taqueria/protocol/RequestArgs';\nimport { writeFile } from 'fs/promises';\nimport { arl_template } from './archetype_template';\n\ninterface Opts extends RequestArgs.t {\n\tsourceFileName?: string;\n}\n\nconst registerContract = (arg: Opts, contractName: string) => {\n\texperimental.registerContract(arg, contractName);\n};\n\nconst validateExtension = async (contractName: string) => {\n\tconst matchResult = contractName.match(/\\.arl$/);\n\tif (matchResult) return;\n\treturn sendAsyncErr(`\"${contractName}\" doesn't have extension \"arl\".`);\n};\n\nconst createContract = (arg: Opts) => {\n\tconst contractName = arg.sourceFileName as string;\n\tconst contractsDir = `${arg.config.projectDir}/${arg.config.contractsDir}`;\n\treturn validateExtension(contractName)\n\t\t.then(_ => writeFile(`${contractsDir}/${contractName}`, arl_template))\n\t\t.then(_ => registerContract(arg, contractName));\n};\n\nexport default createContract;\n","export const arl_template = `\narchetype hello\n\nvariable msg : string = \"Hello\"\n\nentry input(name : string) {\n msg += \" \" + name\n}\n`;\n"],"names":[],"version":3,"file":"index.js.map","sourceRoot":"../"}
package/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Plugin, PositionalArg, Task, Template } from '@taqueria/node-sdk';
1
+ import { Option, Plugin, PositionalArg, Task, Template } from '@taqueria/node-sdk';
2
2
  import compile from './compile';
3
3
  import createContract from './createContract';
4
4
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taqueria/plugin-archetype",
3
- "version": "0.25.6-alpha",
3
+ "version": "0.25.11-rc",
4
4
  "description": "A taqueria plugin for compiling Archetype smart contracts",
5
5
  "targets": {
6
6
  "default": {
@@ -40,12 +40,12 @@
40
40
  },
41
41
  "homepage": "https://github.com/ecadlabs/taqueria#readme",
42
42
  "dependencies": {
43
- "@taqueria/node-sdk": "^0.25.6-alpha",
43
+ "@taqueria/node-sdk": "^0.25.11-rc",
44
44
  "fast-glob": "^3.2.11",
45
45
  "ts-pattern": "^3.3.3"
46
46
  },
47
47
  "devDependencies": {
48
- "parcel": "^2.8.0",
48
+ "parcel": "2.6.1",
49
49
  "typescript": "^4.7.2"
50
50
  }
51
51
  }
package/tsconfig.json CHANGED
@@ -12,9 +12,7 @@
12
12
 
13
13
  /* Language and Environment */
14
14
  "target": "ES2021", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
15
- "lib": [
16
- "ES2021.String"
17
- ], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
15
+ // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
18
16
  // "jsx": "preserve", /* Specify what JSX code is generated. */
19
17
  // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */
20
18
  // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */