@platforma-sdk/tengo-builder 2.5.6 → 2.5.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/_virtual/_rolldown/runtime.cjs +7 -13
  2. package/dist/commands/build.cjs +5 -6
  3. package/dist/commands/build.cjs.map +1 -1
  4. package/dist/commands/build.d.ts +5 -5
  5. package/dist/commands/build.d.ts.map +1 -0
  6. package/dist/commands/build.js +1 -2
  7. package/dist/commands/build.js.map +1 -1
  8. package/dist/commands/check.cjs +6 -7
  9. package/dist/commands/check.cjs.map +1 -1
  10. package/dist/commands/check.d.ts +2 -2
  11. package/dist/commands/check.d.ts.map +1 -0
  12. package/dist/commands/check.js +1 -2
  13. package/dist/commands/check.js.map +1 -1
  14. package/dist/commands/dump/artifacts.cjs +5 -6
  15. package/dist/commands/dump/artifacts.cjs.map +1 -1
  16. package/dist/commands/dump/artifacts.d.ts +3 -3
  17. package/dist/commands/dump/artifacts.d.ts.map +1 -0
  18. package/dist/commands/dump/artifacts.js +1 -2
  19. package/dist/commands/dump/artifacts.js.map +1 -1
  20. package/dist/commands/dump/software.cjs +5 -6
  21. package/dist/commands/dump/software.cjs.map +1 -1
  22. package/dist/commands/dump/software.d.ts +2 -2
  23. package/dist/commands/dump/software.d.ts.map +1 -0
  24. package/dist/commands/dump/software.js +1 -2
  25. package/dist/commands/dump/software.js.map +1 -1
  26. package/dist/commands/test.cjs +6 -7
  27. package/dist/commands/test.cjs.map +1 -1
  28. package/dist/commands/test.d.ts +2 -2
  29. package/dist/commands/test.d.ts.map +1 -0
  30. package/dist/commands/test.js +1 -2
  31. package/dist/commands/test.js.map +1 -1
  32. package/dist/compiler/artifactset.cjs +3 -4
  33. package/dist/compiler/artifactset.cjs.map +1 -1
  34. package/dist/compiler/artifactset.js +1 -2
  35. package/dist/compiler/artifactset.js.map +1 -1
  36. package/dist/compiler/compiler.cjs +6 -7
  37. package/dist/compiler/compiler.cjs.map +1 -1
  38. package/dist/compiler/compiler.js +1 -2
  39. package/dist/compiler/compiler.js.map +1 -1
  40. package/dist/compiler/compileroptions.cjs +2 -3
  41. package/dist/compiler/compileroptions.cjs.map +1 -1
  42. package/dist/compiler/compileroptions.js +1 -2
  43. package/dist/compiler/compileroptions.js.map +1 -1
  44. package/dist/compiler/main.cjs +7 -8
  45. package/dist/compiler/main.cjs.map +1 -1
  46. package/dist/compiler/main.js +1 -2
  47. package/dist/compiler/main.js.map +1 -1
  48. package/dist/compiler/package.cjs +1 -2
  49. package/dist/compiler/package.cjs.map +1 -1
  50. package/dist/compiler/package.js +1 -1
  51. package/dist/compiler/source.cjs +4 -5
  52. package/dist/compiler/source.cjs.map +1 -1
  53. package/dist/compiler/source.js +1 -2
  54. package/dist/compiler/source.js.map +1 -1
  55. package/dist/compiler/template.cjs +3 -4
  56. package/dist/compiler/template.cjs.map +1 -1
  57. package/dist/compiler/template.js +2 -3
  58. package/dist/compiler/template.js.map +1 -1
  59. package/dist/compiler/util.cjs +2 -3
  60. package/dist/compiler/util.cjs.map +1 -1
  61. package/dist/compiler/util.js +1 -2
  62. package/dist/compiler/util.js.map +1 -1
  63. package/dist/index.cjs +7 -8
  64. package/dist/index.cjs.map +1 -1
  65. package/dist/index.d.ts.map +1 -0
  66. package/dist/index.js +1 -2
  67. package/dist/index.js.map +1 -1
  68. package/dist/shared/basecmd.cjs +2 -3
  69. package/dist/shared/basecmd.cjs.map +1 -1
  70. package/dist/shared/basecmd.js +1 -2
  71. package/dist/shared/basecmd.js.map +1 -1
  72. package/dist/shared/dump.cjs +3 -4
  73. package/dist/shared/dump.cjs.map +1 -1
  74. package/dist/shared/dump.js +1 -2
  75. package/dist/shared/dump.js.map +1 -1
  76. package/dist/shared/proc.cjs +2 -3
  77. package/dist/shared/proc.cjs.map +1 -1
  78. package/dist/shared/proc.js +1 -2
  79. package/dist/shared/proc.js.map +1 -1
  80. package/package.json +9 -9
@@ -6,16 +6,12 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __getProtoOf = Object.getPrototypeOf;
7
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
8
  var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") {
10
- for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
- key = keys[i];
12
- if (!__hasOwnProp.call(to, key) && key !== except) {
13
- __defProp(to, key, {
14
- get: ((k) => from[k]).bind(null, key),
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- }
9
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
+ key = keys[i];
11
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
+ get: ((k) => from[k]).bind(null, key),
13
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
+ });
19
15
  }
20
16
  return to;
21
17
  };
@@ -23,7 +19,5 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
23
19
  value: mod,
24
20
  enumerable: true
25
21
  }) : target, mod));
26
-
27
22
  //#endregion
28
-
29
- exports.__toESM = __toESM;
23
+ exports.__toESM = __toESM;
@@ -1,7 +1,7 @@
1
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
- const require_util = require('../compiler/util.cjs');
3
- const require_main = require('../compiler/main.cjs');
4
- const require_basecmd = require('../shared/basecmd.cjs');
1
+ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
+ const require_util = require("../compiler/util.cjs");
3
+ const require_main = require("../compiler/main.cjs");
4
+ const require_basecmd = require("../shared/basecmd.cjs");
5
5
  let node_child_process = require("node:child_process");
6
6
  let _oclif_core = require("@oclif/core");
7
7
  let node_path = require("node:path");
@@ -10,7 +10,6 @@ let node_fs = require("node:fs");
10
10
  node_fs = require_runtime.__toESM(node_fs);
11
11
  let node_fs_promises = require("node:fs/promises");
12
12
  node_fs_promises = require_runtime.__toESM(node_fs_promises);
13
-
14
13
  //#region src/commands/build.ts
15
14
  var Build = class Build extends _oclif_core.Command {
16
15
  static description = "build tengo sources into single distributable pack file";
@@ -122,7 +121,7 @@ function checkRunError(result, message) {
122
121
  const msg = message ?? "failed to run command";
123
122
  if (result.status !== 0) console.log(`WARN: ${msg} the build will continue as-is`);
124
123
  }
125
-
126
124
  //#endregion
127
125
  exports.default = Build;
126
+
128
127
  //# sourceMappingURL=build.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.cjs","names":["Command","createLogger","getPackageInfo","compile","fsp","path","fs"],"sources":["../../src/commands/build.ts"],"sourcesContent":["import type { SpawnSyncReturns } from \"node:child_process\";\nimport { spawnSync } from \"node:child_process\";\nimport { Command } from \"@oclif/core\";\nimport { compile, savePacks, getPackageInfo } from \"../compiler/main\";\nimport { createLogger } from \"../compiler/util\";\nimport * as opts from \"../shared/basecmd\";\nimport * as fs from \"node:fs\";\nimport * as fsp from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport type * as winston from \"winston\";\nimport type { TemplatesAndLibs } from \"../compiler/compiler\";\n\nexport default class Build extends Command {\n static override description = \"build tengo sources into single distributable pack file\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...opts.GlobalFlags,\n ...opts.CtagsFlags,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Build);\n const logger = createLogger(flags[\"log-level\"]);\n\n const packageInfo = getPackageInfo(process.cwd(), logger);\n const compiledDist = compile(logger, packageInfo, \"dist\");\n savePacks(logger, compiledDist, \"dist\");\n logger.info(\"Template Pack build done.\");\n\n // Building TS bindings for templates\n const { dts, cjs, mjs } = generateTsBinding(compiledDist);\n await fsp.writeFile(\"dist/index.d.ts\", dts);\n if (packageInfo.type === \"module\") {\n await fsp.writeFile(\"dist/index.cjs\", cjs);\n await fsp.writeFile(\"dist/index.js\", mjs);\n } else {\n await fsp.writeFile(\"dist/index.js\", cjs);\n await fsp.writeFile(\"dist/index.mjs\", mjs);\n }\n\n mergeTagsEnvs(flags);\n if (flags[\"generate-tags\"]) checkAndGenerateCtags(logger, flags);\n\n logger.info(\"Template Pack build done.\");\n }\n}\n\nfunction generateTsBinding(compiledDist: TemplatesAndLibs) {\n let dts = `declare type TemplateFromFile = { readonly type: \"from-file\"; readonly path: string; };\\n`;\n dts += `declare type TplName = ${compiledDist.templates\n .map((tpl) => '\"' + tpl.fullName.id + '\"')\n .join(\" | \")};\\n`;\n dts += `declare const Templates: Record<TplName, TemplateFromFile>;\\n`;\n dts += `export { Templates };\\n`;\n let cjs = `module.exports = { Templates: {\\n`;\n let mjs = `import { resolve } from 'node:path';\\nexport const Templates = {\\n`;\n const recordsCjs = compiledDist.templates\n .map(\n (tpl) =>\n ` '${tpl.fullName.id}': { type: 'from-file', path: require.resolve('./tengo/tpl/${tpl.fullName.id}.plj.gz') }`,\n )\n .join(\",\\n\");\n const recordsMjs = compiledDist.templates\n .map(\n (tpl) =>\n ` '${tpl.fullName.id}': { type: 'from-file', path: resolve(import.meta.dirname, './tengo/tpl/${tpl.fullName.id}.plj.gz') }`,\n )\n .join(\",\\n\");\n cjs += recordsCjs;\n mjs += recordsMjs;\n cjs += `\\n}};\\n`;\n mjs += `\\n};\\n`;\n\n return { dts, cjs, mjs };\n}\n\nfunction mergeTagsEnvs(flags: {\n \"generate-tags\": boolean;\n \"tags-file\": string;\n \"tags-additional-args\": string[] | string;\n}) {\n if (process.env.GENERATE_TAGS != undefined) {\n flags[\"generate-tags\"] = process.env.GENERATE_TAGS == \"true\";\n }\n\n if (process.env.TAGS_FILE != undefined) {\n flags[\"tags-file\"] = process.env.TAGS_FILE;\n }\n\n if (process.env.TAGS_ADDITIONAL_ARGS != undefined) {\n flags[\"tags-additional-args\"] = process.env.TAGS_ADDITIONAL_ARGS.split(\",\");\n }\n}\n\nfunction checkAndGenerateCtags(\n logger: winston.Logger,\n flags: {\n \"tags-file\": string;\n \"tags-additional-args\": string[];\n },\n) {\n const fileName = path.resolve(flags[\"tags-file\"]);\n const rootDir = path.dirname(fileName);\n const additionalArgs = flags[\"tags-additional-args\"];\n\n // all tengo files in dirs and subdirs\n // If we don't limit the depth, it could become unbearably slow\n // and even OOM killed node js.\n // Increase the depth if you need to.\n const tengoFiles = toRelativePath(rootDir, getTengoFiles(rootDir, 9));\n\n logger.info(\n `Generating tags for tengo autocompletion from \"${rootDir}\" \\\nin \"${fileName}\", additional arguments: \"${additionalArgs.join('\" \"')}\".\nFound ${tengoFiles.length} tengo files...`,\n );\n\n // see https://docs.ctags.io/en/latest/man/ctags-optlib.7.html#perl-pod\n const result = spawnSync(\n \"ctags\",\n [\n \"-f\",\n fileName,\n ...additionalArgs,\n \"--langdef=tengo\",\n \"--map-tengo=+.tengo\",\n \"--kinddef-tengo=f,function,function\",\n \"--regex-tengo=/^\\\\s*(.*)(:| :=| =) ?func.*/\\\\1/f/\",\n \"--kinddef-tengo=c,constant,constant\",\n '--regex-tengo=/^\\\\s*(.*) := (\"|\\\\{).*/\\\\1/c/',\n \"-R\",\n ...tengoFiles,\n ],\n {\n env: process.env,\n stdio: \"inherit\",\n cwd: rootDir,\n },\n );\n\n if (result.error?.message.includes(\"ENOENT\")) {\n console.log(`\npl-tengo can create tags for tengo autocompletion,\nbut the program should be installed\nwith \"brew install universal-ctags\" on OSX\nor \"sudo apt install universal-ctags\" on Ubuntu.\n\nFor vscode, you should also install ctags extension:\nhttps://marketplace.visualstudio.com/items?itemName=jaydenlin.ctags-support`);\n\n return;\n }\n\n checkRunError(result, \"failed to generate ctags\");\n\n logger.info(\"Generation of tags is done.\");\n}\n\nfunction getTengoFiles(dir: string, depth: number): string[] {\n if (depth === 0) {\n return [];\n }\n\n const files = fs.readdirSync(dir, { withFileTypes: true });\n\n let tengoFiles: string[] = [];\n files.forEach((file) => {\n const absPath = path.join(dir, file.name);\n\n if (file.isDirectory()) {\n tengoFiles = tengoFiles.concat(getTengoFiles(absPath, depth - 1));\n }\n\n if (!file.isDirectory() && file.name.endsWith(\".tengo\")) {\n tengoFiles.push(absPath);\n }\n });\n\n return tengoFiles;\n}\n\nfunction toRelativePath(dir: string, files: string[]): string[] {\n // Note that VS Code extension likes only relatives paths to the root of the opened dir.\n return files.map((file) => file.replace(dir, \".\"));\n}\n\nfunction checkRunError(result: SpawnSyncReturns<Buffer>, message?: string) {\n if (result.error) {\n console.log(result.error);\n }\n\n const msg = message ?? \"failed to run command\";\n\n if (result.status !== 0) {\n console.log(`WARN: ${msg} the build will continue as-is`);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"build.cjs","names":["Command","createLogger","getPackageInfo","compile","fsp","path","fs"],"sources":["../../src/commands/build.ts"],"sourcesContent":["import type { SpawnSyncReturns } from \"node:child_process\";\nimport { spawnSync } from \"node:child_process\";\nimport { Command } from \"@oclif/core\";\nimport { compile, savePacks, getPackageInfo } from \"../compiler/main\";\nimport { createLogger } from \"../compiler/util\";\nimport * as opts from \"../shared/basecmd\";\nimport * as fs from \"node:fs\";\nimport * as fsp from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport type * as winston from \"winston\";\nimport type { TemplatesAndLibs } from \"../compiler/compiler\";\n\nexport default class Build extends Command {\n static override description = \"build tengo sources into single distributable pack file\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...opts.GlobalFlags,\n ...opts.CtagsFlags,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Build);\n const logger = createLogger(flags[\"log-level\"]);\n\n const packageInfo = getPackageInfo(process.cwd(), logger);\n const compiledDist = compile(logger, packageInfo, \"dist\");\n savePacks(logger, compiledDist, \"dist\");\n logger.info(\"Template Pack build done.\");\n\n // Building TS bindings for templates\n const { dts, cjs, mjs } = generateTsBinding(compiledDist);\n await fsp.writeFile(\"dist/index.d.ts\", dts);\n if (packageInfo.type === \"module\") {\n await fsp.writeFile(\"dist/index.cjs\", cjs);\n await fsp.writeFile(\"dist/index.js\", mjs);\n } else {\n await fsp.writeFile(\"dist/index.js\", cjs);\n await fsp.writeFile(\"dist/index.mjs\", mjs);\n }\n\n mergeTagsEnvs(flags);\n if (flags[\"generate-tags\"]) checkAndGenerateCtags(logger, flags);\n\n logger.info(\"Template Pack build done.\");\n }\n}\n\nfunction generateTsBinding(compiledDist: TemplatesAndLibs) {\n let dts = `declare type TemplateFromFile = { readonly type: \"from-file\"; readonly path: string; };\\n`;\n dts += `declare type TplName = ${compiledDist.templates\n .map((tpl) => '\"' + tpl.fullName.id + '\"')\n .join(\" | \")};\\n`;\n dts += `declare const Templates: Record<TplName, TemplateFromFile>;\\n`;\n dts += `export { Templates };\\n`;\n let cjs = `module.exports = { Templates: {\\n`;\n let mjs = `import { resolve } from 'node:path';\\nexport const Templates = {\\n`;\n const recordsCjs = compiledDist.templates\n .map(\n (tpl) =>\n ` '${tpl.fullName.id}': { type: 'from-file', path: require.resolve('./tengo/tpl/${tpl.fullName.id}.plj.gz') }`,\n )\n .join(\",\\n\");\n const recordsMjs = compiledDist.templates\n .map(\n (tpl) =>\n ` '${tpl.fullName.id}': { type: 'from-file', path: resolve(import.meta.dirname, './tengo/tpl/${tpl.fullName.id}.plj.gz') }`,\n )\n .join(\",\\n\");\n cjs += recordsCjs;\n mjs += recordsMjs;\n cjs += `\\n}};\\n`;\n mjs += `\\n};\\n`;\n\n return { dts, cjs, mjs };\n}\n\nfunction mergeTagsEnvs(flags: {\n \"generate-tags\": boolean;\n \"tags-file\": string;\n \"tags-additional-args\": string[] | string;\n}) {\n if (process.env.GENERATE_TAGS != undefined) {\n flags[\"generate-tags\"] = process.env.GENERATE_TAGS == \"true\";\n }\n\n if (process.env.TAGS_FILE != undefined) {\n flags[\"tags-file\"] = process.env.TAGS_FILE;\n }\n\n if (process.env.TAGS_ADDITIONAL_ARGS != undefined) {\n flags[\"tags-additional-args\"] = process.env.TAGS_ADDITIONAL_ARGS.split(\",\");\n }\n}\n\nfunction checkAndGenerateCtags(\n logger: winston.Logger,\n flags: {\n \"tags-file\": string;\n \"tags-additional-args\": string[];\n },\n) {\n const fileName = path.resolve(flags[\"tags-file\"]);\n const rootDir = path.dirname(fileName);\n const additionalArgs = flags[\"tags-additional-args\"];\n\n // all tengo files in dirs and subdirs\n // If we don't limit the depth, it could become unbearably slow\n // and even OOM killed node js.\n // Increase the depth if you need to.\n const tengoFiles = toRelativePath(rootDir, getTengoFiles(rootDir, 9));\n\n logger.info(\n `Generating tags for tengo autocompletion from \"${rootDir}\" \\\nin \"${fileName}\", additional arguments: \"${additionalArgs.join('\" \"')}\".\nFound ${tengoFiles.length} tengo files...`,\n );\n\n // see https://docs.ctags.io/en/latest/man/ctags-optlib.7.html#perl-pod\n const result = spawnSync(\n \"ctags\",\n [\n \"-f\",\n fileName,\n ...additionalArgs,\n \"--langdef=tengo\",\n \"--map-tengo=+.tengo\",\n \"--kinddef-tengo=f,function,function\",\n \"--regex-tengo=/^\\\\s*(.*)(:| :=| =) ?func.*/\\\\1/f/\",\n \"--kinddef-tengo=c,constant,constant\",\n '--regex-tengo=/^\\\\s*(.*) := (\"|\\\\{).*/\\\\1/c/',\n \"-R\",\n ...tengoFiles,\n ],\n {\n env: process.env,\n stdio: \"inherit\",\n cwd: rootDir,\n },\n );\n\n if (result.error?.message.includes(\"ENOENT\")) {\n console.log(`\npl-tengo can create tags for tengo autocompletion,\nbut the program should be installed\nwith \"brew install universal-ctags\" on OSX\nor \"sudo apt install universal-ctags\" on Ubuntu.\n\nFor vscode, you should also install ctags extension:\nhttps://marketplace.visualstudio.com/items?itemName=jaydenlin.ctags-support`);\n\n return;\n }\n\n checkRunError(result, \"failed to generate ctags\");\n\n logger.info(\"Generation of tags is done.\");\n}\n\nfunction getTengoFiles(dir: string, depth: number): string[] {\n if (depth === 0) {\n return [];\n }\n\n const files = fs.readdirSync(dir, { withFileTypes: true });\n\n let tengoFiles: string[] = [];\n files.forEach((file) => {\n const absPath = path.join(dir, file.name);\n\n if (file.isDirectory()) {\n tengoFiles = tengoFiles.concat(getTengoFiles(absPath, depth - 1));\n }\n\n if (!file.isDirectory() && file.name.endsWith(\".tengo\")) {\n tengoFiles.push(absPath);\n }\n });\n\n return tengoFiles;\n}\n\nfunction toRelativePath(dir: string, files: string[]): string[] {\n // Note that VS Code extension likes only relatives paths to the root of the opened dir.\n return files.map((file) => file.replace(dir, \".\"));\n}\n\nfunction checkRunError(result: SpawnSyncReturns<Buffer>, message?: string) {\n if (result.error) {\n console.log(result.error);\n }\n\n const msg = message ?? \"failed to run command\";\n\n if (result.status !== 0) {\n console.log(`WARN: ${msg} the build will continue as-is`);\n }\n}\n"],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { Command } from "@oclif/core";
2
- import * as _oclif_core_interfaces0 from "@oclif/core/interfaces";
2
+ import * as _$_oclif_core_interfaces0 from "@oclif/core/interfaces";
3
3
 
4
4
  //#region src/commands/build.d.ts
5
5
  declare class Build extends Command {
6
6
  static description: string;
7
7
  static examples: string[];
8
8
  static flags: {
9
- "generate-tags": _oclif_core_interfaces0.BooleanFlag<boolean>;
10
- "tags-file": _oclif_core_interfaces0.OptionFlag<string, _oclif_core_interfaces0.CustomOptions>;
11
- "tags-additional-args": _oclif_core_interfaces0.OptionFlag<string[], _oclif_core_interfaces0.CustomOptions>;
12
- "log-level": _oclif_core_interfaces0.OptionFlag<string, _oclif_core_interfaces0.CustomOptions>;
9
+ "generate-tags": _$_oclif_core_interfaces0.BooleanFlag<boolean>;
10
+ "tags-file": _$_oclif_core_interfaces0.OptionFlag<string, _$_oclif_core_interfaces0.CustomOptions>;
11
+ "tags-additional-args": _$_oclif_core_interfaces0.OptionFlag<string[], _$_oclif_core_interfaces0.CustomOptions>;
12
+ "log-level": _$_oclif_core_interfaces0.OptionFlag<string, _$_oclif_core_interfaces0.CustomOptions>;
13
13
  };
14
14
  run(): Promise<void>;
15
15
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","names":[],"sources":["../../src/commands/build.ts"],"mappings":";;;;cAYqB,KAAA,SAAc,OAAA;EAAA,OACjB,WAAA;EAAA,OAEA,QAAA;EAAA,OAEA,KAAA;qBALS,yBAAA,CAAA,WAAA;;;;;EAUZ,GAAA,CAAA,GAAO,OAAA;AAAA"}
@@ -6,7 +6,6 @@ import { Command } from "@oclif/core";
6
6
  import * as path from "node:path";
7
7
  import * as fs from "node:fs";
8
8
  import * as fsp from "node:fs/promises";
9
-
10
9
  //#region src/commands/build.ts
11
10
  var Build = class Build extends Command {
12
11
  static description = "build tengo sources into single distributable pack file";
@@ -118,7 +117,7 @@ function checkRunError(result, message) {
118
117
  const msg = message ?? "failed to run command";
119
118
  if (result.status !== 0) console.log(`WARN: ${msg} the build will continue as-is`);
120
119
  }
121
-
122
120
  //#endregion
123
121
  export { Build as default };
122
+
124
123
  //# sourceMappingURL=build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","names":["opts.GlobalFlags","opts.CtagsFlags"],"sources":["../../src/commands/build.ts"],"sourcesContent":["import type { SpawnSyncReturns } from \"node:child_process\";\nimport { spawnSync } from \"node:child_process\";\nimport { Command } from \"@oclif/core\";\nimport { compile, savePacks, getPackageInfo } from \"../compiler/main\";\nimport { createLogger } from \"../compiler/util\";\nimport * as opts from \"../shared/basecmd\";\nimport * as fs from \"node:fs\";\nimport * as fsp from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport type * as winston from \"winston\";\nimport type { TemplatesAndLibs } from \"../compiler/compiler\";\n\nexport default class Build extends Command {\n static override description = \"build tengo sources into single distributable pack file\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...opts.GlobalFlags,\n ...opts.CtagsFlags,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Build);\n const logger = createLogger(flags[\"log-level\"]);\n\n const packageInfo = getPackageInfo(process.cwd(), logger);\n const compiledDist = compile(logger, packageInfo, \"dist\");\n savePacks(logger, compiledDist, \"dist\");\n logger.info(\"Template Pack build done.\");\n\n // Building TS bindings for templates\n const { dts, cjs, mjs } = generateTsBinding(compiledDist);\n await fsp.writeFile(\"dist/index.d.ts\", dts);\n if (packageInfo.type === \"module\") {\n await fsp.writeFile(\"dist/index.cjs\", cjs);\n await fsp.writeFile(\"dist/index.js\", mjs);\n } else {\n await fsp.writeFile(\"dist/index.js\", cjs);\n await fsp.writeFile(\"dist/index.mjs\", mjs);\n }\n\n mergeTagsEnvs(flags);\n if (flags[\"generate-tags\"]) checkAndGenerateCtags(logger, flags);\n\n logger.info(\"Template Pack build done.\");\n }\n}\n\nfunction generateTsBinding(compiledDist: TemplatesAndLibs) {\n let dts = `declare type TemplateFromFile = { readonly type: \"from-file\"; readonly path: string; };\\n`;\n dts += `declare type TplName = ${compiledDist.templates\n .map((tpl) => '\"' + tpl.fullName.id + '\"')\n .join(\" | \")};\\n`;\n dts += `declare const Templates: Record<TplName, TemplateFromFile>;\\n`;\n dts += `export { Templates };\\n`;\n let cjs = `module.exports = { Templates: {\\n`;\n let mjs = `import { resolve } from 'node:path';\\nexport const Templates = {\\n`;\n const recordsCjs = compiledDist.templates\n .map(\n (tpl) =>\n ` '${tpl.fullName.id}': { type: 'from-file', path: require.resolve('./tengo/tpl/${tpl.fullName.id}.plj.gz') }`,\n )\n .join(\",\\n\");\n const recordsMjs = compiledDist.templates\n .map(\n (tpl) =>\n ` '${tpl.fullName.id}': { type: 'from-file', path: resolve(import.meta.dirname, './tengo/tpl/${tpl.fullName.id}.plj.gz') }`,\n )\n .join(\",\\n\");\n cjs += recordsCjs;\n mjs += recordsMjs;\n cjs += `\\n}};\\n`;\n mjs += `\\n};\\n`;\n\n return { dts, cjs, mjs };\n}\n\nfunction mergeTagsEnvs(flags: {\n \"generate-tags\": boolean;\n \"tags-file\": string;\n \"tags-additional-args\": string[] | string;\n}) {\n if (process.env.GENERATE_TAGS != undefined) {\n flags[\"generate-tags\"] = process.env.GENERATE_TAGS == \"true\";\n }\n\n if (process.env.TAGS_FILE != undefined) {\n flags[\"tags-file\"] = process.env.TAGS_FILE;\n }\n\n if (process.env.TAGS_ADDITIONAL_ARGS != undefined) {\n flags[\"tags-additional-args\"] = process.env.TAGS_ADDITIONAL_ARGS.split(\",\");\n }\n}\n\nfunction checkAndGenerateCtags(\n logger: winston.Logger,\n flags: {\n \"tags-file\": string;\n \"tags-additional-args\": string[];\n },\n) {\n const fileName = path.resolve(flags[\"tags-file\"]);\n const rootDir = path.dirname(fileName);\n const additionalArgs = flags[\"tags-additional-args\"];\n\n // all tengo files in dirs and subdirs\n // If we don't limit the depth, it could become unbearably slow\n // and even OOM killed node js.\n // Increase the depth if you need to.\n const tengoFiles = toRelativePath(rootDir, getTengoFiles(rootDir, 9));\n\n logger.info(\n `Generating tags for tengo autocompletion from \"${rootDir}\" \\\nin \"${fileName}\", additional arguments: \"${additionalArgs.join('\" \"')}\".\nFound ${tengoFiles.length} tengo files...`,\n );\n\n // see https://docs.ctags.io/en/latest/man/ctags-optlib.7.html#perl-pod\n const result = spawnSync(\n \"ctags\",\n [\n \"-f\",\n fileName,\n ...additionalArgs,\n \"--langdef=tengo\",\n \"--map-tengo=+.tengo\",\n \"--kinddef-tengo=f,function,function\",\n \"--regex-tengo=/^\\\\s*(.*)(:| :=| =) ?func.*/\\\\1/f/\",\n \"--kinddef-tengo=c,constant,constant\",\n '--regex-tengo=/^\\\\s*(.*) := (\"|\\\\{).*/\\\\1/c/',\n \"-R\",\n ...tengoFiles,\n ],\n {\n env: process.env,\n stdio: \"inherit\",\n cwd: rootDir,\n },\n );\n\n if (result.error?.message.includes(\"ENOENT\")) {\n console.log(`\npl-tengo can create tags for tengo autocompletion,\nbut the program should be installed\nwith \"brew install universal-ctags\" on OSX\nor \"sudo apt install universal-ctags\" on Ubuntu.\n\nFor vscode, you should also install ctags extension:\nhttps://marketplace.visualstudio.com/items?itemName=jaydenlin.ctags-support`);\n\n return;\n }\n\n checkRunError(result, \"failed to generate ctags\");\n\n logger.info(\"Generation of tags is done.\");\n}\n\nfunction getTengoFiles(dir: string, depth: number): string[] {\n if (depth === 0) {\n return [];\n }\n\n const files = fs.readdirSync(dir, { withFileTypes: true });\n\n let tengoFiles: string[] = [];\n files.forEach((file) => {\n const absPath = path.join(dir, file.name);\n\n if (file.isDirectory()) {\n tengoFiles = tengoFiles.concat(getTengoFiles(absPath, depth - 1));\n }\n\n if (!file.isDirectory() && file.name.endsWith(\".tengo\")) {\n tengoFiles.push(absPath);\n }\n });\n\n return tengoFiles;\n}\n\nfunction toRelativePath(dir: string, files: string[]): string[] {\n // Note that VS Code extension likes only relatives paths to the root of the opened dir.\n return files.map((file) => file.replace(dir, \".\"));\n}\n\nfunction checkRunError(result: SpawnSyncReturns<Buffer>, message?: string) {\n if (result.error) {\n console.log(result.error);\n }\n\n const msg = message ?? \"failed to run command\";\n\n if (result.status !== 0) {\n console.log(`WARN: ${msg} the build will continue as-is`);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"build.js","names":["opts.GlobalFlags","opts.CtagsFlags"],"sources":["../../src/commands/build.ts"],"sourcesContent":["import type { SpawnSyncReturns } from \"node:child_process\";\nimport { spawnSync } from \"node:child_process\";\nimport { Command } from \"@oclif/core\";\nimport { compile, savePacks, getPackageInfo } from \"../compiler/main\";\nimport { createLogger } from \"../compiler/util\";\nimport * as opts from \"../shared/basecmd\";\nimport * as fs from \"node:fs\";\nimport * as fsp from \"node:fs/promises\";\nimport * as path from \"node:path\";\nimport type * as winston from \"winston\";\nimport type { TemplatesAndLibs } from \"../compiler/compiler\";\n\nexport default class Build extends Command {\n static override description = \"build tengo sources into single distributable pack file\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...opts.GlobalFlags,\n ...opts.CtagsFlags,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(Build);\n const logger = createLogger(flags[\"log-level\"]);\n\n const packageInfo = getPackageInfo(process.cwd(), logger);\n const compiledDist = compile(logger, packageInfo, \"dist\");\n savePacks(logger, compiledDist, \"dist\");\n logger.info(\"Template Pack build done.\");\n\n // Building TS bindings for templates\n const { dts, cjs, mjs } = generateTsBinding(compiledDist);\n await fsp.writeFile(\"dist/index.d.ts\", dts);\n if (packageInfo.type === \"module\") {\n await fsp.writeFile(\"dist/index.cjs\", cjs);\n await fsp.writeFile(\"dist/index.js\", mjs);\n } else {\n await fsp.writeFile(\"dist/index.js\", cjs);\n await fsp.writeFile(\"dist/index.mjs\", mjs);\n }\n\n mergeTagsEnvs(flags);\n if (flags[\"generate-tags\"]) checkAndGenerateCtags(logger, flags);\n\n logger.info(\"Template Pack build done.\");\n }\n}\n\nfunction generateTsBinding(compiledDist: TemplatesAndLibs) {\n let dts = `declare type TemplateFromFile = { readonly type: \"from-file\"; readonly path: string; };\\n`;\n dts += `declare type TplName = ${compiledDist.templates\n .map((tpl) => '\"' + tpl.fullName.id + '\"')\n .join(\" | \")};\\n`;\n dts += `declare const Templates: Record<TplName, TemplateFromFile>;\\n`;\n dts += `export { Templates };\\n`;\n let cjs = `module.exports = { Templates: {\\n`;\n let mjs = `import { resolve } from 'node:path';\\nexport const Templates = {\\n`;\n const recordsCjs = compiledDist.templates\n .map(\n (tpl) =>\n ` '${tpl.fullName.id}': { type: 'from-file', path: require.resolve('./tengo/tpl/${tpl.fullName.id}.plj.gz') }`,\n )\n .join(\",\\n\");\n const recordsMjs = compiledDist.templates\n .map(\n (tpl) =>\n ` '${tpl.fullName.id}': { type: 'from-file', path: resolve(import.meta.dirname, './tengo/tpl/${tpl.fullName.id}.plj.gz') }`,\n )\n .join(\",\\n\");\n cjs += recordsCjs;\n mjs += recordsMjs;\n cjs += `\\n}};\\n`;\n mjs += `\\n};\\n`;\n\n return { dts, cjs, mjs };\n}\n\nfunction mergeTagsEnvs(flags: {\n \"generate-tags\": boolean;\n \"tags-file\": string;\n \"tags-additional-args\": string[] | string;\n}) {\n if (process.env.GENERATE_TAGS != undefined) {\n flags[\"generate-tags\"] = process.env.GENERATE_TAGS == \"true\";\n }\n\n if (process.env.TAGS_FILE != undefined) {\n flags[\"tags-file\"] = process.env.TAGS_FILE;\n }\n\n if (process.env.TAGS_ADDITIONAL_ARGS != undefined) {\n flags[\"tags-additional-args\"] = process.env.TAGS_ADDITIONAL_ARGS.split(\",\");\n }\n}\n\nfunction checkAndGenerateCtags(\n logger: winston.Logger,\n flags: {\n \"tags-file\": string;\n \"tags-additional-args\": string[];\n },\n) {\n const fileName = path.resolve(flags[\"tags-file\"]);\n const rootDir = path.dirname(fileName);\n const additionalArgs = flags[\"tags-additional-args\"];\n\n // all tengo files in dirs and subdirs\n // If we don't limit the depth, it could become unbearably slow\n // and even OOM killed node js.\n // Increase the depth if you need to.\n const tengoFiles = toRelativePath(rootDir, getTengoFiles(rootDir, 9));\n\n logger.info(\n `Generating tags for tengo autocompletion from \"${rootDir}\" \\\nin \"${fileName}\", additional arguments: \"${additionalArgs.join('\" \"')}\".\nFound ${tengoFiles.length} tengo files...`,\n );\n\n // see https://docs.ctags.io/en/latest/man/ctags-optlib.7.html#perl-pod\n const result = spawnSync(\n \"ctags\",\n [\n \"-f\",\n fileName,\n ...additionalArgs,\n \"--langdef=tengo\",\n \"--map-tengo=+.tengo\",\n \"--kinddef-tengo=f,function,function\",\n \"--regex-tengo=/^\\\\s*(.*)(:| :=| =) ?func.*/\\\\1/f/\",\n \"--kinddef-tengo=c,constant,constant\",\n '--regex-tengo=/^\\\\s*(.*) := (\"|\\\\{).*/\\\\1/c/',\n \"-R\",\n ...tengoFiles,\n ],\n {\n env: process.env,\n stdio: \"inherit\",\n cwd: rootDir,\n },\n );\n\n if (result.error?.message.includes(\"ENOENT\")) {\n console.log(`\npl-tengo can create tags for tengo autocompletion,\nbut the program should be installed\nwith \"brew install universal-ctags\" on OSX\nor \"sudo apt install universal-ctags\" on Ubuntu.\n\nFor vscode, you should also install ctags extension:\nhttps://marketplace.visualstudio.com/items?itemName=jaydenlin.ctags-support`);\n\n return;\n }\n\n checkRunError(result, \"failed to generate ctags\");\n\n logger.info(\"Generation of tags is done.\");\n}\n\nfunction getTengoFiles(dir: string, depth: number): string[] {\n if (depth === 0) {\n return [];\n }\n\n const files = fs.readdirSync(dir, { withFileTypes: true });\n\n let tengoFiles: string[] = [];\n files.forEach((file) => {\n const absPath = path.join(dir, file.name);\n\n if (file.isDirectory()) {\n tengoFiles = tengoFiles.concat(getTengoFiles(absPath, depth - 1));\n }\n\n if (!file.isDirectory() && file.name.endsWith(\".tengo\")) {\n tengoFiles.push(absPath);\n }\n });\n\n return tengoFiles;\n}\n\nfunction toRelativePath(dir: string, files: string[]): string[] {\n // Note that VS Code extension likes only relatives paths to the root of the opened dir.\n return files.map((file) => file.replace(dir, \".\"));\n}\n\nfunction checkRunError(result: SpawnSyncReturns<Buffer>, message?: string) {\n if (result.error) {\n console.log(result.error);\n }\n\n const msg = message ?? \"failed to run command\";\n\n if (result.status !== 0) {\n console.log(`WARN: ${msg} the build will continue as-is`);\n }\n}\n"],"mappings":"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"}
@@ -1,11 +1,10 @@
1
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
- const require_util = require('../compiler/util.cjs');
3
- const require_basecmd = require('../shared/basecmd.cjs');
4
- const require_dump = require('../shared/dump.cjs');
5
- const require_proc = require('../shared/proc.cjs');
1
+ require("../_virtual/_rolldown/runtime.cjs");
2
+ const require_util = require("../compiler/util.cjs");
3
+ const require_basecmd = require("../shared/basecmd.cjs");
4
+ const require_dump = require("../shared/dump.cjs");
5
+ const require_proc = require("../shared/proc.cjs");
6
6
  let _oclif_core = require("@oclif/core");
7
7
  let _milaboratories_tengo_tester = require("@milaboratories/tengo-tester");
8
-
9
8
  //#region src/commands/check.ts
10
9
  var Check = class Check extends _oclif_core.Command {
11
10
  static description = "check tengo sources for language processor an";
@@ -28,7 +27,7 @@ var Check = class Check extends _oclif_core.Command {
28
27
  }
29
28
  }
30
29
  };
31
-
32
30
  //#endregion
33
31
  exports.default = Check;
32
+
34
33
  //# sourceMappingURL=check.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.cjs","names":["Command","GlobalFlags","createLogger","spawnEmbed","TengoTesterBinaryPath","waitFor"],"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\",\n \"--log-level\",\n flags[\"log-level\"],\n \"--artifacts\",\n \"-\",\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"],"mappings":";;;;;;;;;AAOA,IAAqB,QAArB,MAAqB,cAAcA,oBAAQ;CACzC,OAAgB,cAAc;CAM9B,OAAO,SAAS;CAEhB,OAAgB,QAAQ,EAAE,GAAGC,6BAAa;CAE1C,OAAgB,WAAW,CAAC,sCAAsC;CAElE,MAAa,MAAqB;EAChC,MAAM,EAAE,OAAO,SAAS,MAAM,KAAK,MAAM,MAAM;EAC/C,MAAM,SAASC,0BAAa,MAAM,aAAa;EAE/C,MAAM,aAAuB,KAAK,UAAU,IAAI,CAAC,QAAQ,GAAI;EAE7D,MAAM,SAASC,wBACbC,oDACA,SACA,eACA,MAAM,cACN,eACA,KACA,GAAG,WACJ;AAED,MAAI;AACF,8BAAc,QAAQ,OAAO,MAAM;WAC5B,KAAc;AACrB,UAAO,MAAM,IAAI;YACT;AACR,UAAO,MAAM,KAAK;GAClB,MAAM,OAAO,MAAMC,qBAAQ,OAAO;AAClC,WAAQ,KAAK,KAAK"}
1
+ {"version":3,"file":"check.cjs","names":["Command","GlobalFlags","createLogger","spawnEmbed","TengoTesterBinaryPath","waitFor"],"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\",\n \"--log-level\",\n flags[\"log-level\"],\n \"--artifacts\",\n \"-\",\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"],"mappings":";;;;;;;;AAOA,IAAqB,QAArB,MAAqB,cAAcA,YAAAA,QAAQ;CACzC,OAAgB,cAAc;CAM9B,OAAO,SAAS;CAEhB,OAAgB,QAAQ,EAAE,GAAGC,gBAAAA,aAAa;CAE1C,OAAgB,WAAW,CAAC,sCAAsC;CAElE,MAAa,MAAqB;EAChC,MAAM,EAAE,OAAO,SAAS,MAAM,KAAK,MAAM,MAAM;EAC/C,MAAM,SAASC,aAAAA,aAAa,MAAM,aAAa;EAE/C,MAAM,aAAuB,KAAK,UAAU,IAAI,CAAC,QAAQ,GAAI;EAE7D,MAAM,SAASC,aAAAA,WACbC,6BAAAA,uBACA,SACA,eACA,MAAM,cACN,eACA,KACA,GAAG,WACJ;AAED,MAAI;AACF,gBAAA,cAAc,QAAQ,OAAO,MAAM;WAC5B,KAAc;AACrB,UAAO,MAAM,IAAI;YACT;AACR,UAAO,MAAM,KAAK;GAClB,MAAM,OAAO,MAAMC,aAAAA,QAAQ,OAAO;AAClC,WAAQ,KAAK,KAAK"}
@@ -1,12 +1,12 @@
1
1
  import { Command } from "@oclif/core";
2
- import * as _oclif_core_interfaces0 from "@oclif/core/interfaces";
2
+ import * as _$_oclif_core_interfaces0 from "@oclif/core/interfaces";
3
3
 
4
4
  //#region src/commands/check.d.ts
5
5
  declare class Check extends Command {
6
6
  static description: string;
7
7
  static strict: boolean;
8
8
  static flags: {
9
- "log-level": _oclif_core_interfaces0.OptionFlag<string, _oclif_core_interfaces0.CustomOptions>;
9
+ "log-level": _$_oclif_core_interfaces0.OptionFlag<string, _$_oclif_core_interfaces0.CustomOptions>;
10
10
  };
11
11
  static examples: string[];
12
12
  run(): Promise<void>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.d.ts","names":[],"sources":["../../src/commands/check.ts"],"mappings":";;;;cAOqB,KAAA,SAAc,OAAA;EAAA,OACjB,WAAA;EAAA,OAMT,MAAA;EAAA,OAES,KAAA;8DATS,yBAAA,CAAA,aAAA;EAAA;EAAA,OAWT,QAAA;EAEH,GAAA,CAAA,GAAO,OAAA;AAAA"}
@@ -4,7 +4,6 @@ import { dumpArtifacts } from "../shared/dump.js";
4
4
  import { spawnEmbed, waitFor } from "../shared/proc.js";
5
5
  import { Command } from "@oclif/core";
6
6
  import { TengoTesterBinaryPath } from "@milaboratories/tengo-tester";
7
-
8
7
  //#region src/commands/check.ts
9
8
  var Check = class Check extends Command {
10
9
  static description = "check tengo sources for language processor an";
@@ -27,7 +26,7 @@ var Check = class Check extends Command {
27
26
  }
28
27
  }
29
28
  };
30
-
31
29
  //#endregion
32
30
  export { Check as default };
31
+
33
32
  //# sourceMappingURL=check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","names":[],"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\",\n \"--log-level\",\n flags[\"log-level\"],\n \"--artifacts\",\n \"-\",\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"],"mappings":";;;;;;;;AAOA,IAAqB,QAArB,MAAqB,cAAc,QAAQ;CACzC,OAAgB,cAAc;CAM9B,OAAO,SAAS;CAEhB,OAAgB,QAAQ,EAAE,GAAG,aAAa;CAE1C,OAAgB,WAAW,CAAC,sCAAsC;CAElE,MAAa,MAAqB;EAChC,MAAM,EAAE,OAAO,SAAS,MAAM,KAAK,MAAM,MAAM;EAC/C,MAAM,SAAS,aAAa,MAAM,aAAa;EAE/C,MAAM,aAAuB,KAAK,UAAU,IAAI,CAAC,QAAQ,GAAI;EAE7D,MAAM,SAAS,WACb,uBACA,SACA,eACA,MAAM,cACN,eACA,KACA,GAAG,WACJ;AAED,MAAI;AACF,iBAAc,QAAQ,OAAO,MAAM;WAC5B,KAAc;AACrB,UAAO,MAAM,IAAI;YACT;AACR,UAAO,MAAM,KAAK;GAClB,MAAM,OAAO,MAAM,QAAQ,OAAO;AAClC,WAAQ,KAAK,KAAK"}
1
+ {"version":3,"file":"check.js","names":[],"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\",\n \"--log-level\",\n flags[\"log-level\"],\n \"--artifacts\",\n \"-\",\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"],"mappings":";;;;;;;AAOA,IAAqB,QAArB,MAAqB,cAAc,QAAQ;CACzC,OAAgB,cAAc;CAM9B,OAAO,SAAS;CAEhB,OAAgB,QAAQ,EAAE,GAAG,aAAa;CAE1C,OAAgB,WAAW,CAAC,sCAAsC;CAElE,MAAa,MAAqB;EAChC,MAAM,EAAE,OAAO,SAAS,MAAM,KAAK,MAAM,MAAM;EAC/C,MAAM,SAAS,aAAa,MAAM,aAAa;EAE/C,MAAM,aAAuB,KAAK,UAAU,IAAI,CAAC,QAAQ,GAAI;EAE7D,MAAM,SAAS,WACb,uBACA,SACA,eACA,MAAM,cACN,eACA,KACA,GAAG,WACJ;AAED,MAAI;AACF,iBAAc,QAAQ,OAAO,MAAM;WAC5B,KAAc;AACrB,UAAO,MAAM,IAAI;YACT;AACR,UAAO,MAAM,KAAK;GAClB,MAAM,OAAO,MAAM,QAAQ,OAAO;AAClC,WAAQ,KAAK,KAAK"}
@@ -1,10 +1,9 @@
1
- const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
2
- const require_util = require('../../compiler/util.cjs');
3
- const require_basecmd = require('../../shared/basecmd.cjs');
4
- const require_dump = require('../../shared/dump.cjs');
1
+ require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_util = require("../../compiler/util.cjs");
3
+ const require_basecmd = require("../../shared/basecmd.cjs");
4
+ const require_dump = require("../../shared/dump.cjs");
5
5
  let _oclif_core = require("@oclif/core");
6
6
  let node_process = require("node:process");
7
-
8
7
  //#region src/commands/dump/artifacts.ts
9
8
  var DumpArtifacts = class DumpArtifacts extends _oclif_core.Command {
10
9
  static description = "parse sources in current package and dump all found artifacts to stdout";
@@ -18,7 +17,7 @@ var DumpArtifacts = class DumpArtifacts extends _oclif_core.Command {
18
17
  require_dump.dumpArtifacts(require_util.createLogger(flags["log-level"]), node_process.stdout, flags.type == "all" ? void 0 : flags.type);
19
18
  }
20
19
  };
21
-
22
20
  //#endregion
23
21
  exports.default = DumpArtifacts;
22
+
24
23
  //# sourceMappingURL=artifacts.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.cjs","names":["Command","createLogger","stdout"],"sources":["../../../src/commands/dump/artifacts.ts"],"sourcesContent":["import { Command } from \"@oclif/core\";\nimport { createLogger } from \"../../compiler/util\";\nimport { dumpArtifacts } from \"../../shared/dump\";\nimport { stdout } from \"node:process\";\nimport type { ArtifactType } from \"../../compiler/package\";\nimport * as opts from \"../../shared/basecmd\";\n\nexport default class DumpArtifacts extends Command {\n static override description =\n \"parse sources in current package and dump all found artifacts to stdout\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...opts.GlobalFlags,\n ...opts.ArtifactTypeFlag,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(DumpArtifacts);\n const logger = createLogger(flags[\"log-level\"]);\n dumpArtifacts(logger, stdout, flags.type == \"all\" ? undefined : (flags.type as ArtifactType));\n }\n}\n"],"mappings":";;;;;;;;AAOA,IAAqB,gBAArB,MAAqB,sBAAsBA,oBAAQ;CACjD,OAAgB,cACd;CAEF,OAAgB,WAAW,CAAC,sCAAsC;CAElE,OAAgB,QAAQ;EACtB;EACA;EACD;CAED,MAAa,MAAqB;EAChC,MAAM,EAAE,UAAU,MAAM,KAAK,MAAM,cAAc;AAEjD,6BADeC,0BAAa,MAAM,aAAa,EACzBC,qBAAQ,MAAM,QAAQ,QAAQ,SAAa,MAAM,KAAsB"}
1
+ {"version":3,"file":"artifacts.cjs","names":["Command","createLogger","stdout"],"sources":["../../../src/commands/dump/artifacts.ts"],"sourcesContent":["import { Command } from \"@oclif/core\";\nimport { createLogger } from \"../../compiler/util\";\nimport { dumpArtifacts } from \"../../shared/dump\";\nimport { stdout } from \"node:process\";\nimport type { ArtifactType } from \"../../compiler/package\";\nimport * as opts from \"../../shared/basecmd\";\n\nexport default class DumpArtifacts extends Command {\n static override description =\n \"parse sources in current package and dump all found artifacts to stdout\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...opts.GlobalFlags,\n ...opts.ArtifactTypeFlag,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(DumpArtifacts);\n const logger = createLogger(flags[\"log-level\"]);\n dumpArtifacts(logger, stdout, flags.type == \"all\" ? undefined : (flags.type as ArtifactType));\n }\n}\n"],"mappings":";;;;;;;AAOA,IAAqB,gBAArB,MAAqB,sBAAsBA,YAAAA,QAAQ;CACjD,OAAgB,cACd;CAEF,OAAgB,WAAW,CAAC,sCAAsC;CAElE,OAAgB,QAAQ;EACtB,GAAA,gBAAA;EACA,GAAA,gBAAA;EACD;CAED,MAAa,MAAqB;EAChC,MAAM,EAAE,UAAU,MAAM,KAAK,MAAM,cAAc;AAEjD,eAAA,cADeC,aAAAA,aAAa,MAAM,aAAa,EACzBC,aAAAA,QAAQ,MAAM,QAAQ,QAAQ,KAAA,IAAa,MAAM,KAAsB"}
@@ -1,13 +1,13 @@
1
1
  import { Command } from "@oclif/core";
2
- import * as _oclif_core_interfaces0 from "@oclif/core/interfaces";
2
+ import * as _$_oclif_core_interfaces0 from "@oclif/core/interfaces";
3
3
 
4
4
  //#region src/commands/dump/artifacts.d.ts
5
5
  declare class DumpArtifacts extends Command {
6
6
  static description: string;
7
7
  static examples: string[];
8
8
  static flags: {
9
- type: _oclif_core_interfaces0.OptionFlag<string, _oclif_core_interfaces0.CustomOptions>;
10
- "log-level": _oclif_core_interfaces0.OptionFlag<string, _oclif_core_interfaces0.CustomOptions>;
9
+ type: _$_oclif_core_interfaces0.OptionFlag<string, _$_oclif_core_interfaces0.CustomOptions>;
10
+ "log-level": _$_oclif_core_interfaces0.OptionFlag<string, _$_oclif_core_interfaces0.CustomOptions>;
11
11
  };
12
12
  run(): Promise<void>;
13
13
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.d.ts","names":[],"sources":["../../../src/commands/dump/artifacts.ts"],"mappings":";;;;cAOqB,aAAA,SAAsB,OAAA;EAAA,OACzB,WAAA;EAAA,OAGA,QAAA;EAAA,OAEA,KAAA;uDANiB,yBAAA,CAAA,aAAA;;;EAWpB,GAAA,CAAA,GAAO,OAAA;AAAA"}
@@ -3,7 +3,6 @@ import { ArtifactTypeFlag, GlobalFlags } from "../../shared/basecmd.js";
3
3
  import { dumpArtifacts } from "../../shared/dump.js";
4
4
  import { Command } from "@oclif/core";
5
5
  import { stdout } from "node:process";
6
-
7
6
  //#region src/commands/dump/artifacts.ts
8
7
  var DumpArtifacts = class DumpArtifacts extends Command {
9
8
  static description = "parse sources in current package and dump all found artifacts to stdout";
@@ -17,7 +16,7 @@ var DumpArtifacts = class DumpArtifacts extends Command {
17
16
  dumpArtifacts(createLogger(flags["log-level"]), stdout, flags.type == "all" ? void 0 : flags.type);
18
17
  }
19
18
  };
20
-
21
19
  //#endregion
22
20
  export { DumpArtifacts as default };
21
+
23
22
  //# sourceMappingURL=artifacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","names":["opts.GlobalFlags","opts.ArtifactTypeFlag"],"sources":["../../../src/commands/dump/artifacts.ts"],"sourcesContent":["import { Command } from \"@oclif/core\";\nimport { createLogger } from \"../../compiler/util\";\nimport { dumpArtifacts } from \"../../shared/dump\";\nimport { stdout } from \"node:process\";\nimport type { ArtifactType } from \"../../compiler/package\";\nimport * as opts from \"../../shared/basecmd\";\n\nexport default class DumpArtifacts extends Command {\n static override description =\n \"parse sources in current package and dump all found artifacts to stdout\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...opts.GlobalFlags,\n ...opts.ArtifactTypeFlag,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(DumpArtifacts);\n const logger = createLogger(flags[\"log-level\"]);\n dumpArtifacts(logger, stdout, flags.type == \"all\" ? undefined : (flags.type as ArtifactType));\n }\n}\n"],"mappings":";;;;;;;AAOA,IAAqB,gBAArB,MAAqB,sBAAsB,QAAQ;CACjD,OAAgB,cACd;CAEF,OAAgB,WAAW,CAAC,sCAAsC;CAElE,OAAgB,QAAQ;EACtB,GAAGA;EACH,GAAGC;EACJ;CAED,MAAa,MAAqB;EAChC,MAAM,EAAE,UAAU,MAAM,KAAK,MAAM,cAAc;AAEjD,gBADe,aAAa,MAAM,aAAa,EACzB,QAAQ,MAAM,QAAQ,QAAQ,SAAa,MAAM,KAAsB"}
1
+ {"version":3,"file":"artifacts.js","names":["opts.GlobalFlags","opts.ArtifactTypeFlag"],"sources":["../../../src/commands/dump/artifacts.ts"],"sourcesContent":["import { Command } from \"@oclif/core\";\nimport { createLogger } from \"../../compiler/util\";\nimport { dumpArtifacts } from \"../../shared/dump\";\nimport { stdout } from \"node:process\";\nimport type { ArtifactType } from \"../../compiler/package\";\nimport * as opts from \"../../shared/basecmd\";\n\nexport default class DumpArtifacts extends Command {\n static override description =\n \"parse sources in current package and dump all found artifacts to stdout\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...opts.GlobalFlags,\n ...opts.ArtifactTypeFlag,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(DumpArtifacts);\n const logger = createLogger(flags[\"log-level\"]);\n dumpArtifacts(logger, stdout, flags.type == \"all\" ? undefined : (flags.type as ArtifactType));\n }\n}\n"],"mappings":";;;;;;AAOA,IAAqB,gBAArB,MAAqB,sBAAsB,QAAQ;CACjD,OAAgB,cACd;CAEF,OAAgB,WAAW,CAAC,sCAAsC;CAElE,OAAgB,QAAQ;EACtB,GAAGA;EACH,GAAGC;EACJ;CAED,MAAa,MAAqB;EAChC,MAAM,EAAE,UAAU,MAAM,KAAK,MAAM,cAAc;AAEjD,gBADe,aAAa,MAAM,aAAa,EACzB,QAAQ,MAAM,QAAQ,QAAQ,KAAA,IAAa,MAAM,KAAsB"}
@@ -1,10 +1,9 @@
1
- const require_runtime = require('../../_virtual/_rolldown/runtime.cjs');
2
- const require_util = require('../../compiler/util.cjs');
3
- const require_basecmd = require('../../shared/basecmd.cjs');
4
- const require_dump = require('../../shared/dump.cjs');
1
+ require("../../_virtual/_rolldown/runtime.cjs");
2
+ const require_util = require("../../compiler/util.cjs");
3
+ const require_basecmd = require("../../shared/basecmd.cjs");
4
+ const require_dump = require("../../shared/dump.cjs");
5
5
  let _oclif_core = require("@oclif/core");
6
6
  let node_process = require("node:process");
7
-
8
7
  //#region src/commands/dump/software.ts
9
8
  var DumpSoftware = class DumpSoftware extends _oclif_core.Command {
10
9
  static description = "parse sources in current package and dump all software descriptors used by templates";
@@ -15,7 +14,7 @@ var DumpSoftware = class DumpSoftware extends _oclif_core.Command {
15
14
  require_dump.dumpSoftware(require_util.createLogger(flags["log-level"]), node_process.stdout);
16
15
  }
17
16
  };
18
-
19
17
  //#endregion
20
18
  exports.default = DumpSoftware;
19
+
21
20
  //# sourceMappingURL=software.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"software.cjs","names":["Command","createLogger","stdout"],"sources":["../../../src/commands/dump/software.ts"],"sourcesContent":["import { Command } from \"@oclif/core\";\nimport { createLogger } from \"../../compiler/util\";\nimport { dumpSoftware } from \"../../shared/dump\";\nimport { stdout } from \"node:process\";\nimport * as opts from \"../../shared/basecmd\";\n\nexport default class DumpSoftware extends Command {\n static override description =\n \"parse sources in current package and dump all software descriptors used by templates\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...opts.GlobalFlags,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(DumpSoftware);\n const logger = createLogger(flags[\"log-level\"]);\n dumpSoftware(logger, stdout);\n }\n}\n"],"mappings":";;;;;;;;AAMA,IAAqB,eAArB,MAAqB,qBAAqBA,oBAAQ;CAChD,OAAgB,cACd;CAEF,OAAgB,WAAW,CAAC,sCAAsC;CAElE,OAAgB,QAAQ,EACtB,gCACD;CAED,MAAa,MAAqB;EAChC,MAAM,EAAE,UAAU,MAAM,KAAK,MAAM,aAAa;AAEhD,4BADeC,0BAAa,MAAM,aAAa,EAC1BC,oBAAO"}
1
+ {"version":3,"file":"software.cjs","names":["Command","createLogger","stdout"],"sources":["../../../src/commands/dump/software.ts"],"sourcesContent":["import { Command } from \"@oclif/core\";\nimport { createLogger } from \"../../compiler/util\";\nimport { dumpSoftware } from \"../../shared/dump\";\nimport { stdout } from \"node:process\";\nimport * as opts from \"../../shared/basecmd\";\n\nexport default class DumpSoftware extends Command {\n static override description =\n \"parse sources in current package and dump all software descriptors used by templates\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...opts.GlobalFlags,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(DumpSoftware);\n const logger = createLogger(flags[\"log-level\"]);\n dumpSoftware(logger, stdout);\n }\n}\n"],"mappings":";;;;;;;AAMA,IAAqB,eAArB,MAAqB,qBAAqBA,YAAAA,QAAQ;CAChD,OAAgB,cACd;CAEF,OAAgB,WAAW,CAAC,sCAAsC;CAElE,OAAgB,QAAQ,EACtB,GAAA,gBAAA,aACD;CAED,MAAa,MAAqB;EAChC,MAAM,EAAE,UAAU,MAAM,KAAK,MAAM,aAAa;AAEhD,eAAA,aADeC,aAAAA,aAAa,MAAM,aAAa,EAC1BC,aAAAA,OAAO"}
@@ -1,12 +1,12 @@
1
1
  import { Command } from "@oclif/core";
2
- import * as _oclif_core_interfaces0 from "@oclif/core/interfaces";
2
+ import * as _$_oclif_core_interfaces0 from "@oclif/core/interfaces";
3
3
 
4
4
  //#region src/commands/dump/software.d.ts
5
5
  declare class DumpSoftware extends Command {
6
6
  static description: string;
7
7
  static examples: string[];
8
8
  static flags: {
9
- "log-level": _oclif_core_interfaces0.OptionFlag<string, _oclif_core_interfaces0.CustomOptions>;
9
+ "log-level": _$_oclif_core_interfaces0.OptionFlag<string, _$_oclif_core_interfaces0.CustomOptions>;
10
10
  };
11
11
  run(): Promise<void>;
12
12
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"software.d.ts","names":[],"sources":["../../../src/commands/dump/software.ts"],"mappings":";;;;cAMqB,YAAA,SAAqB,OAAA;EAAA,OACxB,WAAA;EAAA,OAGA,QAAA;EAAA,OAEA,KAAA;8DANgB,yBAAA,CAAA,aAAA;EAAA;EAUnB,GAAA,CAAA,GAAO,OAAA;AAAA"}
@@ -3,7 +3,6 @@ import { GlobalFlags } from "../../shared/basecmd.js";
3
3
  import { dumpSoftware } from "../../shared/dump.js";
4
4
  import { Command } from "@oclif/core";
5
5
  import { stdout } from "node:process";
6
-
7
6
  //#region src/commands/dump/software.ts
8
7
  var DumpSoftware = class DumpSoftware extends Command {
9
8
  static description = "parse sources in current package and dump all software descriptors used by templates";
@@ -14,7 +13,7 @@ var DumpSoftware = class DumpSoftware extends Command {
14
13
  dumpSoftware(createLogger(flags["log-level"]), stdout);
15
14
  }
16
15
  };
17
-
18
16
  //#endregion
19
17
  export { DumpSoftware as default };
18
+
20
19
  //# sourceMappingURL=software.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"software.js","names":["opts.GlobalFlags"],"sources":["../../../src/commands/dump/software.ts"],"sourcesContent":["import { Command } from \"@oclif/core\";\nimport { createLogger } from \"../../compiler/util\";\nimport { dumpSoftware } from \"../../shared/dump\";\nimport { stdout } from \"node:process\";\nimport * as opts from \"../../shared/basecmd\";\n\nexport default class DumpSoftware extends Command {\n static override description =\n \"parse sources in current package and dump all software descriptors used by templates\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...opts.GlobalFlags,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(DumpSoftware);\n const logger = createLogger(flags[\"log-level\"]);\n dumpSoftware(logger, stdout);\n }\n}\n"],"mappings":";;;;;;;AAMA,IAAqB,eAArB,MAAqB,qBAAqB,QAAQ;CAChD,OAAgB,cACd;CAEF,OAAgB,WAAW,CAAC,sCAAsC;CAElE,OAAgB,QAAQ,EACtB,GAAGA,aACJ;CAED,MAAa,MAAqB;EAChC,MAAM,EAAE,UAAU,MAAM,KAAK,MAAM,aAAa;AAEhD,eADe,aAAa,MAAM,aAAa,EAC1B,OAAO"}
1
+ {"version":3,"file":"software.js","names":["opts.GlobalFlags"],"sources":["../../../src/commands/dump/software.ts"],"sourcesContent":["import { Command } from \"@oclif/core\";\nimport { createLogger } from \"../../compiler/util\";\nimport { dumpSoftware } from \"../../shared/dump\";\nimport { stdout } from \"node:process\";\nimport * as opts from \"../../shared/basecmd\";\n\nexport default class DumpSoftware extends Command {\n static override description =\n \"parse sources in current package and dump all software descriptors used by templates\";\n\n static override examples = [\"<%= config.bin %> <%= command.id %>\"];\n\n static override flags = {\n ...opts.GlobalFlags,\n };\n\n public async run(): Promise<void> {\n const { flags } = await this.parse(DumpSoftware);\n const logger = createLogger(flags[\"log-level\"]);\n dumpSoftware(logger, stdout);\n }\n}\n"],"mappings":";;;;;;AAMA,IAAqB,eAArB,MAAqB,qBAAqB,QAAQ;CAChD,OAAgB,cACd;CAEF,OAAgB,WAAW,CAAC,sCAAsC;CAElE,OAAgB,QAAQ,EACtB,GAAGA,aACJ;CAED,MAAa,MAAqB;EAChC,MAAM,EAAE,UAAU,MAAM,KAAK,MAAM,aAAa;AAEhD,eADe,aAAa,MAAM,aAAa,EAC1B,OAAO"}
@@ -1,11 +1,10 @@
1
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
- const require_util = require('../compiler/util.cjs');
3
- const require_basecmd = require('../shared/basecmd.cjs');
4
- const require_dump = require('../shared/dump.cjs');
5
- const require_proc = require('../shared/proc.cjs');
1
+ require("../_virtual/_rolldown/runtime.cjs");
2
+ const require_util = require("../compiler/util.cjs");
3
+ const require_basecmd = require("../shared/basecmd.cjs");
4
+ const require_dump = require("../shared/dump.cjs");
5
+ const require_proc = require("../shared/proc.cjs");
6
6
  let _oclif_core = require("@oclif/core");
7
7
  let _milaboratories_tengo_tester = require("@milaboratories/tengo-tester");
8
-
9
8
  //#region src/commands/test.ts
10
9
  var Test = class Test extends _oclif_core.Command {
11
10
  static description = "run tengo unit tests (.test.tengo)";
@@ -28,7 +27,7 @@ var Test = class Test extends _oclif_core.Command {
28
27
  }
29
28
  }
30
29
  };
31
-
32
30
  //#endregion
33
31
  exports.default = Test;
32
+
34
33
  //# sourceMappingURL=test.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.cjs","names":["Command","GlobalFlags","createLogger","spawnEmbed","TengoTesterBinaryPath","waitFor"],"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\",\n \"--log-level\",\n flags[\"log-level\"],\n \"--artifacts\",\n \"-\",\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"],"mappings":";;;;;;;;;AAOA,IAAqB,OAArB,MAAqB,aAAaA,oBAAQ;CACxC,OAAgB,cAAc;CAE9B,OAAO,SAAS;CAEhB,OAAgB,QAAQ,EAAE,GAAGC,6BAAa;CAE1C,OAAgB,WAAW,CAAC,sCAAsC;CAElE,MAAa,MAAqB;EAChC,MAAM,EAAE,UAAU,MAAM,KAAK,MAAM,KAAK;EACxC,MAAM,SAASC,0BAAa,MAAM,aAAa;EAE/C,MAAM,aAAuB,KAAK,KAAK,UAAU,IAAI,CAAC,QAAQ,GAAG,KAAK;EAEtE,MAAM,SAASC,wBACbC,oDACA,OACA,eACA,MAAM,cACN,eACA,KACA,GAAG,WACJ;AAED,MAAI;AACF,8BAAc,QAAQ,OAAO,MAAM;WAC5B,KAAc;AACrB,UAAO,MAAM,IAAI;YACT;AACR,UAAO,MAAM,KAAK;GAClB,MAAM,OAAO,MAAMC,qBAAQ,OAAO;AAClC,WAAQ,KAAK,KAAK"}
1
+ {"version":3,"file":"test.cjs","names":["Command","GlobalFlags","createLogger","spawnEmbed","TengoTesterBinaryPath","waitFor"],"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\",\n \"--log-level\",\n flags[\"log-level\"],\n \"--artifacts\",\n \"-\",\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"],"mappings":";;;;;;;;AAOA,IAAqB,OAArB,MAAqB,aAAaA,YAAAA,QAAQ;CACxC,OAAgB,cAAc;CAE9B,OAAO,SAAS;CAEhB,OAAgB,QAAQ,EAAE,GAAGC,gBAAAA,aAAa;CAE1C,OAAgB,WAAW,CAAC,sCAAsC;CAElE,MAAa,MAAqB;EAChC,MAAM,EAAE,UAAU,MAAM,KAAK,MAAM,KAAK;EACxC,MAAM,SAASC,aAAAA,aAAa,MAAM,aAAa;EAE/C,MAAM,aAAuB,KAAK,KAAK,UAAU,IAAI,CAAC,QAAQ,GAAG,KAAK;EAEtE,MAAM,SAASC,aAAAA,WACbC,6BAAAA,uBACA,OACA,eACA,MAAM,cACN,eACA,KACA,GAAG,WACJ;AAED,MAAI;AACF,gBAAA,cAAc,QAAQ,OAAO,MAAM;WAC5B,KAAc;AACrB,UAAO,MAAM,IAAI;YACT;AACR,UAAO,MAAM,KAAK;GAClB,MAAM,OAAO,MAAMC,aAAAA,QAAQ,OAAO;AAClC,WAAQ,KAAK,KAAK"}
@@ -1,12 +1,12 @@
1
1
  import { Command } from "@oclif/core";
2
- import * as _oclif_core_interfaces0 from "@oclif/core/interfaces";
2
+ import * as _$_oclif_core_interfaces0 from "@oclif/core/interfaces";
3
3
 
4
4
  //#region src/commands/test.d.ts
5
5
  declare class Test extends Command {
6
6
  static description: string;
7
7
  static strict: boolean;
8
8
  static flags: {
9
- "log-level": _oclif_core_interfaces0.OptionFlag<string, _oclif_core_interfaces0.CustomOptions>;
9
+ "log-level": _$_oclif_core_interfaces0.OptionFlag<string, _$_oclif_core_interfaces0.CustomOptions>;
10
10
  };
11
11
  static examples: string[];
12
12
  run(): Promise<void>;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","names":[],"sources":["../../src/commands/test.ts"],"mappings":";;;;cAOqB,IAAA,SAAa,OAAA;EAAA,OAChB,WAAA;EAAA,OAET,MAAA;EAAA,OAES,KAAA;8DALQ,yBAAA,CAAA,aAAA;EAAA;EAAA,OAOR,QAAA;EAEH,GAAA,CAAA,GAAO,OAAA;AAAA"}
@@ -4,7 +4,6 @@ import { dumpArtifacts } from "../shared/dump.js";
4
4
  import { spawnEmbed, waitFor } from "../shared/proc.js";
5
5
  import { Command } from "@oclif/core";
6
6
  import { TengoTesterBinaryPath } from "@milaboratories/tengo-tester";
7
-
8
7
  //#region src/commands/test.ts
9
8
  var Test = class Test extends Command {
10
9
  static description = "run tengo unit tests (.test.tengo)";
@@ -27,7 +26,7 @@ var Test = class Test extends Command {
27
26
  }
28
27
  }
29
28
  };
30
-
31
29
  //#endregion
32
30
  export { Test as default };
31
+
33
32
  //# sourceMappingURL=test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","names":[],"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\",\n \"--log-level\",\n flags[\"log-level\"],\n \"--artifacts\",\n \"-\",\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"],"mappings":";;;;;;;;AAOA,IAAqB,OAArB,MAAqB,aAAa,QAAQ;CACxC,OAAgB,cAAc;CAE9B,OAAO,SAAS;CAEhB,OAAgB,QAAQ,EAAE,GAAG,aAAa;CAE1C,OAAgB,WAAW,CAAC,sCAAsC;CAElE,MAAa,MAAqB;EAChC,MAAM,EAAE,UAAU,MAAM,KAAK,MAAM,KAAK;EACxC,MAAM,SAAS,aAAa,MAAM,aAAa;EAE/C,MAAM,aAAuB,KAAK,KAAK,UAAU,IAAI,CAAC,QAAQ,GAAG,KAAK;EAEtE,MAAM,SAAS,WACb,uBACA,OACA,eACA,MAAM,cACN,eACA,KACA,GAAG,WACJ;AAED,MAAI;AACF,iBAAc,QAAQ,OAAO,MAAM;WAC5B,KAAc;AACrB,UAAO,MAAM,IAAI;YACT;AACR,UAAO,MAAM,KAAK;GAClB,MAAM,OAAO,MAAM,QAAQ,OAAO;AAClC,WAAQ,KAAK,KAAK"}
1
+ {"version":3,"file":"test.js","names":[],"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\",\n \"--log-level\",\n flags[\"log-level\"],\n \"--artifacts\",\n \"-\",\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"],"mappings":";;;;;;;AAOA,IAAqB,OAArB,MAAqB,aAAa,QAAQ;CACxC,OAAgB,cAAc;CAE9B,OAAO,SAAS;CAEhB,OAAgB,QAAQ,EAAE,GAAG,aAAa;CAE1C,OAAgB,WAAW,CAAC,sCAAsC;CAElE,MAAa,MAAqB;EAChC,MAAM,EAAE,UAAU,MAAM,KAAK,MAAM,KAAK;EACxC,MAAM,SAAS,aAAa,MAAM,aAAa;EAE/C,MAAM,aAAuB,KAAK,KAAK,UAAU,IAAI,CAAC,QAAQ,GAAG,KAAK;EAEtE,MAAM,SAAS,WACb,uBACA,OACA,eACA,MAAM,cACN,eACA,KACA,GAAG,WACJ;AAED,MAAI;AACF,iBAAc,QAAQ,OAAO,MAAM;WAC5B,KAAc;AACrB,UAAO,MAAM,IAAI;YACT;AACR,UAAO,MAAM,KAAK;GAClB,MAAM,OAAO,MAAM,QAAQ,OAAO;AAClC,WAAQ,KAAK,KAAK"}
@@ -1,6 +1,5 @@
1
- const require_util = require('./util.cjs');
2
- const require_package = require('./package.cjs');
3
-
1
+ const require_util = require("./util.cjs");
2
+ const require_package = require("./package.cjs");
4
3
  //#region src/compiler/artifactset.ts
5
4
  var ArtifactMap = class {
6
5
  map = /* @__PURE__ */ new Map();
@@ -59,8 +58,8 @@ var ArtifactStore = class {
59
58
  this.dist.forEach((obj, k) => callback(this.get(mode, k) ?? obj, k));
60
59
  }
61
60
  };
62
-
63
61
  //#endregion
64
62
  exports.ArtifactStore = ArtifactStore;
65
63
  exports.createArtifactNameSet = createArtifactNameSet;
64
+
66
65
  //# sourceMappingURL=artifactset.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifactset.cjs","names":["artifactKey"],"sources":["../../src/compiler/artifactset.ts"],"sourcesContent":["import type { CompileMode, TypedArtifactName } from \"./package\";\nimport { artifactKey } from \"./package\";\nimport { assertNever } from \"./util\";\n\nexport class ArtifactMap<T> {\n private readonly map = new Map<string, T>();\n\n constructor(private readonly nameExtractor: (obj: T) => TypedArtifactName) {}\n\n add(obj: T, replace: boolean = true): T | undefined {\n const key = artifactKey(this.nameExtractor(obj));\n const ret = this.map.get(key);\n if (ret && !replace) return ret;\n this.map.set(key, obj);\n return ret;\n }\n\n get(name: TypedArtifactName): T | undefined {\n return this.map.get(artifactKey(name));\n }\n\n get array(): T[] {\n const ret: T[] = [];\n this.map.forEach((obj) => ret.push(obj));\n return ret;\n }\n\n forEach(callback: (value: T, key: TypedArtifactName) => void) {\n this.map.forEach((v) => callback(v, this.nameExtractor(v)));\n }\n}\n\nexport function createArtifactNameSet(): ArtifactMap<TypedArtifactName> {\n return new ArtifactMap<TypedArtifactName>((obj) => obj);\n}\n\n/**\n * ArtifactStore is a store for artifacts that are compiled for different modes.\n * It is used to collect all artifacts from the dependency tree and compile them for different modes.\n */\nexport class ArtifactStore<T> {\n // private readonly dev: ArtifactMap<T>;\n private readonly dist: ArtifactMap<T>;\n\n constructor(nameExtractor: (obj: T) => TypedArtifactName) {\n // this.dev = new ArtifactMap<T>(nameExtractor);\n this.dist = new ArtifactMap<T>(nameExtractor);\n }\n\n add(mode: CompileMode, obj: T, replace: boolean = true): T | undefined {\n switch (mode) {\n case \"dist\":\n return this.dist.add(obj, replace);\n\n default:\n assertNever(mode);\n }\n }\n\n get(mode: CompileMode, name: TypedArtifactName): T | undefined {\n switch (mode) {\n case \"dist\":\n return this.dist.get(name);\n\n default:\n assertNever(mode);\n }\n }\n\n array(mode: CompileMode): T[] {\n const ret: T[] = [];\n this.forEach(mode, (obj) => ret.push(obj));\n return ret;\n }\n\n forEach(mode: CompileMode, callback: (value: T, key: TypedArtifactName) => void) {\n this.dist.forEach((obj, k) => callback(this.get(mode, k) ?? obj, k));\n }\n}\n"],"mappings":";;;;AAIA,IAAa,cAAb,MAA4B;CAC1B,AAAiB,sBAAM,IAAI,KAAgB;CAE3C,YAAY,AAAiB,eAA8C;EAA9C;;CAE7B,IAAI,KAAQ,UAAmB,MAAqB;EAClD,MAAM,MAAMA,4BAAY,KAAK,cAAc,IAAI,CAAC;EAChD,MAAM,MAAM,KAAK,IAAI,IAAI,IAAI;AAC7B,MAAI,OAAO,CAAC,QAAS,QAAO;AAC5B,OAAK,IAAI,IAAI,KAAK,IAAI;AACtB,SAAO;;CAGT,IAAI,MAAwC;AAC1C,SAAO,KAAK,IAAI,IAAIA,4BAAY,KAAK,CAAC;;CAGxC,IAAI,QAAa;EACf,MAAM,MAAW,EAAE;AACnB,OAAK,IAAI,SAAS,QAAQ,IAAI,KAAK,IAAI,CAAC;AACxC,SAAO;;CAGT,QAAQ,UAAsD;AAC5D,OAAK,IAAI,SAAS,MAAM,SAAS,GAAG,KAAK,cAAc,EAAE,CAAC,CAAC;;;AAI/D,SAAgB,wBAAwD;AACtE,QAAO,IAAI,aAAgC,QAAQ,IAAI;;;;;;AAOzD,IAAa,gBAAb,MAA8B;CAE5B,AAAiB;CAEjB,YAAY,eAA8C;AAExD,OAAK,OAAO,IAAI,YAAe,cAAc;;CAG/C,IAAI,MAAmB,KAAQ,UAAmB,MAAqB;AACrE,UAAQ,MAAR;GACE,KAAK,OACH,QAAO,KAAK,KAAK,IAAI,KAAK,QAAQ;GAEpC,QACE,0BAAY,KAAK;;;CAIvB,IAAI,MAAmB,MAAwC;AAC7D,UAAQ,MAAR;GACE,KAAK,OACH,QAAO,KAAK,KAAK,IAAI,KAAK;GAE5B,QACE,0BAAY,KAAK;;;CAIvB,MAAM,MAAwB;EAC5B,MAAM,MAAW,EAAE;AACnB,OAAK,QAAQ,OAAO,QAAQ,IAAI,KAAK,IAAI,CAAC;AAC1C,SAAO;;CAGT,QAAQ,MAAmB,UAAsD;AAC/E,OAAK,KAAK,SAAS,KAAK,MAAM,SAAS,KAAK,IAAI,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"artifactset.cjs","names":["artifactKey"],"sources":["../../src/compiler/artifactset.ts"],"sourcesContent":["import type { CompileMode, TypedArtifactName } from \"./package\";\nimport { artifactKey } from \"./package\";\nimport { assertNever } from \"./util\";\n\nexport class ArtifactMap<T> {\n private readonly map = new Map<string, T>();\n\n constructor(private readonly nameExtractor: (obj: T) => TypedArtifactName) {}\n\n add(obj: T, replace: boolean = true): T | undefined {\n const key = artifactKey(this.nameExtractor(obj));\n const ret = this.map.get(key);\n if (ret && !replace) return ret;\n this.map.set(key, obj);\n return ret;\n }\n\n get(name: TypedArtifactName): T | undefined {\n return this.map.get(artifactKey(name));\n }\n\n get array(): T[] {\n const ret: T[] = [];\n this.map.forEach((obj) => ret.push(obj));\n return ret;\n }\n\n forEach(callback: (value: T, key: TypedArtifactName) => void) {\n this.map.forEach((v) => callback(v, this.nameExtractor(v)));\n }\n}\n\nexport function createArtifactNameSet(): ArtifactMap<TypedArtifactName> {\n return new ArtifactMap<TypedArtifactName>((obj) => obj);\n}\n\n/**\n * ArtifactStore is a store for artifacts that are compiled for different modes.\n * It is used to collect all artifacts from the dependency tree and compile them for different modes.\n */\nexport class ArtifactStore<T> {\n // private readonly dev: ArtifactMap<T>;\n private readonly dist: ArtifactMap<T>;\n\n constructor(nameExtractor: (obj: T) => TypedArtifactName) {\n // this.dev = new ArtifactMap<T>(nameExtractor);\n this.dist = new ArtifactMap<T>(nameExtractor);\n }\n\n add(mode: CompileMode, obj: T, replace: boolean = true): T | undefined {\n switch (mode) {\n case \"dist\":\n return this.dist.add(obj, replace);\n\n default:\n assertNever(mode);\n }\n }\n\n get(mode: CompileMode, name: TypedArtifactName): T | undefined {\n switch (mode) {\n case \"dist\":\n return this.dist.get(name);\n\n default:\n assertNever(mode);\n }\n }\n\n array(mode: CompileMode): T[] {\n const ret: T[] = [];\n this.forEach(mode, (obj) => ret.push(obj));\n return ret;\n }\n\n forEach(mode: CompileMode, callback: (value: T, key: TypedArtifactName) => void) {\n this.dist.forEach((obj, k) => callback(this.get(mode, k) ?? obj, k));\n }\n}\n"],"mappings":";;;AAIA,IAAa,cAAb,MAA4B;CAC1B,sBAAuB,IAAI,KAAgB;CAE3C,YAAY,eAA+D;AAA9C,OAAA,gBAAA;;CAE7B,IAAI,KAAQ,UAAmB,MAAqB;EAClD,MAAM,MAAMA,gBAAAA,YAAY,KAAK,cAAc,IAAI,CAAC;EAChD,MAAM,MAAM,KAAK,IAAI,IAAI,IAAI;AAC7B,MAAI,OAAO,CAAC,QAAS,QAAO;AAC5B,OAAK,IAAI,IAAI,KAAK,IAAI;AACtB,SAAO;;CAGT,IAAI,MAAwC;AAC1C,SAAO,KAAK,IAAI,IAAIA,gBAAAA,YAAY,KAAK,CAAC;;CAGxC,IAAI,QAAa;EACf,MAAM,MAAW,EAAE;AACnB,OAAK,IAAI,SAAS,QAAQ,IAAI,KAAK,IAAI,CAAC;AACxC,SAAO;;CAGT,QAAQ,UAAsD;AAC5D,OAAK,IAAI,SAAS,MAAM,SAAS,GAAG,KAAK,cAAc,EAAE,CAAC,CAAC;;;AAI/D,SAAgB,wBAAwD;AACtE,QAAO,IAAI,aAAgC,QAAQ,IAAI;;;;;;AAOzD,IAAa,gBAAb,MAA8B;CAE5B;CAEA,YAAY,eAA8C;AAExD,OAAK,OAAO,IAAI,YAAe,cAAc;;CAG/C,IAAI,MAAmB,KAAQ,UAAmB,MAAqB;AACrE,UAAQ,MAAR;GACE,KAAK,OACH,QAAO,KAAK,KAAK,IAAI,KAAK,QAAQ;GAEpC,QACE,cAAA,YAAY,KAAK;;;CAIvB,IAAI,MAAmB,MAAwC;AAC7D,UAAQ,MAAR;GACE,KAAK,OACH,QAAO,KAAK,KAAK,IAAI,KAAK;GAE5B,QACE,cAAA,YAAY,KAAK;;;CAIvB,MAAM,MAAwB;EAC5B,MAAM,MAAW,EAAE;AACnB,OAAK,QAAQ,OAAO,QAAQ,IAAI,KAAK,IAAI,CAAC;AAC1C,SAAO;;CAGT,QAAQ,MAAmB,UAAsD;AAC/E,OAAK,KAAK,SAAS,KAAK,MAAM,SAAS,KAAK,IAAI,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC"}