@scenarist/core 0.2.0 → 0.3.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 (55) hide show
  1. package/dist/adapters/console-logger.d.ts +40 -0
  2. package/dist/adapters/console-logger.d.ts.map +1 -0
  3. package/dist/adapters/console-logger.js +193 -0
  4. package/dist/adapters/in-memory-state-manager.d.ts.map +1 -1
  5. package/dist/adapters/in-memory-state-manager.js +3 -0
  6. package/dist/adapters/index.d.ts +2 -0
  7. package/dist/adapters/index.d.ts.map +1 -1
  8. package/dist/adapters/index.js +2 -0
  9. package/dist/adapters/noop-logger.d.ts +26 -0
  10. package/dist/adapters/noop-logger.d.ts.map +1 -0
  11. package/dist/adapters/noop-logger.js +26 -0
  12. package/dist/contracts/framework-adapter.d.ts +18 -0
  13. package/dist/contracts/framework-adapter.d.ts.map +1 -1
  14. package/dist/domain/config-builder.d.ts.map +1 -1
  15. package/dist/domain/config-builder.js +13 -0
  16. package/dist/domain/deep-equals.d.ts.map +1 -1
  17. package/dist/domain/deep-equals.js +2 -0
  18. package/dist/domain/index.d.ts +1 -0
  19. package/dist/domain/index.d.ts.map +1 -1
  20. package/dist/domain/index.js +1 -0
  21. package/dist/domain/log-events.d.ts +67 -0
  22. package/dist/domain/log-events.d.ts.map +1 -0
  23. package/dist/domain/log-events.js +70 -0
  24. package/dist/domain/path-extraction.js +1 -0
  25. package/dist/domain/regex-matching.d.ts.map +1 -1
  26. package/dist/domain/regex-matching.js +1 -0
  27. package/dist/domain/response-selector.d.ts +2 -1
  28. package/dist/domain/response-selector.d.ts.map +1 -1
  29. package/dist/domain/response-selector.js +93 -11
  30. package/dist/domain/scenario-manager.d.ts +4 -2
  31. package/dist/domain/scenario-manager.d.ts.map +1 -1
  32. package/dist/domain/scenario-manager.js +42 -24
  33. package/dist/domain/state-condition-evaluator.js +1 -0
  34. package/dist/domain/template-replacement.d.ts.map +1 -1
  35. package/dist/domain/template-replacement.js +3 -0
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +2 -0
  39. package/dist/ports/driven/logger.d.ts +119 -0
  40. package/dist/ports/driven/logger.d.ts.map +1 -0
  41. package/dist/ports/driven/logger.js +1 -0
  42. package/dist/ports/driven/response-selector.d.ts +3 -1
  43. package/dist/ports/driven/response-selector.d.ts.map +1 -1
  44. package/dist/ports/driven/response-selector.js +1 -0
  45. package/dist/ports/index.d.ts +1 -0
  46. package/dist/ports/index.d.ts.map +1 -1
  47. package/dist/types/config.d.ts +29 -0
  48. package/dist/types/config.d.ts.map +1 -1
  49. package/dist/types/errors.d.ts +49 -0
  50. package/dist/types/errors.d.ts.map +1 -0
  51. package/dist/types/errors.js +26 -0
  52. package/dist/types/index.d.ts +3 -1
  53. package/dist/types/index.d.ts.map +1 -1
  54. package/dist/types/index.js +2 -1
  55. package/package.json +5 -5
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Standard error codes for Scenarist errors.
3
+ * Use these constants when creating ScenaristError instances.
4
+ */
5
+ export declare const ErrorCodes: {
6
+ readonly SCENARIO_NOT_FOUND: "SCENARIO_NOT_FOUND";
7
+ readonly DUPLICATE_SCENARIO: "DUPLICATE_SCENARIO";
8
+ readonly NO_MOCK_FOUND: "NO_MOCK_FOUND";
9
+ readonly SEQUENCE_EXHAUSTED: "SEQUENCE_EXHAUSTED";
10
+ readonly MISSING_TEST_ID: "MISSING_TEST_ID";
11
+ readonly VALIDATION_ERROR: "VALIDATION_ERROR";
12
+ };
13
+ export type ErrorCode = (typeof ErrorCodes)[keyof typeof ErrorCodes];
14
+ /**
15
+ * Context information for Scenarist errors.
16
+ * Provides structured data to help diagnose and fix issues.
17
+ */
18
+ export type ErrorContext = {
19
+ readonly testId?: string;
20
+ readonly scenarioId?: string;
21
+ readonly requestInfo?: {
22
+ readonly method: string;
23
+ readonly url: string;
24
+ readonly headers?: Record<string, string>;
25
+ };
26
+ readonly mockInfo?: {
27
+ readonly index: number;
28
+ readonly matchCriteria?: object;
29
+ };
30
+ readonly hint?: string;
31
+ };
32
+ /**
33
+ * Options for creating a ScenaristError.
34
+ */
35
+ export type ScenaristErrorOptions = {
36
+ readonly code: string;
37
+ readonly context: ErrorContext;
38
+ readonly cause?: Error;
39
+ };
40
+ /**
41
+ * Base error class for all Scenarist errors.
42
+ * Includes error code and structured context for debugging.
43
+ */
44
+ export declare class ScenaristError extends Error {
45
+ readonly code: string;
46
+ readonly context: ErrorContext;
47
+ constructor(message: string, options: ScenaristErrorOptions);
48
+ }
49
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAC;AAErE;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE;QACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC3C,CAAC;IACF,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB;CAM5D"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Standard error codes for Scenarist errors.
3
+ * Use these constants when creating ScenaristError instances.
4
+ */
5
+ export const ErrorCodes = {
6
+ SCENARIO_NOT_FOUND: "SCENARIO_NOT_FOUND",
7
+ DUPLICATE_SCENARIO: "DUPLICATE_SCENARIO",
8
+ NO_MOCK_FOUND: "NO_MOCK_FOUND",
9
+ SEQUENCE_EXHAUSTED: "SEQUENCE_EXHAUSTED",
10
+ MISSING_TEST_ID: "MISSING_TEST_ID",
11
+ VALIDATION_ERROR: "VALIDATION_ERROR",
12
+ };
13
+ /**
14
+ * Base error class for all Scenarist errors.
15
+ * Includes error code and structured context for debugging.
16
+ */
17
+ export class ScenaristError extends Error {
18
+ code;
19
+ context;
20
+ constructor(message, options) {
21
+ super(message, { cause: options.cause });
22
+ this.name = "ScenaristError";
23
+ this.code = options.code;
24
+ this.context = options.context;
25
+ }
26
+ }
@@ -1,4 +1,6 @@
1
1
  export type { HttpMethod, ScenaristResponse, ScenaristMock, ScenaristMatch, RepeatMode, ScenaristSequence, ScenaristCaptureConfig, ScenaristScenario, } from "../schemas/scenario-definition.js";
2
2
  export type { HttpRequestContext, ScenaristMockWithParams, ActiveScenario, ScenaristResult, ScenaristScenarios, ScenarioIds, } from "./scenario.js";
3
- export type { ScenaristConfig, ScenaristConfigInput } from "./config.js";
3
+ export type { ScenaristConfig, ScenaristConfigInput, ErrorBehavior, ErrorBehaviors, } from "./config.js";
4
+ export { ScenaristError, ErrorCodes } from "./errors.js";
5
+ export type { ErrorContext, ErrorCode, ScenaristErrorOptions, } from "./errors.js";
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAG3C,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAG3C,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,WAAW,GACZ,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,aAAa,EACb,cAAc,GACf,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EACV,YAAY,EACZ,SAAS,EACT,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
@@ -1 +1,2 @@
1
- export {};
1
+ // Error types
2
+ export { ScenaristError, ErrorCodes } from "./errors.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scenarist/core",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Internal: Hexagonal architecture core for scenario-based testing with MSW",
5
5
  "author": "Paul Hammond (citypaul) <paul@packsoftware.co.uk>",
6
6
  "license": "MIT",
@@ -51,13 +51,13 @@
51
51
  },
52
52
  "devDependencies": {
53
53
  "@vitest/coverage-v8": "^4.0.14",
54
- "@vitest/ui": "^4.0.14",
54
+ "@vitest/ui": "^4.0.15",
55
55
  "eslint": "^9.39.1",
56
56
  "fast-check": "^4.3.0",
57
57
  "typescript": "^5.9.3",
58
- "vitest": "^4.0.14",
59
- "@scenarist/typescript-config": "0.0.0",
60
- "@scenarist/eslint-config": "0.0.0"
58
+ "vitest": "^4.0.15",
59
+ "@scenarist/eslint-config": "0.0.0",
60
+ "@scenarist/typescript-config": "0.0.0"
61
61
  },
62
62
  "scripts": {
63
63
  "build": "tsc",