@payload-onpage/core 0.2.0 → 0.3.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/autosave.d.ts +2 -2
- package/dist/autosave.d.ts.map +1 -1
- package/dist/autosave.js +2 -1
- package/dist/autosave.js.map +1 -1
- package/dist/constants.d.ts +14 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +14 -0
- package/dist/constants.js.map +1 -1
- package/dist/docref.d.ts +18 -3
- package/dist/docref.d.ts.map +1 -1
- package/dist/docref.js +13 -4
- package/dist/docref.js.map +1 -1
- package/dist/encode.d.ts +16 -4
- package/dist/encode.d.ts.map +1 -1
- package/dist/encode.js +42 -62
- package/dist/encode.js.map +1 -1
- package/dist/fields.d.ts +39 -8
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js +111 -97
- package/dist/fields.js.map +1 -1
- package/dist/index.d.ts +16 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -12
- package/dist/index.js.map +1 -1
- package/dist/path.d.ts +9 -1
- package/dist/path.d.ts.map +1 -1
- package/dist/path.js +27 -8
- package/dist/path.js.map +1 -1
- package/dist/payload.d.ts +5 -3
- package/dist/payload.d.ts.map +1 -1
- package/dist/payload.js +34 -23
- package/dist/payload.js.map +1 -1
- package/dist/ports.d.ts +43 -28
- package/dist/ports.d.ts.map +1 -1
- package/dist/ports.js +11 -1
- package/dist/ports.js.map +1 -1
- package/dist/schema.d.ts +71 -26
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +1 -6
- package/dist/schema.js.map +1 -1
- package/dist/seal.d.ts +17 -0
- package/dist/seal.d.ts.map +1 -1
- package/dist/seal.js +13 -0
- package/dist/seal.js.map +1 -1
- package/dist/session.d.ts +34 -18
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +20 -13
- package/dist/session.js.map +1 -1
- package/dist/stega.d.ts +6 -2
- package/dist/stega.d.ts.map +1 -1
- package/dist/stega.js +18 -13
- package/dist/stega.js.map +1 -1
- package/dist/util.d.ts +9 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +11 -0
- package/dist/util.js.map +1 -0
- package/package.json +1 -1
- package/src/autosave.ts +4 -3
- package/src/constants.ts +16 -0
- package/src/docref.ts +26 -6
- package/src/encode.ts +47 -55
- package/src/fields.ts +166 -98
- package/src/index.ts +125 -12
- package/src/path.ts +32 -10
- package/src/payload.ts +54 -26
- package/src/ports.ts +50 -22
- package/src/schema.ts +100 -17
- package/src/seal.ts +31 -0
- package/src/session.ts +67 -47
- package/src/stega.ts +25 -17
- package/src/util.ts +12 -0
package/dist/session.d.ts
CHANGED
|
@@ -8,22 +8,31 @@
|
|
|
8
8
|
* touched. Publish, discard and reload run one at a time.
|
|
9
9
|
*/
|
|
10
10
|
import { type SaveState } from './autosave.ts';
|
|
11
|
-
import { type DocRef } from './docref.ts';
|
|
11
|
+
import { type DocRef, type RefKey } from './docref.ts';
|
|
12
12
|
import type { DataSource, Doc } from './ports.ts';
|
|
13
13
|
import type { DocumentSchema } from './schema.ts';
|
|
14
14
|
export interface DocumentState {
|
|
15
|
-
key:
|
|
15
|
+
key: RefKey;
|
|
16
16
|
ref: DocRef;
|
|
17
17
|
status: 'loading' | 'ready' | 'error';
|
|
18
|
-
error
|
|
18
|
+
/** Why loading failed (status "error"). */
|
|
19
|
+
error?: string | undefined;
|
|
19
20
|
schema: DocumentSchema | null;
|
|
20
21
|
doc: Doc | null;
|
|
21
22
|
save: SaveState;
|
|
22
23
|
/** Edited in this session since load or the last publish/discard. */
|
|
23
24
|
edited: boolean;
|
|
24
25
|
}
|
|
26
|
+
/** A document that can be edited: loaded, with its schema and data. */
|
|
27
|
+
export type ReadyDocumentState = DocumentState & {
|
|
28
|
+
status: 'ready';
|
|
29
|
+
schema: DocumentSchema;
|
|
30
|
+
doc: Doc;
|
|
31
|
+
};
|
|
32
|
+
/** Narrows a document's state to one that can be edited (instead of checking `schema && doc` by hand). */
|
|
33
|
+
export declare const isReady: (state: DocumentState | undefined) => state is ReadyDocumentState;
|
|
25
34
|
export interface SessionSnapshot {
|
|
26
|
-
docs: Record<
|
|
35
|
+
docs: Record<RefKey, DocumentState>;
|
|
27
36
|
canUndo: boolean;
|
|
28
37
|
canRedo: boolean;
|
|
29
38
|
/** A publish, discard or reload is running. */
|
|
@@ -31,20 +40,20 @@ export interface SessionSnapshot {
|
|
|
31
40
|
}
|
|
32
41
|
export interface EditorSessionOptions {
|
|
33
42
|
dataSource: DataSource;
|
|
34
|
-
locale?: string;
|
|
43
|
+
locale?: string | undefined;
|
|
35
44
|
/** Autosave debounce, ms. Default: the collection's autosave interval, else 800. */
|
|
36
|
-
autosaveDelay?: number;
|
|
45
|
+
autosaveDelay?: number | undefined;
|
|
37
46
|
/** Called after a document's edits were saved; `seq` increments per save. Renderers refresh here. */
|
|
38
|
-
onSaved?: (ref: DocRef, seq: number) => void;
|
|
47
|
+
onSaved?: ((ref: DocRef, seq: number) => void) | undefined;
|
|
39
48
|
}
|
|
40
49
|
export interface PublishResult {
|
|
41
50
|
ok: boolean;
|
|
42
|
-
message?: string;
|
|
51
|
+
message?: string | undefined;
|
|
43
52
|
published: DocRef[];
|
|
44
53
|
}
|
|
45
54
|
export declare class EditorSession {
|
|
46
55
|
readonly dataSource: DataSource;
|
|
47
|
-
readonly locale
|
|
56
|
+
readonly locale: string | undefined;
|
|
48
57
|
private docs;
|
|
49
58
|
private queues;
|
|
50
59
|
private updatedAt;
|
|
@@ -64,13 +73,15 @@ export declare class EditorSession {
|
|
|
64
73
|
private snapshot;
|
|
65
74
|
private disposed;
|
|
66
75
|
private readonly autosaveDelay;
|
|
67
|
-
private readonly onSaved
|
|
76
|
+
private readonly onSaved;
|
|
68
77
|
constructor(opts: EditorSessionOptions);
|
|
69
78
|
subscribe: (fn: () => void) => (() => void);
|
|
70
79
|
getSnapshot: () => SessionSnapshot;
|
|
71
80
|
private emit;
|
|
81
|
+
/** After a publish: no unpublished edits, and the local copy says so. */
|
|
82
|
+
private markPublished;
|
|
72
83
|
private patchState;
|
|
73
|
-
get(key:
|
|
84
|
+
get(key: RefKey): DocumentState | undefined;
|
|
74
85
|
/** Run session-level operations (publish, discard, reload) one at a time. */
|
|
75
86
|
private serial;
|
|
76
87
|
private schemaFor;
|
|
@@ -82,20 +93,20 @@ export declare class EditorSession {
|
|
|
82
93
|
*/
|
|
83
94
|
open(ref: DocRef, initialDoc?: Doc): Promise<void>;
|
|
84
95
|
/** Try loading a document again after an error. */
|
|
85
|
-
retry(key:
|
|
96
|
+
retry(key: RefKey): Promise<void>;
|
|
86
97
|
private adopt;
|
|
87
98
|
private queueFor;
|
|
88
99
|
/** Schedule the editable top-level fields that changed since the last save. */
|
|
89
100
|
private queueChanges;
|
|
90
101
|
/** Change a document. `transient` updates the view only (live typing): no history, no save. */
|
|
91
|
-
apply(key:
|
|
102
|
+
apply(key: RefKey, fn: (doc: Doc) => Doc, opts?: {
|
|
92
103
|
transient?: boolean;
|
|
93
104
|
}): void;
|
|
94
|
-
setValue(key:
|
|
105
|
+
setValue(key: RefKey, path: string, value: unknown, opts?: {
|
|
95
106
|
transient?: boolean;
|
|
96
107
|
}): void;
|
|
97
108
|
/** Drop transient changes (Escape while typing). */
|
|
98
|
-
cancelTransient(key:
|
|
109
|
+
cancelTransient(key: RefKey): void;
|
|
99
110
|
private restore;
|
|
100
111
|
undo(): void;
|
|
101
112
|
redo(): void;
|
|
@@ -106,14 +117,19 @@ export declare class EditorSession {
|
|
|
106
117
|
private selected;
|
|
107
118
|
/** Publish every document with unpublished changes (edited here, or saved as a draft before). */
|
|
108
119
|
publish(opts?: {
|
|
109
|
-
keys?:
|
|
120
|
+
keys?: RefKey[];
|
|
110
121
|
}): Promise<PublishResult>;
|
|
111
122
|
/** Reset drafts with unpublished changes to their published versions (also clears a conflict). */
|
|
123
|
+
/**
|
|
124
|
+
* Reset the drafts to their published values. Done as an edit, so it lands on
|
|
125
|
+
* the undo stack: undo right after a discard brings the changes back (and
|
|
126
|
+
* autosave saves them again).
|
|
127
|
+
*/
|
|
112
128
|
discard(opts?: {
|
|
113
|
-
keys?:
|
|
129
|
+
keys?: RefKey[];
|
|
114
130
|
}): Promise<void>;
|
|
115
131
|
/** After a conflict: load the latest draft of a document and continue from it (local edits are dropped). */
|
|
116
|
-
reload(key:
|
|
132
|
+
reload(key: RefKey): Promise<void>;
|
|
117
133
|
/** Stop timers and listeners (unmount). Call flush() first to keep unsent edits. */
|
|
118
134
|
dispose(): void;
|
|
119
135
|
}
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAA;AAC7D,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/session.js
CHANGED
|
@@ -12,9 +12,12 @@ import { refKey } from "./docref.js";
|
|
|
12
12
|
import { buildPatch, changedKeys } from "./fields.js";
|
|
13
13
|
import { setAt } from "./path.js";
|
|
14
14
|
import { stegaCleanDeep } from "./stega.js";
|
|
15
|
+
import { errorText } from "./util.js";
|
|
16
|
+
/** Narrows a document's state to one that can be edited (instead of checking `schema && doc` by hand). */
|
|
17
|
+
export const isReady = (state) => state?.status === 'ready' && !!state.schema && !!state.doc;
|
|
18
|
+
const schemaKey = (ref) => `${ref.kind}:${ref.slug}`;
|
|
15
19
|
const HISTORY_LIMIT = 200;
|
|
16
20
|
const IDLE = { status: 'idle', seq: 0 };
|
|
17
|
-
const errorText = (e) => (e instanceof Error ? e.message : String(e));
|
|
18
21
|
export class EditorSession {
|
|
19
22
|
dataSource;
|
|
20
23
|
locale;
|
|
@@ -62,6 +65,11 @@ export class EditorSession {
|
|
|
62
65
|
for (const fn of this.listeners)
|
|
63
66
|
fn();
|
|
64
67
|
}
|
|
68
|
+
/** After a publish: no unpublished edits, and the local copy says so. */
|
|
69
|
+
markPublished(key) {
|
|
70
|
+
const doc = this.docs.get(key)?.doc;
|
|
71
|
+
this.patchState(key, { edited: false, doc: doc ? { ...doc, _status: 'published' } : null });
|
|
72
|
+
}
|
|
65
73
|
patchState(key, patch) {
|
|
66
74
|
const cur = this.docs.get(key);
|
|
67
75
|
if (!cur)
|
|
@@ -90,7 +98,7 @@ export class EditorSession {
|
|
|
90
98
|
}
|
|
91
99
|
// ── loading ─────────────────────────────────────────────────────────────
|
|
92
100
|
schemaFor(ref) {
|
|
93
|
-
const k =
|
|
101
|
+
const k = schemaKey(ref);
|
|
94
102
|
let p = this.schemaCache.get(k);
|
|
95
103
|
if (!p) {
|
|
96
104
|
p = this.dataSource.loadSchema(ref, { locale: this.locale });
|
|
@@ -177,6 +185,8 @@ export class EditorSession {
|
|
|
177
185
|
if (q)
|
|
178
186
|
return q;
|
|
179
187
|
const state = this.docs.get(key);
|
|
188
|
+
if (!state)
|
|
189
|
+
throw new Error(`payload-onpage: ${key} is not open in this session`);
|
|
180
190
|
q = new AutosaveQueue({
|
|
181
191
|
delay: this.autosaveDelay ?? state.schema?.autosaveInterval ?? 800,
|
|
182
192
|
onState: (save) => {
|
|
@@ -323,17 +333,18 @@ export class EditorSession {
|
|
|
323
333
|
};
|
|
324
334
|
if (res.updatedAt)
|
|
325
335
|
this.updatedAt.set(key, res.updatedAt);
|
|
326
|
-
|
|
327
|
-
this.patchState(key, {
|
|
328
|
-
edited: false,
|
|
329
|
-
doc: now.doc ? { ...now.doc, _status: 'published' } : now.doc,
|
|
330
|
-
});
|
|
336
|
+
this.markPublished(key);
|
|
331
337
|
published.push(state.ref);
|
|
332
338
|
}
|
|
333
339
|
return { ok: true, published };
|
|
334
340
|
});
|
|
335
341
|
}
|
|
336
342
|
/** Reset drafts with unpublished changes to their published versions (also clears a conflict). */
|
|
343
|
+
/**
|
|
344
|
+
* Reset the drafts to their published values. Done as an edit, so it lands on
|
|
345
|
+
* the undo stack: undo right after a discard brings the changes back (and
|
|
346
|
+
* autosave saves them again).
|
|
347
|
+
*/
|
|
337
348
|
discard(opts = {}) {
|
|
338
349
|
return this.serial(async () => {
|
|
339
350
|
await this.flush();
|
|
@@ -343,7 +354,7 @@ export class EditorSession {
|
|
|
343
354
|
this.dataSource.loadDocument(ref, { draft: true, locale: this.locale, depth: 2 }),
|
|
344
355
|
]);
|
|
345
356
|
const state = this.docs.get(key);
|
|
346
|
-
if (!state
|
|
357
|
+
if (!isReady(state))
|
|
347
358
|
continue;
|
|
348
359
|
// Continue from the server's latest draft (so the stale-write guard accepts the reset).
|
|
349
360
|
this.adopt(key, latest);
|
|
@@ -353,11 +364,7 @@ export class EditorSession {
|
|
|
353
364
|
next[k] = published[k];
|
|
354
365
|
this.apply(key, () => next);
|
|
355
366
|
await this.queues.get(key)?.flush();
|
|
356
|
-
|
|
357
|
-
this.patchState(key, {
|
|
358
|
-
edited: false,
|
|
359
|
-
doc: now.doc ? { ...now.doc, _status: 'published' } : now.doc,
|
|
360
|
-
});
|
|
367
|
+
this.markPublished(key);
|
|
361
368
|
}
|
|
362
369
|
});
|
|
363
370
|
}
|
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/stega.d.ts
CHANGED
|
@@ -14,13 +14,17 @@
|
|
|
14
14
|
* All of these render with zero width and are ignored by `trim()`-insensitive
|
|
15
15
|
* layout; they are stripped before anything is written back to Payload.
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
import { type RefKey } from './docref.ts';
|
|
18
|
+
export declare const MARKER_KINDS: readonly ["text", "textarea", "richtext", "media"];
|
|
19
|
+
export type MarkerKind = (typeof MARKER_KINDS)[number];
|
|
18
20
|
export interface Marker {
|
|
19
|
-
ref:
|
|
21
|
+
ref: RefKey;
|
|
20
22
|
path: string;
|
|
21
23
|
kind: MarkerKind;
|
|
22
24
|
}
|
|
23
25
|
export declare function encodeMarker(marker: Marker): string;
|
|
26
|
+
/** Does this string carry a marker? (A cheap test before decoding, e.g. while scanning a page.) */
|
|
27
|
+
export declare const hasStegaMarker: (value: string) => boolean;
|
|
24
28
|
/** Append a marker to a string (an already-marked string is re-marked, not doubled). */
|
|
25
29
|
export declare function stegaEncode(value: string, marker: Marker): string;
|
|
26
30
|
/** All complete markers in a string, in order. Damaged ones are skipped. */
|
package/dist/stega.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stega.d.ts","sourceRoot":"","sources":["../src/stega.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"stega.d.ts","sourceRoot":"","sources":["../src/stega.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAY,KAAK,MAAM,EAAE,MAAM,aAAa,CAAA;AAEnD,eAAO,MAAM,YAAY,oDAAqD,CAAA;AAC9E,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAEtD,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;CACjB;AA2BD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAUnD;AA0BD,mGAAmG;AACnG,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,KAAG,OAAgC,CAAA;AAE/E,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAQnD;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAW7C"}
|
package/dist/stega.js
CHANGED
|
@@ -14,7 +14,10 @@
|
|
|
14
14
|
* All of these render with zero width and are ignored by `trim()`-insensitive
|
|
15
15
|
* layout; they are stripped before anything is written back to Payload.
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
import { isRefKey } from "./docref.js";
|
|
18
|
+
export const MARKER_KINDS = ['text', 'textarea', 'richtext', 'media'];
|
|
19
|
+
/** The four invisible code points that carry base-4 digits, in digit order. */
|
|
20
|
+
const DIGITS = '\u200b\u200c\u200d\u2060';
|
|
18
21
|
const START = '\u2063\u2062';
|
|
19
22
|
const END = '\u2064';
|
|
20
23
|
const KIND_CODE = {
|
|
@@ -23,13 +26,9 @@ const KIND_CODE = {
|
|
|
23
26
|
richtext: 'r',
|
|
24
27
|
media: 'm',
|
|
25
28
|
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
r: 'richtext',
|
|
30
|
-
m: 'media',
|
|
31
|
-
};
|
|
32
|
-
const DIGIT_VALUE = new Map(DIGITS.map((c, i) => [c, i]));
|
|
29
|
+
/** Derived from KIND_CODE, so the two can't disagree. */
|
|
30
|
+
const CODE_KIND = new Map(Object.entries(KIND_CODE).map(([kind, code]) => [code, kind]));
|
|
31
|
+
const DIGIT_VALUE = new Map([...DIGITS].map((c, i) => [c, i]));
|
|
33
32
|
// The codec's characters are single invisible code points (not combining sequences).
|
|
34
33
|
// eslint-disable-next-line no-misleading-character-class
|
|
35
34
|
const MARKER_RE = /\u2063\u2062([\u200b\u200c\u200d\u2060]*)\u2064/g;
|
|
@@ -41,7 +40,11 @@ export function encodeMarker(marker) {
|
|
|
41
40
|
const bytes = encoder.encode(`${marker.ref}|${marker.path}|${KIND_CODE[marker.kind]}`);
|
|
42
41
|
let body = '';
|
|
43
42
|
for (const b of bytes)
|
|
44
|
-
body +=
|
|
43
|
+
body +=
|
|
44
|
+
DIGITS.charAt((b >> 6) & 3) +
|
|
45
|
+
DIGITS.charAt((b >> 4) & 3) +
|
|
46
|
+
DIGITS.charAt((b >> 2) & 3) +
|
|
47
|
+
DIGITS.charAt(b & 3);
|
|
45
48
|
return START + body + END;
|
|
46
49
|
}
|
|
47
50
|
function decodeBody(body) {
|
|
@@ -51,7 +54,7 @@ function decodeBody(body) {
|
|
|
51
54
|
for (let i = 0; i < bytes.length; i++) {
|
|
52
55
|
let b = 0;
|
|
53
56
|
for (let j = 0; j < 4; j++) {
|
|
54
|
-
const v = DIGIT_VALUE.get(body
|
|
57
|
+
const v = DIGIT_VALUE.get(body.charAt(i * 4 + j));
|
|
55
58
|
if (v === undefined)
|
|
56
59
|
return null;
|
|
57
60
|
b = (b << 2) | v;
|
|
@@ -66,11 +69,13 @@ function decodeBody(body) {
|
|
|
66
69
|
return null;
|
|
67
70
|
}
|
|
68
71
|
const [ref, path, code, ...extra] = text.split('|');
|
|
69
|
-
const kind = CODE_KIND
|
|
70
|
-
if (!ref || !path || !kind || extra.length)
|
|
72
|
+
const kind = code === undefined ? undefined : CODE_KIND.get(code);
|
|
73
|
+
if (!ref || !isRefKey(ref) || !path || !kind || extra.length)
|
|
71
74
|
return null;
|
|
72
75
|
return { ref, path, kind };
|
|
73
76
|
}
|
|
77
|
+
/** Does this string carry a marker? (A cheap test before decoding, e.g. while scanning a page.) */
|
|
78
|
+
export const hasStegaMarker = (value) => value.includes(START);
|
|
74
79
|
/** Append a marker to a string (an already-marked string is re-marked, not doubled). */
|
|
75
80
|
export function stegaEncode(value, marker) {
|
|
76
81
|
return stegaClean(value) + encodeMarker(marker);
|
|
@@ -81,7 +86,7 @@ export function stegaDecode(value) {
|
|
|
81
86
|
if (!value)
|
|
82
87
|
return out;
|
|
83
88
|
for (const m of value.matchAll(MARKER_RE)) {
|
|
84
|
-
const marker = decodeBody(m[1]);
|
|
89
|
+
const marker = decodeBody(m[1] ?? '');
|
|
85
90
|
if (marker)
|
|
86
91
|
out.push(marker);
|
|
87
92
|
}
|
package/dist/stega.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stega.js","sourceRoot":"","sources":["../src/stega.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"stega.js","sourceRoot":"","sources":["../src/stega.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAA;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAU,CAAA;AAS9E,+EAA+E;AAC/E,MAAM,MAAM,GAAG,0BAA0B,CAAA;AACzC,MAAM,KAAK,GAAG,cAAc,CAAA;AAC5B,MAAM,GAAG,GAAG,QAAQ,CAAA;AACpB,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,GAAG;IACT,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,GAAG;CACmC,CAAA;AAC/C,yDAAyD;AACzD,MAAM,SAAS,GAAG,IAAI,GAAG,CACtB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAiC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAC/F,CAAA;AAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAiB,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAC9E,qFAAqF;AACrF,yDAAyD;AACzD,MAAM,SAAS,GAAG,kDAAkD,CAAA;AACpE,yDAAyD;AACzD,MAAM,YAAY,GAAG,+CAA+C,CAAA;AAEpE,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AACjC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;AAEzD,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACtF,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,KAAK,MAAM,CAAC,IAAI,KAAK;QACnB,IAAI;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IACxB,OAAO,KAAK,GAAG,IAAI,GAAG,GAAG,CAAA;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3D,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACjD,IAAI,CAAC,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAA;YAChC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;QACD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IACD,IAAI,IAAY,CAAA;IAChB,IAAI,CAAC;QACH,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IACD,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACnD,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACjE,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACzE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AAC5B,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAE/E,wFAAwF;AACxF,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,MAAc;IACvD,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;AACjD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAA;IACtB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACrC,IAAI,MAAM;YAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAI,KAAQ;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,KAAK,CAAiB,CAAA;IACvE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACtB,OAAQ,KAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,CAAiB,CAAA;IAC3E,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5F,MAAM,GAAG,GAA4B,EAAE,CAAA;QACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;YACnE,GAAG,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;QAC5B,OAAO,GAAQ,CAAA;IACjB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
package/dist/util.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Small type-level and error helpers shared by every package. */
|
|
2
|
+
/** A thrown value's message (anything can be thrown, not only `Error`s). */
|
|
3
|
+
export declare const errorText: (e: unknown) => string;
|
|
4
|
+
/**
|
|
5
|
+
* Exhaustiveness check: call in the `default` of a switch over a union. Adding a
|
|
6
|
+
* member to the union then fails to compile until every switch handles it.
|
|
7
|
+
*/
|
|
8
|
+
export declare function assertNever(value: never, what?: string): never;
|
|
9
|
+
//# sourceMappingURL=util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,4EAA4E;AAC5E,eAAO,MAAM,SAAS,GAAI,GAAG,OAAO,KAAG,MAAsD,CAAA;AAE7F;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,SAAU,GAAG,KAAK,CAE/D"}
|
package/dist/util.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Small type-level and error helpers shared by every package. */
|
|
2
|
+
/** A thrown value's message (anything can be thrown, not only `Error`s). */
|
|
3
|
+
export const errorText = (e) => (e instanceof Error ? e.message : String(e));
|
|
4
|
+
/**
|
|
5
|
+
* Exhaustiveness check: call in the `default` of a switch over a union. Adding a
|
|
6
|
+
* member to the union then fails to compile until every switch handles it.
|
|
7
|
+
*/
|
|
8
|
+
export function assertNever(value, what = 'value') {
|
|
9
|
+
throw new Error(`Unexpected ${what}: ${JSON.stringify(value)}`);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,4EAA4E;AAC5E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAU,EAAU,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7F;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,IAAI,GAAG,OAAO;IACtD,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AACjE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payload-onpage/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "payload-onpage core: document refs, schema, field operations, stega codec, autosave and the editor session, plus the port interfaces adapters implement.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
package/src/autosave.ts
CHANGED
|
@@ -6,13 +6,14 @@
|
|
|
6
6
|
* failures (validation, permissions) stop immediately with the server's message.
|
|
7
7
|
*/
|
|
8
8
|
import type { SaveResult } from './ports.ts'
|
|
9
|
+
import { errorText } from './util.ts'
|
|
9
10
|
|
|
10
11
|
export type SaveStatus = 'idle' | 'pending' | 'saving' | 'saved' | 'error' | 'conflict'
|
|
11
12
|
|
|
12
13
|
export interface SaveState {
|
|
13
14
|
status: SaveStatus
|
|
14
|
-
lastSavedAt?: number
|
|
15
|
-
message?: string
|
|
15
|
+
lastSavedAt?: number | undefined
|
|
16
|
+
message?: string | undefined
|
|
16
17
|
/** Increments with every successful save. */
|
|
17
18
|
seq: number
|
|
18
19
|
}
|
|
@@ -96,7 +97,7 @@ export class AutosaveQueue {
|
|
|
96
97
|
try {
|
|
97
98
|
result = await this.opts.send(patch)
|
|
98
99
|
} catch (err) {
|
|
99
|
-
result = { ok: false, status: 0, message:
|
|
100
|
+
result = { ok: false, status: 0, message: errorText(err) }
|
|
100
101
|
}
|
|
101
102
|
this.inFlight = null
|
|
102
103
|
if (result.ok) {
|
package/src/constants.ts
CHANGED
|
@@ -5,6 +5,22 @@ export const DEFAULTS = {
|
|
|
5
5
|
adminRoute: '/admin',
|
|
6
6
|
} as const
|
|
7
7
|
|
|
8
|
+
/** The plugin's endpoints, under `${apiRoute}${routePrefix}`. One list for the plugin and every client. */
|
|
9
|
+
export const ROUTES = {
|
|
10
|
+
schema: '/schema',
|
|
11
|
+
enter: '/enter',
|
|
12
|
+
mode: '/mode',
|
|
13
|
+
exit: '/exit',
|
|
14
|
+
previewLink: '/preview-link',
|
|
15
|
+
preview: '/preview',
|
|
16
|
+
} as const
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* The Payload request-context key that asks a read for auto-mapping markers.
|
|
20
|
+
* `onpageContext()` sets it; the plugin's afterRead hook reads it.
|
|
21
|
+
*/
|
|
22
|
+
export const CONTEXT_KEY = 'onpage'
|
|
23
|
+
|
|
8
24
|
/** Cookies and headers used by the Next.js adapter and its proxy. */
|
|
9
25
|
export const COOKIE = {
|
|
10
26
|
/** Editor mode, bound to the signed-in session: `edit|view:<authCookie>:<hash>`. */
|
package/src/docref.ts
CHANGED
|
@@ -6,11 +6,22 @@
|
|
|
6
6
|
export type DocRef =
|
|
7
7
|
{ kind: 'collection'; slug: string; id: string | number } | { kind: 'global'; slug: string }
|
|
8
8
|
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* A document's stable key: "c:<slug>:<id>" or "g:<slug>". A template-literal
|
|
11
|
+
* type, so a field path or slug can't be passed where a document key belongs.
|
|
12
|
+
*/
|
|
13
|
+
export type RefKey = `c:${string}:${string}` | `g:${string}`
|
|
14
|
+
|
|
15
|
+
/** A field (or row/list) of one document: "<refKey>|<path>". */
|
|
16
|
+
export type TargetKey = `${RefKey}|${string}`
|
|
17
|
+
|
|
18
|
+
export function refKey(ref: DocRef): RefKey {
|
|
11
19
|
return ref.kind === 'global' ? `g:${ref.slug}` : `c:${ref.slug}:${ref.id}`
|
|
12
20
|
}
|
|
13
21
|
|
|
22
|
+
/** Is this string a well-formed document key? */
|
|
23
|
+
export const isRefKey = (key: string): key is RefKey => parseRefKey(key) !== null
|
|
24
|
+
|
|
14
25
|
export function parseRefKey(key: string): DocRef | null {
|
|
15
26
|
if (key.startsWith('g:')) {
|
|
16
27
|
const slug = key.slice(2)
|
|
@@ -20,13 +31,22 @@ export function parseRefKey(key: string): DocRef | null {
|
|
|
20
31
|
const rest = key.slice(2)
|
|
21
32
|
const i = rest.indexOf(':')
|
|
22
33
|
if (i <= 0 || i === rest.length - 1) return null
|
|
23
|
-
|
|
24
|
-
const raw = rest.slice(i + 1)
|
|
25
|
-
return { kind: 'collection', slug, id: /^\d+$/.test(raw) ? Number(raw) : raw }
|
|
34
|
+
return collectionRef(rest.slice(0, i), rest.slice(i + 1))
|
|
26
35
|
}
|
|
27
36
|
return null
|
|
28
37
|
}
|
|
29
38
|
|
|
39
|
+
/**
|
|
40
|
+
* A collection ref from an id read as text (a key, a URL, an attribute). Only a
|
|
41
|
+
* canonical safe integer becomes a number: "007" and ids past 2^53 stay text,
|
|
42
|
+
* so the document they name is the one that's opened. Servers that know the
|
|
43
|
+
* collection's id type should decide instead (the plugin does).
|
|
44
|
+
*/
|
|
45
|
+
export function collectionRef(slug: string, id: string): DocRef {
|
|
46
|
+
const n = Number(id)
|
|
47
|
+
return { kind: 'collection', slug, id: Number.isSafeInteger(n) && String(n) === id ? n : id }
|
|
48
|
+
}
|
|
49
|
+
|
|
30
50
|
/** Key for one field (or row/list) of one document: "<refKey>|<path>". */
|
|
31
|
-
export const targetKey = (ref: DocRef |
|
|
51
|
+
export const targetKey = (ref: DocRef | RefKey, path: string): TargetKey =>
|
|
32
52
|
`${typeof ref === 'string' ? ref : refKey(ref)}|${path}`
|