@haibun/core 1.40.9 → 1.41.2

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 (137) hide show
  1. package/build/currentVersion.d.ts +1 -1
  2. package/build/currentVersion.js +1 -2
  3. package/build/lib/contexts.d.ts +0 -13
  4. package/build/lib/contexts.d.ts.map +1 -1
  5. package/build/lib/contexts.js +0 -22
  6. package/build/lib/contexts.js.map +1 -1
  7. package/build/lib/defs.d.ts +4 -34
  8. package/build/lib/defs.d.ts.map +1 -1
  9. package/build/lib/defs.js +0 -1
  10. package/build/lib/defs.js.map +1 -1
  11. package/build/lib/domain-types.d.ts +13 -0
  12. package/build/lib/domain-types.d.ts.map +1 -0
  13. package/build/lib/domain-types.js +7 -0
  14. package/build/lib/domain-types.js.map +1 -0
  15. package/build/lib/namedVars.d.ts.map +1 -1
  16. package/build/lib/namedVars.js +10 -7
  17. package/build/lib/namedVars.js.map +1 -1
  18. package/build/lib/run-with-options.o.d.ts +2 -0
  19. package/build/lib/run-with-options.o.d.ts.map +1 -0
  20. package/build/lib/run-with-options.o.js +113 -0
  21. package/build/lib/run-with-options.o.js.map +1 -0
  22. package/build/lib/{run.d.ts → run.o.d.ts} +1 -10
  23. package/build/lib/run.o.d.ts.map +1 -0
  24. package/build/lib/{run.js → run.o.js} +7 -16
  25. package/build/lib/run.o.js.map +1 -0
  26. package/build/lib/test/TestStepsWithOptions.js +2 -2
  27. package/build/lib/test/TestStepsWithOptions.js.map +1 -1
  28. package/build/lib/test/lib.d.ts +1 -1
  29. package/build/lib/test/lib.d.ts.map +1 -1
  30. package/build/lib/test/lib.js +14 -14
  31. package/build/lib/test/lib.js.map +1 -1
  32. package/build/lib/util/index.d.ts +7 -8
  33. package/build/lib/util/index.d.ts.map +1 -1
  34. package/build/lib/util/index.js +33 -40
  35. package/build/lib/util/index.js.map +1 -1
  36. package/build/lib/util/workspace-lib.js +1 -1
  37. package/build/lib/util/workspace-lib.js.map +1 -1
  38. package/build/phases/Executor.d.ts.map +1 -1
  39. package/build/phases/Executor.js +4 -6
  40. package/build/phases/Executor.js.map +1 -1
  41. package/build/phases/Resolver.d.ts +1 -4
  42. package/build/phases/Resolver.d.ts.map +1 -1
  43. package/build/phases/Resolver.js +12 -43
  44. package/build/phases/Resolver.js.map +1 -1
  45. package/build/phases/collector.d.ts.map +1 -1
  46. package/build/phases/collector.js.map +1 -1
  47. package/build/runner.d.ts +11 -0
  48. package/build/runner.d.ts.map +1 -0
  49. package/build/runner.js +58 -0
  50. package/build/runner.js.map +1 -0
  51. package/build/steps/haibun.d.ts +0 -9
  52. package/build/steps/haibun.d.ts.map +1 -1
  53. package/build/steps/haibun.js +0 -15
  54. package/build/steps/haibun.js.map +1 -1
  55. package/build/steps/vars.d.ts +0 -4
  56. package/build/steps/vars.d.ts.map +1 -1
  57. package/build/steps/vars.js +6 -24
  58. package/build/steps/vars.js.map +1 -1
  59. package/package.json +1 -1
  60. package/build/lib/Logger.test.d.ts +0 -2
  61. package/build/lib/Logger.test.d.ts.map +0 -1
  62. package/build/lib/Logger.test.js +0 -52
  63. package/build/lib/Logger.test.js.map +0 -1
  64. package/build/lib/domain.d.ts +0 -12
  65. package/build/lib/domain.d.ts.map +0 -1
  66. package/build/lib/domain.js +0 -109
  67. package/build/lib/domain.js.map +0 -1
  68. package/build/lib/features.test.d.ts +0 -2
  69. package/build/lib/features.test.d.ts.map +0 -1
  70. package/build/lib/features.test.js +0 -127
  71. package/build/lib/features.test.js.map +0 -1
  72. package/build/lib/namedVars.test.d.ts +0 -2
  73. package/build/lib/namedVars.test.d.ts.map +0 -1
  74. package/build/lib/namedVars.test.js +0 -111
  75. package/build/lib/namedVars.test.js.map +0 -1
  76. package/build/lib/run-with-options.d.ts +0 -21
  77. package/build/lib/run-with-options.d.ts.map +0 -1
  78. package/build/lib/run-with-options.js +0 -80
  79. package/build/lib/run-with-options.js.map +0 -1
  80. package/build/lib/run.d.ts.map +0 -1
  81. package/build/lib/run.domains.test.d.ts +0 -2
  82. package/build/lib/run.domains.test.d.ts.map +0 -1
  83. package/build/lib/run.domains.test.js +0 -68
  84. package/build/lib/run.domains.test.js.map +0 -1
  85. package/build/lib/run.js.map +0 -1
  86. package/build/lib/run.test.d.ts +0 -2
  87. package/build/lib/run.test.d.ts.map +0 -1
  88. package/build/lib/run.test.js +0 -111
  89. package/build/lib/run.test.js.map +0 -1
  90. package/build/lib/test/TestStepsWithDomain.d.ts +0 -26
  91. package/build/lib/test/TestStepsWithDomain.d.ts.map +0 -1
  92. package/build/lib/test/TestStepsWithDomain.js +0 -14
  93. package/build/lib/test/TestStepsWithDomain.js.map +0 -1
  94. package/build/lib/test/lib.test.d.ts +0 -2
  95. package/build/lib/test/lib.test.d.ts.map +0 -1
  96. package/build/lib/test/lib.test.js +0 -9
  97. package/build/lib/test/lib.test.js.map +0 -1
  98. package/build/lib/util/gwtaRegex.d.ts +0 -2
  99. package/build/lib/util/gwtaRegex.d.ts.map +0 -1
  100. package/build/lib/util/gwtaRegex.js +0 -25
  101. package/build/lib/util/gwtaRegex.js.map +0 -1
  102. package/build/lib/util/util.test.d.ts +0 -2
  103. package/build/lib/util/util.test.d.ts.map +0 -1
  104. package/build/lib/util/util.test.js +0 -322
  105. package/build/lib/util/util.test.js.map +0 -1
  106. package/build/lib/util/workspace-lib.test.d.ts +0 -2
  107. package/build/lib/util/workspace-lib.test.d.ts.map +0 -1
  108. package/build/lib/util/workspace-lib.test.js +0 -20
  109. package/build/lib/util/workspace-lib.test.js.map +0 -1
  110. package/build/phases/Builder.d.ts +0 -17
  111. package/build/phases/Builder.d.ts.map +0 -1
  112. package/build/phases/Builder.js +0 -70
  113. package/build/phases/Builder.js.map +0 -1
  114. package/build/phases/Builder.test.d.ts +0 -2
  115. package/build/phases/Builder.test.d.ts.map +0 -1
  116. package/build/phases/Builder.test.js +0 -32
  117. package/build/phases/Builder.test.js.map +0 -1
  118. package/build/phases/Resolver.domains.test.d.ts +0 -2
  119. package/build/phases/Resolver.domains.test.d.ts.map +0 -1
  120. package/build/phases/Resolver.domains.test.js +0 -74
  121. package/build/phases/Resolver.domains.test.js.map +0 -1
  122. package/build/phases/Resolver.test.d.ts +0 -2
  123. package/build/phases/Resolver.test.d.ts.map +0 -1
  124. package/build/phases/Resolver.test.js +0 -90
  125. package/build/phases/Resolver.test.js.map +0 -1
  126. package/build/phases/collector.test.d.ts +0 -2
  127. package/build/phases/collector.test.d.ts.map +0 -1
  128. package/build/phases/collector.test.js +0 -91
  129. package/build/phases/collector.test.js.map +0 -1
  130. package/build/steps/haibun.test.d.ts +0 -2
  131. package/build/steps/haibun.test.d.ts.map +0 -1
  132. package/build/steps/haibun.test.js +0 -83
  133. package/build/steps/haibun.test.js.map +0 -1
  134. package/build/steps/vars.test.d.ts +0 -2
  135. package/build/steps/vars.test.d.ts.map +0 -1
  136. package/build/steps/vars.test.js +0 -37
  137. package/build/steps/vars.test.js.map +0 -1
@@ -1,322 +0,0 @@
1
- import { describe, it, test, expect } from 'vitest';
2
- import * as util from './index.js';
3
- import * as TFileSystemJs from './workspace-lib.js';
4
- import { HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS, getDefaultWorld, testWithDefaults, getCreateSteppers, TEST_BASE } from '../test/lib.js';
5
- import TestSteps from '../test/TestSteps.js';
6
- import TestStepsWithOptions from '../test/TestStepsWithOptions.js';
7
- import { withNameType } from '../features.js';
8
- import { AStepper, HANDLER_USAGE, OK } from '../defs.js';
9
- import { constructorName } from './index.js';
10
- describe('output', () => {
11
- it('OutputResult default', async () => {
12
- const features = [
13
- { path: '/features/test1.feature', content: `When I have a test\nThen fails` },
14
- { path: '/features/test2.feature', content: `When I have a test\nThen it passes` },
15
- ];
16
- const result = await testWithDefaults(features, [TestSteps]);
17
- expect(result.ok).toBe(false);
18
- const output = await TFileSystemJs.getOutputResult(undefined, result);
19
- expect(typeof output).toBe('object');
20
- expect(result.featureResults?.length).toBe(2);
21
- });
22
- });
23
- describe('isLowerCase', () => {
24
- it('is lower case', () => {
25
- expect(util.isLowerCase('a')).toBe(true);
26
- expect(util.isLowerCase('A')).toBe(false);
27
- expect(util.isLowerCase('0')).toBe(false);
28
- });
29
- });
30
- describe('findHandlers', () => {
31
- const TEST_HANDLER = 'testHandler';
32
- class TestStepper extends AStepper {
33
- // eslint-disable-next-line @typescript-eslint/ban-types
34
- steps;
35
- }
36
- it('finds handlers from classes that implement IHasHandler', () => {
37
- class TestStepperHandler extends TestStepper {
38
- handlers = { testHandler: { handle: () => undefined } };
39
- }
40
- const found = util.findHandlers([new TestStepperHandler()], TEST_HANDLER);
41
- expect(found.length).toBe(1);
42
- expect(constructorName(found[0].stepper)).toBe('TestStepperHandler');
43
- });
44
- it(`does not find handlers from classes that don't implement IHasHandler`, () => {
45
- const found = util.findHandlers([new TestStepper()], TEST_HANDLER);
46
- expect(found.length).toBe(0);
47
- });
48
- it(`finds exclusive handler`, () => {
49
- class ExclusiveTestStepperHandler extends TestStepper {
50
- handlers = { testHandler: { handle: () => undefined, usage: HANDLER_USAGE.EXCLUSIVE } };
51
- }
52
- const found = util.findHandlers([new TestStepper(), new ExclusiveTestStepperHandler()], TEST_HANDLER);
53
- expect(found.length).toBe(1);
54
- expect(constructorName(found[0].stepper)).toBe('ExclusiveTestStepperHandler');
55
- });
56
- it(`throws error for duplicate exclusives`, () => {
57
- class ExclusiveTestStepperHandler extends TestStepper {
58
- handlers = { testHandler: { handle: () => undefined, usage: HANDLER_USAGE.EXCLUSIVE } };
59
- }
60
- class ExclusiveTestStepperHandlerToo extends TestStepper {
61
- handlers = { testHandler: { handle: () => undefined, usage: HANDLER_USAGE.EXCLUSIVE } };
62
- }
63
- expect(() => util.findHandlers([new TestStepper(), new ExclusiveTestStepperHandler(), new ExclusiveTestStepperHandlerToo()], TEST_HANDLER)).toThrow();
64
- });
65
- it(`removes fallback`, () => {
66
- class TestStepperHandler extends TestStepper {
67
- handlers = { testHandler: { handle: () => undefined, } };
68
- }
69
- class FallbackTestStepperHandler extends TestStepper {
70
- handlers = { testHandler: { handle: () => undefined, usage: HANDLER_USAGE.FALLBACK } };
71
- }
72
- const found = util.findHandlers([new TestStepperHandler(), new FallbackTestStepperHandler()], TEST_HANDLER);
73
- expect(found.length).toBe(1);
74
- expect(constructorName(found[0].stepper)).toBe('TestStepperHandler');
75
- });
76
- it(`keeps one fallback from mix pak`, () => {
77
- class TestStepperHandler extends TestStepper {
78
- handlers = { testHandler: { handle: () => undefined, } };
79
- }
80
- class FallbackTestStepperHandler extends TestStepper {
81
- handlers = { testHandler: { handle: () => undefined, usage: HANDLER_USAGE.FALLBACK } };
82
- }
83
- class FallbackTestStepperHandlerToo extends TestStepper {
84
- handlers = { testHandler: { handle: () => undefined, usage: HANDLER_USAGE.FALLBACK } };
85
- }
86
- const found = util.findHandlers([new TestStepperHandler(), new FallbackTestStepperHandler(), new FallbackTestStepperHandlerToo()], TEST_HANDLER);
87
- expect(found.length).toBe(1);
88
- expect(constructorName(found[0].stepper)).toBe('TestStepperHandler');
89
- });
90
- it(`keeps first fallback from multiple fallbacks`, () => {
91
- class FallbackTestStepperHandler extends TestStepper {
92
- handlers = { testHandler: { handle: () => undefined, usage: HANDLER_USAGE.FALLBACK } };
93
- }
94
- class FallbackTestStepperHandlerToo extends TestStepper {
95
- handlers = { testHandler: { handle: () => undefined, usage: HANDLER_USAGE.FALLBACK } };
96
- }
97
- const found = util.findHandlers([new FallbackTestStepperHandler(), new FallbackTestStepperHandlerToo()], TEST_HANDLER);
98
- expect(found.length).toBe(1);
99
- expect(constructorName(found[0].stepper)).toBe('FallbackTestStepperHandler');
100
- });
101
- });
102
- describe('findStepperFromOptions', () => {
103
- const TestOptionsStepper = class TestOptionsStepper extends AStepper {
104
- options = {
105
- A: {
106
- desc: 'A exists',
107
- parse: (input) => util.stringOrError(input),
108
- },
109
- B: {
110
- desc: 'B exists',
111
- parse: (input) => util.stringOrError(input),
112
- },
113
- };
114
- steps = {
115
- test: {
116
- exact: 'When I have a stepper option',
117
- action: async () => OK,
118
- },
119
- };
120
- };
121
- it('finds from single option', async () => {
122
- const ts = new TestOptionsStepper();
123
- const steppers = await getCreateSteppers([], [TestOptionsStepper]);
124
- const options = { [util.getStepperOptionName(ts, 'A')]: 'TestOptionsStepper' };
125
- const s = util.findStepperFromOption(steppers, ts, options, 'A');
126
- expect(s).toBeDefined();
127
- });
128
- it('finds from last multiple options', async () => {
129
- const ts = new TestOptionsStepper();
130
- const steppers = await getCreateSteppers([], [TestOptionsStepper]);
131
- const options = { [util.getStepperOptionName(ts, 'B')]: 'TestOptionsStepper' };
132
- const s = util.findStepperFromOption(steppers, ts, options, 'A', 'B');
133
- expect(s).toBeDefined();
134
- });
135
- // FIXME vitest where is TestSteps2 coming from?
136
- it('finds from first multiple options', async () => {
137
- const ts = new TestOptionsStepper();
138
- const steppers = await getCreateSteppers([], [TestSteps, TestOptionsStepper]);
139
- const options = { [util.getStepperOptionName(ts, 'optionA')]: 'TestSteps', [util.getStepperOptionName(ts, 'B')]: 'TestOptionsStepper' };
140
- const s = util.findStepperFromOption(steppers, ts, options, 'optionA', 'optionB');
141
- expect(s).toBeDefined();
142
- expect(constructorName(s)).toBe('TestSteps');
143
- });
144
- it('throws for not found stepper', async () => {
145
- const ts = new TestOptionsStepper();
146
- const steppers = await getCreateSteppers([], [TestOptionsStepper]);
147
- const options = {};
148
- expect(() => util.findStepperFromOption(steppers, ts, options, 'S')).toThrow;
149
- });
150
- });
151
- describe('verifyRequiredOptions', () => {
152
- class TestOptionsStepperWithReauired extends AStepper {
153
- options = {
154
- A: {
155
- required: true,
156
- altSource: 'B',
157
- desc: 'A is an option',
158
- parse: (input) => util.stringOrError(input),
159
- },
160
- B: {
161
- desc: 'B is an altsource',
162
- parse: (input) => util.stringOrError(input),
163
- },
164
- };
165
- steps = {
166
- test: {
167
- exact: 'When I have a stepper option',
168
- action: async () => OK,
169
- },
170
- };
171
- }
172
- it('has option', async () => {
173
- const options = { [util.getStepperOptionName(new TestOptionsStepperWithReauired(), 'A')]: 'TestSteps' };
174
- await expect(util.verifyRequiredOptions([TestOptionsStepperWithReauired], options)).resolves.not.toThrow();
175
- });
176
- it('throws for missing option', async () => {
177
- await expect(util.verifyRequiredOptions([TestOptionsStepperWithReauired], {})).rejects.toThrow();
178
- });
179
- it('uses altSource', async () => {
180
- const options = { [util.getStepperOptionName(new TestOptionsStepperWithReauired(), 'B')]: 'TestSteps' };
181
- await expect(util.verifyRequiredOptions([TestOptionsStepperWithReauired], options)).resolves.not.toThrow();
182
- });
183
- });
184
- describe('getStepperOptions', () => {
185
- it('finds stepper options', async () => {
186
- const conc = util.getStepperOptionValue(HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS, 'true', [TestStepsWithOptions]);
187
- expect(conc).toBeDefined();
188
- });
189
- it.skip('fills extra', async () => {
190
- const { world } = getDefaultWorld(0);
191
- await util.verifyExtraOptions({ [HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS]: 'true' }, [TestStepsWithOptions]);
192
- console.log('🤑', JSON.stringify(world.options, null, 2));
193
- expect(world.options[HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS]).toEqual(42);
194
- });
195
- it('throws for unfilled extra', async () => {
196
- await expect(async () => util.verifyExtraOptions({ HAIBUN_NE: 'true' }, [])).rejects.toThrow();
197
- });
198
- });
199
- describe('getType', () => {
200
- it('finds a type', () => {
201
- expect(withNameType(TEST_BASE, 'file.type.feature', '').type).toBe('type');
202
- });
203
- it('finds no type', () => {
204
- expect(withNameType(TEST_BASE, 'file.feature', '').type).toBe('feature');
205
- });
206
- });
207
- describe('check module is class', () => {
208
- it('should pass a class', () => {
209
- expect(util.checkModuleIsClass(class a {
210
- }, 'a')).toEqual(undefined);
211
- });
212
- it('should fail a function', () => {
213
- // eslint-disable-next-line @typescript-eslint/no-empty-function
214
- expect(() => util.checkModuleIsClass(function a() { }, 'a')).toThrow(undefined);
215
- });
216
- });
217
- describe('asError', () => {
218
- it('should pass an error', () => {
219
- expect(util.asError(new Error('a'))).toEqual(new Error('a'));
220
- });
221
- it('should pass a string', () => {
222
- expect(util.asError('a')).toEqual(new Error('a'));
223
- });
224
- it('should pass a number', () => {
225
- expect(util.asError(1)).toEqual(new Error('1'));
226
- });
227
- it('should pass a boolean', () => {
228
- expect(util.asError(true)).toEqual(new Error('true'));
229
- });
230
- it('should pass an object', () => {
231
- expect(util.asError({ a: 1 })).toEqual(new Error({ a: 1 }));
232
- });
233
- it('should pass an array', () => {
234
- expect(util.asError([1, 2])).toEqual(new Error([1, 2]));
235
- });
236
- it('should pass null', () => {
237
- expect(util.asError(null)).toEqual(new Error('null'));
238
- });
239
- it('should pass undefined', () => {
240
- expect(util.asError(undefined)).toEqual(new Error());
241
- });
242
- });
243
- describe('depolite', () => {
244
- describe('conjunctions', () => {
245
- test('Given', () => {
246
- expect(util.dePolite('Given test')).toBe('test');
247
- });
248
- test('When', () => {
249
- expect(util.dePolite('When test')).toBe('test');
250
- });
251
- test('Then', () => {
252
- expect(util.dePolite('Then test')).toBe('test');
253
- });
254
- test('And', () => {
255
- expect(util.dePolite('And test')).toBe('test');
256
- });
257
- });
258
- describe('articles', () => {
259
- test('The', () => {
260
- expect(util.dePolite('The test')).toBe('test');
261
- });
262
- test('A', () => {
263
- expect(util.dePolite('A test')).toBe('test');
264
- });
265
- test('An', () => {
266
- expect(util.dePolite('An test')).toBe('test');
267
- });
268
- });
269
- describe('pronouns', () => {
270
- test('I', () => {
271
- expect(util.dePolite('I test')).toBe('test');
272
- });
273
- test(`I'm`, () => {
274
- expect(util.dePolite(`I'm test`)).toBe('test');
275
- });
276
- });
277
- describe('combinations', () => {
278
- test('Given I test', () => {
279
- expect(util.dePolite('Given I test')).toBe('test');
280
- });
281
- test(`Given I am test`, () => {
282
- expect(util.dePolite(`Given I am test`)).toBe('test');
283
- });
284
- test('Given am an test', () => {
285
- expect(util.dePolite('Given am an test')).toBe('test');
286
- });
287
- test('And I should see', () => {
288
- expect(util.dePolite('And I should see')).toBe('see');
289
- });
290
- });
291
- });
292
- describe('optionOrError', () => {
293
- it('rejects no option', async () => {
294
- expect(util.optionOrError('a', ['b']).error).toBeDefined();
295
- });
296
- it('rejects undefined option', async () => {
297
- expect(util.optionOrError(undefined, ['b']).error).toBeDefined();
298
- });
299
- it('returns options', async () => {
300
- expect(util.optionOrError('b', ['b'])).toEqual({ result: 'b' });
301
- });
302
- });
303
- describe('boolOrError', () => {
304
- it('returns true', async () => {
305
- expect(util.boolOrError('true')).toEqual({ result: true });
306
- });
307
- it('returns false', async () => {
308
- expect(util.boolOrError('false')).toEqual({ result: false });
309
- });
310
- it('returns error', async () => {
311
- expect(util.boolOrError('wtw').error).toBeDefined();
312
- });
313
- });
314
- describe('stringOrError', () => {
315
- it('returns value', async () => {
316
- expect(util.stringOrError('a')).toEqual({ result: 'a' });
317
- });
318
- it('returns error', async () => {
319
- expect(() => util.stringOrError(undefined).error).toBeDefined();
320
- });
321
- });
322
- //# sourceMappingURL=util.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.test.js","sourceRoot":"","sources":["../../../src/lib/util/util.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=workspace-lib.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-lib.test.d.ts","sourceRoot":"","sources":["../../../src/lib/util/workspace-lib.test.ts"],"names":[],"mappings":""}
@@ -1,20 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import * as TFileSystemJs from './workspace-lib.js';
3
- describe('workspace', () => {
4
- it('finds workspace root', async () => {
5
- expect(TFileSystemJs.workspaceRoot.endsWith('/haibun')).toBeTruthy();
6
- });
7
- });
8
- const rel = (pat) => pat.replace(`${TFileSystemJs.workspaceRoot}/`, '');
9
- describe('getModuleLocation', () => {
10
- it('finds step module location', async () => {
11
- expect(rel(TFileSystemJs.getModuleLocation('test'))).toBe('../../steps/test');
12
- });
13
- it('finds module location for scoped module', async () => {
14
- expect(rel(TFileSystemJs.getModuleLocation('./src/test.js'))).toBe('src/test.js');
15
- });
16
- it('finds module location for scoped module with tilde', async () => {
17
- expect(rel(TFileSystemJs.getModuleLocation('~@haibun/test'))).toBe('node_modules/@haibun/test');
18
- });
19
- });
20
- //# sourceMappingURL=workspace-lib.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace-lib.test.js","sourceRoot":"","sources":["../../../src/lib/util/workspace-lib.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AAEpD,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QACpC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACvE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,aAAa,GAAG,EAAE,EAAE,CAAC,CAAC;AAExE,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IACH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAClG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,17 +0,0 @@
1
- import { WorkspaceContext } from '../lib/contexts.js';
2
- import { AStepper, TFinalize, TVStep, TWorld } from '../lib/defs.js';
3
- import { Resolver } from './Resolver.js';
4
- export declare const BUILT = "_built";
5
- export declare const EVENT_AFTER = "_after";
6
- export default class Builder {
7
- world: TWorld;
8
- workspace: WorkspaceContext;
9
- steppers: AStepper[];
10
- finalizers: {
11
- [path: string]: TFinalize[];
12
- };
13
- constructor(steppers: AStepper[], world: TWorld, workspace?: WorkspaceContext);
14
- buildStep(vstep: TVStep, path: any, resolver: Resolver): Promise<void>;
15
- finalize(): Promise<void>;
16
- }
17
- //# sourceMappingURL=Builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/phases/Builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAgB,SAAS,EAA+C,MAAM,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGhI,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,eAAO,MAAM,KAAK,WAAW,CAAC;AAC9B,eAAO,MAAM,WAAW,WAAW,CAAC;AAEpC,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,UAAU,EAAE;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAAA;KAAE,CAAM;gBACrC,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,gBAAkD;IA2BjG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,KAAA,EAAE,QAAQ,EAAE,QAAQ;IA8BjD,QAAQ;CAOtB"}
@@ -1,70 +0,0 @@
1
- import { WorkspaceContext } from '../lib/contexts.js';
2
- import { getNamedToVars } from '../lib/namedVars.js';
3
- import { applyResShouldContinue, findStepper } from '../lib/util/index.js';
4
- export const BUILT = '_built';
5
- export const EVENT_AFTER = '_after';
6
- export default class Builder {
7
- world;
8
- workspace;
9
- steppers;
10
- finalizers = {};
11
- constructor(steppers, world, workspace = new WorkspaceContext(`builder`)) {
12
- this.steppers = steppers;
13
- this.world = world;
14
- this.workspace = workspace;
15
- }
16
- /*
17
- async build(features: TResolvedFeature[]) {
18
- this.world.shared.values._scored = [];
19
- for (const feature of features) {
20
- await this.buildSteps(feature);
21
- }
22
- for (const key of Object.keys(this.finalizers)) {
23
- for (const finalize of this.finalizers[key]) {
24
- finalize(this.workspace.get(key));
25
- }
26
- }
27
-
28
- return OK;
29
- }
30
-
31
- public async buildSteps(feature: TResolvedFeature) {
32
- for (const vstep of feature.vsteps) {
33
- await this.buildStep(vstep, feature);
34
- }
35
- }
36
- */
37
- async buildStep(vstep, path, resolver) {
38
- for (const action of vstep.actions) {
39
- if (!action.step.build) {
40
- continue;
41
- }
42
- if (!this.workspace.get(path)) {
43
- this.workspace.createPath(path);
44
- this.finalizers[path] = [];
45
- }
46
- const found = vstep.actions[0];
47
- const namedWithVars = getNamedToVars(found, this.world, vstep);
48
- const stepper = findStepper(this.steppers, found.stepperName);
49
- const res = await stepper.steps[found.actionName].build(namedWithVars, vstep, this.workspace, resolver, this.steppers);
50
- const shouldContinue = applyResShouldContinue(this.world, res, action);
51
- if (!shouldContinue || !res.ok) {
52
- throw Error(`${action.actionName}: ${res.message}`);
53
- }
54
- if (res.finalize) {
55
- this.finalizers[path].push(res.finalize);
56
- }
57
- if (res.workspace) {
58
- this.world.shared.values[BUILT] = { ...this.world.shared.values[BUILT], ...this.workspace };
59
- }
60
- }
61
- }
62
- async finalize() {
63
- for (const key of Object.keys(this.finalizers)) {
64
- for (const finalize of this.finalizers[key]) {
65
- await finalize(this.workspace.get(key));
66
- }
67
- }
68
- }
69
- }
70
- //# sourceMappingURL=Builder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/phases/Builder.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Builder.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Builder.test.d.ts","sourceRoot":"","sources":["../../src/phases/Builder.test.ts"],"names":[],"mappings":""}
@@ -1,32 +0,0 @@
1
- import { describe, test } from 'vitest';
2
- import { WorkspaceContext } from '../lib/contexts.js';
3
- import { OK } from '../lib/defs.js';
4
- import { getCreateSteppers, getDefaultWorld } from '../lib/test/lib.js';
5
- import Builder from './Builder.js';
6
- describe('Builder', () => {
7
- test('throws', async () => {
8
- const steppers = await getCreateSteppers([]);
9
- const throws = async () => {
10
- throw Error('fails');
11
- };
12
- const builder = new Builder(steppers, getDefaultWorld(0).world);
13
- // expect(async () => await builder.build([feature(throws)])).rejects.toThrow('fails');
14
- });
15
- test('passes', async () => {
16
- const steppers = await getCreateSteppers([]);
17
- const throws = async () => OK;
18
- const builder = new Builder(steppers, getDefaultWorld(0).world);
19
- // const res = await builder.build([feature(throws)]);
20
- // expect(res).toBe(OK);
21
- });
22
- test('finalizes', async () => {
23
- const steppers = await getCreateSteppers([]);
24
- const finalize = (workspace) => workspace.set('done', true);
25
- const finalizes = async () => ({ ...OK, finalize });
26
- const workspace = new WorkspaceContext(`test builder finalizes`);
27
- const builder = new Builder(steppers, getDefaultWorld(0).world, workspace);
28
- // await builder.build([feature(finalizes)]);
29
- // expect(workspace['passes.feature'].done).toBe(true);
30
- });
31
- });
32
- //# sourceMappingURL=Builder.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Builder.test.js","sourceRoot":"","sources":["../../src/phases/Builder.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAExC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,EAAE,EAAa,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACxB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;YACxB,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAChE,uFAAuF;IACzF,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACxB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAChE,sDAAsD;QACtD,wBAAwB;IAC1B,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAc,CAAC,SAA2B,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpD,MAAM,SAAS,GAAqB,IAAI,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC3E,6CAA6C;QAC7C,uDAAuD;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Resolver.domains.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Resolver.domains.test.d.ts","sourceRoot":"","sources":["../../src/phases/Resolver.domains.test.ts"],"names":[],"mappings":""}
@@ -1,74 +0,0 @@
1
- import { describe, test, expect } from 'vitest';
2
- describe('validate map steps', () => {
3
- test('placeholder', () => {
4
- expect(true).toBeTruthy();
5
- });
6
- /*
7
- const gwtaDomainType = 'for {what: mytype}';
8
- const gwtaDomainTypeMultiple = 'has {what: mytype} {also: mytype}';
9
- class TestStepper implements IStepper, IHasDomains {
10
- domains: any[] = [];
11
- locator = (name: string) => name;
12
- steps = {
13
- gwtaDomainType: {
14
- gwta: gwtaDomainType,
15
- action: async () => OK,
16
- },
17
- gwtaDomainTypeMultiple: {
18
- gwta: gwtaDomainTypeMultiple,
19
- action: async () => OK,
20
- },
21
- };
22
- }
23
-
24
- const backgrounds: TFeatures = [withNameType('r1/available.mytype.feature', 'typevalue'), withNameType('r1/something.mytype.feature', 'typevalue2')];
25
- const steppers: IStepper[] = [new TestStepper()];
26
- const getResolver = () =>
27
- new Resolver(steppers, '', {
28
- ...getDefaultWorld().world,
29
- domains: [{ name: 'mytype', fileType: 'mytype', is: 'string', module: steppers[], shared: new DomainContext('test resolver.domains'), validate: (content: string) => undefined }],
30
- });
31
-
32
- // FIXME these tests depend on checkRequiredType
33
- xdescribe('gwta interpolated with domain types', () => {
34
- test('throws for missing', async () => {
35
- const feature = 'for missing';
36
- const features = asExpandedFeatures([withNameType('l1', feature)]);
37
- expect(async () => await getResolver().resolveSteps(features)).rejects.toThrow(
38
- Resolver.getNoFileTypeInclusionError(Resolver.getPrelude('l1', gwtaDomainType, feature), 'mytype', 'missing')
39
- );
40
- });
41
- test('includes background domain type', async () => {
42
- const features = asExpandedFeatures([withNameType('l1', 'for available')]);
43
- const res = await getResolver().resolveSteps(features);
44
- expect(res.length).toBe(1);
45
- });
46
- test('includes multiple background domain type', async () => {
47
- const features = asExpandedFeatures([withNameType('l1', 'has available something')]);
48
- const res = await getResolver().resolveSteps(features);
49
- expect(res.length).toBe(1);
50
- });
51
- test('includes multiple background domain type with missing', async () => {
52
- const feature = 'has available missing';
53
- const features = asExpandedFeatures([withNameType('l1', feature)]);
54
- expect(async () => await getResolver().resolveSteps(features)).rejects.toThrow(
55
- Resolver.getNoFileTypeInclusionError(Resolver.getPrelude('l1', gwtaDomainTypeMultiple, feature), 'mytype', 'missing')
56
- );
57
- });
58
- test('includes background domain fails type validation', async () => {
59
- const feature = 'for available';
60
- const features = asExpandedFeatures([withNameType('l1', feature)]);
61
- const resolver = getResolver();
62
- (<TFileTypeDomain>resolver.world.domains[0]).validate = (content: string) => 'failed';
63
- expect(async () => resolver.resolveSteps(features)).rejects.toThrow(Resolver.getTypeValidationError(Resolver.getPrelude('l1', gwtaDomainType, feature), 'mytype', 'available', 'failed'));
64
- });
65
- test('includes background domain fails multiple backgrounds', async () => {
66
- const feature = 'for available';
67
- const features = asExpandedFeatures([withNameType('l1', feature)]);
68
- const resolver = getResolver();
69
- expect(async () => resolver.resolveSteps(features)).rejects.toThrow(Resolver.getMoreThanOneInclusionError(Resolver.getPrelude('l1', gwtaDomainType, feature), 'mytype', 'available'));
70
- });
71
- });
72
- */
73
- });
74
- //# sourceMappingURL=Resolver.domains.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Resolver.domains.test.js","sourceRoot":"","sources":["../../src/phases/Resolver.domains.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAQhD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkEA;AACF,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=Resolver.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Resolver.test.d.ts","sourceRoot":"","sources":["../../src/phases/Resolver.test.ts"],"names":[],"mappings":""}