cv-contracts 4.0.1 → 5.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/.specs/features/remove-token-expired-events/spec.md +47 -0
- package/dist/enums/AttachmentStatus.d.ts +6 -0
- package/dist/enums/AttachmentStatus.js +11 -0
- package/dist/enums/AttachmentStatus.js.map +1 -0
- package/dist/enums/index.d.ts +1 -0
- package/dist/enums/index.js +1 -0
- package/dist/enums/index.js.map +1 -1
- package/dist/enums/webhook/SubscriptionEvents.d.ts +2 -2
- package/dist/enums/webhook/SubscriptionEvents.js +2 -3
- package/dist/enums/webhook/SubscriptionEvents.js.map +1 -1
- package/dist/schemas/webhook/WebhookPayloadSchema.js +2 -2
- package/dist/schemas/webhook/WebhookPayloadSchema.js.map +1 -1
- package/package.json +1 -1
|
@@ -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.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AttachmentStatus = void 0;
|
|
4
|
+
var AttachmentStatus;
|
|
5
|
+
(function (AttachmentStatus) {
|
|
6
|
+
AttachmentStatus["Initializing"] = "Initializing";
|
|
7
|
+
AttachmentStatus["Uploading"] = "Uploading";
|
|
8
|
+
AttachmentStatus["Uploaded"] = "Uploaded";
|
|
9
|
+
AttachmentStatus["Failed"] = "Failed";
|
|
10
|
+
})(AttachmentStatus = exports.AttachmentStatus || (exports.AttachmentStatus = {}));
|
|
11
|
+
//# sourceMappingURL=AttachmentStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttachmentStatus.js","sourceRoot":"","sources":["../../src/enums/AttachmentStatus.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,iDAA6B,CAAA;IAC7B,2CAAuB,CAAA;IACvB,yCAAqB,CAAA;IACrB,qCAAiB,CAAA;AACnB,CAAC,EALW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAK3B"}
|
package/dist/enums/index.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export * from './MessageType';
|
|
|
5
5
|
export * from './LabelBehavior';
|
|
6
6
|
export * from './LabelType';
|
|
7
7
|
export * from './AttachmentType';
|
|
8
|
+
export * from './AttachmentStatus';
|
|
8
9
|
export * from './ElevenLabsSupportedLanguages';
|
|
9
10
|
export * from './webhook';
|
|
10
11
|
export * from './CreateConversationFromType';
|
package/dist/enums/index.js
CHANGED
|
@@ -21,6 +21,7 @@ __exportStar(require("./MessageType"), exports);
|
|
|
21
21
|
__exportStar(require("./LabelBehavior"), exports);
|
|
22
22
|
__exportStar(require("./LabelType"), exports);
|
|
23
23
|
__exportStar(require("./AttachmentType"), exports);
|
|
24
|
+
__exportStar(require("./AttachmentStatus"), exports);
|
|
24
25
|
__exportStar(require("./ElevenLabsSupportedLanguages"), exports);
|
|
25
26
|
__exportStar(require("./webhook"), exports);
|
|
26
27
|
__exportStar(require("./CreateConversationFromType"), exports);
|
package/dist/enums/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,2DAAyC;AACzC,kDAAgC;AAChC,gDAA8B;AAC9B,kDAAgC;AAChC,8CAA4B;AAC5B,mDAAiC;AACjC,iEAA+C;AAC/C,4CAA0B;AAC1B,+DAA6C;AAC7C,qDAAmC;AACnC,sDAAoC;AACpC,+CAA6B;AAC7B,qDAAmC;AACnC,4DAA0C;AAC1C,yCAAuB;AACvB,qDAAmC;AACnC,gDAA8B;AAC9B,0DAAwC;AACxC,8CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,2DAAyC;AACzC,kDAAgC;AAChC,gDAA8B;AAC9B,kDAAgC;AAChC,8CAA4B;AAC5B,mDAAiC;AACjC,qDAAmC;AACnC,iEAA+C;AAC/C,4CAA0B;AAC1B,+DAA6C;AAC7C,qDAAmC;AACnC,sDAAoC;AACpC,+CAA6B;AAC7B,qDAAmC;AACnC,4DAA0C;AAC1C,yCAAuB;AACvB,qDAAmC;AACnC,gDAA8B;AAC9B,0DAAwC;AACxC,8CAA4B"}
|
|
@@ -10,6 +10,8 @@ export declare enum SubscriptionEvents {
|
|
|
10
10
|
MESSAGE_DELETED = "message.deleted",
|
|
11
11
|
MESSAGE_DISCUSSION_NOTES_ADDED = "message.discussion-notes.added",
|
|
12
12
|
MESSAGE_LABEL_ADDED = "message.label.added",
|
|
13
|
+
MESSAGE_ATTACHMENT_ADDED = "message.attachment.added",
|
|
14
|
+
MESSAGE_ATTACHMENT_UPLOADED = "message.attachment.uploaded",
|
|
13
15
|
MESSAGE_POSTED_TO_CHANNEL = "message.posted.to.channel",
|
|
14
16
|
MESSAGE_VOICEMEMO_CREATED = "message.voicememo.created",
|
|
15
17
|
/** Channels */
|
|
@@ -31,8 +33,6 @@ export declare enum SubscriptionEvents {
|
|
|
31
33
|
WORKSPACE_USER_LEFT = "workspace.user.left",
|
|
32
34
|
WORKSPACE_USER_REMOVED = "workspace.user.removed",
|
|
33
35
|
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
36
|
AI_PROMPT_RESPONSE_GENERATED = "ai.prompt.response.generated",
|
|
37
37
|
ACTION_ITEM_CREATED = "action-item.created",
|
|
38
38
|
ACTION_ITEM_UPDATED = "action-item.updated",
|
|
@@ -14,6 +14,8 @@ var SubscriptionEvents;
|
|
|
14
14
|
SubscriptionEvents["MESSAGE_DELETED"] = "message.deleted";
|
|
15
15
|
SubscriptionEvents["MESSAGE_DISCUSSION_NOTES_ADDED"] = "message.discussion-notes.added";
|
|
16
16
|
SubscriptionEvents["MESSAGE_LABEL_ADDED"] = "message.label.added";
|
|
17
|
+
SubscriptionEvents["MESSAGE_ATTACHMENT_ADDED"] = "message.attachment.added";
|
|
18
|
+
SubscriptionEvents["MESSAGE_ATTACHMENT_UPLOADED"] = "message.attachment.uploaded";
|
|
17
19
|
SubscriptionEvents["MESSAGE_POSTED_TO_CHANNEL"] = "message.posted.to.channel";
|
|
18
20
|
SubscriptionEvents["MESSAGE_VOICEMEMO_CREATED"] = "message.voicememo.created";
|
|
19
21
|
/** Channels */
|
|
@@ -35,9 +37,6 @@ var SubscriptionEvents;
|
|
|
35
37
|
SubscriptionEvents["WORKSPACE_USER_LEFT"] = "workspace.user.left";
|
|
36
38
|
SubscriptionEvents["WORKSPACE_USER_REMOVED"] = "workspace.user.removed";
|
|
37
39
|
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
40
|
// AI Events
|
|
42
41
|
SubscriptionEvents["AI_PROMPT_RESPONSE_GENERATED"] = "ai.prompt.response.generated";
|
|
43
42
|
// Action Items
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionEvents.js","sourceRoot":"","sources":["../../../src/enums/webhook/SubscriptionEvents.ts"],"names":[],"mappings":";;;AAAA,IAAY,
|
|
1
|
+
{"version":3,"file":"SubscriptionEvents.js","sourceRoot":"","sources":["../../../src/enums/webhook/SubscriptionEvents.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBA8CX;AA9CD,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,2EAAqD,CAAA;IACrD,iFAA2D,CAAA;IAC3D,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,EA9CW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QA8C7B"}
|
|
@@ -62,6 +62,8 @@ exports.WebhookPayloadSchema = {
|
|
|
62
62
|
'message.deleted',
|
|
63
63
|
'message.discussion-notes.added',
|
|
64
64
|
'message.label.added',
|
|
65
|
+
'message.attachment.added',
|
|
66
|
+
'message.attachment.uploaded',
|
|
65
67
|
'message.posted.to.channel',
|
|
66
68
|
'message.voicememo.created',
|
|
67
69
|
'channel.created',
|
|
@@ -81,8 +83,6 @@ exports.WebhookPayloadSchema = {
|
|
|
81
83
|
'workspace.user.left',
|
|
82
84
|
'workspace.user.removed',
|
|
83
85
|
'workspace.findable-channel.created',
|
|
84
|
-
'access_token.expired',
|
|
85
|
-
'refresh_token.expired',
|
|
86
86
|
'ai.prompt.response.generated',
|
|
87
87
|
'action-item.created',
|
|
88
88
|
'action-item.updated',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebhookPayloadSchema.js","sourceRoot":"","sources":["../../../src/schemas/webhook/WebhookPayloadSchema.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG;IAClC,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,SAAS,EAAE;YACT,IAAI,EAAE,kCAAkC;YACxC,WAAW,EAAE,8BAA8B;SAC5C;QACD,iBAAiB,EAAE;YACjB,WAAW,EAAE,mDAAmD;YAChE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;aACf;SACF;QACD,sBAAsB,EAAE;YACtB,WAAW,EAAE,mCAAmC;YAChD,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,sCAAsC;aAC7C;SACF;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,kCAAkC;oBACxC,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,UAAU,EAAE;oBACV,WAAW,EAAE,wDAAwD;oBACrE,IAAI,EAAE,QAAQ;iBACf;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,4BAA4B;oBAClC,WAAW,EAAE,0BAA0B;iBACxC;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,wBAAwB;oBAC9B,WAAW,EAAE,oCAAoC;iBAClD;aACF;YACD,oBAAoB,EAAE,KAAK;YAC3B,QAAQ,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,CAAC;SAClE;KACF;IACD,oBAAoB,EAAE,KAAK;IAC3B,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,CAAC;IACpD,WAAW,EAAE;QACX,kBAAkB,EAAE;YAClB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE;gBACJ,sBAAsB;gBACtB,iBAAiB;gBACjB,gBAAgB;gBAChB,iBAAiB;gBACjB,iBAAiB;gBACjB,oBAAoB;gBACpB,kBAAkB;gBAClB,iBAAiB;gBACjB,gCAAgC;gBAChC,qBAAqB;gBACrB,2BAA2B;gBAC3B,2BAA2B;gBAC3B,iBAAiB;gBACjB,iBAAiB;gBACjB,qBAAqB;gBACrB,qBAAqB;gBACrB,mBAAmB;gBACnB,sBAAsB;gBACtB,yBAAyB;gBACzB,4BAA4B;gBAC5B,qBAAqB;gBACrB,wBAAwB;gBACxB,yBAAyB;gBACzB,8BAA8B;gBAC9B,uBAAuB;gBACvB,sBAAsB;gBACtB,qBAAqB;gBACrB,wBAAwB;gBACxB,oCAAoC;gBACpC,
|
|
1
|
+
{"version":3,"file":"WebhookPayloadSchema.js","sourceRoot":"","sources":["../../../src/schemas/webhook/WebhookPayloadSchema.ts"],"names":[],"mappings":"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"}
|