@workjournal/shared 2.19.0 → 2.27.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 (39) hide show
  1. package/dist/__tests__/address.test.d.ts +2 -0
  2. package/dist/__tests__/address.test.d.ts.map +1 -0
  3. package/dist/__tests__/address.test.js +211 -0
  4. package/dist/__tests__/address.test.js.map +1 -0
  5. package/dist/__tests__/export-formats.test.d.ts +2 -0
  6. package/dist/__tests__/export-formats.test.d.ts.map +1 -0
  7. package/dist/__tests__/export-formats.test.js +43 -0
  8. package/dist/__tests__/export-formats.test.js.map +1 -0
  9. package/dist/__tests__/notification-levels.test.d.ts +2 -0
  10. package/dist/__tests__/notification-levels.test.d.ts.map +1 -0
  11. package/dist/__tests__/notification-levels.test.js +54 -0
  12. package/dist/__tests__/notification-levels.test.js.map +1 -0
  13. package/dist/address.d.ts +81 -0
  14. package/dist/address.d.ts.map +1 -0
  15. package/dist/address.js +192 -0
  16. package/dist/address.js.map +1 -0
  17. package/dist/constants.d.ts +38 -0
  18. package/dist/constants.d.ts.map +1 -1
  19. package/dist/constants.js +38 -0
  20. package/dist/constants.js.map +1 -1
  21. package/dist/export-formats.d.ts +53 -0
  22. package/dist/export-formats.d.ts.map +1 -0
  23. package/dist/export-formats.js +26 -0
  24. package/dist/export-formats.js.map +1 -0
  25. package/dist/index.d.ts +9 -3
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +5 -2
  28. package/dist/index.js.map +1 -1
  29. package/dist/notification-levels.d.ts +53 -0
  30. package/dist/notification-levels.d.ts.map +1 -0
  31. package/dist/notification-levels.js +68 -0
  32. package/dist/notification-levels.js.map +1 -0
  33. package/dist/tiers.d.ts +7 -1
  34. package/dist/tiers.d.ts.map +1 -1
  35. package/dist/tiers.js +11 -0
  36. package/dist/tiers.js.map +1 -1
  37. package/dist/types.d.ts +127 -0
  38. package/dist/types.d.ts.map +1 -1
  39. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.js","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5D;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;AAE1C;;;;;;;;;;;;;;GAcG;AACH,MAAM,YAAY,GAAG,sBAAsB,CAAC;AAE5C,iFAAiF;AACjF,MAAM,aAAa,GAAG,YAAY,CAAC;AAsBnC,iFAAiF;AACjF,MAAM,CAAC,MAAM,wBAAwB,GAAkD;IACtF,gBAAgB,EAAE,4BAA4B,cAAc,GAAG;IAC/D,iBAAiB,EAAE,qCAAqC;IACxD,eAAe,EAAE,uCAAuC;IACxD,aAAa,EAAE,uCAAuC;IACtD,cAAc,EACb,2GAA2G;IAC5G,eAAe,EAAE,8BAA8B;IAC/C,mBAAmB,EAAE,IAAI,mBAAmB,8FAA8F;IAC1I,eAAe,EAAE,0EAA0E,eAAe,EAAE;IAC5G,uBAAuB,EAAE,iDAAiD;CAC1E,CAAC;AAEF,SAAS,WAAW,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,MAAM,IAAI,eAAe,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,IAAI,CAAC,MAA2B;IACxC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE1E,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAErD,0EAA0E;IAC1E,2EAA2E;IAC3E,mEAAmE;IACnE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEhE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,aAAa,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjE,MAAM,WAAW,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAEhE,IAAI,SAAS,KAAK,IAAI,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAErF,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC/D,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7D,2EAA2E;IAC3E,yEAAyE;IACzE,sDAAsD;IACtD,IAAI,aAAa,KAAK,mBAAmB;QAAE,OAAO,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAC5E,IAAI,cAAc,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;IAEhE,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,CAAC;IACnF,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;IAC3D,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;IAC3D,IAAI,cAAc,CAAC,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;IAE9D,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO;YACN,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE;SACpF,CAAC;IACH,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;IACvD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,IAAI,KAAK,GAAG,eAAe;QAAE,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC;IAE1D,OAAO;QACN,EAAE,EAAE,IAAI;QACR,OAAO,EAAE;YACR,IAAI,EAAE,OAAO;YACb,aAAa,EAAE,aAAa;YAC5B,WAAW,EAAE,WAAW;YACxB,KAAK;SACL;KACD,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,OAAkB;IAC/C,MAAM,aAAa,GAAG,oBAAoB,CAAC,OAAO,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IACnF,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,GAAG,cAAc,GAAG,aAAa,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC7E,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,GAAG,cAAc,GAAG,aAAa,IAAI,WAAW,EAAE,CAAC;IAC3D,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,eAAe,EAAE,CAAC;QACtE,MAAM,IAAI,UAAU,CACnB,iDAAiD,eAAe,SAAS,MAAM,CAAC,KAAK,CAAC,EAAE,CACxF,CAAC;IACH,CAAC;IACD,OAAO,GAAG,cAAc,GAAG,aAAa,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY,EAAE,KAAa;IACxD,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CAAC,kBAAkB,KAAK,yBAAyB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC;IACD,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,iDAAiD;IACjD,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,kBAAkB,KAAK,wBAAwB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,sBAAsB,CAAC,aAAqB;IAC3D,OAAO,aAAa,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,aAAqB,EAAE,WAAmB;IAC9E,OAAO,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,kBAAkB,CACjC,aAAqB,EACrB,WAAmB,EACnB,KAAa;IAEb,OAAO,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACtC,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC7C,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC9D,CAAC"}
@@ -50,6 +50,10 @@ export declare const WS_API_PATHS: {
50
50
  readonly acceptInvitation: "/v1/invitations/accept";
51
51
  readonly invitationByToken: (token: string) => string;
52
52
  readonly exportJournal: (workspaceSlug: string, journalSlug: string) => string;
53
+ /** POST. Mint a temporary download link for an export (#834). Body: `{ format }`. */
54
+ readonly exportLink: (workspaceSlug: string, journalSlug: string) => string;
55
+ /** GET, no auth — the token is the credential. Valid for 1 h (#834). */
56
+ readonly exportDownload: (token: string) => string;
53
57
  readonly publicJournal: (slug: string) => string;
54
58
  readonly publicEntries: (slug: string) => string;
55
59
  /** Shields.io endpoint-badge JSON for a public journal (name + entry count). */
@@ -102,6 +106,26 @@ export declare const WS_API_PATHS: {
102
106
  readonly acceptWorkspaceInvitation: "/v1/workspace-invitations/accept";
103
107
  /** GET. Pending journal + workspace invitations addressed to the caller. #775 */
104
108
  readonly myInvitations: "/v1/me/invitations";
109
+ /** GET. Caller's notifications, newest first (`workspace_id` repeatable, `journal_id`, `unread`, `push`, `before`, `limit`). #797 */
110
+ readonly notifications: "/v1/me/notifications";
111
+ /** GET. Unread counters by workspace/journal + unread target paths. #797 */
112
+ readonly notificationsSummary: "/v1/me/notifications/summary";
113
+ /** POST `MarkNotificationsReadRequest`. #797 */
114
+ readonly notificationsRead: "/v1/me/notifications/read";
115
+ /** GET + `Upgrade: websocket`; subprotocols `[NOTIFICATIONS_WS_PROTOCOL, 'bearer.<token>']`. #797 */
116
+ readonly notificationsSocket: "/v1/realtime/notifications";
117
+ /** GET. `{ vapid_public_key }` — null when Web Push is not configured. #813 */
118
+ readonly pushConfig: "/v1/me/push-config";
119
+ /** POST a `PushSubscription.toJSON()` / DELETE `{ endpoint }` — this device's Web Push registration (#813); GET `?endpoint=` → `{ registered }` (#817). */
120
+ readonly pushSubscriptions: "/v1/me/push-subscriptions";
121
+ /** GET. Caller's `workspace_user_settings` rows (notification levels). #805 */
122
+ readonly myWorkspaceSettings: "/v1/me/workspace-settings";
123
+ /** PATCH `UpdateWorkspaceUserSettingsRequest`. #805 */
124
+ readonly myWorkspaceSettingsFor: (workspaceId: string) => string;
125
+ /** GET. Whole-workspace activity (owner + members). #797 */
126
+ readonly workspaceActivity: (workspaceSlug: string) => string;
127
+ /** GET. One journal's activity (anyone with journal access). #797 */
128
+ readonly journalActivity: (workspaceSlug: string, journalSlug: string) => string;
105
129
  readonly supportContact: (workspaceSlug: string) => string;
106
130
  /** GET. Live Paddle monthly checkout catalog ([{ tier, priceId, ... }]). */
107
131
  readonly billingCatalog: "/v1/billing/catalog";
@@ -119,6 +143,20 @@ export declare const WS_API_PATHS: {
119
143
  * before a plan change while the subscription is scheduled to cancel. */
120
144
  readonly subscriptionReactivate: (workspaceSlug: string) => string;
121
145
  };
146
+ /**
147
+ * Request header the web app sends on every API call (`X-Workjournal-Client:
148
+ * web`). Requests without it are treated as an agent (CLI, MCP, direct API)
149
+ * when deciding whether a user hears about their own actions (#818).
150
+ * Self-declared on purpose: it only affects the caller's own notifications.
151
+ */
152
+ export declare const CLIENT_HEADER = "X-Workjournal-Client";
153
+ export declare const WEB_CLIENT = "web";
154
+ /** Activity + notification retention window, in days (issue #797). */
155
+ export declare const ACTIVITY_RETENTION_DAYS = 30;
156
+ /** WebSocket subprotocol the notifications socket negotiates (issue #797). The
157
+ * bearer rides as a second `bearer.<token>` subprotocol — browsers can't set
158
+ * headers on a WebSocket. */
159
+ export declare const NOTIFICATIONS_WS_PROTOCOL = "wj.notifications.v1";
122
160
  /**
123
161
  * Reserved virtual-workspace slug exposed in user-facing surfaces (CLI, MCP,
124
162
  * web URL). The API serves the listing at a dedicated top-level path
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/constants.js CHANGED
@@ -60,6 +60,10 @@ export const WS_API_PATHS = {
60
60
  acceptInvitation: `/${API_VERSION}/invitations/accept`,
61
61
  invitationByToken: (token) => `/${API_VERSION}/invitations/${encodeURIComponent(token)}`,
62
62
  exportJournal: (workspaceSlug, journalSlug) => `${jr(workspaceSlug, journalSlug)}/export`,
63
+ /** POST. Mint a temporary download link for an export (#834). Body: `{ format }`. */
64
+ exportLink: (workspaceSlug, journalSlug) => `${jr(workspaceSlug, journalSlug)}/export-link`,
65
+ /** GET, no auth — the token is the credential. Valid for 1 h (#834). */
66
+ exportDownload: (token) => `/${API_VERSION}/exports/${encodeURIComponent(token)}`,
63
67
  publicJournal: (slug) => `/${API_VERSION}/public/${encodeURIComponent(slug)}`,
64
68
  publicEntries: (slug) => `/${API_VERSION}/public/${encodeURIComponent(slug)}/entries`,
65
69
  /** Shields.io endpoint-badge JSON for a public journal (name + entry count). */
@@ -112,6 +116,26 @@ export const WS_API_PATHS = {
112
116
  acceptWorkspaceInvitation: `/${API_VERSION}/workspace-invitations/accept`,
113
117
  /** GET. Pending journal + workspace invitations addressed to the caller. #775 */
114
118
  myInvitations: `/${API_VERSION}/me/invitations`,
119
+ /** GET. Caller's notifications, newest first (`workspace_id` repeatable, `journal_id`, `unread`, `push`, `before`, `limit`). #797 */
120
+ notifications: `/${API_VERSION}/me/notifications`,
121
+ /** GET. Unread counters by workspace/journal + unread target paths. #797 */
122
+ notificationsSummary: `/${API_VERSION}/me/notifications/summary`,
123
+ /** POST `MarkNotificationsReadRequest`. #797 */
124
+ notificationsRead: `/${API_VERSION}/me/notifications/read`,
125
+ /** GET + `Upgrade: websocket`; subprotocols `[NOTIFICATIONS_WS_PROTOCOL, 'bearer.<token>']`. #797 */
126
+ notificationsSocket: `/${API_VERSION}/realtime/notifications`,
127
+ /** GET. `{ vapid_public_key }` — null when Web Push is not configured. #813 */
128
+ pushConfig: `/${API_VERSION}/me/push-config`,
129
+ /** POST a `PushSubscription.toJSON()` / DELETE `{ endpoint }` — this device's Web Push registration (#813); GET `?endpoint=` → `{ registered }` (#817). */
130
+ pushSubscriptions: `/${API_VERSION}/me/push-subscriptions`,
131
+ /** GET. Caller's `workspace_user_settings` rows (notification levels). #805 */
132
+ myWorkspaceSettings: `/${API_VERSION}/me/workspace-settings`,
133
+ /** PATCH `UpdateWorkspaceUserSettingsRequest`. #805 */
134
+ myWorkspaceSettingsFor: (workspaceId) => `/${API_VERSION}/me/workspace-settings/${encodeURIComponent(workspaceId)}`,
135
+ /** GET. Whole-workspace activity (owner + members). #797 */
136
+ workspaceActivity: (workspaceSlug) => `${ws(workspaceSlug)}/activity`,
137
+ /** GET. One journal's activity (anyone with journal access). #797 */
138
+ journalActivity: (workspaceSlug, journalSlug) => `${jr(workspaceSlug, journalSlug)}/activity`,
115
139
  supportContact: (workspaceSlug) => `${ws(workspaceSlug)}/support/contact`,
116
140
  /** GET. Live Paddle monthly checkout catalog ([{ tier, priceId, ... }]). */
117
141
  billingCatalog: `/${API_VERSION}/billing/catalog`,
@@ -129,6 +153,20 @@ export const WS_API_PATHS = {
129
153
  * before a plan change while the subscription is scheduled to cancel. */
130
154
  subscriptionReactivate: (workspaceSlug) => `${ws(workspaceSlug)}/subscription/reactivate`,
131
155
  };
156
+ /**
157
+ * Request header the web app sends on every API call (`X-Workjournal-Client:
158
+ * web`). Requests without it are treated as an agent (CLI, MCP, direct API)
159
+ * when deciding whether a user hears about their own actions (#818).
160
+ * Self-declared on purpose: it only affects the caller's own notifications.
161
+ */
162
+ export const CLIENT_HEADER = 'X-Workjournal-Client';
163
+ export const WEB_CLIENT = 'web';
164
+ /** Activity + notification retention window, in days (issue #797). */
165
+ export const ACTIVITY_RETENTION_DAYS = 30;
166
+ /** WebSocket subprotocol the notifications socket negotiates (issue #797). The
167
+ * bearer rides as a second `bearer.<token>` subprotocol — browsers can't set
168
+ * headers on a WebSocket. */
169
+ export const NOTIFICATIONS_WS_PROTOCOL = 'wj.notifications.v1';
132
170
  /**
133
171
  * Reserved virtual-workspace slug exposed in user-facing surfaces (CLI, MCP,
134
172
  * web URL). The API serves the listing at a dedicated top-level path
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import type { FeatureFlag } from './tiers.js';
2
+ /**
3
+ * Export format registry (issue #834) — metadata only.
4
+ *
5
+ * Every surface that offers an export reads this list: the API validates the
6
+ * `format` parameter, applies the tier gate and sets headers from it; the web
7
+ * builds its menus from it. The renderers themselves live in
8
+ * `@workjournal/render`, keyed by the same `id`. See docs/rendering.md.
9
+ *
10
+ * A tier gate is **data** here (`feature`), not an `if` at a call site.
11
+ */
12
+ export interface ExportFormatDescriptor {
13
+ id: string;
14
+ /** User-facing name ("EPUB"). */
15
+ label: string;
16
+ /** File extension without the dot. */
17
+ extension: string;
18
+ contentType: string;
19
+ /** Tier flag the workspace needs for this format. Absent = every tier. */
20
+ feature?: FeatureFlag;
21
+ }
22
+ export declare const EXPORT_FORMATS: readonly [{
23
+ readonly id: "json";
24
+ readonly label: "JSON";
25
+ readonly extension: "json";
26
+ readonly contentType: "application/json; charset=utf-8";
27
+ }, {
28
+ readonly id: "md";
29
+ readonly label: "Markdown";
30
+ readonly extension: "md";
31
+ readonly contentType: "text/markdown; charset=utf-8";
32
+ }, {
33
+ readonly id: "csv";
34
+ readonly label: "CSV";
35
+ readonly extension: "csv";
36
+ readonly contentType: "text/csv; charset=utf-8";
37
+ }, {
38
+ readonly id: "epub";
39
+ readonly label: "EPUB";
40
+ readonly extension: "epub";
41
+ readonly contentType: "application/epub+zip";
42
+ readonly feature: "can_export_epub";
43
+ }];
44
+ export type ExportFormatId = (typeof EXPORT_FORMATS)[number]['id'];
45
+ export declare const EXPORT_FORMAT_IDS: readonly ExportFormatId[];
46
+ export declare function isExportFormatId(value: unknown): value is ExportFormatId;
47
+ export declare function getExportFormat(id: ExportFormatId): ExportFormatDescriptor;
48
+ /**
49
+ * How long a minted export download link stays valid (docs/rendering.md
50
+ * § Delivery). The R2 lifecycle rule deletes the object after a day regardless.
51
+ */
52
+ export declare const EXPORT_LINK_TTL_SECONDS: number;
53
+ //# sourceMappingURL=export-formats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-formats.d.ts","sourceRoot":"","sources":["../src/export-formats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;EAW2B,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAEnE,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAAoC,CAAC;AAE5F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,GAAG,sBAAsB,CAG1E;AAED;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAU,CAAC"}
@@ -0,0 +1,26 @@
1
+ export const EXPORT_FORMATS = [
2
+ { id: 'json', label: 'JSON', extension: 'json', contentType: 'application/json; charset=utf-8' },
3
+ { id: 'md', label: 'Markdown', extension: 'md', contentType: 'text/markdown; charset=utf-8' },
4
+ { id: 'csv', label: 'CSV', extension: 'csv', contentType: 'text/csv; charset=utf-8' },
5
+ {
6
+ id: 'epub',
7
+ label: 'EPUB',
8
+ extension: 'epub',
9
+ contentType: 'application/epub+zip',
10
+ feature: 'can_export_epub',
11
+ },
12
+ ];
13
+ export const EXPORT_FORMAT_IDS = EXPORT_FORMATS.map((f) => f.id);
14
+ export function isExportFormatId(value) {
15
+ return typeof value === 'string' && EXPORT_FORMAT_IDS.includes(value);
16
+ }
17
+ export function getExportFormat(id) {
18
+ // The id type guarantees a match; the cast only widens the literal tuple.
19
+ return EXPORT_FORMATS.find((f) => f.id === id);
20
+ }
21
+ /**
22
+ * How long a minted export download link stays valid (docs/rendering.md
23
+ * § Delivery). The R2 lifecycle rule deletes the object after a day regardless.
24
+ */
25
+ export const EXPORT_LINK_TTL_SECONDS = 60 * 60;
26
+ //# sourceMappingURL=export-formats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-formats.js","sourceRoot":"","sources":["../src/export-formats.ts"],"names":[],"mappings":"AAuBA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,iCAAiC,EAAE;IAChG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,8BAA8B,EAAE;IAC7F,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE;IACrF;QACC,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,MAAM;QACb,SAAS,EAAE,MAAM;QACjB,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,iBAAiB;KAC1B;CACoD,CAAC;AAIvD,MAAM,CAAC,MAAM,iBAAiB,GAA8B,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAE5F,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,iBAAuC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAkB;IACjD,0EAA0E;IAC1E,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAA2B,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,12 @@
1
+ export type { AddressParseFailure, ParseAddressResult, WjAddress, } from './address.js';
2
+ export { ADDRESS_FAILURE_MESSAGES, ADDRESS_SCHEME, formatAddress, formatEntryAddress, formatJournalAddress, formatWorkspaceAddress, hasAddressScheme, isAddress, MAX_ENTRY_INDEX, parseAddress, } from './address.js';
1
3
  export type { ErrorCode } from './constants.js';
2
- export { API_PATHS, API_VERSION, ATTACHMENT_ALLOWED_TYPES, ATTACHMENT_EXTENSION_BY_TYPE, ATTACHMENT_MAX_BYTES, CURRENT_PRIVACY_VERSION, CURRENT_TOS_VERSION, DEFAULT_PAGE_LIMIT, DEFAULT_PROMPT_ID, DEFAULT_PROMPT_SLUG, ERROR_CODES, isAllowedAttachmentType, isReservedTagName, MAX_EMAIL_LENGTH, MAX_JOURNAL_NAME_LENGTH, MAX_PAGE_LIMIT, MAX_PROMPT_BODY_LENGTH, MAX_PROMPT_NAME_LENGTH, MAX_SUMMARY_LENGTH, MAX_TITLE_LENGTH, PUBLIC_SLUG_LENGTH, RESERVED_TAG_NAMES, SHARED_WITH_ME_SLUG, WS_API_PATHS, } from './constants.js';
4
+ export { ACTIVITY_RETENTION_DAYS, API_PATHS, API_VERSION, ATTACHMENT_ALLOWED_TYPES, ATTACHMENT_EXTENSION_BY_TYPE, ATTACHMENT_MAX_BYTES, CLIENT_HEADER, CURRENT_PRIVACY_VERSION, CURRENT_TOS_VERSION, DEFAULT_PAGE_LIMIT, DEFAULT_PROMPT_ID, DEFAULT_PROMPT_SLUG, ERROR_CODES, isAllowedAttachmentType, isReservedTagName, MAX_EMAIL_LENGTH, MAX_JOURNAL_NAME_LENGTH, MAX_PAGE_LIMIT, MAX_PROMPT_BODY_LENGTH, MAX_PROMPT_NAME_LENGTH, MAX_SUMMARY_LENGTH, MAX_TITLE_LENGTH, NOTIFICATIONS_WS_PROTOCOL, PUBLIC_SLUG_LENGTH, RESERVED_TAG_NAMES, SHARED_WITH_ME_SLUG, WEB_CLIENT, WS_API_PATHS, } from './constants.js';
3
5
  export { DEFAULT_JOURNAL_PROMPT } from './default-prompt.js';
6
+ export type { ExportFormatDescriptor, ExportFormatId } from './export-formats.js';
7
+ export { EXPORT_FORMAT_IDS, EXPORT_FORMATS, EXPORT_LINK_TTL_SECONDS, getExportFormat, isExportFormatId, } from './export-formats.js';
8
+ export type { NotificationLevel, NotificationLevels, NotificationTypeGroup, NotificationTypeOption, UpdateWorkspaceUserSettingsRequest, WorkspaceUserSettings, WorkspaceUserSettingsRow, } from './notification-levels.js';
9
+ export { DEFAULT_NOTIFICATION_LEVEL, isConfigurableNotificationType, isNotificationLevel, NOTIFICATION_LEVELS, NOTIFICATION_TYPE_GROUPS, NOTIFICATION_TYPE_OPTIONS, resolveNotificationLevel, } from './notification-levels.js';
4
10
  export type { BearerResolution, WrappedPayload } from './opaque-token.js';
5
11
  export { AAD_STRING, isOpaqueToken, KEY_LEN, NONCE_LEN, resolveBearer, TAG_LEN, unwrapToken, WJTK_PREFIX, wrapToken, } from './opaque-token.js';
6
12
  export { proposeWorkspaceNameFromEmail } from './propose-workspace-name.js';
@@ -10,6 +16,6 @@ export { CLIENT_OPTIONS, INTERFACE_OPTIONS, isClientOption, isInterfaceOption, }
10
16
  export type { ResolvedTheme, ThemePreference } from './theme.js';
11
17
  export { isThemePreference, resolveTheme, THEME_INIT_SCRIPT, THEME_PREFERENCES, THEME_STORAGE_KEY, } from './theme.js';
12
18
  export type { FeatureFlag } from './tiers.js';
13
- export { canUseFeature, canUseFeatureForCode } from './tiers.js';
14
- export type { AcceptInvitationRequest, AcceptLegalRequest, AcceptWorkspaceInvitationRequest, AcceptWorkspaceInvitationResponse, ApiError, Attachment, AttachmentContentType, AttachmentWithEntries, CreateEntryRequest, CreateInvitationRequest, CreateJournalRequest, CreatePromptRequest, CreateTagRequest, CreateWorkspaceInvitationRequest, CreateWorkspaceRequest, Entry, EntryAttachmentRef, EntrySummary, EntryWithNeighbors, Invitation, Journal, JournalContributor, JournalContributorRow, JournalContributorWithEmail, JournalPromptInfo, JournalTagAssignment, MoveJournalRequest, MyInvitations, MyJournalInvitation, MyWorkspaceInvitation, PaginatedResponse, Prompt, RagSearchRequest, RagSearchResponse, RagSearchResult, SharedJournal, Tag, TagWithAssignment, Tier, TierCode, UpdateEntryRequest, UpdateJournalRequest, UpdatePromptRequest, UpdateTagRequest, UpdateWorkspaceMemberRequest, UploadAttachmentResponse, UserProfile, Workspace, WorkspaceInvitation, WorkspaceInvitationDetail, WorkspaceMemberRole, WorkspaceMemberRow, } from './types.js';
19
+ export { canUseFeature, canUseFeatureForCode, tierNamesWithFeature } from './tiers.js';
20
+ export type { AcceptInvitationRequest, AcceptLegalRequest, AcceptWorkspaceInvitationRequest, AcceptWorkspaceInvitationResponse, ActivityEvent, ActivityItem, ActivityOrigin, ActivityPage, ActivityScope, ApiError, Attachment, AttachmentContentType, AttachmentWithEntries, CreateEntryRequest, CreateExportLinkRequest, CreateInvitationRequest, CreateJournalRequest, CreatePromptRequest, CreateTagRequest, CreateWorkspaceInvitationRequest, CreateWorkspaceRequest, Entry, EntryAttachmentRef, EntrySummary, EntryWithNeighbors, ExportLinkResponse, Invitation, Journal, JournalContributor, JournalContributorRow, JournalContributorWithEmail, JournalPromptInfo, JournalTagAssignment, MarkNotificationsReadRequest, MoveJournalRequest, MyInvitations, MyJournalInvitation, MyWorkspaceInvitation, Notification, NotificationPage, NotificationSummary, PaginatedResponse, Prompt, PushConfig, PushSubscriptionStatus, RagSearchRequest, RagSearchResponse, RagSearchResult, SavePushSubscriptionRequest, SharedJournal, SummaryPart, Tag, TagWithAssignment, Tier, TierCode, UpdateEntryRequest, UpdateJournalRequest, UpdatePromptRequest, UpdateTagRequest, UpdateWorkspaceMemberRequest, UploadAttachmentResponse, UserProfile, Workspace, WorkspaceInvitation, WorkspaceInvitationDetail, WorkspaceMemberRole, WorkspaceMemberRow, } from './types.js';
15
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EACN,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACN,UAAU,EACV,aAAa,EACb,OAAO,EACP,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,SAAS,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACN,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,OAAO,GACP,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EACN,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACjE,YAAY,EACX,uBAAuB,EACvB,kBAAkB,EAClB,gCAAgC,EAChC,iCAAiC,EACjC,QAAQ,EACR,UAAU,EACV,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,gCAAgC,EAChC,sBAAsB,EACtB,KAAK,EACL,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,OAAO,EACP,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,MAAM,EACN,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,GAAG,EACH,iBAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,4BAA4B,EAC5B,wBAAwB,EACxB,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,9 +1,12 @@
1
- export { API_PATHS, API_VERSION, ATTACHMENT_ALLOWED_TYPES, ATTACHMENT_EXTENSION_BY_TYPE, ATTACHMENT_MAX_BYTES, CURRENT_PRIVACY_VERSION, CURRENT_TOS_VERSION, DEFAULT_PAGE_LIMIT, DEFAULT_PROMPT_ID, DEFAULT_PROMPT_SLUG, ERROR_CODES, isAllowedAttachmentType, isReservedTagName, MAX_EMAIL_LENGTH, MAX_JOURNAL_NAME_LENGTH, MAX_PAGE_LIMIT, MAX_PROMPT_BODY_LENGTH, MAX_PROMPT_NAME_LENGTH, MAX_SUMMARY_LENGTH, MAX_TITLE_LENGTH, PUBLIC_SLUG_LENGTH, RESERVED_TAG_NAMES, SHARED_WITH_ME_SLUG, WS_API_PATHS, } from './constants.js';
1
+ export { ADDRESS_FAILURE_MESSAGES, ADDRESS_SCHEME, formatAddress, formatEntryAddress, formatJournalAddress, formatWorkspaceAddress, hasAddressScheme, isAddress, MAX_ENTRY_INDEX, parseAddress, } from './address.js';
2
+ export { ACTIVITY_RETENTION_DAYS, API_PATHS, API_VERSION, ATTACHMENT_ALLOWED_TYPES, ATTACHMENT_EXTENSION_BY_TYPE, ATTACHMENT_MAX_BYTES, CLIENT_HEADER, CURRENT_PRIVACY_VERSION, CURRENT_TOS_VERSION, DEFAULT_PAGE_LIMIT, DEFAULT_PROMPT_ID, DEFAULT_PROMPT_SLUG, ERROR_CODES, isAllowedAttachmentType, isReservedTagName, MAX_EMAIL_LENGTH, MAX_JOURNAL_NAME_LENGTH, MAX_PAGE_LIMIT, MAX_PROMPT_BODY_LENGTH, MAX_PROMPT_NAME_LENGTH, MAX_SUMMARY_LENGTH, MAX_TITLE_LENGTH, NOTIFICATIONS_WS_PROTOCOL, PUBLIC_SLUG_LENGTH, RESERVED_TAG_NAMES, SHARED_WITH_ME_SLUG, WEB_CLIENT, WS_API_PATHS, } from './constants.js';
2
3
  export { DEFAULT_JOURNAL_PROMPT } from './default-prompt.js';
4
+ export { EXPORT_FORMAT_IDS, EXPORT_FORMATS, EXPORT_LINK_TTL_SECONDS, getExportFormat, isExportFormatId, } from './export-formats.js';
5
+ export { DEFAULT_NOTIFICATION_LEVEL, isConfigurableNotificationType, isNotificationLevel, NOTIFICATION_LEVELS, NOTIFICATION_TYPE_GROUPS, NOTIFICATION_TYPE_OPTIONS, resolveNotificationLevel, } from './notification-levels.js';
3
6
  export { AAD_STRING, isOpaqueToken, KEY_LEN, NONCE_LEN, resolveBearer, TAG_LEN, unwrapToken, WJTK_PREFIX, wrapToken, } from './opaque-token.js';
4
7
  export { proposeWorkspaceNameFromEmail } from './propose-workspace-name.js';
5
8
  export { isReservedSlug, MAX_NAME_LENGTH, MAX_SLUG_LENGTH, RESERVED_SLUGS, slugify, } from './slug.js';
6
9
  export { CLIENT_OPTIONS, INTERFACE_OPTIONS, isClientOption, isInterfaceOption, } from './support-labels.js';
7
10
  export { isThemePreference, resolveTheme, THEME_INIT_SCRIPT, THEME_PREFERENCES, THEME_STORAGE_KEY, } from './theme.js';
8
- export { canUseFeature, canUseFeatureForCode } from './tiers.js';
11
+ export { canUseFeature, canUseFeatureForCode, tierNamesWithFeature } from './tiers.js';
9
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACN,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACN,UAAU,EACV,aAAa,EACb,OAAO,EACP,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,SAAS,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACN,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,OAAO,GACP,MAAM,WAAW,CAAC;AAEnB,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACN,wBAAwB,EACxB,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,eAAe,EACf,YAAY,GACZ,MAAM,cAAc,CAAC;AAGtB,OAAO,EACN,uBAAuB,EACvB,SAAS,EACT,WAAW,EACX,wBAAwB,EACxB,4BAA4B,EAC5B,oBAAoB,EACpB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,YAAY,GACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EACN,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,gBAAgB,GAChB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EACN,0BAA0B,EAC1B,8BAA8B,EAC9B,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,GACxB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACN,UAAU,EACV,aAAa,EACb,OAAO,EACP,SAAS,EACT,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,SAAS,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EACN,cAAc,EACd,eAAe,EACf,eAAe,EACf,cAAc,EACd,OAAO,GACP,MAAM,WAAW,CAAC;AAEnB,OAAO,EACN,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GACjB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Per-workspace notification levels (issue #805, docs/notifications.md §
3
+ * Notification levels). One registry drives the API validator, the emitter's
4
+ * filter and the web settings UI — adding a configurable type means adding a
5
+ * row to `NOTIFICATION_TYPE_OPTIONS`, never a branch.
6
+ */
7
+ import type { ActivityScope } from './types.js';
8
+ /** `hide`: not delivered. `list`: list + counters (default). `push`: list + browser notification. */
9
+ export type NotificationLevel = 'hide' | 'list' | 'push';
10
+ /** In UI order (eye-off, eye, bell). */
11
+ export declare const NOTIFICATION_LEVELS: readonly NotificationLevel[];
12
+ export declare const DEFAULT_NOTIFICATION_LEVEL: NotificationLevel;
13
+ export type NotificationTypeGroup = 'journals' | 'entries' | 'people';
14
+ export interface NotificationTypeOption {
15
+ type: string;
16
+ /** Event scope: workspace-scoped types never reach people who only have shared journals. */
17
+ scope: ActivityScope;
18
+ group: NotificationTypeGroup;
19
+ label: string;
20
+ }
21
+ export declare const NOTIFICATION_TYPE_GROUPS: readonly {
22
+ group: NotificationTypeGroup;
23
+ label: string;
24
+ }[];
25
+ /** Event types a user can set a level for. Types not listed are always `list`. */
26
+ export declare const NOTIFICATION_TYPE_OPTIONS: readonly NotificationTypeOption[];
27
+ export declare function isNotificationLevel(value: unknown): value is NotificationLevel;
28
+ export declare function isConfigurableNotificationType(type: string): boolean;
29
+ /** Stored levels: sparse map, a missing key means `list`. */
30
+ export type NotificationLevels = Record<string, NotificationLevel>;
31
+ /**
32
+ * The effective level for `type` given a stored (untrusted) levels map.
33
+ * Unknown types and malformed values resolve to the default.
34
+ */
35
+ export declare function resolveNotificationLevel(levels: unknown, type: string): NotificationLevel;
36
+ /** `workspace_user_settings.settings` (docs/data.md). */
37
+ export interface WorkspaceUserSettings {
38
+ notifications?: NotificationLevels;
39
+ /** Also notify me about changes I made through an agent (CLI / MCP / API) in this workspace (#818). Default off. */
40
+ own_agent_notifications?: boolean;
41
+ }
42
+ /** A `workspace_user_settings` row as returned by `GET /v1/me/workspace-settings`. */
43
+ export interface WorkspaceUserSettingsRow {
44
+ workspace_id: string;
45
+ settings: WorkspaceUserSettings;
46
+ updated_at: string;
47
+ }
48
+ /** `PATCH /v1/me/workspace-settings/:workspaceId` body — exactly one of the two fields per request (each is one atomic write). */
49
+ export interface UpdateWorkspaceUserSettingsRequest {
50
+ notifications?: Partial<NotificationLevels>;
51
+ own_agent_notifications?: boolean;
52
+ }
53
+ //# sourceMappingURL=notification-levels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-levels.d.ts","sourceRoot":"","sources":["../src/notification-levels.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,qGAAqG;AACrG,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzD,wCAAwC;AACxC,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EAA6B,CAAC;AAE1F,eAAO,MAAM,0BAA0B,EAAE,iBAA0B,CAAC;AAEpE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtE,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,4FAA4F;IAC5F,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,qBAAqB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,wBAAwB,EAAE,SAAS;IAAE,KAAK,EAAE,qBAAqB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAK7F,CAAC;AAEH,kFAAkF;AAClF,eAAO,MAAM,yBAAyB,EAAE,SAAS,sBAAsB,EAqCtE,CAAC;AAIF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,iBAAiB,CAE9E;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED,6DAA6D;AAC7D,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAOzF;AAED,yDAAyD;AACzD,MAAM,WAAW,qBAAqB;IACrC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,oHAAoH;IACpH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,sFAAsF;AACtF,MAAM,WAAW,wBAAwB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,qBAAqB,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,kIAAkI;AAClI,MAAM,WAAW,kCAAkC;IAClD,aAAa,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5C,uBAAuB,CAAC,EAAE,OAAO,CAAC;CAClC"}
@@ -0,0 +1,68 @@
1
+ /** In UI order (eye-off, eye, bell). */
2
+ export const NOTIFICATION_LEVELS = ['hide', 'list', 'push'];
3
+ export const DEFAULT_NOTIFICATION_LEVEL = 'list';
4
+ export const NOTIFICATION_TYPE_GROUPS = [
5
+ { group: 'journals', label: 'Journals' },
6
+ { group: 'entries', label: 'Entries' },
7
+ { group: 'people', label: 'People' },
8
+ ];
9
+ /** Event types a user can set a level for. Types not listed are always `list`. */
10
+ export const NOTIFICATION_TYPE_OPTIONS = [
11
+ { type: 'journal.created', scope: 'journal', group: 'journals', label: 'Journal created' },
12
+ { type: 'journal.updated', scope: 'journal', group: 'journals', label: 'Journal changed' },
13
+ { type: 'journal.moved', scope: 'journal', group: 'journals', label: 'Journal moved' },
14
+ { type: 'journal.deleted', scope: 'journal', group: 'journals', label: 'Journal deleted' },
15
+ { type: 'entry.created', scope: 'journal', group: 'entries', label: 'Entry created' },
16
+ { type: 'entry.updated', scope: 'journal', group: 'entries', label: 'Entry updated' },
17
+ { type: 'entry.deleted', scope: 'journal', group: 'entries', label: 'Entry deleted' },
18
+ {
19
+ type: 'contributor.invited',
20
+ scope: 'journal',
21
+ group: 'people',
22
+ label: 'Contributor invited',
23
+ },
24
+ {
25
+ type: 'contributor.invite_revoked',
26
+ scope: 'journal',
27
+ group: 'people',
28
+ label: 'Contributor invitation revoked',
29
+ },
30
+ { type: 'contributor.joined', scope: 'journal', group: 'people', label: 'Contributor joined' },
31
+ { type: 'contributor.removed', scope: 'journal', group: 'people', label: 'Contributor left' },
32
+ { type: 'member.invited', scope: 'workspace', group: 'people', label: 'Member invited' },
33
+ {
34
+ type: 'member.invite_revoked',
35
+ scope: 'workspace',
36
+ group: 'people',
37
+ label: 'Member invitation revoked',
38
+ },
39
+ { type: 'member.joined', scope: 'workspace', group: 'people', label: 'Member joined' },
40
+ {
41
+ type: 'member.role_changed',
42
+ scope: 'workspace',
43
+ group: 'people',
44
+ label: 'Member role changed',
45
+ },
46
+ { type: 'member.removed', scope: 'workspace', group: 'people', label: 'Member left' },
47
+ ];
48
+ const CONFIGURABLE = new Set(NOTIFICATION_TYPE_OPTIONS.map((o) => o.type));
49
+ export function isNotificationLevel(value) {
50
+ return value === 'hide' || value === 'list' || value === 'push';
51
+ }
52
+ export function isConfigurableNotificationType(type) {
53
+ return CONFIGURABLE.has(type);
54
+ }
55
+ /**
56
+ * The effective level for `type` given a stored (untrusted) levels map.
57
+ * Unknown types and malformed values resolve to the default.
58
+ */
59
+ export function resolveNotificationLevel(levels, type) {
60
+ if (!isConfigurableNotificationType(type))
61
+ return DEFAULT_NOTIFICATION_LEVEL;
62
+ if (!levels || typeof levels !== 'object' || Array.isArray(levels)) {
63
+ return DEFAULT_NOTIFICATION_LEVEL;
64
+ }
65
+ const value = levels[type];
66
+ return isNotificationLevel(value) ? value : DEFAULT_NOTIFICATION_LEVEL;
67
+ }
68
+ //# sourceMappingURL=notification-levels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notification-levels.js","sourceRoot":"","sources":["../src/notification-levels.ts"],"names":[],"mappings":"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"}
package/dist/tiers.d.ts CHANGED
@@ -8,8 +8,14 @@ import type { Tier } from './types.js';
8
8
  * Never gate by calling `workspace.tier_code === 'PRO'` — the feature matrix
9
9
  * is the source of truth; tiers are just a bundle of features.
10
10
  */
11
- export type FeatureFlag = 'can_export' | 'can_public_share' | 'can_per_share_permissions' | 'can_word_search' | 'can_rag_search' | 'can_api_tokens' | 'can_webhooks' | 'custom_prompt' | 'prompt_templates' | 'support_access' | 'tags';
11
+ export type FeatureFlag = 'can_export' | 'can_export_epub' | 'can_public_share' | 'can_per_share_permissions' | 'can_word_search' | 'can_rag_search' | 'can_api_tokens' | 'can_webhooks' | 'custom_prompt' | 'prompt_templates' | 'support_access' | 'tags';
12
12
  export declare function canUseFeature(tier: Tier, feature: FeatureFlag): boolean;
13
13
  /** Safe fallback: treat unknown tier as FREE-equivalent (no premium features). */
14
14
  export declare function canUseFeatureForCode(tier: Tier | null | undefined, feature: FeatureFlag): boolean;
15
+ /**
16
+ * User-facing names of the purchasable tiers that grant `feature`, in upgrade
17
+ * order — for copy like "available in Plus and Pro". ADMIN is internal and
18
+ * never shown in upgrade UIs (docs/tiers.md), so it is left out.
19
+ */
20
+ export declare function tierNamesWithFeature(tiers: readonly Tier[], feature: FeatureFlag): string[];
15
21
  //# sourceMappingURL=tiers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tiers.d.ts","sourceRoot":"","sources":["../src/tiers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GACpB,YAAY,GACZ,kBAAkB,GAClB,2BAA2B,GAC3B,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,gBAAgB,GAChB,MAAM,CAAC;AAEV,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAEvE;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAGjG"}
1
+ {"version":3,"file":"tiers.d.ts","sourceRoot":"","sources":["../src/tiers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GACpB,YAAY,GACZ,iBAAiB,GACjB,kBAAkB,GAClB,2BAA2B,GAC3B,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,gBAAgB,GAChB,MAAM,CAAC;AAEV,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAEvE;AAED,kFAAkF;AAClF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAGjG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE,CAK3F"}
package/dist/tiers.js CHANGED
@@ -7,4 +7,15 @@ export function canUseFeatureForCode(tier, feature) {
7
7
  return false;
8
8
  return canUseFeature(tier, feature);
9
9
  }
10
+ /**
11
+ * User-facing names of the purchasable tiers that grant `feature`, in upgrade
12
+ * order — for copy like "available in Plus and Pro". ADMIN is internal and
13
+ * never shown in upgrade UIs (docs/tiers.md), so it is left out.
14
+ */
15
+ export function tierNamesWithFeature(tiers, feature) {
16
+ return [...tiers]
17
+ .filter((t) => t.code !== 'ADMIN' && canUseFeature(t, feature))
18
+ .sort((a, b) => a.sort_order - b.sort_order)
19
+ .map((t) => t.name);
20
+ }
10
21
  //# sourceMappingURL=tiers.js.map
package/dist/tiers.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tiers.js","sourceRoot":"","sources":["../src/tiers.ts"],"names":[],"mappings":"AAwBA,MAAM,UAAU,aAAa,CAAC,IAAU,EAAE,OAAoB;IAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAC/B,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAAC,IAA6B,EAAE,OAAoB;IACvF,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"tiers.js","sourceRoot":"","sources":["../src/tiers.ts"],"names":[],"mappings":"AAyBA,MAAM,UAAU,aAAa,CAAC,IAAU,EAAE,OAAoB;IAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAC/B,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,oBAAoB,CAAC,IAA6B,EAAE,OAAoB;IACvF,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAsB,EAAE,OAAoB;IAChF,OAAO,CAAC,GAAG,KAAK,CAAC;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;SAC9D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}