@platforma-sdk/tengo-builder 2.4.2 → 2.4.3

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.
@@ -19,7 +19,6 @@ class Check extends core.Command {
19
19
  const { flags, argv } = await this.parse(Check);
20
20
  const logger = util.createLogger(flags['log-level']);
21
21
  const testerArgs = argv.length == 0 ? ['./src'] : argv;
22
- // prettier-ignore
23
22
  const tester = proc.spawnEmbed(tengoTester.TengoTesterBinaryPath, 'check', '--log-level', flags['log-level'], '--artifacts', '-', ...testerArgs);
24
23
  try {
25
24
  dump.dumpArtifacts(logger, tester.stdin);
@@ -1 +1 @@
1
- {"version":3,"file":"check.cjs","sources":["../../src/commands/check.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../compiler/util';\nimport { dumpArtifacts } from '../shared/dump';\nimport { GlobalFlags } from '../shared/basecmd';\nimport { spawnEmbed, waitFor } from '../shared/proc';\nimport { TengoTesterBinaryPath } from '@milaboratories/tengo-tester';\n\nexport default class Check extends Command {\n static override description = 'check tengo sources for language processor an';\n\n // static override args = {\n // \"log-level\": Args.string({description: 'logging level'}),\n // }\n\n static strict = false;\n\n static override flags = { ...GlobalFlags };\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n public async run(): Promise<void> {\n const { flags, argv } = await this.parse(Check);\n const logger = createLogger(flags['log-level']);\n\n const testerArgs: string[] = argv.length == 0 ? ['./src'] : (argv as string[]);\n\n // prettier-ignore\n const tester = spawnEmbed(\n TengoTesterBinaryPath,\n 'check', '--log-level', flags['log-level'],\n '--artifacts', '-',\n ...testerArgs,\n );\n\n try {\n dumpArtifacts(logger, tester.stdin);\n } catch (err: unknown) {\n logger.error(err);\n } finally {\n tester.stdin.end();\n const code = await waitFor(tester);\n process.exit(code);\n }\n }\n}\n"],"names":["Command","GlobalFlags","createLogger","spawnEmbed","TengoTesterBinaryPath","dumpArtifacts","waitFor"],"mappings":";;;;;;;;;AAOc,MAAO,KAAM,SAAQA,YAAO,CAAA;AACxC,IAAA,OAAgB,WAAW,GAAG,+CAA+C;;;;AAM7E,IAAA,OAAO,MAAM,GAAG,KAAK;AAErB,IAAA,OAAgB,KAAK,GAAG,EAAE,GAAGC,mBAAW,EAAE;AAE1C,IAAA,OAAgB,QAAQ,GAAG,CAAC,qCAAqC,CAAC;AAE3D,IAAA,MAAM,GAAG,GAAA;AACd,QAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/C,MAAM,MAAM,GAAGC,iBAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAE/C,QAAA,MAAM,UAAU,GAAa,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAI,IAAiB;;QAG9E,MAAM,MAAM,GAAGC,eAAU,CACvBC,iCAAqB,EACrB,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,EAC1C,aAAa,EAAE,GAAG,EAClB,GAAG,UAAU,CACd;AAED,QAAA,IAAI;AACF,YAAAC,kBAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrC;QAAE,OAAO,GAAY,EAAE;AACrB,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACnB;gBAAU;AACR,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,MAAMC,YAAO,CAAC,MAAM,CAAC;AAClC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB;IACF;;;;;"}
1
+ {"version":3,"file":"check.cjs","sources":["../../src/commands/check.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../compiler/util';\nimport { dumpArtifacts } from '../shared/dump';\nimport { GlobalFlags } from '../shared/basecmd';\nimport { spawnEmbed, waitFor } from '../shared/proc';\nimport { TengoTesterBinaryPath } from '@milaboratories/tengo-tester';\n\nexport default class Check extends Command {\n static override description = 'check tengo sources for language processor an';\n\n // static override args = {\n // \"log-level\": Args.string({description: 'logging level'}),\n // }\n\n static strict = false;\n\n static override flags = { ...GlobalFlags };\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n public async run(): Promise<void> {\n const { flags, argv } = await this.parse(Check);\n const logger = createLogger(flags['log-level']);\n\n const testerArgs: string[] = argv.length == 0 ? ['./src'] : (argv as string[]);\n\n const tester = spawnEmbed(\n TengoTesterBinaryPath,\n 'check', '--log-level', flags['log-level'],\n '--artifacts', '-',\n ...testerArgs,\n );\n\n try {\n dumpArtifacts(logger, tester.stdin);\n } catch (err: unknown) {\n logger.error(err);\n } finally {\n tester.stdin.end();\n const code = await waitFor(tester);\n process.exit(code);\n }\n }\n}\n"],"names":["Command","GlobalFlags","createLogger","spawnEmbed","TengoTesterBinaryPath","dumpArtifacts","waitFor"],"mappings":";;;;;;;;;AAOc,MAAO,KAAM,SAAQA,YAAO,CAAA;AACxC,IAAA,OAAgB,WAAW,GAAG,+CAA+C;;;;AAM7E,IAAA,OAAO,MAAM,GAAG,KAAK;AAErB,IAAA,OAAgB,KAAK,GAAG,EAAE,GAAGC,mBAAW,EAAE;AAE1C,IAAA,OAAgB,QAAQ,GAAG,CAAC,qCAAqC,CAAC;AAE3D,IAAA,MAAM,GAAG,GAAA;AACd,QAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/C,MAAM,MAAM,GAAGC,iBAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAE/C,QAAA,MAAM,UAAU,GAAa,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAI,IAAiB;QAE9E,MAAM,MAAM,GAAGC,eAAU,CACvBC,iCAAqB,EACrB,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,EAC1C,aAAa,EAAE,GAAG,EAClB,GAAG,UAAU,CACd;AAED,QAAA,IAAI;AACF,YAAAC,kBAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrC;QAAE,OAAO,GAAY,EAAE;AACrB,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACnB;gBAAU;AACR,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,MAAMC,YAAO,CAAC,MAAM,CAAC;AAClC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB;IACF;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtC,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,OAAgB,WAAW,SAAmD;IAM9E,MAAM,CAAC,MAAM,UAAS;IAEtB,OAAgB,KAAK;;MAAsB;IAE3C,OAAgB,QAAQ,WAA2C;IAEtD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwBlC"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtC,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,OAAgB,WAAW,SAAmD;IAM9E,MAAM,CAAC,MAAM,UAAS;IAEtB,OAAgB,KAAK;;MAAsB;IAE3C,OAAgB,QAAQ,WAA2C;IAEtD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuBlC"}
@@ -17,7 +17,6 @@ class Check extends Command {
17
17
  const { flags, argv } = await this.parse(Check);
18
18
  const logger = createLogger(flags['log-level']);
19
19
  const testerArgs = argv.length == 0 ? ['./src'] : argv;
20
- // prettier-ignore
21
20
  const tester = spawnEmbed(TengoTesterBinaryPath, 'check', '--log-level', flags['log-level'], '--artifacts', '-', ...testerArgs);
22
21
  try {
23
22
  dumpArtifacts(logger, tester.stdin);
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sources":["../../src/commands/check.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../compiler/util';\nimport { dumpArtifacts } from '../shared/dump';\nimport { GlobalFlags } from '../shared/basecmd';\nimport { spawnEmbed, waitFor } from '../shared/proc';\nimport { TengoTesterBinaryPath } from '@milaboratories/tengo-tester';\n\nexport default class Check extends Command {\n static override description = 'check tengo sources for language processor an';\n\n // static override args = {\n // \"log-level\": Args.string({description: 'logging level'}),\n // }\n\n static strict = false;\n\n static override flags = { ...GlobalFlags };\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n public async run(): Promise<void> {\n const { flags, argv } = await this.parse(Check);\n const logger = createLogger(flags['log-level']);\n\n const testerArgs: string[] = argv.length == 0 ? ['./src'] : (argv as string[]);\n\n // prettier-ignore\n const tester = spawnEmbed(\n TengoTesterBinaryPath,\n 'check', '--log-level', flags['log-level'],\n '--artifacts', '-',\n ...testerArgs,\n );\n\n try {\n dumpArtifacts(logger, tester.stdin);\n } catch (err: unknown) {\n logger.error(err);\n } finally {\n tester.stdin.end();\n const code = await waitFor(tester);\n process.exit(code);\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;AAOc,MAAO,KAAM,SAAQ,OAAO,CAAA;AACxC,IAAA,OAAgB,WAAW,GAAG,+CAA+C;;;;AAM7E,IAAA,OAAO,MAAM,GAAG,KAAK;AAErB,IAAA,OAAgB,KAAK,GAAG,EAAE,GAAG,WAAW,EAAE;AAE1C,IAAA,OAAgB,QAAQ,GAAG,CAAC,qCAAqC,CAAC;AAE3D,IAAA,MAAM,GAAG,GAAA;AACd,QAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAE/C,QAAA,MAAM,UAAU,GAAa,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAI,IAAiB;;QAG9E,MAAM,MAAM,GAAG,UAAU,CACvB,qBAAqB,EACrB,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,EAC1C,aAAa,EAAE,GAAG,EAClB,GAAG,UAAU,CACd;AAED,QAAA,IAAI;AACF,YAAA,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrC;QAAE,OAAO,GAAY,EAAE;AACrB,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACnB;gBAAU;AACR,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;AAClC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB;IACF;;;;;"}
1
+ {"version":3,"file":"check.js","sources":["../../src/commands/check.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../compiler/util';\nimport { dumpArtifacts } from '../shared/dump';\nimport { GlobalFlags } from '../shared/basecmd';\nimport { spawnEmbed, waitFor } from '../shared/proc';\nimport { TengoTesterBinaryPath } from '@milaboratories/tengo-tester';\n\nexport default class Check extends Command {\n static override description = 'check tengo sources for language processor an';\n\n // static override args = {\n // \"log-level\": Args.string({description: 'logging level'}),\n // }\n\n static strict = false;\n\n static override flags = { ...GlobalFlags };\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n public async run(): Promise<void> {\n const { flags, argv } = await this.parse(Check);\n const logger = createLogger(flags['log-level']);\n\n const testerArgs: string[] = argv.length == 0 ? ['./src'] : (argv as string[]);\n\n const tester = spawnEmbed(\n TengoTesterBinaryPath,\n 'check', '--log-level', flags['log-level'],\n '--artifacts', '-',\n ...testerArgs,\n );\n\n try {\n dumpArtifacts(logger, tester.stdin);\n } catch (err: unknown) {\n logger.error(err);\n } finally {\n tester.stdin.end();\n const code = await waitFor(tester);\n process.exit(code);\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;AAOc,MAAO,KAAM,SAAQ,OAAO,CAAA;AACxC,IAAA,OAAgB,WAAW,GAAG,+CAA+C;;;;AAM7E,IAAA,OAAO,MAAM,GAAG,KAAK;AAErB,IAAA,OAAgB,KAAK,GAAG,EAAE,GAAG,WAAW,EAAE;AAE1C,IAAA,OAAgB,QAAQ,GAAG,CAAC,qCAAqC,CAAC;AAE3D,IAAA,MAAM,GAAG,GAAA;AACd,QAAA,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAE/C,QAAA,MAAM,UAAU,GAAa,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAI,IAAiB;QAE9E,MAAM,MAAM,GAAG,UAAU,CACvB,qBAAqB,EACrB,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,EAC1C,aAAa,EAAE,GAAG,EAClB,GAAG,UAAU,CACd;AAED,QAAA,IAAI;AACF,YAAA,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrC;QAAE,OAAO,GAAY,EAAE;AACrB,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACnB;gBAAU;AACR,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;AAClC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB;IACF;;;;;"}
@@ -16,7 +16,6 @@ class Test extends core.Command {
16
16
  const { flags } = await this.parse(Test);
17
17
  const logger = util.createLogger(flags['log-level']);
18
18
  const testerArgs = this.argv.length == 0 ? ['./src'] : this.argv;
19
- // prettier-ignore
20
19
  const tester = proc.spawnEmbed(tengoTester.TengoTesterBinaryPath, 'run', '--log-level', flags['log-level'], '--artifacts', '-', ...testerArgs);
21
20
  try {
22
21
  dump.dumpArtifacts(logger, tester.stdin);
@@ -1 +1 @@
1
- {"version":3,"file":"test.cjs","sources":["../../src/commands/test.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../compiler/util';\nimport { dumpArtifacts } from '../shared/dump';\nimport { GlobalFlags } from '../shared/basecmd';\nimport { spawnEmbed, waitFor } from '../shared/proc';\nimport { TengoTesterBinaryPath } from '@milaboratories/tengo-tester';\n\nexport default class Test extends Command {\n static override description = 'run tengo unit tests (.test.tengo)';\n\n static strict = false;\n\n static override flags = { ...GlobalFlags };\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Test);\n const logger = createLogger(flags['log-level']);\n\n const testerArgs: string[] = this.argv.length == 0 ? ['./src'] : this.argv;\n\n // prettier-ignore\n const tester = spawnEmbed(\n TengoTesterBinaryPath,\n 'run', '--log-level', flags['log-level'],\n '--artifacts', '-',\n ...testerArgs,\n );\n\n try {\n dumpArtifacts(logger, tester.stdin);\n } catch (err: unknown) {\n logger.error(err);\n } finally {\n tester.stdin.end();\n const code = await waitFor(tester);\n process.exit(code);\n }\n }\n}\n"],"names":["Command","GlobalFlags","createLogger","spawnEmbed","TengoTesterBinaryPath","dumpArtifacts","waitFor"],"mappings":";;;;;;;;;AAOc,MAAO,IAAK,SAAQA,YAAO,CAAA;AACvC,IAAA,OAAgB,WAAW,GAAG,oCAAoC;AAElE,IAAA,OAAO,MAAM,GAAG,KAAK;AAErB,IAAA,OAAgB,KAAK,GAAG,EAAE,GAAGC,mBAAW,EAAE;AAE1C,IAAA,OAAgB,QAAQ,GAAG,CAAC,qCAAqC,CAAC;AAE3D,IAAA,MAAM,GAAG,GAAA;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACxC,MAAM,MAAM,GAAGC,iBAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAa,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI;;QAG1E,MAAM,MAAM,GAAGC,eAAU,CACvBC,iCAAqB,EACrB,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,EACxC,aAAa,EAAE,GAAG,EAClB,GAAG,UAAU,CACd;AAED,QAAA,IAAI;AACF,YAAAC,kBAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrC;QAAE,OAAO,GAAY,EAAE;AACrB,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACnB;gBAAU;AACR,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,MAAMC,YAAO,CAAC,MAAM,CAAC;AAClC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB;IACF;;;;;"}
1
+ {"version":3,"file":"test.cjs","sources":["../../src/commands/test.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../compiler/util';\nimport { dumpArtifacts } from '../shared/dump';\nimport { GlobalFlags } from '../shared/basecmd';\nimport { spawnEmbed, waitFor } from '../shared/proc';\nimport { TengoTesterBinaryPath } from '@milaboratories/tengo-tester';\n\nexport default class Test extends Command {\n static override description = 'run tengo unit tests (.test.tengo)';\n\n static strict = false;\n\n static override flags = { ...GlobalFlags };\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Test);\n const logger = createLogger(flags['log-level']);\n\n const testerArgs: string[] = this.argv.length == 0 ? ['./src'] : this.argv;\n\n const tester = spawnEmbed(\n TengoTesterBinaryPath,\n 'run', '--log-level', flags['log-level'],\n '--artifacts', '-',\n ...testerArgs,\n );\n\n try {\n dumpArtifacts(logger, tester.stdin);\n } catch (err: unknown) {\n logger.error(err);\n } finally {\n tester.stdin.end();\n const code = await waitFor(tester);\n process.exit(code);\n }\n }\n}\n"],"names":["Command","GlobalFlags","createLogger","spawnEmbed","TengoTesterBinaryPath","dumpArtifacts","waitFor"],"mappings":";;;;;;;;;AAOc,MAAO,IAAK,SAAQA,YAAO,CAAA;AACvC,IAAA,OAAgB,WAAW,GAAG,oCAAoC;AAElE,IAAA,OAAO,MAAM,GAAG,KAAK;AAErB,IAAA,OAAgB,KAAK,GAAG,EAAE,GAAGC,mBAAW,EAAE;AAE1C,IAAA,OAAgB,QAAQ,GAAG,CAAC,qCAAqC,CAAC;AAE3D,IAAA,MAAM,GAAG,GAAA;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACxC,MAAM,MAAM,GAAGC,iBAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAa,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI;QAE1E,MAAM,MAAM,GAAGC,eAAU,CACvBC,iCAAqB,EACrB,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,EACxC,aAAa,EAAE,GAAG,EAClB,GAAG,UAAU,CACd;AAED,QAAA,IAAI;AACF,YAAAC,kBAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrC;QAAE,OAAO,GAAY,EAAE;AACrB,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACnB;gBAAU;AACR,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,MAAMC,YAAO,CAAC,MAAM,CAAC;AAClC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB;IACF;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,OAAgB,WAAW,SAAwC;IAEnE,MAAM,CAAC,MAAM,UAAS;IAEtB,OAAgB,KAAK;;MAAsB;IAE3C,OAAgB,QAAQ,WAA2C;IAEtD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwBlC"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,OAAgB,WAAW,SAAwC;IAEnE,MAAM,CAAC,MAAM,UAAS;IAEtB,OAAgB,KAAK;;MAAsB;IAE3C,OAAgB,QAAQ,WAA2C;IAEtD,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuBlC"}
@@ -14,7 +14,6 @@ class Test extends Command {
14
14
  const { flags } = await this.parse(Test);
15
15
  const logger = createLogger(flags['log-level']);
16
16
  const testerArgs = this.argv.length == 0 ? ['./src'] : this.argv;
17
- // prettier-ignore
18
17
  const tester = spawnEmbed(TengoTesterBinaryPath, 'run', '--log-level', flags['log-level'], '--artifacts', '-', ...testerArgs);
19
18
  try {
20
19
  dumpArtifacts(logger, tester.stdin);
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sources":["../../src/commands/test.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../compiler/util';\nimport { dumpArtifacts } from '../shared/dump';\nimport { GlobalFlags } from '../shared/basecmd';\nimport { spawnEmbed, waitFor } from '../shared/proc';\nimport { TengoTesterBinaryPath } from '@milaboratories/tengo-tester';\n\nexport default class Test extends Command {\n static override description = 'run tengo unit tests (.test.tengo)';\n\n static strict = false;\n\n static override flags = { ...GlobalFlags };\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Test);\n const logger = createLogger(flags['log-level']);\n\n const testerArgs: string[] = this.argv.length == 0 ? ['./src'] : this.argv;\n\n // prettier-ignore\n const tester = spawnEmbed(\n TengoTesterBinaryPath,\n 'run', '--log-level', flags['log-level'],\n '--artifacts', '-',\n ...testerArgs,\n );\n\n try {\n dumpArtifacts(logger, tester.stdin);\n } catch (err: unknown) {\n logger.error(err);\n } finally {\n tester.stdin.end();\n const code = await waitFor(tester);\n process.exit(code);\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;AAOc,MAAO,IAAK,SAAQ,OAAO,CAAA;AACvC,IAAA,OAAgB,WAAW,GAAG,oCAAoC;AAElE,IAAA,OAAO,MAAM,GAAG,KAAK;AAErB,IAAA,OAAgB,KAAK,GAAG,EAAE,GAAG,WAAW,EAAE;AAE1C,IAAA,OAAgB,QAAQ,GAAG,CAAC,qCAAqC,CAAC;AAE3D,IAAA,MAAM,GAAG,GAAA;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACxC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAa,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI;;QAG1E,MAAM,MAAM,GAAG,UAAU,CACvB,qBAAqB,EACrB,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,EACxC,aAAa,EAAE,GAAG,EAClB,GAAG,UAAU,CACd;AAED,QAAA,IAAI;AACF,YAAA,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrC;QAAE,OAAO,GAAY,EAAE;AACrB,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACnB;gBAAU;AACR,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;AAClC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB;IACF;;;;;"}
1
+ {"version":3,"file":"test.js","sources":["../../src/commands/test.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../compiler/util';\nimport { dumpArtifacts } from '../shared/dump';\nimport { GlobalFlags } from '../shared/basecmd';\nimport { spawnEmbed, waitFor } from '../shared/proc';\nimport { TengoTesterBinaryPath } from '@milaboratories/tengo-tester';\n\nexport default class Test extends Command {\n static override description = 'run tengo unit tests (.test.tengo)';\n\n static strict = false;\n\n static override flags = { ...GlobalFlags };\n\n static override examples = ['<%= config.bin %> <%= command.id %>'];\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Test);\n const logger = createLogger(flags['log-level']);\n\n const testerArgs: string[] = this.argv.length == 0 ? ['./src'] : this.argv;\n\n const tester = spawnEmbed(\n TengoTesterBinaryPath,\n 'run', '--log-level', flags['log-level'],\n '--artifacts', '-',\n ...testerArgs,\n );\n\n try {\n dumpArtifacts(logger, tester.stdin);\n } catch (err: unknown) {\n logger.error(err);\n } finally {\n tester.stdin.end();\n const code = await waitFor(tester);\n process.exit(code);\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;AAOc,MAAO,IAAK,SAAQ,OAAO,CAAA;AACvC,IAAA,OAAgB,WAAW,GAAG,oCAAoC;AAElE,IAAA,OAAO,MAAM,GAAG,KAAK;AAErB,IAAA,OAAgB,KAAK,GAAG,EAAE,GAAG,WAAW,EAAE;AAE1C,IAAA,OAAgB,QAAQ,GAAG,CAAC,qCAAqC,CAAC;AAE3D,IAAA,MAAM,GAAG,GAAA;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACxC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAa,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI;QAE1E,MAAM,MAAM,GAAG,UAAU,CACvB,qBAAqB,EACrB,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC,EACxC,aAAa,EAAE,GAAG,EAClB,GAAG,UAAU,CACd;AAED,QAAA,IAAI;AACF,YAAA,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QACrC;QAAE,OAAO,GAAY,EAAE;AACrB,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACnB;gBAAU;AACR,YAAA,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;AAClB,YAAA,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;AAClC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACpB;IACF;;;;;"}
@@ -254,7 +254,6 @@ function parseSources(logger, packageId, mode, root, subdir) {
254
254
  continue; // skip unknown file types
255
255
  }
256
256
  // if (subdir != '') {
257
- // // prettier-ignore
258
257
  // throw new Error(`Templates and libraries should reside only inside '${root}' dir.
259
258
  // You are free to have any file and dirs structure inside '${root}' keeping other files where you want,
260
259
  // but regarding ${compilableSuffixes.join(', ')}, the flat file structure is mandatory.`);
@@ -1 +1 @@
1
- {"version":3,"file":"main.cjs","sources":["../../src/compiler/main.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport * as path from 'node:path';\nimport * as fs from 'node:fs';\nimport { pathType } from './util';\nimport type { TemplatesAndLibs } from './compiler';\nimport { TengoTemplateCompiler } from './compiler';\nimport { getSha256 } from './source';\nimport type {\n CompileMode,\n FullArtifactName } from './package';\nimport {\n fullNameToString,\n typedArtifactNameToString,\n} from './package';\nimport { ArtifactSource, parseSourceFile } from './source';\nimport { newTemplateFromContent, templateToSource } from './template';\nimport type winston from 'winston';\nimport { tryResolve, tryResolveOrError } from '@milaboratories/resolve-helper';\nimport { serializeTemplate } from '@milaboratories/pl-model-backend';\n\ninterface PackageId {\n /** Package name from package.json */\n readonly name: string;\n /** Package version from package.json */\n readonly version: string;\n}\n\ninterface PackageInfo extends PackageId {\n /** Package type from package.json */\n readonly type: string | undefined;\n /** Path to package root */\n readonly root: string;\n /** Context of package info */\n readonly context: PackageInfoContext;\n /** Dependencies */\n readonly dependencies: PackageInfo[];\n}\n\ninterface PackageJson {\n name: string;\n version: string;\n type: string | undefined;\n dependencies: Record<string, string>;\n devDependencies: Record<string, string>;\n}\n\nconst compiledTplSuffix = '.plj.gz';\nconst compiledLibSuffix = '.lib.tengo';\nconst compiledSoftwareSuffix = '.sw.json';\nconst compiledAssetSuffix = '.as.json';\n\n// We need to keep track of dependencies for correct tgo-test CLI utility configuraiton.\n// It is much simpler to do this here, than duplicate all tle logic regarding dependencies\n// in go code.\nconst srcTestSuffix = '.test.tengo';\n\nconst srcTplSuffix = '.tpl.tengo';\nconst srcLibSuffix = '.lib.tengo';\nconst srcSoftwareSuffix = '.sw.json';\nconst srcAssetSuffix = '.as.json';\nconst compilableSuffixes = [srcLibSuffix, srcTplSuffix, srcSoftwareSuffix, srcAssetSuffix];\n\n/**\n * Resolves path to package.json file of the given dependency package.\n */\nfunction resolvePackageJsonPackage(root: string, depPackageName: string): string | undefined {\n if (!path.isAbsolute(root)) {\n throw new Error(`Root path must be absolute: ${root}`);\n }\n\n // First approach: resolving package's main entry point and try to find package.json\n // in dir tree upwards.\n let resolved = tryResolve(root, depPackageName);\n if (resolved) {\n let depth = 0;\n do {\n const p = path.join(resolved, 'package.json');\n if (pathType(p) === 'file')\n return p;\n depth++;\n resolved = path.dirname(resolved);\n } while (depth < 7 && path.basename(resolved) !== 'node_modules');\n }\n\n // Second approach: trying to find package.json in the package dir.\n const resolved2 = tryResolveOrError(root, `${depPackageName}/package.json`);\n if (resolved2.result === undefined) {\n if (resolved2.err === 'ERR_PACKAGE_PATH_NOT_EXPORTED')\n // tolerating not-exported package.json for dev dependencies\n return undefined;\n throw new Error(`Can't resolve package.json for package ${depPackageName ?? '.'} relative to ${root}`);\n }\n return resolved2.result;\n}\n\nexport function resolvePackageJsonRoot(root: string): string {\n if (!path.isAbsolute(root)) {\n throw new Error(`Root path must be absolute: ${root}`);\n }\n\n const p = path.join(root, 'package.json');\n if (pathType(p) === 'file')\n return p;\n throw new Error(`Can't resolve package.json in ${root}`);\n}\n\ntype PackageInfoContext = 'root' | 'dependency' | 'devDependency';\n\n/**\n * Get package info from package.json and all dependencies.\n */\nexport function getPackageInfo(\n root: string,\n logger: winston.Logger,\n context: PackageInfoContext = 'root',\n): PackageInfo {\n const packageJsonPath = resolvePackageJsonRoot(root);\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath).toString()) as PackageJson;\n\n // resolving dependencies\n const depInfos: PackageInfo[] = [];\n\n if (packageJson.dependencies && context !== 'devDependency') {\n for (const dep of Object.keys(packageJson.dependencies)) {\n const depPackageJson = resolvePackageJsonPackage(root, dep);\n if (depPackageJson === undefined)\n throw new Error(`Can't resolve package.json for dependency ${dep} of ${root}`);\n const depRoot = path.dirname(depPackageJson);\n depInfos.push(getPackageInfo(depRoot, logger, 'dependency'));\n }\n }\n\n if (packageJson.devDependencies && context === 'root') {\n for (const dep of Object.keys(packageJson.devDependencies)) {\n const depPackageJson = resolvePackageJsonPackage(root, dep);\n if (depPackageJson === undefined) {\n logger.warn(`Can't resolve package.json for dev dependency ${dep} of ${root}`);\n // tolerating not-exported package.json for dev dependencies\n continue;\n }\n const depRoot = path.dirname(depPackageJson);\n depInfos.push(getPackageInfo(depRoot, logger, 'devDependency'));\n }\n }\n\n return {\n name: packageJson.name,\n version: packageJson.version,\n type: packageJson.type,\n dependencies: depInfos,\n root,\n context,\n };\n}\n\nfunction resolveLibsDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'lib');\n}\n\nfunction resolveTemplatesDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'tpl');\n}\n\nfunction resolveSoftwareDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'software');\n}\n\nfunction resolveAssetsDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'asset');\n}\n\nfunction loadDependencies(\n logger: winston.Logger,\n compiler: TengoTemplateCompiler,\n packageInfo: PackageInfo,\n): void {\n for (const dep of packageInfo.dependencies)\n loadDependencies(logger, compiler, dep);\n\n if (packageInfo.context === 'root')\n // we are not reading compiled files for root package\n return;\n\n // we are in package folder\n const libDistFolder = resolveLibsDst('dist', packageInfo.root);\n const tplDistFolder = resolveTemplatesDst('dist', packageInfo.root);\n const softwareDistFolder = resolveSoftwareDst('dist', packageInfo.root);\n const assetDistFolder = resolveAssetsDst('dist', packageInfo.root);\n\n const libDistExists = pathType(libDistFolder) === 'dir';\n const tplDistExists = pathType(tplDistFolder) === 'dir';\n const softwareDistExists = pathType(softwareDistFolder) === 'dir';\n const assetDistExists = pathType(assetDistFolder) === 'dir';\n\n if (!libDistExists && !tplDistExists && !softwareDistExists && !assetDistExists)\n // if neither of tengo-specific folders detected, skipping package\n return;\n\n const packageId = { name: packageInfo.name, version: packageInfo.version };\n\n if (libDistExists) {\n loadLibsFromDir(logger, packageId, 'dist', libDistFolder, compiler);\n }\n\n if (tplDistExists) {\n loadTemplatesFromDir(logger, packageId, 'dist', tplDistFolder, compiler);\n }\n\n if (softwareDistExists) {\n loadSoftwareFromDir(logger, packageId, 'dist', softwareDistFolder, compiler);\n }\n\n if (assetDistExists) {\n loadAssetsFromDir(logger, packageId, 'dist', assetDistFolder, compiler);\n }\n}\n\nfunction loadLibsFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledLibSuffix)) throw new Error(`unexpected file in 'lib' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'library',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledLibSuffix.length),\n version: packageId.version,\n };\n const src = parseSourceFile(logger, mode, file, fullName, true);\n compiler.addLib(src);\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n if (src.dependencies.length > 0) {\n logger.debug('Dependencies:');\n for (const dep of src.dependencies) logger.debug(` - ${typedArtifactNameToString(dep)}`);\n }\n }\n}\n\nfunction loadTemplatesFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n // adding templates\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledTplSuffix)) throw new Error(`unexpected file in 'tpl' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'template',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledTplSuffix.length),\n version: packageId.version,\n };\n const tpl = newTemplateFromContent(mode, fullName, fs.readFileSync(file));\n compiler.addTemplate(templateToSource(tpl));\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n }\n}\n\nfunction loadSoftwareFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledSoftwareSuffix))\n throw new Error(`unexpected file in 'software' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'software',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledSoftwareSuffix.length),\n version: packageId.version,\n };\n\n const source = fs.readFileSync(file).toString();\n\n const software = new ArtifactSource(\n mode,\n fullName,\n getSha256(source),\n source,\n file,\n [],\n [],\n );\n\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n compiler.addSoftware(software);\n }\n}\n\nfunction loadAssetsFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledAssetSuffix))\n throw new Error(`unexpected file in 'asset' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'asset',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledAssetSuffix.length),\n version: packageId.version,\n };\n\n const source = fs.readFileSync(file).toString();\n\n const asset = new ArtifactSource(\n mode,\n fullName,\n getSha256(source),\n source,\n file,\n [],\n [],\n );\n\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n compiler.addAsset(asset);\n }\n}\n\nexport function parseSources(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n root: string,\n subdir: string,\n): ArtifactSource[] {\n const sources: ArtifactSource[] = [];\n\n for (const f of fs.readdirSync(path.join(root, subdir))) {\n const inRootPath = path.join(subdir, f); // path to item inside given <root>\n const fullPath = path.join(root, inRootPath); // full path to item from CWD (or abs path, if <root> is abs path)\n\n if (pathType(fullPath) === 'dir') {\n const nested = parseSources(logger, packageId, mode, root, inRootPath);\n sources.push(...nested);\n continue;\n }\n\n // Handling index.lib.tengo files: rename them to <package-name>.lib.tengo\n const artifactName = f === 'index.lib.tengo' ? `${path.dirname(inRootPath)}.lib.tengo` : inRootPath;\n\n const fullName = fullNameFromFileName(packageId, artifactName.replaceAll(path.sep, '.'));\n if (!fullName) {\n logger.info(`Skipping unknown file type: ${artifactName}`);\n continue; // skip unknown file types\n }\n\n // if (subdir != '') {\n // // prettier-ignore\n // throw new Error(`Templates and libraries should reside only inside '${root}' dir.\n // You are free to have any file and dirs structure inside '${root}' keeping other files where you want,\n // but regarding ${compilableSuffixes.join(', ')}, the flat file structure is mandatory.`);\n // }\n\n const file = path.resolve(root, inRootPath);\n logger.debug(`Parsing ${fullNameToString(fullName)} from ${file}`);\n const newSrc = parseSourceFile(logger, mode, file, fullName, true);\n if (newSrc.dependencies.length > 0) {\n logger.debug('Detected dependencies:');\n for (const dep of newSrc.dependencies) logger.debug(` - ${typedArtifactNameToString(dep)}`);\n }\n\n sources.push(newSrc);\n }\n\n return sources;\n}\n\nexport function newCompiler(\n logger: winston.Logger,\n packageInfo: PackageInfo,\n mode: CompileMode,\n): TengoTemplateCompiler {\n const compiler = new TengoTemplateCompiler(mode);\n\n // collect all data (templates, libs and software) from dependency tree\n loadDependencies(logger, compiler, packageInfo);\n\n return compiler;\n}\n\nexport function fullNameFromFileName(\n packageId: PackageId,\n artifactName: string,\n): FullArtifactName | null {\n const pkgAndVersion = { pkg: packageId.name, version: packageId.version };\n if (artifactName.endsWith(srcLibSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcLibSuffix.length),\n type: 'library',\n };\n }\n\n if (artifactName.endsWith(srcTplSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcTplSuffix.length),\n type: 'template',\n };\n }\n\n if (artifactName.endsWith(srcSoftwareSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcSoftwareSuffix.length),\n type: 'software',\n };\n }\n\n if (artifactName.endsWith(srcAssetSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcAssetSuffix.length),\n type: 'asset',\n };\n }\n\n if (artifactName.endsWith(srcTestSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcTestSuffix.length),\n type: 'test',\n };\n }\n\n return null;\n}\n\nexport function compile(logger: winston.Logger, packageInfo: PackageInfo, mode: CompileMode): TemplatesAndLibs {\n const compiler = newCompiler(logger, packageInfo, mode);\n const sources = parseSources(logger, packageInfo, mode, 'src', '');\n\n // checking that we have something to do\n if (sources.length === 0) {\n const lookFor: string[] = [];\n for (const suffix of compilableSuffixes) {\n lookFor.push(`*${suffix}`);\n }\n\n logger.error(`Nothing to compile. Looked for ${lookFor.join(', ')}`);\n process.exit(1);\n }\n\n // compilation\n logger.info(`Compiling '${mode}'...`);\n const compiled = compiler.compileAndAdd(sources);\n logger.debug(`Done.`);\n\n return compiled;\n}\n\nexport function savePacks(logger: winston.Logger, compiled: TemplatesAndLibs, mode: CompileMode) {\n // writing libs\n if (compiled.libs.length > 0) {\n const libOutput = resolveLibsDst(mode, '.');\n fs.mkdirSync(libOutput, { recursive: true });\n for (const lib of compiled.libs) {\n const file = path.resolve(libOutput, lib.fullName.id + compiledLibSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, lib.src);\n }\n }\n\n // writing templates\n if (compiled.templates.length > 0) {\n const tplOutput = resolveTemplatesDst(mode, '.');\n fs.mkdirSync(tplOutput, { recursive: true });\n for (const tpl of compiled.templates) {\n const file = path.resolve(tplOutput, tpl.fullName.id + compiledTplSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, serializeTemplate(tpl.data));\n }\n }\n\n // writing software\n if (compiled.software.length > 0) {\n const swOutput = resolveSoftwareDst(mode, '.');\n fs.mkdirSync(swOutput, { recursive: true });\n for (const sw of compiled.software) {\n const file = path.resolve(swOutput, sw.fullName.id + compiledSoftwareSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, sw.src);\n }\n }\n\n // writing assets\n if (compiled.assets.length > 0) {\n const swOutput = resolveAssetsDst(mode, '.');\n fs.mkdirSync(swOutput, { recursive: true });\n for (const sw of compiled.software) {\n const file = path.resolve(swOutput, sw.fullName.id + compiledAssetSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, sw.src);\n }\n }\n}\n"],"names":["path","tryResolve","pathType","tryResolveOrError","fs","parseSourceFile","fullNameToString","typedArtifactNameToString","newTemplateFromContent","templateToSource","source","ArtifactSource","getSha256","compiler","TengoTemplateCompiler","serializeTemplate"],"mappings":"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"}
1
+ {"version":3,"file":"main.cjs","sources":["../../src/compiler/main.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport * as path from 'node:path';\nimport * as fs from 'node:fs';\nimport { pathType } from './util';\nimport type { TemplatesAndLibs } from './compiler';\nimport { TengoTemplateCompiler } from './compiler';\nimport { getSha256 } from './source';\nimport type {\n CompileMode,\n FullArtifactName } from './package';\nimport {\n fullNameToString,\n typedArtifactNameToString,\n} from './package';\nimport { ArtifactSource, parseSourceFile } from './source';\nimport { newTemplateFromContent, templateToSource } from './template';\nimport type winston from 'winston';\nimport { tryResolve, tryResolveOrError } from '@milaboratories/resolve-helper';\nimport { serializeTemplate } from '@milaboratories/pl-model-backend';\n\ninterface PackageId {\n /** Package name from package.json */\n readonly name: string;\n /** Package version from package.json */\n readonly version: string;\n}\n\ninterface PackageInfo extends PackageId {\n /** Package type from package.json */\n readonly type: string | undefined;\n /** Path to package root */\n readonly root: string;\n /** Context of package info */\n readonly context: PackageInfoContext;\n /** Dependencies */\n readonly dependencies: PackageInfo[];\n}\n\ninterface PackageJson {\n name: string;\n version: string;\n type: string | undefined;\n dependencies: Record<string, string>;\n devDependencies: Record<string, string>;\n}\n\nconst compiledTplSuffix = '.plj.gz';\nconst compiledLibSuffix = '.lib.tengo';\nconst compiledSoftwareSuffix = '.sw.json';\nconst compiledAssetSuffix = '.as.json';\n\n// We need to keep track of dependencies for correct tgo-test CLI utility configuraiton.\n// It is much simpler to do this here, than duplicate all tle logic regarding dependencies\n// in go code.\nconst srcTestSuffix = '.test.tengo';\n\nconst srcTplSuffix = '.tpl.tengo';\nconst srcLibSuffix = '.lib.tengo';\nconst srcSoftwareSuffix = '.sw.json';\nconst srcAssetSuffix = '.as.json';\nconst compilableSuffixes = [srcLibSuffix, srcTplSuffix, srcSoftwareSuffix, srcAssetSuffix];\n\n/**\n * Resolves path to package.json file of the given dependency package.\n */\nfunction resolvePackageJsonPackage(root: string, depPackageName: string): string | undefined {\n if (!path.isAbsolute(root)) {\n throw new Error(`Root path must be absolute: ${root}`);\n }\n\n // First approach: resolving package's main entry point and try to find package.json\n // in dir tree upwards.\n let resolved = tryResolve(root, depPackageName);\n if (resolved) {\n let depth = 0;\n do {\n const p = path.join(resolved, 'package.json');\n if (pathType(p) === 'file')\n return p;\n depth++;\n resolved = path.dirname(resolved);\n } while (depth < 7 && path.basename(resolved) !== 'node_modules');\n }\n\n // Second approach: trying to find package.json in the package dir.\n const resolved2 = tryResolveOrError(root, `${depPackageName}/package.json`);\n if (resolved2.result === undefined) {\n if (resolved2.err === 'ERR_PACKAGE_PATH_NOT_EXPORTED')\n // tolerating not-exported package.json for dev dependencies\n return undefined;\n throw new Error(`Can't resolve package.json for package ${depPackageName ?? '.'} relative to ${root}`);\n }\n return resolved2.result;\n}\n\nexport function resolvePackageJsonRoot(root: string): string {\n if (!path.isAbsolute(root)) {\n throw new Error(`Root path must be absolute: ${root}`);\n }\n\n const p = path.join(root, 'package.json');\n if (pathType(p) === 'file')\n return p;\n throw new Error(`Can't resolve package.json in ${root}`);\n}\n\ntype PackageInfoContext = 'root' | 'dependency' | 'devDependency';\n\n/**\n * Get package info from package.json and all dependencies.\n */\nexport function getPackageInfo(\n root: string,\n logger: winston.Logger,\n context: PackageInfoContext = 'root',\n): PackageInfo {\n const packageJsonPath = resolvePackageJsonRoot(root);\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath).toString()) as PackageJson;\n\n // resolving dependencies\n const depInfos: PackageInfo[] = [];\n\n if (packageJson.dependencies && context !== 'devDependency') {\n for (const dep of Object.keys(packageJson.dependencies)) {\n const depPackageJson = resolvePackageJsonPackage(root, dep);\n if (depPackageJson === undefined)\n throw new Error(`Can't resolve package.json for dependency ${dep} of ${root}`);\n const depRoot = path.dirname(depPackageJson);\n depInfos.push(getPackageInfo(depRoot, logger, 'dependency'));\n }\n }\n\n if (packageJson.devDependencies && context === 'root') {\n for (const dep of Object.keys(packageJson.devDependencies)) {\n const depPackageJson = resolvePackageJsonPackage(root, dep);\n if (depPackageJson === undefined) {\n logger.warn(`Can't resolve package.json for dev dependency ${dep} of ${root}`);\n // tolerating not-exported package.json for dev dependencies\n continue;\n }\n const depRoot = path.dirname(depPackageJson);\n depInfos.push(getPackageInfo(depRoot, logger, 'devDependency'));\n }\n }\n\n return {\n name: packageJson.name,\n version: packageJson.version,\n type: packageJson.type,\n dependencies: depInfos,\n root,\n context,\n };\n}\n\nfunction resolveLibsDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'lib');\n}\n\nfunction resolveTemplatesDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'tpl');\n}\n\nfunction resolveSoftwareDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'software');\n}\n\nfunction resolveAssetsDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'asset');\n}\n\nfunction loadDependencies(\n logger: winston.Logger,\n compiler: TengoTemplateCompiler,\n packageInfo: PackageInfo,\n): void {\n for (const dep of packageInfo.dependencies)\n loadDependencies(logger, compiler, dep);\n\n if (packageInfo.context === 'root')\n // we are not reading compiled files for root package\n return;\n\n // we are in package folder\n const libDistFolder = resolveLibsDst('dist', packageInfo.root);\n const tplDistFolder = resolveTemplatesDst('dist', packageInfo.root);\n const softwareDistFolder = resolveSoftwareDst('dist', packageInfo.root);\n const assetDistFolder = resolveAssetsDst('dist', packageInfo.root);\n\n const libDistExists = pathType(libDistFolder) === 'dir';\n const tplDistExists = pathType(tplDistFolder) === 'dir';\n const softwareDistExists = pathType(softwareDistFolder) === 'dir';\n const assetDistExists = pathType(assetDistFolder) === 'dir';\n\n if (!libDistExists && !tplDistExists && !softwareDistExists && !assetDistExists)\n // if neither of tengo-specific folders detected, skipping package\n return;\n\n const packageId = { name: packageInfo.name, version: packageInfo.version };\n\n if (libDistExists) {\n loadLibsFromDir(logger, packageId, 'dist', libDistFolder, compiler);\n }\n\n if (tplDistExists) {\n loadTemplatesFromDir(logger, packageId, 'dist', tplDistFolder, compiler);\n }\n\n if (softwareDistExists) {\n loadSoftwareFromDir(logger, packageId, 'dist', softwareDistFolder, compiler);\n }\n\n if (assetDistExists) {\n loadAssetsFromDir(logger, packageId, 'dist', assetDistFolder, compiler);\n }\n}\n\nfunction loadLibsFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledLibSuffix)) throw new Error(`unexpected file in 'lib' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'library',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledLibSuffix.length),\n version: packageId.version,\n };\n const src = parseSourceFile(logger, mode, file, fullName, true);\n compiler.addLib(src);\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n if (src.dependencies.length > 0) {\n logger.debug('Dependencies:');\n for (const dep of src.dependencies) logger.debug(` - ${typedArtifactNameToString(dep)}`);\n }\n }\n}\n\nfunction loadTemplatesFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n // adding templates\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledTplSuffix)) throw new Error(`unexpected file in 'tpl' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'template',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledTplSuffix.length),\n version: packageId.version,\n };\n const tpl = newTemplateFromContent(mode, fullName, fs.readFileSync(file));\n compiler.addTemplate(templateToSource(tpl));\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n }\n}\n\nfunction loadSoftwareFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledSoftwareSuffix))\n throw new Error(`unexpected file in 'software' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'software',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledSoftwareSuffix.length),\n version: packageId.version,\n };\n\n const source = fs.readFileSync(file).toString();\n\n const software = new ArtifactSource(\n mode,\n fullName,\n getSha256(source),\n source,\n file,\n [],\n [],\n );\n\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n compiler.addSoftware(software);\n }\n}\n\nfunction loadAssetsFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledAssetSuffix))\n throw new Error(`unexpected file in 'asset' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'asset',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledAssetSuffix.length),\n version: packageId.version,\n };\n\n const source = fs.readFileSync(file).toString();\n\n const asset = new ArtifactSource(\n mode,\n fullName,\n getSha256(source),\n source,\n file,\n [],\n [],\n );\n\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n compiler.addAsset(asset);\n }\n}\n\nexport function parseSources(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n root: string,\n subdir: string,\n): ArtifactSource[] {\n const sources: ArtifactSource[] = [];\n\n for (const f of fs.readdirSync(path.join(root, subdir))) {\n const inRootPath = path.join(subdir, f); // path to item inside given <root>\n const fullPath = path.join(root, inRootPath); // full path to item from CWD (or abs path, if <root> is abs path)\n\n if (pathType(fullPath) === 'dir') {\n const nested = parseSources(logger, packageId, mode, root, inRootPath);\n sources.push(...nested);\n continue;\n }\n\n // Handling index.lib.tengo files: rename them to <package-name>.lib.tengo\n const artifactName = f === 'index.lib.tengo' ? `${path.dirname(inRootPath)}.lib.tengo` : inRootPath;\n\n const fullName = fullNameFromFileName(packageId, artifactName.replaceAll(path.sep, '.'));\n if (!fullName) {\n logger.info(`Skipping unknown file type: ${artifactName}`);\n continue; // skip unknown file types\n }\n\n // if (subdir != '') {\n // throw new Error(`Templates and libraries should reside only inside '${root}' dir.\n // You are free to have any file and dirs structure inside '${root}' keeping other files where you want,\n // but regarding ${compilableSuffixes.join(', ')}, the flat file structure is mandatory.`);\n // }\n\n const file = path.resolve(root, inRootPath);\n logger.debug(`Parsing ${fullNameToString(fullName)} from ${file}`);\n const newSrc = parseSourceFile(logger, mode, file, fullName, true);\n if (newSrc.dependencies.length > 0) {\n logger.debug('Detected dependencies:');\n for (const dep of newSrc.dependencies) logger.debug(` - ${typedArtifactNameToString(dep)}`);\n }\n\n sources.push(newSrc);\n }\n\n return sources;\n}\n\nexport function newCompiler(\n logger: winston.Logger,\n packageInfo: PackageInfo,\n mode: CompileMode,\n): TengoTemplateCompiler {\n const compiler = new TengoTemplateCompiler(mode);\n\n // collect all data (templates, libs and software) from dependency tree\n loadDependencies(logger, compiler, packageInfo);\n\n return compiler;\n}\n\nexport function fullNameFromFileName(\n packageId: PackageId,\n artifactName: string,\n): FullArtifactName | null {\n const pkgAndVersion = { pkg: packageId.name, version: packageId.version };\n if (artifactName.endsWith(srcLibSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcLibSuffix.length),\n type: 'library',\n };\n }\n\n if (artifactName.endsWith(srcTplSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcTplSuffix.length),\n type: 'template',\n };\n }\n\n if (artifactName.endsWith(srcSoftwareSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcSoftwareSuffix.length),\n type: 'software',\n };\n }\n\n if (artifactName.endsWith(srcAssetSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcAssetSuffix.length),\n type: 'asset',\n };\n }\n\n if (artifactName.endsWith(srcTestSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcTestSuffix.length),\n type: 'test',\n };\n }\n\n return null;\n}\n\nexport function compile(logger: winston.Logger, packageInfo: PackageInfo, mode: CompileMode): TemplatesAndLibs {\n const compiler = newCompiler(logger, packageInfo, mode);\n const sources = parseSources(logger, packageInfo, mode, 'src', '');\n\n // checking that we have something to do\n if (sources.length === 0) {\n const lookFor: string[] = [];\n for (const suffix of compilableSuffixes) {\n lookFor.push(`*${suffix}`);\n }\n\n logger.error(`Nothing to compile. Looked for ${lookFor.join(', ')}`);\n process.exit(1);\n }\n\n // compilation\n logger.info(`Compiling '${mode}'...`);\n const compiled = compiler.compileAndAdd(sources);\n logger.debug(`Done.`);\n\n return compiled;\n}\n\nexport function savePacks(logger: winston.Logger, compiled: TemplatesAndLibs, mode: CompileMode) {\n // writing libs\n if (compiled.libs.length > 0) {\n const libOutput = resolveLibsDst(mode, '.');\n fs.mkdirSync(libOutput, { recursive: true });\n for (const lib of compiled.libs) {\n const file = path.resolve(libOutput, lib.fullName.id + compiledLibSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, lib.src);\n }\n }\n\n // writing templates\n if (compiled.templates.length > 0) {\n const tplOutput = resolveTemplatesDst(mode, '.');\n fs.mkdirSync(tplOutput, { recursive: true });\n for (const tpl of compiled.templates) {\n const file = path.resolve(tplOutput, tpl.fullName.id + compiledTplSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, serializeTemplate(tpl.data));\n }\n }\n\n // writing software\n if (compiled.software.length > 0) {\n const swOutput = resolveSoftwareDst(mode, '.');\n fs.mkdirSync(swOutput, { recursive: true });\n for (const sw of compiled.software) {\n const file = path.resolve(swOutput, sw.fullName.id + compiledSoftwareSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, sw.src);\n }\n }\n\n // writing assets\n if (compiled.assets.length > 0) {\n const swOutput = resolveAssetsDst(mode, '.');\n fs.mkdirSync(swOutput, { recursive: true });\n for (const sw of compiled.software) {\n const file = path.resolve(swOutput, sw.fullName.id + compiledAssetSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, sw.src);\n }\n }\n}\n"],"names":["path","tryResolve","pathType","tryResolveOrError","fs","parseSourceFile","fullNameToString","typedArtifactNameToString","newTemplateFromContent","templateToSource","source","ArtifactSource","getSha256","compiler","TengoTemplateCompiler","serializeTemplate"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/compiler/main.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAKtC,OAAO,EAAE,cAAc,EAAmB,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,UAAU,SAAS;IACjB,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,WAAY,SAAQ,SAAS;IACrC,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,2BAA2B;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,mBAAmB;IACnB,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;CACtC;AA2DD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS3D;AAED,KAAK,kBAAkB,GAAG,MAAM,GAAG,YAAY,GAAG,eAAe,CAAC;AAElE;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,OAAO,GAAE,kBAA2B,GACnC,WAAW,CAsCb;AAuLD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,cAAc,EAAE,CAyClB;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,WAAW,GAChB,qBAAqB,CAOvB;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,MAAM,GACnB,gBAAgB,GAAG,IAAI,CA2CzB;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAqB7G;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,QA4C9F"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/compiler/main.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EACV,WAAW,EACX,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAKtC,OAAO,EAAE,cAAc,EAAmB,MAAM,UAAU,CAAC;AAE3D,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,UAAU,SAAS;IACjB,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,WAAY,SAAQ,SAAS;IACrC,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,2BAA2B;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,mBAAmB;IACnB,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;CACtC;AA2DD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAS3D;AAED,KAAK,kBAAkB,GAAG,MAAM,GAAG,YAAY,GAAG,eAAe,CAAC;AAElE;;GAEG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,OAAO,GAAE,kBAA2B,GACnC,WAAW,CAsCb;AAuLD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,cAAc,EAAE,CAwClB;AAED,wBAAgB,WAAW,CACzB,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,WAAW,GAChB,qBAAqB,CAOvB;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,MAAM,GACnB,gBAAgB,GAAG,IAAI,CA2CzB;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAqB7G;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,QA4C9F"}
@@ -232,7 +232,6 @@ function parseSources(logger, packageId, mode, root, subdir) {
232
232
  continue; // skip unknown file types
233
233
  }
234
234
  // if (subdir != '') {
235
- // // prettier-ignore
236
235
  // throw new Error(`Templates and libraries should reside only inside '${root}' dir.
237
236
  // You are free to have any file and dirs structure inside '${root}' keeping other files where you want,
238
237
  // but regarding ${compilableSuffixes.join(', ')}, the flat file structure is mandatory.`);
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../../src/compiler/main.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport * as path from 'node:path';\nimport * as fs from 'node:fs';\nimport { pathType } from './util';\nimport type { TemplatesAndLibs } from './compiler';\nimport { TengoTemplateCompiler } from './compiler';\nimport { getSha256 } from './source';\nimport type {\n CompileMode,\n FullArtifactName } from './package';\nimport {\n fullNameToString,\n typedArtifactNameToString,\n} from './package';\nimport { ArtifactSource, parseSourceFile } from './source';\nimport { newTemplateFromContent, templateToSource } from './template';\nimport type winston from 'winston';\nimport { tryResolve, tryResolveOrError } from '@milaboratories/resolve-helper';\nimport { serializeTemplate } from '@milaboratories/pl-model-backend';\n\ninterface PackageId {\n /** Package name from package.json */\n readonly name: string;\n /** Package version from package.json */\n readonly version: string;\n}\n\ninterface PackageInfo extends PackageId {\n /** Package type from package.json */\n readonly type: string | undefined;\n /** Path to package root */\n readonly root: string;\n /** Context of package info */\n readonly context: PackageInfoContext;\n /** Dependencies */\n readonly dependencies: PackageInfo[];\n}\n\ninterface PackageJson {\n name: string;\n version: string;\n type: string | undefined;\n dependencies: Record<string, string>;\n devDependencies: Record<string, string>;\n}\n\nconst compiledTplSuffix = '.plj.gz';\nconst compiledLibSuffix = '.lib.tengo';\nconst compiledSoftwareSuffix = '.sw.json';\nconst compiledAssetSuffix = '.as.json';\n\n// We need to keep track of dependencies for correct tgo-test CLI utility configuraiton.\n// It is much simpler to do this here, than duplicate all tle logic regarding dependencies\n// in go code.\nconst srcTestSuffix = '.test.tengo';\n\nconst srcTplSuffix = '.tpl.tengo';\nconst srcLibSuffix = '.lib.tengo';\nconst srcSoftwareSuffix = '.sw.json';\nconst srcAssetSuffix = '.as.json';\nconst compilableSuffixes = [srcLibSuffix, srcTplSuffix, srcSoftwareSuffix, srcAssetSuffix];\n\n/**\n * Resolves path to package.json file of the given dependency package.\n */\nfunction resolvePackageJsonPackage(root: string, depPackageName: string): string | undefined {\n if (!path.isAbsolute(root)) {\n throw new Error(`Root path must be absolute: ${root}`);\n }\n\n // First approach: resolving package's main entry point and try to find package.json\n // in dir tree upwards.\n let resolved = tryResolve(root, depPackageName);\n if (resolved) {\n let depth = 0;\n do {\n const p = path.join(resolved, 'package.json');\n if (pathType(p) === 'file')\n return p;\n depth++;\n resolved = path.dirname(resolved);\n } while (depth < 7 && path.basename(resolved) !== 'node_modules');\n }\n\n // Second approach: trying to find package.json in the package dir.\n const resolved2 = tryResolveOrError(root, `${depPackageName}/package.json`);\n if (resolved2.result === undefined) {\n if (resolved2.err === 'ERR_PACKAGE_PATH_NOT_EXPORTED')\n // tolerating not-exported package.json for dev dependencies\n return undefined;\n throw new Error(`Can't resolve package.json for package ${depPackageName ?? '.'} relative to ${root}`);\n }\n return resolved2.result;\n}\n\nexport function resolvePackageJsonRoot(root: string): string {\n if (!path.isAbsolute(root)) {\n throw new Error(`Root path must be absolute: ${root}`);\n }\n\n const p = path.join(root, 'package.json');\n if (pathType(p) === 'file')\n return p;\n throw new Error(`Can't resolve package.json in ${root}`);\n}\n\ntype PackageInfoContext = 'root' | 'dependency' | 'devDependency';\n\n/**\n * Get package info from package.json and all dependencies.\n */\nexport function getPackageInfo(\n root: string,\n logger: winston.Logger,\n context: PackageInfoContext = 'root',\n): PackageInfo {\n const packageJsonPath = resolvePackageJsonRoot(root);\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath).toString()) as PackageJson;\n\n // resolving dependencies\n const depInfos: PackageInfo[] = [];\n\n if (packageJson.dependencies && context !== 'devDependency') {\n for (const dep of Object.keys(packageJson.dependencies)) {\n const depPackageJson = resolvePackageJsonPackage(root, dep);\n if (depPackageJson === undefined)\n throw new Error(`Can't resolve package.json for dependency ${dep} of ${root}`);\n const depRoot = path.dirname(depPackageJson);\n depInfos.push(getPackageInfo(depRoot, logger, 'dependency'));\n }\n }\n\n if (packageJson.devDependencies && context === 'root') {\n for (const dep of Object.keys(packageJson.devDependencies)) {\n const depPackageJson = resolvePackageJsonPackage(root, dep);\n if (depPackageJson === undefined) {\n logger.warn(`Can't resolve package.json for dev dependency ${dep} of ${root}`);\n // tolerating not-exported package.json for dev dependencies\n continue;\n }\n const depRoot = path.dirname(depPackageJson);\n depInfos.push(getPackageInfo(depRoot, logger, 'devDependency'));\n }\n }\n\n return {\n name: packageJson.name,\n version: packageJson.version,\n type: packageJson.type,\n dependencies: depInfos,\n root,\n context,\n };\n}\n\nfunction resolveLibsDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'lib');\n}\n\nfunction resolveTemplatesDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'tpl');\n}\n\nfunction resolveSoftwareDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'software');\n}\n\nfunction resolveAssetsDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'asset');\n}\n\nfunction loadDependencies(\n logger: winston.Logger,\n compiler: TengoTemplateCompiler,\n packageInfo: PackageInfo,\n): void {\n for (const dep of packageInfo.dependencies)\n loadDependencies(logger, compiler, dep);\n\n if (packageInfo.context === 'root')\n // we are not reading compiled files for root package\n return;\n\n // we are in package folder\n const libDistFolder = resolveLibsDst('dist', packageInfo.root);\n const tplDistFolder = resolveTemplatesDst('dist', packageInfo.root);\n const softwareDistFolder = resolveSoftwareDst('dist', packageInfo.root);\n const assetDistFolder = resolveAssetsDst('dist', packageInfo.root);\n\n const libDistExists = pathType(libDistFolder) === 'dir';\n const tplDistExists = pathType(tplDistFolder) === 'dir';\n const softwareDistExists = pathType(softwareDistFolder) === 'dir';\n const assetDistExists = pathType(assetDistFolder) === 'dir';\n\n if (!libDistExists && !tplDistExists && !softwareDistExists && !assetDistExists)\n // if neither of tengo-specific folders detected, skipping package\n return;\n\n const packageId = { name: packageInfo.name, version: packageInfo.version };\n\n if (libDistExists) {\n loadLibsFromDir(logger, packageId, 'dist', libDistFolder, compiler);\n }\n\n if (tplDistExists) {\n loadTemplatesFromDir(logger, packageId, 'dist', tplDistFolder, compiler);\n }\n\n if (softwareDistExists) {\n loadSoftwareFromDir(logger, packageId, 'dist', softwareDistFolder, compiler);\n }\n\n if (assetDistExists) {\n loadAssetsFromDir(logger, packageId, 'dist', assetDistFolder, compiler);\n }\n}\n\nfunction loadLibsFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledLibSuffix)) throw new Error(`unexpected file in 'lib' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'library',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledLibSuffix.length),\n version: packageId.version,\n };\n const src = parseSourceFile(logger, mode, file, fullName, true);\n compiler.addLib(src);\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n if (src.dependencies.length > 0) {\n logger.debug('Dependencies:');\n for (const dep of src.dependencies) logger.debug(` - ${typedArtifactNameToString(dep)}`);\n }\n }\n}\n\nfunction loadTemplatesFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n // adding templates\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledTplSuffix)) throw new Error(`unexpected file in 'tpl' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'template',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledTplSuffix.length),\n version: packageId.version,\n };\n const tpl = newTemplateFromContent(mode, fullName, fs.readFileSync(file));\n compiler.addTemplate(templateToSource(tpl));\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n }\n}\n\nfunction loadSoftwareFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledSoftwareSuffix))\n throw new Error(`unexpected file in 'software' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'software',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledSoftwareSuffix.length),\n version: packageId.version,\n };\n\n const source = fs.readFileSync(file).toString();\n\n const software = new ArtifactSource(\n mode,\n fullName,\n getSha256(source),\n source,\n file,\n [],\n [],\n );\n\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n compiler.addSoftware(software);\n }\n}\n\nfunction loadAssetsFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledAssetSuffix))\n throw new Error(`unexpected file in 'asset' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'asset',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledAssetSuffix.length),\n version: packageId.version,\n };\n\n const source = fs.readFileSync(file).toString();\n\n const asset = new ArtifactSource(\n mode,\n fullName,\n getSha256(source),\n source,\n file,\n [],\n [],\n );\n\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n compiler.addAsset(asset);\n }\n}\n\nexport function parseSources(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n root: string,\n subdir: string,\n): ArtifactSource[] {\n const sources: ArtifactSource[] = [];\n\n for (const f of fs.readdirSync(path.join(root, subdir))) {\n const inRootPath = path.join(subdir, f); // path to item inside given <root>\n const fullPath = path.join(root, inRootPath); // full path to item from CWD (or abs path, if <root> is abs path)\n\n if (pathType(fullPath) === 'dir') {\n const nested = parseSources(logger, packageId, mode, root, inRootPath);\n sources.push(...nested);\n continue;\n }\n\n // Handling index.lib.tengo files: rename them to <package-name>.lib.tengo\n const artifactName = f === 'index.lib.tengo' ? `${path.dirname(inRootPath)}.lib.tengo` : inRootPath;\n\n const fullName = fullNameFromFileName(packageId, artifactName.replaceAll(path.sep, '.'));\n if (!fullName) {\n logger.info(`Skipping unknown file type: ${artifactName}`);\n continue; // skip unknown file types\n }\n\n // if (subdir != '') {\n // // prettier-ignore\n // throw new Error(`Templates and libraries should reside only inside '${root}' dir.\n // You are free to have any file and dirs structure inside '${root}' keeping other files where you want,\n // but regarding ${compilableSuffixes.join(', ')}, the flat file structure is mandatory.`);\n // }\n\n const file = path.resolve(root, inRootPath);\n logger.debug(`Parsing ${fullNameToString(fullName)} from ${file}`);\n const newSrc = parseSourceFile(logger, mode, file, fullName, true);\n if (newSrc.dependencies.length > 0) {\n logger.debug('Detected dependencies:');\n for (const dep of newSrc.dependencies) logger.debug(` - ${typedArtifactNameToString(dep)}`);\n }\n\n sources.push(newSrc);\n }\n\n return sources;\n}\n\nexport function newCompiler(\n logger: winston.Logger,\n packageInfo: PackageInfo,\n mode: CompileMode,\n): TengoTemplateCompiler {\n const compiler = new TengoTemplateCompiler(mode);\n\n // collect all data (templates, libs and software) from dependency tree\n loadDependencies(logger, compiler, packageInfo);\n\n return compiler;\n}\n\nexport function fullNameFromFileName(\n packageId: PackageId,\n artifactName: string,\n): FullArtifactName | null {\n const pkgAndVersion = { pkg: packageId.name, version: packageId.version };\n if (artifactName.endsWith(srcLibSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcLibSuffix.length),\n type: 'library',\n };\n }\n\n if (artifactName.endsWith(srcTplSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcTplSuffix.length),\n type: 'template',\n };\n }\n\n if (artifactName.endsWith(srcSoftwareSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcSoftwareSuffix.length),\n type: 'software',\n };\n }\n\n if (artifactName.endsWith(srcAssetSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcAssetSuffix.length),\n type: 'asset',\n };\n }\n\n if (artifactName.endsWith(srcTestSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcTestSuffix.length),\n type: 'test',\n };\n }\n\n return null;\n}\n\nexport function compile(logger: winston.Logger, packageInfo: PackageInfo, mode: CompileMode): TemplatesAndLibs {\n const compiler = newCompiler(logger, packageInfo, mode);\n const sources = parseSources(logger, packageInfo, mode, 'src', '');\n\n // checking that we have something to do\n if (sources.length === 0) {\n const lookFor: string[] = [];\n for (const suffix of compilableSuffixes) {\n lookFor.push(`*${suffix}`);\n }\n\n logger.error(`Nothing to compile. Looked for ${lookFor.join(', ')}`);\n process.exit(1);\n }\n\n // compilation\n logger.info(`Compiling '${mode}'...`);\n const compiled = compiler.compileAndAdd(sources);\n logger.debug(`Done.`);\n\n return compiled;\n}\n\nexport function savePacks(logger: winston.Logger, compiled: TemplatesAndLibs, mode: CompileMode) {\n // writing libs\n if (compiled.libs.length > 0) {\n const libOutput = resolveLibsDst(mode, '.');\n fs.mkdirSync(libOutput, { recursive: true });\n for (const lib of compiled.libs) {\n const file = path.resolve(libOutput, lib.fullName.id + compiledLibSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, lib.src);\n }\n }\n\n // writing templates\n if (compiled.templates.length > 0) {\n const tplOutput = resolveTemplatesDst(mode, '.');\n fs.mkdirSync(tplOutput, { recursive: true });\n for (const tpl of compiled.templates) {\n const file = path.resolve(tplOutput, tpl.fullName.id + compiledTplSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, serializeTemplate(tpl.data));\n }\n }\n\n // writing software\n if (compiled.software.length > 0) {\n const swOutput = resolveSoftwareDst(mode, '.');\n fs.mkdirSync(swOutput, { recursive: true });\n for (const sw of compiled.software) {\n const file = path.resolve(swOutput, sw.fullName.id + compiledSoftwareSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, sw.src);\n }\n }\n\n // writing assets\n if (compiled.assets.length > 0) {\n const swOutput = resolveAssetsDst(mode, '.');\n fs.mkdirSync(swOutput, { recursive: true });\n for (const sw of compiled.software) {\n const file = path.resolve(swOutput, sw.fullName.id + compiledAssetSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, sw.src);\n }\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../../src/compiler/main.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport * as path from 'node:path';\nimport * as fs from 'node:fs';\nimport { pathType } from './util';\nimport type { TemplatesAndLibs } from './compiler';\nimport { TengoTemplateCompiler } from './compiler';\nimport { getSha256 } from './source';\nimport type {\n CompileMode,\n FullArtifactName } from './package';\nimport {\n fullNameToString,\n typedArtifactNameToString,\n} from './package';\nimport { ArtifactSource, parseSourceFile } from './source';\nimport { newTemplateFromContent, templateToSource } from './template';\nimport type winston from 'winston';\nimport { tryResolve, tryResolveOrError } from '@milaboratories/resolve-helper';\nimport { serializeTemplate } from '@milaboratories/pl-model-backend';\n\ninterface PackageId {\n /** Package name from package.json */\n readonly name: string;\n /** Package version from package.json */\n readonly version: string;\n}\n\ninterface PackageInfo extends PackageId {\n /** Package type from package.json */\n readonly type: string | undefined;\n /** Path to package root */\n readonly root: string;\n /** Context of package info */\n readonly context: PackageInfoContext;\n /** Dependencies */\n readonly dependencies: PackageInfo[];\n}\n\ninterface PackageJson {\n name: string;\n version: string;\n type: string | undefined;\n dependencies: Record<string, string>;\n devDependencies: Record<string, string>;\n}\n\nconst compiledTplSuffix = '.plj.gz';\nconst compiledLibSuffix = '.lib.tengo';\nconst compiledSoftwareSuffix = '.sw.json';\nconst compiledAssetSuffix = '.as.json';\n\n// We need to keep track of dependencies for correct tgo-test CLI utility configuraiton.\n// It is much simpler to do this here, than duplicate all tle logic regarding dependencies\n// in go code.\nconst srcTestSuffix = '.test.tengo';\n\nconst srcTplSuffix = '.tpl.tengo';\nconst srcLibSuffix = '.lib.tengo';\nconst srcSoftwareSuffix = '.sw.json';\nconst srcAssetSuffix = '.as.json';\nconst compilableSuffixes = [srcLibSuffix, srcTplSuffix, srcSoftwareSuffix, srcAssetSuffix];\n\n/**\n * Resolves path to package.json file of the given dependency package.\n */\nfunction resolvePackageJsonPackage(root: string, depPackageName: string): string | undefined {\n if (!path.isAbsolute(root)) {\n throw new Error(`Root path must be absolute: ${root}`);\n }\n\n // First approach: resolving package's main entry point and try to find package.json\n // in dir tree upwards.\n let resolved = tryResolve(root, depPackageName);\n if (resolved) {\n let depth = 0;\n do {\n const p = path.join(resolved, 'package.json');\n if (pathType(p) === 'file')\n return p;\n depth++;\n resolved = path.dirname(resolved);\n } while (depth < 7 && path.basename(resolved) !== 'node_modules');\n }\n\n // Second approach: trying to find package.json in the package dir.\n const resolved2 = tryResolveOrError(root, `${depPackageName}/package.json`);\n if (resolved2.result === undefined) {\n if (resolved2.err === 'ERR_PACKAGE_PATH_NOT_EXPORTED')\n // tolerating not-exported package.json for dev dependencies\n return undefined;\n throw new Error(`Can't resolve package.json for package ${depPackageName ?? '.'} relative to ${root}`);\n }\n return resolved2.result;\n}\n\nexport function resolvePackageJsonRoot(root: string): string {\n if (!path.isAbsolute(root)) {\n throw new Error(`Root path must be absolute: ${root}`);\n }\n\n const p = path.join(root, 'package.json');\n if (pathType(p) === 'file')\n return p;\n throw new Error(`Can't resolve package.json in ${root}`);\n}\n\ntype PackageInfoContext = 'root' | 'dependency' | 'devDependency';\n\n/**\n * Get package info from package.json and all dependencies.\n */\nexport function getPackageInfo(\n root: string,\n logger: winston.Logger,\n context: PackageInfoContext = 'root',\n): PackageInfo {\n const packageJsonPath = resolvePackageJsonRoot(root);\n const packageJson = JSON.parse(fs.readFileSync(packageJsonPath).toString()) as PackageJson;\n\n // resolving dependencies\n const depInfos: PackageInfo[] = [];\n\n if (packageJson.dependencies && context !== 'devDependency') {\n for (const dep of Object.keys(packageJson.dependencies)) {\n const depPackageJson = resolvePackageJsonPackage(root, dep);\n if (depPackageJson === undefined)\n throw new Error(`Can't resolve package.json for dependency ${dep} of ${root}`);\n const depRoot = path.dirname(depPackageJson);\n depInfos.push(getPackageInfo(depRoot, logger, 'dependency'));\n }\n }\n\n if (packageJson.devDependencies && context === 'root') {\n for (const dep of Object.keys(packageJson.devDependencies)) {\n const depPackageJson = resolvePackageJsonPackage(root, dep);\n if (depPackageJson === undefined) {\n logger.warn(`Can't resolve package.json for dev dependency ${dep} of ${root}`);\n // tolerating not-exported package.json for dev dependencies\n continue;\n }\n const depRoot = path.dirname(depPackageJson);\n depInfos.push(getPackageInfo(depRoot, logger, 'devDependency'));\n }\n }\n\n return {\n name: packageJson.name,\n version: packageJson.version,\n type: packageJson.type,\n dependencies: depInfos,\n root,\n context,\n };\n}\n\nfunction resolveLibsDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'lib');\n}\n\nfunction resolveTemplatesDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'tpl');\n}\n\nfunction resolveSoftwareDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'software');\n}\n\nfunction resolveAssetsDst(mode: CompileMode, root: string) {\n return path.resolve(root, mode, 'tengo', 'asset');\n}\n\nfunction loadDependencies(\n logger: winston.Logger,\n compiler: TengoTemplateCompiler,\n packageInfo: PackageInfo,\n): void {\n for (const dep of packageInfo.dependencies)\n loadDependencies(logger, compiler, dep);\n\n if (packageInfo.context === 'root')\n // we are not reading compiled files for root package\n return;\n\n // we are in package folder\n const libDistFolder = resolveLibsDst('dist', packageInfo.root);\n const tplDistFolder = resolveTemplatesDst('dist', packageInfo.root);\n const softwareDistFolder = resolveSoftwareDst('dist', packageInfo.root);\n const assetDistFolder = resolveAssetsDst('dist', packageInfo.root);\n\n const libDistExists = pathType(libDistFolder) === 'dir';\n const tplDistExists = pathType(tplDistFolder) === 'dir';\n const softwareDistExists = pathType(softwareDistFolder) === 'dir';\n const assetDistExists = pathType(assetDistFolder) === 'dir';\n\n if (!libDistExists && !tplDistExists && !softwareDistExists && !assetDistExists)\n // if neither of tengo-specific folders detected, skipping package\n return;\n\n const packageId = { name: packageInfo.name, version: packageInfo.version };\n\n if (libDistExists) {\n loadLibsFromDir(logger, packageId, 'dist', libDistFolder, compiler);\n }\n\n if (tplDistExists) {\n loadTemplatesFromDir(logger, packageId, 'dist', tplDistFolder, compiler);\n }\n\n if (softwareDistExists) {\n loadSoftwareFromDir(logger, packageId, 'dist', softwareDistFolder, compiler);\n }\n\n if (assetDistExists) {\n loadAssetsFromDir(logger, packageId, 'dist', assetDistFolder, compiler);\n }\n}\n\nfunction loadLibsFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledLibSuffix)) throw new Error(`unexpected file in 'lib' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'library',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledLibSuffix.length),\n version: packageId.version,\n };\n const src = parseSourceFile(logger, mode, file, fullName, true);\n compiler.addLib(src);\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n if (src.dependencies.length > 0) {\n logger.debug('Dependencies:');\n for (const dep of src.dependencies) logger.debug(` - ${typedArtifactNameToString(dep)}`);\n }\n }\n}\n\nfunction loadTemplatesFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n // adding templates\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledTplSuffix)) throw new Error(`unexpected file in 'tpl' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'template',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledTplSuffix.length),\n version: packageId.version,\n };\n const tpl = newTemplateFromContent(mode, fullName, fs.readFileSync(file));\n compiler.addTemplate(templateToSource(tpl));\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n }\n}\n\nfunction loadSoftwareFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledSoftwareSuffix))\n throw new Error(`unexpected file in 'software' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'software',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledSoftwareSuffix.length),\n version: packageId.version,\n };\n\n const source = fs.readFileSync(file).toString();\n\n const software = new ArtifactSource(\n mode,\n fullName,\n getSha256(source),\n source,\n file,\n [],\n [],\n );\n\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n compiler.addSoftware(software);\n }\n}\n\nfunction loadAssetsFromDir(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n folder: string,\n compiler: TengoTemplateCompiler,\n) {\n for (const f of fs.readdirSync(folder)) {\n const file = path.resolve(folder, f);\n if (!f.endsWith(compiledAssetSuffix))\n throw new Error(`unexpected file in 'asset' folder: ${file}`);\n const fullName: FullArtifactName = {\n type: 'asset',\n pkg: packageId.name,\n id: f.slice(0, f.length - compiledAssetSuffix.length),\n version: packageId.version,\n };\n\n const source = fs.readFileSync(file).toString();\n\n const asset = new ArtifactSource(\n mode,\n fullName,\n getSha256(source),\n source,\n file,\n [],\n [],\n );\n\n logger.debug(`Adding dependency ${fullNameToString(fullName)} from ${file}`);\n compiler.addAsset(asset);\n }\n}\n\nexport function parseSources(\n logger: winston.Logger,\n packageId: PackageId,\n mode: CompileMode,\n root: string,\n subdir: string,\n): ArtifactSource[] {\n const sources: ArtifactSource[] = [];\n\n for (const f of fs.readdirSync(path.join(root, subdir))) {\n const inRootPath = path.join(subdir, f); // path to item inside given <root>\n const fullPath = path.join(root, inRootPath); // full path to item from CWD (or abs path, if <root> is abs path)\n\n if (pathType(fullPath) === 'dir') {\n const nested = parseSources(logger, packageId, mode, root, inRootPath);\n sources.push(...nested);\n continue;\n }\n\n // Handling index.lib.tengo files: rename them to <package-name>.lib.tengo\n const artifactName = f === 'index.lib.tengo' ? `${path.dirname(inRootPath)}.lib.tengo` : inRootPath;\n\n const fullName = fullNameFromFileName(packageId, artifactName.replaceAll(path.sep, '.'));\n if (!fullName) {\n logger.info(`Skipping unknown file type: ${artifactName}`);\n continue; // skip unknown file types\n }\n\n // if (subdir != '') {\n // throw new Error(`Templates and libraries should reside only inside '${root}' dir.\n // You are free to have any file and dirs structure inside '${root}' keeping other files where you want,\n // but regarding ${compilableSuffixes.join(', ')}, the flat file structure is mandatory.`);\n // }\n\n const file = path.resolve(root, inRootPath);\n logger.debug(`Parsing ${fullNameToString(fullName)} from ${file}`);\n const newSrc = parseSourceFile(logger, mode, file, fullName, true);\n if (newSrc.dependencies.length > 0) {\n logger.debug('Detected dependencies:');\n for (const dep of newSrc.dependencies) logger.debug(` - ${typedArtifactNameToString(dep)}`);\n }\n\n sources.push(newSrc);\n }\n\n return sources;\n}\n\nexport function newCompiler(\n logger: winston.Logger,\n packageInfo: PackageInfo,\n mode: CompileMode,\n): TengoTemplateCompiler {\n const compiler = new TengoTemplateCompiler(mode);\n\n // collect all data (templates, libs and software) from dependency tree\n loadDependencies(logger, compiler, packageInfo);\n\n return compiler;\n}\n\nexport function fullNameFromFileName(\n packageId: PackageId,\n artifactName: string,\n): FullArtifactName | null {\n const pkgAndVersion = { pkg: packageId.name, version: packageId.version };\n if (artifactName.endsWith(srcLibSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcLibSuffix.length),\n type: 'library',\n };\n }\n\n if (artifactName.endsWith(srcTplSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcTplSuffix.length),\n type: 'template',\n };\n }\n\n if (artifactName.endsWith(srcSoftwareSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcSoftwareSuffix.length),\n type: 'software',\n };\n }\n\n if (artifactName.endsWith(srcAssetSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcAssetSuffix.length),\n type: 'asset',\n };\n }\n\n if (artifactName.endsWith(srcTestSuffix)) {\n return {\n ...pkgAndVersion,\n id: artifactName.substring(0, artifactName.length - srcTestSuffix.length),\n type: 'test',\n };\n }\n\n return null;\n}\n\nexport function compile(logger: winston.Logger, packageInfo: PackageInfo, mode: CompileMode): TemplatesAndLibs {\n const compiler = newCompiler(logger, packageInfo, mode);\n const sources = parseSources(logger, packageInfo, mode, 'src', '');\n\n // checking that we have something to do\n if (sources.length === 0) {\n const lookFor: string[] = [];\n for (const suffix of compilableSuffixes) {\n lookFor.push(`*${suffix}`);\n }\n\n logger.error(`Nothing to compile. Looked for ${lookFor.join(', ')}`);\n process.exit(1);\n }\n\n // compilation\n logger.info(`Compiling '${mode}'...`);\n const compiled = compiler.compileAndAdd(sources);\n logger.debug(`Done.`);\n\n return compiled;\n}\n\nexport function savePacks(logger: winston.Logger, compiled: TemplatesAndLibs, mode: CompileMode) {\n // writing libs\n if (compiled.libs.length > 0) {\n const libOutput = resolveLibsDst(mode, '.');\n fs.mkdirSync(libOutput, { recursive: true });\n for (const lib of compiled.libs) {\n const file = path.resolve(libOutput, lib.fullName.id + compiledLibSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, lib.src);\n }\n }\n\n // writing templates\n if (compiled.templates.length > 0) {\n const tplOutput = resolveTemplatesDst(mode, '.');\n fs.mkdirSync(tplOutput, { recursive: true });\n for (const tpl of compiled.templates) {\n const file = path.resolve(tplOutput, tpl.fullName.id + compiledTplSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, serializeTemplate(tpl.data));\n }\n }\n\n // writing software\n if (compiled.software.length > 0) {\n const swOutput = resolveSoftwareDst(mode, '.');\n fs.mkdirSync(swOutput, { recursive: true });\n for (const sw of compiled.software) {\n const file = path.resolve(swOutput, sw.fullName.id + compiledSoftwareSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, sw.src);\n }\n }\n\n // writing assets\n if (compiled.assets.length > 0) {\n const swOutput = resolveAssetsDst(mode, '.');\n fs.mkdirSync(swOutput, { recursive: true });\n for (const sw of compiled.software) {\n const file = path.resolve(swOutput, sw.fullName.id + compiledAssetSuffix);\n logger.info(` - writing ${file}`);\n fs.writeFileSync(file, sw.src);\n }\n }\n}\n"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -7,7 +7,6 @@ var artifacts = require('./commands/dump/artifacts.cjs');
7
7
  var software = require('./commands/dump/software.cjs');
8
8
 
9
9
  // DO NOT EDIT. This file was generated by oclif-index utility.
10
- // prettier-ignore
11
10
  const COMMANDS = {
12
11
  'build': build,
13
12
  'check': check,
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["// DO NOT EDIT. This file was generated by oclif-index utility.\n\nimport Cmd0 from './commands/build';\nimport Cmd1 from './commands/check';\nimport Cmd2 from './commands/test';\nimport Cmd3 from './commands/dump/artifacts';\nimport Cmd4 from './commands/dump/software';\n\n// prettier-ignore\nexport const COMMANDS = {\n 'build': Cmd0,\n 'check': Cmd1,\n 'test': Cmd2,\n 'dump:artifacts': Cmd3,\n 'dump:software': Cmd4,\n};\n"],"names":["Cmd0","Cmd1","Cmd2","Cmd3","Cmd4"],"mappings":";;;;;;;;AAAA;AAQA;AACO,MAAM,QAAQ,GAAG;AACtB,IAAA,OAAO,EAAEA,KAAI;AACb,IAAA,OAAO,EAAEC,KAAI;AACb,IAAA,MAAM,EAAEC,IAAI;AACZ,IAAA,gBAAgB,EAAEC,SAAI;AACtB,IAAA,eAAe,EAAEC,QAAI;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/index.ts"],"sourcesContent":["// DO NOT EDIT. This file was generated by oclif-index utility.\n\nimport Cmd0 from './commands/build';\nimport Cmd1 from './commands/check';\nimport Cmd2 from './commands/test';\nimport Cmd3 from './commands/dump/artifacts';\nimport Cmd4 from './commands/dump/software';\n\nexport const COMMANDS = {\n 'build': Cmd0,\n 'check': Cmd1,\n 'test': Cmd2,\n 'dump:artifacts': Cmd3,\n 'dump:software': Cmd4,\n};\n"],"names":["Cmd0","Cmd1","Cmd2","Cmd3","Cmd4"],"mappings":";;;;;;;;AAAA;AAQO,MAAM,QAAQ,GAAG;AACtB,IAAA,OAAO,EAAEA,KAAI;AACb,IAAA,OAAO,EAAEC,KAAI;AACb,IAAA,MAAM,EAAEC,IAAI;AACZ,IAAA,gBAAgB,EAAEC,SAAI;AACtB,IAAA,eAAe,EAAEC,QAAI;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,IAAI,MAAM,2BAA2B,CAAC;AAC7C,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAG5C,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,IAAI,MAAM,2BAA2B,CAAC;AAC7C,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAE5C,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC"}
package/dist/index.js CHANGED
@@ -5,7 +5,6 @@ import DumpArtifacts from './commands/dump/artifacts.js';
5
5
  import DumpSoftware from './commands/dump/software.js';
6
6
 
7
7
  // DO NOT EDIT. This file was generated by oclif-index utility.
8
- // prettier-ignore
9
8
  const COMMANDS = {
10
9
  'build': Build,
11
10
  'check': Check,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["// DO NOT EDIT. This file was generated by oclif-index utility.\n\nimport Cmd0 from './commands/build';\nimport Cmd1 from './commands/check';\nimport Cmd2 from './commands/test';\nimport Cmd3 from './commands/dump/artifacts';\nimport Cmd4 from './commands/dump/software';\n\n// prettier-ignore\nexport const COMMANDS = {\n 'build': Cmd0,\n 'check': Cmd1,\n 'test': Cmd2,\n 'dump:artifacts': Cmd3,\n 'dump:software': Cmd4,\n};\n"],"names":["Cmd0","Cmd1","Cmd2","Cmd3","Cmd4"],"mappings":";;;;;;AAAA;AAQA;AACO,MAAM,QAAQ,GAAG;AACtB,IAAA,OAAO,EAAEA,KAAI;AACb,IAAA,OAAO,EAAEC,KAAI;AACb,IAAA,MAAM,EAAEC,IAAI;AACZ,IAAA,gBAAgB,EAAEC,aAAI;AACtB,IAAA,eAAe,EAAEC,YAAI;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["// DO NOT EDIT. This file was generated by oclif-index utility.\n\nimport Cmd0 from './commands/build';\nimport Cmd1 from './commands/check';\nimport Cmd2 from './commands/test';\nimport Cmd3 from './commands/dump/artifacts';\nimport Cmd4 from './commands/dump/software';\n\nexport const COMMANDS = {\n 'build': Cmd0,\n 'check': Cmd1,\n 'test': Cmd2,\n 'dump:artifacts': Cmd3,\n 'dump:software': Cmd4,\n};\n"],"names":["Cmd0","Cmd1","Cmd2","Cmd3","Cmd4"],"mappings":";;;;;;AAAA;AAQO,MAAM,QAAQ,GAAG;AACtB,IAAA,OAAO,EAAEA,KAAI;AACb,IAAA,OAAO,EAAEC,KAAI;AACb,IAAA,MAAM,EAAEC,IAAI;AACZ,IAAA,gBAAgB,EAAEC,aAAI;AACtB,IAAA,eAAe,EAAEC,YAAI;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/tengo-builder",
3
- "version": "2.4.2",
3
+ "version": "2.4.3",
4
4
  "description": "Pl Tengo Template Builder",
5
5
  "type": "module",
6
6
  "bin": {
@@ -22,17 +22,18 @@
22
22
  "winston": "^3.17.0",
23
23
  "@milaboratories/ts-helpers": "1.5.4",
24
24
  "@milaboratories/resolve-helper": "1.1.1",
25
- "@milaboratories/pl-model-backend": "1.1.31"
25
+ "@milaboratories/pl-model-backend": "1.1.32"
26
26
  },
27
27
  "devDependencies": {
28
28
  "typescript": "~5.6.3",
29
- "vitest": "^4.0.7",
29
+ "vitest": "^4.0.16",
30
+ "@vitest/coverage-istanbul": "^4.0.16",
30
31
  "@types/node": "~24.5.2",
31
- "@milaboratories/oclif-index": "1.1.1",
32
32
  "@milaboratories/eslint-config": "1.0.5",
33
- "@milaboratories/build-configs": "1.2.0",
34
- "@milaboratories/ts-builder": "1.2.0",
35
- "@milaboratories/ts-configs": "1.2.0"
33
+ "@milaboratories/build-configs": "1.2.1",
34
+ "@milaboratories/ts-builder": "1.2.1",
35
+ "@milaboratories/ts-configs": "1.2.0",
36
+ "@milaboratories/oclif-index": "1.1.1"
36
37
  },
37
38
  "oclif": {
38
39
  "bin": "pl-tengo",
@@ -49,7 +50,7 @@
49
50
  "type-check": "ts-builder types --target node",
50
51
  "build": "oclif-index && ts-builder build --target node",
51
52
  "watch": "ts-builder build --target node --watch",
52
- "test": "vitest run",
53
+ "test": "vitest run --coverage",
53
54
  "do-pack": "rm -f *.tgz && pnpm pack && mv *.tgz package.tgz"
54
55
  }
55
56
  }
@@ -24,7 +24,6 @@ export default class Check extends Command {
24
24
 
25
25
  const testerArgs: string[] = argv.length == 0 ? ['./src'] : (argv as string[]);
26
26
 
27
- // prettier-ignore
28
27
  const tester = spawnEmbed(
29
28
  TengoTesterBinaryPath,
30
29
  'check', '--log-level', flags['log-level'],
@@ -20,7 +20,6 @@ export default class Test extends Command {
20
20
 
21
21
  const testerArgs: string[] = this.argv.length == 0 ? ['./src'] : this.argv;
22
22
 
23
- // prettier-ignore
24
23
  const tester = spawnEmbed(
25
24
  TengoTesterBinaryPath,
26
25
  'run', '--log-level', flags['log-level'],
@@ -364,7 +364,6 @@ export function parseSources(
364
364
  }
365
365
 
366
366
  // if (subdir != '') {
367
- // // prettier-ignore
368
367
  // throw new Error(`Templates and libraries should reside only inside '${root}' dir.
369
368
  // You are free to have any file and dirs structure inside '${root}' keeping other files where you want,
370
369
  // but regarding ${compilableSuffixes.join(', ')}, the flat file structure is mandatory.`);
package/src/index.ts CHANGED
@@ -6,7 +6,6 @@ import Cmd2 from './commands/test';
6
6
  import Cmd3 from './commands/dump/artifacts';
7
7
  import Cmd4 from './commands/dump/software';
8
8
 
9
- // prettier-ignore
10
9
  export const COMMANDS = {
11
10
  'build': Cmd0,
12
11
  'check': Cmd1,