@haibun/core 1.46.2 → 1.46.3
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.
- package/build/applyEffectFeatures.d.ts +3 -0
- package/build/applyEffectFeatures.d.ts.map +1 -0
- package/build/applyEffectFeatures.js +32 -0
- package/build/applyEffectFeatures.js.map +1 -0
- package/build/currentVersion.d.ts +2 -0
- package/build/currentVersion.d.ts.map +1 -0
- package/build/currentVersion.js +2 -0
- package/build/currentVersion.js.map +1 -0
- package/build/index.d.ts +2 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +2 -0
- package/build/index.js.map +1 -0
- package/build/lib/Logger.d.ts +46 -0
- package/build/lib/Logger.d.ts.map +1 -0
- package/build/lib/Logger.js +79 -0
- package/build/lib/Logger.js.map +1 -0
- package/build/lib/Logger.test.d.ts +2 -0
- package/build/lib/TestLogger.d.ts +11 -0
- package/build/lib/TestLogger.d.ts.map +1 -0
- package/build/lib/TestLogger.js +11 -0
- package/build/lib/TestLogger.js.map +1 -0
- package/build/lib/Timer.d.ts +8 -0
- package/build/lib/Timer.d.ts.map +1 -0
- package/build/lib/Timer.js +12 -0
- package/build/lib/Timer.js.map +1 -0
- package/build/lib/defs.d.ts +287 -0
- package/build/lib/defs.d.ts.map +1 -0
- package/build/lib/defs.js +85 -0
- package/build/lib/defs.js.map +1 -0
- package/build/lib/domain-types.d.ts +13 -0
- package/build/lib/domain-types.d.ts.map +1 -0
- package/build/lib/domain-types.js +7 -0
- package/build/lib/domain-types.js.map +1 -0
- package/build/lib/features.d.ts +23 -0
- package/build/lib/features.d.ts.map +1 -0
- package/build/lib/features.js +100 -0
- package/build/lib/features.js.map +1 -0
- package/build/lib/features.test.d.ts +2 -0
- package/build/lib/features.test.js +112 -0
- package/build/lib/features.test.js.map +1 -0
- package/build/lib/interfaces/artifacts.d.ts +47 -0
- package/build/lib/interfaces/artifacts.d.ts.map +1 -0
- package/build/lib/interfaces/artifacts.js +2 -0
- package/build/lib/interfaces/artifacts.js.map +1 -0
- package/build/lib/interfaces/logger.d.ts +52 -0
- package/build/lib/interfaces/logger.d.ts.map +1 -0
- package/build/lib/interfaces/logger.js +17 -0
- package/build/lib/interfaces/logger.js.map +1 -0
- package/build/lib/namedVars.d.ts +20 -0
- package/build/lib/namedVars.d.ts.map +1 -0
- package/build/lib/namedVars.js +138 -0
- package/build/lib/namedVars.js.map +1 -0
- package/build/lib/namedVars.test.d.ts +2 -0
- package/build/lib/namedVars.test.js +106 -0
- package/build/lib/namedVars.test.js.map +1 -0
- package/build/lib/resolver-features.d.ts +18 -0
- package/build/lib/resolver-features.d.ts.map +1 -0
- package/build/lib/resolver-features.js +12 -0
- package/build/lib/resolver-features.js.map +1 -0
- package/build/lib/test/SetTimeStepper.d.ts +10 -0
- package/build/lib/test/SetTimeStepper.d.ts.map +1 -0
- package/build/lib/test/SetTimeStepper.js +20 -0
- package/build/lib/test/SetTimeStepper.js.map +1 -0
- package/build/lib/test/TestSteps.d.ts +33 -0
- package/build/lib/test/TestSteps.d.ts.map +1 -0
- package/build/lib/test/TestSteps.js +32 -0
- package/build/lib/test/TestSteps.js.map +1 -0
- package/build/lib/test/TestStepsWithOptions.d.ts +25 -0
- package/build/lib/test/TestStepsWithOptions.d.ts.map +1 -0
- package/build/lib/test/TestStepsWithOptions.js +21 -0
- package/build/lib/test/TestStepsWithOptions.js.map +1 -0
- package/build/lib/test/lib.d.ts +26 -0
- package/build/lib/test/lib.d.ts.map +1 -1
- package/build/lib/test/lib.test.d.ts +2 -0
- package/build/lib/test/lib.test.d.ts.map +1 -0
- package/build/lib/test/lib.test.js +9 -0
- package/build/lib/test/lib.test.js.map +1 -0
- package/build/lib/util/index.d.ts +81 -0
- package/build/lib/util/index.d.ts.map +1 -0
- package/build/lib/util/index.js +248 -0
- package/build/lib/util/index.js.map +1 -0
- package/build/lib/util/util.test.d.ts +2 -0
- package/build/lib/util/util.test.d.ts.map +1 -0
- package/build/lib/util/util.test.js +238 -0
- package/build/lib/util/util.test.js.map +1 -0
- package/build/lib/util/workspace-lib.d.ts +15 -0
- package/build/lib/util/workspace-lib.d.ts.map +1 -0
- package/build/lib/util/workspace-lib.js +47 -0
- package/build/lib/util/workspace-lib.js.map +1 -0
- package/build/lib/util/workspace-lib.test.d.ts +2 -0
- package/build/lib/util/workspace-lib.test.d.ts.map +1 -0
- package/build/lib/util/workspace-lib.test.js +20 -0
- package/build/lib/util/workspace-lib.test.js.map +1 -0
- package/build/phases/Executor.d.ts +20 -0
- package/build/phases/Executor.d.ts.map +1 -0
- package/build/phases/Executor.js +152 -0
- package/build/phases/Executor.js.map +1 -0
- package/build/phases/Resolver.d.ts +15 -0
- package/build/phases/Resolver.d.ts.map +1 -0
- package/build/phases/Resolver.js +93 -0
- package/build/phases/Resolver.js.map +1 -0
- package/build/phases/Resolver.test.d.ts +2 -0
- package/build/phases/Resolver.test.d.ts.map +1 -0
- package/build/phases/Resolver.test.js +87 -0
- package/build/phases/Resolver.test.js.map +1 -0
- package/build/phases/collector.d.ts +15 -0
- package/build/phases/collector.d.ts.map +1 -0
- package/build/phases/collector.js +49 -0
- package/build/phases/collector.js.map +1 -0
- package/build/phases/collector.test.d.ts +2 -0
- package/build/phases/collector.test.d.ts.map +1 -0
- package/build/phases/collector.test.js +96 -0
- package/build/phases/collector.test.js.map +1 -0
- package/build/runner.d.ts +12 -0
- package/build/runner.d.ts.map +1 -0
- package/build/runner.js +61 -0
- package/build/runner.js.map +1 -0
- package/build/runner.test.d.ts +2 -0
- package/build/runner.test.d.ts.map +1 -0
- package/build/runner.test.js +24 -0
- package/build/runner.test.js.map +1 -0
- package/build/steps/conformance.d.ts +17 -0
- package/build/steps/conformance.d.ts.map +1 -0
- package/build/steps/conformance.js +12 -0
- package/build/steps/conformance.js.map +1 -0
- package/build/steps/credentials.d.ts +25 -0
- package/build/steps/credentials.d.ts.map +1 -0
- package/build/steps/credentials.js +38 -0
- package/build/steps/credentials.js.map +1 -0
- package/build/steps/haibun.d.ts +94 -0
- package/build/steps/haibun.test.d.ts +2 -0
- package/build/steps/haibun.test.d.ts.map +1 -0
- package/build/steps/haibun.test.js +48 -0
- package/build/steps/haibun.test.js.map +1 -0
- package/build/steps/lib/parse.d.ts +4 -0
- package/build/steps/lib/parse.d.ts.map +1 -0
- package/build/steps/lib/parse.js +42 -0
- package/build/steps/lib/parse.js.map +1 -0
- package/build/steps/lib/tts.d.ts +17 -0
- package/build/steps/lib/tts.d.ts.map +1 -0
- package/build/steps/lib/tts.js +80 -0
- package/build/steps/lib/tts.js.map +1 -0
- package/build/steps/parse.d.ts +25 -0
- package/build/steps/parse.d.ts.map +1 -0
- package/build/steps/parse.js +30 -0
- package/build/steps/parse.js.map +1 -0
- package/build/steps/vars.d.ts +5 -6
- package/build/steps/vars.d.ts.map +1 -1
- package/build/steps/vars.js.map +1 -1
- package/build/steps/vars.test.d.ts +2 -0
- package/build/steps/vars.test.js +43 -0
- package/build/steps/vars.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { constructorName } from './util/index.js';
|
|
2
|
+
export const isProcessFeatureResults = (s) => s.processFeatureResult !== undefined;
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4
|
+
const example = {
|
|
5
|
+
path: 'path',
|
|
6
|
+
base: 'base',
|
|
7
|
+
name: 'name',
|
|
8
|
+
featureSteps: [
|
|
9
|
+
{
|
|
10
|
+
path: 'path',
|
|
11
|
+
in: 'in',
|
|
12
|
+
seq: 0,
|
|
13
|
+
action: {
|
|
14
|
+
actionName: 'actionName',
|
|
15
|
+
stepperName: 'stepperName',
|
|
16
|
+
step: { action: async () => await Promise.resolve(OK) },
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
],
|
|
20
|
+
};
|
|
21
|
+
export class AStepper {
|
|
22
|
+
world;
|
|
23
|
+
cycles;
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
25
|
+
async setWorld(world, steppers) {
|
|
26
|
+
this.world = world;
|
|
27
|
+
await Promise.resolve();
|
|
28
|
+
}
|
|
29
|
+
getWorld() {
|
|
30
|
+
if (!this.world) {
|
|
31
|
+
throw Error(`stepper without world ${constructorName(this)}`);
|
|
32
|
+
}
|
|
33
|
+
return this.world;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export const OK = { ok: true };
|
|
37
|
+
export const HAIBUN = 'HAIBUN';
|
|
38
|
+
export const BASE_PREFIX = `${HAIBUN}_`;
|
|
39
|
+
export const CAPTURE = 'capture';
|
|
40
|
+
export const BASE_DOMAINS = [{ name: 'string', resolve: (inp) => inp }];
|
|
41
|
+
export const STAY_ALWAYS = 'always';
|
|
42
|
+
export const STAY_FAILURE = 'failure';
|
|
43
|
+
export const STAY = 'STAY';
|
|
44
|
+
export const CHECK_YES = '✅';
|
|
45
|
+
export const CHECK_NO = '❌';
|
|
46
|
+
export const STEP_DELAY = 'STEP_DELAY';
|
|
47
|
+
export const DEFAULT_DEST = 'default';
|
|
48
|
+
export const CONTINUE_AFTER_ERROR = 'CONTINUE_AFTER_ERROR';
|
|
49
|
+
export const SCENARIO_START = 'scenarioStart';
|
|
50
|
+
export class Context {
|
|
51
|
+
context;
|
|
52
|
+
values;
|
|
53
|
+
constructor(context, initial) {
|
|
54
|
+
this.context = context;
|
|
55
|
+
this.values = initial || {};
|
|
56
|
+
}
|
|
57
|
+
toString() {
|
|
58
|
+
return `context ${this.context} values ${this.values}`;
|
|
59
|
+
}
|
|
60
|
+
set(name, value) {
|
|
61
|
+
this.values[name] = value;
|
|
62
|
+
}
|
|
63
|
+
setOnly(name, value) {
|
|
64
|
+
if (this.get(name)) {
|
|
65
|
+
throw Error(`${name} is already set to ${this.values[name]}`);
|
|
66
|
+
}
|
|
67
|
+
this.set(name, value);
|
|
68
|
+
}
|
|
69
|
+
get(name) {
|
|
70
|
+
return this.values[name];
|
|
71
|
+
}
|
|
72
|
+
concat(name, value) {
|
|
73
|
+
const t = this.values[name] || [];
|
|
74
|
+
this.values[name] = [...t, value];
|
|
75
|
+
}
|
|
76
|
+
unset(name) {
|
|
77
|
+
delete this.values[name];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export class WorldContext extends Context {
|
|
81
|
+
constructor(tag, initial) {
|
|
82
|
+
super(`world ${JSON.stringify(tag)}`, initial);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=defs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defs.js","sourceRoot":"","sources":["../../src/lib/defs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const WEB_PAGE = "webpage";
|
|
2
|
+
export declare const WEB_CONTROL = "webcontrol";
|
|
3
|
+
export declare const SELECTOR = "selector";
|
|
4
|
+
export type TValidator = (content: string) => string | undefined;
|
|
5
|
+
export interface IDependencies {
|
|
6
|
+
requires?: string[];
|
|
7
|
+
}
|
|
8
|
+
export interface ISharedContext {
|
|
9
|
+
get(key: string): unknown;
|
|
10
|
+
set(key: string, value: unknown): void;
|
|
11
|
+
}
|
|
12
|
+
export declare const BASE_TYPES: string[];
|
|
13
|
+
//# sourceMappingURL=domain-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-types.d.ts","sourceRoot":"","sources":["../../src/lib/domain-types.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,QAAQ,YAAY,CAAC;AAClC,eAAO,MAAM,WAAW,eAAe,CAAC;AACxC,eAAO,MAAM,QAAQ,aAAa,CAAC;AAGnC,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAGjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAGD,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACxC;AAGD,eAAO,MAAM,UAAU,UAA8C,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Core types that replace the domain system, used in vars and modules like filesystem, web
|
|
2
|
+
export const WEB_PAGE = 'webpage';
|
|
3
|
+
export const WEB_CONTROL = 'webcontrol';
|
|
4
|
+
export const SELECTOR = 'selector';
|
|
5
|
+
// Type constants
|
|
6
|
+
export const BASE_TYPES = ['string', WEB_CONTROL, WEB_PAGE, SELECTOR];
|
|
7
|
+
//# sourceMappingURL=domain-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domain-types.js","sourceRoot":"","sources":["../../src/lib/domain-types.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAClC,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AACxC,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAgBnC,iBAAiB;AACjB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TExpandedFeature, TFeature, TFeatures } from './defs.js';
|
|
2
|
+
export declare function expand(backgrounds: TFeatures, features: TFeatures): Promise<TExpandedFeature[]>;
|
|
3
|
+
export declare function expandBackgrounds(features: TFeatures): Promise<TFeatures>;
|
|
4
|
+
export declare function findUpper(path: string, features: TFeatures): {
|
|
5
|
+
rem: string;
|
|
6
|
+
upper: TFeature[];
|
|
7
|
+
};
|
|
8
|
+
export declare function expandFeatures(features: TFeature[], backgrounds: TFeature[]): Promise<TExpandedFeature[]>;
|
|
9
|
+
export declare function withNameType(base: any, path: string, content: string): {
|
|
10
|
+
path: string;
|
|
11
|
+
base: any;
|
|
12
|
+
name: string;
|
|
13
|
+
type: string;
|
|
14
|
+
content: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const asFeatureLine: (line: string, feature: TFeature) => {
|
|
17
|
+
line: string;
|
|
18
|
+
feature: TFeature;
|
|
19
|
+
};
|
|
20
|
+
export declare function findFeatures(name: string, backgrounds: TFeatures, type?: string): TFeatures;
|
|
21
|
+
export declare function findFeaturesOfType(backgrounds: TFeatures, type?: string): TFeatures;
|
|
22
|
+
export declare const featureSplit: (content: string) => string[];
|
|
23
|
+
//# sourceMappingURL=features.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features.d.ts","sourceRoot":"","sources":["../../src/lib/features.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAiB,QAAQ,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGjF,wBAAsB,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAIrG;AAGD,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,sBAe1D;AAMD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;;;EAS1D;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAU/G;AAqBD,wBAAgB,YAAY,CAAC,IAAI,KAAA,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;EAK/D;AAED,eAAO,MAAM,aAAa,SAAU,MAAM,WAAW,QAAQ;;;CAAwB,CAAC;AAqBtF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,SAAY,GAAG,SAAS,CAG9F;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,SAAS,EAAE,IAAI,SAAY,GAAG,SAAS,CAEtF;AAID,eAAO,MAAM,YAAY,YAAa,MAAM,aAKd,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { getActionable } from './util/index.js';
|
|
2
|
+
export async function expand(backgrounds, features) {
|
|
3
|
+
const expandedBackgrounds = await expandBackgrounds(backgrounds);
|
|
4
|
+
const expandedFeatures = await expandFeatures(features, expandedBackgrounds);
|
|
5
|
+
return expandedFeatures;
|
|
6
|
+
}
|
|
7
|
+
// Expand backgrounds by prepending 'upper' features to 'lower' features
|
|
8
|
+
export async function expandBackgrounds(features) {
|
|
9
|
+
const expanded = [];
|
|
10
|
+
for (const { base, path, content: feature } of features) {
|
|
11
|
+
let res = feature;
|
|
12
|
+
let r = findUpper(path, features);
|
|
13
|
+
while (r.upper.length > 0 && r.rem !== '/') {
|
|
14
|
+
r = findUpper(r.rem, features);
|
|
15
|
+
for (const s of r.upper) {
|
|
16
|
+
res = s.content + '\n' + res;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
expanded.push(withNameType(base, path, res));
|
|
20
|
+
}
|
|
21
|
+
return Promise.resolve(expanded);
|
|
22
|
+
}
|
|
23
|
+
const upperPath = (path) => {
|
|
24
|
+
const r = path.split('/');
|
|
25
|
+
return '/' + r.slice(1, r.length - 1).join('/');
|
|
26
|
+
};
|
|
27
|
+
export function findUpper(path, features) {
|
|
28
|
+
const rem = upperPath(path);
|
|
29
|
+
const upper = features.filter((f) => {
|
|
30
|
+
const p = upperPath(f.path);
|
|
31
|
+
return p === rem;
|
|
32
|
+
});
|
|
33
|
+
return { rem, upper };
|
|
34
|
+
}
|
|
35
|
+
export async function expandFeatures(features, backgrounds) {
|
|
36
|
+
const expandeds = [];
|
|
37
|
+
for (const feature of features) {
|
|
38
|
+
const expanded = await expandIncluded(feature, backgrounds);
|
|
39
|
+
const ex = { path: feature.path, base: feature.base, name: feature.name, expanded };
|
|
40
|
+
expandeds.push(ex);
|
|
41
|
+
}
|
|
42
|
+
return expandeds;
|
|
43
|
+
}
|
|
44
|
+
async function expandIncluded(feature, backgrounds) {
|
|
45
|
+
let lines = [];
|
|
46
|
+
const split = featureSplit(feature.content);
|
|
47
|
+
for (const l of split) {
|
|
48
|
+
const actionable = getActionable(l);
|
|
49
|
+
if (actionable.match(/^Backgrounds: .*$/)) {
|
|
50
|
+
lines = lines.concat(doIncludes(l, backgrounds));
|
|
51
|
+
}
|
|
52
|
+
else if (actionable.match(/^Scenarios: .*$/)) {
|
|
53
|
+
lines = lines.concat(doIncludes(l, backgrounds));
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const nl = asFeatureLine(l, feature);
|
|
57
|
+
lines.push(nl);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return Promise.resolve(lines);
|
|
61
|
+
}
|
|
62
|
+
export function withNameType(base, path, content) {
|
|
63
|
+
const s = path.split('.');
|
|
64
|
+
const name = s[0];
|
|
65
|
+
const type = s.length === 3 ? s[1] : 'feature';
|
|
66
|
+
return { path, base, name, type, content };
|
|
67
|
+
}
|
|
68
|
+
export const asFeatureLine = (line, feature) => ({ line, feature });
|
|
69
|
+
function doIncludes(input, backgrounds) {
|
|
70
|
+
const includes = input
|
|
71
|
+
.replace(/^.*?: /, '')
|
|
72
|
+
.split(',')
|
|
73
|
+
.map((a) => a.trim());
|
|
74
|
+
const ret = [];
|
|
75
|
+
for (const l of includes) {
|
|
76
|
+
const bg = findFeatures(l, backgrounds);
|
|
77
|
+
if (bg.length !== 1) {
|
|
78
|
+
throw Error(`can't find single "${l}.feature" from ${backgrounds.map((b) => b.path).join(', ')}`);
|
|
79
|
+
}
|
|
80
|
+
const origin = bg[0];
|
|
81
|
+
for (const l of featureSplit(origin.content)) {
|
|
82
|
+
ret.push(asFeatureLine(l, origin));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return ret;
|
|
86
|
+
}
|
|
87
|
+
export function findFeatures(name, backgrounds, type = 'feature') {
|
|
88
|
+
const ftype = findFeaturesOfType(backgrounds, type);
|
|
89
|
+
return ftype.filter((f) => f.path.endsWith(`/${name}.${fileTypeToExt(type)}`));
|
|
90
|
+
}
|
|
91
|
+
export function findFeaturesOfType(backgrounds, type = 'feature') {
|
|
92
|
+
return backgrounds.filter((f) => f.path.endsWith(`.${fileTypeToExt(type)}`));
|
|
93
|
+
}
|
|
94
|
+
const fileTypeToExt = (type) => (type === 'feature' ? 'feature' : `${type}.feature`);
|
|
95
|
+
export const featureSplit = (content) => content
|
|
96
|
+
.trim()
|
|
97
|
+
.split('\n')
|
|
98
|
+
.map((a) => a.trim())
|
|
99
|
+
.filter((a) => a.length > 0);
|
|
100
|
+
//# sourceMappingURL=features.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features.js","sourceRoot":"","sources":["../../src/lib/features.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { describe, it, test, expect } from 'vitest';
|
|
2
|
+
import { DEFAULT_DEST } from './defs.js';
|
|
3
|
+
import * as steps from './features.js';
|
|
4
|
+
import { testWithDefaults } from './test/lib.js';
|
|
5
|
+
import { asFeatures } from './resolver-features.js';
|
|
6
|
+
import Vars from '../steps/vars.js';
|
|
7
|
+
const varsStepper = [Vars];
|
|
8
|
+
describe('expandBackgrounds', () => {
|
|
9
|
+
test('simple', async () => {
|
|
10
|
+
const features = asFeatures([{ path: '/f1', content: 'f1_step' }]);
|
|
11
|
+
const res = await steps.expandBackgrounds(features);
|
|
12
|
+
expect(res).toEqual(features);
|
|
13
|
+
});
|
|
14
|
+
test('hierarchical', async () => {
|
|
15
|
+
const features = asFeatures([
|
|
16
|
+
{ path: '/f1', content: 'f1_step' },
|
|
17
|
+
{ path: '/f1/l1f1', content: 'l1f1_step' },
|
|
18
|
+
]);
|
|
19
|
+
const expected = asFeatures([
|
|
20
|
+
{ path: '/f1', content: 'f1_step' },
|
|
21
|
+
{ path: '/f1/l1f1', content: 'f1_step\nl1f1_step' },
|
|
22
|
+
]);
|
|
23
|
+
const res = await steps.expandBackgrounds(features);
|
|
24
|
+
expect(res).toEqual(expected);
|
|
25
|
+
});
|
|
26
|
+
test('multiple hierarchical', async () => {
|
|
27
|
+
const features = asFeatures([
|
|
28
|
+
{ path: '/f1', content: 'f1_step' },
|
|
29
|
+
{ path: '/l1/l1f1', content: 'l1_step' },
|
|
30
|
+
{ path: '/l2/l2f1', content: 'l2_step' },
|
|
31
|
+
]);
|
|
32
|
+
const expected = asFeatures([
|
|
33
|
+
{ path: '/f1', content: 'f1_step' },
|
|
34
|
+
{ path: '/l1/l1f1', content: 'f1_step\nl1_step' },
|
|
35
|
+
{ path: '/l2/l2f1', content: 'f1_step\nl2_step' },
|
|
36
|
+
]);
|
|
37
|
+
const res = await steps.expandBackgrounds(features);
|
|
38
|
+
expect(res).toEqual(expected);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe('feature finding', () => {
|
|
42
|
+
const features = asFeatures([
|
|
43
|
+
{ path: '/l0.feature', content: 'l0_feature' },
|
|
44
|
+
{ path: '/l0/l1.feature', content: 'l1_feature' },
|
|
45
|
+
]);
|
|
46
|
+
test('does not find partial feature', () => {
|
|
47
|
+
const res = steps.findFeatures('0', features);
|
|
48
|
+
expect(res).toEqual([]);
|
|
49
|
+
});
|
|
50
|
+
test('finds feature', () => {
|
|
51
|
+
const res = steps.findFeatures('l0', features);
|
|
52
|
+
expect(res).toEqual(asFeatures([{ path: '/l0.feature', content: 'l0_feature' }]));
|
|
53
|
+
});
|
|
54
|
+
test('finds l1 feature', () => {
|
|
55
|
+
const res = steps.findFeatures('l1', features);
|
|
56
|
+
expect(res).toEqual(asFeatures([{ path: '/l0/l1.feature', content: 'l1_feature' }]));
|
|
57
|
+
});
|
|
58
|
+
test('finds multiple', () => {
|
|
59
|
+
const res = steps.findFeatures('l1', asFeatures([...features, { path: '/l1/l1.feature', content: 'l1_l1_feature' }]));
|
|
60
|
+
expect(res).toEqual(asFeatures([
|
|
61
|
+
{ path: '/l0/l1.feature', content: 'l1_feature' },
|
|
62
|
+
{ path: '/l1/l1.feature', content: 'l1_l1_feature' },
|
|
63
|
+
]));
|
|
64
|
+
});
|
|
65
|
+
test('finds fileType', () => {
|
|
66
|
+
const res = steps.findFeatures('l1', asFeatures([...features, { path: '/l1/l1.mytype.feature', content: 'l1_l1_mytype.feature' }]), 'mytype');
|
|
67
|
+
expect(res).toEqual(asFeatures([{ path: '/l1/l1.mytype.feature', content: 'l1_l1_mytype.feature' }]));
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
describe('expand features', () => {
|
|
71
|
+
test('applies backgrounds', async () => {
|
|
72
|
+
const features = asFeatures([{ path: '/f1', content: 'Backgrounds: b1\nExtant' }]);
|
|
73
|
+
const backgrounds = asFeatures([{ path: '/b1.feature', content: 'result' }]);
|
|
74
|
+
const res = await steps.expandFeatures(features, backgrounds);
|
|
75
|
+
expect(res[0].expanded.map((e) => e.line)).toEqual(['result', 'Extant']);
|
|
76
|
+
expect(res[0].expanded.map((e) => e.feature.name)).toEqual(['/b1', '/f1']);
|
|
77
|
+
});
|
|
78
|
+
test('applies backgrounds hierarchical', async () => {
|
|
79
|
+
const features = asFeatures([{ path: '/l1/f1', content: 'Backgrounds: b2' }]);
|
|
80
|
+
const backgrounds = asFeatures([
|
|
81
|
+
{ path: '/l1/b1.feature', content: 'non-result' },
|
|
82
|
+
{ path: '/l2/b2.feature', content: 'result' },
|
|
83
|
+
]);
|
|
84
|
+
const res = await steps.expandFeatures(features, backgrounds);
|
|
85
|
+
expect(res[0].expanded.length).toBe(1);
|
|
86
|
+
expect(res[0].expanded[0].line).toEqual('result');
|
|
87
|
+
expect(res[0].expanded[0].feature.name).toEqual('/l2/b2');
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
describe('env vars', () => {
|
|
91
|
+
it('env or var or literal finds env', async () => {
|
|
92
|
+
const feature = { path: '/features/test.feature', content: `set "what" to "var"\nset x to {what}` };
|
|
93
|
+
const envVariables = { what: 'env' };
|
|
94
|
+
const { world } = await testWithDefaults([feature], varsStepper, {
|
|
95
|
+
options: { DEST: DEFAULT_DEST, envVariables },
|
|
96
|
+
moduleOptions: {},
|
|
97
|
+
});
|
|
98
|
+
expect(world.shared.get('what')).toBe('var');
|
|
99
|
+
expect(world.shared.get('x')).toBe('env');
|
|
100
|
+
});
|
|
101
|
+
it('env or var or literal finds var', async () => {
|
|
102
|
+
const feature = { path: '/features/test.feature', content: `set "what" to "var"\nset x to what` };
|
|
103
|
+
const { world } = await testWithDefaults([feature], varsStepper);
|
|
104
|
+
expect(world.shared.get('x')).toBe('var');
|
|
105
|
+
});
|
|
106
|
+
it('env or var or literal finds literal', async () => {
|
|
107
|
+
const feature = { path: '/features/test.feature', content: `set x to what` };
|
|
108
|
+
const { world } = await testWithDefaults([feature], varsStepper);
|
|
109
|
+
expect(world.shared.get('x')).toBe('what');
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
//# sourceMappingURL=features.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"features.test.js","sourceRoot":"","sources":["../../src/lib/features.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export type TArtifact = (TArtifactSpeech | TArtifactVideo | TArtifactVideoStart | TArtifactImage | TArtifactHTML | TArtifactJSON | TArtifactHTTPTrace);
|
|
2
|
+
export type TArtifactSpeech = {
|
|
3
|
+
artifactType: 'speech';
|
|
4
|
+
transcript: string;
|
|
5
|
+
durationS: number;
|
|
6
|
+
path: string;
|
|
7
|
+
runtimePath: string;
|
|
8
|
+
};
|
|
9
|
+
export type TArtifactVideo = {
|
|
10
|
+
artifactType: 'video';
|
|
11
|
+
path: string;
|
|
12
|
+
runtimePath: string;
|
|
13
|
+
};
|
|
14
|
+
export type TArtifactVideoStart = {
|
|
15
|
+
artifactType: 'video/start';
|
|
16
|
+
start: number;
|
|
17
|
+
};
|
|
18
|
+
export type TArtifactImage = {
|
|
19
|
+
artifactType: 'image';
|
|
20
|
+
path: string;
|
|
21
|
+
runtimePath: string;
|
|
22
|
+
};
|
|
23
|
+
export type TArtifactHTML = {
|
|
24
|
+
artifactType: 'html';
|
|
25
|
+
html: string;
|
|
26
|
+
};
|
|
27
|
+
export type TArtifactJSON = {
|
|
28
|
+
artifactType: 'json';
|
|
29
|
+
json: object;
|
|
30
|
+
};
|
|
31
|
+
export type TArtifactHTTPTrace = {
|
|
32
|
+
artifactType: 'json/http/trace';
|
|
33
|
+
httpEvent: 'response' | 'request' | 'route';
|
|
34
|
+
trace: THTTPTraceContent;
|
|
35
|
+
};
|
|
36
|
+
export type TArtifactType = TArtifact['artifactType'];
|
|
37
|
+
export type THTTPTraceContent = {
|
|
38
|
+
frameURL?: string;
|
|
39
|
+
requestingPage?: string;
|
|
40
|
+
requestingURL?: string;
|
|
41
|
+
method?: string;
|
|
42
|
+
headers?: Record<string, string>;
|
|
43
|
+
postData?: unknown;
|
|
44
|
+
status?: number;
|
|
45
|
+
statusText?: string;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=artifacts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../src/lib/interfaces/artifacts.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,CACpB,eAAe,GACf,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,aAAa,GACb,aAAa,GACb,kBAAkB,CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC7B,YAAY,EAAE,QAAQ,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,YAAY,EAAE,aAAa,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACd,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC5B,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACpB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACb,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG;IAChC,YAAY,EAAE,iBAAiB,CAAC;IAChC,SAAS,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;IAC5C,KAAK,EAAE,iBAAiB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;AAEtD,MAAM,MAAM,iBAAiB,GAAG;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../src/lib/interfaces/artifacts.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { TMessageContext, TTag } from '../defs.js';
|
|
2
|
+
export type TLogLevel = 'none' | 'debug' | 'log' | 'info' | 'warn' | 'error';
|
|
3
|
+
export type TLogArgs = string;
|
|
4
|
+
export type TLogHistory = {
|
|
5
|
+
message: TLogArgs;
|
|
6
|
+
level: TLogLevel;
|
|
7
|
+
caller: string;
|
|
8
|
+
messageContext: TMessageContext;
|
|
9
|
+
};
|
|
10
|
+
export declare enum EExecutionMessageType {
|
|
11
|
+
INIT = "INIT",
|
|
12
|
+
EXECUTION_START = "EXECUTION_START",
|
|
13
|
+
FEATURE_START = "FEATURE_START",
|
|
14
|
+
SCENARIO_START = "SCENARIO_START",
|
|
15
|
+
STEP_START = "STEP_START",
|
|
16
|
+
STEP_NEXT = "STEP_NEXT",
|
|
17
|
+
ACTION = "ACTION",
|
|
18
|
+
TRACE = "TRACE",
|
|
19
|
+
STEP_END = "STEP_END",
|
|
20
|
+
SCENARIO_END = "SCENARIO_END",
|
|
21
|
+
FEATURE_END = "FEATURE_END",
|
|
22
|
+
EXECUTION_END = "EXECUTION_END",
|
|
23
|
+
ON_FAILURE = "ON_FAILURE"
|
|
24
|
+
}
|
|
25
|
+
export interface ILogger {
|
|
26
|
+
debug: (what: TLogArgs, ctx?: TMessageContext) => void;
|
|
27
|
+
log: (what: TLogArgs, ctx?: TMessageContext) => void;
|
|
28
|
+
info: (what: TLogArgs, ctx?: TMessageContext) => void;
|
|
29
|
+
warn: (what: TLogArgs, ctx?: TMessageContext) => void;
|
|
30
|
+
error: (what: TLogArgs, ctx?: TMessageContext) => void;
|
|
31
|
+
addSubscriber: (subscriber: ILogOutput) => void;
|
|
32
|
+
removeSubscriber: (subscriber: ILogOutput) => void;
|
|
33
|
+
}
|
|
34
|
+
export interface IConnect {
|
|
35
|
+
connect: () => Promise<void>;
|
|
36
|
+
disconnect: () => Promise<void>;
|
|
37
|
+
addKeepalive?: (keepalive: unknown) => void;
|
|
38
|
+
}
|
|
39
|
+
export interface IConnectedLogger extends ILogger, IConnect {
|
|
40
|
+
}
|
|
41
|
+
export interface ILoggerKeepAlive {
|
|
42
|
+
start: () => Promise<void>;
|
|
43
|
+
stop: () => Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
export interface ILogOutput {
|
|
46
|
+
out: (level: TLogLevel, args: TLogArgs, ctx?: TMessageContext) => void;
|
|
47
|
+
}
|
|
48
|
+
export type TOutputEnv = {
|
|
49
|
+
output: ILogOutput;
|
|
50
|
+
tag: TTag;
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/lib/interfaces/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAC7E,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAE9B,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,EAAE,QAAQ,CAAC;IAClB,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,eAAe,CAAA;CAC/B,CAAC;AAGF,oBAAY,qBAAqB;IAChC,IAAI,SAAS;IACb,eAAe,oBAAoB;IACnC,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,aAAa,kBAAkB;IAC/B,UAAU,eAAe;CACzB;AAED,MAAM,WAAW,OAAO;IACvB,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACvD,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACrD,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACtD,KAAK,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;IACvD,aAAa,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAChD,gBAAgB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,QAAQ;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAiB,SAAQ,OAAO,EAAE,QAAQ;CAAI;AAE/D,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IAC1B,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC,EAAE,eAAe,KAAK,IAAI,CAAC;CACvE;AAED,MAAM,MAAM,UAAU,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export var EExecutionMessageType;
|
|
2
|
+
(function (EExecutionMessageType) {
|
|
3
|
+
EExecutionMessageType["INIT"] = "INIT";
|
|
4
|
+
EExecutionMessageType["EXECUTION_START"] = "EXECUTION_START";
|
|
5
|
+
EExecutionMessageType["FEATURE_START"] = "FEATURE_START";
|
|
6
|
+
EExecutionMessageType["SCENARIO_START"] = "SCENARIO_START";
|
|
7
|
+
EExecutionMessageType["STEP_START"] = "STEP_START";
|
|
8
|
+
EExecutionMessageType["STEP_NEXT"] = "STEP_NEXT";
|
|
9
|
+
EExecutionMessageType["ACTION"] = "ACTION";
|
|
10
|
+
EExecutionMessageType["TRACE"] = "TRACE";
|
|
11
|
+
EExecutionMessageType["STEP_END"] = "STEP_END";
|
|
12
|
+
EExecutionMessageType["SCENARIO_END"] = "SCENARIO_END";
|
|
13
|
+
EExecutionMessageType["FEATURE_END"] = "FEATURE_END";
|
|
14
|
+
EExecutionMessageType["EXECUTION_END"] = "EXECUTION_END";
|
|
15
|
+
EExecutionMessageType["ON_FAILURE"] = "ON_FAILURE";
|
|
16
|
+
})(EExecutionMessageType || (EExecutionMessageType = {}));
|
|
17
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/lib/interfaces/logger.ts"],"names":[],"mappings":"AAaA,MAAM,CAAN,IAAY,qBAcX;AAdD,WAAY,qBAAqB;IAChC,sCAAa,CAAA;IACb,4DAAmC,CAAA;IACnC,wDAA+B,CAAA;IAC/B,0DAAiC,CAAA;IACjC,kDAAyB,CAAA;IACzB,gDAAuB,CAAA;IACvB,0CAAiB,CAAA;IACjB,wCAAe,CAAA;IACf,8CAAqB,CAAA;IACrB,sDAA6B,CAAA;IAC7B,oDAA2B,CAAA;IAC3B,wDAA+B,CAAA;IAC/B,kDAAyB,CAAA;AAC1B,CAAC,EAdW,qBAAqB,KAArB,qBAAqB,QAchC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { TStepperStep, TNamedVar, TStepAction, TNamed, TWorld, TFeatureStep } from './defs.js';
|
|
2
|
+
export declare const matchGroups: (num?: number) => string;
|
|
3
|
+
export declare const namedInterpolation: (inp: string, types?: string[]) => {
|
|
4
|
+
str: string;
|
|
5
|
+
vars?: TNamedVar[];
|
|
6
|
+
};
|
|
7
|
+
export declare function getNamedMatches(regexp: RegExp, what: string): {
|
|
8
|
+
[key: string]: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const getMatch: (actionable: string, r: RegExp, actionName: string, stepperName: string, step: TStepperStep, vars?: TNamedVar[]) => {
|
|
11
|
+
actionName: string;
|
|
12
|
+
stepperName: string;
|
|
13
|
+
step: TStepperStep;
|
|
14
|
+
named: {
|
|
15
|
+
[key: string]: string;
|
|
16
|
+
};
|
|
17
|
+
vars: TNamedVar[];
|
|
18
|
+
};
|
|
19
|
+
export declare function getNamedToVars(found: TStepAction, world: TWorld, featureStep: TFeatureStep): TNamed;
|
|
20
|
+
//# sourceMappingURL=namedVars.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"namedVars.d.ts","sourceRoot":"","sources":["../../src/lib/namedVars.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAU,MAAM,WAAW,CAAC;AAYvG,eAAO,MAAM,WAAW,0BASvB,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAS,MAAM,UAAS,MAAM,EAAE,KAAgB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAA;CAyB/G,CAAC;AAaF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;EAG3D;AAED,eAAO,MAAM,QAAQ,eACR,MAAM,KACf,MAAM,cACG,MAAM,eACL,MAAM,QACb,YAAY,SACX,SAAS,EAAE;;;;;;;;CAOlB,CAAC;AAIF,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,UAuE1F"}
|