autotel-pact 3.0.0 → 4.0.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 (91) hide show
  1. package/dist/attrs-DbCs1ou0.cjs +61 -0
  2. package/dist/attrs-DbCs1ou0.cjs.map +1 -0
  3. package/dist/attrs-ElwK54Ym.js +43 -0
  4. package/dist/attrs-ElwK54Ym.js.map +1 -0
  5. package/dist/audit.cjs +155 -394
  6. package/dist/audit.cjs.map +1 -1
  7. package/dist/audit.d.cts +15 -13
  8. package/dist/audit.d.cts.map +1 -0
  9. package/dist/audit.d.ts +15 -13
  10. package/dist/audit.d.ts.map +1 -0
  11. package/dist/audit.js +153 -388
  12. package/dist/audit.js.map +1 -1
  13. package/dist/auto-wrap.cjs +206 -240
  14. package/dist/auto-wrap.cjs.map +1 -1
  15. package/dist/auto-wrap.d.cts +9 -7
  16. package/dist/auto-wrap.d.cts.map +1 -0
  17. package/dist/auto-wrap.d.ts +9 -7
  18. package/dist/auto-wrap.d.ts.map +1 -0
  19. package/dist/auto-wrap.js +205 -233
  20. package/dist/auto-wrap.js.map +1 -1
  21. package/dist/broker.cjs +65 -68
  22. package/dist/broker.cjs.map +1 -1
  23. package/dist/broker.d.cts +11 -9
  24. package/dist/broker.d.cts.map +1 -0
  25. package/dist/broker.d.ts +11 -9
  26. package/dist/broker.d.ts.map +1 -0
  27. package/dist/broker.js +64 -67
  28. package/dist/broker.js.map +1 -1
  29. package/dist/cli.cjs +166 -620
  30. package/dist/cli.cjs.map +1 -1
  31. package/dist/cli.d.cts +3 -2
  32. package/dist/cli.d.cts.map +1 -0
  33. package/dist/cli.d.ts +3 -2
  34. package/dist/cli.d.ts.map +1 -0
  35. package/dist/cli.js +165 -614
  36. package/dist/cli.js.map +1 -1
  37. package/dist/index.cjs +245 -952
  38. package/dist/index.cjs.map +1 -1
  39. package/dist/index.d.cts +90 -86
  40. package/dist/index.d.cts.map +1 -0
  41. package/dist/index.d.ts +90 -86
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +216 -918
  44. package/dist/index.js.map +1 -1
  45. package/dist/labels-0Cwk5E-8.cjs +41 -0
  46. package/dist/labels-0Cwk5E-8.cjs.map +1 -0
  47. package/dist/labels-BQjT_Zrv.js +23 -0
  48. package/dist/labels-BQjT_Zrv.js.map +1 -0
  49. package/dist/{ledger-D88TzN1c.d.cts → ledger-BAFsRX6y.d.cts} +8 -6
  50. package/dist/ledger-BAFsRX6y.d.cts.map +1 -0
  51. package/dist/ledger-BayQwemz.cjs +267 -0
  52. package/dist/ledger-BayQwemz.cjs.map +1 -0
  53. package/dist/{ledger-BuBmfWNc.d.ts → ledger-Bzh_6tbV.d.ts} +8 -6
  54. package/dist/ledger-Bzh_6tbV.d.ts.map +1 -0
  55. package/dist/ledger-sII3Ig3Y.js +174 -0
  56. package/dist/ledger-sII3Ig3Y.js.map +1 -0
  57. package/dist/pact-file-B8QjVrC7.cjs +76 -0
  58. package/dist/pact-file-B8QjVrC7.cjs.map +1 -0
  59. package/dist/pact-file-CkE4NFZ1.js +57 -0
  60. package/dist/pact-file-CkE4NFZ1.js.map +1 -0
  61. package/dist/processor.cjs +112 -185
  62. package/dist/processor.cjs.map +1 -1
  63. package/dist/processor.d.cts +41 -40
  64. package/dist/processor.d.cts.map +1 -0
  65. package/dist/processor.d.ts +41 -40
  66. package/dist/processor.d.ts.map +1 -0
  67. package/dist/processor.js +111 -179
  68. package/dist/processor.js.map +1 -1
  69. package/dist/provider.cjs +90 -205
  70. package/dist/provider.cjs.map +1 -1
  71. package/dist/provider.d.cts +26 -25
  72. package/dist/provider.d.cts.map +1 -0
  73. package/dist/provider.d.ts +26 -25
  74. package/dist/provider.d.ts.map +1 -0
  75. package/dist/provider.js +88 -199
  76. package/dist/provider.js.map +1 -1
  77. package/dist/tag.cjs +14 -44
  78. package/dist/tag.cjs.map +1 -1
  79. package/dist/tag.d.cts +4 -2
  80. package/dist/tag.d.cts.map +1 -0
  81. package/dist/tag.d.ts +4 -2
  82. package/dist/tag.d.ts.map +1 -0
  83. package/dist/tag.js +13 -42
  84. package/dist/tag.js.map +1 -1
  85. package/dist/types-D_0kgK2e.d.cts +154 -0
  86. package/dist/types-D_0kgK2e.d.cts.map +1 -0
  87. package/dist/types-D_0kgK2e.d.ts +154 -0
  88. package/dist/types-D_0kgK2e.d.ts.map +1 -0
  89. package/package.json +6 -6
  90. package/dist/types-BHGiwqcp.d.cts +0 -157
  91. package/dist/types-BHGiwqcp.d.ts +0 -157
@@ -0,0 +1,154 @@
1
+ //#region src/types.d.ts
2
+ /**
3
+ * Kind of contract interaction observed.
4
+ */
5
+ type PactKind = 'message' | 'http';
6
+ type PactOutcome = 'passed' | 'failed';
7
+ type LedgerSource = 'test' | 'production';
8
+ type LedgerRole = 'consumer' | 'provider';
9
+ declare const LEDGER_ENTRY_SPEC = "autotel-pact-ledger-entry/v0.2.0";
10
+ declare const AUDIT_MATRIX_SPEC = "autotel-pact-audit-matrix/v0.2.0";
11
+ /**
12
+ * Metadata about a single Pact interaction, derived from the reified message
13
+ * plus the consumer/provider config. Stamped onto the span and the ledger entry.
14
+ */
15
+ interface PactInteractionMeta {
16
+ consumer: string;
17
+ provider: string;
18
+ description: string;
19
+ states: string[];
20
+ kind: PactKind;
21
+ interactionId?: string;
22
+ }
23
+ /**
24
+ * Per-interaction ledger evidence (consumer exercise, provider verify, or production tag).
25
+ */
26
+ interface InteractionLedgerEntry {
27
+ type?: 'interaction';
28
+ spec: typeof LEDGER_ENTRY_SPEC;
29
+ consumer: string;
30
+ provider: string;
31
+ interaction: string;
32
+ interaction_id?: string;
33
+ states: string[];
34
+ kind: PactKind;
35
+ outcome: PactOutcome;
36
+ source: LedgerSource;
37
+ role: LedgerRole;
38
+ duration_ms: number;
39
+ observed_at: string;
40
+ trace_id?: string;
41
+ span_id?: string;
42
+ run_id?: string;
43
+ git_sha?: string;
44
+ error?: string;
45
+ }
46
+ /**
47
+ * Run-level provider verification failure — does not imply per-interaction outcomes.
48
+ */
49
+ interface ProviderVerificationRunEntry {
50
+ type: 'provider_verification_run';
51
+ spec: typeof LEDGER_ENTRY_SPEC;
52
+ consumer: string;
53
+ provider: string;
54
+ outcome: 'failed';
55
+ source: LedgerSource;
56
+ role: 'provider';
57
+ observed_at: string;
58
+ error: string;
59
+ run_id?: string;
60
+ git_sha?: string;
61
+ trace_id?: string;
62
+ span_id?: string;
63
+ }
64
+ type LedgerRecord = InteractionLedgerEntry | ProviderVerificationRunEntry;
65
+ declare function isInteractionLedgerEntry(entry: LedgerRecord): entry is InteractionLedgerEntry;
66
+ declare function isProviderVerificationRun(entry: LedgerRecord): entry is ProviderVerificationRunEntry;
67
+ /**
68
+ * Shape of a Pact contract file on disk (subset we read).
69
+ */
70
+ interface PactFile {
71
+ consumer: {
72
+ name: string;
73
+ };
74
+ provider: {
75
+ name: string;
76
+ };
77
+ messages?: Array<{
78
+ description: string;
79
+ providerStates?: Array<{
80
+ name: string;
81
+ }>;
82
+ metadata?: Record<string, unknown>;
83
+ }>;
84
+ interactions?: Array<{
85
+ description: string;
86
+ providerStates?: Array<{
87
+ name: string;
88
+ }>;
89
+ metadata?: Record<string, unknown>;
90
+ }>;
91
+ }
92
+ interface BrokerVerification {
93
+ consumer: string;
94
+ provider: string;
95
+ success: boolean;
96
+ verifiedAt?: string;
97
+ /**
98
+ * Populated when the broker could not be reached or returned a non-2xx
99
+ * response. Distinguishes "broker said the pact is not verified" (no error)
100
+ * from "we could not determine verification status" (error set).
101
+ */
102
+ error?: string;
103
+ }
104
+ /**
105
+ * One row in the audit matrix.
106
+ */
107
+ interface AuditRow {
108
+ consumer: string;
109
+ provider: string;
110
+ interaction: string;
111
+ interaction_id?: string;
112
+ kind: PactKind;
113
+ contracted: boolean;
114
+ /** Any interaction-level ledger hit in the window (test or production). */
115
+ observed: boolean;
116
+ test_seen: boolean;
117
+ prod_seen: boolean;
118
+ provider_verified: boolean;
119
+ broker_verified: boolean;
120
+ broker_verified_at?: string;
121
+ /** Set when the broker check failed (network error, non-2xx, parse error). */
122
+ broker_error?: string;
123
+ last_observed_at?: string;
124
+ last_outcome?: PactOutcome;
125
+ }
126
+ interface AuditMatrix {
127
+ spec: typeof AUDIT_MATRIX_SPEC;
128
+ rows: AuditRow[];
129
+ counts: {
130
+ total: number; /** Any contracted row. */
131
+ contracted: number; /** Any row with test_seen OR prod_seen. */
132
+ observed: number; /** Contracted AND seen in a consumer test. */
133
+ contracted_and_test_seen: number; /** Contracted but not seen in a consumer test (stale confidence). */
134
+ contracted_not_test_seen: number; /** Seen (test or production) without a matching contract (ungoverned flow). */
135
+ test_or_prod_seen_not_contracted: number;
136
+ test_seen: number;
137
+ prod_seen: number;
138
+ provider_verified: number;
139
+ broker_verified: number;
140
+ };
141
+ window_days: number;
142
+ generated_at: string;
143
+ verification_failures?: ProviderVerificationRunEntry[];
144
+ }
145
+ interface PactInteractionKey {
146
+ consumer: string;
147
+ provider: string;
148
+ interaction: string;
149
+ kind: PactKind;
150
+ interactionId?: string;
151
+ }
152
+ //#endregion
153
+ export { isProviderVerificationRun as _, InteractionLedgerEntry as a, LedgerRole as c, PactInteractionKey as d, PactInteractionMeta as f, isInteractionLedgerEntry as g, ProviderVerificationRunEntry as h, BrokerVerification as i, LedgerSource as l, PactOutcome as m, AuditMatrix as n, LEDGER_ENTRY_SPEC as o, PactKind as p, AuditRow as r, LedgerRecord as s, AUDIT_MATRIX_SPEC as t, PactFile as u };
154
+ //# sourceMappingURL=types-D_0kgK2e.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-D_0kgK2e.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;AAGA;;KAAY,QAAA;AAAA,KAEA,WAAA;AAAA,KAEA,YAAA;AAAA,KACA,UAAA;AAAA,cAEC,iBAAA;AAAA,cACA,iBAAA;;AANU;AAEvB;;UAUiB,mBAAA;EACf,QAAA;EACA,QAAA;EACA,WAAA;EACA,MAAA;EACA,IAAA,EAAM,QAAQ;EACd,aAAA;AAAA;AAbF;;;AAAA,UAmBiB,sBAAA;EACf,IAAA;EACA,IAAA,SAAa,iBAAA;EACb,QAAA;EACA,QAAA;EACA,WAAA;EACA,cAAA;EACA,MAAA;EACA,IAAA,EAAM,QAAA;EACN,OAAA,EAAS,WAAA;EACT,MAAA,EAAQ,YAAA;EACR,IAAA,EAAM,UAAA;EACN,WAAA;EACA,WAAA;EACA,QAAA;EACA,OAAA;EACA,MAAA;EACA,OAAA;EACA,KAAA;AAAA;AAlBF;;;AAAA,UAwBiB,4BAAA;EACf,IAAA;EACA,IAAA,SAAa,iBAAA;EACb,QAAA;EACA,QAAA;EACA,OAAA;EACA,MAAA,EAAQ,YAAY;EACpB,IAAA;EACA,WAAA;EACA,KAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,OAAA;AAAA;AAAA,KAGU,YAAA,GAAe,sBAAA,GAAyB,4BAA4B;AAAA,iBAEhE,wBAAA,CACd,KAAA,EAAO,YAAA,GACN,KAAA,IAAS,sBAAsB;AAAA,iBAIlB,yBAAA,CACd,KAAA,EAAO,YAAA,GACN,KAAA,IAAS,4BAA4B;;;;UAOvB,QAAA;EACf,QAAA;IAAY,IAAA;EAAA;EACZ,QAAA;IAAY,IAAA;EAAA;EACZ,QAAA,GAAW,KAAA;IACT,WAAA;IACA,cAAA,GAAiB,KAAA;MAAQ,IAAA;IAAA;IACzB,QAAA,GAAW,MAAA;EAAA;EAEb,YAAA,GAAe,KAAA;IACb,WAAA;IACA,cAAA,GAAiB,KAAA;MAAQ,IAAA;IAAA;IACzB,QAAA,GAAW,MAAA;EAAA;AAAA;AAAA,UAIE,kBAAA;EACf,QAAA;EACA,QAAA;EACA,OAAA;EACA,UAAA;EAzCA;;;;AAEO;EA6CP,KAAA;AAAA;;;AA1C8E;UAgD/D,QAAA;EACf,QAAA;EACA,QAAA;EACA,WAAA;EACA,cAAA;EACA,IAAA,EAAM,QAAA;EACN,UAAA;EAlDU;EAoDV,QAAA;EACA,SAAA;EACA,SAAA;EACA,iBAAA;EACA,eAAA;EACA,kBAAA;EApDO;EAsDP,YAAA;EACA,gBAAA;EACA,YAAA,GAAe,WAAW;AAAA;AAAA,UAGX,WAAA;EACf,IAAA,SAAa,iBAAA;EACb,IAAA,EAAM,QAAA;EACN,MAAA;IACE,KAAA,UAjDW;IAmDX,UAAA,UA/CiB;IAiDjB,QAAA,UAnDa;IAqDb,wBAAA,UArDkB;IAuDlB,wBAAA,UA9DU;IAgEV,gCAAA;IACA,SAAA;IACA,SAAA;IACA,iBAAA;IACA,eAAA;EAAA;EAEF,WAAA;EACA,YAAA;EACA,qBAAA,GAAwB,4BAAA;AAAA;AAAA,UAGT,kBAAA;EACf,QAAA;EACA,QAAA;EACA,WAAA;EACA,IAAA,EAAM,QAAQ;EACd,aAAA;AAAA"}
@@ -0,0 +1,154 @@
1
+ //#region src/types.d.ts
2
+ /**
3
+ * Kind of contract interaction observed.
4
+ */
5
+ type PactKind = 'message' | 'http';
6
+ type PactOutcome = 'passed' | 'failed';
7
+ type LedgerSource = 'test' | 'production';
8
+ type LedgerRole = 'consumer' | 'provider';
9
+ declare const LEDGER_ENTRY_SPEC = "autotel-pact-ledger-entry/v0.2.0";
10
+ declare const AUDIT_MATRIX_SPEC = "autotel-pact-audit-matrix/v0.2.0";
11
+ /**
12
+ * Metadata about a single Pact interaction, derived from the reified message
13
+ * plus the consumer/provider config. Stamped onto the span and the ledger entry.
14
+ */
15
+ interface PactInteractionMeta {
16
+ consumer: string;
17
+ provider: string;
18
+ description: string;
19
+ states: string[];
20
+ kind: PactKind;
21
+ interactionId?: string;
22
+ }
23
+ /**
24
+ * Per-interaction ledger evidence (consumer exercise, provider verify, or production tag).
25
+ */
26
+ interface InteractionLedgerEntry {
27
+ type?: 'interaction';
28
+ spec: typeof LEDGER_ENTRY_SPEC;
29
+ consumer: string;
30
+ provider: string;
31
+ interaction: string;
32
+ interaction_id?: string;
33
+ states: string[];
34
+ kind: PactKind;
35
+ outcome: PactOutcome;
36
+ source: LedgerSource;
37
+ role: LedgerRole;
38
+ duration_ms: number;
39
+ observed_at: string;
40
+ trace_id?: string;
41
+ span_id?: string;
42
+ run_id?: string;
43
+ git_sha?: string;
44
+ error?: string;
45
+ }
46
+ /**
47
+ * Run-level provider verification failure — does not imply per-interaction outcomes.
48
+ */
49
+ interface ProviderVerificationRunEntry {
50
+ type: 'provider_verification_run';
51
+ spec: typeof LEDGER_ENTRY_SPEC;
52
+ consumer: string;
53
+ provider: string;
54
+ outcome: 'failed';
55
+ source: LedgerSource;
56
+ role: 'provider';
57
+ observed_at: string;
58
+ error: string;
59
+ run_id?: string;
60
+ git_sha?: string;
61
+ trace_id?: string;
62
+ span_id?: string;
63
+ }
64
+ type LedgerRecord = InteractionLedgerEntry | ProviderVerificationRunEntry;
65
+ declare function isInteractionLedgerEntry(entry: LedgerRecord): entry is InteractionLedgerEntry;
66
+ declare function isProviderVerificationRun(entry: LedgerRecord): entry is ProviderVerificationRunEntry;
67
+ /**
68
+ * Shape of a Pact contract file on disk (subset we read).
69
+ */
70
+ interface PactFile {
71
+ consumer: {
72
+ name: string;
73
+ };
74
+ provider: {
75
+ name: string;
76
+ };
77
+ messages?: Array<{
78
+ description: string;
79
+ providerStates?: Array<{
80
+ name: string;
81
+ }>;
82
+ metadata?: Record<string, unknown>;
83
+ }>;
84
+ interactions?: Array<{
85
+ description: string;
86
+ providerStates?: Array<{
87
+ name: string;
88
+ }>;
89
+ metadata?: Record<string, unknown>;
90
+ }>;
91
+ }
92
+ interface BrokerVerification {
93
+ consumer: string;
94
+ provider: string;
95
+ success: boolean;
96
+ verifiedAt?: string;
97
+ /**
98
+ * Populated when the broker could not be reached or returned a non-2xx
99
+ * response. Distinguishes "broker said the pact is not verified" (no error)
100
+ * from "we could not determine verification status" (error set).
101
+ */
102
+ error?: string;
103
+ }
104
+ /**
105
+ * One row in the audit matrix.
106
+ */
107
+ interface AuditRow {
108
+ consumer: string;
109
+ provider: string;
110
+ interaction: string;
111
+ interaction_id?: string;
112
+ kind: PactKind;
113
+ contracted: boolean;
114
+ /** Any interaction-level ledger hit in the window (test or production). */
115
+ observed: boolean;
116
+ test_seen: boolean;
117
+ prod_seen: boolean;
118
+ provider_verified: boolean;
119
+ broker_verified: boolean;
120
+ broker_verified_at?: string;
121
+ /** Set when the broker check failed (network error, non-2xx, parse error). */
122
+ broker_error?: string;
123
+ last_observed_at?: string;
124
+ last_outcome?: PactOutcome;
125
+ }
126
+ interface AuditMatrix {
127
+ spec: typeof AUDIT_MATRIX_SPEC;
128
+ rows: AuditRow[];
129
+ counts: {
130
+ total: number; /** Any contracted row. */
131
+ contracted: number; /** Any row with test_seen OR prod_seen. */
132
+ observed: number; /** Contracted AND seen in a consumer test. */
133
+ contracted_and_test_seen: number; /** Contracted but not seen in a consumer test (stale confidence). */
134
+ contracted_not_test_seen: number; /** Seen (test or production) without a matching contract (ungoverned flow). */
135
+ test_or_prod_seen_not_contracted: number;
136
+ test_seen: number;
137
+ prod_seen: number;
138
+ provider_verified: number;
139
+ broker_verified: number;
140
+ };
141
+ window_days: number;
142
+ generated_at: string;
143
+ verification_failures?: ProviderVerificationRunEntry[];
144
+ }
145
+ interface PactInteractionKey {
146
+ consumer: string;
147
+ provider: string;
148
+ interaction: string;
149
+ kind: PactKind;
150
+ interactionId?: string;
151
+ }
152
+ //#endregion
153
+ export { isProviderVerificationRun as _, InteractionLedgerEntry as a, LedgerRole as c, PactInteractionKey as d, PactInteractionMeta as f, isInteractionLedgerEntry as g, ProviderVerificationRunEntry as h, BrokerVerification as i, LedgerSource as l, PactOutcome as m, AuditMatrix as n, LEDGER_ENTRY_SPEC as o, PactKind as p, AuditRow as r, LedgerRecord as s, AUDIT_MATRIX_SPEC as t, PactFile as u };
154
+ //# sourceMappingURL=types-D_0kgK2e.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-D_0kgK2e.d.ts","names":[],"sources":["../src/types.ts"],"mappings":";;AAGA;;KAAY,QAAA;AAAA,KAEA,WAAA;AAAA,KAEA,YAAA;AAAA,KACA,UAAA;AAAA,cAEC,iBAAA;AAAA,cACA,iBAAA;;AANU;AAEvB;;UAUiB,mBAAA;EACf,QAAA;EACA,QAAA;EACA,WAAA;EACA,MAAA;EACA,IAAA,EAAM,QAAQ;EACd,aAAA;AAAA;AAbF;;;AAAA,UAmBiB,sBAAA;EACf,IAAA;EACA,IAAA,SAAa,iBAAA;EACb,QAAA;EACA,QAAA;EACA,WAAA;EACA,cAAA;EACA,MAAA;EACA,IAAA,EAAM,QAAA;EACN,OAAA,EAAS,WAAA;EACT,MAAA,EAAQ,YAAA;EACR,IAAA,EAAM,UAAA;EACN,WAAA;EACA,WAAA;EACA,QAAA;EACA,OAAA;EACA,MAAA;EACA,OAAA;EACA,KAAA;AAAA;AAlBF;;;AAAA,UAwBiB,4BAAA;EACf,IAAA;EACA,IAAA,SAAa,iBAAA;EACb,QAAA;EACA,QAAA;EACA,OAAA;EACA,MAAA,EAAQ,YAAY;EACpB,IAAA;EACA,WAAA;EACA,KAAA;EACA,MAAA;EACA,OAAA;EACA,QAAA;EACA,OAAA;AAAA;AAAA,KAGU,YAAA,GAAe,sBAAA,GAAyB,4BAA4B;AAAA,iBAEhE,wBAAA,CACd,KAAA,EAAO,YAAA,GACN,KAAA,IAAS,sBAAsB;AAAA,iBAIlB,yBAAA,CACd,KAAA,EAAO,YAAA,GACN,KAAA,IAAS,4BAA4B;;;;UAOvB,QAAA;EACf,QAAA;IAAY,IAAA;EAAA;EACZ,QAAA;IAAY,IAAA;EAAA;EACZ,QAAA,GAAW,KAAA;IACT,WAAA;IACA,cAAA,GAAiB,KAAA;MAAQ,IAAA;IAAA;IACzB,QAAA,GAAW,MAAA;EAAA;EAEb,YAAA,GAAe,KAAA;IACb,WAAA;IACA,cAAA,GAAiB,KAAA;MAAQ,IAAA;IAAA;IACzB,QAAA,GAAW,MAAA;EAAA;AAAA;AAAA,UAIE,kBAAA;EACf,QAAA;EACA,QAAA;EACA,OAAA;EACA,UAAA;EAzCA;;;;AAEO;EA6CP,KAAA;AAAA;;;AA1C8E;UAgD/D,QAAA;EACf,QAAA;EACA,QAAA;EACA,WAAA;EACA,cAAA;EACA,IAAA,EAAM,QAAA;EACN,UAAA;EAlDU;EAoDV,QAAA;EACA,SAAA;EACA,SAAA;EACA,iBAAA;EACA,eAAA;EACA,kBAAA;EApDO;EAsDP,YAAA;EACA,gBAAA;EACA,YAAA,GAAe,WAAW;AAAA;AAAA,UAGX,WAAA;EACf,IAAA,SAAa,iBAAA;EACb,IAAA,EAAM,QAAA;EACN,MAAA;IACE,KAAA,UAjDW;IAmDX,UAAA,UA/CiB;IAiDjB,QAAA,UAnDa;IAqDb,wBAAA,UArDkB;IAuDlB,wBAAA,UA9DU;IAgEV,gCAAA;IACA,SAAA;IACA,SAAA;IACA,iBAAA;IACA,eAAA;EAAA;EAEF,WAAA;EACA,YAAA;EACA,qBAAA,GAAwB,4BAAA;AAAA;AAAA,UAGT,kBAAA;EACf,QAAA;EACA,QAAA;EACA,WAAA;EACA,IAAA,EAAM,QAAQ;EACd,aAAA;AAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autotel-pact",
3
- "version": "3.0.0",
3
+ "version": "4.0.0",
4
4
  "description": "Runtime evidence for Pact contracts — autotel bridge that records which contract interactions were actually exercised, and audits 'contracted but never observed'.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -70,7 +70,7 @@
70
70
  "license": "MIT",
71
71
  "peerDependencies": {
72
72
  "@pact-foundation/pact": ">=16",
73
- "autotel": "3.6.0"
73
+ "autotel": "3.7.0"
74
74
  },
75
75
  "peerDependenciesMeta": {
76
76
  "@pact-foundation/pact": {
@@ -81,10 +81,10 @@
81
81
  "@pact-foundation/pact": "^16.5.0",
82
82
  "@types/node": "^25.9.2",
83
83
  "rimraf": "^6.1.3",
84
- "tsup": "^8.5.1",
84
+ "tsdown": "^0.22.2",
85
85
  "typescript": "^6.0.3",
86
86
  "vitest": "^4.1.8",
87
- "autotel": "3.6.0"
87
+ "autotel": "3.7.0"
88
88
  },
89
89
  "repository": {
90
90
  "type": "git",
@@ -96,8 +96,8 @@
96
96
  },
97
97
  "homepage": "https://github.com/jagreehal/autotel/tree/main/packages/autotel-pact#readme",
98
98
  "scripts": {
99
- "build": "tsup",
100
- "dev": "tsup --watch",
99
+ "build": "tsdown",
100
+ "dev": "tsdown --watch",
101
101
  "lint": "eslint src/**/*.ts",
102
102
  "lint:fix": "eslint src/**/*.ts --fix",
103
103
  "type-check": "tsc --noEmit",
@@ -1,157 +0,0 @@
1
- /**
2
- * Kind of contract interaction observed.
3
- */
4
- type PactKind = 'message' | 'http';
5
- type PactOutcome = 'passed' | 'failed';
6
- type LedgerSource = 'test' | 'production';
7
- type LedgerRole = 'consumer' | 'provider';
8
- declare const LEDGER_ENTRY_SPEC = "autotel-pact-ledger-entry/v0.2.0";
9
- declare const AUDIT_MATRIX_SPEC = "autotel-pact-audit-matrix/v0.2.0";
10
- /**
11
- * Metadata about a single Pact interaction, derived from the reified message
12
- * plus the consumer/provider config. Stamped onto the span and the ledger entry.
13
- */
14
- interface PactInteractionMeta {
15
- consumer: string;
16
- provider: string;
17
- description: string;
18
- states: string[];
19
- kind: PactKind;
20
- interactionId?: string;
21
- }
22
- /**
23
- * Per-interaction ledger evidence (consumer exercise, provider verify, or production tag).
24
- */
25
- interface InteractionLedgerEntry {
26
- type?: 'interaction';
27
- spec: typeof LEDGER_ENTRY_SPEC;
28
- consumer: string;
29
- provider: string;
30
- interaction: string;
31
- interaction_id?: string;
32
- states: string[];
33
- kind: PactKind;
34
- outcome: PactOutcome;
35
- source: LedgerSource;
36
- role: LedgerRole;
37
- duration_ms: number;
38
- observed_at: string;
39
- trace_id?: string;
40
- span_id?: string;
41
- run_id?: string;
42
- git_sha?: string;
43
- error?: string;
44
- }
45
- /**
46
- * Run-level provider verification failure — does not imply per-interaction outcomes.
47
- */
48
- interface ProviderVerificationRunEntry {
49
- type: 'provider_verification_run';
50
- spec: typeof LEDGER_ENTRY_SPEC;
51
- consumer: string;
52
- provider: string;
53
- outcome: 'failed';
54
- source: LedgerSource;
55
- role: 'provider';
56
- observed_at: string;
57
- error: string;
58
- run_id?: string;
59
- git_sha?: string;
60
- trace_id?: string;
61
- span_id?: string;
62
- }
63
- type LedgerRecord = InteractionLedgerEntry | ProviderVerificationRunEntry;
64
- declare function isInteractionLedgerEntry(entry: LedgerRecord): entry is InteractionLedgerEntry;
65
- declare function isProviderVerificationRun(entry: LedgerRecord): entry is ProviderVerificationRunEntry;
66
- /**
67
- * Shape of a Pact contract file on disk (subset we read).
68
- */
69
- interface PactFile {
70
- consumer: {
71
- name: string;
72
- };
73
- provider: {
74
- name: string;
75
- };
76
- messages?: Array<{
77
- description: string;
78
- providerStates?: Array<{
79
- name: string;
80
- }>;
81
- metadata?: Record<string, unknown>;
82
- }>;
83
- interactions?: Array<{
84
- description: string;
85
- providerStates?: Array<{
86
- name: string;
87
- }>;
88
- metadata?: Record<string, unknown>;
89
- }>;
90
- }
91
- interface BrokerVerification {
92
- consumer: string;
93
- provider: string;
94
- success: boolean;
95
- verifiedAt?: string;
96
- /**
97
- * Populated when the broker could not be reached or returned a non-2xx
98
- * response. Distinguishes "broker said the pact is not verified" (no error)
99
- * from "we could not determine verification status" (error set).
100
- */
101
- error?: string;
102
- }
103
- /**
104
- * One row in the audit matrix.
105
- */
106
- interface AuditRow {
107
- consumer: string;
108
- provider: string;
109
- interaction: string;
110
- interaction_id?: string;
111
- kind: PactKind;
112
- contracted: boolean;
113
- /** Any interaction-level ledger hit in the window (test or production). */
114
- observed: boolean;
115
- test_seen: boolean;
116
- prod_seen: boolean;
117
- provider_verified: boolean;
118
- broker_verified: boolean;
119
- broker_verified_at?: string;
120
- /** Set when the broker check failed (network error, non-2xx, parse error). */
121
- broker_error?: string;
122
- last_observed_at?: string;
123
- last_outcome?: PactOutcome;
124
- }
125
- interface AuditMatrix {
126
- spec: typeof AUDIT_MATRIX_SPEC;
127
- rows: AuditRow[];
128
- counts: {
129
- total: number;
130
- /** Any contracted row. */
131
- contracted: number;
132
- /** Any row with test_seen OR prod_seen. */
133
- observed: number;
134
- /** Contracted AND seen in a consumer test. */
135
- contracted_and_test_seen: number;
136
- /** Contracted but not seen in a consumer test (stale confidence). */
137
- contracted_not_test_seen: number;
138
- /** Seen (test or production) without a matching contract (ungoverned flow). */
139
- test_or_prod_seen_not_contracted: number;
140
- test_seen: number;
141
- prod_seen: number;
142
- provider_verified: number;
143
- broker_verified: number;
144
- };
145
- window_days: number;
146
- generated_at: string;
147
- verification_failures?: ProviderVerificationRunEntry[];
148
- }
149
- interface PactInteractionKey {
150
- consumer: string;
151
- provider: string;
152
- interaction: string;
153
- kind: PactKind;
154
- interactionId?: string;
155
- }
156
-
157
- export { AUDIT_MATRIX_SPEC as A, type BrokerVerification as B, type InteractionLedgerEntry as I, LEDGER_ENTRY_SPEC as L, type PactInteractionMeta as P, type PactOutcome as a, type PactFile as b, type PactInteractionKey as c, type AuditMatrix as d, type AuditRow as e, type LedgerRecord as f, type LedgerRole as g, type LedgerSource as h, type PactKind as i, type ProviderVerificationRunEntry as j, isInteractionLedgerEntry as k, isProviderVerificationRun as l };
@@ -1,157 +0,0 @@
1
- /**
2
- * Kind of contract interaction observed.
3
- */
4
- type PactKind = 'message' | 'http';
5
- type PactOutcome = 'passed' | 'failed';
6
- type LedgerSource = 'test' | 'production';
7
- type LedgerRole = 'consumer' | 'provider';
8
- declare const LEDGER_ENTRY_SPEC = "autotel-pact-ledger-entry/v0.2.0";
9
- declare const AUDIT_MATRIX_SPEC = "autotel-pact-audit-matrix/v0.2.0";
10
- /**
11
- * Metadata about a single Pact interaction, derived from the reified message
12
- * plus the consumer/provider config. Stamped onto the span and the ledger entry.
13
- */
14
- interface PactInteractionMeta {
15
- consumer: string;
16
- provider: string;
17
- description: string;
18
- states: string[];
19
- kind: PactKind;
20
- interactionId?: string;
21
- }
22
- /**
23
- * Per-interaction ledger evidence (consumer exercise, provider verify, or production tag).
24
- */
25
- interface InteractionLedgerEntry {
26
- type?: 'interaction';
27
- spec: typeof LEDGER_ENTRY_SPEC;
28
- consumer: string;
29
- provider: string;
30
- interaction: string;
31
- interaction_id?: string;
32
- states: string[];
33
- kind: PactKind;
34
- outcome: PactOutcome;
35
- source: LedgerSource;
36
- role: LedgerRole;
37
- duration_ms: number;
38
- observed_at: string;
39
- trace_id?: string;
40
- span_id?: string;
41
- run_id?: string;
42
- git_sha?: string;
43
- error?: string;
44
- }
45
- /**
46
- * Run-level provider verification failure — does not imply per-interaction outcomes.
47
- */
48
- interface ProviderVerificationRunEntry {
49
- type: 'provider_verification_run';
50
- spec: typeof LEDGER_ENTRY_SPEC;
51
- consumer: string;
52
- provider: string;
53
- outcome: 'failed';
54
- source: LedgerSource;
55
- role: 'provider';
56
- observed_at: string;
57
- error: string;
58
- run_id?: string;
59
- git_sha?: string;
60
- trace_id?: string;
61
- span_id?: string;
62
- }
63
- type LedgerRecord = InteractionLedgerEntry | ProviderVerificationRunEntry;
64
- declare function isInteractionLedgerEntry(entry: LedgerRecord): entry is InteractionLedgerEntry;
65
- declare function isProviderVerificationRun(entry: LedgerRecord): entry is ProviderVerificationRunEntry;
66
- /**
67
- * Shape of a Pact contract file on disk (subset we read).
68
- */
69
- interface PactFile {
70
- consumer: {
71
- name: string;
72
- };
73
- provider: {
74
- name: string;
75
- };
76
- messages?: Array<{
77
- description: string;
78
- providerStates?: Array<{
79
- name: string;
80
- }>;
81
- metadata?: Record<string, unknown>;
82
- }>;
83
- interactions?: Array<{
84
- description: string;
85
- providerStates?: Array<{
86
- name: string;
87
- }>;
88
- metadata?: Record<string, unknown>;
89
- }>;
90
- }
91
- interface BrokerVerification {
92
- consumer: string;
93
- provider: string;
94
- success: boolean;
95
- verifiedAt?: string;
96
- /**
97
- * Populated when the broker could not be reached or returned a non-2xx
98
- * response. Distinguishes "broker said the pact is not verified" (no error)
99
- * from "we could not determine verification status" (error set).
100
- */
101
- error?: string;
102
- }
103
- /**
104
- * One row in the audit matrix.
105
- */
106
- interface AuditRow {
107
- consumer: string;
108
- provider: string;
109
- interaction: string;
110
- interaction_id?: string;
111
- kind: PactKind;
112
- contracted: boolean;
113
- /** Any interaction-level ledger hit in the window (test or production). */
114
- observed: boolean;
115
- test_seen: boolean;
116
- prod_seen: boolean;
117
- provider_verified: boolean;
118
- broker_verified: boolean;
119
- broker_verified_at?: string;
120
- /** Set when the broker check failed (network error, non-2xx, parse error). */
121
- broker_error?: string;
122
- last_observed_at?: string;
123
- last_outcome?: PactOutcome;
124
- }
125
- interface AuditMatrix {
126
- spec: typeof AUDIT_MATRIX_SPEC;
127
- rows: AuditRow[];
128
- counts: {
129
- total: number;
130
- /** Any contracted row. */
131
- contracted: number;
132
- /** Any row with test_seen OR prod_seen. */
133
- observed: number;
134
- /** Contracted AND seen in a consumer test. */
135
- contracted_and_test_seen: number;
136
- /** Contracted but not seen in a consumer test (stale confidence). */
137
- contracted_not_test_seen: number;
138
- /** Seen (test or production) without a matching contract (ungoverned flow). */
139
- test_or_prod_seen_not_contracted: number;
140
- test_seen: number;
141
- prod_seen: number;
142
- provider_verified: number;
143
- broker_verified: number;
144
- };
145
- window_days: number;
146
- generated_at: string;
147
- verification_failures?: ProviderVerificationRunEntry[];
148
- }
149
- interface PactInteractionKey {
150
- consumer: string;
151
- provider: string;
152
- interaction: string;
153
- kind: PactKind;
154
- interactionId?: string;
155
- }
156
-
157
- export { AUDIT_MATRIX_SPEC as A, type BrokerVerification as B, type InteractionLedgerEntry as I, LEDGER_ENTRY_SPEC as L, type PactInteractionMeta as P, type PactOutcome as a, type PactFile as b, type PactInteractionKey as c, type AuditMatrix as d, type AuditRow as e, type LedgerRecord as f, type LedgerRole as g, type LedgerSource as h, type PactKind as i, type ProviderVerificationRunEntry as j, isInteractionLedgerEntry as k, isProviderVerificationRun as l };