@intentic/base 1.331.0 → 1.333.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +50 -7
  2. package/dist/async.d.ts +32 -2
  3. package/dist/async.d.ts.map +1 -1
  4. package/dist/async.js +146 -27
  5. package/dist/async.js.map +1 -1
  6. package/dist/format.d.ts +1 -1
  7. package/dist/format.d.ts.map +1 -1
  8. package/dist/format.js +1 -2
  9. package/dist/format.js.map +1 -1
  10. package/dist/fuzzy.js +1 -1
  11. package/dist/fuzzy.js.map +1 -1
  12. package/dist/git/commands.d.ts.map +1 -1
  13. package/dist/git/commands.js +2 -2
  14. package/dist/git/commands.js.map +1 -1
  15. package/dist/git/runner.d.ts.map +1 -1
  16. package/dist/git/runner.js +3 -2
  17. package/dist/git/runner.js.map +1 -1
  18. package/dist/held.d.ts +22 -0
  19. package/dist/held.d.ts.map +1 -1
  20. package/dist/held.js +83 -0
  21. package/dist/held.js.map +1 -1
  22. package/dist/lifecycle.d.ts.map +1 -1
  23. package/dist/lifecycle.js +2 -6
  24. package/dist/lifecycle.js.map +1 -1
  25. package/dist/node/contained.d.ts +10 -0
  26. package/dist/node/contained.d.ts.map +1 -0
  27. package/dist/node/contained.js +37 -0
  28. package/dist/node/contained.js.map +1 -0
  29. package/dist/node/fs.d.ts +14 -1
  30. package/dist/node/fs.d.ts.map +1 -1
  31. package/dist/node/fs.js +63 -38
  32. package/dist/node/fs.js.map +1 -1
  33. package/dist/node/json-lines.d.ts +5 -0
  34. package/dist/node/json-lines.d.ts.map +1 -0
  35. package/dist/node/json-lines.js +39 -0
  36. package/dist/node/json-lines.js.map +1 -0
  37. package/dist/node/process.d.ts +71 -0
  38. package/dist/node/process.d.ts.map +1 -0
  39. package/dist/node/process.js +338 -0
  40. package/dist/node/process.js.map +1 -0
  41. package/dist/node/web-stream.d.ts +2 -0
  42. package/dist/node/web-stream.d.ts.map +1 -1
  43. package/dist/node/web-stream.js +18 -0
  44. package/dist/node/web-stream.js.map +1 -1
  45. package/dist/text/escape.d.ts +4 -0
  46. package/dist/text/escape.d.ts.map +1 -0
  47. package/dist/text/escape.js +11 -0
  48. package/dist/text/escape.js.map +1 -0
  49. package/dist/text/one-line.d.ts +5 -0
  50. package/dist/text/one-line.d.ts.map +1 -0
  51. package/dist/text/one-line.js +18 -0
  52. package/dist/text/one-line.js.map +1 -0
  53. package/dist/web/capped-read.d.ts +14 -0
  54. package/dist/web/capped-read.d.ts.map +1 -0
  55. package/dist/web/capped-read.js +42 -0
  56. package/dist/web/capped-read.js.map +1 -0
  57. package/dist/web/fetch-json.d.ts +34 -0
  58. package/dist/web/fetch-json.d.ts.map +1 -0
  59. package/dist/web/fetch-json.js +87 -0
  60. package/dist/web/fetch-json.js.map +1 -0
  61. package/package.json +80 -3
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/git/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/git/commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/git/runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAQ,MAAM,oBAAoB,CAAC;AAQvE,eAAO,MAAM,IAAI,+BAAsB,CAAC;AAKxC,eAAO,MAAM,eAAe,+DAAuD,CAAC;AAMpF,eAAO,MAAM,gBAAgB,SAAU,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EAMzE,CAAC;AAuBF,MAAM,MAAM,SAAS,GAAG,CACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KACrC,OAAO,CAAC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAKnE,eAAO,MAAM,QAAQ,QAAe,MAAM,QAAQ,SAAS,MAAM,EAAE,YAAY,MAAM,KAAG,OAAO,CAAC,MAAM,CAGrG,CAAC;AAIF,KAAK,YAAY,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AA+EzE,eAAO,MAAM,UAAU,YAAmB,MAAM,QAAQ,SAAS,MAAM,EAAE,YAAW,OAAO,CAAC,aAAa,CAAC,KAAQ,OAAO,CAAC,YAAY,CAGrI,CAAC;AAoDF,eAAO,MAAM,aAAa,QAAO;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAIrH,CAAC;AAEH,UAAU,aAAa;IACnB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACnD;AAMD,eAAO,MAAM,YAAY,QAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAG,IAEpE,CAAC;AAkEF,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAEzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAKD,eAAO,MAAM,eAAe,SAAU,SAAS,MAAM,EAAE,KAAG,MAWzD,CAAC;AAOF,eAAO,MAAM,kBAAkB,aAAc,CAAC,WAAW,EAAE,cAAc,KAAK,IAAI,KAAG,IAEpF,CAAC;AASF,eAAO,MAAM,YAAY,QAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAyC,CAAC;AAOzG,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD,eAAO,MAAM,aAAa,GAAI,CAAC,UAAU,MAAM,OAAO,MAAM,CAAC,KAAG,CAAiC,CAAC;AAGlG,eAAO,MAAM,aAAa,QAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAqC,CAAC;AAkFtG,eAAO,MAAM,UAAU,EAAE,SAAyF,CAAC;AAuBnH,eAAO,MAAM,WAAW,QAAe,MAAM,KAAG,OAAO,CAAC,OAAO,CAa9D,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,SASvB,CAAC"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/git/runner.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { execFile, fork } from "node:child_process";
3
3
  import { existsSync } from "node:fs";
4
4
  import { availableParallelism } from "node:os";
5
5
  import { promisify } from "node:util";
6
+ import { sleep } from "../async.js";
6
7
  import { clearStaleLock } from "./locks.js";
7
8
  export const exec = promisify(execFile);
8
9
  const GIT_CONFIG_ARGS = ["-c", "core.fileMode=false"];
@@ -264,7 +265,7 @@ const runGit = async (argv, bulk, globals, dir, args, env) => {
264
265
  observe(attempt, true);
265
266
  throw error;
266
267
  }
267
- await new Promise((resolve) => setTimeout(resolve, attempt * attempt * 50));
268
+ await sleep(attempt * attempt * 50);
268
269
  }
269
270
  }
270
271
  };
@@ -278,7 +279,7 @@ const plainBulkGit = gitRunnerVia(["git"], { bulk: true, globals: GIT_GLOBAL_ARG
278
279
  const settlingGit = gitRunnerVia(["git"], { bulk: false, globals: GIT_CONFIG_ARGS, gated: false });
279
280
  const SETTLE_MARGIN_MS = 50;
280
281
  export const settleIndex = async (dir) => {
281
- await new Promise((resolve) => setTimeout(resolve, 1000 - (Date.now() % 1000) + SETTLE_MARGIN_MS));
282
+ await sleep(1000 - (Date.now() % 1000) + SETTLE_MARGIN_MS);
282
283
  if (runningIn.has(dir) || settling.has(dir)) {
283
284
  return false;
284
285
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/git/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/git/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAqB,QAAQ,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAI5C,MAAM,CAAC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAGxC,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,qBAAqB,CAAU,CAAC;AAE/D,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,qBAAqB,EAAE,GAAG,eAAe,CAAU,CAAC;AAIpF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAuB,EAAqB,EAAE;IAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,SAAS,KAAK,CAAC,CAAC,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;QACpG,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9G,CAAC,CAAC;AAGF,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAGxC,MAAM,eAAe,GAAG,oDAAoD,CAAC;AAC7E,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAW,EAAE;IACjD,MAAM,MAAM,GAAI,KAA8B,CAAC,MAAM,CAAC;IACtD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtE,CAAC,CAAC;AAGF,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAW,EAAE,KAAc,EAAoB,EAAE;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAE,KAA8B,CAAC,MAAM,CAAC,CAAC;IAE9D,OAAO,CAAC,MAAM,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,SAAS,CAAC;AACpF,CAAC,CAAC;AAaF,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAW,EAAE,IAAuB,EAAE,QAAgB,EAAmB,EAAE;IACtG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,eAAe,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9I,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAOF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoG,CAAC;AAC7H,IAAI,MAAgC,CAAC;AACrC,IAAI,iBAAiB,GAAG,KAAK,CAAC;AAC9B,IAAI,aAAa,GAAG,CAAC,CAAC;AAGtB,MAAM,MAAM,GAAG,CAAC,EAAU,EAAQ,EAAE;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACpB,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;IAC/B,CAAC;AACL,CAAC,CAAC;AAGF,MAAM,aAAa,GAAG,CAAC,QAAsB,EAAE,OAA6C,EAAS,EAAE,CACnG,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;IACtC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,EAAE,QAAQ,CAAC,MAAM;IACvB,MAAM,EAAE,QAAQ,CAAC,MAAM;IAEvB,MAAM,EAAE,QAAQ,CAAC,MAAM;CAC1B,CAAC,CAAC;AAGP,MAAM,YAAY,GAAG,CAAC,KAAc,EAAU,EAAE;IAC5C,MAAM,QAAQ,GAAI,KAA8B,CAAC,MAAM,CAAC;IACxD,OAAO,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC,CAAC;AAGF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,aAAa,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAE7D,MAAM,cAAc,GAAG,GAA6B,EAAE;IAClD,IAAI,MAAM,KAAK,SAAS,IAAI,iBAAiB,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5B,iBAAiB,GAAG,IAAI,CAAC;QACzB,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACpG,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,OAAuB,CAAC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO;QACX,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACpB,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1D,OAAO;QACX,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnG,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,MAAM,GAAG,SAAS,CAAC;QACnB,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACxC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACnD,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,iBAAiB,GAAG,IAAI,CAAC;IAC7B,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,EAAE,CAAC;IAChB,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC;IAC3B,MAAM,GAAG,OAAO,CAAC;IACjB,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,OAAe,EAAE,IAAuB,EAAE,OAAO,GAA2B,EAAE,EAAyB,EAAE;IACtI,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,cAAc,EAAE,CAAC,CAAC;IAC1H,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC,CAAC;AAGF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAGvE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AAIxF,MAAM,YAAY,GAAG,CAAC,IAAuB,EAAsB,EAAE;IACjE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;QAEzB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC/B,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACb,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC;QACf,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEF,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,MAAM,WAAW,GAAmB,EAAE,CAAC;AAGvC,MAAM,WAAW,GAAG,GAA8B,EAAE;IAChD,IAAI,UAAU,GAAG,UAAU,EAAE,CAAC;QAC1B,UAAU,IAAI,CAAC,CAAC;QAChB,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,GAAS,EAAE;IAC3B,UAAU,IAAI,CAAC,CAAC;IAChB,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;IACjC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO;IACX,CAAC;IACD,UAAU,IAAI,CAAC,CAAC;IAChB,IAAI,EAAE,CAAC;AACX,CAAC,CAAC;AAMF,MAAM,CAAC,MAAM,aAAa,GAAG,GAA6F,EAAE,CAAC,CAAC;IAC1H,UAAU;IACV,UAAU,EAAE,WAAW,CAAC,MAAM;IAC9B,SAAS,EAAE,UAAU;CACxB,CAAC,CAAC;AAcH,IAAI,MAAM,GAAqC,EAAE,CAAC;AAClD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAqC,EAAQ,EAAE;IACxE,MAAM,GAAG,GAAG,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,KAAK,EAAE,OAAe,EAAE,IAAuB,EAAE,OAAsB,EAAmB,EAAE;IAI1G,MAAM,QAAQ,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG;QACX,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7D,CAAC;IACF,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAExB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC5E,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QAC/E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEb,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;YACnF,CAAC;YACD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IACD,MAAM,EAAE,GAAG,aAAa,CAAC;IACzB,aAAa,IAAI,CAAC,CAAC;IACnB,MAAM,OAAO,GAAgB,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;IAC7E,OAAO,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjD,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAE5B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,EAAE,CAAC,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAIF,MAAM,aAAa,GAAG,KAAK,EACvB,OAAe,EACf,IAAuB,EACvB,GAAiD,EACjD,IAAa,EACb,SAAkB,EACH,EAAE;IACjB,MAAM,OAAO,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACrF,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;QACrB,OAAO,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,WAAW,EAAE,CAAC;IACpB,IAAI,CAAC;QACD,OAAO,MAAM,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;YAAS,CAAC;QACP,WAAW,EAAE,CAAC;IAClB,CAAC;AACL,CAAC,CAAC;AAsBF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAuB,EAAU,EAAE;IAC/D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAE,CAAC;QACzB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACf,KAAK,IAAI,CAAC,CAAC;YACX,SAAS;QACb,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,mCAAmC,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC,CAAC;AAEF,IAAI,WAAgE,CAAC;AAKrE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,QAA+C,EAAQ,EAAE;IACxF,WAAW,GAAG,QAAQ,CAAC;AAC3B,CAAC,CAAC;AAGF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;AAErD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE5C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAG,GAAqC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AAIzG,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAU,CAAC;AACpD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE/C,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAI,MAAc,EAAE,GAAY,EAAK,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAGlG,MAAM,CAAC,MAAM,aAAa,GAAG,GAAqC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAStG,MAAM,YAAY,GACd,CAAC,IAAuB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAe,EAAa,EAAE,CAC9E,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IACrB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,OAAO,CAAC;IAClB,CAAC;IACD,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;IAC7C,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,qBAAqB,CAAC;IAC/D,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC;QACD,OAAO,MAAM,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;YAAS,CAAC;QACP,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACb,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;aAAM,CAAC;YACJ,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEN,MAAM,MAAM,GAAG,KAAK,EAChB,IAAuB,EACvB,IAAa,EACb,OAA0B,EAC1B,GAAW,EACX,IAAuB,EACvB,GAAiD,EACY,EAAE;IAC/D,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAEhC,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAErC,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAE,MAAe,EAAQ,EAAE;QACxD,WAAW,EAAE,CAAC;YACV,GAAG;YACH,IAAI;YACJ,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG;YAChD,MAAM;YACN,QAAQ;YACR,MAAM;YACN,MAAM,EAAE,MAAM,KAAK,SAAS;YAC5B,UAAU,EAAE,WAAW,CAAC,MAAM;SACjC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,OAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;YAChI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC;YACxB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACxB,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;YAE9B,IAAI,OAAO,KAAK,cAAc,IAAI,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;gBAChG,SAAS;YACb,CAAC;YACD,IAAI,OAAO,IAAI,cAAc,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACvB,MAAM,KAAK,CAAC;YAChB,CAAC;YAED,MAAM,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAc,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAGnH,MAAM,QAAQ,GAAc,YAAY,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE;IAClG,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,eAAe;IACxB,KAAK,EAAE,IAAI;CACd,CAAC,CAAC;AACH,MAAM,YAAY,GAAc,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAG7G,MAAM,WAAW,GAAc,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;AAG9G,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAS5B,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,GAAW,EAAoB,EAAE;IAC/D,MAAM,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IAC3D,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CACjB,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAC1B,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAC7B,CAAC;IACF,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACxB,MAAM,GAAG,CAAC;IACV,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,SAAS,GAAc,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IACzD,IAAI,CAAC;QACD,OAAO,MAAM,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrD,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,KAAK,CAAC;IAChB,CAAC;AACL,CAAC,CAAC"}
package/dist/held.d.ts CHANGED
@@ -15,4 +15,26 @@ export interface Held<K, V> {
15
15
  readonly size: () => number;
16
16
  }
17
17
  export declare const held: <K, V>({ maxAgeMs, now }: FeedBound) => Held<K, V>;
18
+ export declare class BoundedMap<K, V> extends Map<K, V> {
19
+ readonly limit: number;
20
+ constructor(limit: number);
21
+ set(key: K, value: V): this;
22
+ }
23
+ export interface CachedAsyncOptions<V> {
24
+ readonly ttlMs: number;
25
+ readonly maxEntries?: number;
26
+ readonly keep?: (value: V) => boolean;
27
+ readonly now?: () => number;
28
+ }
29
+ export interface CachedAsync<K, V> {
30
+ readonly get: (key: K, load: () => Promise<V>, options?: {
31
+ readonly fresh?: boolean;
32
+ }) => Promise<V>;
33
+ readonly peek: (key: K) => V | undefined;
34
+ readonly set: (key: K, value: V) => void;
35
+ readonly drop: (key: K) => void;
36
+ readonly clear: () => void;
37
+ readonly size: () => number;
38
+ }
39
+ export declare const cachedAsync: <K, V>({ ttlMs, maxEntries, keep, now }: CachedAsyncOptions<V>) => CachedAsync<K, V>;
18
40
  //# sourceMappingURL=held.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"held.d.ts","sourceRoot":"","sources":["../src/held.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IAEtB,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC;IAE9B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAE3B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IAEtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,SAAS,sBAAkC,SAAS,KAAG,SAWnE,CAAC;AAGF,MAAM,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC;IAEtB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3C,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAEhC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,qBAAgC,SAAS,KAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAoC7E,CAAC"}
1
+ {"version":3,"file":"held.d.ts","sourceRoot":"","sources":["../src/held.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IAEtB,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC;IAE9B,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAE3B,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IAEtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,SAAS,sBAAkC,SAAS,KAAG,SAWnE,CAAC;AAGF,MAAM,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC;IAEtB,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAE3C,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAEhC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,qBAAgC,SAAS,KAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAoC7E,CAAC;AAOF,qBAAa,UAAU,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAE3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,YAAY,KAAK,EAAE,MAAM,EAGxB;IAEQ,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAUnC;CACJ;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC;IAEjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAM7B,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,EAAE,CAAC;IAM7B,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAErG,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAEzC,QAAQ,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAEzC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC;CAC/B;AAMD,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,CAAC,oCAA4D,kBAAkB,CAAC,CAAC,CAAC,KAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAmEnI,CAAC"}
package/dist/held.js CHANGED
@@ -46,4 +46,87 @@ export const held = ({ maxAgeMs, now = Date.now }) => {
46
46
  size: () => readings.size,
47
47
  };
48
48
  };
49
+ export class BoundedMap extends Map {
50
+ limit;
51
+ constructor(limit) {
52
+ super();
53
+ this.limit = limit;
54
+ }
55
+ set(key, value) {
56
+ super.delete(key);
57
+ super.set(key, value);
58
+ for (const oldest of this.keys()) {
59
+ if (this.size <= this.limit) {
60
+ break;
61
+ }
62
+ super.delete(oldest);
63
+ }
64
+ return this;
65
+ }
66
+ }
67
+ export const cachedAsync = ({ ttlMs, maxEntries, keep = () => true, now = Date.now }) => {
68
+ const kept = maxEntries === undefined ? new Map() : new BoundedMap(maxEntries);
69
+ const loading = new Map();
70
+ let swept = now();
71
+ const sweep = (at) => {
72
+ if (at - swept <= ttlMs) {
73
+ return;
74
+ }
75
+ swept = at;
76
+ for (const [key, entry] of kept) {
77
+ if (at - entry.at >= ttlMs) {
78
+ kept.delete(key);
79
+ }
80
+ }
81
+ };
82
+ const standing = (key, at) => {
83
+ const entry = kept.get(key);
84
+ return entry !== undefined && at - entry.at < ttlMs ? entry : undefined;
85
+ };
86
+ const set = (key, value) => {
87
+ kept.set(key, { at: now(), value });
88
+ };
89
+ return {
90
+ get: (key, load, options) => {
91
+ const at = now();
92
+ sweep(at);
93
+ if (options?.fresh !== true) {
94
+ const entry = standing(key, at);
95
+ if (entry !== undefined) {
96
+ return Promise.resolve(entry.value);
97
+ }
98
+ const running = loading.get(key);
99
+ if (running !== undefined) {
100
+ return running;
101
+ }
102
+ }
103
+ const started = Promise.resolve().then(load);
104
+ loading.set(key, started);
105
+ const settled = () => {
106
+ const own = loading.get(key) === started;
107
+ if (own) {
108
+ loading.delete(key);
109
+ }
110
+ return own;
111
+ };
112
+ started.then((value) => {
113
+ if (settled() && keep(value)) {
114
+ set(key, value);
115
+ }
116
+ }, settled);
117
+ return started;
118
+ },
119
+ peek: (key) => standing(key, now())?.value,
120
+ set,
121
+ drop: (key) => {
122
+ kept.delete(key);
123
+ loading.delete(key);
124
+ },
125
+ clear: () => {
126
+ kept.clear();
127
+ loading.clear();
128
+ },
129
+ size: () => kept.size,
130
+ };
131
+ };
49
132
  //# sourceMappingURL=held.js.map
package/dist/held.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"held.js","sourceRoot":"","sources":["../src/held.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAa,EAAa,EAAE;IAC5E,IAAI,EAAsB,CAAC;IAC3B,OAAO;QACH,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,SAAS,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,QAAQ;QACvD,KAAK,EAAE,GAAG,EAAE;YACR,EAAE,GAAG,GAAG,EAAE,CAAC;QACf,CAAC;QACD,OAAO,EAAE,GAAG,EAAE;YACV,EAAE,GAAG,SAAS,CAAC;QACnB,CAAC;KACJ,CAAC;AACN,CAAC,CAAC;AAaF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAO,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAa,EAAc,EAAE;IAC9E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiD,CAAC;IAC1E,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;IAElB,MAAM,KAAK,GAAG,CAAC,EAAU,EAAQ,EAAE;QAC/B,IAAI,EAAE,GAAG,KAAK,IAAI,QAAQ,EAAE,CAAC;YACzB,OAAO;QACX,CAAC;QACD,KAAK,GAAG,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;YACpC,IAAI,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC;gBAC7B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACL,CAAC;IACL,CAAC,CAAC;IACF,OAAO;QACH,GAAG,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACf,MAAM,EAAE,GAAG,GAAG,EAAE,CAAC;YACjB,KAAK,CAAC,EAAE,CAAC,CAAC;YACV,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,QAAQ,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC,KAAK,CAAC;YACtB,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;YACrB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACjC,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACV,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,KAAK,EAAE,GAAG,EAAE;YACR,QAAQ,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI;KAC5B,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"held.js","sourceRoot":"","sources":["../src/held.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IACxB,OAAO,IAAI,IAAI,CAAC;CACnB;AAID,eAAO,MAAM,YAAY,OAAQ,MAAM,OAAO,KAAG,WAAgC,CAAC;AAIlF,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAsBD,qBAAa,eAAgB,YAAW,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAS;IAIzB,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAO3C;IAID,IAAI,CAAC,EAAE,EAAE,MAAM,OAAO,GAAG,IAAI,CAE5B;IAID,gBAAgB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAI9C;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAID,OAAO,IAAI,IAAI,CAQd;IAOK,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAwC/D;CACJ;AAID,8BAAsB,UAAW,YAAW,WAAW;IACnD,SAAS,CAAC,QAAQ,CAAC,KAAK,kBAAyB;IAEjD,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAE1D;IAED,OAAO,IAAI,IAAI,CAEd;CACJ;AAID,qBAAa,iBAAiB,CAAC,CAAC,SAAS,WAAW,CAAE,YAAW,WAAW;IACxE,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAEzB;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,EAS5B;IAED,OAAO,IAAI,IAAI,CAId;CACJ"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW;IACxB,OAAO,IAAI,IAAI,CAAC;CACnB;AAID,eAAO,MAAM,YAAY,OAAQ,MAAM,OAAO,KAAG,WAAgC,CAAC;AAIlF,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAsBD,qBAAa,eAAgB,YAAW,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAS;IAIzB,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAO3C;IAID,IAAI,CAAC,EAAE,EAAE,MAAM,OAAO,GAAG,IAAI,CAE5B;IAID,gBAAgB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAI9C;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAID,OAAO,IAAI,IAAI,CAQd;IAOK,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAoC/D;CACJ;AAID,8BAAsB,UAAW,YAAW,WAAW;IACnD,SAAS,CAAC,QAAQ,CAAC,KAAK,kBAAyB;IAEjD,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAE1D;IAED,OAAO,IAAI,IAAI,CAEd;CACJ;AAID,qBAAa,iBAAiB,CAAC,CAAC,SAAS,WAAW,CAAE,YAAW,WAAW;IACxE,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,CAEzB;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS,EAS5B;IAED,OAAO,IAAI,IAAI,CAId;CACJ"}
package/dist/lifecycle.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { within } from "./async.js";
1
2
  export const toDisposable = (fn) => ({ dispose: fn });
2
3
  const isThenable = (value) => typeof value === "object" && value !== null && typeof value.then === "function";
3
4
  const disposeAll = (disposables) => {
@@ -76,12 +77,7 @@ export class DisposableStore {
76
77
  }
77
78
  }
78
79
  if (pending.length > 0) {
79
- let timer;
80
- const deadline = new Promise((resolve) => {
81
- timer = setTimeout(resolve, deadlineMs);
82
- });
83
- await Promise.race([Promise.all(pending), deadline]);
84
- clearTimeout(timer);
80
+ await within(Promise.all(pending), deadlineMs, undefined, { unref: true });
85
81
  }
86
82
  return { failed: [...failed], unfinished };
87
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface InsideOptions {
2
+ readonly platform?: NodeJS.Platform;
3
+ readonly foldCase?: boolean;
4
+ }
5
+ export declare const isInside: (root: string, path: string, options?: InsideOptions) => boolean;
6
+ export declare const insideRel: (root: string, path: string, options?: InsideOptions) => string | undefined;
7
+ export declare const realPathThrough: (path: string) => Promise<string>;
8
+ export declare const realInside: (root: string, path: string, options?: Omit<InsideOptions, "platform">) => Promise<string | undefined>;
9
+ export declare const windowsHolds: (name: string) => boolean;
10
+ //# sourceMappingURL=contained.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contained.d.ts","sourceRoot":"","sources":["../../src/node/contained.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAG1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAGpC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC/B;AAOD,eAAO,MAAM,QAAQ,SAAU,MAAM,QAAQ,MAAM,YAAW,aAAa,KAAQ,OAKlF,CAAC;AAGF,eAAO,MAAM,SAAS,SAAU,MAAM,QAAQ,MAAM,YAAW,aAAa,KAAQ,MAAM,GAAG,SAM5F,CAAC;AAIF,eAAO,MAAM,eAAe,SAAgB,MAAM,KAAG,OAAO,CAAC,MAAM,CAclE,CAAC;AAIF,eAAO,MAAM,UAAU,SAAgB,MAAM,QAAQ,MAAM,YAAW,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,KAAQ,OAAO,CAAC,MAAM,GAAG,SAAS,CAGtI,CAAC;AAUF,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,OAA6F,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { realpath } from "node:fs/promises";
2
+ import { basename, dirname, join, posix, resolve, win32 } from "node:path";
3
+ const rulesOf = (platform) => (platform === "win32" ? win32 : posix);
4
+ export const isInside = (root, path, options = {}) => {
5
+ const rules = rulesOf(options.platform ?? process.platform);
6
+ const fold = (value) => (options.foldCase === true ? rules.resolve(value).toLowerCase() : value);
7
+ const rel = rules.relative(fold(root), fold(path));
8
+ return rel === "" || (rel !== ".." && !rel.startsWith(`..${rules.sep}`) && !rules.isAbsolute(rel));
9
+ };
10
+ export const insideRel = (root, path, options = {}) => {
11
+ if (!isInside(root, path, options)) {
12
+ return undefined;
13
+ }
14
+ const rules = rulesOf(options.platform ?? process.platform);
15
+ return rules.relative(root, path).split(rules.sep).join("/");
16
+ };
17
+ export const realPathThrough = async (path) => {
18
+ const missing = [];
19
+ for (let head = resolve(path);; head = dirname(head)) {
20
+ const real = await realpath(head).catch(() => undefined);
21
+ if (real !== undefined) {
22
+ return join(real, ...missing.toReversed());
23
+ }
24
+ if (dirname(head) === head) {
25
+ return resolve(path);
26
+ }
27
+ missing.push(basename(head));
28
+ }
29
+ };
30
+ export const realInside = async (root, path, options = {}) => {
31
+ const [realRoot, real] = await Promise.all([realPathThrough(root), realPathThrough(path)]);
32
+ return isInside(realRoot, real, options) ? real : undefined;
33
+ };
34
+ const WINDOWS_FORBIDDEN = /[<>:"|?*\u0000-\u001f]/;
35
+ const WINDOWS_DEVICE = /^(?:con|prn|aux|nul|com[1-9¹²³]|lpt[1-9¹²³])(?:\.|$)/i;
36
+ export const windowsHolds = (name) => !WINDOWS_FORBIDDEN.test(name) && !/[. ]$/.test(name) && !WINDOWS_DEVICE.test(name);
37
+ //# sourceMappingURL=contained.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contained.js","sourceRoot":"","sources":["../../src/node/contained.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAe3E,MAAM,OAAO,GAAG,CAAC,QAAyB,EAAgB,EAAE,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAKpG,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,OAAO,GAAkB,EAAE,EAAW,EAAE;IACzF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACjH,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACvG,CAAC,CAAC;AAGF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,IAAY,EAAE,OAAO,GAAkB,EAAE,EAAsB,EAAE;IACrG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjE,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,IAAY,EAAmB,EAAE;IACnE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAGpD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACjC,CAAC;AACL,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,IAAY,EAAE,IAAY,EAAE,OAAO,GAAoC,EAAE,EAA+B,EAAE;IACvI,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3F,OAAO,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC,CAAC;AAQF,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AACnD,MAAM,cAAc,GAAG,uDAAuD,CAAC;AAC/E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
package/dist/node/fs.d.ts CHANGED
@@ -1,10 +1,23 @@
1
1
  export declare const pathExists: (path: string) => Promise<boolean>;
2
2
  export declare const pathPresence: (path: string) => Promise<"present" | "absent" | "unknown">;
3
3
  export declare const queueOnFile: <T>(path: string, task: () => Promise<T>) => Promise<T>;
4
+ export declare const renameOver: (from: string, to: string) => Promise<void>;
5
+ export declare const stagingOf: (path: string) => string;
6
+ export declare const syncDirectory: (dir: string) => Promise<void>;
7
+ export interface SyncDirectoriesOptions {
8
+ readonly upTo?: string;
9
+ }
10
+ export declare const syncDirectories: (dirs: Iterable<string>, options?: SyncDirectoriesOptions) => Promise<void>;
4
11
  export interface WriteOptions {
5
12
  readonly durable?: boolean;
13
+ readonly syncUpTo?: string;
14
+ readonly owner?: {
15
+ readonly uid: number;
16
+ readonly gid: number;
17
+ };
6
18
  }
7
19
  export declare const writeFileAtomic: (path: string, content: string | Uint8Array, mode?: number, options?: WriteOptions) => Promise<void>;
8
- export declare const writeFileAtomicSync: (path: string, content: string | Uint8Array) => void;
20
+ export declare const writeChunksAtomic: (path: string, chunks: Iterable<Uint8Array>, mode?: number, options?: WriteOptions) => Promise<void>;
21
+ export declare const writeFileAtomicSync: (path: string, content: string | Uint8Array, mode?: number) => void;
9
22
  export declare const freePort: (host?: string) => Promise<number>;
10
23
  //# sourceMappingURL=fs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/node/fs.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,SAAgB,MAAM,KAAG,OAAO,CAAC,OAAO,CAI1D,CAAC;AAKN,eAAO,MAAM,YAAY,SAAgB,MAAM,KAAG,OAAO,CAAC,SAAS,GAAG,QAAQ,GAAG,SAAS,CAOzF,CAAC;AAMF,eAAO,MAAM,WAAW,GAAI,CAAC,QAAQ,MAAM,QAAQ,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAe9E,CAAC;AA8DF,MAAM,WAAW,YAAY;IAGzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC9B;AAGD,eAAO,MAAM,eAAe,SAAgB,MAAM,WAAW,MAAM,GAAG,UAAU,SAAS,MAAM,YAAW,YAAY,KAAQ,OAAO,CAAC,IAAI,CAoBzI,CAAC;AAMF,eAAO,MAAM,mBAAmB,SAAU,MAAM,WAAW,MAAM,GAAG,UAAU,KAAG,IAQhF,CAAC;AAGF,eAAO,MAAM,QAAQ,qBAAyB,OAAO,CAAC,MAAM,CAStD,CAAC"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/node/fs.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,UAAU,SAAgB,MAAM,KAAG,OAAO,CAAC,OAAO,CAI1D,CAAC;AAKN,eAAO,MAAM,YAAY,SAAgB,MAAM,KAAG,OAAO,CAAC,SAAS,GAAG,QAAQ,GAAG,SAAS,CAOzF,CAAC;AAMF,eAAO,MAAM,WAAW,GAAI,CAAC,QAAQ,MAAM,QAAQ,MAAM,OAAO,CAAC,CAAC,CAAC,KAAG,OAAO,CAAC,CAAC,CAAkC,CAAC;AASlH,eAAO,MAAM,UAAU,SAAgB,MAAM,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAavE,CAAC;AAOF,eAAO,MAAM,SAAS,SAAU,MAAM,KAAG,MAAyF,CAAC;AAiCnI,eAAO,MAAM,aAAa,QAAe,MAAM,KAAG,OAAO,CAAC,IAAI,CAAiC,CAAC;AAEhG,MAAM,WAAW,sBAAsB;IAGnC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CAC1B;AAyBD,eAAO,MAAM,eAAe,SAAgB,QAAQ,CAAC,MAAM,CAAC,YAAW,sBAAsB,KAAQ,OAAO,CAAC,IAAI,CAQhH,CAAC;AAeF,MAAM,WAAW,YAAY;IAGzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAG3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAG3B,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACnE;AA0BD,eAAO,MAAM,eAAe,SAAgB,MAAM,WAAW,MAAM,GAAG,UAAU,SAAS,MAAM,YAAW,YAAY,KAAQ,OAAO,CAAC,IAAI,CACvC,CAAC;AAKpG,eAAO,MAAM,iBAAiB,SAAgB,MAAM,UAAU,QAAQ,CAAC,UAAU,CAAC,SAAS,MAAM,YAAW,YAAY,KAAQ,OAAO,CAAC,IAAI,CAWvI,CAAC;AAMN,eAAO,MAAM,mBAAmB,SAAU,MAAM,WAAW,MAAM,GAAG,UAAU,SAAS,MAAM,KAAG,IAW/F,CAAC;AAGF,eAAO,MAAM,QAAQ,qBAAyB,OAAO,CAAC,MAAM,CAStD,CAAC"}
package/dist/node/fs.js CHANGED
@@ -1,8 +1,10 @@
1
- import { renameSync, rmSync, writeFileSync } from "node:fs";
2
- import { access, chmod, mkdir, open, rename, rm, writeFile } from "node:fs/promises";
1
+ import { randomBytes } from "node:crypto";
2
+ import { chmodSync, renameSync, rmSync, writeFileSync } from "node:fs";
3
+ import { access, chmod, chown, mkdir, open, rename, rm } from "node:fs/promises";
3
4
  import { createServer } from "node:net";
4
5
  import { basename, dirname, join, resolve } from "node:path";
5
6
  import { setTimeout as sleep } from "node:timers/promises";
7
+ import { keyedLock } from "../async.js";
6
8
  import { errnoCode } from "../errors.js";
7
9
  export const pathExists = async (path) => access(path).then(() => true, () => false);
8
10
  export const pathPresence = async (path) => {
@@ -14,24 +16,12 @@ export const pathPresence = async (path) => {
14
16
  return errnoCode(error) === "ENOENT" ? "absent" : "unknown";
15
17
  }
16
18
  };
17
- const queues = new Map();
18
- export const queueOnFile = (path, task) => {
19
- const key = resolve(path);
20
- const next = (queues.get(key) ?? Promise.resolve()).then(task);
21
- const settled = next
22
- .then(() => undefined, () => undefined)
23
- .then(() => {
24
- if (queues.get(key) === settled) {
25
- queues.delete(key);
26
- }
27
- });
28
- queues.set(key, settled);
29
- return next;
30
- };
19
+ const fileLock = keyedLock();
20
+ export const queueOnFile = (path, task) => fileLock(resolve(path), task);
31
21
  const TRANSIENT_RENAME = new Set(["EPERM", "EACCES", "EBUSY"]);
32
22
  const RENAME_ATTEMPTS = 10;
33
23
  const RENAME_RETRY_MS = 25;
34
- const renameOver = async (from, to) => {
24
+ export const renameOver = async (from, to) => {
35
25
  for (let attempt = 1;; attempt++) {
36
26
  try {
37
27
  await rename(from, to);
@@ -45,62 +35,97 @@ const renameOver = async (from, to) => {
45
35
  }
46
36
  }
47
37
  };
48
- let writes = 0;
49
- const stagingOf = (path) => {
50
- writes += 1;
51
- return join(dirname(path), `.${basename(path)}.${process.pid}.${writes}.tmp`);
38
+ export const stagingOf = (path) => join(dirname(path), `.${basename(path)}.${randomBytes(6).toString("hex")}.tmp`);
39
+ const writeAll = async (handle, bytes) => {
40
+ for (let offset = 0; offset < bytes.byteLength;) {
41
+ const { bytesWritten } = await handle.write(bytes, offset, bytes.byteLength - offset);
42
+ if (bytesWritten === 0) {
43
+ throw new Error("file write made no progress");
44
+ }
45
+ offset += bytesWritten;
46
+ }
52
47
  };
53
- const writeDurably = async (staging, content, mode) => {
48
+ const writeStaged = async (staging, write, mode, durable) => {
54
49
  const handle = await open(staging, "w", mode);
55
50
  try {
56
- await handle.writeFile(content);
57
- await handle.sync();
51
+ await write(handle);
52
+ if (durable) {
53
+ await handle.sync();
54
+ }
58
55
  }
59
56
  finally {
60
57
  await handle.close();
61
58
  }
62
59
  };
63
- const syncDirectory = async (dir) => {
60
+ export const syncDirectory = async (dir) => await syncDirectories([dir]);
61
+ const directoriesToSync = (dirs, upTo) => {
62
+ const top = upTo === undefined ? undefined : resolve(upTo);
63
+ const seen = new Set();
64
+ for (const dir of dirs) {
65
+ for (let directory = resolve(dir); !seen.has(directory); directory = dirname(directory)) {
66
+ seen.add(directory);
67
+ const parent = dirname(directory);
68
+ if (top === undefined || directory === top || parent === directory || !isUnder(top, directory)) {
69
+ break;
70
+ }
71
+ }
72
+ }
73
+ return [...seen];
74
+ };
75
+ const isUnder = (top, path) => path === top || path.startsWith(top.endsWith("/") ? top : `${top}/`);
76
+ export const syncDirectories = async (dirs, options = {}) => {
64
77
  if (process.platform === "win32") {
65
78
  return;
66
79
  }
80
+ for (const directory of directoriesToSync(dirs, options.upTo)) {
81
+ await syncOne(directory);
82
+ }
83
+ };
84
+ const syncOne = async (directory) => {
67
85
  let handle;
68
86
  try {
69
- handle = await open(dir, "r");
87
+ handle = await open(directory, "r");
70
88
  await handle.sync();
71
89
  }
72
90
  catch {
73
91
  }
74
92
  finally {
75
- await handle?.close();
93
+ await handle?.close().catch(() => undefined);
76
94
  }
77
95
  };
78
- export const writeFileAtomic = async (path, content, mode, options = {}) => {
96
+ const replaceAtomically = async (path, write, mode, options) => {
79
97
  const staging = stagingOf(path);
80
98
  await mkdir(dirname(path), { recursive: true });
81
99
  try {
82
- if (options.durable === true) {
83
- await writeDurably(staging, content, mode);
84
- }
85
- else {
86
- await writeFile(staging, content, mode === undefined ? undefined : { mode });
100
+ await writeStaged(staging, write, mode, options.durable === true);
101
+ if (options.owner !== undefined) {
102
+ await chown(staging, options.owner.uid, options.owner.gid);
87
103
  }
88
104
  if (mode !== undefined) {
89
105
  await chmod(staging, mode);
90
106
  }
91
107
  await renameOver(staging, path);
92
- if (options.durable === true) {
93
- await syncDirectory(dirname(path));
94
- }
95
108
  }
96
109
  finally {
97
110
  await rm(staging, { force: true });
98
111
  }
112
+ if (options.durable === true) {
113
+ await syncDirectories([dirname(path)], options.syncUpTo === undefined ? {} : { upTo: options.syncUpTo });
114
+ }
99
115
  };
100
- export const writeFileAtomicSync = (path, content) => {
116
+ export const writeFileAtomic = async (path, content, mode, options = {}) => await replaceAtomically(path, async (handle) => await handle.writeFile(content), mode, options);
117
+ export const writeChunksAtomic = async (path, chunks, mode, options = {}) => await replaceAtomically(path, async (handle) => {
118
+ for (const chunk of chunks) {
119
+ await writeAll(handle, chunk);
120
+ }
121
+ }, mode, options);
122
+ export const writeFileAtomicSync = (path, content, mode) => {
101
123
  const staging = stagingOf(path);
102
124
  try {
103
- writeFileSync(staging, content);
125
+ writeFileSync(staging, content, mode === undefined ? undefined : { mode });
126
+ if (mode !== undefined) {
127
+ chmodSync(staging, mode);
128
+ }
104
129
  renameSync(staging, path);
105
130
  }
106
131
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/node/fs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/node/fs.ts"],"names":[],"mappings":"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"}