@autometa/events 0.0.10 → 0.1.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.
- package/.turbo/turbo-build.log +18 -34
- package/.turbo/turbo-build:dts.log +31 -0
- package/.turbo/turbo-build:dts:tsc.log +11 -0
- package/.turbo/turbo-clean.log +4 -0
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-lint:fix.log +4 -0
- package/.turbo/turbo-prettify.log +5 -0
- package/.turbo/turbo-test.log +5 -5
- package/CHANGELOG.md +21 -0
- package/dist/esm/index.js +199 -3
- package/dist/esm/index.js.map +1 -0
- package/dist/index.d.cts +696 -0
- package/dist/index.d.ts +695 -3
- package/dist/index.js +240 -2
- package/dist/index.js.map +1 -0
- package/package.json +16 -16
- package/tsup.config.ts +2 -0
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,12 +17,248 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
|
|
20
30
|
// src/index.ts
|
|
21
31
|
var src_exports = {};
|
|
22
32
|
__export(src_exports, {
|
|
23
|
-
|
|
33
|
+
ArgsEventSchema: () => ArgsEventSchema,
|
|
34
|
+
EndAfterOptsSchema: () => EndAfterOptsSchema,
|
|
35
|
+
EndBeforeOptsSchema: () => EndBeforeOptsSchema,
|
|
36
|
+
EndFeatureOptsSchema: () => EndFeatureOptsSchema,
|
|
37
|
+
EndRuleOptsSchema: () => EndRuleOptsSchema,
|
|
38
|
+
EndScenarioOptsSchema: () => EndScenarioOptsSchema,
|
|
39
|
+
EndScenarioOutlineOptsSchema: () => EndScenarioOutlineOptsSchema,
|
|
40
|
+
EndSetupOptsSchema: () => EndSetupOptsSchema,
|
|
41
|
+
EndStepOptsSchema: () => EndStepOptsSchema,
|
|
42
|
+
EndTeardownOptsSchema: () => EndTeardownOptsSchema,
|
|
43
|
+
ErrorEventSchema: () => ErrorEventSchema,
|
|
44
|
+
EventOptionsSchema: () => EventOptionsSchema,
|
|
45
|
+
EventSubscriberSchema: () => EventSubscriberSchema,
|
|
46
|
+
ProviderSubscriber: () => ProviderSubscriber,
|
|
47
|
+
StartAfterOptsSchema: () => StartAfterOptsSchema,
|
|
48
|
+
StartBeforeOptsSchema: () => StartBeforeOptsSchema,
|
|
49
|
+
StartFeatureOptsSchema: () => StartFeatureOptsSchema,
|
|
50
|
+
StartScenarioOptsSchema: () => StartScenarioOptsSchema,
|
|
51
|
+
StartScenarioOutlineOptsSchema: () => StartScenarioOutlineOptsSchema,
|
|
52
|
+
StartSetupOptsSchema: () => StartSetupOptsSchema,
|
|
53
|
+
StartStepOptsSchema: () => StartStepOptsSchema,
|
|
54
|
+
StartTeardownOptsSchema: () => StartTeardownOptsSchema,
|
|
55
|
+
Status: () => Status,
|
|
56
|
+
StatusSchema: () => StatusSchema,
|
|
57
|
+
TestEmitter: () => TestEmitter,
|
|
58
|
+
TestEventEmitter: () => TestEventEmitter,
|
|
59
|
+
UUIDStringSchema: () => UUIDStringSchema
|
|
24
60
|
});
|
|
25
61
|
module.exports = __toCommonJS(src_exports);
|
|
26
|
-
|
|
62
|
+
|
|
63
|
+
// src/event-options.ts
|
|
64
|
+
var import_cucumber_expressions = require("@cucumber/cucumber-expressions");
|
|
65
|
+
var import_zod = require("zod");
|
|
66
|
+
var uuidRegex = /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/gm;
|
|
67
|
+
var UUIDStringSchema = (0, import_zod.string)().regex(uuidRegex).optional();
|
|
68
|
+
var StatusSchema = import_zod.z.union([
|
|
69
|
+
(0, import_zod.literal)("FAILED"),
|
|
70
|
+
(0, import_zod.literal)("BROKEN"),
|
|
71
|
+
(0, import_zod.literal)("PASSED"),
|
|
72
|
+
(0, import_zod.literal)("SKIPPED")
|
|
73
|
+
]);
|
|
74
|
+
var EventOptionsSchema = (0, import_zod.object)({
|
|
75
|
+
title: (0, import_zod.string)().optional(),
|
|
76
|
+
keyword: (0, import_zod.string)().optional(),
|
|
77
|
+
tags: (0, import_zod.string)().array().optional(),
|
|
78
|
+
modifier: (0, import_zod.literal)("skip").or((0, import_zod.literal)("only")).optional(),
|
|
79
|
+
status: StatusSchema.optional()
|
|
80
|
+
});
|
|
81
|
+
var ErrorEventSchema = EventOptionsSchema.extend({
|
|
82
|
+
error: import_zod.z.instanceof(Error).optional()
|
|
83
|
+
});
|
|
84
|
+
var ArgsEventSchema = EventOptionsSchema.extend({
|
|
85
|
+
args: import_zod.z.array(import_zod.z.unknown()).optional()
|
|
86
|
+
});
|
|
87
|
+
var StartFeatureOptsSchema = EventOptionsSchema.extend({
|
|
88
|
+
path: (0, import_zod.string)().optional()
|
|
89
|
+
});
|
|
90
|
+
var EndFeatureOptsSchema = ErrorEventSchema;
|
|
91
|
+
var EndRuleOptsSchema = ErrorEventSchema;
|
|
92
|
+
var StartScenarioOutlineOptsSchema = EventOptionsSchema;
|
|
93
|
+
var EndScenarioOutlineOptsSchema = ErrorEventSchema;
|
|
94
|
+
var StartScenarioOptsSchema = EventOptionsSchema.extend({
|
|
95
|
+
examples: (0, import_zod.object)({ key: (0, import_zod.string)() }).array().optional()
|
|
96
|
+
});
|
|
97
|
+
var EndScenarioOptsSchema = ErrorEventSchema;
|
|
98
|
+
var StartStepOptsSchema = EventOptionsSchema.extend({
|
|
99
|
+
args: import_zod.z.array(import_zod.z.unknown()).optional(),
|
|
100
|
+
expression: import_zod.z.instanceof(import_cucumber_expressions.CucumberExpression).optional(),
|
|
101
|
+
text: (0, import_zod.string)().optional()
|
|
102
|
+
});
|
|
103
|
+
var EndStepOptsSchema = ErrorEventSchema.extend({
|
|
104
|
+
args: import_zod.z.array(import_zod.z.unknown()).optional(),
|
|
105
|
+
expression: import_zod.z.instanceof(import_cucumber_expressions.CucumberExpression),
|
|
106
|
+
text: (0, import_zod.string)()
|
|
107
|
+
});
|
|
108
|
+
var StartBeforeOptsSchema = ArgsEventSchema;
|
|
109
|
+
var EndBeforeOptsSchema = ErrorEventSchema;
|
|
110
|
+
var StartAfterOptsSchema = ArgsEventSchema;
|
|
111
|
+
var EndAfterOptsSchema = ErrorEventSchema;
|
|
112
|
+
var StartSetupOptsSchema = ArgsEventSchema;
|
|
113
|
+
var EndSetupOptsSchema = ErrorEventSchema;
|
|
114
|
+
var StartTeardownOptsSchema = ArgsEventSchema;
|
|
115
|
+
var EndTeardownOptsSchema = ErrorEventSchema;
|
|
116
|
+
|
|
117
|
+
// src/event-subscriber.ts
|
|
118
|
+
var import_zod2 = require("zod");
|
|
119
|
+
var EventSubscriberSchema = (0, import_zod2.object)({
|
|
120
|
+
onFeature: (0, import_zod2.function)()
|
|
121
|
+
});
|
|
122
|
+
var ProviderSubscriber = class {
|
|
123
|
+
constructor() {
|
|
124
|
+
this.addFixtureInstance = (instance) => {
|
|
125
|
+
this.fixtures.instances?.push(instance);
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
|
|
130
|
+
// src/test-emitter.ts
|
|
131
|
+
var import_events = __toESM(require("events"), 1);
|
|
132
|
+
var import_errors = require("@autometa/errors");
|
|
133
|
+
var TestEmitter = class extends import_events.default {
|
|
134
|
+
constructor(name) {
|
|
135
|
+
super();
|
|
136
|
+
this.name = name;
|
|
137
|
+
this.emitStart = (...args) => {
|
|
138
|
+
this.emit(`onStart${this.name}`, ...args);
|
|
139
|
+
};
|
|
140
|
+
this.onStart = (action) => {
|
|
141
|
+
if (action) {
|
|
142
|
+
this.on(`onStart${this.name}`, tryWrapper(this.name, action));
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
this.onEnd = (action) => {
|
|
146
|
+
if (action) {
|
|
147
|
+
this.on(`onEnd${this.name}`, tryWrapper(this.name, action));
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
this.emitEnd = (...args) => {
|
|
151
|
+
this.emit(`onEnd${this.name}`, ...args);
|
|
152
|
+
};
|
|
153
|
+
this.load = (onStart, onEnd) => {
|
|
154
|
+
this.onStart(onStart);
|
|
155
|
+
this.onEnd(onEnd);
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
function tryWrapper(name, action) {
|
|
160
|
+
return (...args) => {
|
|
161
|
+
try {
|
|
162
|
+
const result = action(...args);
|
|
163
|
+
if (result instanceof Promise) {
|
|
164
|
+
throw new import_errors.AutomationError(
|
|
165
|
+
`A Subscriber action cannot be async or return a promise. Executing ${name}`
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
} catch (e) {
|
|
169
|
+
console.error(
|
|
170
|
+
`Event Subscriber ${name} threw an error ${e.message}`
|
|
171
|
+
);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// src/test-event-emitter.ts
|
|
177
|
+
var TestEventEmitter = class {
|
|
178
|
+
constructor() {
|
|
179
|
+
this.scenarioOutline = new TestEmitter(
|
|
180
|
+
"ScenarioOutline"
|
|
181
|
+
);
|
|
182
|
+
this.feature = new TestEmitter("Feature");
|
|
183
|
+
this.rule = new TestEmitter("Rule");
|
|
184
|
+
this.scenario = new TestEmitter("Scenario");
|
|
185
|
+
this.scenarioWrapper = new TestEmitter("Scenario Wrapper");
|
|
186
|
+
this.setup = new TestEmitter("Setup");
|
|
187
|
+
this.teardown = new TestEmitter("Teardown");
|
|
188
|
+
this.before = new TestEmitter("Before");
|
|
189
|
+
this.after = new TestEmitter("After");
|
|
190
|
+
this.step = new TestEmitter("Step");
|
|
191
|
+
this.load = ({
|
|
192
|
+
onFeatureStart,
|
|
193
|
+
onFeatureEnd,
|
|
194
|
+
onScenarioOutlineStart,
|
|
195
|
+
onScenarioOutlineEnd,
|
|
196
|
+
onScenarioStart,
|
|
197
|
+
onScenarioEnd,
|
|
198
|
+
onRuleStart,
|
|
199
|
+
onRuleEnd,
|
|
200
|
+
onBeforeStart,
|
|
201
|
+
onBeforeEnd,
|
|
202
|
+
onSetupStart,
|
|
203
|
+
onSetupEnd,
|
|
204
|
+
onStepStart,
|
|
205
|
+
onStepEnd,
|
|
206
|
+
onAfterStart,
|
|
207
|
+
onAfterEnd,
|
|
208
|
+
onTeardownStart,
|
|
209
|
+
onTeardownEnd,
|
|
210
|
+
onPreScenarioStart,
|
|
211
|
+
onPostScenarioEnd
|
|
212
|
+
}) => {
|
|
213
|
+
this.feature.load(onFeatureStart, onFeatureEnd);
|
|
214
|
+
this.rule.load(onRuleStart, onRuleEnd);
|
|
215
|
+
this.scenarioOutline.load(onScenarioOutlineStart, onScenarioOutlineEnd);
|
|
216
|
+
this.scenario.load(onScenarioStart, onScenarioEnd);
|
|
217
|
+
this.step.load(onStepStart, onStepEnd);
|
|
218
|
+
this.before.load(onBeforeStart, onBeforeEnd);
|
|
219
|
+
this.after.load(onAfterStart, onAfterEnd);
|
|
220
|
+
this.setup.load(onSetupStart, onSetupEnd);
|
|
221
|
+
this.teardown.load(onTeardownStart, onTeardownEnd);
|
|
222
|
+
this.scenarioWrapper.load(onPreScenarioStart, onPostScenarioEnd);
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
// src/test-status.ts
|
|
228
|
+
var Status = {
|
|
229
|
+
FAILED: "FAILED",
|
|
230
|
+
BROKEN: "BROKEN",
|
|
231
|
+
PASSED: "PASSED",
|
|
232
|
+
SKIPPED: "SKIPPED"
|
|
233
|
+
};
|
|
234
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
235
|
+
0 && (module.exports = {
|
|
236
|
+
ArgsEventSchema,
|
|
237
|
+
EndAfterOptsSchema,
|
|
238
|
+
EndBeforeOptsSchema,
|
|
239
|
+
EndFeatureOptsSchema,
|
|
240
|
+
EndRuleOptsSchema,
|
|
241
|
+
EndScenarioOptsSchema,
|
|
242
|
+
EndScenarioOutlineOptsSchema,
|
|
243
|
+
EndSetupOptsSchema,
|
|
244
|
+
EndStepOptsSchema,
|
|
245
|
+
EndTeardownOptsSchema,
|
|
246
|
+
ErrorEventSchema,
|
|
247
|
+
EventOptionsSchema,
|
|
248
|
+
EventSubscriberSchema,
|
|
249
|
+
ProviderSubscriber,
|
|
250
|
+
StartAfterOptsSchema,
|
|
251
|
+
StartBeforeOptsSchema,
|
|
252
|
+
StartFeatureOptsSchema,
|
|
253
|
+
StartScenarioOptsSchema,
|
|
254
|
+
StartScenarioOutlineOptsSchema,
|
|
255
|
+
StartSetupOptsSchema,
|
|
256
|
+
StartStepOptsSchema,
|
|
257
|
+
StartTeardownOptsSchema,
|
|
258
|
+
Status,
|
|
259
|
+
StatusSchema,
|
|
260
|
+
TestEmitter,
|
|
261
|
+
TestEventEmitter,
|
|
262
|
+
UUIDStringSchema
|
|
263
|
+
});
|
|
264
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/event-options.ts","../src/event-subscriber.ts","../src/test-emitter.ts","../src/test-event-emitter.ts","../src/test-status.ts"],"sourcesContent":["export * from './event-options'\nexport * from './event-subscriber'\nexport * from './test-event-emitter'\nexport * from './test-emitter'\nexport * from './test-status'","import { CucumberExpression } from \"@cucumber/cucumber-expressions\";\nimport { object, string, literal, z } from \"zod\";\nconst uuidRegex =\n /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/gm;\nexport const UUIDStringSchema = string().regex(uuidRegex).optional();\n\nexport const StatusSchema = z.union([\n literal(\"FAILED\"),\n literal(\"BROKEN\"),\n literal(\"PASSED\"),\n literal(\"SKIPPED\")\n]);\nexport const EventOptionsSchema = object({\n title: string().optional(),\n keyword: string().optional(),\n tags: string().array().optional(),\n modifier: literal(\"skip\").or(literal(\"only\")).optional(),\n status: StatusSchema.optional()\n});\n\nexport const ErrorEventSchema = EventOptionsSchema.extend({\n error: z.instanceof(Error).optional()\n});\nexport const ArgsEventSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional()\n});\n\nexport const StartFeatureOptsSchema = EventOptionsSchema.extend({\n path: string().optional()\n});\n\nexport const EndFeatureOptsSchema = ErrorEventSchema;\n\nexport const EndRuleOptsSchema = ErrorEventSchema;\n\nexport const StartScenarioOutlineOptsSchema = EventOptionsSchema;\n// .extend({\n// uuid: UUIDStringSchema.optional()\n// });\n\nexport const EndScenarioOutlineOptsSchema = ErrorEventSchema;\n\nexport const StartScenarioOptsSchema = EventOptionsSchema.extend({\n examples: object({ key: string() }).array().optional()\n});\n\nexport const EndScenarioOptsSchema = ErrorEventSchema;\n\nexport const StartStepOptsSchema = EventOptionsSchema.extend({\n args: z.array(z.unknown()).optional(),\n expression: z.instanceof(CucumberExpression).optional(),\n text: string().optional()\n});\nexport const EndStepOptsSchema = ErrorEventSchema.extend({\n args: z.array(z.unknown()).optional(),\n expression: z.instanceof(CucumberExpression),\n text: string()\n});\nexport const StartBeforeOptsSchema = ArgsEventSchema;\nexport const EndBeforeOptsSchema = ErrorEventSchema;\nexport const StartAfterOptsSchema = ArgsEventSchema;\nexport const EndAfterOptsSchema = ErrorEventSchema;\nexport const StartSetupOptsSchema = ArgsEventSchema;\nexport const EndSetupOptsSchema = ErrorEventSchema;\nexport const StartTeardownOptsSchema = ArgsEventSchema;\nexport const EndTeardownOptsSchema = ErrorEventSchema;\n\nexport type EventOptions = z.infer<typeof EventOptionsSchema>;\nexport type StartFeatureOpts = z.infer<typeof StartFeatureOptsSchema>;\nexport type EndFeatureOpts = z.infer<typeof EndFeatureOptsSchema>;\nexport type StartRuleOpts = EventOptions;\nexport type EndRuleOpts = z.infer<typeof EndRuleOptsSchema>;\nexport type StartScenarioOutlineOpts = z.infer<\n typeof StartScenarioOutlineOptsSchema\n>;\nexport type EndScenarioOutlineOpts = z.infer<\n typeof EndScenarioOutlineOptsSchema\n>;\nexport type StartScenarioOpts = z.infer<typeof StartScenarioOptsSchema>;\nexport type EndScenarioOpts = z.infer<typeof EndScenarioOptsSchema>;\nexport type StartStepOpts = z.infer<typeof StartStepOptsSchema>;\nexport type EndStepOpts = z.infer<typeof EndStepOptsSchema>;\nexport type StartBeforeOpts = z.infer<typeof StartBeforeOptsSchema>;\nexport type EndBeforeOpts = z.infer<typeof EndBeforeOptsSchema>;\nexport type StartAfterOpts = z.infer<typeof StartAfterOptsSchema>;\nexport type EndAfterOpts = z.infer<typeof EndAfterOptsSchema>;\nexport type StartSetupOpts = z.infer<typeof StartSetupOptsSchema>;\nexport type EndSetupOpts = z.infer<typeof EndSetupOptsSchema>;\nexport type StartTeardownOpts = z.infer<typeof StartTeardownOptsSchema>;\nexport type EndTeardownOpts = z.infer<typeof EndTeardownOptsSchema>;\n","import { Class } from \"@autometa/types\";\nimport { InjectionToken } from \"tsyringe\";\nimport {\n EndAfterOpts,\n EndBeforeOpts,\n EndFeatureOpts,\n EndRuleOpts,\n EndScenarioOpts,\n EndSetupOpts,\n EndStepOpts,\n EndTeardownOpts,\n StartAfterOpts,\n StartBeforeOpts,\n StartFeatureOpts,\n StartRuleOpts,\n StartScenarioOpts,\n StartScenarioOutlineOpts,\n StartSetupOpts,\n StartStepOpts,\n StartTeardownOpts,\n} from \"./event-options\";\nimport {object, function as fun} from 'zod'\nexport type DependencyInstanceProvider = {\n token: InjectionToken<unknown>;\n instance: unknown;\n};\n\nexport const EventSubscriberSchema = object({\n onFeature: fun()\n})\nexport interface EventSubscriber {\n onFeatureStart?(opts: StartFeatureOpts): void;\n onFeatureEnd?(opts: EndFeatureOpts): void;\n onRuleStart?(opts: StartRuleOpts): void;\n onRuleEnd?(opts: EndRuleOpts): void;\n onScenarioOutlineStart?(opts: StartScenarioOutlineOpts): void;\n onScenarioOutlineEnd?(opts: EndScenarioOpts): void;\n onPreScenarioStart?(): void;\n onPostScenarioEnd?(): void;\n onScenarioStart?(opts: StartScenarioOpts): void;\n onScenarioEnd?(opts: EndScenarioOpts): void;\n onStepStart?(opts: StartStepOpts): void;\n onStepEnd?(opts: EndStepOpts): void;\n onSetupStart?(opts: StartSetupOpts): void;\n onSetupEnd?(opts: EndSetupOpts): void;\n onTeardownStart?(opts: StartTeardownOpts): void;\n onTeardownEnd?(opts: EndTeardownOpts): void;\n onBeforeStart?(opts: StartBeforeOpts): void;\n onBeforeEnd?(opts: EndBeforeOpts): void;\n onAfterStart?(opts: StartAfterOpts): void;\n onAfterEnd?(opts: EndAfterOpts): void;\n}\n\nexport abstract class ProviderSubscriber implements EventSubscriber {\n abstract get fixtures(): {\n instances?: DependencyInstanceProvider[];\n prototypes?: Class<unknown>[];\n };\n\n addFixtureInstance = (instance: DependencyInstanceProvider) => {\n this.fixtures.instances?.push(instance);\n };\n\n onFeatureStart?(opts: StartFeatureOpts): void;\n}\n","import EventEmitter from \"events\";\nimport { Cb } from \"./test-event-emitter\";\nimport { AutomationError } from \"@autometa/errors\";\nexport class TestEmitter<\n TArgsStart = never,\n TArgsEnd = never\n> extends EventEmitter {\n constructor(readonly name: string) {\n super();\n }\n\n emitStart = (...args: TArgsStart[]) => {\n this.emit(`onStart${this.name}`, ...args);\n };\n\n onStart = (action?: (...args: unknown[]) => void) => {\n if (action) {\n this.on(`onStart${this.name}`, tryWrapper(this.name, action));\n }\n };\n\n onEnd = (action?: (...args: unknown[]) => void) => {\n if (action) {\n this.on(`onEnd${this.name}`, tryWrapper(this.name, action));\n }\n };\n\n emitEnd = (...args: TArgsEnd[]) => {\n this.emit(`onEnd${this.name}`, ...args);\n };\n\n load = (onStart?: Cb, onEnd?: Cb) => {\n this.onStart(onStart);\n this.onEnd(onEnd);\n };\n}\n\nfunction tryWrapper(name: string, action: (...args: unknown[]) => void) {\n return (...args: unknown[]) => {\n try {\n const result = action(...args);\n if ((result as unknown) instanceof Promise) {\n throw new AutomationError(\n `A Subscriber action cannot be async or return a promise. Executing ${name}`\n );\n }\n } catch (e) {\n console.error(\n `Event Subscriber ${name} threw an error ${(e as Error).message}`\n );\n }\n };\n}\n","import { EventSubscriber } from \"./event-subscriber\";\nimport { TestEmitter } from \"./test-emitter\";\nimport {\n StartScenarioOutlineOpts,\n EndScenarioOutlineOpts,\n StartFeatureOpts,\n EndFeatureOpts,\n StartRuleOpts,\n EndRuleOpts,\n StartScenarioOpts,\n EndScenarioOpts,\n StartSetupOpts,\n EndSetupOpts,\n StartTeardownOpts,\n EndTeardownOpts,\n StartBeforeOpts,\n EndBeforeOpts,\n StartAfterOpts,\n EndAfterOpts,\n StartStepOpts,\n EndStepOpts,\n} from \"./event-options\";\nexport class TestEventEmitter {\n scenarioOutline = new TestEmitter<StartScenarioOutlineOpts, EndScenarioOutlineOpts>(\n \"ScenarioOutline\"\n );\n feature = new TestEmitter<StartFeatureOpts, EndFeatureOpts>(\"Feature\");\n rule = new TestEmitter<StartRuleOpts, EndRuleOpts>(\"Rule\");\n scenario = new TestEmitter<StartScenarioOpts, EndScenarioOpts>(\"Scenario\");\n scenarioWrapper = new TestEmitter<never, never>(\"Scenario Wrapper\");\n setup = new TestEmitter<StartSetupOpts, EndSetupOpts>(\"Setup\");\n teardown = new TestEmitter<StartTeardownOpts, EndTeardownOpts>(\"Teardown\");\n before = new TestEmitter<StartBeforeOpts, EndBeforeOpts>(\"Before\");\n after = new TestEmitter<StartAfterOpts, EndAfterOpts>(\"After\");\n step = new TestEmitter<StartStepOpts, EndStepOpts>(\"Step\");\n\n load = ({\n onFeatureStart,\n onFeatureEnd,\n onScenarioOutlineStart,\n onScenarioOutlineEnd,\n onScenarioStart,\n onScenarioEnd,\n onRuleStart,\n onRuleEnd,\n onBeforeStart,\n onBeforeEnd,\n onSetupStart,\n onSetupEnd,\n onStepStart,\n onStepEnd,\n onAfterStart,\n onAfterEnd,\n onTeardownStart,\n onTeardownEnd,\n onPreScenarioStart,\n onPostScenarioEnd,\n }: EventSubscriber) => {\n this.feature.load(onFeatureStart, onFeatureEnd);\n this.rule.load(onRuleStart, onRuleEnd);\n this.scenarioOutline.load(onScenarioOutlineStart, onScenarioOutlineEnd);\n this.scenario.load(onScenarioStart, onScenarioEnd);\n this.step.load(onStepStart, onStepEnd);\n this.before.load(onBeforeStart, onBeforeEnd);\n this.after.load(onAfterStart, onAfterEnd);\n this.setup.load(onSetupStart, onSetupEnd);\n this.teardown.load(onTeardownStart, onTeardownEnd);\n this.scenarioWrapper.load(onPreScenarioStart, onPostScenarioEnd);\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Cb = (...args: any[]) => void;\n","export const Status = {\n FAILED: \"FAILED\",\n BROKEN: \"BROKEN\",\n PASSED: \"PASSED\",\n SKIPPED: \"SKIPPED\",\n} as const;\n\nexport type StatusType = keyof typeof Status;\n"],"mappings":"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","names":["import_zod","fun","EventEmitter"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autometa/events",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -22,9 +22,10 @@
|
|
|
22
22
|
"@types/uuid": "^9.0.1",
|
|
23
23
|
"@typescript-eslint/eslint-plugin": "^5.54.1",
|
|
24
24
|
"@typescript-eslint/parser": "^5.54.1",
|
|
25
|
+
"@vitest/coverage-istanbul": "^0.31.0",
|
|
25
26
|
"eslint": "^8.37.0",
|
|
26
|
-
"eslint-config-custom": "0.5.1",
|
|
27
27
|
"eslint-config-prettier": "^8.3.0",
|
|
28
|
+
"istanbul": "^0.4.5",
|
|
28
29
|
"jest": "^29.5.0",
|
|
29
30
|
"nodemon": "^2.0.22",
|
|
30
31
|
"prettier": "^2.8.3",
|
|
@@ -32,33 +33,32 @@
|
|
|
32
33
|
"rimraf": "^4.1.2",
|
|
33
34
|
"ts-jest": "^29.0.5",
|
|
34
35
|
"ts-node": "^10.9.1",
|
|
35
|
-
"
|
|
36
|
-
"tsup": "^6.7.0",
|
|
36
|
+
"tsup": "^7.2.0",
|
|
37
37
|
"typescript": "^4.9.5",
|
|
38
|
-
"vitest": "
|
|
38
|
+
"vitest": "0.33.0",
|
|
39
39
|
"webpack": "^5.77.0",
|
|
40
40
|
"webpack-cli": "^5.0.1",
|
|
41
|
-
"webpack-node-externals": "^3.0.0"
|
|
41
|
+
"webpack-node-externals": "^3.0.0",
|
|
42
|
+
"eslint-config-custom": "0.6.0",
|
|
43
|
+
"tsconfig": "0.7.0"
|
|
42
44
|
},
|
|
43
45
|
"dependencies": {
|
|
44
|
-
"@autometa/gherkin": "0.3.3",
|
|
45
|
-
"@autometa/types": "0.3.1",
|
|
46
|
-
"@cucumber/gherkin": "^26.0.3",
|
|
47
46
|
"@cucumber/messages": "^21.0.1",
|
|
48
47
|
"@cucumber/tag-expressions": "^5.0.1",
|
|
49
48
|
"tsyringe": "^4.7.0",
|
|
50
|
-
"uuid": "^9.0.0"
|
|
49
|
+
"uuid": "^9.0.0",
|
|
50
|
+
"zod": "^3.21.4",
|
|
51
|
+
"@autometa/errors": "^0.1.1",
|
|
52
|
+
"@autometa/gherkin": "0.4.1",
|
|
53
|
+
"@autometa/types": "0.4.0"
|
|
51
54
|
},
|
|
52
55
|
"scripts": {
|
|
53
56
|
"test": "vitest run --passWithNoTests",
|
|
54
57
|
"prettify": "prettier --config .prettierrc 'src/**/*.ts' --write",
|
|
55
58
|
"lint": "eslint . --max-warnings 0",
|
|
56
59
|
"lint:fix": "eslint . --fix",
|
|
57
|
-
"
|
|
58
|
-
"build
|
|
59
|
-
"build:dts": "pnpm build:dts:tsc",
|
|
60
|
-
"build": "pnpm build:js && pnpm build:dts ",
|
|
60
|
+
"clean": "rimraf dist",
|
|
61
|
+
"build": "tsup",
|
|
61
62
|
"build:watch": "tsup --watch"
|
|
62
|
-
}
|
|
63
|
-
"readme": "# Gherkin\n\nGherkin implementation for @autometa.\n"
|
|
63
|
+
}
|
|
64
64
|
}
|
package/tsup.config.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Options } from "tsup";
|
|
2
2
|
export const tsup: Options = {
|
|
3
3
|
clean: true, // clean up the dist folder
|
|
4
|
+
dts: true, // generate .d.ts bundle
|
|
5
|
+
sourcemap:true, // generate sourcemaps
|
|
4
6
|
format: ["cjs", "esm"], // generate cjs and esm files
|
|
5
7
|
skipNodeModulesBundle: true,
|
|
6
8
|
entryPoints: ["src/index.ts"],
|