@haibun/core 1.2.2 → 1.5.0

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 (115) hide show
  1. package/build/lib/Logger.d.ts.map +1 -1
  2. package/build/lib/Logger.js +5 -1
  3. package/build/lib/Logger.js.map +1 -1
  4. package/build/lib/Logger.test.js +1 -1
  5. package/build/lib/Logger.test.js.map +1 -1
  6. package/build/lib/defs.d.ts +47 -13
  7. package/build/lib/defs.d.ts.map +1 -1
  8. package/build/lib/defs.js +4 -2
  9. package/build/lib/defs.js.map +1 -1
  10. package/build/lib/domain.d.ts +4 -3
  11. package/build/lib/domain.d.ts.map +1 -1
  12. package/build/lib/domain.js +14 -10
  13. package/build/lib/domain.js.map +1 -1
  14. package/build/lib/features.js +5 -5
  15. package/build/lib/features.js.map +1 -1
  16. package/build/lib/features.test.js +20 -20
  17. package/build/lib/features.test.js.map +1 -1
  18. package/build/lib/namedVars.d.ts +3 -2
  19. package/build/lib/namedVars.d.ts.map +1 -1
  20. package/build/lib/namedVars.js +8 -8
  21. package/build/lib/namedVars.js.map +1 -1
  22. package/build/lib/namedVars.test.js +18 -18
  23. package/build/lib/namedVars.test.js.map +1 -1
  24. package/build/lib/run-with-options.d.ts +2 -2
  25. package/build/lib/run-with-options.d.ts.map +1 -1
  26. package/build/lib/run-with-options.js +13 -17
  27. package/build/lib/run-with-options.js.map +1 -1
  28. package/build/lib/run.d.ts +8 -13
  29. package/build/lib/run.d.ts.map +1 -1
  30. package/build/lib/run.domains.test.js +12 -12
  31. package/build/lib/run.domains.test.js.map +1 -1
  32. package/build/lib/run.js +33 -53
  33. package/build/lib/run.js.map +1 -1
  34. package/build/lib/run.test.js +34 -11
  35. package/build/lib/run.test.js.map +1 -1
  36. package/build/lib/test/TestSteps.d.ts +2 -2
  37. package/build/lib/test/TestSteps.d.ts.map +1 -1
  38. package/build/lib/test/TestSteps.js +6 -6
  39. package/build/lib/test/TestSteps.js.map +1 -1
  40. package/build/lib/test/TestStepsWithDomain.d.ts +2 -1
  41. package/build/lib/test/TestStepsWithDomain.d.ts.map +1 -1
  42. package/build/lib/test/TestStepsWithDomain.js +1 -1
  43. package/build/lib/test/TestStepsWithDomain.js.map +1 -1
  44. package/build/lib/test/TestStepsWithOptions.d.ts +2 -1
  45. package/build/lib/test/TestStepsWithOptions.d.ts.map +1 -1
  46. package/build/lib/test/TestStepsWithOptions.js +2 -2
  47. package/build/lib/test/TestStepsWithOptions.js.map +1 -1
  48. package/build/lib/test/lib.d.ts +20 -10
  49. package/build/lib/test/lib.d.ts.map +1 -1
  50. package/build/lib/test/lib.js +25 -15
  51. package/build/lib/test/lib.js.map +1 -1
  52. package/build/lib/trace.d.ts +1 -0
  53. package/build/lib/trace.d.ts.map +1 -0
  54. package/build/lib/trace.js +2 -0
  55. package/build/lib/trace.js.map +1 -0
  56. package/build/lib/{util.d.ts → util/index.d.ts} +30 -20
  57. package/build/lib/util/index.d.ts.map +1 -0
  58. package/build/lib/{util.js → util/index.js} +93 -88
  59. package/build/lib/util/index.js.map +1 -0
  60. package/build/lib/util/mfs.d.ts +11 -0
  61. package/build/lib/util/mfs.d.ts.map +1 -0
  62. package/build/lib/util/mfs.js +14 -0
  63. package/build/lib/util/mfs.js.map +1 -0
  64. package/build/lib/util/storage-fs.d.ts +11 -0
  65. package/build/lib/util/storage-fs.d.ts.map +1 -0
  66. package/build/lib/util/storage-fs.js +14 -0
  67. package/build/lib/util/storage-fs.js.map +1 -0
  68. package/build/lib/{util.test.d.ts → util/util.test.d.ts} +0 -0
  69. package/build/lib/{util.test.d.ts.map → util/util.test.d.ts.map} +1 -1
  70. package/build/lib/util/util.test.js +136 -0
  71. package/build/lib/util/util.test.js.map +1 -0
  72. package/build/phases/Builder.d.ts +3 -2
  73. package/build/phases/Builder.d.ts.map +1 -1
  74. package/build/phases/Builder.js +6 -6
  75. package/build/phases/Builder.js.map +1 -1
  76. package/build/phases/Builder.test.js +5 -24
  77. package/build/phases/Builder.test.js.map +1 -1
  78. package/build/phases/Executor.d.ts +13 -7
  79. package/build/phases/Executor.d.ts.map +1 -1
  80. package/build/phases/Executor.js +68 -36
  81. package/build/phases/Executor.js.map +1 -1
  82. package/build/phases/Resolver.d.ts.map +1 -1
  83. package/build/phases/Resolver.js +16 -12
  84. package/build/phases/Resolver.js.map +1 -1
  85. package/build/phases/Resolver.test.js +18 -14
  86. package/build/phases/Resolver.test.js.map +1 -1
  87. package/build/steps/conformance.d.ts +2 -1
  88. package/build/steps/conformance.d.ts.map +1 -1
  89. package/build/steps/conformance.js +1 -1
  90. package/build/steps/conformance.js.map +1 -1
  91. package/build/steps/credentials.d.ts +2 -2
  92. package/build/steps/credentials.d.ts.map +1 -1
  93. package/build/steps/credentials.js +5 -5
  94. package/build/steps/credentials.js.map +1 -1
  95. package/build/steps/haibun.d.ts +18 -2
  96. package/build/steps/haibun.d.ts.map +1 -1
  97. package/build/steps/haibun.js +30 -2
  98. package/build/steps/haibun.js.map +1 -1
  99. package/build/steps/haibun.test.js +2 -2
  100. package/build/steps/haibun.test.js.map +1 -1
  101. package/build/steps/vars.d.ts +2 -2
  102. package/build/steps/vars.d.ts.map +1 -1
  103. package/build/steps/vars.js +5 -5
  104. package/build/steps/vars.js.map +1 -1
  105. package/build/steps/vars.test.js +16 -16
  106. package/build/steps/vars.test.js.map +1 -1
  107. package/build/storage/storage-fs.d.ts +11 -0
  108. package/build/storage/storage-fs.d.ts.map +1 -0
  109. package/build/storage/storage-fs.js +16 -0
  110. package/build/storage/storage-fs.js.map +1 -0
  111. package/package.json +5 -1
  112. package/build/lib/util.d.ts.map +0 -1
  113. package/build/lib/util.js.map +0 -1
  114. package/build/lib/util.test.js +0 -84
  115. package/build/lib/util.test.js.map +0 -1
@@ -22,10 +22,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.boolOrError = exports.intOrError = exports.descTag = exports.getRunTag = exports.getCaptureDir = exports.writeTraceFile = exports.applyResShouldContinue = exports.getFromRuntime = exports.findStepper = exports.ensureDirectory = exports.getStepperOption = exports.getStepperOptionName = exports.getStepperOptions = exports.getPre = exports.applyExtraOptions = exports.sleep = exports.isLowerCase = exports.describeSteppers = exports.getActionable = exports.getOptionsOrDefault = exports.getDefaultOptions = exports.shouldProcess = exports.recurse = exports.debase = exports.getSteppers = exports.getStepper = exports.actionOK = exports.actionNotOK = exports.resultOutput = exports.use = void 0;
25
+ exports.stringOrError = exports.boolOrError = exports.intOrError = exports.descTag = exports.getRunTag = exports.applyResShouldContinue = exports.getFromRuntime = exports.findStepper = exports.findStepperFromOption = exports.getStepperOption = exports.getStepperOptionName = exports.verifyRequiredOptions = exports.getStepperOptionValue = exports.getPre = exports.setWorldStepperOptions = exports.verifyExtraOptions = exports.sleep = exports.isLowerCase = exports.describeSteppers = exports.getActionable = exports.getConfigFromBase = exports.getDefaultOptions = exports.shouldProcess = exports.recurse = exports.debase = exports.getSteppers = exports.createSteppers = exports.getStepper = exports.actionOK = exports.actionNotOK = exports.resultOutput = exports.use = void 0;
26
26
  const fs_1 = require("fs");
27
27
  const path_1 = __importDefault(require("path"));
28
- const features_1 = require("./features");
28
+ const features_1 = require("../features");
29
29
  // FIXME tired of wrestling with ts/import issues
30
30
  async function use(module) {
31
31
  try {
@@ -78,32 +78,42 @@ async function getStepper(s) {
78
78
  }
79
79
  }
80
80
  exports.getStepper = getStepper;
81
- async function getSteppers({ steppers = [], addSteppers = [] }) {
81
+ async function createSteppers(steppers) {
82
82
  const allSteppers = [];
83
- for (const s of steppers) {
84
- const S = await getStepper(s);
83
+ for (const S of steppers) {
85
84
  try {
86
85
  const stepper = new S();
87
86
  allSteppers.push(stepper);
88
87
  }
89
88
  catch (e) {
90
- console.error(`new ${S} from "${getModuleLocation(s)}" failed`, e, S);
89
+ console.error(`create ${S} failed`, e, S);
91
90
  throw e;
92
91
  }
93
92
  }
94
- for (const S of addSteppers) {
95
- const stepper = new S();
96
- allSteppers.push(stepper);
97
- }
98
93
  return allSteppers;
99
94
  }
95
+ exports.createSteppers = createSteppers;
96
+ async function getSteppers(stepperNames) {
97
+ const steppers = [];
98
+ for (const s of stepperNames) {
99
+ try {
100
+ const S = await getStepper(s);
101
+ steppers.push(S);
102
+ }
103
+ catch (e) {
104
+ console.error(`get ${s} from "${getModuleLocation(s)}" failed`, e);
105
+ throw e;
106
+ }
107
+ }
108
+ return steppers;
109
+ }
100
110
  exports.getSteppers = getSteppers;
101
111
  function getModuleLocation(name) {
102
112
  if (name.startsWith('~')) {
103
113
  return [process.cwd(), 'node_modules', name.substr(1)].join('/');
104
114
  }
105
115
  else if (name.match(/^[a-zA-Z].*/)) {
106
- return `../steps/${name}`;
116
+ return `../../steps/${name}`;
107
117
  }
108
118
  return path_1.default.resolve(process.cwd(), name);
109
119
  }
@@ -112,15 +122,15 @@ function debase(base, features) {
112
122
  }
113
123
  exports.debase = debase;
114
124
  function recurse(dir, type, featureFilter = undefined) {
115
- const files = fs_1.readdirSync(dir);
125
+ const files = (0, fs_1.readdirSync)(dir);
116
126
  let all = [];
117
127
  for (const file of files) {
118
128
  const here = `${dir}/${file}`;
119
- if (fs_1.statSync(here).isDirectory()) {
129
+ if ((0, fs_1.statSync)(here).isDirectory()) {
120
130
  all = all.concat(recurse(here, type, featureFilter));
121
131
  }
122
132
  else if (shouldProcess(here, type, featureFilter)) {
123
- all.push(features_1.withNameType(here, fs_1.readFileSync(here, 'utf-8')));
133
+ all.push((0, features_1.withNameType)(here, (0, fs_1.readFileSync)(here, 'utf-8')));
124
134
  }
125
135
  }
126
136
  return all;
@@ -140,26 +150,20 @@ function getDefaultOptions() {
140
150
  };
141
151
  }
142
152
  exports.getDefaultOptions = getDefaultOptions;
143
- function getOptionsOrDefault(base) {
144
- if (base) {
145
- const f = `${base}/config.json`;
146
- if (fs_1.existsSync(f)) {
147
- try {
148
- const specl = JSON.parse(fs_1.readFileSync(f, 'utf-8'));
149
- if (!specl.options) {
150
- specl.options = {};
151
- }
152
- return specl;
153
- }
154
- catch (e) {
155
- console.error('missing or not valid project config file.');
156
- process.exit(1);
157
- }
153
+ function getConfigFromBase(base) {
154
+ const f = `${base}/config.json`;
155
+ try {
156
+ const specl = JSON.parse((0, fs_1.readFileSync)(f, 'utf-8'));
157
+ if (!specl.options) {
158
+ specl.options = {};
158
159
  }
160
+ return specl;
161
+ }
162
+ catch (e) {
163
+ return null;
159
164
  }
160
- return getDefaultOptions();
161
165
  }
162
- exports.getOptionsOrDefault = getOptionsOrDefault;
166
+ exports.getConfigFromBase = getConfigFromBase;
163
167
  function getActionable(value) {
164
168
  return value.replace(/#.*/, '').trim();
165
169
  }
@@ -181,69 +185,83 @@ exports.isLowerCase = isLowerCase;
181
185
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
182
186
  exports.sleep = sleep;
183
187
  // has side effects
184
- function applyExtraOptions(extraOptions, steppers, world) {
185
- if (!extraOptions) {
186
- return;
187
- }
188
- Object.entries(extraOptions).map(([k, v]) => {
189
- const conc = getStepperOptions(k, v, steppers);
188
+ async function verifyExtraOptions(inExtraOptions, csteppers) {
189
+ const extraOptions = { ...inExtraOptions };
190
+ Object.entries(extraOptions)?.map(([k, v]) => {
191
+ const conc = getStepperOptionValue(k, v, csteppers);
190
192
  if (conc === undefined) {
191
193
  throw Error(`no option ${k}`);
192
194
  }
193
195
  delete extraOptions[k];
194
- world.options[k] = conc.result;
195
196
  });
196
197
  if (Object.keys(extraOptions).length > 0) {
197
198
  throw Error(`no options provided for ${extraOptions}`);
198
199
  }
200
+ }
201
+ exports.verifyExtraOptions = verifyExtraOptions;
202
+ async function setWorldStepperOptions(steppers, world) {
199
203
  for (const stepper of steppers) {
200
- stepper.setWorld && stepper.setWorld(world);
204
+ stepper.setWorld(world, steppers);
201
205
  }
202
206
  }
203
- exports.applyExtraOptions = applyExtraOptions;
207
+ exports.setWorldStepperOptions = setWorldStepperOptions;
204
208
  function getPre(stepper) {
205
209
  return ['HAIBUN', 'O', stepper.constructor.name.toUpperCase()].join('_') + '_';
206
210
  }
207
211
  exports.getPre = getPre;
208
- function getStepperOptions(key, value, steppers) {
212
+ function getStepperOptionValue(key, value, csteppers) {
213
+ for (const cstepper of csteppers) {
214
+ const pre = getPre(cstepper.prototype);
215
+ const name = key.replace(pre, '');
216
+ const ao = new cstepper();
217
+ if (key.startsWith(pre) && ao.options[name]) {
218
+ return ao.options[name].parse(value);
219
+ }
220
+ }
221
+ }
222
+ exports.getStepperOptionValue = getStepperOptionValue;
223
+ async function verifyRequiredOptions(steppers, options) {
224
+ let requiredMissing = [];
209
225
  for (const stepper of steppers) {
210
- const pre = getPre(stepper);
211
- const int = key.replace(pre, '');
212
- if (key.startsWith(pre) && stepper.options[int]) {
213
- return stepper.options[int].parse(value);
226
+ const ao = (stepper.prototype);
227
+ for (const option in ao.options) {
228
+ const n = getStepperOptionName(stepper, option);
229
+ if (ao.options[option].required && !options[n]) {
230
+ requiredMissing.push(n);
231
+ }
214
232
  }
215
233
  }
234
+ if (requiredMissing.length) {
235
+ throw Error(`missing required options ${requiredMissing}`);
236
+ }
216
237
  }
217
- exports.getStepperOptions = getStepperOptions;
238
+ exports.verifyRequiredOptions = verifyRequiredOptions;
218
239
  function getStepperOptionName(stepper, name) {
240
+ if (stepper.prototype) {
241
+ return getPre(stepper.prototype) + name;
242
+ }
219
243
  return getPre(stepper) + name;
220
244
  }
221
245
  exports.getStepperOptionName = getStepperOptionName;
222
- function getStepperOption(stepper, name, options) {
246
+ function getStepperOption(stepper, name, extraOptions) {
223
247
  const key = getStepperOptionName(stepper, name);
224
- return options[key];
248
+ return extraOptions[key];
225
249
  }
226
250
  exports.getStepperOption = getStepperOption;
227
- function ensureDirectory(base, folder) {
228
- try {
229
- if (!fs_1.existsSync(base)) {
230
- fs_1.mkdirSync(base);
231
- console.info(`created ${base}`);
232
- }
233
- if (!fs_1.existsSync(`${base}/${folder}`)) {
234
- fs_1.mkdirSync(`${base}/${folder}`);
235
- console.info(`created ${base}/${folder}`);
236
- }
237
- }
238
- catch (e) {
239
- console.error(`could not create ${base}/${folder}`, e);
240
- throw e;
251
+ function findStepperFromOption(steppers, stepper, extraOptions, ...name) {
252
+ const val = name.reduce((v, n) => v || getStepperOption(stepper, n, extraOptions), undefined);
253
+ if (!val) {
254
+ throw Error(`Cannot find ${name} from ${stepper.constructor.name} options`);
241
255
  }
256
+ return findStepper(steppers, val);
242
257
  }
243
- exports.ensureDirectory = ensureDirectory;
244
- // FIXME
258
+ exports.findStepperFromOption = findStepperFromOption;
245
259
  function findStepper(steppers, name) {
246
- return steppers.find((s) => s.constructor.name === name);
260
+ const stepper = steppers.find((s) => s.constructor.name === name);
261
+ if (!stepper) {
262
+ throw Error(`Cannot find ${name} from ${JSON.stringify(steppers.map(s => s.constructor.name), null, 2)}`);
263
+ }
264
+ return stepper;
247
265
  }
248
266
  exports.findStepper = findStepper;
249
267
  function getFromRuntime(runtime, name) {
@@ -263,28 +281,7 @@ function applyResShouldContinue(world, res, vstep) {
263
281
  return false;
264
282
  }
265
283
  exports.applyResShouldContinue = applyResShouldContinue;
266
- function writeTraceFile(world, result) {
267
- fs_1.writeFileSync(getCaptureDir(world, 'trace', 'trace.json'), JSON.stringify(result, null, 2));
268
- }
269
- exports.writeTraceFile = writeTraceFile;
270
- function getCaptureDir(world, app, fn) {
271
- const capture = world.options.CAPTURE_DIR || 'capture';
272
- const dir = [process.cwd(), capture, world.tag.sequence, app].join('/');
273
- if (!fs_1.existsSync(dir)) {
274
- try {
275
- fs_1.mkdirSync(dir, { recursive: true });
276
- }
277
- catch (e) {
278
- throw Error(`creating ${dir}: ${e}`);
279
- }
280
- }
281
- if (fn) {
282
- return `${dir}/${fn}`;
283
- }
284
- return dir;
285
- }
286
- exports.getCaptureDir = getCaptureDir;
287
- const getRunTag = (sequence, loop, member, params, trace) => ({ sequence, loop, member, params, trace });
284
+ const getRunTag = (sequence, loop, featureNum, member, params = {}, trace = false) => ({ sequence, loop, member, featureNum, params, trace });
288
285
  exports.getRunTag = getRunTag;
289
286
  const descTag = (tag) => ` @${tag.sequence} (${tag.loop}x${tag.member})`;
290
287
  exports.descTag = descTag;
@@ -303,4 +300,12 @@ const boolOrError = (val) => {
303
300
  return { result: val === 'true' };
304
301
  };
305
302
  exports.boolOrError = boolOrError;
306
- //# sourceMappingURL=util.js.map
303
+ const stringOrError = (val) => {
304
+ if (val === undefined || val === null) {
305
+ return { error: `${val} is not defined` };
306
+ }
307
+ ;
308
+ return { result: val };
309
+ };
310
+ exports.stringOrError = stringOrError;
311
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/util/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="node" />
2
+ import { readFileSync as freadFileSync, existsSync as fexistsSync, writeFileSync as fwriteFileSync, readdirSync as freaddirSync } from 'fs';
3
+ export default class FFS {
4
+ constructor();
5
+ readFileSync: typeof freadFileSync;
6
+ existsSync: typeof fexistsSync;
7
+ writeFileSync: typeof fwriteFileSync;
8
+ statSync: import("fs").StatSyncFn<import("fs").PathLike>;
9
+ readdirSync: typeof freaddirSync;
10
+ }
11
+ //# sourceMappingURL=mfs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mfs.d.ts","sourceRoot":"","sources":["../../../src/lib/util/mfs.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,UAAU,IAAI,WAAW,EAAE,aAAa,IAAI,cAAc,EAAyB,WAAW,IAAI,YAAY,EAAE,MAAM,IAAI,CAAC;AAEnK,MAAM,CAAC,OAAO,OAAO,GAAG;;IAGpB,YAAY,uBAAiB;IAC7B,UAAU,qBAAe;IACzB,aAAa,wBAAkB;IAC/B,QAAQ,iDAAa;IACrB,WAAW,sBAAgB;CAC9B"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs_1 = require("fs");
4
+ class FFS {
5
+ constructor() {
6
+ this.readFileSync = fs_1.readFileSync;
7
+ this.existsSync = fs_1.existsSync;
8
+ this.writeFileSync = fs_1.writeFileSync;
9
+ this.statSync = fs_1.statSync;
10
+ this.readdirSync = fs_1.readdirSync;
11
+ }
12
+ }
13
+ exports.default = FFS;
14
+ //# sourceMappingURL=mfs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mfs.js","sourceRoot":"","sources":["../../../src/lib/util/mfs.ts"],"names":[],"mappings":";;AAAA,2BAAmK;AAEnK,MAAqB,GAAG;IACpB;QAEA,iBAAY,GAAG,iBAAa,CAAC;QAC7B,eAAU,GAAG,eAAW,CAAC;QACzB,kBAAa,GAAG,kBAAc,CAAC;QAC/B,aAAQ,GAAG,aAAS,CAAC;QACrB,gBAAW,GAAG,gBAAY,CAAC;IAL3B,CAAC;CAMJ;AARD,sBAQC"}
@@ -0,0 +1,11 @@
1
+ /// <reference types="node" />
2
+ import { readFileSync as freadFileSync, existsSync as fexistsSync, writeFileSync as fwriteFileSync, readdirSync as freaddirSync } from 'fs';
3
+ export default class StorageFS {
4
+ constructor();
5
+ readFileSync: typeof freadFileSync;
6
+ existsSync: typeof fexistsSync;
7
+ writeFileSync: typeof fwriteFileSync;
8
+ statSync: import("fs").StatSyncFn<import("fs").PathLike>;
9
+ readdirSync: typeof freaddirSync;
10
+ }
11
+ //# sourceMappingURL=storage-fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-fs.d.ts","sourceRoot":"","sources":["../../../src/lib/util/storage-fs.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,IAAI,aAAa,EAAE,UAAU,IAAI,WAAW,EAAE,aAAa,IAAI,cAAc,EAAyB,WAAW,IAAI,YAAY,EAAE,MAAM,IAAI,CAAC;AAEnK,MAAM,CAAC,OAAO,OAAO,SAAS;;IAG1B,YAAY,uBAAiB;IAC7B,UAAU,qBAAe;IACzB,aAAa,wBAAkB;IAC/B,QAAQ,iDAAa;IACrB,WAAW,sBAAgB;CAC9B"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs_1 = require("fs");
4
+ class StorageFS {
5
+ constructor() {
6
+ this.readFileSync = fs_1.readFileSync;
7
+ this.existsSync = fs_1.existsSync;
8
+ this.writeFileSync = fs_1.writeFileSync;
9
+ this.statSync = fs_1.statSync;
10
+ this.readdirSync = fs_1.readdirSync;
11
+ }
12
+ }
13
+ exports.default = StorageFS;
14
+ //# sourceMappingURL=storage-fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-fs.js","sourceRoot":"","sources":["../../../src/lib/util/storage-fs.ts"],"names":[],"mappings":";;AAAA,2BAAmK;AAEnK,MAAqB,SAAS;IAC1B;QAEA,iBAAY,GAAG,iBAAa,CAAC;QAC7B,eAAU,GAAG,eAAW,CAAC;QACzB,kBAAa,GAAG,kBAAc,CAAC;QAC/B,aAAQ,GAAG,aAAS,CAAC;QACrB,gBAAW,GAAG,gBAAY,CAAC;IAL3B,CAAC;CAMJ;AARD,4BAQC"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.test.d.ts","sourceRoot":"","sources":["../../src/lib/util.test.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"util.test.d.ts","sourceRoot":"","sources":["../../../src/lib/util/util.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const util = __importStar(require("."));
26
+ const lib_1 = require("../test/lib");
27
+ const TestSteps_1 = __importDefault(require("../test/TestSteps"));
28
+ const TestStepsWithOptions_1 = __importDefault(require("../test/TestStepsWithOptions"));
29
+ const features_1 = require("../features");
30
+ const defs_1 = require("../defs");
31
+ const _1 = require(".");
32
+ describe('output', () => {
33
+ it('resultOutput default', async () => {
34
+ const features = [{ path: '/features/test.feature', content: `When I have a test\nThen the test can fail` }, { path: '/features/test.feature', content: `When I have a test\nThen the test should pass` }];
35
+ const result = await (0, lib_1.testWithDefaults)(features, [TestSteps_1.default]);
36
+ expect(result.ok).toBe(false);
37
+ const output = await util.resultOutput(undefined, result);
38
+ expect(typeof output).toBe('object');
39
+ expect(result.results?.length).toBe(2);
40
+ });
41
+ });
42
+ describe('isLowerCase', () => {
43
+ expect(util.isLowerCase('a')).toBe(true);
44
+ expect(util.isLowerCase('A')).toBe(false);
45
+ expect(util.isLowerCase('0')).toBe(false);
46
+ });
47
+ describe('findStepperFromOptions', () => {
48
+ const TS = class TS extends defs_1.AStepper {
49
+ constructor() {
50
+ super(...arguments);
51
+ this.options = {
52
+ A: {
53
+ desc: 'exists',
54
+ parse: (input) => (0, _1.stringOrError)(input)
55
+ },
56
+ B: {
57
+ desc: 'exists',
58
+ parse: (input) => (0, _1.stringOrError)(input)
59
+ },
60
+ };
61
+ this.steps = {
62
+ test: {
63
+ exact: 'When I have a stepper option',
64
+ action: async () => defs_1.OK
65
+ },
66
+ };
67
+ }
68
+ };
69
+ it('finds from single option', async () => {
70
+ const ts = new TS();
71
+ const steppers = await (0, lib_1.getCreateSteppers)([], [TS]);
72
+ const options = { [util.getStepperOptionName(ts, 'A')]: 'TS' };
73
+ const s = util.findStepperFromOption(steppers, ts, options, 'A');
74
+ expect(s).toBeDefined();
75
+ });
76
+ it('finds from last multiple options', async () => {
77
+ const ts = new TS();
78
+ const steppers = await (0, lib_1.getCreateSteppers)([], [TS]);
79
+ const options = { [util.getStepperOptionName(ts, 'B')]: 'TS' };
80
+ const s = util.findStepperFromOption(steppers, ts, options, 'A', 'B');
81
+ expect(s).toBeDefined();
82
+ });
83
+ it('finds from first multiple options', async () => {
84
+ const ts = new TS();
85
+ const steppers = await (0, lib_1.getCreateSteppers)([], [TS, TestSteps_1.default]);
86
+ const options = { [util.getStepperOptionName(ts, 'A')]: 'TestSteps', [util.getStepperOptionName(ts, 'B')]: 'TS' };
87
+ const s = util.findStepperFromOption(steppers, ts, options, 'A', 'B');
88
+ expect(s).toBeDefined();
89
+ expect(s.constructor.name).toBe('TestSteps');
90
+ });
91
+ it('throws for not found stepper', async () => {
92
+ const ts = new TS();
93
+ const steppers = await (0, lib_1.getCreateSteppers)([], [TS]);
94
+ const options = {};
95
+ expect(() => util.findStepperFromOption(steppers, ts, options, 'S')).toThrow;
96
+ ;
97
+ });
98
+ });
99
+ describe.only('getStepperOptions', () => {
100
+ it.only('finds stepper options', async () => {
101
+ const conc = util.getStepperOptionValue(lib_1.HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS, 'true', [TestStepsWithOptions_1.default]);
102
+ expect(conc).toBeDefined();
103
+ });
104
+ it('fills extra', async () => {
105
+ const { world } = (0, lib_1.getDefaultWorld)(0);
106
+ util.verifyExtraOptions({ [lib_1.HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS]: 'true' }, [TestStepsWithOptions_1.default]);
107
+ expect(world.options[lib_1.HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS]).toEqual(42);
108
+ });
109
+ it('throws for unfilled extra', async () => {
110
+ const { world } = (0, lib_1.getDefaultWorld)(0);
111
+ await expect(async () => util.verifyExtraOptions({ HAIBUN_NE: 'true' }, [])).rejects.toThrow();
112
+ });
113
+ });
114
+ describe('getType', () => {
115
+ it('finds a type', () => {
116
+ expect((0, features_1.withNameType)('file.type.feature', '').type).toBe('type');
117
+ });
118
+ it('finds no type', () => {
119
+ expect((0, features_1.withNameType)('file.feature', '').type).toBe('feature');
120
+ });
121
+ });
122
+ describe('shouldProcess', () => {
123
+ it('should process no type & filter', () => {
124
+ expect(util.shouldProcess('hi.feature', undefined, undefined)).toBe(true);
125
+ });
126
+ it('should process matching filter', () => {
127
+ expect(util.shouldProcess('hi.feature', undefined, ['hi'])).toBe(true);
128
+ });
129
+ it('should not process wrong type', () => {
130
+ expect(util.shouldProcess('hi.feature', 'wrong', undefined)).toBe(false);
131
+ });
132
+ it('should not process wrong filter', () => {
133
+ expect(util.shouldProcess('hi.feature', undefined, ['wrong'])).toBe(false);
134
+ });
135
+ });
136
+ //# sourceMappingURL=util.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.test.js","sourceRoot":"","sources":["../../../src/lib/util/util.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { WorkspaceContext } from '../lib/contexts';
2
- import { TResolvedFeature, TWorld } from '../lib/defs';
2
+ import { AStepper, TResolvedFeature, TWorld } from '../lib/defs';
3
3
  export default class Builder {
4
4
  world: any;
5
5
  workspace: WorkspaceContext;
6
- constructor(world: TWorld, workspace?: WorkspaceContext);
6
+ steppers: AStepper[];
7
+ constructor(steppers: AStepper[], world: TWorld, workspace?: WorkspaceContext);
7
8
  build(features: TResolvedFeature[]): Promise<import("../lib/defs").TOKActionResult>;
8
9
  }
9
10
  //# sourceMappingURL=Builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/phases/Builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAA4E,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAIjI,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,KAAK,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,gBAAgB,CAAC;gBAChB,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,gBAAkD;IAIlF,KAAK,CAAC,QAAQ,EAAE,gBAAgB,EAAE;CAiCzC"}
1
+ {"version":3,"file":"Builder.d.ts","sourceRoot":"","sources":["../../src/phases/Builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAA4E,gBAAgB,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAI3I,MAAM,CAAC,OAAO,OAAO,OAAO;IAC1B,KAAK,EAAE,GAAG,CAAC;IACX,SAAS,EAAE,gBAAgB,CAAC;IAC5B,QAAQ,EAAE,QAAQ,EAAE,CAAC;gBACT,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,gBAAkD;IAKxG,KAAK,CAAC,QAAQ,EAAE,gBAAgB,EAAE;CAgCzC"}
@@ -2,10 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const contexts_1 = require("../lib/contexts");
4
4
  const defs_1 = require("../lib/defs");
5
- const namedVars_1 = require("../lib/namedVars");
6
5
  const util_1 = require("../lib/util");
6
+ const Executor_1 = require("./Executor");
7
7
  class Builder {
8
- constructor(world, workspace = new contexts_1.WorkspaceContext(`builder`)) {
8
+ constructor(steppers, world, workspace = new contexts_1.WorkspaceContext(`builder`)) {
9
+ this.steppers = steppers;
9
10
  this.world = world;
10
11
  this.workspace = workspace;
11
12
  }
@@ -20,11 +21,10 @@ class Builder {
20
21
  this.workspace.createPath(feature.path);
21
22
  finalizers[feature.path] = [];
22
23
  }
23
- const namedWithVars = namedVars_1.getNamedToVars(action, this.world);
24
- const res = await action.step.build(namedWithVars, vstep, this.workspace.get(feature.path));
25
- const shouldContinue = util_1.applyResShouldContinue(this.world, res, action);
24
+ const res = await Executor_1.Executor.action(this.steppers, vstep, vstep.actions[0], this.world);
25
+ const shouldContinue = (0, util_1.applyResShouldContinue)(this.world, res, action);
26
26
  if (!shouldContinue) {
27
- throw Error(`${action.name}: ${res.message}`);
27
+ throw Error(`${action.actionName}: ${res.message}`);
28
28
  }
29
29
  if (res.finalize) {
30
30
  finalizers[feature.path].push(res.finalize);
@@ -1 +1 @@
1
- {"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/phases/Builder.ts"],"names":[],"mappings":";;AAAA,8CAAmD;AACnD,sCAAiI;AACjI,gDAAkD;AAClD,sCAAqD;AAErD,MAAqB,OAAO;IAG1B,YAAY,KAAa,EAAE,YAA8B,IAAI,2BAAgB,CAAC,SAAS,CAAC;QACtF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,QAA4B;QACtC,MAAM,UAAU,GAAoC,EAAE,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;oBAClC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;wBACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;4BACrC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BACxC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;yBAC/B;wBACD,MAAM,aAAa,GAAG,0BAAc,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;wBACzD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,aAAc,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;wBAE7F,MAAM,cAAc,GAAG,6BAAsB,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;wBACvE,IAAI,CAAC,cAAc,EAAE;4BACnB,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,KAA8B,GAAI,CAAC,OAAO,EAAE,CAAC,CAAC;yBACzE;wBACD,IAAyC,GAAI,CAAC,QAAQ,EAAE;4BACtD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAsC,GAAI,CAAC,QAAS,CAAC,CAAC;yBACpF;qBACF;iBACF;aACF;SACF;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACzC,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE;gBACtC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aACnC;SACF;QAED,OAAO,SAAE,CAAC;IACZ,CAAC;CACF;AAxCD,0BAwCC"}
1
+ {"version":3,"file":"Builder.js","sourceRoot":"","sources":["../../src/phases/Builder.ts"],"names":[],"mappings":";;AAAA,8CAAmD;AACnD,sCAA2I;AAC3I,sCAAqD;AACrD,yCAAuC;AAEvC,MAAqB,OAAO;IAI1B,YAAY,QAAoB,EAAE,KAAa,EAAE,YAA8B,IAAI,2BAAgB,CAAC,SAAS,CAAC;QAC5G,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,QAA4B;QACtC,MAAM,UAAU,GAAoC,EAAE,CAAC;QACvD,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;YAC9B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;oBAClC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;wBACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;4BACrC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BACxC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;yBAC/B;wBACD,MAAM,GAAG,GAAG,MAAM,mBAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;wBAEtF,MAAM,cAAc,GAAG,IAAA,6BAAsB,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;wBACvE,IAAI,CAAC,cAAc,EAAE;4BACnB,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,UAAU,KAA8B,GAAI,CAAC,OAAO,EAAE,CAAC,CAAC;yBAC/E;wBACD,IAAyC,GAAI,CAAC,QAAQ,EAAE;4BACtD,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAsC,GAAI,CAAC,QAAS,CAAC,CAAC;yBACpF;qBACF;iBACF;aACF;SACF;QACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACzC,KAAK,MAAM,QAAQ,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE;gBACtC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aACnC;SACF;QAED,OAAO,SAAE,CAAC;IACZ,CAAC;CACF;AAzCD,0BAyCC"}
@@ -7,37 +7,18 @@ const contexts_1 = require("../lib/contexts");
7
7
  const defs_1 = require("../lib/defs");
8
8
  const lib_1 = require("../lib/test/lib");
9
9
  const Builder_1 = __importDefault(require("./Builder"));
10
- const feature = (result) => ({
11
- path: 'passes.feature',
12
- feature: 'test',
13
- vsteps: [
14
- {
15
- in: 'test',
16
- seq: 0,
17
- actions: [
18
- {
19
- name: 'test',
20
- step: {
21
- exact: 'test',
22
- action: async () => defs_1.OK,
23
- build: result,
24
- },
25
- },
26
- ],
27
- },
28
- ],
29
- });
30
- describe('Builder', () => {
10
+ describe('Builder', async () => {
11
+ const steppers = await (0, lib_1.getCreateSteppers)([]);
31
12
  test('throws', () => {
32
13
  const throws = async () => {
33
14
  throw Error('fails');
34
15
  };
35
- const builder = new Builder_1.default(lib_1.getDefaultWorld(0).world);
16
+ const builder = new Builder_1.default(steppers, (0, lib_1.getDefaultWorld)(0).world);
36
17
  // expect(async () => await builder.build([feature(throws)])).rejects.toThrow('fails');
37
18
  });
38
19
  test('passes', async () => {
39
20
  const throws = async () => defs_1.OK;
40
- const builder = new Builder_1.default(lib_1.getDefaultWorld(0).world);
21
+ const builder = new Builder_1.default(steppers, (0, lib_1.getDefaultWorld)(0).world);
41
22
  // const res = await builder.build([feature(throws)]);
42
23
  // expect(res).toBe(OK);
43
24
  });
@@ -45,7 +26,7 @@ describe('Builder', () => {
45
26
  const finalize = (workspace) => (workspace.set('done', true));
46
27
  const finalizes = async () => ({ ...defs_1.OK, finalize });
47
28
  const workspace = new contexts_1.WorkspaceContext(`test builder finalizes`);
48
- const builder = new Builder_1.default(lib_1.getDefaultWorld(0).world, workspace);
29
+ const builder = new Builder_1.default(steppers, (0, lib_1.getDefaultWorld)(0).world, workspace);
49
30
  // await builder.build([feature(finalizes)]);
50
31
  // expect(workspace['passes.feature'].done).toBe(true);
51
32
  });