@platforma-sdk/tengo-builder 2.4.13 → 2.4.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 (123) hide show
  1. package/README.md +4 -4
  2. package/bin/run.js +5 -5
  3. package/dist/commands/build.cjs +36 -36
  4. package/dist/commands/build.cjs.map +1 -1
  5. package/dist/commands/build.d.ts +5 -5
  6. package/dist/commands/build.js +36 -36
  7. package/dist/commands/build.js.map +1 -1
  8. package/dist/commands/check.cjs +5 -5
  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 -1
  12. package/dist/commands/check.js +5 -5
  13. package/dist/commands/check.js.map +1 -1
  14. package/dist/commands/dump/artifacts.cjs +4 -6
  15. package/dist/commands/dump/artifacts.cjs.map +1 -1
  16. package/dist/commands/dump/artifacts.d.ts +2 -2
  17. package/dist/commands/dump/artifacts.d.ts.map +1 -1
  18. package/dist/commands/dump/artifacts.js +4 -6
  19. package/dist/commands/dump/artifacts.js.map +1 -1
  20. package/dist/commands/dump/software.cjs +3 -5
  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 -1
  24. package/dist/commands/dump/software.js +3 -5
  25. package/dist/commands/dump/software.js.map +1 -1
  26. package/dist/commands/test.cjs +5 -5
  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 -1
  30. package/dist/commands/test.js +5 -5
  31. package/dist/commands/test.js.map +1 -1
  32. package/dist/compiler/artifactset.cjs +2 -2
  33. package/dist/compiler/artifactset.cjs.map +1 -1
  34. package/dist/compiler/artifactset.d.ts +1 -1
  35. package/dist/compiler/artifactset.d.ts.map +1 -1
  36. package/dist/compiler/artifactset.js +2 -2
  37. package/dist/compiler/artifactset.js.map +1 -1
  38. package/dist/compiler/compiler.cjs +37 -34
  39. package/dist/compiler/compiler.cjs.map +1 -1
  40. package/dist/compiler/compiler.d.ts +3 -3
  41. package/dist/compiler/compiler.d.ts.map +1 -1
  42. package/dist/compiler/compiler.js +37 -34
  43. package/dist/compiler/compiler.js.map +1 -1
  44. package/dist/compiler/compileroptions.cjs +12 -12
  45. package/dist/compiler/compileroptions.cjs.map +1 -1
  46. package/dist/compiler/compileroptions.d.ts +2 -2
  47. package/dist/compiler/compileroptions.js +12 -12
  48. package/dist/compiler/compileroptions.js.map +1 -1
  49. package/dist/compiler/main.cjs +58 -58
  50. package/dist/compiler/main.cjs.map +1 -1
  51. package/dist/compiler/main.d.ts +6 -6
  52. package/dist/compiler/main.d.ts.map +1 -1
  53. package/dist/compiler/main.js +58 -58
  54. package/dist/compiler/main.js.map +1 -1
  55. package/dist/compiler/package.cjs +5 -2
  56. package/dist/compiler/package.cjs.map +1 -1
  57. package/dist/compiler/package.d.ts +6 -6
  58. package/dist/compiler/package.d.ts.map +1 -1
  59. package/dist/compiler/package.js +5 -2
  60. package/dist/compiler/package.js.map +1 -1
  61. package/dist/compiler/source.cjs +50 -52
  62. package/dist/compiler/source.cjs.map +1 -1
  63. package/dist/compiler/source.d.ts +2 -2
  64. package/dist/compiler/source.d.ts.map +1 -1
  65. package/dist/compiler/source.js +50 -52
  66. package/dist/compiler/source.js.map +1 -1
  67. package/dist/compiler/template.cjs +7 -7
  68. package/dist/compiler/template.cjs.map +1 -1
  69. package/dist/compiler/template.d.ts +2 -2
  70. package/dist/compiler/template.d.ts.map +1 -1
  71. package/dist/compiler/template.js +7 -7
  72. package/dist/compiler/template.js.map +1 -1
  73. package/dist/compiler/test.artifacts.d.ts +1 -1
  74. package/dist/compiler/test.artifacts.d.ts.map +1 -1
  75. package/dist/compiler/util.cjs +12 -12
  76. package/dist/compiler/util.cjs.map +1 -1
  77. package/dist/compiler/util.d.ts +2 -2
  78. package/dist/compiler/util.js +12 -12
  79. package/dist/compiler/util.js.map +1 -1
  80. package/dist/index.cjs +5 -5
  81. package/dist/index.cjs.map +1 -1
  82. package/dist/index.d.ts +7 -7
  83. package/dist/index.js +5 -5
  84. package/dist/index.js.map +1 -1
  85. package/dist/shared/basecmd.cjs +15 -15
  86. package/dist/shared/basecmd.cjs.map +1 -1
  87. package/dist/shared/basecmd.d.ts +4 -4
  88. package/dist/shared/basecmd.js +15 -15
  89. package/dist/shared/basecmd.js.map +1 -1
  90. package/dist/shared/dump.cjs +28 -28
  91. package/dist/shared/dump.cjs.map +1 -1
  92. package/dist/shared/dump.d.ts +2 -2
  93. package/dist/shared/dump.d.ts.map +1 -1
  94. package/dist/shared/dump.js +28 -28
  95. package/dist/shared/dump.js.map +1 -1
  96. package/dist/shared/proc.cjs +5 -5
  97. package/dist/shared/proc.cjs.map +1 -1
  98. package/dist/shared/proc.d.ts +2 -2
  99. package/dist/shared/proc.js +5 -5
  100. package/dist/shared/proc.js.map +1 -1
  101. package/package.json +21 -19
  102. package/src/commands/build.ts +57 -55
  103. package/src/commands/check.ts +15 -12
  104. package/src/commands/dump/artifacts.ts +11 -15
  105. package/src/commands/dump/software.ts +9 -10
  106. package/src/commands/test.ts +15 -12
  107. package/src/compiler/artifactset.ts +7 -9
  108. package/src/compiler/compiler.test.ts +134 -137
  109. package/src/compiler/compiler.ts +62 -62
  110. package/src/compiler/compileroptions.ts +15 -15
  111. package/src/compiler/main.test.ts +23 -23
  112. package/src/compiler/main.ts +83 -100
  113. package/src/compiler/package.ts +14 -12
  114. package/src/compiler/source.test.ts +191 -183
  115. package/src/compiler/source.ts +106 -79
  116. package/src/compiler/template.test.ts +50 -49
  117. package/src/compiler/template.ts +11 -21
  118. package/src/compiler/test.artifacts.ts +47 -47
  119. package/src/compiler/util.ts +17 -17
  120. package/src/index.ts +10 -10
  121. package/src/shared/basecmd.ts +16 -16
  122. package/src/shared/dump.ts +49 -70
  123. package/src/shared/proc.ts +8 -8
@@ -1,11 +1,11 @@
1
- import {
1
+ import {
2
2
  newGetSoftwareInfoRE,
3
3
  newGetTemplateIdRE,
4
4
  parseSource,
5
5
  sourceParserContext,
6
6
  lineProcessingResult,
7
- } from './source';
8
- import { createLogger } from './util';
7
+ } from "./source";
8
+ import { createLogger } from "./util";
9
9
  import {
10
10
  testLocalLib1Name,
11
11
  testLocalLib1Src,
@@ -17,81 +17,81 @@ import {
17
17
  testLocalTpl3Name,
18
18
  testTrickyCasesSrc,
19
19
  testTrickyCasesNormalized,
20
- } from './test.artifacts';
21
- import { parseSingleSourceLine } from './source';
22
- import { FullArtifactName } from './package';
23
- import { expect, describe, test } from 'vitest';
24
- import { ConsoleLoggerAdapter } from '@milaboratories/ts-helpers';
20
+ } from "./test.artifacts";
21
+ import { parseSingleSourceLine } from "./source";
22
+ import { FullArtifactName } from "./package";
23
+ import { expect, describe, test } from "vitest";
24
+ import { ConsoleLoggerAdapter } from "@milaboratories/ts-helpers";
25
25
 
26
26
  const stubTplName: FullArtifactName = {
27
- type: 'template',
28
- pkg: 'stub-pkg',
29
- id: 'stub-name',
30
- version: '1.2.3',
27
+ type: "template",
28
+ pkg: "stub-pkg",
29
+ id: "stub-name",
30
+ version: "1.2.3",
31
31
  };
32
32
 
33
- test('test lib 1 parsing', () => {
34
- const logger = createLogger('error');
33
+ test("test lib 1 parsing", () => {
34
+ const logger = createLogger("error");
35
35
 
36
- const libSrc = parseSource(logger, 'dist', testLocalLib1Src, testLocalLib1Name, true);
36
+ const libSrc = parseSource(logger, "dist", testLocalLib1Src, testLocalLib1Name, true);
37
37
  expect(libSrc.src).toEqual(testLocalLib1SrcNormalized);
38
38
  expect(libSrc.dependencies).toEqual([
39
- { type: 'library', pkg: 'package1', id: 'other-lib-2' },
40
- { type: 'software', pkg: 'current-package', id: 'software-1' },
41
- { type: 'template', pkg: 'current-package', id: 'local-template-2' },
42
- { type: 'template', pkg: 'package1', id: 'template-3' }
39
+ { type: "library", pkg: "package1", id: "other-lib-2" },
40
+ { type: "software", pkg: "current-package", id: "software-1" },
41
+ { type: "template", pkg: "current-package", id: "local-template-2" },
42
+ { type: "template", pkg: "package1", id: "template-3" },
43
43
  ]);
44
44
 
45
- expect(parseSource(logger, 'dist', testLocalLib1Src, testLocalLib1Name, false).src).toEqual(
46
- testLocalLib1Src
45
+ expect(parseSource(logger, "dist", testLocalLib1Src, testLocalLib1Name, false).src).toEqual(
46
+ testLocalLib1Src,
47
47
  );
48
48
  });
49
49
 
50
- test('test lib 2 parsing', () => {
51
- const logger = createLogger('error');
50
+ test("test lib 2 parsing", () => {
51
+ const logger = createLogger("error");
52
52
 
53
- const libSrc = parseSource(logger, 'dist', testLocalLib2Src, testLocalLib2Name, true);
53
+ const libSrc = parseSource(logger, "dist", testLocalLib2Src, testLocalLib2Name, true);
54
54
  expect(libSrc.src).toEqual(testLocalLib2SrcNormalized);
55
55
  expect(libSrc.dependencies).toEqual([
56
- { type: 'library', pkg: 'package1', id: 'someid' },
57
- { type: 'library', pkg: '@platforma-sdk/workflow-tengo', id: 'assets' },
58
- { type: 'template', pkg: 'package2', id: 'template-1' },
59
- { type: 'software', pkg: 'package2', id: 'software-1' },
60
- { type: 'asset', pkg: 'package2', id: 'asset-1' },
61
- { type: 'template', pkg: 'current-package', id: 'local-template-2' }
56
+ { type: "library", pkg: "package1", id: "someid" },
57
+ { type: "library", pkg: "@platforma-sdk/workflow-tengo", id: "assets" },
58
+ { type: "template", pkg: "package2", id: "template-1" },
59
+ { type: "software", pkg: "package2", id: "software-1" },
60
+ { type: "asset", pkg: "package2", id: "asset-1" },
61
+ { type: "template", pkg: "current-package", id: "local-template-2" },
62
62
  ]);
63
63
  });
64
64
 
65
- test('test tpl 3 parsing', () => {
66
- const logger = createLogger('error');
65
+ test("test tpl 3 parsing", () => {
66
+ const logger = createLogger("error");
67
67
 
68
- const tplSrc = parseSource(logger, 'dist', testLocalTpl3Src, testLocalTpl3Name, true);
69
- expect(tplSrc.compilerOptions[0].name).toEqual('hash_override');
68
+ const tplSrc = parseSource(logger, "dist", testLocalTpl3Src, testLocalTpl3Name, true);
69
+ expect(tplSrc.compilerOptions[0].name).toEqual("hash_override");
70
70
  });
71
71
 
72
- describe('import statements', () => {
73
- test('dot multiline works', () => {
74
- const logger = createLogger('error');
72
+ describe("import statements", () => {
73
+ test("dot multiline works", () => {
74
+ const logger = createLogger("error");
75
75
 
76
76
  const multilineImport = `
77
77
  importer := import("@platforma-sdk/workflow-tengo:assets")
78
78
  importer.
79
79
  importSoftware("my:software") // works well
80
- `
80
+ `;
81
81
 
82
- const parsed = parseSource(logger, 'dist', multilineImport, stubTplName, true);
82
+ const parsed = parseSource(logger, "dist", multilineImport, stubTplName, true);
83
83
 
84
- let softwareFound = false
84
+ let softwareFound = false;
85
85
  for (const dep of parsed.dependencies) {
86
- softwareFound = softwareFound || `${dep.type}:${dep.pkg}:${dep.id}` == 'software:my:software';
86
+ softwareFound = softwareFound || `${dep.type}:${dep.pkg}:${dep.id}` == "software:my:software";
87
87
  }
88
88
 
89
89
  expect(softwareFound).toBe(true);
90
- })
90
+ });
91
91
 
92
- test('bracket multiline is forbidden', () => {
92
+ test("bracket multiline is forbidden", () => {
93
93
  // This is
94
- const logger = createLogger('info');
94
+ const logger = createLogger("info");
95
95
 
96
96
  const multilineImport = `
97
97
  importer := import("@platforma-sdk/workflow-tengo:assets")
@@ -99,32 +99,36 @@ describe('import statements', () => {
99
99
  importSoftware(
100
100
  "my:software"
101
101
  ) // does not work for now
102
- `
102
+ `;
103
103
 
104
- expect(() => parseSource(logger, 'dist', multilineImport, stubTplName, true)).toThrow('in the same line with brackets');
105
- })
104
+ expect(() => parseSource(logger, "dist", multilineImport, stubTplName, true)).toThrow(
105
+ "in the same line with brackets",
106
+ );
107
+ });
106
108
 
107
- test('variable import is not allowed', () => {
108
- const logger = createLogger('info');
109
+ test("variable import is not allowed", () => {
110
+ const logger = createLogger("info");
109
111
 
110
112
  const importByVariable = `
111
113
  importer := import("@platforma-sdk/workflow-tengo:assets")
112
114
  softwareID := "my:software"
113
115
  importer.importSoftware(softwareID) // breaks because of variable reference. We require literals.
114
- `
116
+ `;
115
117
 
116
- expect(() => parseSource(logger, 'dist', importByVariable, stubTplName, true)).toThrow('variables are not allowed');
117
- })
118
+ expect(() => parseSource(logger, "dist", importByVariable, stubTplName, true)).toThrow(
119
+ "variables are not allowed",
120
+ );
121
+ });
118
122
 
119
- test('test tricky cases parsing', () => {
120
- const logger = createLogger('error');
123
+ test("test tricky cases parsing", () => {
124
+ const logger = createLogger("error");
121
125
 
122
- const trickyCasesSrc = parseSource(logger, 'dist', testTrickyCasesSrc, stubTplName, true);
126
+ const trickyCasesSrc = parseSource(logger, "dist", testTrickyCasesSrc, stubTplName, true);
123
127
  expect(trickyCasesSrc.src).toEqual(testTrickyCasesNormalized);
124
- })
125
- })
128
+ });
129
+ });
126
130
 
127
- describe('parseSingleSourceLine', () => {
131
+ describe("parseSingleSourceLine", () => {
128
132
  const testCases: {
129
133
  name: string;
130
134
  line: string;
@@ -133,21 +137,20 @@ describe('parseSingleSourceLine', () => {
133
137
  globalizeImports?: boolean;
134
138
  expected: lineProcessingResult;
135
139
  }[] = [
136
-
137
140
  {
138
- name: 'empty line',
139
- line: ' ',
141
+ name: "empty line",
142
+ line: " ",
140
143
  context: {
141
144
  isInCommentBlock: false,
142
145
  canDetectOptions: true,
143
146
  lineNo: 1,
144
147
  artifactImportREs: new Map(),
145
148
  importLikeREs: new Map(),
146
- multilineStatement: '',
149
+ multilineStatement: "",
147
150
  },
148
- localPackageName: 'test-package',
151
+ localPackageName: "test-package",
149
152
  expected: {
150
- line: ' ',
153
+ line: " ",
151
154
  artifacts: [],
152
155
  option: undefined,
153
156
  context: {
@@ -156,24 +159,24 @@ describe('parseSingleSourceLine', () => {
156
159
  lineNo: 1,
157
160
  artifactImportREs: new Map(),
158
161
  importLikeREs: new Map(),
159
- multilineStatement: '',
160
- }
161
- }
162
+ multilineStatement: "",
163
+ },
164
+ },
162
165
  },
163
166
  {
164
- name: 'single-line comment',
165
- line: '// This is a comment',
167
+ name: "single-line comment",
168
+ line: "// This is a comment",
166
169
  context: {
167
170
  isInCommentBlock: false,
168
171
  canDetectOptions: true,
169
172
  lineNo: 1,
170
173
  artifactImportREs: new Map(),
171
174
  importLikeREs: new Map(),
172
- multilineStatement: '',
175
+ multilineStatement: "",
173
176
  },
174
- localPackageName: 'test-package',
177
+ localPackageName: "test-package",
175
178
  expected: {
176
- line: '',
179
+ line: "",
177
180
  artifacts: [],
178
181
  option: undefined,
179
182
  context: {
@@ -182,24 +185,24 @@ describe('parseSingleSourceLine', () => {
182
185
  lineNo: 1,
183
186
  artifactImportREs: new Map(),
184
187
  importLikeREs: new Map(),
185
- multilineStatement: '',
186
- }
187
- }
188
+ multilineStatement: "",
189
+ },
190
+ },
188
191
  },
189
192
  {
190
- name: 'start of multi-line comment',
191
- line: '/* Start comment',
193
+ name: "start of multi-line comment",
194
+ line: "/* Start comment",
192
195
  context: {
193
196
  isInCommentBlock: false,
194
197
  canDetectOptions: true,
195
198
  lineNo: 1,
196
199
  artifactImportREs: new Map(),
197
200
  importLikeREs: new Map(),
198
- multilineStatement: '',
201
+ multilineStatement: "",
199
202
  },
200
- localPackageName: 'test-package',
203
+ localPackageName: "test-package",
201
204
  expected: {
202
- line: '',
205
+ line: "",
203
206
  artifacts: [],
204
207
  option: undefined,
205
208
  context: {
@@ -208,24 +211,24 @@ describe('parseSingleSourceLine', () => {
208
211
  lineNo: 1,
209
212
  artifactImportREs: new Map(),
210
213
  importLikeREs: new Map(),
211
- multilineStatement: '',
212
- }
213
- }
214
+ multilineStatement: "",
215
+ },
216
+ },
214
217
  },
215
218
  {
216
- name: 'line inside comment block',
217
- line: 'This is inside a comment block',
219
+ name: "line inside comment block",
220
+ line: "This is inside a comment block",
218
221
  context: {
219
222
  isInCommentBlock: true,
220
223
  canDetectOptions: true,
221
224
  lineNo: 1,
222
225
  artifactImportREs: new Map(),
223
226
  importLikeREs: new Map(),
224
- multilineStatement: '',
227
+ multilineStatement: "",
225
228
  },
226
- localPackageName: 'test-package',
229
+ localPackageName: "test-package",
227
230
  expected: {
228
- line: '',
231
+ line: "",
229
232
  artifacts: [],
230
233
  option: undefined,
231
234
  context: {
@@ -234,24 +237,24 @@ describe('parseSingleSourceLine', () => {
234
237
  lineNo: 1,
235
238
  artifactImportREs: new Map(),
236
239
  importLikeREs: new Map(),
237
- multilineStatement: '',
238
- }
239
- }
240
+ multilineStatement: "",
241
+ },
242
+ },
240
243
  },
241
244
  {
242
- name: 'end of multi-line comment',
243
- line: 'End of comment */',
245
+ name: "end of multi-line comment",
246
+ line: "End of comment */",
244
247
  context: {
245
248
  isInCommentBlock: true,
246
249
  canDetectOptions: true,
247
250
  lineNo: 1,
248
251
  artifactImportREs: new Map(),
249
252
  importLikeREs: new Map(),
250
- multilineStatement: '',
253
+ multilineStatement: "",
251
254
  },
252
- localPackageName: 'test-package',
255
+ localPackageName: "test-package",
253
256
  expected: {
254
- line: '',
257
+ line: "",
255
258
  artifacts: [],
256
259
  option: undefined,
257
260
  context: {
@@ -260,12 +263,12 @@ describe('parseSingleSourceLine', () => {
260
263
  lineNo: 1,
261
264
  artifactImportREs: new Map(),
262
265
  importLikeREs: new Map(),
263
- multilineStatement: '',
264
- }
265
- }
266
+ multilineStatement: "",
267
+ },
268
+ },
266
269
  },
267
270
  {
268
- name: 'comment-like lines are safe',
271
+ name: "comment-like lines are safe",
269
272
  line: 'cmd.saveFile("results/*")',
270
273
  context: {
271
274
  isInCommentBlock: false,
@@ -273,9 +276,9 @@ describe('parseSingleSourceLine', () => {
273
276
  lineNo: 100,
274
277
  artifactImportREs: new Map(),
275
278
  importLikeREs: new Map(),
276
- multilineStatement: '',
279
+ multilineStatement: "",
277
280
  },
278
- localPackageName: 'test-package',
281
+ localPackageName: "test-package",
279
282
  expected: {
280
283
  line: 'cmd.saveFile("results/*")',
281
284
  artifacts: [],
@@ -286,50 +289,50 @@ describe('parseSingleSourceLine', () => {
286
289
  lineNo: 100,
287
290
  artifactImportREs: new Map(),
288
291
  importLikeREs: new Map(),
289
- multilineStatement: '',
290
- }
291
- }
292
+ multilineStatement: "",
293
+ },
294
+ },
292
295
  },
293
296
  {
294
- name: 'compiler option',
295
- line: '//tengo:nocheck',
297
+ name: "compiler option",
298
+ line: "//tengo:nocheck",
296
299
  context: {
297
300
  isInCommentBlock: false,
298
301
  canDetectOptions: true,
299
302
  lineNo: 1,
300
303
  artifactImportREs: new Map(),
301
304
  importLikeREs: new Map(),
302
- multilineStatement: '',
305
+ multilineStatement: "",
303
306
  },
304
- localPackageName: 'test-package',
307
+ localPackageName: "test-package",
305
308
  expected: {
306
- line: '//tengo:nocheck',
309
+ line: "//tengo:nocheck",
307
310
  artifacts: [],
308
- option: { name: 'nocheck', args: [] },
311
+ option: { name: "nocheck", args: [] },
309
312
  context: {
310
313
  isInCommentBlock: false,
311
314
  canDetectOptions: true,
312
315
  lineNo: 1,
313
316
  artifactImportREs: new Map(),
314
317
  importLikeREs: new Map(),
315
- multilineStatement: '',
316
- }
317
- }
318
+ multilineStatement: "",
319
+ },
320
+ },
318
321
  },
319
322
  {
320
- name: 'regular code disables canDetectOptions',
321
- line: 'const x = 5',
323
+ name: "regular code disables canDetectOptions",
324
+ line: "const x = 5",
322
325
  context: {
323
326
  isInCommentBlock: false,
324
327
  canDetectOptions: true,
325
328
  lineNo: 1,
326
329
  artifactImportREs: new Map(),
327
330
  importLikeREs: new Map(),
328
- multilineStatement: '',
331
+ multilineStatement: "",
329
332
  },
330
- localPackageName: 'test-package',
333
+ localPackageName: "test-package",
331
334
  expected: {
332
- line: 'const x = 5',
335
+ line: "const x = 5",
333
336
  artifacts: [],
334
337
  option: undefined,
335
338
  context: {
@@ -338,24 +341,24 @@ describe('parseSingleSourceLine', () => {
338
341
  lineNo: 1,
339
342
  artifactImportREs: new Map(),
340
343
  importLikeREs: new Map(),
341
- multilineStatement: '',
342
- }
343
- }
344
+ multilineStatement: "",
345
+ },
346
+ },
344
347
  },
345
348
  {
346
- name: 'malformed compiler option warning',
347
- line: '// tengo:nocheck',
349
+ name: "malformed compiler option warning",
350
+ line: "// tengo:nocheck",
348
351
  context: {
349
352
  isInCommentBlock: false,
350
353
  canDetectOptions: true,
351
354
  lineNo: 1,
352
355
  artifactImportREs: new Map(),
353
356
  importLikeREs: new Map(),
354
- multilineStatement: '',
357
+ multilineStatement: "",
355
358
  },
356
- localPackageName: 'test-package',
359
+ localPackageName: "test-package",
357
360
  expected: {
358
- line: '// tengo:nocheck',
361
+ line: "// tengo:nocheck",
359
362
  artifacts: [],
360
363
  option: undefined,
361
364
  context: {
@@ -364,12 +367,12 @@ describe('parseSingleSourceLine', () => {
364
367
  lineNo: 1,
365
368
  artifactImportREs: new Map(),
366
369
  importLikeREs: new Map(),
367
- multilineStatement: '',
370
+ multilineStatement: "",
368
371
  },
369
372
  },
370
373
  },
371
374
  {
372
- name: 'regular import',
375
+ name: "regular import",
373
376
  line: 'fmt := import("fmt")',
374
377
  context: {
375
378
  isInCommentBlock: false,
@@ -377,9 +380,9 @@ describe('parseSingleSourceLine', () => {
377
380
  lineNo: 1,
378
381
  artifactImportREs: new Map(),
379
382
  importLikeREs: new Map(),
380
- multilineStatement: '',
383
+ multilineStatement: "",
381
384
  },
382
- localPackageName: 'test-package',
385
+ localPackageName: "test-package",
383
386
  expected: {
384
387
  line: 'fmt := import("fmt")',
385
388
  artifacts: [],
@@ -390,12 +393,12 @@ describe('parseSingleSourceLine', () => {
390
393
  lineNo: 1,
391
394
  artifactImportREs: new Map(),
392
395
  importLikeREs: new Map(),
393
- multilineStatement: '',
394
- }
395
- }
396
+ multilineStatement: "",
397
+ },
398
+ },
396
399
  },
397
400
  {
398
- name: 'library import',
401
+ name: "library import",
399
402
  line: 'myLib := import("test-package:myLib")',
400
403
  context: {
401
404
  isInCommentBlock: false,
@@ -403,12 +406,12 @@ describe('parseSingleSourceLine', () => {
403
406
  lineNo: 1,
404
407
  artifactImportREs: new Map(),
405
408
  importLikeREs: new Map(),
406
- multilineStatement: '',
409
+ multilineStatement: "",
407
410
  },
408
- localPackageName: 'test-package',
411
+ localPackageName: "test-package",
409
412
  expected: {
410
413
  line: 'myLib := import("test-package:myLib")',
411
- artifacts: [{ pkg: 'test-package', id: 'myLib', type: 'library' }],
414
+ artifacts: [{ pkg: "test-package", id: "myLib", type: "library" }],
412
415
  option: undefined,
413
416
  context: {
414
417
  isInCommentBlock: false,
@@ -416,12 +419,12 @@ describe('parseSingleSourceLine', () => {
416
419
  lineNo: 1,
417
420
  artifactImportREs: new Map(),
418
421
  importLikeREs: new Map(),
419
- multilineStatement: '',
420
- }
421
- }
422
+ multilineStatement: "",
423
+ },
424
+ },
422
425
  },
423
426
  {
424
- name: 'library import with globalize',
427
+ name: "library import with globalize",
425
428
  line: 'myLib := import("test-package:myLib")',
426
429
  context: {
427
430
  isInCommentBlock: false,
@@ -429,13 +432,13 @@ describe('parseSingleSourceLine', () => {
429
432
  lineNo: 1,
430
433
  artifactImportREs: new Map(),
431
434
  importLikeREs: new Map(),
432
- multilineStatement: '',
435
+ multilineStatement: "",
433
436
  },
434
- localPackageName: 'test-package',
437
+ localPackageName: "test-package",
435
438
  globalizeImports: true,
436
439
  expected: {
437
440
  line: 'myLib := import("test-package:myLib")',
438
- artifacts: [{ pkg: 'test-package', id: 'myLib', type: 'library' }],
441
+ artifacts: [{ pkg: "test-package", id: "myLib", type: "library" }],
439
442
  option: undefined,
440
443
  context: {
441
444
  isInCommentBlock: false,
@@ -443,12 +446,12 @@ describe('parseSingleSourceLine', () => {
443
446
  lineNo: 1,
444
447
  artifactImportREs: new Map(),
445
448
  importLikeREs: new Map(),
446
- multilineStatement: '',
447
- }
448
- }
449
+ multilineStatement: "",
450
+ },
451
+ },
449
452
  },
450
453
  {
451
- name: 'plapi import sets up template detection',
454
+ name: "plapi import sets up template detection",
452
455
  line: 'plapi := import("plapi")',
453
456
  context: {
454
457
  isInCommentBlock: false,
@@ -456,9 +459,9 @@ describe('parseSingleSourceLine', () => {
456
459
  lineNo: 1,
457
460
  artifactImportREs: new Map(),
458
461
  importLikeREs: new Map(),
459
- multilineStatement: '',
462
+ multilineStatement: "",
460
463
  },
461
- localPackageName: 'test-package',
464
+ localPackageName: "test-package",
462
465
  expected: {
463
466
  line: 'plapi := import("plapi")',
464
467
  artifacts: [],
@@ -469,17 +472,17 @@ describe('parseSingleSourceLine', () => {
469
472
  lineNo: 1,
470
473
  artifactImportREs: (() => {
471
474
  const r = new Map();
472
- r.set('template', newGetTemplateIdRE('plapi'));
473
- r.set('software', newGetSoftwareInfoRE('plapi'));
475
+ r.set("template", newGetTemplateIdRE("plapi"));
476
+ r.set("software", newGetSoftwareInfoRE("plapi"));
474
477
  return r;
475
478
  })(),
476
479
  importLikeREs: new Map(),
477
- multilineStatement: '',
478
- }
479
- }
480
+ multilineStatement: "",
481
+ },
482
+ },
480
483
  },
481
484
  {
482
- name: 'tengo-sdk:ll import sets up template detection',
485
+ name: "tengo-sdk:ll import sets up template detection",
483
486
  line: 'll := import("@milaboratory/tengo-sdk:ll")',
484
487
  context: {
485
488
  isInCommentBlock: false,
@@ -487,16 +490,18 @@ describe('parseSingleSourceLine', () => {
487
490
  lineNo: 1,
488
491
  artifactImportREs: new Map(),
489
492
  importLikeREs: new Map(),
490
- multilineStatement: '',
493
+ multilineStatement: "",
491
494
  },
492
- localPackageName: 'test-package',
495
+ localPackageName: "test-package",
493
496
  expected: {
494
497
  line: 'll := import("@milaboratory/tengo-sdk:ll")',
495
- artifacts: [{
496
- id: 'll',
497
- pkg: '@milaboratory/tengo-sdk',
498
- type: 'library',
499
- }],
498
+ artifacts: [
499
+ {
500
+ id: "ll",
501
+ pkg: "@milaboratory/tengo-sdk",
502
+ type: "library",
503
+ },
504
+ ],
500
505
  option: undefined,
501
506
  context: {
502
507
  isInCommentBlock: false,
@@ -504,28 +509,31 @@ describe('parseSingleSourceLine', () => {
504
509
  lineNo: 1,
505
510
  artifactImportREs: (() => {
506
511
  const r = new Map();
507
- r.set('template', newGetTemplateIdRE('ll'));
508
- r.set('software', newGetSoftwareInfoRE('ll'));
512
+ r.set("template", newGetTemplateIdRE("ll"));
513
+ r.set("software", newGetSoftwareInfoRE("ll"));
509
514
  return r;
510
515
  })(),
511
516
  importLikeREs: new Map(),
512
- multilineStatement: '',
513
- }
517
+ multilineStatement: "",
518
+ },
514
519
  },
515
- }
516
- ]
517
- test.each(testCases)('$name', ({ line, context, localPackageName, globalizeImports, expected }) => {
518
- const result = parseSingleSourceLine(
519
- new ConsoleLoggerAdapter(),
520
- line,
521
- context,
522
- localPackageName,
523
- globalizeImports,
524
- );
520
+ },
521
+ ];
522
+ test.each(testCases)(
523
+ "$name",
524
+ ({ line, context, localPackageName, globalizeImports, expected }) => {
525
+ const result = parseSingleSourceLine(
526
+ new ConsoleLoggerAdapter(),
527
+ line,
528
+ context,
529
+ localPackageName,
530
+ globalizeImports,
531
+ );
525
532
 
526
- expect(result.line).toBe(expected.line);
527
- expect(result.artifacts).toEqual(expected.artifacts);
528
- expect(result.option).toEqual(expected.option);
529
- expect(result.context).toMatchObject(context);
530
- });
533
+ expect(result.line).toBe(expected.line);
534
+ expect(result.artifacts).toEqual(expected.artifacts);
535
+ expect(result.option).toEqual(expected.option);
536
+ expect(result.context).toMatchObject(context);
537
+ },
538
+ );
531
539
  });