@platforma-sdk/tengo-builder 2.1.13 → 2.1.15

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 (132) hide show
  1. package/bin/run.js +6 -0
  2. package/dist/commands/build.cjs +172 -0
  3. package/dist/commands/build.cjs.map +1 -0
  4. package/dist/commands/build.d.ts +4 -6
  5. package/dist/commands/build.js +149 -0
  6. package/dist/commands/build.js.map +1 -0
  7. package/dist/commands/check.cjs +39 -0
  8. package/dist/commands/check.cjs.map +1 -0
  9. package/dist/commands/check.d.ts +1 -3
  10. package/dist/commands/check.js +37 -0
  11. package/dist/commands/check.js.map +1 -0
  12. package/dist/commands/dump/all.cjs +20 -0
  13. package/dist/commands/dump/all.cjs.map +1 -0
  14. package/dist/commands/dump/all.d.ts +0 -1
  15. package/dist/commands/dump/all.js +18 -0
  16. package/dist/commands/dump/all.js.map +1 -0
  17. package/dist/commands/dump/assets.cjs +20 -0
  18. package/dist/commands/dump/assets.cjs.map +1 -0
  19. package/dist/commands/dump/assets.d.ts +0 -1
  20. package/dist/commands/dump/assets.js +18 -0
  21. package/dist/commands/dump/assets.js.map +1 -0
  22. package/dist/commands/dump/libs.cjs +24 -0
  23. package/dist/commands/dump/libs.cjs.map +1 -0
  24. package/dist/commands/dump/libs.d.ts +1 -3
  25. package/dist/commands/dump/libs.js +22 -0
  26. package/dist/commands/dump/libs.js.map +1 -0
  27. package/dist/commands/dump/software.cjs +20 -0
  28. package/dist/commands/dump/software.cjs.map +1 -0
  29. package/dist/commands/dump/software.d.ts +0 -1
  30. package/dist/commands/dump/software.js +18 -0
  31. package/dist/commands/dump/software.js.map +1 -0
  32. package/dist/commands/dump/templates.cjs +20 -0
  33. package/dist/commands/dump/templates.cjs.map +1 -0
  34. package/dist/commands/dump/templates.d.ts +0 -1
  35. package/dist/commands/dump/templates.js +18 -0
  36. package/dist/commands/dump/templates.js.map +1 -0
  37. package/dist/commands/dump/tests.cjs +20 -0
  38. package/dist/commands/dump/tests.cjs.map +1 -0
  39. package/dist/commands/dump/tests.d.ts +0 -1
  40. package/dist/commands/dump/tests.js +18 -0
  41. package/dist/commands/dump/tests.js.map +1 -0
  42. package/dist/commands/test.cjs +36 -0
  43. package/dist/commands/test.cjs.map +1 -0
  44. package/dist/commands/test.d.ts +1 -3
  45. package/dist/commands/test.js +34 -0
  46. package/dist/commands/test.js.map +1 -0
  47. package/dist/compiler/artifactset.cjs +75 -0
  48. package/dist/compiler/artifactset.cjs.map +1 -0
  49. package/dist/compiler/artifactset.d.ts +0 -1
  50. package/dist/compiler/artifactset.js +71 -0
  51. package/dist/compiler/artifactset.js.map +1 -0
  52. package/dist/compiler/compiler.cjs +314 -0
  53. package/dist/compiler/compiler.cjs.map +1 -0
  54. package/dist/compiler/compiler.d.ts +0 -1
  55. package/dist/compiler/compiler.js +312 -0
  56. package/dist/compiler/compiler.js.map +1 -0
  57. package/dist/compiler/compileroptions.cjs +45 -0
  58. package/dist/compiler/compileroptions.cjs.map +1 -0
  59. package/dist/compiler/compileroptions.d.ts +0 -1
  60. package/dist/compiler/compileroptions.js +41 -0
  61. package/dist/compiler/compileroptions.js.map +1 -0
  62. package/dist/compiler/main.cjs +387 -0
  63. package/dist/compiler/main.cjs.map +1 -0
  64. package/dist/compiler/main.d.ts +0 -1
  65. package/dist/compiler/main.js +359 -0
  66. package/dist/compiler/main.js.map +1 -0
  67. package/dist/compiler/package.cjs +65 -0
  68. package/dist/compiler/package.cjs.map +1 -0
  69. package/dist/compiler/package.d.ts +0 -1
  70. package/dist/compiler/package.js +55 -0
  71. package/dist/compiler/package.js.map +1 -0
  72. package/dist/compiler/source.cjs +292 -0
  73. package/dist/compiler/source.cjs.map +1 -0
  74. package/dist/compiler/source.d.ts +0 -1
  75. package/dist/compiler/source.js +285 -0
  76. package/dist/compiler/source.js.map +1 -0
  77. package/dist/compiler/template.cjs +48 -0
  78. package/dist/compiler/template.cjs.map +1 -0
  79. package/dist/compiler/template.d.ts +0 -1
  80. package/dist/compiler/template.js +44 -0
  81. package/dist/compiler/template.js.map +1 -0
  82. package/dist/compiler/test.artifacts.d.ts +0 -1
  83. package/dist/compiler/util.cjs +75 -0
  84. package/dist/compiler/util.cjs.map +1 -0
  85. package/dist/compiler/util.d.ts +0 -1
  86. package/dist/compiler/util.js +50 -0
  87. package/dist/compiler/util.js.map +1 -0
  88. package/dist/index.cjs +28 -0
  89. package/dist/index.cjs.map +1 -0
  90. package/dist/index.d.ts +0 -1
  91. package/dist/index.js +23 -41
  92. package/dist/index.js.map +1 -1
  93. package/dist/shared/basecmd.cjs +31 -0
  94. package/dist/shared/basecmd.cjs.map +1 -0
  95. package/dist/shared/basecmd.d.ts +4 -6
  96. package/dist/shared/basecmd.js +28 -0
  97. package/dist/shared/basecmd.js.map +1 -0
  98. package/dist/shared/dump.cjs +117 -0
  99. package/dist/shared/dump.cjs.map +1 -0
  100. package/dist/shared/dump.d.ts +0 -1
  101. package/dist/shared/dump.js +110 -0
  102. package/dist/shared/dump.js.map +1 -0
  103. package/dist/shared/proc.cjs +26 -0
  104. package/dist/shared/proc.cjs.map +1 -0
  105. package/dist/shared/proc.d.ts +0 -1
  106. package/dist/shared/proc.js +23 -0
  107. package/dist/shared/proc.js.map +1 -0
  108. package/package.json +12 -9
  109. package/dist/commands/build.d.ts.map +0 -1
  110. package/dist/commands/check.d.ts.map +0 -1
  111. package/dist/commands/dump/all.d.ts.map +0 -1
  112. package/dist/commands/dump/assets.d.ts.map +0 -1
  113. package/dist/commands/dump/libs.d.ts.map +0 -1
  114. package/dist/commands/dump/software.d.ts.map +0 -1
  115. package/dist/commands/dump/templates.d.ts.map +0 -1
  116. package/dist/commands/dump/tests.d.ts.map +0 -1
  117. package/dist/commands/test.d.ts.map +0 -1
  118. package/dist/compiler/artifactset.d.ts.map +0 -1
  119. package/dist/compiler/compiler.d.ts.map +0 -1
  120. package/dist/compiler/compileroptions.d.ts.map +0 -1
  121. package/dist/compiler/main.d.ts.map +0 -1
  122. package/dist/compiler/package.d.ts.map +0 -1
  123. package/dist/compiler/source.d.ts.map +0 -1
  124. package/dist/compiler/template.d.ts.map +0 -1
  125. package/dist/compiler/test.artifacts.d.ts.map +0 -1
  126. package/dist/compiler/util.d.ts.map +0 -1
  127. package/dist/index.d.ts.map +0 -1
  128. package/dist/index.mjs +0 -1198
  129. package/dist/index.mjs.map +0 -1
  130. package/dist/shared/basecmd.d.ts.map +0 -1
  131. package/dist/shared/dump.d.ts.map +0 -1
  132. package/dist/shared/proc.d.ts.map +0 -1
package/bin/run.js CHANGED
@@ -1,5 +1,11 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ import { dirname } from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = dirname(__filename);
8
+
3
9
  // eslint-disable-next-line unicorn/prefer-top-level-await
4
10
  (async () => {
5
11
  const oclif = await import('@oclif/core')
@@ -0,0 +1,172 @@
1
+ 'use strict';
2
+
3
+ var node_child_process = require('node:child_process');
4
+ var core = require('@oclif/core');
5
+ var main = require('../compiler/main.cjs');
6
+ var util = require('../compiler/util.cjs');
7
+ var basecmd = require('../shared/basecmd.cjs');
8
+ var fs = require('node:fs');
9
+ var fsp = require('node:fs/promises');
10
+ var path = require('node:path');
11
+
12
+ function _interopNamespaceDefault(e) {
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () { return e[k]; }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n.default = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
30
+ var fsp__namespace = /*#__PURE__*/_interopNamespaceDefault(fsp);
31
+ var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
32
+
33
+ class Build extends core.Command {
34
+ static description = 'build tengo sources into single distributable pack file';
35
+ static examples = ['<%= config.bin %> <%= command.id %>'];
36
+ static flags = {
37
+ ...basecmd.GlobalFlags,
38
+ ...basecmd.CtagsFlags,
39
+ };
40
+ async run() {
41
+ const { flags } = await this.parse(Build);
42
+ const logger = util.createLogger(flags['log-level']);
43
+ const packageInfo = main.getPackageInfo(process.cwd(), logger);
44
+ const compiledDist = main.compile(logger, packageInfo, 'dist');
45
+ main.savePacks(logger, compiledDist, 'dist');
46
+ logger.info('Template Pack build done.');
47
+ // Building TS bindings for templates
48
+ const { dts, cjs, mjs } = generateTsBinding(compiledDist);
49
+ await fsp__namespace.writeFile('dist/index.d.ts', dts);
50
+ if (packageInfo.type === 'module') {
51
+ await fsp__namespace.writeFile('dist/index.cjs', cjs);
52
+ await fsp__namespace.writeFile('dist/index.js', mjs);
53
+ }
54
+ else {
55
+ await fsp__namespace.writeFile('dist/index.js', cjs);
56
+ await fsp__namespace.writeFile('dist/index.mjs', mjs);
57
+ }
58
+ mergeTagsEnvs(flags);
59
+ if (flags['generate-tags'])
60
+ checkAndGenerateCtags(logger, flags);
61
+ logger.info('Template Pack build done.');
62
+ }
63
+ }
64
+ function generateTsBinding(compiledDist) {
65
+ let dts = `declare type TemplateFromFile = { readonly type: "from-file"; readonly path: string; };\n`;
66
+ dts += `declare type TplName = ${compiledDist.templates
67
+ .map((tpl) => '"' + tpl.fullName.id + '"')
68
+ .join(' | ')};\n`;
69
+ dts += `declare const Templates: Record<TplName, TemplateFromFile>;\n`;
70
+ dts += `export { Templates };\n`;
71
+ let cjs = `module.exports = { Templates: {\n`;
72
+ let mjs = `import { resolve } from 'node:path';\nexport const Templates = {\n`;
73
+ const recordsCjs = compiledDist.templates
74
+ .map((tpl) => ` '${tpl.fullName.id}': { type: 'from-file', path: require.resolve('./tengo/tpl/${tpl.fullName.id}.plj.gz') }`)
75
+ .join(',\n');
76
+ const recordsMjs = compiledDist.templates
77
+ .map((tpl) => ` '${tpl.fullName.id}': { type: 'from-file', path: resolve(import.meta.dirname, './tengo/tpl/${tpl.fullName.id}.plj.gz') }`)
78
+ .join(',\n');
79
+ cjs += recordsCjs;
80
+ mjs += recordsMjs;
81
+ cjs += `\n}};\n`;
82
+ mjs += `\n};\n`;
83
+ return { dts, cjs, mjs };
84
+ }
85
+ function mergeTagsEnvs(flags) {
86
+ if (process.env.GENERATE_TAGS != undefined) {
87
+ flags['generate-tags'] = process.env.GENERATE_TAGS == 'true';
88
+ }
89
+ if (process.env.TAGS_FILE != undefined) {
90
+ flags['tags-file'] = process.env.TAGS_FILE;
91
+ }
92
+ if (process.env.TAGS_ADDITIONAL_ARGS != undefined) {
93
+ flags['tags-additional-args'] = process.env.TAGS_ADDITIONAL_ARGS.split(',');
94
+ }
95
+ }
96
+ function checkAndGenerateCtags(logger, flags) {
97
+ const fileName = path__namespace.resolve(flags['tags-file']);
98
+ const rootDir = path__namespace.dirname(fileName);
99
+ const additionalArgs = flags['tags-additional-args'];
100
+ // all tengo files in dirs and subdirs
101
+ // If we don't limit the depth, it could become unbearably slow
102
+ // and even OOM killed node js.
103
+ // Increase the depth if you need to.
104
+ const tengoFiles = toRelativePath(rootDir, getTengoFiles(rootDir, 9));
105
+ logger.info(`Generating tags for tengo autocompletion from "${rootDir}" \
106
+ in "${fileName}", additional arguments: "${additionalArgs.join('" "')}".
107
+ Found ${tengoFiles.length} tengo files...`);
108
+ // see https://docs.ctags.io/en/latest/man/ctags-optlib.7.html#perl-pod
109
+ const result = node_child_process.spawnSync('ctags', [
110
+ '-f',
111
+ fileName,
112
+ ...additionalArgs,
113
+ '--langdef=tengo',
114
+ '--map-tengo=+.tengo',
115
+ '--kinddef-tengo=f,function,function',
116
+ '--regex-tengo=/^\\s*(.*)(:| :=| =) ?func.*/\\1/f/',
117
+ '--kinddef-tengo=c,constant,constant',
118
+ '--regex-tengo=/^\\s*(.*) := ("|\\{).*/\\1/c/',
119
+ '-R',
120
+ ...tengoFiles,
121
+ ], {
122
+ env: process.env,
123
+ stdio: 'inherit',
124
+ cwd: rootDir,
125
+ });
126
+ if (result.error?.message.includes('ENOENT')) {
127
+ console.log(`
128
+ pl-tengo can create tags for tengo autocompletion,
129
+ but the program should be installed
130
+ with "brew install universal-ctags" on OSX
131
+ or "sudo apt install universal-ctags" on Ubuntu.
132
+
133
+ For vscode, you should also install ctags extension:
134
+ https://marketplace.visualstudio.com/items?itemName=jaydenlin.ctags-support`);
135
+ return;
136
+ }
137
+ checkRunError(result, 'failed to generate ctags');
138
+ logger.info('Generation of tags is done.');
139
+ }
140
+ function getTengoFiles(dir, depth) {
141
+ if (depth === 0) {
142
+ return [];
143
+ }
144
+ const files = fs__namespace.readdirSync(dir, { withFileTypes: true });
145
+ let tengoFiles = [];
146
+ files.forEach((file) => {
147
+ const absPath = path__namespace.join(dir, file.name);
148
+ if (file.isDirectory()) {
149
+ tengoFiles = tengoFiles.concat(getTengoFiles(absPath, depth - 1));
150
+ }
151
+ if (!file.isDirectory() && file.name.endsWith('.tengo')) {
152
+ tengoFiles.push(absPath);
153
+ }
154
+ });
155
+ return tengoFiles;
156
+ }
157
+ function toRelativePath(dir, files) {
158
+ // Note that VS Code extension likes only relatives paths to the root of the opened dir.
159
+ return files.map((file) => file.replace(dir, '.'));
160
+ }
161
+ function checkRunError(result, message) {
162
+ if (result.error) {
163
+ console.log(result.error);
164
+ }
165
+ const msg = message;
166
+ if (result.status !== 0) {
167
+ console.log(`WARN: ${msg} the build will continue as-is`);
168
+ }
169
+ }
170
+
171
+ module.exports = Build;
172
+ //# sourceMappingURL=build.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.cjs","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 { CtagsFlags, GlobalFlags } 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 ...GlobalFlags,\n ...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) => ` '${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) => ` '${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"],"names":["Command","GlobalFlags","CtagsFlags","createLogger","getPackageInfo","compile","savePacks","fsp","path","spawnSync","fs"],"mappings":"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"}
@@ -1,14 +1,12 @@
1
1
  import { Command } from '@oclif/core';
2
- import { BooleanFlag, OptionFlag, CustomOptions } from '@oclif/core/interfaces';
3
2
  export default class Build extends Command {
4
3
  static description: string;
5
4
  static examples: string[];
6
5
  static flags: {
7
- 'generate-tags': BooleanFlag<boolean>;
8
- 'tags-file': OptionFlag<string, CustomOptions>;
9
- 'tags-additional-args': OptionFlag<string[], CustomOptions>;
10
- 'log-level': OptionFlag<string, CustomOptions>;
6
+ 'generate-tags': import('@oclif/core/interfaces').BooleanFlag<boolean>;
7
+ 'tags-file': import('@oclif/core/interfaces').OptionFlag<string, import('@oclif/core/interfaces').CustomOptions>;
8
+ 'tags-additional-args': import('@oclif/core/interfaces').OptionFlag<string[], import('@oclif/core/interfaces').CustomOptions>;
9
+ 'log-level': import('@oclif/core/interfaces').OptionFlag<string, import('@oclif/core/interfaces').CustomOptions>;
11
10
  };
12
11
  run(): Promise<void>;
13
12
  }
14
- //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1,149 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ import { Command } from '@oclif/core';
3
+ import { getPackageInfo, compile, savePacks } from '../compiler/main.js';
4
+ import { createLogger } from '../compiler/util.js';
5
+ import { CtagsFlags, GlobalFlags } from '../shared/basecmd.js';
6
+ import * as fs from 'node:fs';
7
+ import * as fsp from 'node:fs/promises';
8
+ import * as path from 'node:path';
9
+
10
+ class Build extends Command {
11
+ static description = 'build tengo sources into single distributable pack file';
12
+ static examples = ['<%= config.bin %> <%= command.id %>'];
13
+ static flags = {
14
+ ...GlobalFlags,
15
+ ...CtagsFlags,
16
+ };
17
+ async run() {
18
+ const { flags } = await this.parse(Build);
19
+ const logger = createLogger(flags['log-level']);
20
+ const packageInfo = getPackageInfo(process.cwd(), logger);
21
+ const compiledDist = compile(logger, packageInfo, 'dist');
22
+ savePacks(logger, compiledDist, 'dist');
23
+ logger.info('Template Pack build done.');
24
+ // Building TS bindings for templates
25
+ const { dts, cjs, mjs } = generateTsBinding(compiledDist);
26
+ await fsp.writeFile('dist/index.d.ts', dts);
27
+ if (packageInfo.type === 'module') {
28
+ await fsp.writeFile('dist/index.cjs', cjs);
29
+ await fsp.writeFile('dist/index.js', mjs);
30
+ }
31
+ else {
32
+ await fsp.writeFile('dist/index.js', cjs);
33
+ await fsp.writeFile('dist/index.mjs', mjs);
34
+ }
35
+ mergeTagsEnvs(flags);
36
+ if (flags['generate-tags'])
37
+ checkAndGenerateCtags(logger, flags);
38
+ logger.info('Template Pack build done.');
39
+ }
40
+ }
41
+ function generateTsBinding(compiledDist) {
42
+ let dts = `declare type TemplateFromFile = { readonly type: "from-file"; readonly path: string; };\n`;
43
+ dts += `declare type TplName = ${compiledDist.templates
44
+ .map((tpl) => '"' + tpl.fullName.id + '"')
45
+ .join(' | ')};\n`;
46
+ dts += `declare const Templates: Record<TplName, TemplateFromFile>;\n`;
47
+ dts += `export { Templates };\n`;
48
+ let cjs = `module.exports = { Templates: {\n`;
49
+ let mjs = `import { resolve } from 'node:path';\nexport const Templates = {\n`;
50
+ const recordsCjs = compiledDist.templates
51
+ .map((tpl) => ` '${tpl.fullName.id}': { type: 'from-file', path: require.resolve('./tengo/tpl/${tpl.fullName.id}.plj.gz') }`)
52
+ .join(',\n');
53
+ const recordsMjs = compiledDist.templates
54
+ .map((tpl) => ` '${tpl.fullName.id}': { type: 'from-file', path: resolve(import.meta.dirname, './tengo/tpl/${tpl.fullName.id}.plj.gz') }`)
55
+ .join(',\n');
56
+ cjs += recordsCjs;
57
+ mjs += recordsMjs;
58
+ cjs += `\n}};\n`;
59
+ mjs += `\n};\n`;
60
+ return { dts, cjs, mjs };
61
+ }
62
+ function mergeTagsEnvs(flags) {
63
+ if (process.env.GENERATE_TAGS != undefined) {
64
+ flags['generate-tags'] = process.env.GENERATE_TAGS == 'true';
65
+ }
66
+ if (process.env.TAGS_FILE != undefined) {
67
+ flags['tags-file'] = process.env.TAGS_FILE;
68
+ }
69
+ if (process.env.TAGS_ADDITIONAL_ARGS != undefined) {
70
+ flags['tags-additional-args'] = process.env.TAGS_ADDITIONAL_ARGS.split(',');
71
+ }
72
+ }
73
+ function checkAndGenerateCtags(logger, flags) {
74
+ const fileName = path.resolve(flags['tags-file']);
75
+ const rootDir = path.dirname(fileName);
76
+ const additionalArgs = flags['tags-additional-args'];
77
+ // all tengo files in dirs and subdirs
78
+ // If we don't limit the depth, it could become unbearably slow
79
+ // and even OOM killed node js.
80
+ // Increase the depth if you need to.
81
+ const tengoFiles = toRelativePath(rootDir, getTengoFiles(rootDir, 9));
82
+ logger.info(`Generating tags for tengo autocompletion from "${rootDir}" \
83
+ in "${fileName}", additional arguments: "${additionalArgs.join('" "')}".
84
+ Found ${tengoFiles.length} tengo files...`);
85
+ // see https://docs.ctags.io/en/latest/man/ctags-optlib.7.html#perl-pod
86
+ const result = spawnSync('ctags', [
87
+ '-f',
88
+ fileName,
89
+ ...additionalArgs,
90
+ '--langdef=tengo',
91
+ '--map-tengo=+.tengo',
92
+ '--kinddef-tengo=f,function,function',
93
+ '--regex-tengo=/^\\s*(.*)(:| :=| =) ?func.*/\\1/f/',
94
+ '--kinddef-tengo=c,constant,constant',
95
+ '--regex-tengo=/^\\s*(.*) := ("|\\{).*/\\1/c/',
96
+ '-R',
97
+ ...tengoFiles,
98
+ ], {
99
+ env: process.env,
100
+ stdio: 'inherit',
101
+ cwd: rootDir,
102
+ });
103
+ if (result.error?.message.includes('ENOENT')) {
104
+ console.log(`
105
+ pl-tengo can create tags for tengo autocompletion,
106
+ but the program should be installed
107
+ with "brew install universal-ctags" on OSX
108
+ or "sudo apt install universal-ctags" on Ubuntu.
109
+
110
+ For vscode, you should also install ctags extension:
111
+ https://marketplace.visualstudio.com/items?itemName=jaydenlin.ctags-support`);
112
+ return;
113
+ }
114
+ checkRunError(result, 'failed to generate ctags');
115
+ logger.info('Generation of tags is done.');
116
+ }
117
+ function getTengoFiles(dir, depth) {
118
+ if (depth === 0) {
119
+ return [];
120
+ }
121
+ const files = fs.readdirSync(dir, { withFileTypes: true });
122
+ let tengoFiles = [];
123
+ files.forEach((file) => {
124
+ const absPath = path.join(dir, file.name);
125
+ if (file.isDirectory()) {
126
+ tengoFiles = tengoFiles.concat(getTengoFiles(absPath, depth - 1));
127
+ }
128
+ if (!file.isDirectory() && file.name.endsWith('.tengo')) {
129
+ tengoFiles.push(absPath);
130
+ }
131
+ });
132
+ return tengoFiles;
133
+ }
134
+ function toRelativePath(dir, files) {
135
+ // Note that VS Code extension likes only relatives paths to the root of the opened dir.
136
+ return files.map((file) => file.replace(dir, '.'));
137
+ }
138
+ function checkRunError(result, message) {
139
+ if (result.error) {
140
+ console.log(result.error);
141
+ }
142
+ const msg = message;
143
+ if (result.status !== 0) {
144
+ console.log(`WARN: ${msg} the build will continue as-is`);
145
+ }
146
+ }
147
+
148
+ export { Build as default };
149
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","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 { CtagsFlags, GlobalFlags } 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 ...GlobalFlags,\n ...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) => ` '${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) => ` '${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"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ var core = require('@oclif/core');
4
+ var util = require('../compiler/util.cjs');
5
+ var dump = require('../shared/dump.cjs');
6
+ var basecmd = require('../shared/basecmd.cjs');
7
+ var proc = require('../shared/proc.cjs');
8
+ var tengoTester = require('@milaboratories/tengo-tester');
9
+
10
+ class Check extends core.Command {
11
+ static description = 'check tengo sources for language processor an';
12
+ // static override args = {
13
+ // "log-level": Args.string({description: 'logging level'}),
14
+ // }
15
+ static strict = false;
16
+ static flags = { ...basecmd.GlobalFlags };
17
+ static examples = ['<%= config.bin %> <%= command.id %>'];
18
+ async run() {
19
+ const { flags, argv } = await this.parse(Check);
20
+ const logger = util.createLogger(flags['log-level']);
21
+ const testerArgs = argv.length == 0 ? ['./src'] : argv;
22
+ // prettier-ignore
23
+ const tester = proc.spawnEmbed(tengoTester.TengoTesterBinaryPath, 'check', '--log-level', flags['log-level'], '--artifacts', '-', ...testerArgs);
24
+ try {
25
+ dump.dumpAll(logger, tester.stdin);
26
+ }
27
+ catch (err) {
28
+ logger.error(err);
29
+ }
30
+ finally {
31
+ tester.stdin.end();
32
+ const code = await proc.waitFor(tester);
33
+ process.exit(code);
34
+ }
35
+ }
36
+ }
37
+
38
+ module.exports = Check;
39
+ //# sourceMappingURL=check.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.cjs","sources":["../../src/commands/check.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../compiler/util';\nimport { dumpAll } 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 dumpAll(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","dumpAll","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,YAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QAC/B;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,12 +1,10 @@
1
1
  import { Command } from '@oclif/core';
2
- import { OptionFlag, CustomOptions } from '@oclif/core/interfaces';
3
2
  export default class Check extends Command {
4
3
  static description: string;
5
4
  static strict: boolean;
6
5
  static flags: {
7
- 'log-level': OptionFlag<string, CustomOptions>;
6
+ 'log-level': import('@oclif/core/interfaces').OptionFlag<string, import('@oclif/core/interfaces').CustomOptions>;
8
7
  };
9
8
  static examples: string[];
10
9
  run(): Promise<void>;
11
10
  }
12
- //# sourceMappingURL=check.d.ts.map
@@ -0,0 +1,37 @@
1
+ import { Command } from '@oclif/core';
2
+ import { createLogger } from '../compiler/util.js';
3
+ import { dumpAll } from '../shared/dump.js';
4
+ import { GlobalFlags } from '../shared/basecmd.js';
5
+ import { spawnEmbed, waitFor } from '../shared/proc.js';
6
+ import { TengoTesterBinaryPath } from '@milaboratories/tengo-tester';
7
+
8
+ class Check extends Command {
9
+ static description = 'check tengo sources for language processor an';
10
+ // static override args = {
11
+ // "log-level": Args.string({description: 'logging level'}),
12
+ // }
13
+ static strict = false;
14
+ static flags = { ...GlobalFlags };
15
+ static examples = ['<%= config.bin %> <%= command.id %>'];
16
+ async run() {
17
+ const { flags, argv } = await this.parse(Check);
18
+ const logger = createLogger(flags['log-level']);
19
+ const testerArgs = argv.length == 0 ? ['./src'] : argv;
20
+ // prettier-ignore
21
+ const tester = spawnEmbed(TengoTesterBinaryPath, 'check', '--log-level', flags['log-level'], '--artifacts', '-', ...testerArgs);
22
+ try {
23
+ dumpAll(logger, tester.stdin);
24
+ }
25
+ catch (err) {
26
+ logger.error(err);
27
+ }
28
+ finally {
29
+ tester.stdin.end();
30
+ const code = await waitFor(tester);
31
+ process.exit(code);
32
+ }
33
+ }
34
+ }
35
+
36
+ export { Check as default };
37
+ //# sourceMappingURL=check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check.js","sources":["../../src/commands/check.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../compiler/util';\nimport { dumpAll } 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 dumpAll(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,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;QAC/B;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;;;;;"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var core = require('@oclif/core');
4
+ var util = require('../../compiler/util.cjs');
5
+ var dump = require('../../shared/dump.cjs');
6
+ var node_process = require('node:process');
7
+
8
+ class DumpAll extends core.Command {
9
+ static description = 'parse sources in current package and dump all found artifacts to stdout';
10
+ static examples = [
11
+ '<%= config.bin %> <%= command.id %>',
12
+ ];
13
+ async run() {
14
+ const logger = util.createLogger();
15
+ dump.dumpAll(logger, node_process.stdout);
16
+ }
17
+ }
18
+
19
+ module.exports = DumpAll;
20
+ //# sourceMappingURL=all.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all.cjs","sources":["../../../src/commands/dump/all.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../../compiler/util';\nimport { dumpAll } from '../../shared/dump';\nimport { stdout } from 'node:process';\n\nexport default class DumpAll extends Command {\n static override description = 'parse sources in current package and dump all found artifacts to stdout';\n\n static override examples = [\n '<%= config.bin %> <%= command.id %>',\n ];\n\n public async run(): Promise<void> {\n const logger = createLogger();\n dumpAll(logger, stdout);\n }\n}\n"],"names":["Command","createLogger","dumpAll","stdout"],"mappings":";;;;;;;AAKc,MAAO,OAAQ,SAAQA,YAAO,CAAA;AAC1C,IAAA,OAAgB,WAAW,GAAG,yEAAyE;IAEvG,OAAgB,QAAQ,GAAG;QACzB,qCAAqC;KACtC;AAEM,IAAA,MAAM,GAAG,GAAA;AACd,QAAA,MAAM,MAAM,GAAGC,iBAAY,EAAE;AAC7B,QAAAC,YAAO,CAAC,MAAM,EAAEC,mBAAM,CAAC;IACzB;;;;;"}
@@ -4,4 +4,3 @@ export default class DumpAll extends Command {
4
4
  static examples: string[];
5
5
  run(): Promise<void>;
6
6
  }
7
- //# sourceMappingURL=all.d.ts.map
@@ -0,0 +1,18 @@
1
+ import { Command } from '@oclif/core';
2
+ import { createLogger } from '../../compiler/util.js';
3
+ import { dumpAll } from '../../shared/dump.js';
4
+ import { stdout } from 'node:process';
5
+
6
+ class DumpAll extends Command {
7
+ static description = 'parse sources in current package and dump all found artifacts to stdout';
8
+ static examples = [
9
+ '<%= config.bin %> <%= command.id %>',
10
+ ];
11
+ async run() {
12
+ const logger = createLogger();
13
+ dumpAll(logger, stdout);
14
+ }
15
+ }
16
+
17
+ export { DumpAll as default };
18
+ //# sourceMappingURL=all.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"all.js","sources":["../../../src/commands/dump/all.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../../compiler/util';\nimport { dumpAll } from '../../shared/dump';\nimport { stdout } from 'node:process';\n\nexport default class DumpAll extends Command {\n static override description = 'parse sources in current package and dump all found artifacts to stdout';\n\n static override examples = [\n '<%= config.bin %> <%= command.id %>',\n ];\n\n public async run(): Promise<void> {\n const logger = createLogger();\n dumpAll(logger, stdout);\n }\n}\n"],"names":[],"mappings":";;;;;AAKc,MAAO,OAAQ,SAAQ,OAAO,CAAA;AAC1C,IAAA,OAAgB,WAAW,GAAG,yEAAyE;IAEvG,OAAgB,QAAQ,GAAG;QACzB,qCAAqC;KACtC;AAEM,IAAA,MAAM,GAAG,GAAA;AACd,QAAA,MAAM,MAAM,GAAG,YAAY,EAAE;AAC7B,QAAA,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB;;;;;"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var core = require('@oclif/core');
4
+ var util = require('../../compiler/util.cjs');
5
+ var dump = require('../../shared/dump.cjs');
6
+ var node_process = require('node:process');
7
+
8
+ class DumpAssets extends core.Command {
9
+ static description = 'parse sources in current package and dump all found assets to stdout';
10
+ static examples = [
11
+ '<%= config.bin %> <%= command.id %>',
12
+ ];
13
+ async run() {
14
+ const logger = util.createLogger();
15
+ dump.dumpAssets(logger, node_process.stdout);
16
+ }
17
+ }
18
+
19
+ module.exports = DumpAssets;
20
+ //# sourceMappingURL=assets.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.cjs","sources":["../../../src/commands/dump/assets.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../../compiler/util';\nimport { dumpAssets } from '../../shared/dump';\nimport { stdout } from 'node:process';\n\nexport default class DumpAssets extends Command {\n static override description = 'parse sources in current package and dump all found assets to stdout';\n\n static override examples = [\n '<%= config.bin %> <%= command.id %>',\n ];\n\n public async run(): Promise<void> {\n const logger = createLogger();\n dumpAssets(logger, stdout);\n }\n}\n"],"names":["Command","createLogger","dumpAssets","stdout"],"mappings":";;;;;;;AAKc,MAAO,UAAW,SAAQA,YAAO,CAAA;AAC7C,IAAA,OAAgB,WAAW,GAAG,sEAAsE;IAEpG,OAAgB,QAAQ,GAAG;QACzB,qCAAqC;KACtC;AAEM,IAAA,MAAM,GAAG,GAAA;AACd,QAAA,MAAM,MAAM,GAAGC,iBAAY,EAAE;AAC7B,QAAAC,eAAU,CAAC,MAAM,EAAEC,mBAAM,CAAC;IAC5B;;;;;"}
@@ -4,4 +4,3 @@ export default class DumpAssets extends Command {
4
4
  static examples: string[];
5
5
  run(): Promise<void>;
6
6
  }
7
- //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1,18 @@
1
+ import { Command } from '@oclif/core';
2
+ import { createLogger } from '../../compiler/util.js';
3
+ import { dumpAssets } from '../../shared/dump.js';
4
+ import { stdout } from 'node:process';
5
+
6
+ class DumpAssets extends Command {
7
+ static description = 'parse sources in current package and dump all found assets to stdout';
8
+ static examples = [
9
+ '<%= config.bin %> <%= command.id %>',
10
+ ];
11
+ async run() {
12
+ const logger = createLogger();
13
+ dumpAssets(logger, stdout);
14
+ }
15
+ }
16
+
17
+ export { DumpAssets as default };
18
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sources":["../../../src/commands/dump/assets.ts"],"sourcesContent":["import { Command } from '@oclif/core';\nimport { createLogger } from '../../compiler/util';\nimport { dumpAssets } from '../../shared/dump';\nimport { stdout } from 'node:process';\n\nexport default class DumpAssets extends Command {\n static override description = 'parse sources in current package and dump all found assets to stdout';\n\n static override examples = [\n '<%= config.bin %> <%= command.id %>',\n ];\n\n public async run(): Promise<void> {\n const logger = createLogger();\n dumpAssets(logger, stdout);\n }\n}\n"],"names":[],"mappings":";;;;;AAKc,MAAO,UAAW,SAAQ,OAAO,CAAA;AAC7C,IAAA,OAAgB,WAAW,GAAG,sEAAsE;IAEpG,OAAgB,QAAQ,GAAG;QACzB,qCAAqC;KACtC;AAEM,IAAA,MAAM,GAAG,GAAA;AACd,QAAA,MAAM,MAAM,GAAG,YAAY,EAAE;AAC7B,QAAA,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;IAC5B;;;;;"}