@jonloucks/concurrency-ts 0.4.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 (174) hide show
  1. package/README.md +248 -0
  2. package/api/Completable.d.ts +51 -0
  3. package/api/Completable.d.ts.map +1 -0
  4. package/api/Completable.js +11 -0
  5. package/api/Completable.js.map +1 -0
  6. package/api/CompletableFactory.d.ts +29 -0
  7. package/api/CompletableFactory.d.ts.map +1 -0
  8. package/api/CompletableFactory.js +19 -0
  9. package/api/CompletableFactory.js.map +1 -0
  10. package/api/Completion.d.ts +18 -0
  11. package/api/Completion.d.ts.map +1 -0
  12. package/api/Completion.js +2 -0
  13. package/api/Completion.js.map +1 -0
  14. package/api/CompletionNotify.d.ts +23 -0
  15. package/api/CompletionNotify.d.ts.map +1 -0
  16. package/api/CompletionNotify.js +11 -0
  17. package/api/CompletionNotify.js.map +1 -0
  18. package/api/CompletionState.d.ts +35 -0
  19. package/api/CompletionState.d.ts.map +1 -0
  20. package/api/CompletionState.js +64 -0
  21. package/api/CompletionState.js.map +1 -0
  22. package/api/Concurrency.d.ts +90 -0
  23. package/api/Concurrency.d.ts.map +1 -0
  24. package/api/Concurrency.js +19 -0
  25. package/api/Concurrency.js.map +1 -0
  26. package/api/ConcurrencyException.d.ts +27 -0
  27. package/api/ConcurrencyException.d.ts.map +1 -0
  28. package/api/ConcurrencyException.js +53 -0
  29. package/api/ConcurrencyException.js.map +1 -0
  30. package/api/ConcurrencyFactory.d.ts +41 -0
  31. package/api/ConcurrencyFactory.d.ts.map +1 -0
  32. package/api/ConcurrencyFactory.js +19 -0
  33. package/api/ConcurrencyFactory.js.map +1 -0
  34. package/api/IsCompleted.d.ts +20 -0
  35. package/api/IsCompleted.d.ts.map +1 -0
  36. package/api/IsCompleted.js +11 -0
  37. package/api/IsCompleted.js.map +1 -0
  38. package/api/OnCompletion.d.ts +23 -0
  39. package/api/OnCompletion.d.ts.map +1 -0
  40. package/api/OnCompletion.js +12 -0
  41. package/api/OnCompletion.js.map +1 -0
  42. package/api/Rule.d.ts +28 -0
  43. package/api/Rule.d.ts.map +1 -0
  44. package/api/Rule.js +11 -0
  45. package/api/Rule.js.map +1 -0
  46. package/api/StateMachine.d.ts +95 -0
  47. package/api/StateMachine.d.ts.map +1 -0
  48. package/api/StateMachine.js +13 -0
  49. package/api/StateMachine.js.map +1 -0
  50. package/api/StateMachineFactory.d.ts +29 -0
  51. package/api/StateMachineFactory.d.ts.map +1 -0
  52. package/api/StateMachineFactory.js +19 -0
  53. package/api/StateMachineFactory.js.map +1 -0
  54. package/api/TimeoutException.d.ts +21 -0
  55. package/api/TimeoutException.d.ts.map +1 -0
  56. package/api/TimeoutException.js +27 -0
  57. package/api/TimeoutException.js.map +1 -0
  58. package/api/Transition.d.ts +44 -0
  59. package/api/Transition.d.ts.map +1 -0
  60. package/api/Transition.js +11 -0
  61. package/api/Transition.js.map +1 -0
  62. package/api/Types.d.ts +27 -0
  63. package/api/Types.d.ts.map +1 -0
  64. package/api/Types.js +28 -0
  65. package/api/Types.js.map +1 -0
  66. package/api/Waitable.d.ts +39 -0
  67. package/api/Waitable.d.ts.map +1 -0
  68. package/api/Waitable.js +17 -0
  69. package/api/Waitable.js.map +1 -0
  70. package/api/WaitableConsumer.d.ts +54 -0
  71. package/api/WaitableConsumer.d.ts.map +1 -0
  72. package/api/WaitableConsumer.js +11 -0
  73. package/api/WaitableConsumer.js.map +1 -0
  74. package/api/WaitableFactory.d.ts +29 -0
  75. package/api/WaitableFactory.d.ts.map +1 -0
  76. package/api/WaitableFactory.js +19 -0
  77. package/api/WaitableFactory.js.map +1 -0
  78. package/api/WaitableNotify.d.ts +31 -0
  79. package/api/WaitableNotify.d.ts.map +1 -0
  80. package/api/WaitableNotify.js +12 -0
  81. package/api/WaitableNotify.js.map +1 -0
  82. package/api/WaitableSupplier.d.ts +53 -0
  83. package/api/WaitableSupplier.d.ts.map +1 -0
  84. package/api/WaitableSupplier.js +11 -0
  85. package/api/WaitableSupplier.js.map +1 -0
  86. package/auxiliary/Checks.d.ts +116 -0
  87. package/auxiliary/Checks.d.ts.map +1 -0
  88. package/auxiliary/Checks.js +145 -0
  89. package/auxiliary/Checks.js.map +1 -0
  90. package/auxiliary/Consumer.d.ts +45 -0
  91. package/auxiliary/Consumer.d.ts.map +1 -0
  92. package/auxiliary/Consumer.js +45 -0
  93. package/auxiliary/Consumer.js.map +1 -0
  94. package/auxiliary/Predicate.d.ts +55 -0
  95. package/auxiliary/Predicate.d.ts.map +1 -0
  96. package/auxiliary/Predicate.js +73 -0
  97. package/auxiliary/Predicate.js.map +1 -0
  98. package/auxiliary/Supplier.d.ts +52 -0
  99. package/auxiliary/Supplier.d.ts.map +1 -0
  100. package/auxiliary/Supplier.js +67 -0
  101. package/auxiliary/Supplier.js.map +1 -0
  102. package/impl/Completable.impl.d.ts +10 -0
  103. package/impl/Completable.impl.d.ts.map +1 -0
  104. package/impl/Completable.impl.js +136 -0
  105. package/impl/Completable.impl.js.map +1 -0
  106. package/impl/CompletableFactory.impl.d.ts +9 -0
  107. package/impl/CompletableFactory.impl.d.ts.map +1 -0
  108. package/impl/CompletableFactory.impl.js +42 -0
  109. package/impl/CompletableFactory.impl.js.map +1 -0
  110. package/impl/CompleteLater.impl.d.ts +12 -0
  111. package/impl/CompleteLater.impl.d.ts.map +1 -0
  112. package/impl/CompleteLater.impl.js +31 -0
  113. package/impl/CompleteLater.impl.js.map +1 -0
  114. package/impl/CompleteNow.impl.d.ts +14 -0
  115. package/impl/CompleteNow.impl.d.ts.map +1 -0
  116. package/impl/CompleteNow.impl.js +33 -0
  117. package/impl/CompleteNow.impl.js.map +1 -0
  118. package/impl/Concurrency.impl.d.ts +9 -0
  119. package/impl/Concurrency.impl.d.ts.map +1 -0
  120. package/impl/Concurrency.impl.js +84 -0
  121. package/impl/Concurrency.impl.js.map +1 -0
  122. package/impl/ConcurrencyFactory.impl.d.ts +10 -0
  123. package/impl/ConcurrencyFactory.impl.d.ts.map +1 -0
  124. package/impl/ConcurrencyFactory.impl.js +74 -0
  125. package/impl/ConcurrencyFactory.impl.js.map +1 -0
  126. package/impl/ConcurrencyWrapper.impl.d.ts +13 -0
  127. package/impl/ConcurrencyWrapper.impl.d.ts.map +1 -0
  128. package/impl/ConcurrencyWrapper.impl.js +85 -0
  129. package/impl/ConcurrencyWrapper.impl.js.map +1 -0
  130. package/impl/Events.d.ts +25 -0
  131. package/impl/Events.d.ts.map +1 -0
  132. package/impl/Events.impl.d.ts +11 -0
  133. package/impl/Events.impl.d.ts.map +1 -0
  134. package/impl/Events.impl.js +63 -0
  135. package/impl/Events.impl.js.map +1 -0
  136. package/impl/Events.js +3 -0
  137. package/impl/Events.js.map +1 -0
  138. package/impl/ExposedPromise.d.ts +26 -0
  139. package/impl/ExposedPromise.d.ts.map +1 -0
  140. package/impl/ExposedPromise.impl.d.ts +9 -0
  141. package/impl/ExposedPromise.impl.d.ts.map +1 -0
  142. package/impl/ExposedPromise.impl.js +41 -0
  143. package/impl/ExposedPromise.impl.js.map +1 -0
  144. package/impl/ExposedPromise.js +2 -0
  145. package/impl/ExposedPromise.js.map +1 -0
  146. package/impl/Internal.impl.d.ts +35 -0
  147. package/impl/Internal.impl.d.ts.map +1 -0
  148. package/impl/Internal.impl.js +90 -0
  149. package/impl/Internal.impl.js.map +1 -0
  150. package/impl/StateMachine.impl.d.ts +9 -0
  151. package/impl/StateMachine.impl.d.ts.map +1 -0
  152. package/impl/StateMachine.impl.js +184 -0
  153. package/impl/StateMachine.impl.js.map +1 -0
  154. package/impl/StateMachineFactory.impl.d.ts +9 -0
  155. package/impl/StateMachineFactory.impl.d.ts.map +1 -0
  156. package/impl/StateMachineFactory.impl.js +43 -0
  157. package/impl/StateMachineFactory.impl.js.map +1 -0
  158. package/impl/Waitable.impl.d.ts +8 -0
  159. package/impl/Waitable.impl.d.ts.map +1 -0
  160. package/impl/Waitable.impl.js +212 -0
  161. package/impl/Waitable.impl.js.map +1 -0
  162. package/impl/WaitableFactory.impl.d.ts +9 -0
  163. package/impl/WaitableFactory.impl.d.ts.map +1 -0
  164. package/impl/WaitableFactory.impl.js +42 -0
  165. package/impl/WaitableFactory.impl.js.map +1 -0
  166. package/index.d.ts +25 -0
  167. package/index.d.ts.map +1 -0
  168. package/index.js +33 -0
  169. package/index.js.map +1 -0
  170. package/package.json +88 -0
  171. package/version.d.ts +3 -0
  172. package/version.d.ts.map +1 -0
  173. package/version.js +4 -0
  174. package/version.js.map +1 -0
@@ -0,0 +1,212 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _WaitableImpl_isOpen, _WaitableImpl_reference, _WaitableImpl_valueObservers;
13
+ import { ConcurrencyException } from "@jonloucks/concurrency-ts/api/ConcurrencyException";
14
+ import { fromType as consumerFromType } from "@jonloucks/concurrency-ts/auxiliary/Consumer";
15
+ import { fromType as predicateFromType } from "@jonloucks/concurrency-ts/auxiliary/Predicate";
16
+ import { fromType as supplierFromType } from "@jonloucks/concurrency-ts/auxiliary/Supplier";
17
+ import { createAtomicBoolean, createAtomicReference } from "@jonloucks/contracts-ts/auxiliary/Convenience";
18
+ import { IllegalStateException } from "@jonloucks/contracts-ts/auxiliary/IllegalStateException";
19
+ import { AUTO_CLOSE_NONE, inlineAutoClose } from "@jonloucks/contracts-ts/api/AutoClose";
20
+ import { create as createExposedPromise } from "./ExposedPromise.impl.js";
21
+ import { Internal } from "./Internal.impl.js";
22
+ /**
23
+ * Create a new Waitable
24
+ *
25
+ * @return the new Waitable
26
+ */
27
+ export function create(config) {
28
+ return WaitableImpl.internalCreate(config);
29
+ }
30
+ ;
31
+ const CLOSED_EXCEPTION = new ConcurrencyException("Waitable is closed.");
32
+ class WaitableImpl {
33
+ open() {
34
+ if (__classPrivateFieldGet(this, _WaitableImpl_isOpen, "f").compareAndSet(false, true)) {
35
+ return inlineAutoClose(() => {
36
+ if (__classPrivateFieldGet(this, _WaitableImpl_isOpen, "f").compareAndSet(true, false)) {
37
+ this.closeAllListeners();
38
+ }
39
+ });
40
+ }
41
+ else {
42
+ return AUTO_CLOSE_NONE;
43
+ }
44
+ }
45
+ ;
46
+ // WaitableSupplier.supply implementations
47
+ supply() {
48
+ const value = __classPrivateFieldGet(this, _WaitableImpl_reference, "f").get();
49
+ // if (value === undefined || value === null) {
50
+ // throw new IllegalStateException("No value is currently available in Waitable.");
51
+ // }
52
+ return value;
53
+ }
54
+ // WaitableSupplier.supplyIf implementation
55
+ supplyIf(predicate) {
56
+ const validPredicate = predicateFromType(predicate);
57
+ const currentValue = __classPrivateFieldGet(this, _WaitableImpl_reference, "f").get();
58
+ if (validPredicate.test(currentValue)) {
59
+ return currentValue;
60
+ }
61
+ else {
62
+ return undefined;
63
+ }
64
+ }
65
+ // WaitableSupplier.supplyWhen implementation
66
+ async supplyWhen(predicate, timeout) {
67
+ if (!this.isOpen()) {
68
+ return Promise.reject(CLOSED_EXCEPTION);
69
+ }
70
+ const validPredicate = predicateFromType(predicate);
71
+ const firstNotify = createAtomicBoolean(true);
72
+ const exposedPromise = createExposedPromise();
73
+ const removeListener = (v) => {
74
+ __classPrivateFieldGet(this, _WaitableImpl_valueObservers, "f").delete(v);
75
+ };
76
+ const valueObserver = {
77
+ observeValue: function (value) {
78
+ if (validPredicate.test(value) && firstNotify.getAndSet(false)) {
79
+ removeListener(this);
80
+ exposedPromise.resolve(value);
81
+ }
82
+ },
83
+ close: function () {
84
+ removeListener(this);
85
+ exposedPromise.reject(CLOSED_EXCEPTION);
86
+ }
87
+ };
88
+ // maybe have the timeout delete the observer as well
89
+ const returnPromise = Internal.wrapPromiseWithTimeout(exposedPromise.getPromise(), timeout);
90
+ __classPrivateFieldGet(this, _WaitableImpl_valueObservers, "f").add(valueObserver);
91
+ valueObserver.observeValue(this.supply());
92
+ return returnPromise;
93
+ }
94
+ // WaitableConsumer.consume implementations
95
+ consume(value) {
96
+ this.setValue(supplierFromType(value).supply());
97
+ }
98
+ // WaitableConsumer.consumeIf implementation
99
+ consumeIf(predicate, value) {
100
+ const validPredicate = predicateFromType(predicate);
101
+ const validValueSupplier = supplierFromType(value);
102
+ const currentValue = __classPrivateFieldGet(this, _WaitableImpl_reference, "f").get();
103
+ if (validPredicate.test(currentValue)) {
104
+ const newValue = validValueSupplier.supply();
105
+ this.setValue(newValue);
106
+ return newValue;
107
+ }
108
+ else {
109
+ return undefined;
110
+ }
111
+ }
112
+ // WaitableConsumer.consumeWhen implementation
113
+ async consumeWhen(predicate, value, timeout) {
114
+ if (!this.isOpen()) {
115
+ return Promise.reject(CLOSED_EXCEPTION);
116
+ }
117
+ const validPredicate = predicateFromType(predicate);
118
+ const validValueSupplier = supplierFromType(value);
119
+ const firstNotify = createAtomicBoolean(true);
120
+ const exposedPromise = createExposedPromise();
121
+ const removeListener = (v) => {
122
+ __classPrivateFieldGet(this, _WaitableImpl_valueObservers, "f").delete(v);
123
+ };
124
+ const setTheValue = (v) => {
125
+ this.setValue(v);
126
+ };
127
+ const valueObserver = {
128
+ observeValue: function (value) {
129
+ if (validPredicate.test(value) && firstNotify.getAndSet(false)) {
130
+ const suppliedValue = validValueSupplier.supply();
131
+ setTheValue(suppliedValue);
132
+ removeListener(this);
133
+ exposedPromise.resolve(suppliedValue);
134
+ }
135
+ },
136
+ close: function () {
137
+ removeListener(this);
138
+ exposedPromise.reject(CLOSED_EXCEPTION);
139
+ }
140
+ };
141
+ const returnPromise = Internal.wrapPromiseWithTimeout(exposedPromise.getPromise(), timeout);
142
+ __classPrivateFieldGet(this, _WaitableImpl_valueObservers, "f").add(valueObserver);
143
+ valueObserver.observeValue(this.supply());
144
+ return returnPromise;
145
+ }
146
+ // WaitableNotify.notifyWhile implementation
147
+ notifyWhile(predicate, listener) {
148
+ this.assertOpen();
149
+ const validPredicate = predicateFromType(predicate);
150
+ const notifyCallback = consumerFromType(listener);
151
+ const firstClose = createAtomicBoolean(true);
152
+ const isLive = createAtomicBoolean(true);
153
+ const removeListener = (v) => {
154
+ __classPrivateFieldGet(this, _WaitableImpl_valueObservers, "f").delete(v);
155
+ };
156
+ const valueObserver = {
157
+ observeValue: function (value) {
158
+ if (!isLive.get() || !validPredicate.test(value)) {
159
+ return;
160
+ }
161
+ notifyCallback.consume(value);
162
+ },
163
+ close: function () {
164
+ if (firstClose.compareAndSet(true, false)) {
165
+ isLive.set(false);
166
+ removeListener(this);
167
+ }
168
+ }
169
+ };
170
+ __classPrivateFieldGet(this, _WaitableImpl_valueObservers, "f").add(valueObserver);
171
+ valueObserver.observeValue(this.supply());
172
+ return inlineAutoClose(() => {
173
+ valueObserver.close();
174
+ });
175
+ }
176
+ static internalCreate(config) {
177
+ return new WaitableImpl(config);
178
+ }
179
+ constructor(config) {
180
+ _WaitableImpl_isOpen.set(this, createAtomicBoolean(false));
181
+ _WaitableImpl_reference.set(this, void 0);
182
+ _WaitableImpl_valueObservers.set(this, new Set());
183
+ const actualConfig = config ? config : {};
184
+ __classPrivateFieldSet(this, _WaitableImpl_reference, createAtomicReference(actualConfig.initialValue), "f");
185
+ }
186
+ isOpen() {
187
+ return __classPrivateFieldGet(this, _WaitableImpl_isOpen, "f").get();
188
+ }
189
+ setValue(newValue) {
190
+ const oldValue = __classPrivateFieldGet(this, _WaitableImpl_reference, "f").getAndSet(newValue);
191
+ if (oldValue !== newValue) {
192
+ this.notifyListeners(newValue);
193
+ }
194
+ }
195
+ notifyListeners(newValue) {
196
+ for (const valueObserver of __classPrivateFieldGet(this, _WaitableImpl_valueObservers, "f")) {
197
+ valueObserver.observeValue(newValue);
198
+ }
199
+ }
200
+ closeAllListeners() {
201
+ for (const valueObserver of __classPrivateFieldGet(this, _WaitableImpl_valueObservers, "f")) {
202
+ valueObserver.close();
203
+ }
204
+ }
205
+ assertOpen() {
206
+ if (!__classPrivateFieldGet(this, _WaitableImpl_isOpen, "f").get()) {
207
+ throw new IllegalStateException("Waitable must be open.");
208
+ }
209
+ }
210
+ }
211
+ _WaitableImpl_isOpen = new WeakMap(), _WaitableImpl_reference = new WeakMap(), _WaitableImpl_valueObservers = new WeakMap();
212
+ //# sourceMappingURL=Waitable.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Waitable.impl.js","sourceRoot":"","sources":["../../src/impl/Waitable.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAG1F,OAAO,EAAY,QAAQ,IAAI,gBAAgB,EAAwB,MAAM,8CAA8C,CAAC;AAC5H,OAAO,EAAa,QAAQ,IAAI,iBAAiB,EAAyB,MAAM,+CAA+C,CAAC;AAChI,OAAO,EAAY,QAAQ,IAAI,gBAAgB,EAAwB,MAAM,8CAA8C,CAAC;AAC5H,OAAO,EAAkC,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AAC3I,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAChG,OAAO,EAAa,eAAe,EAAS,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAG3G,OAAO,EAAE,MAAM,IAAI,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAI,MAAkB;IAC1C,OAAO,YAAY,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAMA,CAAC;AAEF,MAAM,gBAAgB,GAAyB,IAAI,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;AAE/F,MAAM,YAAY;IAEhB,IAAI;QACF,IAAI,uBAAA,IAAI,4BAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC;YAC5C,OAAO,eAAe,CAAC,GAAS,EAAE;gBAChC,IAAI,uBAAA,IAAI,4BAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;IAAA,CAAC;IAEF,0CAA0C;IAC1C,MAAM;QACJ,MAAM,KAAK,GAAG,uBAAA,IAAI,+BAAW,CAAC,GAAG,EAAE,CAAC;QACpC,+CAA+C;QAC/C,qFAAqF;QACrF,IAAI;QACJ,OAAO,KAAU,CAAC;IACpB,CAAC;IAED,2CAA2C;IAC3C,QAAQ,CAAC,SAA2B;QAClC,MAAM,cAAc,GAA+B,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAChF,MAAM,YAAY,GAAoB,uBAAA,IAAI,+BAAW,CAAC,GAAG,EAAE,CAAC;QAC5D,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,OAAO,YAAY,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,UAAU,CAAC,SAAyC,EAAE,OAAkB;QAC5E,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,cAAc,GAA+B,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAChF,MAAM,WAAW,GAAkB,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAsB,oBAAoB,EAAE,CAAC;QACjE,MAAM,cAAc,GAAG,CAAC,CAAmB,EAAQ,EAAE;YACnD,uBAAA,IAAI,oCAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;QAEF,MAAM,aAAa,GAAqB;YACtC,YAAY,EAAE,UAAU,KAAQ;gBAC9B,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/D,cAAc,CAAC,IAAI,CAAC,CAAC;oBACrB,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;YACD,KAAK,EAAE;gBACL,cAAc,CAAC,IAAI,CAAC,CAAC;gBACrB,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC;QAEF,qDAAqD;QAErD,MAAM,aAAa,GAAe,QAAQ,CAAC,sBAAsB,CAC/D,cAAc,CAAC,UAAU,EAAE,EAC3B,OAAO,CACR,CAAC;QAEF,uBAAA,IAAI,oCAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,2CAA2C;IAC3C,OAAO,CAAC,KAAsB;QAC5B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,4CAA4C;IAC5C,SAAS,CAAC,SAAyC,EAAE,KAAsB;QACzE,MAAM,cAAc,GAA+B,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAChF,MAAM,kBAAkB,GAAgB,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,YAAY,GAAoB,uBAAA,IAAI,+BAAW,CAAC,GAAG,EAAE,CAAC;QAC5D,IAAI,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAM,kBAAkB,CAAC,MAAM,EAAE,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,QAAQ,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,WAAW,CAAC,SAAyC,EAAE,KAAsB,EAAE,OAAkB;QACrG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,cAAc,GAA+B,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAChF,MAAM,kBAAkB,GAAgB,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,WAAW,GAAkB,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAoC,oBAAoB,EAAE,CAAC;QAC/E,MAAM,cAAc,GAAG,CAAC,CAAmB,EAAQ,EAAE;YACnD,uBAAA,IAAI,oCAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,MAAM,WAAW,GAAiC,CAAC,CAAkB,EAAQ,EAAE;YAC7E,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC,CAAC;QAEF,MAAM,aAAa,GAAqB;YACtC,YAAY,EAAE,UAAU,KAAQ;gBAC9B,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC/D,MAAM,aAAa,GAAoB,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBACnE,WAAW,CAAC,aAAa,CAAC,CAAC;oBAC3B,cAAc,CAAC,IAAI,CAAC,CAAC;oBACrB,cAAc,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,KAAK,EAAE;gBACL,cAAc,CAAC,IAAI,CAAC,CAAC;gBACrB,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC;QAEF,MAAM,aAAa,GAA6B,QAAQ,CAAC,sBAAsB,CAC7E,cAAc,CAAC,UAAU,EAAE,EAC3B,OAAO,CACR,CAAC;QAEF,uBAAA,IAAI,oCAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE1C,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,4CAA4C;IAC5C,WAAW,CAAC,SAAyC,EAAE,QAAuC;QAC5F,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,MAAM,cAAc,GAA+B,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAChF,MAAM,cAAc,GAAgB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAkB,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAkB,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,cAAc,GAAG,CAAC,CAAmB,EAAQ,EAAE;YACnD,uBAAA,IAAI,oCAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC;QACF,MAAM,aAAa,GAAqB;YACtC,YAAY,EAAE,UAAU,KAAQ;gBAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjD,OAAO;gBACT,CAAC;gBACD,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;YACD,KAAK,EAAE;gBACL,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBAClB,cAAc,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;SACF,CAAC;QAEF,uBAAA,IAAI,oCAAgB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1C,OAAO,eAAe,CAAC,GAAS,EAAE;YAChC,aAAa,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,cAAc,CAAI,MAAgC;QACvD,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,YAAoB,MAAkB;QAmC7B,+BAAyB,mBAAmB,CAAC,KAAK,CAAC,EAAA;QACnD,0CAA6C;QAC7C,uCAA+C,IAAI,GAAG,EAA0B,EAAC;QApCxF,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1C,uBAAA,IAAI,2BAAc,qBAAqB,CAAkB,YAAY,CAAC,YAAY,CAAC,MAAA,CAAC;IACtF,CAAC;IAEO,MAAM;QACZ,OAAO,uBAAA,IAAI,4BAAQ,CAAC,GAAG,EAAE,CAAC;IAC5B,CAAC;IAEO,QAAQ,CAAC,QAAyB;QACxC,MAAM,QAAQ,GAAoB,uBAAA,IAAI,+BAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,QAAyB;QAC/C,KAAK,MAAM,aAAa,IAAI,uBAAA,IAAI,oCAAgB,EAAE,CAAC;YACjD,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,KAAK,MAAM,aAAa,IAAI,uBAAA,IAAI,oCAAgB,EAAE,CAAC;YACjD,aAAa,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,uBAAA,IAAI,4BAAQ,CAAC,GAAG,EAAE,EAAE,CAAC;YACxB,MAAM,IAAI,qBAAqB,CAAC,wBAAwB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;CAKF"}
@@ -0,0 +1,9 @@
1
+ import { WaitableFactory } from "@jonloucks/concurrency-ts/api/WaitableFactory";
2
+ import { Config as ConcurrencyConfig } from "@jonloucks/concurrency-ts/api/Concurrency";
3
+ /**
4
+ * Create a new WaitableFactory
5
+ *
6
+ * @return the new WaitableFactory
7
+ */
8
+ export declare function create(config: ConcurrencyConfig): WaitableFactory;
9
+ //# sourceMappingURL=WaitableFactory.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaitableFactory.impl.d.ts","sourceRoot":"","sources":["../../src/impl/WaitableFactory.impl.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAChF,OAAO,EAAE,MAAM,IAAI,iBAAiB,EAAa,MAAM,2CAA2C,CAAC;AAKnG;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAEjE"}
@@ -0,0 +1,42 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _WaitableFactoryImpl_concurrencyConfig;
13
+ import { create as createWaitableImpl } from "./Waitable.impl.js";
14
+ import { Internal } from "./Internal.impl.js";
15
+ /**
16
+ * Create a new WaitableFactory
17
+ *
18
+ * @return the new WaitableFactory
19
+ */
20
+ export function create(config) {
21
+ return WaitableFactoryImpl.internalCreate(config);
22
+ }
23
+ // ---- Implementation details below ----
24
+ class WaitableFactoryImpl {
25
+ createWaitable(config) {
26
+ const validConfig = config ?? {};
27
+ const contracts = Internal.resolveContracts(validConfig, __classPrivateFieldGet(this, _WaitableFactoryImpl_concurrencyConfig, "f"));
28
+ const finalConfig = { ...validConfig, contracts: contracts };
29
+ return createWaitableImpl(finalConfig);
30
+ }
31
+ static internalCreate(config) {
32
+ return new WaitableFactoryImpl(config);
33
+ }
34
+ constructor(config) {
35
+ _WaitableFactoryImpl_concurrencyConfig.set(this, void 0);
36
+ const contracts = Internal.resolveContracts(config);
37
+ __classPrivateFieldSet(this, _WaitableFactoryImpl_concurrencyConfig, { ...config, contracts: contracts }, "f");
38
+ }
39
+ }
40
+ _WaitableFactoryImpl_concurrencyConfig = new WeakMap();
41
+ ;
42
+ //# sourceMappingURL=WaitableFactory.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WaitableFactory.impl.js","sourceRoot":"","sources":["../../src/impl/WaitableFactory.impl.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,OAAO,EAAE,MAAM,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,MAAyB;IAC9C,OAAO,mBAAmB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,yCAAyC;AAEzC,MAAM,mBAAmB;IACvB,cAAc,CAAI,MAA0B;QAC1C,MAAM,WAAW,GAAG,MAAM,IAAI,EAAE,CAAC;QACjC,MAAM,SAAS,GAAc,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,uBAAA,IAAI,8CAAmB,CAAC,CAAC;QAC7F,MAAM,WAAW,GAAsB,EAAE,GAAG,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;QAChF,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,MAAyB;QAC7C,OAAO,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,YAAoB,MAAyB;QAKpC,yDAAsC;QAJ7C,MAAM,SAAS,GAAc,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC/D,uBAAA,IAAI,0CAAsB,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAA,CAAC;IAChE,CAAC;CAGF;;AAAA,CAAC"}
package/index.d.ts ADDED
@@ -0,0 +1,25 @@
1
+ import { ConcurrencyException } from "@jonloucks/concurrency-ts/api/ConcurrencyException";
2
+ import { create as createConcurrencyFactory } from "./impl/ConcurrencyFactory.impl.js";
3
+ import { VERSION } from "./version.js";
4
+ import { Concurrency, ConcurrencyConfig, CONTRACT as CONCURRENCY_CONTRACT } from "@jonloucks/concurrency-ts/api/Concurrency";
5
+ import { ConcurrencyFactory } from "@jonloucks/concurrency-ts/api/ConcurrencyFactory";
6
+ /**
7
+ * A shared global ConcurrencyFactory instance.
8
+ */
9
+ declare const CONCURRENCY_FACTORY: ConcurrencyFactory;
10
+ /**
11
+ * Create a new Concurrency instance
12
+ * @param config the Concurrency Config
13
+ *
14
+ * @return the new Concurrency instance
15
+ */
16
+ declare function createConcurrency(config?: ConcurrencyConfig): Concurrency;
17
+ /**
18
+ * A shared global Concurrency instance.
19
+ */
20
+ declare const CONCURRENCY: Concurrency;
21
+ /**
22
+ * concurrency-ts main index exports
23
+ */
24
+ export { VERSION, type Concurrency, type ConcurrencyConfig, type ConcurrencyFactory, ConcurrencyException, createConcurrencyFactory, createConcurrency, CONCURRENCY, CONCURRENCY_CONTRACT, CONCURRENCY_FACTORY };
25
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC1F,OAAO,EAAE,MAAM,IAAI,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAC7H,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAEtF;;GAEG;AACH,QAAA,MAAM,mBAAmB,EAAE,kBAAiD,CAAC;AAE7E;;;;;GAKG;AACH,iBAAS,iBAAiB,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,WAAW,CAElE;AAED;;GAEG;AACH,QAAA,MAAM,WAAW,EAAG,WAOhB,CAAC;AAEL;;GAEG;AACH,OAAO,EACL,OAAO,EACP,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACpB,CAAC"}
package/index.js ADDED
@@ -0,0 +1,33 @@
1
+ import { ConcurrencyException } from "@jonloucks/concurrency-ts/api/ConcurrencyException";
2
+ import { create as createConcurrencyFactory } from "./impl/ConcurrencyFactory.impl.js";
3
+ import { VERSION } from "./version.js";
4
+ import { CONTRACT as CONCURRENCY_CONTRACT } from "@jonloucks/concurrency-ts/api/Concurrency";
5
+ /**
6
+ * A shared global ConcurrencyFactory instance.
7
+ */
8
+ const CONCURRENCY_FACTORY = createConcurrencyFactory({});
9
+ /**
10
+ * Create a new Concurrency instance
11
+ * @param config the Concurrency Config
12
+ *
13
+ * @return the new Concurrency instance
14
+ */
15
+ function createConcurrency(config) {
16
+ return CONCURRENCY_FACTORY.createConcurrency(config);
17
+ }
18
+ /**
19
+ * A shared global Concurrency instance.
20
+ */
21
+ const CONCURRENCY = (() => {
22
+ const globalConfig = {
23
+ shutdownEvents: ['exit']
24
+ };
25
+ const concurrency = createConcurrency(globalConfig);
26
+ concurrency.open(); // closed on exit
27
+ return concurrency;
28
+ })();
29
+ /**
30
+ * concurrency-ts main index exports
31
+ */
32
+ export { VERSION, ConcurrencyException, createConcurrencyFactory, createConcurrency, CONCURRENCY, CONCURRENCY_CONTRACT, CONCURRENCY_FACTORY };
33
+ //# sourceMappingURL=index.js.map
package/index.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAC1F,OAAO,EAAE,MAAM,IAAI,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAkC,QAAQ,IAAI,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAG7H;;GAEG;AACH,MAAM,mBAAmB,GAAuB,wBAAwB,CAAC,EAAE,CAAC,CAAC;AAE7E;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,MAA0B;IACnD,OAAO,mBAAmB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,MAAM,WAAW,GAAiB,CAAC,GAAiB,EAAE;IAClD,MAAM,YAAY,GAAuB;QACvC,cAAc,EAAE,CAAC,MAAM,CAAC;KACzB,CAAC;IACF,MAAM,WAAW,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACpD,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,iBAAiB;IACrC,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC,EAAE,CAAC;AAEL;;GAEG;AACH,OAAO,EACL,OAAO,EAIP,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,mBAAmB,EACpB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,88 @@
1
+ {
2
+ "name": "@jonloucks/concurrency-ts",
3
+ "version": "0.4.0",
4
+ "description": "TypeScript asynchronous concurrency library with Waitables, Completables, and State Machines",
5
+ "type": "module",
6
+ "main": "index.js",
7
+ "types": "index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./index.d.ts",
11
+ "import": "./index.js",
12
+ "default": "./index.js"
13
+ },
14
+ "./version": {
15
+ "types": "./version.d.ts",
16
+ "import": "./version.js",
17
+ "default": "./version.js"
18
+ },
19
+ "./api/*": {
20
+ "types": "./api/*.d.ts",
21
+ "import": "./api/*.js",
22
+ "default": "./api/*.js"
23
+ },
24
+ "./auxiliary/*": {
25
+ "types": "./auxiliary/*.d.ts",
26
+ "import": "./auxiliary/*.js",
27
+ "default": "./auxiliary/*.js"
28
+ }
29
+ },
30
+ "files": [
31
+ "*",
32
+ "!never-publish/**/*",
33
+ "!**/*.test.*",
34
+ "!**/*.spec.*"
35
+ ],
36
+ "scripts": {
37
+ "build": "tsc",
38
+ "test": "tsx --test $(find src -name '*.test.ts')",
39
+ "test:watch": "tsx --test --watch $(find src -name '*.test.ts')",
40
+ "test:coverage": "npx c8 --check-coverage --lines 95 --functions 95 --branches 95 --statements 95 --reporter=lcov npx tsx --test $(find src -name '*.test.ts')",
41
+ "lint": "eslint . --ext .ts",
42
+ "lint:fix": "eslint . --ext .ts --fix",
43
+ "prepublishOnly": "npm run build",
44
+ "before:publish": "npm run clean && npm run compile && cp package.json dist && cp README.md dist && cd dist && npm pkg delete private",
45
+ "after:publish": "npm run clean",
46
+ "prepare": "npm run build",
47
+ "docs": "typedoc --options typedoc.json",
48
+ "badges": "npx badges-ts generate",
49
+ "discover": "npx badges-ts discover",
50
+ "clean": "rm -rf dist",
51
+ "compile": "tsc",
52
+ "postversion": "npm run applyversion",
53
+ "applyversion": "npx badges-ts apply-version",
54
+ "pack-package": "npm run before:publish && mkdir -p packs && cd dist && npm pack && mv *.tgz ../packs/ && npm run after:publish"
55
+ },
56
+ "keywords": [
57
+ "typescript",
58
+ "concurrency",
59
+ "statemachine",
60
+ "asynchronous",
61
+ "waitable",
62
+ "completable",
63
+ "notify"
64
+ ],
65
+ "author": "Jon Loucks",
66
+ "license": "MIT",
67
+ "repository": {
68
+ "type": "git",
69
+ "url": "git+https://github.com/jonloucks/concurrency-ts.git"
70
+ },
71
+ "publishConfig": {
72
+ "registry": "https://registry.npmjs.org/"
73
+ },
74
+ "devDependencies": {
75
+ "@jonloucks/badges-ts": "^1.0.3",
76
+ "@types/node": "^25.2.3",
77
+ "@typescript-eslint/eslint-plugin": "^8.56.0",
78
+ "@typescript-eslint/parser": "^8.54.0",
79
+ "c8": "^10.1.3",
80
+ "eslint": "^9.39.2",
81
+ "tsx": "^4.21.0",
82
+ "typedoc": "^0.28.17",
83
+ "typescript": "^5.9.3"
84
+ },
85
+ "dependencies": {
86
+ "@jonloucks/contracts-ts": "^2.0.2"
87
+ }
88
+ }
package/version.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export declare const NAME: string;
2
+ export declare const VERSION: string;
3
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,IAAI,EAAE,MAAoC,CAAC;AACxD,eAAO,MAAM,OAAO,EAAE,MAAgB,CAAC"}
package/version.js ADDED
@@ -0,0 +1,4 @@
1
+ // generated file - do not edit
2
+ export const NAME = "@jonloucks/concurrency-ts";
3
+ export const VERSION = "0.4.0";
4
+ //# sourceMappingURL=version.js.map
package/version.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,MAAM,CAAC,MAAM,IAAI,GAAW,2BAA2B,CAAC;AACxD,MAAM,CAAC,MAAM,OAAO,GAAW,OAAO,CAAC"}