@zukhruf/mutex 0.3.10 → 0.3.12

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 (105) hide show
  1. package/README.md +13 -2
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/lock-stores/file-system/file-lock-store.d.ts +4 -0
  7. package/dist/lock-stores/file-system/file-lock-store.d.ts.map +1 -1
  8. package/dist/lock-stores/file-system/file-lock-store.js +11 -3
  9. package/dist/lock-stores/file-system/file-lock-store.js.map +1 -1
  10. package/dist/lock-stores/file-system/lock-file-store.d.ts +2 -0
  11. package/dist/lock-stores/file-system/lock-file-store.d.ts.map +1 -1
  12. package/dist/lock-stores/file-system/lock-file-store.js +7 -11
  13. package/dist/lock-stores/file-system/lock-file-store.js.map +1 -1
  14. package/dist/lock-stores/file-system/presence.d.ts +15 -5
  15. package/dist/lock-stores/file-system/presence.d.ts.map +1 -1
  16. package/dist/lock-stores/file-system/presence.js +32 -5
  17. package/dist/lock-stores/file-system/presence.js.map +1 -1
  18. package/dist/lock-stores/file-system/ticket-queue-file-store.d.ts +2 -0
  19. package/dist/lock-stores/file-system/ticket-queue-file-store.d.ts.map +1 -1
  20. package/dist/lock-stores/file-system/ticket-queue-file-store.js +5 -9
  21. package/dist/lock-stores/file-system/ticket-queue-file-store.js.map +1 -1
  22. package/dist/lock-stores/ipc/child-process-connection.d.ts +2 -2
  23. package/dist/lock-stores/ipc/child-process-connection.d.ts.map +1 -1
  24. package/dist/lock-stores/ipc/child-process-connection.js +2 -2
  25. package/dist/lock-stores/ipc/child-process-connection.js.map +1 -1
  26. package/dist/lock-stores/ipc/ipc-lock-coordinator.d.ts +1 -0
  27. package/dist/lock-stores/ipc/ipc-lock-coordinator.d.ts.map +1 -1
  28. package/dist/lock-stores/ipc/ipc-lock-coordinator.js +3 -0
  29. package/dist/lock-stores/ipc/ipc-lock-coordinator.js.map +1 -1
  30. package/dist/lock-stores/ipc/ipc-store.d.ts +1 -0
  31. package/dist/lock-stores/ipc/ipc-store.d.ts.map +1 -1
  32. package/dist/lock-stores/ipc/ipc-store.js +3 -0
  33. package/dist/lock-stores/ipc/ipc-store.js.map +1 -1
  34. package/dist/lock-stores/memory/memory-store.d.ts +2 -0
  35. package/dist/lock-stores/memory/memory-store.d.ts.map +1 -1
  36. package/dist/lock-stores/memory/memory-store.js +4 -0
  37. package/dist/lock-stores/memory/memory-store.js.map +1 -1
  38. package/dist/lock-stores/remote/lock-coordinator.d.ts +4 -2
  39. package/dist/lock-stores/remote/lock-coordinator.d.ts.map +1 -1
  40. package/dist/lock-stores/remote/lock-coordinator.js +22 -0
  41. package/dist/lock-stores/remote/lock-coordinator.js.map +1 -1
  42. package/dist/lock-stores/remote/protocol.d.ts +26 -0
  43. package/dist/lock-stores/remote/protocol.d.ts.map +1 -1
  44. package/dist/lock-stores/remote/protocol.js +18 -0
  45. package/dist/lock-stores/remote/protocol.js.map +1 -1
  46. package/dist/lock-stores/remote/queries.d.ts +20 -0
  47. package/dist/lock-stores/remote/queries.d.ts.map +1 -0
  48. package/dist/lock-stores/remote/queries.js +57 -0
  49. package/dist/lock-stores/remote/queries.js.map +1 -0
  50. package/dist/lock-stores/remote/remote-lock-client.d.ts +1 -0
  51. package/dist/lock-stores/remote/remote-lock-client.d.ts.map +1 -1
  52. package/dist/lock-stores/remote/remote-lock-client.js +20 -2
  53. package/dist/lock-stores/remote/remote-lock-client.js.map +1 -1
  54. package/dist/lock-stores/remote/unsupported-request-error.d.ts +7 -0
  55. package/dist/lock-stores/remote/unsupported-request-error.d.ts.map +1 -0
  56. package/dist/lock-stores/remote/unsupported-request-error.js +12 -0
  57. package/dist/lock-stores/remote/unsupported-request-error.js.map +1 -0
  58. package/dist/lock-stores/socket/advertised-ops-connection.d.ts +18 -0
  59. package/dist/lock-stores/socket/advertised-ops-connection.d.ts.map +1 -0
  60. package/dist/lock-stores/socket/advertised-ops-connection.js +37 -0
  61. package/dist/lock-stores/socket/advertised-ops-connection.js.map +1 -0
  62. package/dist/lock-stores/socket/electing-connector.d.ts.map +1 -1
  63. package/dist/lock-stores/socket/electing-connector.js +8 -4
  64. package/dist/lock-stores/socket/electing-connector.js.map +1 -1
  65. package/dist/lock-stores/socket/handshake.d.ts +6 -2
  66. package/dist/lock-stores/socket/handshake.d.ts.map +1 -1
  67. package/dist/lock-stores/socket/handshake.js +13 -4
  68. package/dist/lock-stores/socket/handshake.js.map +1 -1
  69. package/dist/lock-stores/socket/lock-server.js +2 -2
  70. package/dist/lock-stores/socket/lock-server.js.map +1 -1
  71. package/dist/lock-stores/socket/socket-store.d.ts +1 -0
  72. package/dist/lock-stores/socket/socket-store.d.ts.map +1 -1
  73. package/dist/lock-stores/socket/socket-store.js +3 -0
  74. package/dist/lock-stores/socket/socket-store.js.map +1 -1
  75. package/dist/lock-stores/sqlite/holder-record.d.ts +18 -0
  76. package/dist/lock-stores/sqlite/holder-record.d.ts.map +1 -0
  77. package/dist/lock-stores/sqlite/holder-record.js +85 -0
  78. package/dist/lock-stores/sqlite/holder-record.js.map +1 -0
  79. package/dist/lock-stores/sqlite/sqlite-store.d.ts +10 -1
  80. package/dist/lock-stores/sqlite/sqlite-store.d.ts.map +1 -1
  81. package/dist/lock-stores/sqlite/sqlite-store.js +40 -7
  82. package/dist/lock-stores/sqlite/sqlite-store.js.map +1 -1
  83. package/dist/lock-stores/thread/thread-lock-coordinator.d.ts +1 -0
  84. package/dist/lock-stores/thread/thread-lock-coordinator.d.ts.map +1 -1
  85. package/dist/lock-stores/thread/thread-lock-coordinator.js +3 -0
  86. package/dist/lock-stores/thread/thread-lock-coordinator.js.map +1 -1
  87. package/dist/lock-stores/thread/thread-store.d.ts +1 -0
  88. package/dist/lock-stores/thread/thread-store.d.ts.map +1 -1
  89. package/dist/lock-stores/thread/thread-store.js +3 -0
  90. package/dist/lock-stores/thread/thread-store.js.map +1 -1
  91. package/dist/lock-stores/thread/worker-connection.d.ts +2 -2
  92. package/dist/lock-stores/thread/worker-connection.d.ts.map +1 -1
  93. package/dist/lock-stores/thread/worker-connection.js +2 -2
  94. package/dist/lock-stores/thread/worker-connection.js.map +1 -1
  95. package/dist/mutex/key.d.ts +2 -0
  96. package/dist/mutex/key.d.ts.map +1 -1
  97. package/dist/mutex/key.js +4 -0
  98. package/dist/mutex/key.js.map +1 -1
  99. package/dist/mutex/lock-store.d.ts +7 -0
  100. package/dist/mutex/lock-store.d.ts.map +1 -1
  101. package/dist/mutex/mutex.d.ts +2 -0
  102. package/dist/mutex/mutex.d.ts.map +1 -1
  103. package/dist/mutex/mutex.js +4 -0
  104. package/dist/mutex/mutex.js.map +1 -1
  105. package/package.json +3 -1
@@ -25,6 +25,10 @@ export class Mutex {
25
25
  ? this.#run(key, task, wait, signal)
26
26
  : this.#run(key, task, mode, signal);
27
27
  }
28
+ /** Whether `key` has a holder now, learned without acquiring it. The holder can change before the answer arrives. */
29
+ isHeld(key) {
30
+ return this.#store.isHeld(key);
31
+ }
28
32
  key(name, { mode } = {}) {
29
33
  return mode === undefined
30
34
  ? new Key(this, name, wait)
@@ -1 +1 @@
1
- {"version":3,"file":"mutex.js","sourceRoot":"","sources":["../../src/mutex/mutex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mutex.js","sourceRoot":"","sources":["../../src/mutex/mutex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;AAE5B,MAAM,GAAG,GAAG,CAAI,KAAQ,EAAqB,EAAE,CAAC,CAAC;IAC/C,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE;CACjC,CAAC,CAAC;AAEH,6EAA6E;AAC7E,8EAA8E;AAC9E,MAAM,MAAM,GAAG,CAAI,GAAW,EAAqB,EAAE,CAAC,CAAC;IACrD,IAAI,MAAM;QACR,MAAM,IAAI,KAAK,CACb,6DAA6D,GAAG,IAAI,CACrE,CAAC;IACJ,CAAC;IACD,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;CAC3B,CAAC,CAAC;AAEH,MAAM,OAAO,KAAK;IACP,MAAM,CAAY;IAE3B,YAAY,KAAgB;QAC1B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAcD,OAAO,CACL,GAAW,EACX,IAAkC,EAClC,EACE,IAAI,EACJ,MAAM,MACoD,EAAE;QAE9D,OAAO,IAAI,KAAK,SAAS;YACvB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC;YACpC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,qHAAqH;IACrH,MAAM,CAAC,GAAW;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IASD,GAAG,CACD,IAAY,EACZ,EAAE,IAAI,KAA4C,EAAE;QAEpD,OAAO,IAAI,KAAK,SAAS;YACvB,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;YAC3B,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,wEAAwE;IACxE,4DAA4D;IAC5D,KAAK,CAAC,IAAI,CACR,GAAW,EACX,IAAkC,EAClC,IAAoB,EACpB,MAA+B;QAE/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM;YAAE,OAAO,MAAM,CAAI,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjD,YAAY,IAAI,GAAG,MAAM,CAAC;QAC1B,kEAAkE;QAClE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACrC,IAAI,KAAQ,CAAC;QACb,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM;gBAAE,MAAM,KAAK,CAAC;YACxD,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,gFAAgF;QAChF,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,CAAC,MAAM,CAAC;QACpC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,0EAA0E;IAC1E,+EAA+E;IAC/E,KAAK,CAAC,QAAQ,CACZ,GAAW,EACX,IAAiB,EACjB,MAA+B;QAE/B,MAAM,EAAE,cAAc,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC;YACH,OAAO,MAAM,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,EAAE,OAAO;gBAAE,KAAK,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,KAAK,UAAU,QAAQ,CAAC,SAA0C;IAChE,IAAI,CAAC;QACH,MAAM,CAAC,MAAM,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;IACzE,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zukhruf/mutex",
3
- "version": "0.3.10",
3
+ "version": "0.3.12",
4
4
  "description": "A mutex with interchangeable lock stores, from one object to every process on a host, with fencing tokens on every lease.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -24,11 +24,13 @@
24
24
  "exports": {
25
25
  "./package.json": "./package.json",
26
26
  ".": {
27
+ "@zukhruf/source": "./src/index.ts",
27
28
  "types": "./dist/index.d.ts",
28
29
  "import": "./dist/index.js",
29
30
  "default": "./dist/index.js"
30
31
  },
31
32
  "./leader-election": {
33
+ "@zukhruf/source": "./src/leader-election/index.ts",
32
34
  "types": "./dist/leader-election/index.d.ts",
33
35
  "import": "./dist/leader-election/index.js",
34
36
  "default": "./dist/leader-election/index.js"