cv-contracts 4.0.1 → 5.0.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.
@@ -0,0 +1,47 @@
1
+ # Feature: Remove `access_token.expired` & `refresh_token.expired` webhook events
2
+
3
+ **Status:** Specified
4
+ **Scope:** Small (2 files, breaking change to a published contract enum)
5
+ **Date:** 2026-06-10
6
+
7
+ ## Problem
8
+
9
+ Backend no longer supports the webhook subscription events `access_token.expired`
10
+ and `refresh_token.expired`. These events must be removed from the contracts package
11
+ so consumers stop referencing event names the backend will never emit.
12
+
13
+ ## Goal
14
+
15
+ Remove all occurrences of the two token-expiry webhook events from `cv-contracts`.
16
+
17
+ ## Occurrences (verified)
18
+
19
+ | File | Lines | Content |
20
+ |---|---|---|
21
+ | `src/enums/webhook/SubscriptionEvents.ts` | 37–40 | `WEBHOOK_ACCESS_TOKEN_EXPIRED`, `WEBHOOK_REFRESH_TOKEN_EXPIRED` + their section comment |
22
+ | `src/schemas/webhook/WebhookPayloadSchema.ts` | 81–82 | `'access_token.expired'`, `'refresh_token.expired'` in the `SubscriptionEvents` enum |
23
+
24
+ No other references exist in `src/` (verified via grep). The interface
25
+ `WebhookPayload.ts` types `eventName` as `SubscriptionEvents` and needs no change.
26
+
27
+ ## Requirements
28
+
29
+ - **R1** — Remove `WEBHOOK_ACCESS_TOKEN_EXPIRED` and `WEBHOOK_REFRESH_TOKEN_EXPIRED`
30
+ members (and their `// Webhooks Events...` section comment) from `SubscriptionEvents.ts`.
31
+ - **R2** — Remove the two corresponding string literals from the generated
32
+ `WebhookPayloadSchema.ts`. The schema is generated, so regenerate it rather than
33
+ hand-editing: `npm run generate-schemas`.
34
+ - **R3** — Build must pass: `npm run build` (clean → generate-schemas → lint → tsc).
35
+
36
+ ## Implementation notes
37
+
38
+ - Source of truth is the enum in `SubscriptionEvents.ts`. The schema file is produced
39
+ by `node ./src/utils/generate-schema-from-contracts.js` (per `generate-schemas` script).
40
+ Edit the enum, then run `npm run generate-schemas` to propagate to the schema.
41
+ - This is a **breaking change** to the published contract enum → warrants a **major**
42
+ version bump (consistent with the v4.0.0 precedent for removing `thread_id`).
43
+
44
+ ## Verification
45
+
46
+ - `grep -rniE "access_token\.expired|refresh_token\.expired|TOKEN_EXPIRED" src` returns nothing.
47
+ - `npm run build` succeeds.
@@ -31,8 +31,6 @@ export declare enum SubscriptionEvents {
31
31
  WORKSPACE_USER_LEFT = "workspace.user.left",
32
32
  WORKSPACE_USER_REMOVED = "workspace.user.removed",
33
33
  WORKSPACE_FINDABLE_CHANNEL_CREATED = "workspace.findable-channel.created",
34
- WEBHOOK_ACCESS_TOKEN_EXPIRED = "access_token.expired",
35
- WEBHOOK_REFRESH_TOKEN_EXPIRED = "refresh_token.expired",
36
34
  AI_PROMPT_RESPONSE_GENERATED = "ai.prompt.response.generated",
37
35
  ACTION_ITEM_CREATED = "action-item.created",
38
36
  ACTION_ITEM_UPDATED = "action-item.updated",
@@ -35,9 +35,6 @@ var SubscriptionEvents;
35
35
  SubscriptionEvents["WORKSPACE_USER_LEFT"] = "workspace.user.left";
36
36
  SubscriptionEvents["WORKSPACE_USER_REMOVED"] = "workspace.user.removed";
37
37
  SubscriptionEvents["WORKSPACE_FINDABLE_CHANNEL_CREATED"] = "workspace.findable-channel.created";
38
- // Webhooks Events, users don't need to subscribe, every user that is subscribed to any event could get one of.
39
- SubscriptionEvents["WEBHOOK_ACCESS_TOKEN_EXPIRED"] = "access_token.expired";
40
- SubscriptionEvents["WEBHOOK_REFRESH_TOKEN_EXPIRED"] = "refresh_token.expired";
41
38
  // AI Events
42
39
  SubscriptionEvents["AI_PROMPT_RESPONSE_GENERATED"] = "ai.prompt.response.generated";
43
40
  // Action Items
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionEvents.js","sourceRoot":"","sources":["../../../src/enums/webhook/SubscriptionEvents.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAgDX;AAhDD,WAAY,kBAAkB;IAC5B,eAAe;IACf,mEAA6C,CAAA;IAC7C,yDAAmC,CAAA;IACnC,uDAAiC,CAAA;IACjC,yDAAmC,CAAA;IACnC,yDAAmC,CAAA;IACnC,+DAAyC,CAAA;IACzC,2DAAqC,CAAA;IACrC,yDAAmC,CAAA;IACnC,uFAAiE,CAAA;IACjE,iEAA2C,CAAA;IAC3C,6EAAuD,CAAA;IACvD,6EAAuD,CAAA;IAEvD,eAAe;IACf,yDAAmC,CAAA;IACnC,yDAAmC,CAAA;IACnC,iEAA2C,CAAA;IAC3C,iEAA2C,CAAA;IAC3C,6DAAuC,CAAA;IACvC,mEAA6C,CAAA;IAC7C,yEAAmD,CAAA;IACnD,+EAAyD,CAAA;IACzD,iEAA2C,CAAA;IAC3C,uEAAiD,CAAA;IACjD,yEAAmD,CAAA;IACnD,mFAA6D,CAAA;IAE7D,gBAAgB;IAChB,qEAA+C,CAAA;IAC/C,mEAA6C,CAAA;IAC7C,iEAA2C,CAAA;IAC3C,uEAAiD,CAAA;IACjD,+FAAyE,CAAA;IAEzE,+GAA+G;IAC/G,2EAAqD,CAAA;IACrD,6EAAuD,CAAA;IAEvD,YAAY;IACZ,mFAA6D,CAAA;IAE7D,eAAe;IACf,iEAA2C,CAAA;IAC3C,iEAA2C,CAAA;IAC3C,iEAA2C,CAAA;IAC3C,+EAAyD,CAAA;AAC3D,CAAC,EAhDW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAgD7B"}
1
+ {"version":3,"file":"SubscriptionEvents.js","sourceRoot":"","sources":["../../../src/enums/webhook/SubscriptionEvents.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBA4CX;AA5CD,WAAY,kBAAkB;IAC5B,eAAe;IACf,mEAA6C,CAAA;IAC7C,yDAAmC,CAAA;IACnC,uDAAiC,CAAA;IACjC,yDAAmC,CAAA;IACnC,yDAAmC,CAAA;IACnC,+DAAyC,CAAA;IACzC,2DAAqC,CAAA;IACrC,yDAAmC,CAAA;IACnC,uFAAiE,CAAA;IACjE,iEAA2C,CAAA;IAC3C,6EAAuD,CAAA;IACvD,6EAAuD,CAAA;IAEvD,eAAe;IACf,yDAAmC,CAAA;IACnC,yDAAmC,CAAA;IACnC,iEAA2C,CAAA;IAC3C,iEAA2C,CAAA;IAC3C,6DAAuC,CAAA;IACvC,mEAA6C,CAAA;IAC7C,yEAAmD,CAAA;IACnD,+EAAyD,CAAA;IACzD,iEAA2C,CAAA;IAC3C,uEAAiD,CAAA;IACjD,yEAAmD,CAAA;IACnD,mFAA6D,CAAA;IAE7D,gBAAgB;IAChB,qEAA+C,CAAA;IAC/C,mEAA6C,CAAA;IAC7C,iEAA2C,CAAA;IAC3C,uEAAiD,CAAA;IACjD,+FAAyE,CAAA;IAEzE,YAAY;IACZ,mFAA6D,CAAA;IAE7D,eAAe;IACf,iEAA2C,CAAA;IAC3C,iEAA2C,CAAA;IAC3C,iEAA2C,CAAA;IAC3C,+EAAyD,CAAA;AAC3D,CAAC,EA5CW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QA4C7B"}
@@ -81,8 +81,6 @@ exports.WebhookPayloadSchema = {
81
81
  'workspace.user.left',
82
82
  'workspace.user.removed',
83
83
  'workspace.findable-channel.created',
84
- 'access_token.expired',
85
- 'refresh_token.expired',
86
84
  'ai.prompt.response.generated',
87
85
  'action-item.created',
88
86
  'action-item.updated',
@@ -1 +1 @@
1
- {"version":3,"file":"WebhookPayloadSchema.js","sourceRoot":"","sources":["../../../src/schemas/webhook/WebhookPayloadSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebhookPayloadSchema.js","sourceRoot":"","sources":["../../../src/schemas/webhook/WebhookPayloadSchema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cv-contracts",
3
- "version": "4.0.1",
3
+ "version": "5.0.1",
4
4
  "description": "Carbon Voice Contracts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",