swarm-deploy 0.3.1 → 0.4.2

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/RELEASING.md CHANGED
@@ -12,9 +12,9 @@ Releases are immutable npm versions published by the tag-triggered GitHub Action
12
12
  ## Preflight
13
13
 
14
14
  1. Update `package.json` to the new SemVer version and update `CHANGELOG.md`.
15
- Confirm the README and CLI examples use direct `--server-key` uploads and
16
- repeatable static `--allow-key` server configuration; topics and discovery
17
- are not release interfaces.
15
+ Confirm the README, the guides in `docs/`, and the CLI examples use direct
16
+ `--server-key` uploads and repeatable static `--allow-key` server
17
+ configuration; topics and discovery are not release interfaces.
18
18
  2. From a clean checkout, run:
19
19
 
20
20
  ```sh
@@ -52,11 +52,18 @@ swarm-deploy --help
52
52
  PR/main CI is the full test authority. The tag workflow verifies the exact
53
53
  stable tag and package version, confirms the tagged commit is on `main`, builds
54
54
  the untracked `dist/`, and validates the package before delegating to
55
- `holepunchto/actions/publish` at
56
- `146b86c4d0237c124df06ecc992ddf2c585b3405`. That composite action currently
57
- references `create-release@v1` internally and publishes with
58
- `npm publish --ignore-scripts` and creates the GitHub release, so the workflow
59
- must build `dist/` before invoking it.
55
+ `holepunchto/actions/publish@v1`.
56
+
57
+ Both workflows use the supported `holepunchto/actions/*@v1` pointer, which the
58
+ Holepunch maintainers control, instead of commit SHAs. The
59
+ `npm run test:release-tag` check requires exactly `@v1` on every Holepunch
60
+ action reference. Pinning a parent action to a SHA does not pin the actions it calls: the old
61
+ pinned `publish` referenced `create-release@v1`, which no longer exists at
62
+ `v1`, and the `v0.4.0` publish run failed during action setup. `publish@v1` is
63
+ an alias for `publish-npm@v1`, which publishes to npm with scripts ignored,
64
+ packs the tarballs, and then invokes `create-github-release@v1`, so the
65
+ workflow must build `dist/` before invoking it. Because the pointer moves,
66
+ that behavior can change without a change in this repository.
60
67
 
61
68
  Roll the package into one canary client/server pair first. Confirm `ready`, authentication, offer, progress, verification, commit, recovery, scrub, retention, and cleanup diagnostics before broader rollout.
62
69
 
package/dist/cli.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Server, type ServerOptions } from './server.js';
2
2
  import { Client, type ClientOptions } from './client.js';
3
3
  import type { DirectDhtNode } from './direct-dht.js';
4
+ import type { StorageAdapter } from './storage/types.js';
4
5
  type Env = Record<string, string | undefined>;
5
6
  type Output = {
6
7
  write(value: string): unknown;
@@ -21,6 +22,12 @@ type CliIo = {
21
22
  idleTimeout?: number;
22
23
  /** Directory that relative `--hooks` paths resolve against; defaults to `process.cwd()`. */
23
24
  cwd?: string;
25
+ /** Storage adapter for `reset-storage`; defaults to the runtime filesystem. */
26
+ storage?: StorageAdapter;
27
+ /** Process liveness check for `reset-storage`; defaults to a signal-0 probe. */
28
+ isProcessAlive?: (pid: number) => boolean;
29
+ /** Lock poll interval in milliseconds for `reset-storage --wait`. */
30
+ pollInterval?: number;
24
31
  };
25
32
  declare const USAGE: string;
26
33
  declare function main(argv: Iterable<string> | null | undefined, env: Env, io?: CliIo): Promise<number>;
package/dist/cli.js CHANGED
@@ -19,7 +19,8 @@ const hooks_module_js_1 = require("./hooks-module.js");
19
19
  const server_js_1 = require("./server.js");
20
20
  const controls_js_1 = require("./tar-protocol/controls.js");
21
21
  const client_js_1 = require("./client.js");
22
- const COMMANDS = new Set(['keygen', 'public-key', 'server', 'upload', 'link']);
22
+ const reset_js_1 = require("./storage/reset.js");
23
+ const COMMANDS = new Set(['keygen', 'public-key', 'server', 'upload', 'link', 'reset-storage']);
23
24
  const HELP_ARGS = new Set(['--help', '-h']);
24
25
  const MS_PER_DAY = 24 * 60 * 60 * 1000;
25
26
  const MAX_SEED_FILE_BYTES = 65;
@@ -32,6 +33,7 @@ const USAGE = [
32
33
  ' swarm-deploy server (--seed-file <seed-file> | --seed <64-lower-hex>) --storage <dir> --allow-key <64-lower-hex> --max-file-bytes <bytes> --max-staging-bytes <bytes> [--allow-key <64-lower-hex>]... [--max-storage-bytes <bytes>] [--max-age-days <days>] [--replace-name <safe-basename>]... [--artifact-pattern <template>]... [--max-count <count>] [--max-versions <count> --version-granularity <major|minor>] [--symlink <selector> [<link-name>]]... [--hooks <module>]',
33
34
  ' swarm-deploy upload (--seed-file <seed-file> | --seed <64-lower-hex>) --server-key <64-lower-hex> [--idle-timeout <milliseconds>] [--no-source-parent] <file-or-directory>',
34
35
  ' swarm-deploy link (--seed-file <seed-file> | --seed <64-lower-hex>) --server-key <64-lower-hex> [--idle-timeout <milliseconds>] <target> <link-name>',
36
+ ' swarm-deploy reset-storage --storage <dir> [--apply [--wait <milliseconds>]]',
35
37
  '',
36
38
  'Use exactly one seed source. A command-specific environment variable is also accepted.'
37
39
  ].join('\n');
@@ -657,7 +659,8 @@ function linkErrorMessage(err) {
657
659
  (err.code === errors_js_1.ERRORS.LINK_NOT_ALLOWED ||
658
660
  err.code === errors_js_1.ERRORS.LINK_TARGET_NOT_FOUND ||
659
661
  err.code === errors_js_1.ERRORS.LINK_CONFLICT ||
660
- err.code === errors_js_1.ERRORS.LINK_FAILED)) {
662
+ err.code === errors_js_1.ERRORS.LINK_FAILED ||
663
+ err.code === errors_js_1.ERRORS.HOOK_FAILED)) {
661
664
  return err.code;
662
665
  }
663
666
  return errorMessage(err);
@@ -807,6 +810,126 @@ async function runLink(args, env, io) {
807
810
  throw runError;
808
811
  return code;
809
812
  }
813
+ const RESET_LIST_LIMIT = 10;
814
+ function listNames(names) {
815
+ if (names.length === 0)
816
+ return '';
817
+ const shown = names.slice(0, RESET_LIST_LIMIT).join(', ');
818
+ const more = names.length - RESET_LIST_LIMIT;
819
+ return ` (${shown}${more > 0 ? `, and ${more} more` : ''})`;
820
+ }
821
+ function formatLockState(lock) {
822
+ const age = (ms) => `${Math.round(ms / 1000)}s`;
823
+ if (lock.status === 'free')
824
+ return 'free';
825
+ if (lock.status === 'held')
826
+ return `held by pid ${lock.pid} (lock age ${age(lock.ageMs)})`;
827
+ if (lock.status === 'stale') {
828
+ return `stale, pid ${lock.pid} is not running (lock age ${age(lock.ageMs)}); will be retired`;
829
+ }
830
+ if (lock.status === 'malformed') {
831
+ return 'unreadable; reset refused until the server is stopped and its lock reconciled';
832
+ }
833
+ return 'unsafe path; the reset refuses to proceed';
834
+ }
835
+ /** Names the metadata directories an archive holds and counts its lock residue entries. */
836
+ function describeHoldings(held) {
837
+ const parts = [...held.directories];
838
+ if (held.lockEntries > 0) {
839
+ parts.push(`${held.lockEntries} lock residue ${held.lockEntries === 1 ? 'entry' : 'entries'}`);
840
+ }
841
+ return parts.length > 0 ? parts.join(', ') : 'nothing';
842
+ }
843
+ /** One `key: value` line per fact, so operators and scripts can read the same output. */
844
+ function formatResetReport(report) {
845
+ const lines = [`storage: ${report.root}`, `lock: ${formatLockState(report.lock)}`];
846
+ if (report.resetPending) {
847
+ const archive = report.pendingArchive === null ? '' : ` (resumes archive ${report.pendingArchive})`;
848
+ lines.push(`reset pending: yes${archive}; server startup is blocked until reset-storage --apply finishes`);
849
+ }
850
+ const commitDetails = [];
851
+ if (report.commits.missingPayloads.length > 0) {
852
+ commitDetails.push(`${report.commits.missingPayloads.length} missing payloads`);
853
+ }
854
+ if (report.commits.invalid > 0)
855
+ commitDetails.push(`${report.commits.invalid} invalid`);
856
+ lines.push(`commits: ${report.commits.records} records${commitDetails.length ? ` (${commitDetails.join(', ')})` : ''}`);
857
+ for (const name of reset_js_1.METADATA_DIRECTORIES) {
858
+ if (name === 'commits')
859
+ continue;
860
+ if (name === 'links') {
861
+ const invalid = report.links.invalid > 0 ? ` (${report.links.invalid} invalid)` : '';
862
+ lines.push(`links: ${report.links.records} records${invalid}`);
863
+ continue;
864
+ }
865
+ lines.push(`${name}: ${report.metadata[name]} entries`);
866
+ }
867
+ lines.push(`obsolete locks: ${report.obsoleteLocks}`);
868
+ const interrupted = report.archives.filter((archive) => archive.status !== 'completed').length;
869
+ lines.push(`archives: ${report.archives.length}${interrupted ? ` (${interrupted} interrupted)` : ''}`);
870
+ // An interrupted marker can lag the archive, so name what it physically holds.
871
+ for (const archive of report.archives) {
872
+ if (archive.status === 'completed')
873
+ continue;
874
+ lines.push(`interrupted archive: ${archive.name} holds ${describeHoldings(archive.held)}`);
875
+ }
876
+ if (report.unknownInternal.length > 0) {
877
+ lines.push(`unknown internal entries: ${report.unknownInternal.length}${listNames(report.unknownInternal)}; left in place`);
878
+ }
879
+ const { payloads, symlinks, other } = report.remaining;
880
+ lines.push(`remaining payloads: ${payloads.length}${listNames(payloads)}`);
881
+ lines.push(`remaining symlinks: ${symlinks.length}${listNames(symlinks)}`);
882
+ if (other.length > 0)
883
+ lines.push(`remaining other entries: ${other.length}${listNames(other)}`);
884
+ lines.push(`fresh start: ${report.freshStart ? 'yes' : 'no'}`);
885
+ if (payloads.length > 0) {
886
+ lines.push('note: remaining payloads keep their names occupied; uploading the same name returns FILE_EXISTS until you remove them manually');
887
+ }
888
+ if (symlinks.length > 0) {
889
+ lines.push('note: remaining symlinks have no ownership record after the reset; an automatic --symlink rule for that name fails closed with LINK_CONFLICT until you remove them manually, while an explicit link request replaces them');
890
+ }
891
+ if (other.length > 0) {
892
+ lines.push('note: remaining other entries are unmanaged and keep their names occupied');
893
+ }
894
+ if (report.applied) {
895
+ if (report.resumed !== null) {
896
+ lines.push(`resumed: yes; the interrupted archive already held ${describeHoldings(report.resumed)}`);
897
+ }
898
+ lines.push(`archive: ${report.archive}`);
899
+ lines.push('result: metadata archived; the next server start begins with empty metadata');
900
+ }
901
+ else {
902
+ lines.push('result: preview only, nothing changed; re-run with --apply to archive this metadata');
903
+ }
904
+ return lines;
905
+ }
906
+ async function runResetStorage(args, io) {
907
+ const { options, flagOptions, positionals } = parseOptions(args, new Set(['--storage', '--apply', '--wait']), new Set(), new Set(), new Set(['--apply']));
908
+ requirePositionals(positionals, 0, 'reset-storage does not accept positional arguments');
909
+ const storageDir = requireOption(options, '--storage');
910
+ const apply = flagOptions['--apply'] === true;
911
+ if (!apply && options['--wait'] !== undefined) {
912
+ throw usageError('--wait requires --apply');
913
+ }
914
+ const wait = options['--wait'] === undefined ? 0 : parsePositiveSafeInteger(options['--wait'], 'wait');
915
+ const resetOptions = {
916
+ storageDir,
917
+ wait,
918
+ storage: io.storage,
919
+ isProcessAlive: io.isProcessAlive,
920
+ pollInterval: io.pollInterval
921
+ };
922
+ let report;
923
+ try {
924
+ report = apply ? await (0, reset_js_1.resetStorage)(resetOptions) : await (0, reset_js_1.inspectStorageReset)(resetOptions);
925
+ }
926
+ catch (err) {
927
+ throw new CliError(errorMessage(err), exitCodeFor(err));
928
+ }
929
+ for (const line of formatResetReport(report))
930
+ writeLine(io.stdout, line);
931
+ return 0;
932
+ }
810
933
  async function dispatch(argv, env, io) {
811
934
  if (argv.length === 1 && HELP_ARGS.has(argv[0])) {
812
935
  writeLine(io.stdout, USAGE);
@@ -832,6 +955,8 @@ async function dispatch(argv, env, io) {
832
955
  return runServer(args, env, io);
833
956
  if (command === 'upload')
834
957
  return runUpload(args, env, io);
958
+ if (command === 'reset-storage')
959
+ return runResetStorage(args, io);
835
960
  return runLink(args, env, io);
836
961
  }
837
962
  async function main(argv, env, io = {}) {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { type ServerHooks } from './hooks.js';
2
2
  /**
3
3
  * Loads a JavaScript hooks module (`.js`, `.mjs` or `.cjs`) and returns the
4
- * validated, frozen hook snapshot. Only `beforeCommit`, `afterCommit` and
5
- * `onFailure` are picked, by own property name; other exports are ignored.
4
+ * validated, frozen hook snapshot. Only `beforeCommit`, `afterCommit`,
5
+ * `afterLink` and `onFailure` are picked, by own property name; other exports
6
+ * are ignored.
6
7
  * Defined named exports take precedence over the default export's callbacks. Every failure is a fixed-message configuration
7
8
  * error that never includes module content.
8
9
  */
@@ -7,7 +7,6 @@ exports.loadHooksModule = loadHooksModule;
7
7
  const _path_1 = __importDefault(require("#path"));
8
8
  const errors_js_1 = require("./errors.js");
9
9
  const hooks_js_1 = require("./hooks.js");
10
- const HOOK_NAMES = ['beforeCommit', 'afterCommit', 'onFailure'];
11
10
  const HOOK_EXTENSIONS = ['.js', '.mjs', '.cjs'];
12
11
  function rejected(modulePath, reason) {
13
12
  // Only the basename and a fixed reason: module text, stack traces, causes and
@@ -62,8 +61,9 @@ function defaultHooks(namespace) {
62
61
  }
63
62
  /**
64
63
  * Loads a JavaScript hooks module (`.js`, `.mjs` or `.cjs`) and returns the
65
- * validated, frozen hook snapshot. Only `beforeCommit`, `afterCommit` and
66
- * `onFailure` are picked, by own property name; other exports are ignored.
64
+ * validated, frozen hook snapshot. Only `beforeCommit`, `afterCommit`,
65
+ * `afterLink` and `onFailure` are picked, by own property name; other exports
66
+ * are ignored.
67
67
  * Defined named exports take precedence over the default export's callbacks. Every failure is a fixed-message configuration
68
68
  * error that never includes module content.
69
69
  */
@@ -94,7 +94,7 @@ async function loadHooksModule(modulePath, cwd) {
94
94
  try {
95
95
  const merged = Object.create(null);
96
96
  const fallback = defaultHooks(namespace);
97
- for (const name of HOOK_NAMES) {
97
+ for (const name of hooks_js_1.HOOK_NAMES) {
98
98
  if (fallback !== undefined && hasOwn(fallback, name)) {
99
99
  const value = fallback[name];
100
100
  if (value !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-module.js","sourceRoot":"","sources":["../src/hooks-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks-module.js","sourceRoot":"","sources":["../src/hooks-module.ts"],"names":[],"mappings":"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"}
package/dist/hooks.d.ts CHANGED
@@ -2,7 +2,7 @@ import { type AbortSignalLike } from './abort.js';
2
2
  import { SwarmDeployError } from './errors.js';
3
3
  import type { ReleaseCoordinates } from './release.js';
4
4
  import type { ArtifactKind } from './types.js';
5
- export type HookFailurePhase = 'offer' | 'transfer' | 'verification' | 'beforeCommit' | 'commit' | 'afterCommit';
5
+ export type HookFailurePhase = 'offer' | 'transfer' | 'verification' | 'beforeCommit' | 'commit' | 'afterCommit' | 'afterLink';
6
6
  /** Immutable, secret-free description of the artifact a hook is observing. */
7
7
  export interface HookArtifact {
8
8
  name: string;
@@ -30,20 +30,67 @@ export interface AfterCommitContext {
30
30
  resumed: boolean;
31
31
  alreadyCommitted: boolean;
32
32
  }
33
+ /** Who owns a managed link: a server rule, or an explicit client request. */
34
+ export type HookLinkMode = 'automatic' | 'manual';
35
+ /**
36
+ * The link decision this call observed, never proof that anything was published.
37
+ * `LINKED` when this call created or repointed the link, took over an unrecorded
38
+ * symlink (even one whose old text already read as the target), or repaired an
39
+ * automatic link's ownership record; `UNCHANGED` when the link was already owned
40
+ * and already pointed at the target.
41
+ * An earlier attempt, another commit's retention pass or reconciliation, or a
42
+ * concurrent request may have moved the link first, so a fresh upload or request
43
+ * can still see `UNCHANGED`, and a manual ownership-metadata refresh for the same
44
+ * target is `UNCHANGED` too. Decide what to publish from your own record of the
45
+ * link name and artifact transfer ID.
46
+ */
47
+ export type HookLinkStatus = 'LINKED' | 'UNCHANGED';
48
+ /**
49
+ * What asked for the link: an upload (fresh or already committed) whose
50
+ * artifact an automatic rule selected, or an explicit link request.
51
+ */
52
+ export type HookLinkTrigger = 'upload' | 'request';
53
+ /** Immutable, secret-free description of the managed link a hook is observing. */
54
+ export interface HookLink {
55
+ /** The link's basename in the storage root. */
56
+ name: string;
57
+ /** The basename of the committed artifact the link points at. */
58
+ target: string;
59
+ mode: HookLinkMode;
60
+ /** Absolute path of the link itself, a symbolic link in the storage root. */
61
+ path: string;
62
+ /** Absolute path of the committed target artifact. */
63
+ targetPath: string;
64
+ }
65
+ export interface AfterLinkContext {
66
+ link: HookLink;
67
+ /** The committed artifact the link was set to point at. */
68
+ artifact: HookArtifact;
69
+ status: HookLinkStatus;
70
+ trigger: HookLinkTrigger;
71
+ }
33
72
  export interface HookFailureContext {
34
73
  artifact: HookArtifact;
35
- /** The best known absolute path, or `null` before one exists. */
74
+ /**
75
+ * The best known absolute path, or `null` before one exists. For
76
+ * `afterLink` it is the path of the link.
77
+ */
36
78
  path: string | null;
37
79
  phase: HookFailurePhase;
38
80
  resumed: boolean;
39
81
  alreadyCommitted: boolean;
40
82
  error: unknown;
83
+ /** Present only when `phase` is `afterLink`. */
84
+ link?: HookLink;
41
85
  }
42
86
  export interface ServerHooks {
43
87
  beforeCommit?(context: BeforeCommitContext): void | Promise<void>;
44
88
  afterCommit?(context: AfterCommitContext): void | Promise<void>;
89
+ afterLink?(context: AfterLinkContext): void | Promise<void>;
45
90
  onFailure?(context: HookFailureContext): void | Promise<void>;
46
91
  }
92
+ /** Every callback name a hooks object or hooks module may carry. */
93
+ export declare const HOOK_NAMES: readonly ['beforeCommit', 'afterCommit', 'afterLink', 'onFailure'];
47
94
  /**
48
95
  * Validates and freezes caller hooks. Each property is read exactly once and no
49
96
  * receiver is bound, so later mutation of the caller's object cannot change the
@@ -67,3 +114,29 @@ export declare function callbackError(error: unknown): unknown;
67
114
  * running detached; its later rejection is swallowed.
68
115
  */
69
116
  export declare function invokeHook<Context>(callback: (context: Context) => void | Promise<void>, context: Context, signal: AbortSignalLike): Promise<'completed' | 'aborted'>;
117
+ /** One place in a key's line of hooks. */
118
+ export interface HookTurn {
119
+ /**
120
+ * Settles `'ready'` once every earlier turn for the key has been released,
121
+ * or `'aborted'` when the signal aborts first.
122
+ */
123
+ ready(signal: AbortSignalLike): Promise<'ready' | 'aborted'>;
124
+ /** Hands the key to the next turn. Safe to call any number of times. */
125
+ release(): void;
126
+ }
127
+ /**
128
+ * First-in, first-out lines of hooks, one per key. Hooks for one key start in
129
+ * reservation order and never overlap; different keys never wait on each other.
130
+ *
131
+ * This is deliberately not a lock around the work the hooks follow: callers
132
+ * reserve while they hold the lease that orders the underlying decisions, so
133
+ * the line matches decision order, and then wait for their turn outside it.
134
+ * Hook code therefore never runs under a storage lease.
135
+ */
136
+ export declare class HookTurns {
137
+ private readonly tails;
138
+ /** Keys that still have a pending turn; a drained line is dropped. */
139
+ get size(): number;
140
+ /** Queues behind every earlier turn for `key`. Synchronous, so reservation order is call order. */
141
+ reserve(key: string): HookTurn;
142
+ }
package/dist/hooks.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HookTurns = exports.HOOK_NAMES = void 0;
3
4
  exports.snapshotHooks = snapshotHooks;
4
5
  exports.hookError = hookError;
5
6
  exports.callbackError = callbackError;
@@ -7,7 +8,8 @@ exports.invokeHook = invokeHook;
7
8
  const abort_js_1 = require("./abort.js");
8
9
  const errors_js_1 = require("./errors.js");
9
10
  const WRAPPED_CALLBACK_ERRORS = new WeakMap();
10
- const HOOK_NAMES = ['beforeCommit', 'afterCommit', 'onFailure'];
11
+ /** Every callback name a hooks object or hooks module may carry. */
12
+ exports.HOOK_NAMES = ['beforeCommit', 'afterCommit', 'afterLink', 'onFailure'];
11
13
  /**
12
14
  * Validates and freezes caller hooks. Each property is read exactly once and no
13
15
  * receiver is bound, so later mutation of the caller's object cannot change the
@@ -20,12 +22,12 @@ function snapshotHooks(hooks) {
20
22
  throw new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.PROTOCOL_INVALID, 'Invalid hooks');
21
23
  }
22
24
  for (const name of Reflect.ownKeys(hooks)) {
23
- if (!HOOK_NAMES.includes(name)) {
25
+ if (!exports.HOOK_NAMES.includes(name)) {
24
26
  throw new errors_js_1.SwarmDeployError(errors_js_1.ERRORS.PROTOCOL_INVALID, 'Unknown hook');
25
27
  }
26
28
  }
27
29
  const snapshot = {};
28
- for (const name of HOOK_NAMES) {
30
+ for (const name of exports.HOOK_NAMES) {
29
31
  const callback = hooks[name];
30
32
  if (callback === undefined)
31
33
  continue;
@@ -85,4 +87,56 @@ async function invokeHook(callback, context, signal) {
85
87
  release();
86
88
  }
87
89
  }
90
+ /**
91
+ * First-in, first-out lines of hooks, one per key. Hooks for one key start in
92
+ * reservation order and never overlap; different keys never wait on each other.
93
+ *
94
+ * This is deliberately not a lock around the work the hooks follow: callers
95
+ * reserve while they hold the lease that orders the underlying decisions, so
96
+ * the line matches decision order, and then wait for their turn outside it.
97
+ * Hook code therefore never runs under a storage lease.
98
+ */
99
+ class HookTurns {
100
+ tails = new Map();
101
+ /** Keys that still have a pending turn; a drained line is dropped. */
102
+ get size() {
103
+ return this.tails.size;
104
+ }
105
+ /** Queues behind every earlier turn for `key`. Synchronous, so reservation order is call order. */
106
+ reserve(key) {
107
+ const previous = this.tails.get(key) ?? Promise.resolve();
108
+ let open = () => { };
109
+ const released = new Promise((resolve) => {
110
+ open = resolve;
111
+ });
112
+ const tail = previous.then(() => released);
113
+ this.tails.set(key, tail);
114
+ let done = false;
115
+ return {
116
+ ready: async (signal) => {
117
+ let remove = () => { };
118
+ const aborted = new Promise((resolve) => {
119
+ remove = (0, abort_js_1.onAbort)(signal, () => resolve('aborted'));
120
+ });
121
+ try {
122
+ return await Promise.race([previous.then(() => 'ready'), aborted]);
123
+ }
124
+ finally {
125
+ remove();
126
+ }
127
+ },
128
+ release: () => {
129
+ if (done)
130
+ return;
131
+ done = true;
132
+ open();
133
+ void tail.then(() => {
134
+ if (this.tails.get(key) === tail)
135
+ this.tails.delete(key);
136
+ });
137
+ }
138
+ };
139
+ }
140
+ }
141
+ exports.HookTurns = HookTurns;
88
142
  //# sourceMappingURL=hooks.js.map