@superbee/core 0.1.6 → 0.2.0-pre.10
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/README.md +127 -0
- package/dist/artifact-contract.d.ts +90 -0
- package/dist/artifact-contract.d.ts.map +1 -0
- package/dist/artifact-contract.js +205 -0
- package/dist/artifact-contract.js.map +1 -0
- package/dist/backend.d.ts +16 -1
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +112 -47
- package/dist/backend.js.map +1 -1
- package/dist/bundle-ops.d.ts +42 -0
- package/dist/bundle-ops.d.ts.map +1 -0
- package/dist/bundle-ops.js +88 -0
- package/dist/bundle-ops.js.map +1 -0
- package/dist/bundle.d.ts +10 -28
- package/dist/bundle.d.ts.map +1 -1
- package/dist/bundle.js +12 -69
- package/dist/bundle.js.map +1 -1
- package/dist/document-codec.d.ts +6 -1
- package/dist/document-codec.d.ts.map +1 -1
- package/dist/document-codec.js +8 -4
- package/dist/document-codec.js.map +1 -1
- package/dist/document-field-actions.d.ts +107 -0
- package/dist/document-field-actions.d.ts.map +1 -0
- package/dist/document-field-actions.js +302 -0
- package/dist/document-field-actions.js.map +1 -0
- package/dist/document-mutation.d.ts +61 -3
- package/dist/document-mutation.d.ts.map +1 -1
- package/dist/document-mutation.js +116 -25
- package/dist/document-mutation.js.map +1 -1
- package/dist/document-write-policy.d.ts +0 -1
- package/dist/document-write-policy.d.ts.map +1 -1
- package/dist/document-write-policy.js +7 -4
- package/dist/document-write-policy.js.map +1 -1
- package/dist/engine.d.ts +3 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +6 -4
- package/dist/engine.js.map +1 -1
- package/dist/file-journaled-backend-internal.d.ts +19 -0
- package/dist/file-journaled-backend-internal.d.ts.map +1 -0
- package/dist/file-journaled-backend-internal.js +10 -0
- package/dist/file-journaled-backend-internal.js.map +1 -0
- package/dist/file-journaled-backend.d.ts +162 -0
- package/dist/file-journaled-backend.d.ts.map +1 -0
- package/dist/file-journaled-backend.js +1113 -0
- package/dist/file-journaled-backend.js.map +1 -0
- package/dist/filesystem-host.d.ts +15 -0
- package/dist/filesystem-host.d.ts.map +1 -0
- package/dist/filesystem-host.js +20 -0
- package/dist/filesystem-host.js.map +1 -0
- package/dist/filesystem-identity.d.ts +86 -4
- package/dist/filesystem-identity.d.ts.map +1 -1
- package/dist/filesystem-identity.js +338 -102
- package/dist/filesystem-identity.js.map +1 -1
- package/dist/filesystem-lock.d.ts +16 -3
- package/dist/filesystem-lock.d.ts.map +1 -1
- package/dist/filesystem-lock.js +323 -77
- package/dist/filesystem-lock.js.map +1 -1
- package/dist/filesystem-push-role.d.ts +77 -0
- package/dist/filesystem-push-role.d.ts.map +1 -0
- package/dist/filesystem-push-role.js +165 -0
- package/dist/filesystem-push-role.js.map +1 -0
- package/dist/filesystem.d.ts +17 -0
- package/dist/filesystem.d.ts.map +1 -0
- package/dist/filesystem.js +18 -0
- package/dist/filesystem.js.map +1 -0
- package/dist/freshness.d.ts +10 -7
- package/dist/freshness.d.ts.map +1 -1
- package/dist/freshness.js +14 -11
- package/dist/freshness.js.map +1 -1
- package/dist/frontmatter-contract.d.ts +2 -2
- package/dist/frontmatter-contract.js +2 -2
- package/dist/frontmatter.d.ts +11 -1
- package/dist/frontmatter.d.ts.map +1 -1
- package/dist/frontmatter.js +20 -7
- package/dist/frontmatter.js.map +1 -1
- package/dist/governed-body-write.d.ts +106 -0
- package/dist/governed-body-write.d.ts.map +1 -0
- package/dist/governed-body-write.js +251 -0
- package/dist/governed-body-write.js.map +1 -0
- package/dist/heads-digest.d.ts +32 -0
- package/dist/heads-digest.d.ts.map +1 -0
- package/dist/heads-digest.js +37 -0
- package/dist/heads-digest.js.map +1 -0
- package/dist/host-policy-snapshot.d.ts +9 -0
- package/dist/host-policy-snapshot.d.ts.map +1 -0
- package/dist/host-policy-snapshot.js +33 -0
- package/dist/host-policy-snapshot.js.map +1 -0
- package/dist/host-text.d.ts +31 -0
- package/dist/host-text.d.ts.map +1 -0
- package/dist/host-text.js +77 -0
- package/dist/host-text.js.map +1 -0
- package/dist/hosted-transport/answer-rows.d.ts +216 -0
- package/dist/hosted-transport/answer-rows.d.ts.map +1 -0
- package/dist/hosted-transport/answer-rows.js +396 -0
- package/dist/hosted-transport/answer-rows.js.map +1 -0
- package/dist/hosted-transport/carrier.d.ts +142 -0
- package/dist/hosted-transport/carrier.d.ts.map +1 -0
- package/dist/hosted-transport/carrier.js +241 -0
- package/dist/hosted-transport/carrier.js.map +1 -0
- package/dist/hosted-transport/history-pages.d.ts +55 -0
- package/dist/hosted-transport/history-pages.d.ts.map +1 -0
- package/dist/hosted-transport/history-pages.js +69 -0
- package/dist/hosted-transport/history-pages.js.map +1 -0
- package/dist/hosted-transport/index.d.ts +18 -0
- package/dist/hosted-transport/index.d.ts.map +1 -0
- package/dist/hosted-transport/index.js +18 -0
- package/dist/hosted-transport/index.js.map +1 -0
- package/dist/hosted-transport/operations.d.ts +85 -0
- package/dist/hosted-transport/operations.d.ts.map +1 -0
- package/dist/hosted-transport/operations.js +128 -0
- package/dist/hosted-transport/operations.js.map +1 -0
- package/dist/hosted-transport/paged-reads.d.ts +87 -0
- package/dist/hosted-transport/paged-reads.d.ts.map +1 -0
- package/dist/hosted-transport/paged-reads.js +238 -0
- package/dist/hosted-transport/paged-reads.js.map +1 -0
- package/dist/hosted-transport/read-adapter.d.ts +250 -0
- package/dist/hosted-transport/read-adapter.d.ts.map +1 -0
- package/dist/hosted-transport/read-adapter.js +557 -0
- package/dist/hosted-transport/read-adapter.js.map +1 -0
- package/dist/hosted-transport/root-write.d.ts +114 -0
- package/dist/hosted-transport/root-write.d.ts.map +1 -0
- package/dist/hosted-transport/root-write.js +171 -0
- package/dist/hosted-transport/root-write.js.map +1 -0
- package/dist/hosted-transport/whole-document-transport.d.ts +174 -0
- package/dist/hosted-transport/whole-document-transport.d.ts.map +1 -0
- package/dist/hosted-transport/whole-document-transport.js +411 -0
- package/dist/hosted-transport/whole-document-transport.js.map +1 -0
- package/dist/index.d.ts +29 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -6
- package/dist/index.js.map +1 -1
- package/dist/indexeddb-backend.d.ts +197 -0
- package/dist/indexeddb-backend.d.ts.map +1 -0
- package/dist/indexeddb-backend.js +1183 -0
- package/dist/indexeddb-backend.js.map +1 -0
- package/dist/journaled-backend.d.ts +467 -0
- package/dist/journaled-backend.d.ts.map +1 -0
- package/dist/journaled-backend.js +389 -0
- package/dist/journaled-backend.js.map +1 -0
- package/dist/kind-coverage.d.ts +99 -0
- package/dist/kind-coverage.d.ts.map +1 -0
- package/dist/kind-coverage.js +186 -0
- package/dist/kind-coverage.js.map +1 -0
- package/dist/kind-field-mutation.d.ts +15 -0
- package/dist/kind-field-mutation.d.ts.map +1 -0
- package/dist/kind-field-mutation.js +160 -0
- package/dist/kind-field-mutation.js.map +1 -0
- package/dist/kinds.d.ts +31 -1
- package/dist/kinds.d.ts.map +1 -1
- package/dist/kinds.js +86 -17
- package/dist/kinds.js.map +1 -1
- package/dist/links.d.ts +1 -1
- package/dist/links.d.ts.map +1 -1
- package/dist/links.js +5 -10
- package/dist/links.js.map +1 -1
- package/dist/managed-document-metadata.d.ts +2 -0
- package/dist/managed-document-metadata.d.ts.map +1 -0
- package/dist/managed-document-metadata.js +9 -0
- package/dist/managed-document-metadata.js.map +1 -0
- package/dist/meaningful-change-time.d.ts +6 -6
- package/dist/meaningful-change-time.d.ts.map +1 -1
- package/dist/meaningful-change-time.js +12 -13
- package/dist/meaningful-change-time.js.map +1 -1
- package/dist/memory-backend.d.ts +2 -2
- package/dist/memory-backend.d.ts.map +1 -1
- package/dist/memory-backend.js +32 -16
- package/dist/memory-backend.js.map +1 -1
- package/dist/mutation.d.ts.map +1 -1
- package/dist/mutation.js +2 -2
- package/dist/mutation.js.map +1 -1
- package/dist/page.d.ts.map +1 -1
- package/dist/page.js +2 -1
- package/dist/page.js.map +1 -1
- package/dist/paths.d.ts +6 -2
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +35 -33
- package/dist/paths.js.map +1 -1
- package/dist/platform.d.ts +239 -0
- package/dist/platform.d.ts.map +1 -0
- package/dist/platform.js +82 -0
- package/dist/platform.js.map +1 -0
- package/dist/portable-export.d.ts +119 -0
- package/dist/portable-export.d.ts.map +1 -0
- package/dist/portable-export.js +501 -0
- package/dist/portable-export.js.map +1 -0
- package/dist/publication-filesystem.d.ts +1 -1
- package/dist/publication-filesystem.d.ts.map +1 -1
- package/dist/publication-filesystem.js +1 -1
- package/dist/publication-filesystem.js.map +1 -1
- package/dist/query-filter.d.ts +7 -2
- package/dist/query-filter.d.ts.map +1 -1
- package/dist/query-filter.js +24 -1
- package/dist/query-filter.js.map +1 -1
- package/dist/query-order.d.ts +22 -0
- package/dist/query-order.d.ts.map +1 -0
- package/dist/query-order.js +42 -0
- package/dist/query-order.js.map +1 -0
- package/dist/recipes.d.ts +3 -1
- package/dist/recipes.d.ts.map +1 -1
- package/dist/recipes.js +4 -4
- package/dist/recipes.js.map +1 -1
- package/dist/remote-backend.d.ts +114 -22
- package/dist/remote-backend.d.ts.map +1 -1
- package/dist/remote-backend.js +285 -44
- package/dist/remote-backend.js.map +1 -1
- package/dist/remote-document-codec.d.ts +15 -0
- package/dist/remote-document-codec.d.ts.map +1 -0
- package/dist/remote-document-codec.js +103 -0
- package/dist/remote-document-codec.js.map +1 -0
- package/dist/remote-error.d.ts +38 -0
- package/dist/remote-error.d.ts.map +1 -0
- package/dist/remote-error.js +59 -0
- package/dist/remote-error.js.map +1 -0
- package/dist/remote-operations.d.ts +63 -0
- package/dist/remote-operations.d.ts.map +1 -0
- package/dist/remote-operations.js +125 -0
- package/dist/remote-operations.js.map +1 -0
- package/dist/remote-parsers.d.ts +86 -0
- package/dist/remote-parsers.d.ts.map +1 -0
- package/dist/remote-parsers.js +181 -0
- package/dist/remote-parsers.js.map +1 -0
- package/dist/remote.d.ts +7 -2
- package/dist/remote.d.ts.map +1 -1
- package/dist/remote.js +6 -1
- package/dist/remote.js.map +1 -1
- package/dist/sha256.d.ts +21 -0
- package/dist/sha256.d.ts.map +1 -0
- package/dist/sha256.js +114 -0
- package/dist/sha256.js.map +1 -0
- package/dist/storage.d.ts +8 -2
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +11 -2
- package/dist/storage.js.map +1 -1
- package/dist/types.d.ts +40 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/uncertain-write.d.ts +178 -0
- package/dist/uncertain-write.d.ts.map +1 -0
- package/dist/uncertain-write.js +198 -0
- package/dist/uncertain-write.js.map +1 -0
- package/dist/version-transport.d.ts +7 -0
- package/dist/version-transport.d.ts.map +1 -1
- package/dist/version-transport.js +9 -0
- package/dist/version-transport.js.map +1 -1
- package/dist/versioning.d.ts +18 -7
- package/dist/versioning.d.ts.map +1 -1
- package/dist/versioning.js +23 -14
- package/dist/versioning.js.map +1 -1
- package/package.json +75 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filesystem-lock.js","sourceRoot":"","sources":["../src/filesystem-lock.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filesystem-lock.js","sourceRoot":"","sources":["../src/filesystem-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Experimental (`0.2.0-pre`): the API may change before a stable release.
|
|
3
|
+
*
|
|
4
|
+
* The Node push role: a lock manager shaped like the Web Locks `LockManager` subset that
|
|
5
|
+
* `withPushRole` (`@superbee/browser-local`) takes, over the same-user cross-process filesystem
|
|
6
|
+
* lock. The browser's role is a Web Lock, which a user agent shares across the tabs of one
|
|
7
|
+
* origin. Node 22 also exposes `navigator.locks`, but only within one process, so two CLI
|
|
8
|
+
* processes over one working copy would both hold it. A Node caller therefore always passes this
|
|
9
|
+
* manager explicitly (`withPushRole(name, fn, { locks: filesystemPushRoleLocks() })`) and never
|
|
10
|
+
* relies on the host default.
|
|
11
|
+
*
|
|
12
|
+
* `ifAvailable` (the only mode `withPushRole` uses) does not queue: a role held by a live process
|
|
13
|
+
* answers `null` after at most `contentionWaitMs`, which only rides out the moment between another
|
|
14
|
+
* claimer's `mkdir` and its owner record. A lock whose owner record stays missing or malformed is
|
|
15
|
+
* not "held elsewhere" but an unknown holder, and rejects with the lock's own error so it is
|
|
16
|
+
* diagnosed rather than skipped forever. A dead same-host holder's lock is reclaimed, as every
|
|
17
|
+
* filesystem lock is. A holder recorded on another host cannot be checked from here, and one that
|
|
18
|
+
* crashed before this host was renamed never clears, so `ifAvailable` rejects with the lock's own
|
|
19
|
+
* error, which says a person must check it, rather than answering `null` forever.
|
|
20
|
+
*
|
|
21
|
+
* A dead holder whose process id now belongs to another process would otherwise read as live
|
|
22
|
+
* forever. So before answering "held elsewhere" for a same-host holder, or rejecting a waiting
|
|
23
|
+
* request as held, the role asks the host when the process now carrying that id started: a
|
|
24
|
+
* process that started after the lock was claimed cannot be the claimer, and the request rejects
|
|
25
|
+
* with {@link PushRoleStaleOwnerError} naming the lock, instead of skipping every sync in silence
|
|
26
|
+
* or asking for a retry that cannot succeed. The role is released when the callback settles.
|
|
27
|
+
*/
|
|
28
|
+
import type { FilesystemHostPolicy } from "./filesystem-host.js";
|
|
29
|
+
import { type FilesystemMutationLockOptions, type FilesystemMutationLockOwner } from "./filesystem-lock.js";
|
|
30
|
+
/** The Web Locks `LockManager` subset the push role uses; `withPushRole` accepts any value of this shape. */
|
|
31
|
+
export interface PushRoleLockManager {
|
|
32
|
+
request<T>(name: string, options: {
|
|
33
|
+
ifAvailable?: boolean;
|
|
34
|
+
}, callback: (lock: {
|
|
35
|
+
name: string;
|
|
36
|
+
} | null) => Promise<T>): Promise<T>;
|
|
37
|
+
}
|
|
38
|
+
export interface FilesystemPushRoleOptions extends Pick<FilesystemMutationLockOptions, "lockRoot" | "pollMs"> {
|
|
39
|
+
/** How long `ifAvailable` waits for a claim in progress to show its owner. Default 250 ms. */
|
|
40
|
+
contentionWaitMs?: number;
|
|
41
|
+
/** How long a request without `ifAvailable` waits before it rejects. Default 5 s. */
|
|
42
|
+
waitMs?: number;
|
|
43
|
+
/** The trusted host construction; omitted, the supported default (macOS and Linux). */
|
|
44
|
+
hostPolicy?: FilesystemHostPolicy;
|
|
45
|
+
/**
|
|
46
|
+
* When the process now carrying `pid` started, in epoch milliseconds, or `null` when the host
|
|
47
|
+
* cannot say. Defaults to asking `ps`; a test or another host substitutes its own.
|
|
48
|
+
*/
|
|
49
|
+
processStartedAt?: (pid: number) => Promise<number | null>;
|
|
50
|
+
/** How long an owner-less lock counts as a claim or release in progress. Default 5 s. */
|
|
51
|
+
claimGraceMs?: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The role's lock names a same-host holder whose process id now belongs to a process that
|
|
55
|
+
* started after the lock was claimed: the claimer is gone and its id was reused. Nothing was
|
|
56
|
+
* run. Remove the lock (`lockPath`) once no sync is running.
|
|
57
|
+
*/
|
|
58
|
+
export declare class PushRoleStaleOwnerError extends Error {
|
|
59
|
+
readonly name = "PushRoleStaleOwnerError";
|
|
60
|
+
readonly lockPath: string;
|
|
61
|
+
readonly owner: FilesystemMutationLockOwner;
|
|
62
|
+
readonly processStartedAt: number;
|
|
63
|
+
constructor(lockPath: string, owner: FilesystemMutationLockOwner, processStartedAt: number);
|
|
64
|
+
}
|
|
65
|
+
/** The lock key for a role name: its SHA-256, so any name is one fixed-length path component. */
|
|
66
|
+
export declare function pushRoleLockKey(name: string): string;
|
|
67
|
+
/**
|
|
68
|
+
* The environment `ps` runs in: this process's own, with the C locale. `TZ` must pass through:
|
|
69
|
+
* `ps` formats `lstart` in its time zone and `Date.parse` reads it in this process's, so both
|
|
70
|
+
* must be the same zone, or a live holder can look younger than its claim.
|
|
71
|
+
*/
|
|
72
|
+
export declare function psEnvironment(env?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
73
|
+
/** When `pid` started, from `ps -o lstart=` under the C locale; `null` when no `ps` answers. */
|
|
74
|
+
export declare function processStartedAtFromPs(pid: number): Promise<number | null>;
|
|
75
|
+
/** A {@link PushRoleLockManager} whose roles are exclusive across every process of this user on this host. */
|
|
76
|
+
export declare function filesystemPushRoleLocks(options?: FilesystemPushRoleOptions): PushRoleLockManager;
|
|
77
|
+
//# sourceMappingURL=filesystem-push-role.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem-push-role.d.ts","sourceRoot":"","sources":["../src/filesystem-push-role.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAOH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAoI,KAAK,6BAA6B,EAAE,KAAK,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAE9O,6GAA6G;AAC7G,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACnI;AAED,MAAM,WAAW,yBAA0B,SAAQ,IAAI,CAAC,6BAA6B,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC3G,8FAA8F;IAC9F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D,yFAAyF;IACzF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,SAAkB,IAAI,6BAA6B;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,2BAA2B,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;gBACtB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM;CAU3F;AAED,iGAAiG;AACjG,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAYD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAAC,UAAU,CAErF;AAED,gGAAgG;AAChG,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAU1E;AAED,8GAA8G;AAC9G,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,yBAA8B,GAAG,mBAAmB,CAoEpG"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Experimental (`0.2.0-pre`): the API may change before a stable release.
|
|
3
|
+
*
|
|
4
|
+
* The Node push role: a lock manager shaped like the Web Locks `LockManager` subset that
|
|
5
|
+
* `withPushRole` (`@superbee/browser-local`) takes, over the same-user cross-process filesystem
|
|
6
|
+
* lock. The browser's role is a Web Lock, which a user agent shares across the tabs of one
|
|
7
|
+
* origin. Node 22 also exposes `navigator.locks`, but only within one process, so two CLI
|
|
8
|
+
* processes over one working copy would both hold it. A Node caller therefore always passes this
|
|
9
|
+
* manager explicitly (`withPushRole(name, fn, { locks: filesystemPushRoleLocks() })`) and never
|
|
10
|
+
* relies on the host default.
|
|
11
|
+
*
|
|
12
|
+
* `ifAvailable` (the only mode `withPushRole` uses) does not queue: a role held by a live process
|
|
13
|
+
* answers `null` after at most `contentionWaitMs`, which only rides out the moment between another
|
|
14
|
+
* claimer's `mkdir` and its owner record. A lock whose owner record stays missing or malformed is
|
|
15
|
+
* not "held elsewhere" but an unknown holder, and rejects with the lock's own error so it is
|
|
16
|
+
* diagnosed rather than skipped forever. A dead same-host holder's lock is reclaimed, as every
|
|
17
|
+
* filesystem lock is. A holder recorded on another host cannot be checked from here, and one that
|
|
18
|
+
* crashed before this host was renamed never clears, so `ifAvailable` rejects with the lock's own
|
|
19
|
+
* error, which says a person must check it, rather than answering `null` forever.
|
|
20
|
+
*
|
|
21
|
+
* A dead holder whose process id now belongs to another process would otherwise read as live
|
|
22
|
+
* forever. So before answering "held elsewhere" for a same-host holder, or rejecting a waiting
|
|
23
|
+
* request as held, the role asks the host when the process now carrying that id started: a
|
|
24
|
+
* process that started after the lock was claimed cannot be the claimer, and the request rejects
|
|
25
|
+
* with {@link PushRoleStaleOwnerError} naming the lock, instead of skipping every sync in silence
|
|
26
|
+
* or asking for a retry that cannot succeed. The role is released when the callback settles.
|
|
27
|
+
*/
|
|
28
|
+
import { execFile } from "node:child_process";
|
|
29
|
+
import { createHash } from "node:crypto";
|
|
30
|
+
import path from "node:path";
|
|
31
|
+
import { hostname } from "node:os";
|
|
32
|
+
import { acquireFilesystemIdentityLock, filesystemLockAgeMs as lockAgeMs, filesystemLockHeldBy as lockHeldBy, FilesystemMutationLockError } from "./filesystem-lock.js";
|
|
33
|
+
/**
|
|
34
|
+
* The role's lock names a same-host holder whose process id now belongs to a process that
|
|
35
|
+
* started after the lock was claimed: the claimer is gone and its id was reused. Nothing was
|
|
36
|
+
* run. Remove the lock (`lockPath`) once no sync is running.
|
|
37
|
+
*/
|
|
38
|
+
export class PushRoleStaleOwnerError extends Error {
|
|
39
|
+
name = "PushRoleStaleOwnerError";
|
|
40
|
+
lockPath;
|
|
41
|
+
owner;
|
|
42
|
+
processStartedAt;
|
|
43
|
+
constructor(lockPath, owner, processStartedAt) {
|
|
44
|
+
super(`push role lock '${lockPath}' was claimed by PID ${owner.pid} at ${new Date(owner.created_at_ms).toISOString()}, ` +
|
|
45
|
+
`but PID ${owner.pid} now belongs to a process started at ${new Date(processStartedAt).toISOString()}; ` +
|
|
46
|
+
`the holder is gone. Remove the lock after confirming no sync is running, then retry.`);
|
|
47
|
+
this.lockPath = lockPath;
|
|
48
|
+
this.owner = owner;
|
|
49
|
+
this.processStartedAt = processStartedAt;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/** The lock key for a role name: its SHA-256, so any name is one fixed-length path component. */
|
|
53
|
+
export function pushRoleLockKey(name) {
|
|
54
|
+
return createHash("sha256").update(`superbee:push-role\0${name}`, "utf8").digest("hex");
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* How long an owner-less lock may be a claim or release in progress rather than an orphan. A live
|
|
58
|
+
* claimer writes its owner record right after its `mkdir`; a releaser removes the directory right
|
|
59
|
+
* after the record. Either takes milliseconds, so an owner-less lock older than this was orphaned.
|
|
60
|
+
*/
|
|
61
|
+
const CLAIM_GRACE_MS = 5_000;
|
|
62
|
+
/** `ps` reports a start time to the second, so a genuine claimer can look up to this much later than its claim. */
|
|
63
|
+
const START_TIME_RESOLUTION_MS = 1_000;
|
|
64
|
+
/**
|
|
65
|
+
* The environment `ps` runs in: this process's own, with the C locale. `TZ` must pass through:
|
|
66
|
+
* `ps` formats `lstart` in its time zone and `Date.parse` reads it in this process's, so both
|
|
67
|
+
* must be the same zone, or a live holder can look younger than its claim.
|
|
68
|
+
*/
|
|
69
|
+
export function psEnvironment(env = process.env) {
|
|
70
|
+
return { ...env, LC_ALL: "C" };
|
|
71
|
+
}
|
|
72
|
+
/** When `pid` started, from `ps -o lstart=` under the C locale; `null` when no `ps` answers. */
|
|
73
|
+
export function processStartedAtFromPs(pid) {
|
|
74
|
+
const attempt = (binary) => new Promise((resolve) => {
|
|
75
|
+
execFile(binary, ["-o", "lstart=", "-p", String(pid)], { env: psEnvironment(), timeout: 2_000 }, (error, stdout) => {
|
|
76
|
+
if (error)
|
|
77
|
+
return resolve(null);
|
|
78
|
+
const parsed = Date.parse(stdout.trim().replace(/\s+/g, " "));
|
|
79
|
+
resolve(Number.isFinite(parsed) ? parsed : null);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
return attempt("/bin/ps").then((found) => found ?? attempt("/usr/bin/ps"));
|
|
83
|
+
}
|
|
84
|
+
/** A {@link PushRoleLockManager} whose roles are exclusive across every process of this user on this host. */
|
|
85
|
+
export function filesystemPushRoleLocks(options = {}) {
|
|
86
|
+
const contentionWaitMs = options.contentionWaitMs ?? 250;
|
|
87
|
+
const waitMs = options.waitMs ?? 5_000;
|
|
88
|
+
const startedAt = options.processStartedAt ?? processStartedAtFromPs;
|
|
89
|
+
const claimGraceMs = options.claimGraceMs ?? CLAIM_GRACE_MS;
|
|
90
|
+
const acquire = (name, wait) => acquireFilesystemIdentityLock(pushRoleLockKey(name), name, { lockRoot: options.lockRoot, pollMs: options.pollMs, hostPolicy: options.hostPolicy, waitMs: wait });
|
|
91
|
+
/**
|
|
92
|
+
* Acquire, telling a lock caught between states from an orphan. A timeout whose last look found
|
|
93
|
+
* no owner record may have caught a live holder between its claim and its record, or between
|
|
94
|
+
* removing its record and its directory on release. The lock is looked at again: gone means a
|
|
95
|
+
* release just finished, so the claim is retried once; a directory younger than the grace is a
|
|
96
|
+
* claim or release in progress, reported as held by an unknown live holder (not malformed). Only
|
|
97
|
+
* an owner-less lock older than the grace is left as the malformed, orphaned lock it is.
|
|
98
|
+
*/
|
|
99
|
+
const acquireSettled = async (name, wait) => {
|
|
100
|
+
for (let attempt = 0;; attempt += 1) {
|
|
101
|
+
try {
|
|
102
|
+
return await acquire(name, wait);
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
if (!(error instanceof FilesystemMutationLockError) || !error.malformed || path.basename(error.lockPath) !== `${pushRoleLockKey(name)}.lock`)
|
|
106
|
+
throw error;
|
|
107
|
+
const age = await lockAgeMs(error.lockPath);
|
|
108
|
+
if (age === null && attempt === 0)
|
|
109
|
+
continue;
|
|
110
|
+
if (age === null || age < claimGraceMs) {
|
|
111
|
+
throw new FilesystemMutationLockError(`filesystem mutation lock '${error.lockPath}' is being claimed or released by another process; retry the mutation.`, { lockPath: error.lockPath, owner: null, stale: false, malformed: false });
|
|
112
|
+
}
|
|
113
|
+
throw error;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
return {
|
|
118
|
+
async request(name, request, callback) {
|
|
119
|
+
if (typeof name !== "string" || name === "")
|
|
120
|
+
throw new TypeError("a push role needs a name");
|
|
121
|
+
let release;
|
|
122
|
+
try {
|
|
123
|
+
release = await acquireSettled(name, request.ifAvailable ? contentionWaitMs : waitMs);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
if (!(error instanceof FilesystemMutationLockError) || !heldByLiveClaim(error))
|
|
127
|
+
throw error;
|
|
128
|
+
const owner = error.owner;
|
|
129
|
+
// This process's own id is never asked: the lock already reports as stale a record under it
|
|
130
|
+
// that an earlier process left, so a younger start here could only be a forward clock step
|
|
131
|
+
// past a claim this process still holds.
|
|
132
|
+
if (owner !== null && owner.hostname === hostname() && owner.pid !== process.pid) {
|
|
133
|
+
const started = await startedAt(owner.pid);
|
|
134
|
+
// The named owner is a snapshot. Its PID answering for a younger process proves it gone
|
|
135
|
+
// only while the lock still carries its record after that answer; a holder that released
|
|
136
|
+
// since, whose PID was then reused, would otherwise be blamed for its live replacement.
|
|
137
|
+
if (started !== null && started > owner.created_at_ms + START_TIME_RESOLUTION_MS && (await lockHeldBy(error.lockPath, owner.token)) === true) {
|
|
138
|
+
throw new PushRoleStaleOwnerError(error.lockPath, owner, started);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (!request.ifAvailable || (owner !== null && owner.hostname !== hostname()))
|
|
142
|
+
throw error;
|
|
143
|
+
return callback(null);
|
|
144
|
+
}
|
|
145
|
+
let result;
|
|
146
|
+
try {
|
|
147
|
+
result = await callback({ name });
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
await release().catch(() => { });
|
|
151
|
+
throw error;
|
|
152
|
+
}
|
|
153
|
+
await release();
|
|
154
|
+
return result;
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* A live holder: one with a well-formed owner record, or a claim or release caught in progress
|
|
160
|
+
* (no record, not malformed). A malformed or stale lock is one the caller must see.
|
|
161
|
+
*/
|
|
162
|
+
function heldByLiveClaim(error) {
|
|
163
|
+
return !error.malformed && !error.stale;
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=filesystem-push-role.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem-push-role.js","sourceRoot":"","sources":["../src/filesystem-push-role.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** Explicit Node filesystem construction, independent of executable or CLI startup. */
|
|
2
|
+
import { FilesystemBackend } from "./backend.js";
|
|
3
|
+
import { type FilesystemHostPolicy } from "./filesystem-host.js";
|
|
4
|
+
import { type FilesystemMutationLockOptions } from "./filesystem-lock.js";
|
|
5
|
+
import type { Bundle, InitBundleOptions } from "./types.js";
|
|
6
|
+
export { FilesystemBackend } from "./backend.js";
|
|
7
|
+
export type { FilesystemBackendOptions, FilesystemHostPolicy } from "./filesystem-host.js";
|
|
8
|
+
export interface FilesystemRuntime {
|
|
9
|
+
backend(root: string): FilesystemBackend;
|
|
10
|
+
initBundle(root: string, options?: InitBundleOptions): Promise<Bundle>;
|
|
11
|
+
withMutationLock<T>(target: string, body: () => Promise<T>, options?: Omit<FilesystemMutationLockOptions, "hostPolicy">): Promise<T>;
|
|
12
|
+
mutationLockPath(target: string, portableRoot?: string): string;
|
|
13
|
+
}
|
|
14
|
+
/** Each runtime retains its selected host; it never changes another consumer's defaults. */
|
|
15
|
+
export declare function createFilesystemRuntime(policy?: FilesystemHostPolicy): FilesystemRuntime;
|
|
16
|
+
export { snapshotHostPolicy } from "./host-policy-snapshot.js";
|
|
17
|
+
//# sourceMappingURL=filesystem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAGL,KAAK,6BAA6B,EACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE3F,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACzC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvE,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,6BAA6B,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACrI,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjE;AAED,4FAA4F;AAC5F,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,iBAAiB,CASxF;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Explicit Node filesystem construction, independent of executable or CLI startup. */
|
|
2
|
+
import { FilesystemBackend } from "./backend.js";
|
|
3
|
+
import { initBundle } from "./bundle.js";
|
|
4
|
+
import { captureFilesystemHostPolicy } from "./filesystem-host.js";
|
|
5
|
+
import { filesystemMutationLockPath, withFilesystemMutationLock, } from "./filesystem-lock.js";
|
|
6
|
+
export { FilesystemBackend } from "./backend.js";
|
|
7
|
+
/** Each runtime retains its selected host; it never changes another consumer's defaults. */
|
|
8
|
+
export function createFilesystemRuntime(policy) {
|
|
9
|
+
const hostPolicy = captureFilesystemHostPolicy(policy);
|
|
10
|
+
return Object.freeze({
|
|
11
|
+
backend: (root) => new FilesystemBackend(root, { hostPolicy }),
|
|
12
|
+
initBundle: (root, options) => initBundle(root, options, { hostPolicy }),
|
|
13
|
+
withMutationLock: (target, body, options) => withFilesystemMutationLock(target, body, { ...options, hostPolicy }),
|
|
14
|
+
mutationLockPath: (target, portableRoot) => filesystemMutationLockPath(target, portableRoot, hostPolicy),
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export { snapshotHostPolicy } from "./host-policy-snapshot.js";
|
|
18
|
+
//# sourceMappingURL=filesystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../src/filesystem.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAA6B,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAE3B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAUjD,4FAA4F;AAC5F,MAAM,UAAU,uBAAuB,CAAC,MAA6B;IACnE,MAAM,UAAU,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC;QACtE,UAAU,EAAE,CAAC,IAAY,EAAE,OAA2B,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC;QACpG,gBAAgB,EAAE,CAAI,MAAc,EAAE,IAAsB,EAAE,OAA2D,EAAE,EAAE,CAC3H,0BAA0B,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,CAAC;QACtE,gBAAgB,EAAE,CAAC,MAAc,EAAE,YAAqB,EAAE,EAAE,CAAC,0BAA0B,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,CAAC;KAC1H,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
package/dist/freshness.d.ts
CHANGED
|
@@ -15,13 +15,16 @@
|
|
|
15
15
|
import type { FreshnessOptions, FreshnessResult, OkfDocument } from "./types.js";
|
|
16
16
|
/** A deadline must name an explicit instant; rounding up avoids expiring sub-ms instants early. */
|
|
17
17
|
export declare function staleAfterInstant(value: unknown): number | null;
|
|
18
|
-
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
/** Parse a clock to epoch milliseconds. v0.2 requires an explicit ISO instant; legacy mode is permissive. */
|
|
19
|
+
export declare function parseTimestamp(ts: unknown, okfVersion?: string): number | null;
|
|
20
|
+
/** Diagnose only an effective, present legacy clock; standard generated.at diagnostics own shadowing values. */
|
|
21
|
+
export declare function invalidLegacyTimestamp(frontmatter: {
|
|
22
|
+
readonly generated?: unknown;
|
|
23
|
+
readonly timestamp?: unknown;
|
|
24
|
+
}, okfVersion?: string): {
|
|
25
|
+
field: "timestamp";
|
|
26
|
+
value: unknown;
|
|
27
|
+
} | undefined;
|
|
25
28
|
/**
|
|
26
29
|
* Derive a freshness verdict from `generated.at`, falling back to legacy `timestamp`.
|
|
27
30
|
*
|
package/dist/freshness.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"freshness.d.ts","sourceRoot":"","sources":["../src/freshness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIjF,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAE/D;AAED
|
|
1
|
+
{"version":3,"file":"freshness.d.ts","sourceRoot":"","sources":["../src/freshness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAIjF,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAE/D;AAED,6GAA6G;AAC7G,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY9E;AAED,gHAAgH;AAChH,wBAAgB,sBAAsB,CACpC,WAAW,EAAE;IAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,EAC3E,UAAU,CAAC,EAAE,MAAM,GAClB;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAKpD;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,gBAAqB,GAAG,eAAe,CA2C3F"}
|
package/dist/freshness.js
CHANGED
|
@@ -12,19 +12,16 @@
|
|
|
12
12
|
*
|
|
13
13
|
* Pure and dependency-free, hence directly unit-testable.
|
|
14
14
|
*/
|
|
15
|
-
import { meaningfulChangeTimeValue } from "./meaningful-change-time.js";
|
|
15
|
+
import { meaningfulChangeTimeField, meaningfulChangeTimeValue } from "./meaningful-change-time.js";
|
|
16
16
|
import { parseIsoInstant } from "./verification.js";
|
|
17
17
|
/** A deadline must name an explicit instant; rounding up avoids expiring sub-ms instants early. */
|
|
18
18
|
export function staleAfterInstant(value) {
|
|
19
19
|
return typeof value === "string" ? parseIsoInstant(value, "ceil") : null;
|
|
20
20
|
}
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
* `Date` or epoch-millis `number` should one reach here unnormalized.
|
|
26
|
-
*/
|
|
27
|
-
export function parseTimestamp(ts) {
|
|
21
|
+
/** Parse a clock to epoch milliseconds. v0.2 requires an explicit ISO instant; legacy mode is permissive. */
|
|
22
|
+
export function parseTimestamp(ts, okfVersion) {
|
|
23
|
+
if (okfVersion === "0.2")
|
|
24
|
+
return typeof ts === "string" ? parseIsoInstant(ts) : null;
|
|
28
25
|
if (ts instanceof Date) {
|
|
29
26
|
const ms = ts.getTime();
|
|
30
27
|
return Number.isNaN(ms) ? null : ms;
|
|
@@ -37,6 +34,14 @@ export function parseTimestamp(ts) {
|
|
|
37
34
|
const ms = Date.parse(ts);
|
|
38
35
|
return Number.isNaN(ms) ? null : ms;
|
|
39
36
|
}
|
|
37
|
+
/** Diagnose only an effective, present legacy clock; standard generated.at diagnostics own shadowing values. */
|
|
38
|
+
export function invalidLegacyTimestamp(frontmatter, okfVersion) {
|
|
39
|
+
if (okfVersion !== "0.2" || !Object.hasOwn(frontmatter, "timestamp")
|
|
40
|
+
|| meaningfulChangeTimeField(frontmatter) !== "timestamp"
|
|
41
|
+
|| parseTimestamp(frontmatter.timestamp, okfVersion) !== null)
|
|
42
|
+
return undefined;
|
|
43
|
+
return { field: "timestamp", value: frontmatter.timestamp };
|
|
44
|
+
}
|
|
40
45
|
/**
|
|
41
46
|
* Derive a freshness verdict from `generated.at`, falling back to legacy `timestamp`.
|
|
42
47
|
*
|
|
@@ -45,9 +50,7 @@ export function parseTimestamp(ts) {
|
|
|
45
50
|
* the ISO timestamps of upstream `dependsOn` artifacts.
|
|
46
51
|
*/
|
|
47
52
|
export function freshness(doc, options = {}) {
|
|
48
|
-
const parseClock = options.okfVersion
|
|
49
|
-
? (value) => typeof value === "string" ? parseIsoInstant(value) : null
|
|
50
|
-
: parseTimestamp;
|
|
53
|
+
const parseClock = (value) => parseTimestamp(value, options.okfVersion);
|
|
51
54
|
const tsMs = parseClock(meaningfulChangeTimeValue(doc.frontmatter));
|
|
52
55
|
const now = options.now ?? new Date();
|
|
53
56
|
const ageMs = tsMs === null ? undefined : now.getTime() - tsMs;
|
package/dist/freshness.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"freshness.js","sourceRoot":"","sources":["../src/freshness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"freshness.js","sourceRoot":"","sources":["../src/freshness.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,8 @@ export declare class MalformedDocumentError extends Error {
|
|
|
10
10
|
constructor(context: string | undefined, cause: unknown);
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
* Legacy timestamp shape predicate: a non-empty (post-trim) string. This controls v0.1
|
|
14
|
+
* defaults, not edition-aware clock validity or v0.2 imported-value preservation.
|
|
15
15
|
*/
|
|
16
16
|
export declare function isUsableTimestamp(value: unknown): value is string;
|
|
17
17
|
//# sourceMappingURL=frontmatter-contract.d.ts.map
|
|
@@ -20,8 +20,8 @@ export class MalformedDocumentError extends Error {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
23
|
+
* Legacy timestamp shape predicate: a non-empty (post-trim) string. This controls v0.1
|
|
24
|
+
* defaults, not edition-aware clock validity or v0.2 imported-value preservation.
|
|
25
25
|
*/
|
|
26
26
|
export function isUsableTimestamp(value) {
|
|
27
27
|
return typeof value === "string" && value.trim() !== "";
|
package/dist/frontmatter.d.ts
CHANGED
|
@@ -15,14 +15,24 @@ export { isUsableTimestamp, MalformedDocumentError } from "./frontmatter-contrac
|
|
|
15
15
|
* The shared splitter recognizes only exact OKF delimiters, and the fixed YAML engine preserves
|
|
16
16
|
* timestamp-like scalars as strings so date-only values retain their original semantic shape.
|
|
17
17
|
*/
|
|
18
|
-
export declare function parseMarkdown(raw: string, context?: string
|
|
18
|
+
export declare function parseMarkdown(raw: string, context?: string, options?: {
|
|
19
|
+
okfVersion?: string;
|
|
20
|
+
}): {
|
|
19
21
|
frontmatter: Frontmatter;
|
|
20
22
|
body: string;
|
|
21
23
|
};
|
|
24
|
+
/** Decode YAML metadata independently of document delimiters and body content. */
|
|
25
|
+
export declare function parseFrontmatter(source: string, context?: string, options?: {
|
|
26
|
+
okfVersion?: string;
|
|
27
|
+
}): Frontmatter;
|
|
28
|
+
/** The metadata bytes shared by document serialization and parsed-object stores. */
|
|
29
|
+
export declare function stringifyFrontmatter(data: Record<string, unknown>): string;
|
|
22
30
|
/** Match the exact body shape emitted by the document serializer. */
|
|
23
31
|
export declare function normalizeDocumentBodyForStorage(body: string): string;
|
|
24
32
|
/** Serialize an arbitrary YAML-mapping + body to OKF markdown (used for reserved files). */
|
|
25
33
|
export declare function stringifyWithData(data: Record<string, unknown>, body: string): string;
|
|
34
|
+
/** Frame already-serialized metadata, so a snapshot and its version use the same bytes. */
|
|
35
|
+
export declare function stringifyWithSerializedFrontmatter(dumped: string, body: string): string;
|
|
26
36
|
/** Serialize a concept document's frontmatter + body to OKF-conformant markdown. */
|
|
27
37
|
export declare function stringifyDoc(frontmatter: Frontmatter, body: string): string;
|
|
28
38
|
//# sourceMappingURL=frontmatter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"frontmatter.d.ts","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAqEtF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACpC;IAAE,WAAW,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAK5C;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACpC,WAAW,CAQb;AAED,oFAAoF;AACpF,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAE1E;AAED,qEAAqE;AACrE,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,4FAA4F;AAC5F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErF;AAED,2FAA2F;AAC3F,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAKvF;AAED,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE3E"}
|
package/dist/frontmatter.js
CHANGED
|
@@ -44,10 +44,13 @@ const yamlEngine = {
|
|
|
44
44
|
* sample bundles use (`timestamp: 2026-07-01T12:05:00Z`) — into a non-string under its
|
|
45
45
|
* default schema. The parser above now retains all YAML timestamp scalars as strings so
|
|
46
46
|
* date-only values remain distinguishable at any depth. This legacy field still keeps its
|
|
47
|
-
* established canonical ISO behavior, including epoch-millisecond input.
|
|
47
|
+
* established canonical ISO behavior, including epoch-millisecond input, for default/v0.1
|
|
48
|
+
* decoding. v0.2 preserves its value so consumers can distinguish ambiguous legacy clocks.
|
|
48
49
|
*/
|
|
49
|
-
function normalizeFrontmatter(data) {
|
|
50
|
+
function normalizeFrontmatter(data, okfVersion) {
|
|
50
51
|
const out = { ...data };
|
|
52
|
+
if (okfVersion === "0.2")
|
|
53
|
+
return out;
|
|
51
54
|
const value = out.timestamp;
|
|
52
55
|
if (value instanceof Date) {
|
|
53
56
|
out.timestamp = value.toISOString();
|
|
@@ -69,19 +72,26 @@ function normalizeFrontmatter(data) {
|
|
|
69
72
|
* The shared splitter recognizes only exact OKF delimiters, and the fixed YAML engine preserves
|
|
70
73
|
* timestamp-like scalars as strings so date-only values retain their original semantic shape.
|
|
71
74
|
*/
|
|
72
|
-
export function parseMarkdown(raw, context) {
|
|
75
|
+
export function parseMarkdown(raw, context, options = {}) {
|
|
73
76
|
const split = splitLeadingFrontmatter(raw, context);
|
|
74
77
|
if (!("yamlSource" in split))
|
|
75
78
|
return { frontmatter: {}, body: split.body };
|
|
79
|
+
return { frontmatter: parseFrontmatter(split.yamlSource, context, options), body: split.body };
|
|
80
|
+
}
|
|
81
|
+
/** Decode YAML metadata independently of document delimiters and body content. */
|
|
82
|
+
export function parseFrontmatter(source, context, options = {}) {
|
|
76
83
|
let parsed;
|
|
77
84
|
try {
|
|
78
|
-
parsed = yamlEngine.parse(
|
|
85
|
+
parsed = yamlEngine.parse(source);
|
|
79
86
|
}
|
|
80
87
|
catch (err) {
|
|
81
88
|
throw new MalformedDocumentError(context, err);
|
|
82
89
|
}
|
|
83
|
-
|
|
84
|
-
|
|
90
|
+
return normalizeFrontmatter(parsed, options.okfVersion);
|
|
91
|
+
}
|
|
92
|
+
/** The metadata bytes shared by document serialization and parsed-object stores. */
|
|
93
|
+
export function stringifyFrontmatter(data) {
|
|
94
|
+
return yaml.safeDump(data).trim();
|
|
85
95
|
}
|
|
86
96
|
/** Match the exact body shape emitted by the document serializer. */
|
|
87
97
|
export function normalizeDocumentBodyForStorage(body) {
|
|
@@ -89,7 +99,10 @@ export function normalizeDocumentBodyForStorage(body) {
|
|
|
89
99
|
}
|
|
90
100
|
/** Serialize an arbitrary YAML-mapping + body to OKF markdown (used for reserved files). */
|
|
91
101
|
export function stringifyWithData(data, body) {
|
|
92
|
-
|
|
102
|
+
return stringifyWithSerializedFrontmatter(stringifyFrontmatter(data), body);
|
|
103
|
+
}
|
|
104
|
+
/** Frame already-serialized metadata, so a snapshot and its version use the same bytes. */
|
|
105
|
+
export function stringifyWithSerializedFrontmatter(dumped, body) {
|
|
93
106
|
const content = body ?? "";
|
|
94
107
|
const newline = (value) => (value.endsWith("\n") ? value : `${value}\n`);
|
|
95
108
|
if (dumped === "{}")
|