@haibun/core 1.73.0 → 1.74.1

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 (93) hide show
  1. package/build/applyEffectFeatures.d.ts.map +1 -1
  2. package/build/applyEffectFeatures.js +4 -2
  3. package/build/applyEffectFeatures.js.map +1 -1
  4. package/build/currentVersion.d.ts +1 -1
  5. package/build/currentVersion.js +1 -2
  6. package/build/lib/astepper.d.ts +2 -3
  7. package/build/lib/astepper.d.ts.map +1 -1
  8. package/build/lib/astepper.js.map +1 -1
  9. package/build/lib/defs.d.ts +50 -20
  10. package/build/lib/defs.d.ts.map +1 -1
  11. package/build/lib/defs.js +19 -2
  12. package/build/lib/defs.js.map +1 -1
  13. package/build/lib/domain-types.d.ts +22 -2
  14. package/build/lib/domain-types.d.ts.map +1 -1
  15. package/build/lib/domain-types.js +54 -3
  16. package/build/lib/domain-types.js.map +1 -1
  17. package/build/lib/feature-variables.d.ts +8 -9
  18. package/build/lib/feature-variables.d.ts.map +1 -1
  19. package/build/lib/feature-variables.js +30 -12
  20. package/build/lib/feature-variables.js.map +1 -1
  21. package/build/lib/namedVars.d.ts +10 -15
  22. package/build/lib/namedVars.d.ts.map +1 -1
  23. package/build/lib/namedVars.js +130 -114
  24. package/build/lib/namedVars.js.map +1 -1
  25. package/build/lib/populateActionArgs.d.ts +4 -0
  26. package/build/lib/populateActionArgs.d.ts.map +1 -0
  27. package/build/lib/populateActionArgs.js +58 -0
  28. package/build/lib/populateActionArgs.js.map +1 -0
  29. package/build/lib/test/SetTimeStepper.d.ts +2 -2
  30. package/build/lib/test/SetTimeStepper.d.ts.map +1 -1
  31. package/build/lib/test/SetTimeStepper.js +6 -1
  32. package/build/lib/test/SetTimeStepper.js.map +1 -1
  33. package/build/lib/test/TestSteps.d.ts +3 -3
  34. package/build/lib/test/TestSteps.d.ts.map +1 -1
  35. package/build/lib/test/TestSteps.js +3 -1
  36. package/build/lib/test/TestSteps.js.map +1 -1
  37. package/build/lib/test/lib.d.ts.map +1 -1
  38. package/build/lib/test/lib.js +5 -2
  39. package/build/lib/test/lib.js.map +1 -1
  40. package/build/lib/util/featureStep-executor.d.ts +6 -0
  41. package/build/lib/util/featureStep-executor.d.ts.map +1 -0
  42. package/build/lib/util/{resolveAndExecuteStatement.js → featureStep-executor.js} +15 -17
  43. package/build/lib/util/featureStep-executor.js.map +1 -0
  44. package/build/lib/util/index.d.ts +1 -2
  45. package/build/lib/util/index.d.ts.map +1 -1
  46. package/build/lib/util/index.js +2 -3
  47. package/build/lib/util/index.js.map +1 -1
  48. package/build/phases/Executor.d.ts +3 -3
  49. package/build/phases/Executor.d.ts.map +1 -1
  50. package/build/phases/Executor.js +53 -27
  51. package/build/phases/Executor.js.map +1 -1
  52. package/build/phases/Resolver.d.ts +2 -5
  53. package/build/phases/Resolver.d.ts.map +1 -1
  54. package/build/phases/Resolver.js +28 -20
  55. package/build/phases/Resolver.js.map +1 -1
  56. package/build/runner.js +2 -2
  57. package/build/runner.js.map +1 -1
  58. package/build/steps/debugger-stepper.d.ts +6 -54
  59. package/build/steps/debugger-stepper.d.ts.map +1 -1
  60. package/build/steps/debugger-stepper.js +53 -20
  61. package/build/steps/debugger-stepper.js.map +1 -1
  62. package/build/steps/haibun.d.ts +27 -87
  63. package/build/steps/haibun.d.ts.map +1 -1
  64. package/build/steps/haibun.js +78 -189
  65. package/build/steps/haibun.js.map +1 -1
  66. package/build/steps/narrator.d.ts +81 -0
  67. package/build/steps/narrator.d.ts.map +1 -0
  68. package/build/steps/narrator.js +102 -0
  69. package/build/steps/narrator.js.map +1 -0
  70. package/build/steps/variables-stepper.d.ts +6 -39
  71. package/build/steps/variables-stepper.d.ts.map +1 -1
  72. package/build/steps/variables-stepper.js +102 -42
  73. package/build/steps/variables-stepper.js.map +1 -1
  74. package/package.json +1 -1
  75. package/build/lib/ReadlinePrompter.d.ts +0 -9
  76. package/build/lib/ReadlinePrompter.d.ts.map +0 -1
  77. package/build/lib/ReadlinePrompter.js +0 -27
  78. package/build/lib/ReadlinePrompter.js.map +0 -1
  79. package/build/lib/create-world.d.ts +0 -3
  80. package/build/lib/create-world.d.ts.map +0 -1
  81. package/build/lib/create-world.js +0 -31
  82. package/build/lib/create-world.js.map +0 -1
  83. package/build/lib/util/executeStep.d.ts +0 -5
  84. package/build/lib/util/executeStep.d.ts.map +0 -1
  85. package/build/lib/util/executeStep.js +0 -16
  86. package/build/lib/util/executeStep.js.map +0 -1
  87. package/build/lib/util/resolveAndExecuteStatement.d.ts +0 -7
  88. package/build/lib/util/resolveAndExecuteStatement.d.ts.map +0 -1
  89. package/build/lib/util/resolveAndExecuteStatement.js.map +0 -1
  90. package/build/steps/credentials.d.ts +0 -28
  91. package/build/steps/credentials.d.ts.map +0 -1
  92. package/build/steps/credentials.js +0 -60
  93. package/build/steps/credentials.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"variables-stepper.d.ts","sourceRoot":"","sources":["../../src/steps/variables-stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,EAAkB,MAAM,gBAAgB,CAAC;AAElG,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAkB1D,cAAM,gBAAiB,SAAQ,QAAS,YAAW,UAAU;IAC5D,MAAM,iBAAgB;IACtB,GAAG,GAAU,OAAO,MAAM,EAAE,aAAa,YAAY,uDAMnD;IACF,UAAU,CAAC,IAAI,EAAE,MAAM;IAIvB,OAAO,CAAC,WAAW;IAOnB,KAAK,CAAC,IAAI,EAAE,MAAM;IAOlB,KAAK;;;uCAG8B,MAAM,eAAe,YAAY;;;;;wBAKhD,MAAM,eAAe,YAAY;;;;;;;;wBAcjC,MAAM,eAAe,YAAY;;;;sCAMnB,MAAM;;;;+BAOb,MAAM;;;;+BAIN,MAAM;;;;+BAIN,MAAM;;MAK/B;CACF;AAED,eAAe,gBAAgB,CAAC;AAEhC,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,EAAE,OAAO,MAAM;;;;CAE1E,CAAC;AAEH,eAAO,MAAM,SAAS,GAAI,iBAAiB,MAAM,EAAE,aAAa,YAAY,EAAE,OAAO,MAAM,EAAE,mBAAiB,6CAU7G,CAAC"}
1
+ {"version":3,"file":"variables-stepper.d.ts","sourceRoot":"","sources":["../../src/steps/variables-stepper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,EAAE,cAAc,EAA0B,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAEpI,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAmBzE,cAAM,gBAAiB,SAAQ,QAAS,YAAW,UAAU;IAC5D,MAAM,iBAAgB;IACtB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACf,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;IAKlD,UAAU,CAAC,IAAI,EAAE,MAAM;IAIvB,OAAO,CAAC,WAAW;IAOnB,KAAK,CAAC,IAAI,EAAE,MAAM;IAQlB,KAAK,EAAE,aAAa,CAiHlB;CACF;AAED,eAAe,gBAAgB,CAAC;AAEhC,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,EAAE,OAAO,MAAM;;;;CAE1E,CAAC;AAEH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,YAAY,GAAG,qBAAqB,CAM1F"}
@@ -1,27 +1,28 @@
1
- import { OK } from '../lib/defs.js';
1
+ import { OK, Origin } from '../lib/defs.js';
2
2
  import { AStepper } from '../lib/astepper.js';
3
3
  import { actionNotOK, actionOK } from '../lib/util/index.js';
4
4
  import { FeatureVariables } from '../lib/feature-variables.js';
5
+ import { DOMAIN_STRING } from '../lib/domain-types.js';
5
6
  const clearVars = (vars) => async () => {
6
7
  vars.getWorld().shared.clear();
7
8
  return Promise.resolve();
8
9
  };
9
10
  const cycles = (variablesStepper) => ({
10
- endScenario: clearVars(variablesStepper),
11
11
  startFeature: clearVars(variablesStepper),
12
12
  startScenario: ({ featureVars }) => {
13
- variablesStepper.getWorld().shared = new FeatureVariables(variablesStepper.getWorld().tag.toString(), { ...featureVars.all() });
13
+ variablesStepper.getWorld().shared = new FeatureVariables(variablesStepper.getWorld(), { ...featureVars.all() });
14
14
  return Promise.resolve();
15
15
  },
16
+ endScenario: clearVars(variablesStepper),
16
17
  });
17
18
  class VariablesStepper extends AStepper {
18
19
  cycles = cycles(this);
19
- set = async (named, featureStep) => {
20
- // FIXME see https://github.com/withhaibun/haibun/issues/18
21
- const emptyOnly = !!featureStep.in.match(/set empty /);
22
- const res = setShared(named, featureStep, this.getWorld(), emptyOnly);
23
- return Promise.resolve(res);
24
- };
20
+ steppers;
21
+ async setWorld(world, steppers) {
22
+ this.world = world;
23
+ this.steppers = steppers;
24
+ await Promise.resolve();
25
+ }
25
26
  checkIsSet(what) {
26
27
  return this.getVarValue(what) !== undefined;
27
28
  }
@@ -39,18 +40,33 @@ class VariablesStepper extends AStepper {
39
40
  }
40
41
  return actionNotOK(`${what} not set`);
41
42
  }
43
+ // Steps
42
44
  steps = {
45
+ combineAs: {
46
+ gwta: 'combine {p1} and {p2} as {domain} to {what}',
47
+ precludes: [`${VariablesStepper.name}.combine`],
48
+ action: async ({ p1, p2, domain }, featureStep) => {
49
+ const { term } = featureStep.action.stepValuesMap.what;
50
+ this.getWorld().shared.set({ term: String(term), value: `${p1}${p2}`, domain, origin: Origin.var }, provenanceFromFeatureStep(featureStep));
51
+ return Promise.resolve(OK);
52
+ }
53
+ },
43
54
  combine: {
44
- gwta: 'combine {p1} and {p2} as {what}',
45
- action: async ({ p1, p2, what }, featureStep) => await this.set({ what, value: `${p1}${p2}` }, featureStep),
55
+ gwta: 'combine {p1} and {p2} to {what}',
56
+ action: async ({ p1, p2 }, featureStep) => {
57
+ const { term } = featureStep.action.stepValuesMap.what;
58
+ this.getWorld().shared.set({ term: String(term), value: `${p1}${p2}`, domain: DOMAIN_STRING, origin: Origin.var }, provenanceFromFeatureStep(featureStep));
59
+ return Promise.resolve(OK);
60
+ }
46
61
  },
47
62
  showEnv: {
48
63
  gwta: 'show env',
49
- export: false,
50
- action: async (n, featureStep) => {
64
+ expose: false,
65
+ action: async () => {
66
+ // only available locally since it might contain sensitive info.
51
67
  console.info('env', this.world.options.envVariables);
52
- return await this.set(n, featureStep);
53
- },
68
+ return Promise.resolve(OK);
69
+ }
54
70
  },
55
71
  showVars: {
56
72
  gwta: 'show vars',
@@ -61,31 +77,76 @@ class VariablesStepper extends AStepper {
61
77
  },
62
78
  set: {
63
79
  gwta: 'set( empty)? {what: string} to {value: string}',
64
- action: async (n, featureStep) => {
65
- return await this.set(n, featureStep);
66
- },
80
+ action: async (args, featureStep) => {
81
+ const emptyOnly = !!featureStep.in.match(/set empty /);
82
+ const { term, domain, origin } = featureStep.action.stepValuesMap.what;
83
+ if (emptyOnly && this.getWorld().shared.get(term) !== undefined) {
84
+ return OK;
85
+ }
86
+ this.getWorld().shared.set({ term: String(term), value: args.value, domain, origin }, provenanceFromFeatureStep(featureStep));
87
+ return Promise.resolve(OK);
88
+ }
89
+ },
90
+ setAs: {
91
+ gwta: 'set( empty)? {what: string} as {domain: string} to {value: string}',
92
+ precludes: [`${VariablesStepper.name}.set`],
93
+ action: async ({ value, domain }, featureStep) => {
94
+ const emptyOnly = !!featureStep.in.match(/set empty /);
95
+ const { term, origin } = featureStep.action.stepValuesMap.what;
96
+ if (emptyOnly && this.getWorld().shared.get(term) !== undefined) {
97
+ return OK;
98
+ }
99
+ this.getWorld().shared.set({ term: String(term), value: value, domain, origin }, provenanceFromFeatureStep(featureStep));
100
+ return Promise.resolve(OK);
101
+ }
102
+ },
103
+ setRandom: {
104
+ precludes: [`${VariablesStepper.name}.set`],
105
+ gwta: `set( empty)? {what: string} to {length: number} random characters`,
106
+ action: async ({ length }, featureStep) => {
107
+ const emptyOnly = !!featureStep.in.match(/set empty /);
108
+ const { term } = featureStep.action.stepValuesMap.what;
109
+ if (length < 1 || length > 100) {
110
+ return actionNotOK(`length ${length} must be between 1 and 100`);
111
+ }
112
+ if (emptyOnly && this.getWorld().shared.get(term) !== undefined) {
113
+ return OK;
114
+ }
115
+ let rand = '';
116
+ while (rand.length < length) {
117
+ rand += Math.random().toString(36).substring(2, 2 + length);
118
+ }
119
+ rand = rand.substring(0, length);
120
+ this.getWorld().shared.set({ term: String(term), value: rand, domain: DOMAIN_STRING, origin: Origin.var }, provenanceFromFeatureStep(featureStep));
121
+ return Promise.resolve(OK);
122
+ }
67
123
  },
68
124
  is: {
69
- gwta: 'variable {what: string} is "{value}"',
70
- action: async ({ what, value }) => {
71
- const val = this.getVarValue(what);
72
- return Promise.resolve(val === value ? OK : actionNotOK(`${what} is "${val}", not "${value}"`));
73
- },
125
+ gwta: 'variable {what} is {value}',
126
+ action: ({ value }, featureStep) => {
127
+ const { term } = featureStep.action.stepValuesMap.what;
128
+ const val = this.getVarValue(term);
129
+ return val === value ? OK : actionNotOK(`${term} is "${val}", not "${value}"`);
130
+ }
74
131
  },
75
132
  isSet: {
133
+ precludes: ['VariablesStepper.is'],
76
134
  gwta: 'variable {what: string} is set',
77
- action: async ({ what }) => Promise.resolve(this.isSet(what)),
135
+ action: ({ what }) => this.isSet(what)
78
136
  },
79
- isNotSet: {
80
- gwta: 'variable {what: string} is not set',
81
- action: async ({ what }) => this.checkIsSet(what) ? actionNotOK(`${what} is set`) : Promise.resolve(OK),
82
- },
83
- display: {
84
- gwta: 'display {what}',
85
- action: async ({ what }) => {
86
- this.getWorld().logger.info(`is ${JSON.stringify(what)}`);
87
- return Promise.resolve(actionOK({ artifact: { artifactType: 'json', json: { [what]: this.getVarValue(what) } } }));
88
- },
137
+ showVar: {
138
+ gwta: 'show var {what}',
139
+ action: (args, featureStep) => {
140
+ const { term } = featureStep.action.stepValuesMap.what;
141
+ const stepValue = this.getWorld().shared.all()[term];
142
+ if (!stepValue) {
143
+ this.getWorld().logger.info(`is undefined`);
144
+ }
145
+ else {
146
+ this.getWorld().logger.info(`is ${JSON.stringify({ ...stepValue, provenance: stepValue.provenance.map((p, i) => ({ [i]: p })) }, null, 2)}`);
147
+ }
148
+ return actionOK({ artifact: { artifactType: 'json', json: { json: stepValue } } });
149
+ }
89
150
  },
90
151
  };
91
152
  }
@@ -93,12 +154,11 @@ export default VariablesStepper;
93
154
  export const didNotOverwrite = (what, present, value) => ({
94
155
  overwrite: { summary: `did not overwrite ${what} value of "${present}" with "${value}"` },
95
156
  });
96
- export const setShared = ({ what, value }, featureStep, world, emptyOnly = false) => {
97
- const { shared } = world;
98
- if (!emptyOnly || shared.get(what) === undefined) {
99
- shared.set(what, value);
100
- return OK;
101
- }
102
- return OK;
103
- };
157
+ export function provenanceFromFeatureStep(featureStep) {
158
+ return {
159
+ in: featureStep.in,
160
+ seq: featureStep.seqPath,
161
+ when: `${featureStep.action.stepperName}.steps.${featureStep.action.actionName}`
162
+ };
163
+ }
104
164
  //# sourceMappingURL=variables-stepper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"variables-stepper.js","sourceRoot":"","sources":["../../src/steps/variables-stepper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"variables-stepper.js","sourceRoot":"","sources":["../../src/steps/variables-stepper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@haibun/core",
3
3
  "type": "module",
4
- "version": "1.73.0",
4
+ "version": "1.74.1",
5
5
  "description": "",
6
6
  "author": "",
7
7
  "exports": { "./*": "./build/*" },
@@ -1,9 +0,0 @@
1
- import { IPrompter, TPrompt, TPromptResponse } from './prompter.js';
2
- export declare class ReadlinePrompter implements IPrompter {
3
- private rl?;
4
- private currentPromptId?;
5
- prompt(prompt: TPrompt): Promise<string>;
6
- cancel(id: string, _reason?: string): void;
7
- resolve(_id: string, _value: TPromptResponse): void;
8
- }
9
- //# sourceMappingURL=ReadlinePrompter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReadlinePrompter.d.ts","sourceRoot":"","sources":["../../src/lib/ReadlinePrompter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGpE,qBAAa,gBAAiB,YAAW,SAAS;IACjD,OAAO,CAAC,EAAE,CAAC,CAAY;IACvB,OAAO,CAAC,eAAe,CAAC,CAAS;IAC3B,MAAM,CAAC,MAAM,EAAE,OAAO;IAW5B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;IAKnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe;CAG5C"}
@@ -1,27 +0,0 @@
1
- import { createInterface } from 'readline/promises';
2
- import { stdin as input, stdout as output } from 'process';
3
- export class ReadlinePrompter {
4
- rl;
5
- currentPromptId;
6
- async prompt(prompt) {
7
- this.currentPromptId = prompt.id;
8
- this.rl = createInterface({ input, output });
9
- try {
10
- const answer = await this.rl.question(`${prompt.message} ${prompt.options?.join(', ') ?? ''}: `);
11
- return answer;
12
- }
13
- finally {
14
- this.rl.close();
15
- }
16
- }
17
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
18
- cancel(id, _reason) {
19
- if (this.currentPromptId === id) {
20
- this.rl?.close();
21
- }
22
- }
23
- resolve(_id, _value) {
24
- // No-op for readline, handled by prompt promise
25
- }
26
- }
27
- //# sourceMappingURL=ReadlinePrompter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReadlinePrompter.js","sourceRoot":"","sources":["../../src/lib/ReadlinePrompter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,MAAM,EAAE,MAAM,SAAS,CAAC;AAK3D,MAAM,OAAO,gBAAgB;IACpB,EAAE,CAAa;IACf,eAAe,CAAU;IACjC,KAAK,CAAC,MAAM,CAAC,MAAe;QAC3B,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjG,OAAO,MAAM,CAAC;QACf,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;IACF,CAAC;IACD,6DAA6D;IAC7D,MAAM,CAAC,EAAU,EAAE,OAAgB;QAClC,IAAI,IAAI,CAAC,eAAe,KAAK,EAAE,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAClB,CAAC;IACF,CAAC;IACD,OAAO,CAAC,GAAW,EAAE,MAAuB;QAC3C,gDAAgD;IACjD,CAAC;CACD"}
@@ -1,3 +0,0 @@
1
- import { TBase, TProtoOptions, TWorld } from './defs.js';
2
- export declare function createWorld(protoOptions: TProtoOptions, bases: TBase, env?: NodeJS.ProcessEnv, featureFilter?: string[]): TWorld;
3
- //# sourceMappingURL=create-world.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-world.d.ts","sourceRoot":"","sources":["../../src/lib/create-world.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAQzD,wBAAgB,WAAW,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,aAAa,GAAE,MAAM,EAAO,GAAG,MAAM,CA0BjJ"}
@@ -1,31 +0,0 @@
1
- import { Timer } from './Timer.js';
2
- import Logger from './Logger.js';
3
- import { FeatureVariables } from './feature-variables.js';
4
- import { Prompter } from './prompter.js';
5
- import { getRunTag } from './ttag.js';
6
- import { getFeaturesAndBackgrounds } from '../phases/collector.js';
7
- export function createWorld(protoOptions, bases, env = process.env, featureFilter = []) {
8
- const keyIn = protoOptions.options.KEY;
9
- const logLevel = protoOptions.options.LOG_LEVEL;
10
- const logFollow = protoOptions.options.LOG_FOLLOW;
11
- const tag = getRunTag(0, 0);
12
- const logger = new Logger({ level: logLevel || 'log', follow: logFollow });
13
- const shared = new FeatureVariables(JSON.stringify(tag));
14
- const timer = new Timer();
15
- Timer.key = keyIn || Timer.key;
16
- const collected = getFeaturesAndBackgrounds(bases, featureFilter);
17
- const world = {
18
- tag,
19
- shared,
20
- runtime: {},
21
- logger,
22
- prompter: new Prompter(),
23
- options: { ...protoOptions.options, envVariables: env },
24
- moduleOptions: protoOptions.moduleOptions,
25
- timer,
26
- bases,
27
- backgrounds: collected.backgrounds,
28
- };
29
- return world;
30
- }
31
- //# sourceMappingURL=create-world.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-world.js","sourceRoot":"","sources":["../../src/lib/create-world.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,UAAU,WAAW,CAAC,YAA2B,EAAE,KAAY,EAAE,MAAyB,OAAO,CAAC,GAAG,EAAE,gBAA0B,EAAE;IACvI,MAAM,KAAK,GAAI,YAAY,CAAC,OAAe,CAAC,GAAyB,CAAC;IACtE,MAAM,QAAQ,GAAI,YAAY,CAAC,OAAe,CAAC,SAA+B,CAAC;IAC/E,MAAM,SAAS,GAAI,YAAY,CAAC,OAAe,CAAC,UAAgC,CAAC;IACjF,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,IAAI,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;IAE1B,KAAK,CAAC,GAAG,GAAG,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC;IAE/B,MAAM,SAAS,GAAG,yBAAyB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IAElE,MAAM,KAAK,GAAW;QACpB,GAAG;QACH,MAAM;QACN,OAAO,EAAE,EAAE;QACX,MAAM;QACN,QAAQ,EAAE,IAAI,QAAQ,EAAE;QACxB,OAAO,EAAE,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE;QACvD,aAAa,EAAE,YAAY,CAAC,aAAa;QACzC,KAAK;QACL,KAAK;QACL,WAAW,EAAE,SAAS,CAAC,WAAW;KACnC,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,5 +0,0 @@
1
- import { AStepper } from '../astepper.js';
2
- import { TWorld, TStepResult, TFeatureStep } from '../defs.js';
3
- export declare function executePreparedStep(steppers: AStepper[], featureStep: TFeatureStep, world: TWorld, runOnly?: boolean, collect?: boolean): Promise<TStepResult>;
4
- export declare function executeStatement(steppers: AStepper[], statement: string, source: string, world: TWorld, runOnly?: boolean, collect?: boolean): Promise<TStepResult>;
5
- //# sourceMappingURL=executeStep.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executeStep.d.ts","sourceRoot":"","sources":["../../../src/lib/util/executeStep.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/D,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAAE,EACpB,WAAW,EAAE,YAAY,EACzB,KAAK,EAAE,MAAM,EACb,OAAO,UAAO,EACd,OAAO,UAAQ,GACd,OAAO,CAAC,WAAW,CAAC,CAMtB;AAGD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAAE,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,UAAO,EACd,OAAO,UAAQ,GACd,OAAO,CAAC,WAAW,CAAC,CAGtB"}
@@ -1,16 +0,0 @@
1
- import { FeatureExecutor } from '../../phases/Executor.js';
2
- import { getActionableStatement } from '../../phases/Resolver.js';
3
- // Execute a prepared feature step and optionally collect into the current feature's step results
4
- export async function executePreparedStep(steppers, featureStep, world, runOnly = true, collect = false) {
5
- const result = await FeatureExecutor.doFeatureStep(steppers, featureStep, world, runOnly);
6
- if (collect && world.runtime.stepResults) {
7
- world.runtime.stepResults.push(result);
8
- }
9
- return result;
10
- }
11
- // Resolve a statement to a feature step then execute it; optionally collect
12
- export async function executeStatement(steppers, statement, source, world, runOnly = true, collect = false) {
13
- const { featureStep } = await getActionableStatement(steppers, statement, source);
14
- return executePreparedStep(steppers, featureStep, world, runOnly, collect);
15
- }
16
- //# sourceMappingURL=executeStep.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"executeStep.js","sourceRoot":"","sources":["../../../src/lib/util/executeStep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAoB,EACpB,WAAyB,EACzB,KAAa,EACb,OAAO,GAAG,IAAI,EACd,OAAO,GAAG,KAAK;IAEf,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1F,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACzC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAAoB,EACpB,SAAiB,EACjB,MAAc,EACd,KAAa,EACb,OAAO,GAAG,IAAI,EACd,OAAO,GAAG,KAAK;IAEf,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,sBAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAClF,OAAO,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC"}
@@ -1,7 +0,0 @@
1
- import { AStepper } from '../astepper.js';
2
- import { TWorld, TStepResult, TFeatureStep } from '../defs.js';
3
- export declare function resolveAndExecuteStatementWithCycles(names: string, base: string, steppers: AStepper[], world: TWorld, startSeq?: number): Promise<TStepResult>;
4
- export declare function resolveAndExecuteStatement(names: string, base: string, steppers: AStepper[], world: TWorld): Promise<TStepResult>;
5
- export declare function doExecuteFeatureSteps(featureSteps: TFeatureStep[], steppers: AStepper[], world: TWorld, noCycles?: boolean): Promise<TStepResult>;
6
- export declare function findFeatureStepsFromStatement(statement: string, steppers: AStepper[], world: TWorld, base: string, startSeq?: number, sub?: number): Promise<TFeatureStep[]>;
7
- //# sourceMappingURL=resolveAndExecuteStatement.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolveAndExecuteStatement.d.ts","sourceRoot":"","sources":["../../../src/lib/util/resolveAndExecuteStatement.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAY,YAAY,EAAE,MAAM,YAAY,CAAC;AAGzE,wBAAsB,oCAAoC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAEpK;AAED,wBAAsB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAEvI;AAOD,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,CAUrJ;AAED,wBAAsB,6BAA6B,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAI,EAAE,GAAG,SAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAcxK"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolveAndExecuteStatement.js","sourceRoot":"","sources":["../../../src/lib/util/resolveAndExecuteStatement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,oCAAoC,CAAC,KAAa,EAAE,IAAY,EAAE,QAAoB,EAAE,KAAa,EAAE,QAAiB;IAC7I,OAAO,MAAM,4BAA4B,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,KAAa,EAAE,IAAY,EAAE,QAAoB,EAAE,KAAa;IAChH,OAAO,MAAM,4BAA4B,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,KAAK,UAAU,4BAA4B,CAAC,KAAa,EAAE,IAAY,EAAE,QAAoB,EAAE,KAAa,EAAE,QAAgB,EAAE,QAAiB;IAChJ,MAAM,YAAY,GAAG,MAAM,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjG,OAAO,MAAM,qBAAqB,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,YAA4B,EAAE,QAAoB,EAAE,KAAa,EAAE,QAAQ,GAAG,KAAK;IAC9H,IAAI,UAAU,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC9B,UAAU,GAAG,MAAM,eAAe,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,EAAE;YAAE,OAAO,UAAU,CAAC;IACvC,CAAC;IACD,OAAO,UAAW,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CAAC,SAAiB,EAAE,QAAoB,EAAE,KAAa,EAAE,IAAY,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC;IAC9I,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACvF,CAAC;IACD,mCAAmC;IACnC,MAAM,iBAAiB,GAAa,EAAE,IAAI,EAAE,QAAQ,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,SAAS,EAAE,EAAE,CAAC;IAC1I,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;IACrF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QAC1B,GAAG,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,sBAAsB,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,YAAY,CAAC;AACrB,CAAC"}
@@ -1,28 +0,0 @@
1
- import { TNamed } from '../lib/defs.js';
2
- import { AStepper } from '../lib/astepper.js';
3
- export declare const cred: (key: string) => string;
4
- declare class Credentials extends AStepper {
5
- generateRandomUsername(ref: string): string;
6
- generateRandomPassword(ref: string): string;
7
- getRandom(name: string): string;
8
- steps: {
9
- hasRandomUsername: {
10
- gwta: string;
11
- action: ({ name }: TNamed) => Promise<import("../lib/defs.js").TOKActionResult>;
12
- };
13
- ensureRandomUsername: {
14
- gwta: string;
15
- action: ({ name }: TNamed) => Promise<import("../lib/defs.js").TOKActionResult>;
16
- };
17
- hasRandomPassword: {
18
- gwta: string;
19
- action: ({ name }: TNamed) => Promise<import("../lib/defs.js").TOKActionResult>;
20
- };
21
- ensureRandomPassword: {
22
- gwta: string;
23
- action: ({ name }: TNamed) => Promise<import("../lib/defs.js").TOKActionResult>;
24
- };
25
- };
26
- }
27
- export default Credentials;
28
- //# sourceMappingURL=credentials.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/steps/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,eAAO,MAAM,IAAI,GAAI,KAAK,MAAM,WAAoB,CAAC;AAErD,cAAM,WAAY,SAAQ,QAAQ;IACjC,sBAAsB,CAAC,GAAG,EAAE,MAAM;IAKlC,sBAAsB,CAAC,GAAG,EAAE,MAAM;IAYlC,SAAS,CAAC,IAAI,EAAE,MAAM;IAItB,KAAK;;;+BAGsB,MAAM;;;;+BAQN,MAAM;;;;+BAWN,MAAM;;;;+BAQN,MAAM;;MAQ/B;CACF;AACD,eAAe,WAAW,CAAC"}
@@ -1,60 +0,0 @@
1
- import { OK } from '../lib/defs.js';
2
- import { AStepper } from '../lib/astepper.js';
3
- import { randomString } from '../lib/util/index.js';
4
- export const cred = (key) => `__cred_${key}`;
5
- class Credentials extends AStepper {
6
- generateRandomUsername(ref) {
7
- this.getWorld().shared.set(cred(ref), randomString());
8
- return this.getWorld().shared.get(cred(ref));
9
- }
10
- generateRandomPassword(ref) {
11
- this.getWorld().shared.set(cred(ref), [
12
- 'testpass',
13
- Math.floor(Math.random() * 1e8)
14
- .toString(36)
15
- .toUpperCase(),
16
- ].join('_'));
17
- return this.getWorld().shared.get(cred(ref));
18
- }
19
- getRandom(name) {
20
- return this.getWorld().shared.get(cred(name));
21
- }
22
- steps = {
23
- hasRandomUsername: {
24
- gwta: `have a valid random username <{name}>`,
25
- action: async ({ name }) => {
26
- this.generateRandomUsername(name);
27
- return Promise.resolve(OK);
28
- },
29
- },
30
- ensureRandomUsername: {
31
- gwta: `ensure valid random username <{name}>`,
32
- action: async ({ name }) => {
33
- if (this.getWorld().shared.get(cred(name))) {
34
- return OK;
35
- }
36
- this.generateRandomUsername(name);
37
- return Promise.resolve(OK);
38
- },
39
- },
40
- hasRandomPassword: {
41
- gwta: `have a valid random password <{name}>`,
42
- action: async ({ name }) => {
43
- this.generateRandomPassword(name);
44
- return Promise.resolve(OK);
45
- },
46
- },
47
- ensureRandomPassword: {
48
- gwta: `ensure valid random password <{name}>`,
49
- action: async ({ name }) => {
50
- if (this.getWorld().shared.get(cred(name))) {
51
- return OK;
52
- }
53
- this.generateRandomPassword(name);
54
- return Promise.resolve(OK);
55
- },
56
- },
57
- };
58
- }
59
- export default Credentials;
60
- //# sourceMappingURL=credentials.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/steps/credentials.ts"],"names":[],"mappings":"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"}