@workjournal/shared 2.19.0 → 2.26.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.
- package/dist/__tests__/address.test.d.ts +2 -0
- package/dist/__tests__/address.test.d.ts.map +1 -0
- package/dist/__tests__/address.test.js +211 -0
- package/dist/__tests__/address.test.js.map +1 -0
- package/dist/__tests__/notification-levels.test.d.ts +2 -0
- package/dist/__tests__/notification-levels.test.d.ts.map +1 -0
- package/dist/__tests__/notification-levels.test.js +54 -0
- package/dist/__tests__/notification-levels.test.js.map +1 -0
- package/dist/address.d.ts +81 -0
- package/dist/address.d.ts.map +1 -0
- package/dist/address.js +192 -0
- package/dist/address.js.map +1 -0
- package/dist/constants.d.ts +34 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +34 -0
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +6 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/notification-levels.d.ts +53 -0
- package/dist/notification-levels.d.ts.map +1 -0
- package/dist/notification-levels.js +68 -0
- package/dist/notification-levels.js.map +1 -0
- package/dist/types.d.ts +110 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/address.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { ADDRESS_FAILURE_MESSAGES, formatAddress, formatEntryAddress, formatJournalAddress, formatWorkspaceAddress, hasAddressScheme, isAddress, MAX_ENTRY_INDEX, parseAddress, } from '../address.js';
|
|
3
|
+
import { MAX_SLUG_LENGTH } from '../slug.js';
|
|
4
|
+
function parsed(input) {
|
|
5
|
+
const result = parseAddress(input);
|
|
6
|
+
if (!result.ok)
|
|
7
|
+
throw new Error(`expected ${input} to parse, got ${result.reason}`);
|
|
8
|
+
return result.address;
|
|
9
|
+
}
|
|
10
|
+
function reason(input) {
|
|
11
|
+
const result = parseAddress(input);
|
|
12
|
+
if (result.ok)
|
|
13
|
+
throw new Error(`expected ${input} to fail, got ${formatAddress(result.address)}`);
|
|
14
|
+
return result.reason;
|
|
15
|
+
}
|
|
16
|
+
describe('parseAddress — valid forms', () => {
|
|
17
|
+
it('parses a workspace address', () => {
|
|
18
|
+
expect(parsed('wj:acme')).toEqual({ kind: 'workspace', workspaceSlug: 'acme' });
|
|
19
|
+
});
|
|
20
|
+
it('parses a journal address', () => {
|
|
21
|
+
expect(parsed('wj:acme.eng-notes')).toEqual({
|
|
22
|
+
kind: 'journal',
|
|
23
|
+
workspaceSlug: 'acme',
|
|
24
|
+
journalSlug: 'eng-notes',
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
it('parses an entry address', () => {
|
|
28
|
+
expect(parsed('wj:acme.eng-notes#42')).toEqual({
|
|
29
|
+
kind: 'entry',
|
|
30
|
+
workspaceSlug: 'acme',
|
|
31
|
+
journalSlug: 'eng-notes',
|
|
32
|
+
index: 42,
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
it('accepts numeric slugs', () => {
|
|
36
|
+
expect(parsed('wj:2026.q1#1')).toEqual({
|
|
37
|
+
kind: 'entry',
|
|
38
|
+
workspaceSlug: '2026',
|
|
39
|
+
journalSlug: 'q1',
|
|
40
|
+
index: 1,
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
it('accepts the maximum index', () => {
|
|
44
|
+
expect(parsed(`wj:acme.eng#${MAX_ENTRY_INDEX}`)).toMatchObject({ index: MAX_ENTRY_INDEX });
|
|
45
|
+
});
|
|
46
|
+
// The SQL backfill truncates AFTER trimming hyphens, so a live slug can end
|
|
47
|
+
// in `-`; the OpenAPI param pattern permits it too. Rejecting these would
|
|
48
|
+
// make an already-existing journal unaddressable.
|
|
49
|
+
it('accepts trailing and doubled hyphens, matching the OpenAPI slug pattern', () => {
|
|
50
|
+
expect(parsed('wj:acme-.eng--notes#1')).toMatchObject({
|
|
51
|
+
workspaceSlug: 'acme-',
|
|
52
|
+
journalSlug: 'eng--notes',
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
it('accepts slugs at the length cap', () => {
|
|
56
|
+
const slug = 'a'.repeat(MAX_SLUG_LENGTH);
|
|
57
|
+
expect(parsed(`wj:${slug}.${slug}#1`)).toMatchObject({
|
|
58
|
+
workspaceSlug: slug,
|
|
59
|
+
journalSlug: slug,
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe('parseAddress — normalisation', () => {
|
|
64
|
+
it('trims surrounding whitespace', () => {
|
|
65
|
+
expect(parsed(' wj:acme.eng-notes#7 ')).toMatchObject({ index: 7 });
|
|
66
|
+
});
|
|
67
|
+
it('lowercases scheme and slugs', () => {
|
|
68
|
+
expect(parsed('WJ:Acme.Eng-Notes#42')).toEqual({
|
|
69
|
+
kind: 'entry',
|
|
70
|
+
workspaceSlug: 'acme',
|
|
71
|
+
journalSlug: 'eng-notes',
|
|
72
|
+
index: 42,
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
it('round-trips through formatAddress in canonical form', () => {
|
|
76
|
+
expect(formatAddress(parsed(' WJ:Acme.Eng-Notes#42 '))).toBe('wj:acme.eng-notes#42');
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
describe('parseAddress — rejections', () => {
|
|
80
|
+
it.each([
|
|
81
|
+
['acme.eng-notes#42', 'missing-scheme'],
|
|
82
|
+
['https://workjournal.pro/acme', 'missing-scheme'],
|
|
83
|
+
['acme/eng-notes/42', 'missing-scheme'],
|
|
84
|
+
['', 'missing-scheme'],
|
|
85
|
+
['wj:', 'empty-workspace'],
|
|
86
|
+
['wj:.eng-notes', 'empty-workspace'],
|
|
87
|
+
['wj:acme.', 'empty-journal'],
|
|
88
|
+
['wj:acme.eng-notes#', 'empty-index'],
|
|
89
|
+
['wj:acme#42', 'index-without-journal'],
|
|
90
|
+
['wj:shared-with-me', 'virtual-workspace'],
|
|
91
|
+
['wj:shared-with-me.eng-notes#1', 'virtual-workspace'],
|
|
92
|
+
['wj:settings', 'reserved-slug'],
|
|
93
|
+
['wj:acme.entries', 'reserved-slug'],
|
|
94
|
+
['wj:acme.eng-notes#0', 'invalid-index'],
|
|
95
|
+
['wj:acme.eng-notes#042', 'invalid-index'],
|
|
96
|
+
['wj:acme.eng-notes#-1', 'invalid-index'],
|
|
97
|
+
['wj:acme.eng-notes#4.2', 'invalid-index'],
|
|
98
|
+
['wj:acme.eng-notes#abc', 'invalid-index'],
|
|
99
|
+
[`wj:acme.eng-notes#${MAX_ENTRY_INDEX + 1}`, 'invalid-index'],
|
|
100
|
+
['wj:acme.eng.notes#1', 'invalid-slug'],
|
|
101
|
+
['wj:acme.eng-notes#1#2', 'invalid-slug'],
|
|
102
|
+
['wj:-acme', 'invalid-slug'],
|
|
103
|
+
['wj:acme_notes', 'invalid-slug'],
|
|
104
|
+
['wj:acme notes', 'invalid-slug'],
|
|
105
|
+
['wj:café', 'invalid-slug'],
|
|
106
|
+
])('rejects %s as %s', (input, expected) => {
|
|
107
|
+
expect(reason(input)).toBe(expected);
|
|
108
|
+
});
|
|
109
|
+
it('rejects slugs over the length cap', () => {
|
|
110
|
+
const tooLong = 'a'.repeat(MAX_SLUG_LENGTH + 1);
|
|
111
|
+
expect(reason(`wj:${tooLong}`)).toBe('invalid-slug');
|
|
112
|
+
expect(reason(`wj:acme.${tooLong}`)).toBe('invalid-slug');
|
|
113
|
+
});
|
|
114
|
+
it('has a message for every failure reason', () => {
|
|
115
|
+
const reasons = [
|
|
116
|
+
'missing-scheme',
|
|
117
|
+
'empty-workspace',
|
|
118
|
+
'empty-journal',
|
|
119
|
+
'empty-index',
|
|
120
|
+
'invalid-slug',
|
|
121
|
+
'reserved-slug',
|
|
122
|
+
'virtual-workspace',
|
|
123
|
+
'invalid-index',
|
|
124
|
+
'index-without-journal',
|
|
125
|
+
];
|
|
126
|
+
for (const r of reasons) {
|
|
127
|
+
expect(ADDRESS_FAILURE_MESSAGES[r]).toBeTruthy();
|
|
128
|
+
}
|
|
129
|
+
expect(Object.keys(ADDRESS_FAILURE_MESSAGES).sort()).toEqual([...reasons].sort());
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
describe('formatAddress', () => {
|
|
133
|
+
it('formats each kind', () => {
|
|
134
|
+
expect(formatAddress({ kind: 'workspace', workspaceSlug: 'acme' })).toBe('wj:acme');
|
|
135
|
+
expect(formatAddress({ kind: 'journal', workspaceSlug: 'acme', journalSlug: 'eng-notes' })).toBe('wj:acme.eng-notes');
|
|
136
|
+
expect(formatAddress({
|
|
137
|
+
kind: 'entry',
|
|
138
|
+
workspaceSlug: 'acme',
|
|
139
|
+
journalSlug: 'eng-notes',
|
|
140
|
+
index: 42,
|
|
141
|
+
})).toBe('wj:acme.eng-notes#42');
|
|
142
|
+
});
|
|
143
|
+
it('exposes loose-slug convenience formatters', () => {
|
|
144
|
+
expect(formatWorkspaceAddress('acme')).toBe('wj:acme');
|
|
145
|
+
expect(formatJournalAddress('acme', 'eng-notes')).toBe('wj:acme.eng-notes');
|
|
146
|
+
expect(formatEntryAddress('acme', 'eng-notes', 42)).toBe('wj:acme.eng-notes#42');
|
|
147
|
+
});
|
|
148
|
+
it('normalises slug case so output is always canonical', () => {
|
|
149
|
+
expect(formatAddress({ kind: 'journal', workspaceSlug: 'Acme', journalSlug: 'Eng' })).toBe('wj:acme.eng');
|
|
150
|
+
expect(formatEntryAddress(' ACME ', 'ENG', 7)).toBe('wj:acme.eng#7');
|
|
151
|
+
});
|
|
152
|
+
// formatAddress is exported and reachable from untyped JS; its contract says
|
|
153
|
+
// the output is canonical, so it must refuse to emit an unparseable string.
|
|
154
|
+
it.each([0, -1, 1.5, Number.NaN, MAX_ENTRY_INDEX + 1])('rejects index %s', (index) => {
|
|
155
|
+
expect(() => formatAddress({ kind: 'entry', workspaceSlug: 'acme', journalSlug: 'eng', index })).toThrow(RangeError);
|
|
156
|
+
});
|
|
157
|
+
it.each(['', 'has space', 'has.dot', 'has#hash', '-leading'])('rejects slug %j', (slug) => {
|
|
158
|
+
expect(() => formatAddress({ kind: 'workspace', workspaceSlug: slug })).toThrow(TypeError);
|
|
159
|
+
});
|
|
160
|
+
// `parseAddress` rejects reserved slugs in both positions, so formatAddress
|
|
161
|
+
// emitting one would break the round-trip it documents (#782 follow-up).
|
|
162
|
+
it.each([
|
|
163
|
+
'new',
|
|
164
|
+
'settings',
|
|
165
|
+
'journals',
|
|
166
|
+
'entries',
|
|
167
|
+
'shared-with-me',
|
|
168
|
+
])('rejects reserved workspace slug %j', (slug) => {
|
|
169
|
+
expect(() => formatAddress({ kind: 'workspace', workspaceSlug: slug })).toThrow(TypeError);
|
|
170
|
+
});
|
|
171
|
+
it.each([
|
|
172
|
+
'new',
|
|
173
|
+
'settings',
|
|
174
|
+
'invites',
|
|
175
|
+
'shared-with-me',
|
|
176
|
+
])('rejects reserved journal slug %j', (slug) => {
|
|
177
|
+
expect(() => formatAddress({ kind: 'journal', workspaceSlug: 'acme', journalSlug: slug })).toThrow(TypeError);
|
|
178
|
+
expect(() => formatEntryAddress('acme', slug, 1)).toThrow(TypeError);
|
|
179
|
+
});
|
|
180
|
+
it('never emits a string parseAddress would reject', () => {
|
|
181
|
+
// The contract, stated as a property: anything formatAddress returns must
|
|
182
|
+
// parse back. Reserved slugs were the hole — they formatted fine and then
|
|
183
|
+
// failed to parse.
|
|
184
|
+
for (const slug of ['new', 'shared-with-me', 'settings']) {
|
|
185
|
+
expect(() => formatWorkspaceAddress(slug)).toThrow(TypeError);
|
|
186
|
+
expect(parseAddress(`wj:${slug}`).ok).toBe(false);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
it('output of formatAddress always parses back', () => {
|
|
190
|
+
const formatted = formatEntryAddress('Acme', 'Eng-Notes', 42);
|
|
191
|
+
expect(parseAddress(formatted).ok).toBe(true);
|
|
192
|
+
});
|
|
193
|
+
it('round-trips every valid kind', () => {
|
|
194
|
+
for (const input of ['wj:acme', 'wj:acme.eng-notes', 'wj:acme.eng-notes#42']) {
|
|
195
|
+
expect(formatAddress(parsed(input))).toBe(input);
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
describe('isAddress / hasAddressScheme', () => {
|
|
200
|
+
it('isAddress is true only for parseable input', () => {
|
|
201
|
+
expect(isAddress('wj:acme.eng-notes#42')).toBe(true);
|
|
202
|
+
expect(isAddress('wj:acme.eng-notes#0')).toBe(false);
|
|
203
|
+
expect(isAddress('acme')).toBe(false);
|
|
204
|
+
});
|
|
205
|
+
it('hasAddressScheme is true for malformed addresses too', () => {
|
|
206
|
+
expect(hasAddressScheme('wj:acme.eng-notes#0')).toBe(true);
|
|
207
|
+
expect(hasAddressScheme(' WJ:whatever ')).toBe(true);
|
|
208
|
+
expect(hasAddressScheme('acme')).toBe(false);
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
//# sourceMappingURL=address.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.test.js","sourceRoot":"","sources":["../../src/__tests__/address.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-levels.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/notification-levels.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { describe, expect, it } from 'vitest';
|
|
4
|
+
import { isConfigurableNotificationType, isNotificationLevel, NOTIFICATION_TYPE_GROUPS, NOTIFICATION_TYPE_OPTIONS, resolveNotificationLevel, } from '../notification-levels.js';
|
|
5
|
+
describe('NOTIFICATION_TYPE_OPTIONS', () => {
|
|
6
|
+
it('has unique types, each in a known group', () => {
|
|
7
|
+
const types = NOTIFICATION_TYPE_OPTIONS.map((o) => o.type);
|
|
8
|
+
expect(new Set(types).size).toBe(types.length);
|
|
9
|
+
const groups = new Set(NOTIFICATION_TYPE_GROUPS.map((g) => g.group));
|
|
10
|
+
for (const o of NOTIFICATION_TYPE_OPTIONS)
|
|
11
|
+
expect(groups.has(o.group)).toBe(true);
|
|
12
|
+
});
|
|
13
|
+
it('scopes member.* to the workspace and everything else to journals', () => {
|
|
14
|
+
for (const o of NOTIFICATION_TYPE_OPTIONS) {
|
|
15
|
+
expect(o.scope).toBe(o.type.startsWith('member.') ? 'workspace' : 'journal');
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
describe('resolveNotificationLevel', () => {
|
|
20
|
+
it('defaults to list for missing keys and malformed maps', () => {
|
|
21
|
+
expect(resolveNotificationLevel(undefined, 'entry.created')).toBe('list');
|
|
22
|
+
expect(resolveNotificationLevel(null, 'entry.created')).toBe('list');
|
|
23
|
+
expect(resolveNotificationLevel([], 'entry.created')).toBe('list');
|
|
24
|
+
expect(resolveNotificationLevel({}, 'entry.created')).toBe('list');
|
|
25
|
+
expect(resolveNotificationLevel({ 'entry.created': 'loud' }, 'entry.created')).toBe('list');
|
|
26
|
+
});
|
|
27
|
+
it('returns the stored level for configurable types', () => {
|
|
28
|
+
expect(resolveNotificationLevel({ 'entry.updated': 'hide' }, 'entry.updated')).toBe('hide');
|
|
29
|
+
expect(resolveNotificationLevel({ 'member.joined': 'push' }, 'member.joined')).toBe('push');
|
|
30
|
+
});
|
|
31
|
+
it('ignores stored levels for types outside the registry', () => {
|
|
32
|
+
expect(isConfigurableNotificationType('tag.created')).toBe(false);
|
|
33
|
+
expect(resolveNotificationLevel({ 'tag.created': 'hide' }, 'tag.created')).toBe('list');
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
describe('isNotificationLevel', () => {
|
|
37
|
+
it('accepts exactly hide / list / push', () => {
|
|
38
|
+
expect(['hide', 'list', 'push'].every(isNotificationLevel)).toBe(true);
|
|
39
|
+
expect(isNotificationLevel('show')).toBe(false);
|
|
40
|
+
expect(isNotificationLevel(null)).toBe(false);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
describe('patch_my_notification_levels SQL allow-list', () => {
|
|
44
|
+
it('matches NOTIFICATION_TYPE_OPTIONS exactly', () => {
|
|
45
|
+
// The RPC is callable directly through PostgREST, so it re-validates keys
|
|
46
|
+
// against its own copy of the registry (#805). Fail if they drift.
|
|
47
|
+
const sql = readFileSync(fileURLToPath(new URL('../../../../supabase/migrations/20261005000001_workspace_user_settings.sql', import.meta.url)), 'utf8');
|
|
48
|
+
const block = sql.match(/notification-types:begin([\s\S]*?)notification-types:end/)?.[1] ?? '';
|
|
49
|
+
const sqlTypes = [...block.matchAll(/'([a-z_]+\.[a-z_]+)'/g)].map((m) => m[1]);
|
|
50
|
+
expect(new Set(sqlTypes)).toEqual(new Set(NOTIFICATION_TYPE_OPTIONS.map((o) => o.type)));
|
|
51
|
+
expect(sqlTypes).toHaveLength(NOTIFICATION_TYPE_OPTIONS.length);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=notification-levels.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification-levels.test.js","sourceRoot":"","sources":["../../src/__tests__/notification-levels.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `wj:` address standard — one notation for naming a workspace, a journal,
|
|
3
|
+
* or an entry across every surface. See `docs/addressing.md` for the spec.
|
|
4
|
+
*
|
|
5
|
+
* wj:acme → workspace
|
|
6
|
+
* wj:acme.eng-notes → journal
|
|
7
|
+
* wj:acme.eng-notes#42 → entry
|
|
8
|
+
*
|
|
9
|
+
* This module is the single implementation. No surface may hand-roll the
|
|
10
|
+
* grammar — `connector-app.ts` used to carry its own `ID_PATTERN` and drifting
|
|
11
|
+
* copies are exactly what this replaces.
|
|
12
|
+
*/
|
|
13
|
+
export declare const ADDRESS_SCHEME: "wj:";
|
|
14
|
+
/**
|
|
15
|
+
* `entries.index` is a Postgres INTEGER. Rejecting above the ceiling at parse
|
|
16
|
+
* time keeps an over-large address from becoming a confusing 400 from the API.
|
|
17
|
+
*/
|
|
18
|
+
export declare const MAX_ENTRY_INDEX = 2147483647;
|
|
19
|
+
export type WjAddress = {
|
|
20
|
+
kind: 'workspace';
|
|
21
|
+
workspaceSlug: string;
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'journal';
|
|
24
|
+
workspaceSlug: string;
|
|
25
|
+
journalSlug: string;
|
|
26
|
+
} | {
|
|
27
|
+
kind: 'entry';
|
|
28
|
+
workspaceSlug: string;
|
|
29
|
+
journalSlug: string;
|
|
30
|
+
index: number;
|
|
31
|
+
};
|
|
32
|
+
export type AddressParseFailure = 'missing-scheme' | 'empty-workspace' | 'empty-journal' | 'empty-index' | 'invalid-slug' | 'reserved-slug' | 'virtual-workspace' | 'invalid-index' | 'index-without-journal';
|
|
33
|
+
export type ParseAddressResult = {
|
|
34
|
+
ok: true;
|
|
35
|
+
address: WjAddress;
|
|
36
|
+
} | {
|
|
37
|
+
ok: false;
|
|
38
|
+
reason: AddressParseFailure;
|
|
39
|
+
};
|
|
40
|
+
/** Human-readable explanation per failure reason, for CLI/MCP error messages. */
|
|
41
|
+
export declare const ADDRESS_FAILURE_MESSAGES: Readonly<Record<AddressParseFailure, string>>;
|
|
42
|
+
/**
|
|
43
|
+
* Parse a `wj:` address.
|
|
44
|
+
*
|
|
45
|
+
* Liberal in what it accepts — surrounding whitespace is trimmed and the input
|
|
46
|
+
* is lowercased, so `WJ:Acme.Eng-Notes#42` parses — but the parsed result is
|
|
47
|
+
* always canonical, so `formatAddress(parse(x))` is a normalising round-trip.
|
|
48
|
+
*
|
|
49
|
+
* Returns a `reason` rather than throwing (or returning bare `null`) so callers
|
|
50
|
+
* can render something the user can act on: "uses a reserved slug" is
|
|
51
|
+
* actionable where "malformed" is not.
|
|
52
|
+
*/
|
|
53
|
+
export declare function parseAddress(input: string): ParseAddressResult;
|
|
54
|
+
/**
|
|
55
|
+
* Render an address in canonical form. Inverse of `parseAddress`.
|
|
56
|
+
*
|
|
57
|
+
* Normalises slug case and rejects anything that would produce an unparseable
|
|
58
|
+
* string. The type system stops most misuse, but `formatAddress` is exported
|
|
59
|
+
* and reachable from untyped JS, and its documented contract is that the
|
|
60
|
+
* output is *canonical* — silently emitting `wj:Acme.eng#0` would break that
|
|
61
|
+
* for every consumer that later parses it back.
|
|
62
|
+
*/
|
|
63
|
+
export declare function formatAddress(address: WjAddress): string;
|
|
64
|
+
/** Convenience formatters for callers holding loose slugs rather than a union. */
|
|
65
|
+
export declare function formatWorkspaceAddress(workspaceSlug: string): string;
|
|
66
|
+
export declare function formatJournalAddress(workspaceSlug: string, journalSlug: string): string;
|
|
67
|
+
export declare function formatEntryAddress(workspaceSlug: string, journalSlug: string, index: number): string;
|
|
68
|
+
/**
|
|
69
|
+
* Cheap check for "does this look like an address" — used to decide whether to
|
|
70
|
+
* treat a CLI positional as an address or as a bare slug. Note this returns
|
|
71
|
+
* false for a malformed address; use `parseAddress` when you need to tell a
|
|
72
|
+
* non-address apart from a broken one.
|
|
73
|
+
*/
|
|
74
|
+
export declare function isAddress(input: string): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* True when the input is *trying* to be an address, valid or not. The CLI uses
|
|
77
|
+
* this to route a `wj:`-prefixed positional into the address parser so a typo
|
|
78
|
+
* reports the real reason instead of being treated as a workspace slug.
|
|
79
|
+
*/
|
|
80
|
+
export declare function hasAddressScheme(input: string): boolean;
|
|
81
|
+
//# sourceMappingURL=address.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,cAAc,EAAG,KAAc,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,eAAe,aAAa,CAAC;AAsB1C,MAAM,MAAM,SAAS,GAClB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,MAAM,MAAM,mBAAmB,GAC5B,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,cAAc,GACd,eAAe,GACf,mBAAmB,GACnB,eAAe,GACf,uBAAuB,CAAC;AAE3B,MAAM,MAAM,kBAAkB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,SAAS,CAAA;CAAE,GAChC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAE9C,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAWlF,CAAC;AAUF;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAwD9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAkBxD;AAiBD,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED,wBAAgB,kBAAkB,CACjC,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACX,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD"}
|
package/dist/address.js
ADDED
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { SHARED_WITH_ME_SLUG } from './constants.js';
|
|
2
|
+
import { isReservedSlug, MAX_SLUG_LENGTH } from './slug.js';
|
|
3
|
+
/**
|
|
4
|
+
* The `wj:` address standard — one notation for naming a workspace, a journal,
|
|
5
|
+
* or an entry across every surface. See `docs/addressing.md` for the spec.
|
|
6
|
+
*
|
|
7
|
+
* wj:acme → workspace
|
|
8
|
+
* wj:acme.eng-notes → journal
|
|
9
|
+
* wj:acme.eng-notes#42 → entry
|
|
10
|
+
*
|
|
11
|
+
* This module is the single implementation. No surface may hand-roll the
|
|
12
|
+
* grammar — `connector-app.ts` used to carry its own `ID_PATTERN` and drifting
|
|
13
|
+
* copies are exactly what this replaces.
|
|
14
|
+
*/
|
|
15
|
+
export const ADDRESS_SCHEME = 'wj:';
|
|
16
|
+
/**
|
|
17
|
+
* `entries.index` is a Postgres INTEGER. Rejecting above the ceiling at parse
|
|
18
|
+
* time keeps an over-large address from becoming a confusing 400 from the API.
|
|
19
|
+
*/
|
|
20
|
+
export const MAX_ENTRY_INDEX = 2147483647;
|
|
21
|
+
/**
|
|
22
|
+
* Slug shape shared by both address positions. Deliberately identical to the
|
|
23
|
+
* OpenAPI `pattern` already documented on the workspace/journal slug params
|
|
24
|
+
* (`^[a-z0-9][a-z0-9-]{0,39}$`) — the length half is applied separately below.
|
|
25
|
+
*
|
|
26
|
+
* Note this is looser than `slugify()`'s own output: it tolerates a trailing
|
|
27
|
+
* hyphen and doubled hyphens. That is deliberate. The SQL backfill in
|
|
28
|
+
* `20260422000002_add_slug_columns` truncates with `substring(... FOR 30)`
|
|
29
|
+
* *after* trimming hyphens, so a live slug can legitimately end in `-`.
|
|
30
|
+
* Rejecting those here would make an existing journal unaddressable.
|
|
31
|
+
*
|
|
32
|
+
* What the parser actually depends on is narrower: a slug can never contain
|
|
33
|
+
* `.`, `#`, or `:`. That is what makes the grammar unambiguous, and it is the
|
|
34
|
+
* invariant the DB CHECK constraint enforces.
|
|
35
|
+
*/
|
|
36
|
+
const SLUG_PATTERN = /^[a-z0-9][a-z0-9-]*$/;
|
|
37
|
+
/** Positive integer, no leading zeros. Mirrors the old connector-app pattern. */
|
|
38
|
+
const INDEX_PATTERN = /^[1-9]\d*$/;
|
|
39
|
+
/** Human-readable explanation per failure reason, for CLI/MCP error messages. */
|
|
40
|
+
export const ADDRESS_FAILURE_MESSAGES = {
|
|
41
|
+
'missing-scheme': `Address must start with "${ADDRESS_SCHEME}"`,
|
|
42
|
+
'empty-workspace': 'Address is missing a workspace slug',
|
|
43
|
+
'empty-journal': 'Address has a "." but no journal slug',
|
|
44
|
+
'empty-index': 'Address has a "#" but no entry number',
|
|
45
|
+
'invalid-slug': 'Slugs must start with a lowercase letter or digit and contain only lowercase letters, digits, and hyphens',
|
|
46
|
+
'reserved-slug': 'Address uses a reserved slug',
|
|
47
|
+
'virtual-workspace': `"${SHARED_WITH_ME_SLUG}" is a virtual listing, not an addressable workspace — use the journal's real workspace slug`,
|
|
48
|
+
'invalid-index': `Entry number must be a positive integer with no leading zeros, at most ${MAX_ENTRY_INDEX}`,
|
|
49
|
+
'index-without-journal': 'Address has an entry number but no journal slug',
|
|
50
|
+
};
|
|
51
|
+
function isValidSlug(value) {
|
|
52
|
+
return value.length <= MAX_SLUG_LENGTH && SLUG_PATTERN.test(value);
|
|
53
|
+
}
|
|
54
|
+
function fail(reason) {
|
|
55
|
+
return { ok: false, reason };
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Parse a `wj:` address.
|
|
59
|
+
*
|
|
60
|
+
* Liberal in what it accepts — surrounding whitespace is trimmed and the input
|
|
61
|
+
* is lowercased, so `WJ:Acme.Eng-Notes#42` parses — but the parsed result is
|
|
62
|
+
* always canonical, so `formatAddress(parse(x))` is a normalising round-trip.
|
|
63
|
+
*
|
|
64
|
+
* Returns a `reason` rather than throwing (or returning bare `null`) so callers
|
|
65
|
+
* can render something the user can act on: "uses a reserved slug" is
|
|
66
|
+
* actionable where "malformed" is not.
|
|
67
|
+
*/
|
|
68
|
+
export function parseAddress(input) {
|
|
69
|
+
const normalized = input.trim().toLowerCase();
|
|
70
|
+
if (!normalized.startsWith(ADDRESS_SCHEME))
|
|
71
|
+
return fail('missing-scheme');
|
|
72
|
+
const rest = normalized.slice(ADDRESS_SCHEME.length);
|
|
73
|
+
// Split on the LAST `#` and the FIRST `.`. Safe because neither character
|
|
74
|
+
// can occur inside a slug — a second `.` or `#` lands inside a segment and
|
|
75
|
+
// is rejected by the slug check rather than silently re-splitting.
|
|
76
|
+
const hashAt = rest.lastIndexOf('#');
|
|
77
|
+
const head = hashAt === -1 ? rest : rest.slice(0, hashAt);
|
|
78
|
+
const indexPart = hashAt === -1 ? null : rest.slice(hashAt + 1);
|
|
79
|
+
const dotAt = head.indexOf('.');
|
|
80
|
+
const workspacePart = dotAt === -1 ? head : head.slice(0, dotAt);
|
|
81
|
+
const journalPart = dotAt === -1 ? null : head.slice(dotAt + 1);
|
|
82
|
+
if (indexPart !== null && journalPart === null)
|
|
83
|
+
return fail('index-without-journal');
|
|
84
|
+
if (workspacePart.length === 0)
|
|
85
|
+
return fail('empty-workspace');
|
|
86
|
+
if (!isValidSlug(workspacePart))
|
|
87
|
+
return fail('invalid-slug');
|
|
88
|
+
// Checked before the general reserved test so the caller gets the specific
|
|
89
|
+
// reason — `shared-with-me` is in RESERVED_SLUGS too, but it fails for a
|
|
90
|
+
// different reason than a route-collision name would.
|
|
91
|
+
if (workspacePart === SHARED_WITH_ME_SLUG)
|
|
92
|
+
return fail('virtual-workspace');
|
|
93
|
+
if (isReservedSlug(workspacePart))
|
|
94
|
+
return fail('reserved-slug');
|
|
95
|
+
if (journalPart === null) {
|
|
96
|
+
return { ok: true, address: { kind: 'workspace', workspaceSlug: workspacePart } };
|
|
97
|
+
}
|
|
98
|
+
if (journalPart.length === 0)
|
|
99
|
+
return fail('empty-journal');
|
|
100
|
+
if (!isValidSlug(journalPart))
|
|
101
|
+
return fail('invalid-slug');
|
|
102
|
+
if (isReservedSlug(journalPart))
|
|
103
|
+
return fail('reserved-slug');
|
|
104
|
+
if (indexPart === null) {
|
|
105
|
+
return {
|
|
106
|
+
ok: true,
|
|
107
|
+
address: { kind: 'journal', workspaceSlug: workspacePart, journalSlug: journalPart },
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
if (indexPart.length === 0)
|
|
111
|
+
return fail('empty-index');
|
|
112
|
+
if (!INDEX_PATTERN.test(indexPart))
|
|
113
|
+
return fail('invalid-index');
|
|
114
|
+
const index = Number(indexPart);
|
|
115
|
+
if (index > MAX_ENTRY_INDEX)
|
|
116
|
+
return fail('invalid-index');
|
|
117
|
+
return {
|
|
118
|
+
ok: true,
|
|
119
|
+
address: {
|
|
120
|
+
kind: 'entry',
|
|
121
|
+
workspaceSlug: workspacePart,
|
|
122
|
+
journalSlug: journalPart,
|
|
123
|
+
index,
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Render an address in canonical form. Inverse of `parseAddress`.
|
|
129
|
+
*
|
|
130
|
+
* Normalises slug case and rejects anything that would produce an unparseable
|
|
131
|
+
* string. The type system stops most misuse, but `formatAddress` is exported
|
|
132
|
+
* and reachable from untyped JS, and its documented contract is that the
|
|
133
|
+
* output is *canonical* — silently emitting `wj:Acme.eng#0` would break that
|
|
134
|
+
* for every consumer that later parses it back.
|
|
135
|
+
*/
|
|
136
|
+
export function formatAddress(address) {
|
|
137
|
+
const workspaceSlug = normalizeSlugOrThrow(address.workspaceSlug, 'workspaceSlug');
|
|
138
|
+
if (address.kind === 'workspace') {
|
|
139
|
+
return `${ADDRESS_SCHEME}${workspaceSlug}`;
|
|
140
|
+
}
|
|
141
|
+
const journalSlug = normalizeSlugOrThrow(address.journalSlug, 'journalSlug');
|
|
142
|
+
if (address.kind === 'journal') {
|
|
143
|
+
return `${ADDRESS_SCHEME}${workspaceSlug}.${journalSlug}`;
|
|
144
|
+
}
|
|
145
|
+
const { index } = address;
|
|
146
|
+
if (!Number.isInteger(index) || index < 1 || index > MAX_ENTRY_INDEX) {
|
|
147
|
+
throw new RangeError(`formatAddress: index must be an integer in 1..${MAX_ENTRY_INDEX}, got ${String(index)}`);
|
|
148
|
+
}
|
|
149
|
+
return `${ADDRESS_SCHEME}${workspaceSlug}.${journalSlug}#${index}`;
|
|
150
|
+
}
|
|
151
|
+
function normalizeSlugOrThrow(slug, field) {
|
|
152
|
+
const normalized = typeof slug === 'string' ? slug.trim().toLowerCase() : '';
|
|
153
|
+
if (!isValidSlug(normalized)) {
|
|
154
|
+
throw new TypeError(`formatAddress: ${field} is not a valid slug: ${JSON.stringify(slug)}`);
|
|
155
|
+
}
|
|
156
|
+
// `parseAddress` rejects reserved slugs in both positions, so emitting one
|
|
157
|
+
// would produce a string that cannot be parsed back — breaking the canonical
|
|
158
|
+
// round-trip this function documents. `shared-with-me` is in RESERVED_SLUGS,
|
|
159
|
+
// so this covers the virtual-workspace case too.
|
|
160
|
+
if (isReservedSlug(normalized)) {
|
|
161
|
+
throw new TypeError(`formatAddress: ${field} is a reserved slug: ${JSON.stringify(slug)}`);
|
|
162
|
+
}
|
|
163
|
+
return normalized;
|
|
164
|
+
}
|
|
165
|
+
/** Convenience formatters for callers holding loose slugs rather than a union. */
|
|
166
|
+
export function formatWorkspaceAddress(workspaceSlug) {
|
|
167
|
+
return formatAddress({ kind: 'workspace', workspaceSlug });
|
|
168
|
+
}
|
|
169
|
+
export function formatJournalAddress(workspaceSlug, journalSlug) {
|
|
170
|
+
return formatAddress({ kind: 'journal', workspaceSlug, journalSlug });
|
|
171
|
+
}
|
|
172
|
+
export function formatEntryAddress(workspaceSlug, journalSlug, index) {
|
|
173
|
+
return formatAddress({ kind: 'entry', workspaceSlug, journalSlug, index });
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Cheap check for "does this look like an address" — used to decide whether to
|
|
177
|
+
* treat a CLI positional as an address or as a bare slug. Note this returns
|
|
178
|
+
* false for a malformed address; use `parseAddress` when you need to tell a
|
|
179
|
+
* non-address apart from a broken one.
|
|
180
|
+
*/
|
|
181
|
+
export function isAddress(input) {
|
|
182
|
+
return parseAddress(input).ok;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* True when the input is *trying* to be an address, valid or not. The CLI uses
|
|
186
|
+
* this to route a `wj:`-prefixed positional into the address parser so a typo
|
|
187
|
+
* reports the real reason instead of being treated as a workspace slug.
|
|
188
|
+
*/
|
|
189
|
+
export function hasAddressScheme(input) {
|
|
190
|
+
return input.trim().toLowerCase().startsWith(ADDRESS_SCHEME);
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../src/address.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
CHANGED
|
@@ -102,6 +102,26 @@ export declare const WS_API_PATHS: {
|
|
|
102
102
|
readonly acceptWorkspaceInvitation: "/v1/workspace-invitations/accept";
|
|
103
103
|
/** GET. Pending journal + workspace invitations addressed to the caller. #775 */
|
|
104
104
|
readonly myInvitations: "/v1/me/invitations";
|
|
105
|
+
/** GET. Caller's notifications, newest first (`workspace_id` repeatable, `journal_id`, `unread`, `push`, `before`, `limit`). #797 */
|
|
106
|
+
readonly notifications: "/v1/me/notifications";
|
|
107
|
+
/** GET. Unread counters by workspace/journal + unread target paths. #797 */
|
|
108
|
+
readonly notificationsSummary: "/v1/me/notifications/summary";
|
|
109
|
+
/** POST `MarkNotificationsReadRequest`. #797 */
|
|
110
|
+
readonly notificationsRead: "/v1/me/notifications/read";
|
|
111
|
+
/** GET + `Upgrade: websocket`; subprotocols `[NOTIFICATIONS_WS_PROTOCOL, 'bearer.<token>']`. #797 */
|
|
112
|
+
readonly notificationsSocket: "/v1/realtime/notifications";
|
|
113
|
+
/** GET. `{ vapid_public_key }` — null when Web Push is not configured. #813 */
|
|
114
|
+
readonly pushConfig: "/v1/me/push-config";
|
|
115
|
+
/** POST a `PushSubscription.toJSON()` / DELETE `{ endpoint }` — this device's Web Push registration (#813); GET `?endpoint=` → `{ registered }` (#817). */
|
|
116
|
+
readonly pushSubscriptions: "/v1/me/push-subscriptions";
|
|
117
|
+
/** GET. Caller's `workspace_user_settings` rows (notification levels). #805 */
|
|
118
|
+
readonly myWorkspaceSettings: "/v1/me/workspace-settings";
|
|
119
|
+
/** PATCH `UpdateWorkspaceUserSettingsRequest`. #805 */
|
|
120
|
+
readonly myWorkspaceSettingsFor: (workspaceId: string) => string;
|
|
121
|
+
/** GET. Whole-workspace activity (owner + members). #797 */
|
|
122
|
+
readonly workspaceActivity: (workspaceSlug: string) => string;
|
|
123
|
+
/** GET. One journal's activity (anyone with journal access). #797 */
|
|
124
|
+
readonly journalActivity: (workspaceSlug: string, journalSlug: string) => string;
|
|
105
125
|
readonly supportContact: (workspaceSlug: string) => string;
|
|
106
126
|
/** GET. Live Paddle monthly checkout catalog ([{ tier, priceId, ... }]). */
|
|
107
127
|
readonly billingCatalog: "/v1/billing/catalog";
|
|
@@ -119,6 +139,20 @@ export declare const WS_API_PATHS: {
|
|
|
119
139
|
* before a plan change while the subscription is scheduled to cancel. */
|
|
120
140
|
readonly subscriptionReactivate: (workspaceSlug: string) => string;
|
|
121
141
|
};
|
|
142
|
+
/**
|
|
143
|
+
* Request header the web app sends on every API call (`X-Workjournal-Client:
|
|
144
|
+
* web`). Requests without it are treated as an agent (CLI, MCP, direct API)
|
|
145
|
+
* when deciding whether a user hears about their own actions (#818).
|
|
146
|
+
* Self-declared on purpose: it only affects the caller's own notifications.
|
|
147
|
+
*/
|
|
148
|
+
export declare const CLIENT_HEADER = "X-Workjournal-Client";
|
|
149
|
+
export declare const WEB_CLIENT = "web";
|
|
150
|
+
/** Activity + notification retention window, in days (issue #797). */
|
|
151
|
+
export declare const ACTIVITY_RETENTION_DAYS = 30;
|
|
152
|
+
/** WebSocket subprotocol the notifications socket negotiates (issue #797). The
|
|
153
|
+
* bearer rides as a second `bearer.<token>` subprotocol — browsers can't set
|
|
154
|
+
* headers on a WebSocket. */
|
|
155
|
+
export declare const NOTIFICATIONS_WS_PROTOCOL = "wj.notifications.v1";
|
|
122
156
|
/**
|
|
123
157
|
* Reserved virtual-workspace slug exposed in user-facing surfaces (CLI, MCP,
|
|
124
158
|
* web URL). The API serves the listing at a dedicated top-level path
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,EAAG,IAAa,CAAC;AAEzC;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS;;;6BAGL,MAAM;;2BAER,MAAM;kCACC,MAAM;gCACR,MAAM,SAAS,MAAM,GAAG,MAAM;wCAEtB,MAAM;uCACP,MAAM;sCACP,MAAM,UAAU,MAAM;sCAEtB,MAAM;qCACP,MAAM,gBAAgB,MAAM;;wCAGzB,MAAM;mCACX,MAAM;mCACN,MAAM;iCACR,MAAM,SAAS,MAAM,GAAG,MAAM;CAEzC,CAAC;AAeX,eAAO,MAAM,YAAY;;;wCAGG,MAAM;;uCAEP,MAAM;sCACP,MAAM,eAAe,MAAM;0CACvB,MAAM,eAAe,MAAM;+CAEtB,MAAM;sCACf,MAAM,eAAe,MAAM;oCAE7B,MAAM,eAAe,MAAM,SAAS,MAAM,GAAG,MAAM;4CAE3C,MAAM,eAAe,MAAM;IAE1D;2EACuE;wCAC5C,MAAM,eAAe,MAAM;2CAExB,MAAM,eAAe,MAAM;0CAE5B,MAAM,eAAe,MAAM,UAAU,MAAM;0CAE3C,MAAM,eAAe,MAAM;yCAE5B,MAAM,eAAe,MAAM,gBAAgB,MAAM;+CAE3C,MAAM,eAAe,MAAM,gBAAgB,MAAM;;wCAGxD,MAAM;4CACF,MAAM,eAAe,MAAM;mCAEpC,MAAM;mCACN,MAAM;IAC5B,gFAAgF;wCACrD,MAAM;iCACb,MAAM,SAAS,MAAM,GAAG,MAAM;IAElD;;oFAEgF;wCACrD,MAAM;IACjC;;uFAEmF;kDAC9C,MAAM,gBAAgB,MAAM;;sCAGxC,MAAM;qCACP,MAAM,cAAc,MAAM;IAElD,sFAAsF;6CACtD,MAAM,eAAe,MAAM;IAE3D;2EACuE;4CACxC,MAAM,eAAe,MAAM,cAAc,MAAM;IAE9E,0EAA0E;0CAC7C,MAAM,eAAe,MAAM;IAExD;wEACoE;yCACxC,MAAM,eAAe,MAAM,gBAAgB,MAAM;IAE7E;;mFAE+E;kDAC1C,MAAM,eAAe,MAAM,gBAAgB,MAAM;IAEtF;gEAC4D;mDACtB,MAAM,gBAAgB,MAAM;mCAE5C,MAAM;kCACP,MAAM,WAAW,MAAM;IAE5C,yDAAyD;wCAC9B,MAAM,eAAe,MAAM,WAAW,MAAM;IAEvE,6EAA6E;+CAC3C,MAAM;IACxC,sFAAsF;8CACrD,MAAM,UAAU,MAAM;IAEvD;kFAC8E;mDACxC,MAAM;IAC5C,qDAAqD;kDAChB,MAAM,gBAAgB,MAAM;wDAEtB,MAAM,gBAAgB,MAAM;IAEvE,8EAA8E;iDAC1C,MAAM;;IAG1C,iFAAiF;;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -112,6 +112,26 @@ export const WS_API_PATHS = {
|
|
|
112
112
|
acceptWorkspaceInvitation: `/${API_VERSION}/workspace-invitations/accept`,
|
|
113
113
|
/** GET. Pending journal + workspace invitations addressed to the caller. #775 */
|
|
114
114
|
myInvitations: `/${API_VERSION}/me/invitations`,
|
|
115
|
+
/** GET. Caller's notifications, newest first (`workspace_id` repeatable, `journal_id`, `unread`, `push`, `before`, `limit`). #797 */
|
|
116
|
+
notifications: `/${API_VERSION}/me/notifications`,
|
|
117
|
+
/** GET. Unread counters by workspace/journal + unread target paths. #797 */
|
|
118
|
+
notificationsSummary: `/${API_VERSION}/me/notifications/summary`,
|
|
119
|
+
/** POST `MarkNotificationsReadRequest`. #797 */
|
|
120
|
+
notificationsRead: `/${API_VERSION}/me/notifications/read`,
|
|
121
|
+
/** GET + `Upgrade: websocket`; subprotocols `[NOTIFICATIONS_WS_PROTOCOL, 'bearer.<token>']`. #797 */
|
|
122
|
+
notificationsSocket: `/${API_VERSION}/realtime/notifications`,
|
|
123
|
+
/** GET. `{ vapid_public_key }` — null when Web Push is not configured. #813 */
|
|
124
|
+
pushConfig: `/${API_VERSION}/me/push-config`,
|
|
125
|
+
/** POST a `PushSubscription.toJSON()` / DELETE `{ endpoint }` — this device's Web Push registration (#813); GET `?endpoint=` → `{ registered }` (#817). */
|
|
126
|
+
pushSubscriptions: `/${API_VERSION}/me/push-subscriptions`,
|
|
127
|
+
/** GET. Caller's `workspace_user_settings` rows (notification levels). #805 */
|
|
128
|
+
myWorkspaceSettings: `/${API_VERSION}/me/workspace-settings`,
|
|
129
|
+
/** PATCH `UpdateWorkspaceUserSettingsRequest`. #805 */
|
|
130
|
+
myWorkspaceSettingsFor: (workspaceId) => `/${API_VERSION}/me/workspace-settings/${encodeURIComponent(workspaceId)}`,
|
|
131
|
+
/** GET. Whole-workspace activity (owner + members). #797 */
|
|
132
|
+
workspaceActivity: (workspaceSlug) => `${ws(workspaceSlug)}/activity`,
|
|
133
|
+
/** GET. One journal's activity (anyone with journal access). #797 */
|
|
134
|
+
journalActivity: (workspaceSlug, journalSlug) => `${jr(workspaceSlug, journalSlug)}/activity`,
|
|
115
135
|
supportContact: (workspaceSlug) => `${ws(workspaceSlug)}/support/contact`,
|
|
116
136
|
/** GET. Live Paddle monthly checkout catalog ([{ tier, priceId, ... }]). */
|
|
117
137
|
billingCatalog: `/${API_VERSION}/billing/catalog`,
|
|
@@ -129,6 +149,20 @@ export const WS_API_PATHS = {
|
|
|
129
149
|
* before a plan change while the subscription is scheduled to cancel. */
|
|
130
150
|
subscriptionReactivate: (workspaceSlug) => `${ws(workspaceSlug)}/subscription/reactivate`,
|
|
131
151
|
};
|
|
152
|
+
/**
|
|
153
|
+
* Request header the web app sends on every API call (`X-Workjournal-Client:
|
|
154
|
+
* web`). Requests without it are treated as an agent (CLI, MCP, direct API)
|
|
155
|
+
* when deciding whether a user hears about their own actions (#818).
|
|
156
|
+
* Self-declared on purpose: it only affects the caller's own notifications.
|
|
157
|
+
*/
|
|
158
|
+
export const CLIENT_HEADER = 'X-Workjournal-Client';
|
|
159
|
+
export const WEB_CLIENT = 'web';
|
|
160
|
+
/** Activity + notification retention window, in days (issue #797). */
|
|
161
|
+
export const ACTIVITY_RETENTION_DAYS = 30;
|
|
162
|
+
/** WebSocket subprotocol the notifications socket negotiates (issue #797). The
|
|
163
|
+
* bearer rides as a second `bearer.<token>` subprotocol — browsers can't set
|
|
164
|
+
* headers on a WebSocket. */
|
|
165
|
+
export const NOTIFICATIONS_WS_PROTOCOL = 'wj.notifications.v1';
|
|
132
166
|
/**
|
|
133
167
|
* Reserved virtual-workspace slug exposed in user-facing surfaces (CLI, MCP,
|
|
134
168
|
* web URL). The API serves the listing at a dedicated top-level path
|
package/dist/constants.js.map
CHANGED
|
@@ -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":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,IAAa,CAAC;AAEzC;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACxB,MAAM,EAAE,IAAI,WAAW,SAAS;IAChC,UAAU,EAAE,IAAI,WAAW,aAAa;IACxC,SAAS,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,WAAW,eAAe,EAAE,EAAE;IAC7D,QAAQ,EAAE,IAAI,WAAW,WAAW;IACpC,OAAO,EAAE,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,WAAW,aAAa,EAAE,EAAE;IACzD,OAAO,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAI,WAAW,aAAa,SAAS,UAAU;IAC/E,KAAK,EAAE,CAAC,SAAiB,EAAE,KAAsB,EAAE,EAAE,CACpD,IAAI,WAAW,aAAa,kBAAkB,CAAC,SAAS,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;IACzG,aAAa,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAI,WAAW,aAAa,SAAS,iBAAiB;IAC5F,YAAY,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAI,WAAW,aAAa,SAAS,eAAe;IACzF,WAAW,EAAE,CAAC,SAAiB,EAAE,MAAc,EAAE,EAAE,CAClD,IAAI,WAAW,aAAa,SAAS,iBAAiB,MAAM,EAAE;IAC/D,WAAW,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAI,WAAW,aAAa,SAAS,cAAc;IACvF,UAAU,EAAE,CAAC,SAAiB,EAAE,YAAoB,EAAE,EAAE,CACvD,IAAI,WAAW,aAAa,SAAS,gBAAgB,YAAY,EAAE;IACpE,gBAAgB,EAAE,IAAI,WAAW,qBAAqB;IACtD,aAAa,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,IAAI,WAAW,aAAa,SAAS,SAAS;IACpF,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,WAAW,WAAW,IAAI,EAAE;IACjE,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,WAAW,WAAW,IAAI,UAAU;IACzE,WAAW,EAAE,CAAC,IAAY,EAAE,KAAsB,EAAE,EAAE,CACrD,IAAI,WAAW,WAAW,IAAI,YAAY,MAAM,CAAC,KAAK,CAAC,EAAE;CACjD,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,EAAE,GAAG,CAAC,aAAqB,EAAE,EAAE,CACpC,IAAI,WAAW,eAAe,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAC;AACnE,MAAM,EAAE,GAAG,CAAC,aAAqB,EAAE,WAAmB,EAAE,EAAE,CACzD,GAAG,EAAE,CAAC,aAAa,CAAC,aAAa,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;AAEpE,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,MAAM,EAAE,IAAI,WAAW,SAAS;IAChC,UAAU,EAAE,IAAI,WAAW,aAAa;IACxC,SAAS,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC;IACvD,kBAAkB,EAAE,IAAI,WAAW,wBAAwB;IAC3D,QAAQ,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW;IACpE,OAAO,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,EAAE,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;IACvF,WAAW,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,EAAE,CAC3D,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,OAAO;IACzC,gBAAgB,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,sBAAsB;IACvF,OAAO,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,EAAE,CACvD,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,UAAU;IAC5C,KAAK,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,KAAsB,EAAE,EAAE,CAC7E,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;IACjF,aAAa,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,EAAE,CAC7D,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,iBAAiB;IACnD;2EACuE;IACvE,SAAS,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,EAAE,CACzD,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,aAAa;IAC/C,YAAY,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,EAAE,CAC5D,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,eAAe;IACjD,WAAW,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,MAAc,EAAE,EAAE,CAC3E,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,iBAAiB,kBAAkB,CAAC,MAAM,CAAC,EAAE;IAC/E,WAAW,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,EAAE,CAC3D,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,cAAc;IAChD,UAAU,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,YAAoB,EAAE,EAAE,CAChF,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE;IACpF,gBAAgB,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,YAAoB,EAAE,EAAE,CACtF,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,SAAS;IAC3F,gBAAgB,EAAE,IAAI,WAAW,qBAAqB;IACtD,iBAAiB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,WAAW,gBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE;IAChG,aAAa,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,EAAE,CAC7D,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,SAAS;IAC3C,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,WAAW,WAAW,kBAAkB,CAAC,IAAI,CAAC,EAAE;IACrF,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,WAAW,WAAW,kBAAkB,CAAC,IAAI,CAAC,UAAU;IAC7F,gFAAgF;IAChF,kBAAkB,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,WAAW,WAAW,kBAAkB,CAAC,IAAI,CAAC,QAAQ;IAChG,WAAW,EAAE,CAAC,IAAY,EAAE,KAAsB,EAAE,EAAE,CACrD,IAAI,WAAW,WAAW,kBAAkB,CAAC,IAAI,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;IAClG;;oFAEgF;IAChF,iBAAiB,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,WAAW,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,EAAE;IACjG;;uFAEmF;IACnF,2BAA2B,EAAE,CAAC,KAAa,EAAE,YAAoB,EAAE,EAAE,CACpE,IAAI,WAAW,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE;IAC5G,oBAAoB,EAAE,IAAI,WAAW,0BAA0B;IAC/D,OAAO,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU;IAClE,MAAM,EAAE,CAAC,aAAqB,EAAE,UAAkB,EAAE,EAAE,CACrD,GAAG,EAAE,CAAC,aAAa,CAAC,YAAY,kBAAkB,CAAC,UAAU,CAAC,EAAE;IACjE,sFAAsF;IACtF,cAAc,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,EAAE,CAC9D,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,UAAU;IAC5C;2EACuE;IACvE,aAAa,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,UAAkB,EAAE,EAAE,CACjF,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,YAAY,kBAAkB,CAAC,UAAU,CAAC,EAAE;IAC9E,0EAA0E;IAC1E,WAAW,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,EAAE,CAC3D,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,cAAc;IAChD;wEACoE;IACpE,UAAU,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,YAAoB,EAAE,EAAE,CAChF,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE;IACpF;;mFAE+E;IAC/E,mBAAmB,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,YAAoB,EAAE,EAAE,CACzF,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,YAAY;IAC9F;gEAC4D;IAC5D,uBAAuB,EAAE,CAAC,UAAkB,EAAE,YAAoB,EAAE,EAAE,CACrE,IAAI,WAAW,WAAW,kBAAkB,CAAC,UAAU,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE;IAC3G,IAAI,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO;IAC5D,GAAG,EAAE,CAAC,aAAqB,EAAE,OAAe,EAAE,EAAE,CAC/C,GAAG,EAAE,CAAC,aAAa,CAAC,SAAS,kBAAkB,CAAC,OAAO,CAAC,EAAE;IAC3D,yDAAyD;IACzD,SAAS,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,OAAe,EAAE,EAAE,CAC1E,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,SAAS,kBAAkB,CAAC,OAAO,CAAC,EAAE;IACxE,6EAA6E;IAC7E,gBAAgB,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU;IAC3E,sFAAsF;IACtF,eAAe,EAAE,CAAC,aAAqB,EAAE,MAAc,EAAE,EAAE,CAC1D,GAAG,EAAE,CAAC,aAAa,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,EAAE;IAC7D;kFAC8E;IAC9E,oBAAoB,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,cAAc;IACnF,qDAAqD;IACrD,mBAAmB,EAAE,CAAC,aAAqB,EAAE,YAAoB,EAAE,EAAE,CACpE,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,EAAE;IACvE,yBAAyB,EAAE,CAAC,aAAqB,EAAE,YAAoB,EAAE,EAAE,CAC1E,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,CAAC,SAAS;IAC9E,8EAA8E;IAC9E,0BAA0B,EAAE,CAAC,KAAa,EAAE,EAAE,CAC7C,IAAI,WAAW,0BAA0B,kBAAkB,CAAC,KAAK,CAAC,EAAE;IACrE,yBAAyB,EAAE,IAAI,WAAW,+BAA+B;IACzE,iFAAiF;IACjF,aAAa,EAAE,IAAI,WAAW,iBAAiB;IAC/C,qIAAqI;IACrI,aAAa,EAAE,IAAI,WAAW,mBAAmB;IACjD,4EAA4E;IAC5E,oBAAoB,EAAE,IAAI,WAAW,2BAA2B;IAChE,gDAAgD;IAChD,iBAAiB,EAAE,IAAI,WAAW,wBAAwB;IAC1D,qGAAqG;IACrG,mBAAmB,EAAE,IAAI,WAAW,yBAAyB;IAC7D,+EAA+E;IAC/E,UAAU,EAAE,IAAI,WAAW,iBAAiB;IAC5C,2JAA2J;IAC3J,iBAAiB,EAAE,IAAI,WAAW,wBAAwB;IAC1D,+EAA+E;IAC/E,mBAAmB,EAAE,IAAI,WAAW,wBAAwB;IAC5D,uDAAuD;IACvD,sBAAsB,EAAE,CAAC,WAAmB,EAAE,EAAE,CAC/C,IAAI,WAAW,0BAA0B,kBAAkB,CAAC,WAAW,CAAC,EAAE;IAC3E,4DAA4D;IAC5D,iBAAiB,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,WAAW;IAC7E,qEAAqE;IACrE,eAAe,EAAE,CAAC,aAAqB,EAAE,WAAmB,EAAE,EAAE,CAC/D,GAAG,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC,WAAW;IAC7C,cAAc,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,kBAAkB;IACjF,4EAA4E;IAC5E,cAAc,EAAE,IAAI,WAAW,kBAAkB;IACjD,6EAA6E;IAC7E,YAAY,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,eAAe;IAC5E;mFAC+E;IAC/E,kBAAkB,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,sBAAsB;IACzF;gFAC4E;IAC5E,yBAAyB,EAAE,CAAC,aAAqB,EAAE,EAAE,CACpD,GAAG,EAAE,CAAC,aAAa,CAAC,8BAA8B;IACnD,+EAA+E;IAC/E,kBAAkB,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,sBAAsB;IACzF;6EACyE;IACzE,sBAAsB,EAAE,CAAC,aAAqB,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,0BAA0B;CACxF,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,sBAAsB,CAAC;AACpD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC;AAEhC,sEAAsE;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C;;6BAE6B;AAC7B,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAyB,CAAC;AAE7D,MAAM,CAAC,MAAM,WAAW,GAAG;IAC1B,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;IACtB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,gBAAgB,EAAE,kBAAkB;IACpC,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,kBAAkB,EAAE,oBAAoB;IACxC,kBAAkB,EAAE,oBAAoB;IACxC,2BAA2B,EAAE,6BAA6B;IAC1D,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,yBAAyB,EAAE,2BAA2B;IACtD,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,qBAAqB;CACjC,CAAC;AAIX,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,CAAC;AACnC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAC7C;mFACmF;AACnF,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAEpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AACrC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAElC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAAQ,CAAU,CAAC;AAEtD,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC7C,OAAQ,kBAAwC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACtF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC,CAAC,QAAQ;AACvD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACvC,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,iBAAiB;CACR,CAAC;AAEX,sFAAsF;AACtF,MAAM,CAAC,MAAM,4BAA4B,GAA2B;IACnE,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,MAAM;IACpB,iBAAiB,EAAE,KAAK;CACxB,CAAC;AAEF,oEAAoE;AACpE,MAAM,UAAU,uBAAuB,CAAC,IAAY;IACnD,OAAQ,wBAA8C,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,sCAA+C,CAAC;AAEjF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAkB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAc,CAAC;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAc,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
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 { NotificationLevel, NotificationLevels, NotificationTypeGroup, NotificationTypeOption, UpdateWorkspaceUserSettingsRequest, WorkspaceUserSettings, WorkspaceUserSettingsRow, } from './notification-levels.js';
|
|
7
|
+
export { DEFAULT_NOTIFICATION_LEVEL, isConfigurableNotificationType, isNotificationLevel, NOTIFICATION_LEVELS, NOTIFICATION_TYPE_GROUPS, NOTIFICATION_TYPE_OPTIONS, resolveNotificationLevel, } from './notification-levels.js';
|
|
4
8
|
export type { BearerResolution, WrappedPayload } from './opaque-token.js';
|
|
5
9
|
export { AAD_STRING, isOpaqueToken, KEY_LEN, NONCE_LEN, resolveBearer, TAG_LEN, unwrapToken, WJTK_PREFIX, wrapToken, } from './opaque-token.js';
|
|
6
10
|
export { proposeWorkspaceNameFromEmail } from './propose-workspace-name.js';
|
|
@@ -11,5 +15,5 @@ export type { ResolvedTheme, ThemePreference } from './theme.js';
|
|
|
11
15
|
export { isThemePreference, resolveTheme, THEME_INIT_SCRIPT, THEME_PREFERENCES, THEME_STORAGE_KEY, } from './theme.js';
|
|
12
16
|
export type { FeatureFlag } from './tiers.js';
|
|
13
17
|
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';
|
|
18
|
+
export type { AcceptInvitationRequest, AcceptLegalRequest, AcceptWorkspaceInvitationRequest, AcceptWorkspaceInvitationResponse, ActivityEvent, ActivityItem, ActivityOrigin, ActivityPage, ActivityScope, ApiError, Attachment, AttachmentContentType, AttachmentWithEntries, CreateEntryRequest, CreateInvitationRequest, CreateJournalRequest, CreatePromptRequest, CreateTagRequest, CreateWorkspaceInvitationRequest, CreateWorkspaceRequest, Entry, EntryAttachmentRef, EntrySummary, EntryWithNeighbors, 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
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,5 +1,7 @@
|
|
|
1
|
-
export {
|
|
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 { DEFAULT_NOTIFICATION_LEVEL, isConfigurableNotificationType, isNotificationLevel, NOTIFICATION_LEVELS, NOTIFICATION_TYPE_GROUPS, NOTIFICATION_TYPE_OPTIONS, resolveNotificationLevel, } from './notification-levels.js';
|
|
3
5
|
export { AAD_STRING, isOpaqueToken, KEY_LEN, NONCE_LEN, resolveBearer, TAG_LEN, unwrapToken, WJTK_PREFIX, wrapToken, } from './opaque-token.js';
|
|
4
6
|
export { proposeWorkspaceNameFromEmail } from './propose-workspace-name.js';
|
|
5
7
|
export { isReservedSlug, MAX_NAME_LENGTH, MAX_SLUG_LENGTH, RESERVED_SLUGS, slugify, } from './slug.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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;AAU7D,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,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/types.d.ts
CHANGED
|
@@ -499,6 +499,116 @@ export interface MyInvitations {
|
|
|
499
499
|
journal_invitations: MyJournalInvitation[];
|
|
500
500
|
workspace_invitations: MyWorkspaceInvitation[];
|
|
501
501
|
}
|
|
502
|
+
/**
|
|
503
|
+
* One activity event (issue #797, docs/notifications.md). The same `id` is
|
|
504
|
+
* shared by the workspace activity row and every recipient's notification
|
|
505
|
+
* copy. Events are self-contained snapshots: names/slugs/titles are copied at
|
|
506
|
+
* emit time so the record survives deletion of the thing it describes.
|
|
507
|
+
* `type` is an open string (e.g. `entry.created`) — new sources add types
|
|
508
|
+
* without a shared-package change; render `summary`, never switch on `type`.
|
|
509
|
+
*/
|
|
510
|
+
export interface ActivityEvent {
|
|
511
|
+
id: string;
|
|
512
|
+
type: string;
|
|
513
|
+
scope: ActivityScope;
|
|
514
|
+
workspace_id: string;
|
|
515
|
+
journal_id: string | null;
|
|
516
|
+
entry_id: string | null;
|
|
517
|
+
actor_id: string;
|
|
518
|
+
actor_email: string | null;
|
|
519
|
+
/** Server-rendered, actor-less phrase, e.g. `created entry #42 “Fix login”`. Plain-text join of `summary_parts`. */
|
|
520
|
+
summary: string;
|
|
521
|
+
/**
|
|
522
|
+
* The same phrase as segments; `href` marks a web-path link (entry, journal, …).
|
|
523
|
+
* Absent on events emitted before #802 — render `summary` then.
|
|
524
|
+
*/
|
|
525
|
+
summary_parts?: SummaryPart[] | null;
|
|
526
|
+
/** Web path the event links to; `null` when there is nothing to open. Not stable against slug renames. */
|
|
527
|
+
target_path: string | null;
|
|
528
|
+
/**
|
|
529
|
+
* Where the actor made the change: the web UI, or an agent (CLI, MCP,
|
|
530
|
+
* direct API — any request without the web client header, #818). Absent on
|
|
531
|
+
* events emitted before #818.
|
|
532
|
+
*/
|
|
533
|
+
origin?: ActivityOrigin;
|
|
534
|
+
data: Record<string, string | number | boolean | null>;
|
|
535
|
+
created_at: string;
|
|
536
|
+
}
|
|
537
|
+
export type ActivityScope = 'workspace' | 'journal';
|
|
538
|
+
/** See `ActivityEvent.origin`. */
|
|
539
|
+
export type ActivityOrigin = 'web' | 'agent';
|
|
540
|
+
/** One segment of an activity summary; `href` (a web path) makes it a link (#802). */
|
|
541
|
+
export interface SummaryPart {
|
|
542
|
+
text: string;
|
|
543
|
+
href?: string;
|
|
544
|
+
}
|
|
545
|
+
/** A recipient's copy of an `ActivityEvent`, with its read state. */
|
|
546
|
+
export interface Notification extends ActivityEvent {
|
|
547
|
+
read_at: string | null;
|
|
548
|
+
/** Delivered at the recipient's `push` level (#805) — the web app raises a browser notification. */
|
|
549
|
+
push: boolean;
|
|
550
|
+
/** The mailbox's monotonic row cursor (same value `before` / `next_before` page by). */
|
|
551
|
+
seq: number;
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* `GET /v1/me/notifications` — a page plus `latest_seq`, the mailbox's highest
|
|
555
|
+
* `seq` regardless of filters (0 when empty). A server-owned watermark: the
|
|
556
|
+
* web app's browser notifications pop only rows above the value it first saw.
|
|
557
|
+
*/
|
|
558
|
+
export interface NotificationPage extends ActivityPage<Notification> {
|
|
559
|
+
latest_seq: number;
|
|
560
|
+
}
|
|
561
|
+
/** An activity row as seen by one viewer: `notification` is null when the viewer has no copy (own action / no access then). */
|
|
562
|
+
export interface ActivityItem extends ActivityEvent {
|
|
563
|
+
notification: {
|
|
564
|
+
read: boolean;
|
|
565
|
+
} | null;
|
|
566
|
+
}
|
|
567
|
+
/** Cursor-paged list shape shared by notifications + activity listings. */
|
|
568
|
+
export interface ActivityPage<T> {
|
|
569
|
+
data: T[];
|
|
570
|
+
/** Pass as `before` for the next page; null when exhausted. */
|
|
571
|
+
next_before: number | null;
|
|
572
|
+
}
|
|
573
|
+
/** `GET /v1/me/notifications/summary` — every unread counter in one response. */
|
|
574
|
+
export interface NotificationSummary {
|
|
575
|
+
unread: number;
|
|
576
|
+
workspaces: Record<string, number>;
|
|
577
|
+
journals: Record<string, number>;
|
|
578
|
+
/** Distinct `target_path`s with unread notifications — drives visit-marks-read. */
|
|
579
|
+
unread_paths: string[];
|
|
580
|
+
}
|
|
581
|
+
/** `GET /v1/me/push-config` (#813). */
|
|
582
|
+
export interface PushConfig {
|
|
583
|
+
/** VAPID applicationServerKey (base64url); null when Web Push is not configured. */
|
|
584
|
+
vapid_public_key: string | null;
|
|
585
|
+
}
|
|
586
|
+
/** `GET /v1/me/push-subscriptions?endpoint=` (#817): is this device registered on the server? */
|
|
587
|
+
export interface PushSubscriptionStatus {
|
|
588
|
+
registered: boolean;
|
|
589
|
+
}
|
|
590
|
+
/** `POST /v1/me/push-subscriptions` body — the shape of `PushSubscription.toJSON()` (#813). */
|
|
591
|
+
export interface SavePushSubscriptionRequest {
|
|
592
|
+
endpoint: string;
|
|
593
|
+
keys: {
|
|
594
|
+
p256dh: string;
|
|
595
|
+
auth: string;
|
|
596
|
+
};
|
|
597
|
+
}
|
|
598
|
+
/** `POST /v1/me/notifications/read` body — exactly one selector. `read: false` only with `ids`. */
|
|
599
|
+
export type MarkNotificationsReadRequest = ({
|
|
600
|
+
ids: string[];
|
|
601
|
+
} | {
|
|
602
|
+
paths: string[];
|
|
603
|
+
} | {
|
|
604
|
+
workspace_ids: string[];
|
|
605
|
+
} | {
|
|
606
|
+
journal_id: string;
|
|
607
|
+
} | {
|
|
608
|
+
all: true;
|
|
609
|
+
}) & {
|
|
610
|
+
read?: boolean;
|
|
611
|
+
};
|
|
502
612
|
/**
|
|
503
613
|
* Prompts table row. Workspace-scoped (issue #238) with a single global
|
|
504
614
|
* default row (`is_default = true`, `workspace_id = null`) seeded by the
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|