@oscarpalmer/atoms 0.222.0 → 0.223.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 (134) hide show
  1. package/dist/array/difference.mjs +1 -1
  2. package/dist/array/exists.mjs +10 -4
  3. package/dist/array/filter.mjs +14 -4
  4. package/dist/array/find.mjs +8 -3
  5. package/dist/array/first.mjs +9 -3
  6. package/dist/array/index.d.mts +4 -4
  7. package/dist/array/insert.mjs +1 -1
  8. package/dist/array/intersection.mjs +1 -1
  9. package/dist/array/last.mjs +11 -3
  10. package/dist/array/partition.mjs +23 -3
  11. package/dist/array/push.mjs +1 -1
  12. package/dist/array/select.mjs +39 -7
  13. package/dist/array/single.mjs +8 -5
  14. package/dist/array/sort.mjs +1 -1
  15. package/dist/array/splice.mjs +1 -1
  16. package/dist/array/swap.mjs +1 -1
  17. package/dist/array/union.mjs +1 -1
  18. package/dist/array/unique.mjs +17 -3
  19. package/dist/beacon.d.mts +3 -11
  20. package/dist/beacon.mjs +10 -20
  21. package/dist/color/constants.d.mts +1 -5
  22. package/dist/color/constants.mjs +2 -9
  23. package/dist/color/index.mjs +3 -3
  24. package/dist/color/instance.mjs +4 -6
  25. package/dist/color/misc/get.mjs +1 -1
  26. package/dist/color/misc/is.d.mts +0 -8
  27. package/dist/color/misc/is.mjs +3 -14
  28. package/dist/color/misc/state.mjs +3 -3
  29. package/dist/color/space/hex.mjs +1 -1
  30. package/dist/color/space/hsl.mjs +1 -1
  31. package/dist/color/space/hwb.mjs +2 -2
  32. package/dist/function/limit.d.mts +1 -1
  33. package/dist/function/limit.mjs +1 -1
  34. package/dist/function/once.d.mts +1 -1
  35. package/dist/function/once.mjs +7 -7
  36. package/dist/function/retry.d.mts +1 -1
  37. package/dist/function/retry.mjs +10 -10
  38. package/dist/herald.d.mts +2 -2
  39. package/dist/herald.mjs +1 -1
  40. package/dist/index.d.mts +80 -91
  41. package/dist/index.mjs +352 -334
  42. package/dist/internal/array/callbacks.d.mts +1 -1
  43. package/dist/internal/array/find.d.mts +2 -6
  44. package/dist/internal/array/find.mjs +30 -122
  45. package/dist/internal/array/index-of.mjs +9 -3
  46. package/dist/internal/array/insert.mjs +1 -1
  47. package/dist/internal/array/match.d.mts +1 -1
  48. package/dist/internal/array/match.mjs +1 -1
  49. package/dist/internal/array/sets.mjs +4 -4
  50. package/dist/internal/function/assert.d.mts +1 -1
  51. package/dist/internal/function/limit.d.mts +1 -1
  52. package/dist/internal/function/limit.mjs +7 -7
  53. package/dist/internal/function/memoize.d.mts +1 -1
  54. package/dist/internal/function/memoize.mjs +3 -3
  55. package/dist/internal/function/work.d.mts +1 -1
  56. package/dist/internal/function/work.mjs +1 -1
  57. package/dist/internal/herald.d.mts +2 -10
  58. package/dist/internal/herald.mjs +8 -31
  59. package/dist/internal/math/aggregate.mjs +1 -1
  60. package/dist/internal/number.mjs +1 -1
  61. package/dist/internal/plan/index.mjs +1 -1
  62. package/dist/internal/plan/plan.generate.mjs +67 -21
  63. package/dist/internal/sized/map.d.mts +3 -0
  64. package/dist/internal/sized/map.mjs +3 -0
  65. package/dist/internal/string/case.mjs +2 -2
  66. package/dist/internal/string/misc.mjs +1 -1
  67. package/dist/internal/subscription.mjs +15 -27
  68. package/dist/internal/value/compare.mjs +1 -1
  69. package/dist/internal/value/equal.d.mts +1 -1
  70. package/dist/internal/value/equal.mjs +2 -2
  71. package/dist/internal/value/set.mjs +1 -1
  72. package/dist/is.mjs +1 -1
  73. package/dist/logger.mjs +6 -5
  74. package/dist/math.mjs +1 -1
  75. package/dist/models/array/array.misc.model.d.mts +12 -1
  76. package/dist/models/array/array.misc.model.mjs +2 -1
  77. package/dist/models/beacon.model.d.mts +4 -4
  78. package/dist/models/beacon.model.mjs +2 -8
  79. package/dist/models/color.model.d.mts +2 -2
  80. package/dist/models/function/limiter.model.d.mts +1 -1
  81. package/dist/models/function/limiter.model.mjs +1 -2
  82. package/dist/models/function/memoize.model.d.mts +1 -1
  83. package/dist/models/function/once.model.d.mts +0 -1
  84. package/dist/models/function/once.model.mjs +2 -3
  85. package/dist/models/function/work.model.d.mts +1 -1
  86. package/dist/models/herald.model.d.mts +8 -5
  87. package/dist/models/herald.model.mjs +2 -8
  88. package/dist/models/logger.model.d.mts +0 -1
  89. package/dist/models/logger.model.mjs +2 -3
  90. package/dist/models/plan.model.d.mts +35 -35
  91. package/dist/models/promise.model.d.mts +7 -7
  92. package/dist/models/promise.model.mjs +3 -3
  93. package/dist/models/queue.model.d.mts +0 -1
  94. package/dist/models/queue.model.mjs +2 -3
  95. package/dist/models/string/string.fuzzy.model.d.mts +0 -1
  96. package/dist/models/string/string.fuzzy.model.mjs +2 -3
  97. package/dist/models/subscription.model.d.mts +3 -20
  98. package/dist/models/subscription.model.mjs +2 -3
  99. package/dist/plan/index.mjs +1 -1
  100. package/dist/plan/misc.mjs +1 -1
  101. package/dist/plan/models.d.mts +2 -2
  102. package/dist/plan/result.d.mts +7 -7
  103. package/dist/plan/result.mjs +1 -1
  104. package/dist/plan/run.d.mts +7 -7
  105. package/dist/plan/run.mjs +1 -1
  106. package/dist/plan/use.mjs +13 -7
  107. package/dist/promise/delay.mjs +1 -1
  108. package/dist/promise/helpers.mjs +1 -1
  109. package/dist/promise/index.mjs +4 -4
  110. package/dist/promise/misc.d.mts +1 -1
  111. package/dist/promise/misc.mjs +1 -1
  112. package/dist/promise/models.d.mts +2 -2
  113. package/dist/promise/models.mjs +1 -1
  114. package/dist/promise/timed.mjs +3 -3
  115. package/dist/query.mjs +1 -1
  116. package/dist/queue.mjs +10 -10
  117. package/dist/random.mjs +1 -1
  118. package/dist/result/work/flow.mjs +1 -1
  119. package/dist/result/work/pipe.mjs +1 -1
  120. package/dist/sized/set.d.mts +3 -0
  121. package/dist/sized/set.mjs +3 -0
  122. package/dist/string/fuzzy.mjs +4 -5
  123. package/dist/string/index.mjs +1 -1
  124. package/dist/string/match.mjs +1 -1
  125. package/dist/string/normalize.mjs +2 -2
  126. package/dist/subscription.d.mts +2 -2
  127. package/dist/value/clone.d.mts +1 -1
  128. package/dist/value/clone.mjs +1 -1
  129. package/dist/value/freeze.mjs +1 -1
  130. package/dist/value/handle.mjs +1 -1
  131. package/dist/value/smush.mjs +1 -1
  132. package/package.json +6 -6
  133. package/dist/models/array/array.find.model.d.mts +0 -46
  134. package/dist/models/array/array.find.model.mjs +0 -7
@@ -1,5 +1,5 @@
1
- import { GenericAsyncCallback, GenericCallback } from "../models/index.mjs";
2
1
  import { AsyncLimiter, Limiter } from "../models/function/limiter.model.mjs";
2
+ import { GenericAsyncCallback, GenericCallback } from "../models/index.mjs";
3
3
  /**
4
4
  * Debounce a function, ensuring it is only called after `time` milliseconds have passed
5
5
  *
@@ -1,5 +1,5 @@
1
- import { LIMITER_DEBOUNCE, LIMITER_THROTTLE } from "../models/function/limiter.model.mjs";
2
1
  import { getAsyncLimiter, getLimiter } from "../internal/function/limit.mjs";
2
+ import { LIMITER_DEBOUNCE, LIMITER_THROTTLE } from "../models/function/limiter.model.mjs";
3
3
  // src/function/limit.ts
4
4
  /**
5
5
  * Debounce a function, ensuring it is only called after `time` milliseconds have passed
@@ -1,5 +1,5 @@
1
- import { GenericAsyncCallback, GenericCallback } from "../models/index.mjs";
2
1
  import { AsyncOnce, Once } from "../models/function/once.model.mjs";
2
+ import { GenericAsyncCallback, GenericCallback } from "../models/index.mjs";
3
3
  declare function AsyncOnce(this: any, callback: GenericAsyncCallback): void;
4
4
  declare function Once(this: any, callback: GenericCallback): void;
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  import { assert } from "../internal/function/assert.mjs";
2
- import { ONCE_MESSAGE_CLEARED, ONCE_MESSAGE_EXPECTATION, ONCE_NAME_ASYNC, ONCE_NAME_SYNC, ONCE_PROPERTY, ONCE_SYMBOL } from "../models/function/once.model.mjs";
2
+ import { ONCE_MESSAGE_CLEARED, ONCE_MESSAGE_EXPECTATION, ONCE_NAME_ASYNC, ONCE_NAME_SYNC, ONCE_SYMBOL } from "../models/function/once.model.mjs";
3
3
  // src/function/once.ts
4
4
  function AsyncOnce(callback) {
5
5
  this[ONCE_SYMBOL] = {
@@ -9,10 +9,10 @@ function AsyncOnce(callback) {
9
9
  error: false,
10
10
  finished: false,
11
11
  items: [],
12
+ type: ONCE_NAME_ASYNC,
12
13
  value: void 0
13
14
  };
14
15
  }
15
- AsyncOnce.prototype[ONCE_PROPERTY] = ONCE_NAME_ASYNC;
16
16
  AsyncOnce.prototype.clear = clearOnce;
17
17
  AsyncOnce.prototype.run = runOnceAsync;
18
18
  Object.defineProperties(AsyncOnce.prototype, {
@@ -38,10 +38,10 @@ function Once(callback) {
38
38
  callback,
39
39
  called: false,
40
40
  cleared: false,
41
+ type: ONCE_NAME_SYNC,
41
42
  value: void 0
42
43
  };
43
44
  }
44
- Once.prototype[ONCE_PROPERTY] = ONCE_NAME_SYNC;
45
45
  Once.prototype.clear = clearOnce;
46
46
  Once.prototype.run = runOnce;
47
47
  Object.defineProperties(Once.prototype, {
@@ -104,7 +104,7 @@ function handleOnceResult(state, value, error) {
104
104
  * @returns `true` if the value is an asynchronous once callback, otherwise `false`
105
105
  */
106
106
  function isAsyncOnce(value) {
107
- return isOnceInstance(value, ONCE_NAME_ASYNC);
107
+ return isOnceInstance(ONCE_NAME_ASYNC, value);
108
108
  }
109
109
  /**
110
110
  * Is the value a once callback?
@@ -113,10 +113,10 @@ function isAsyncOnce(value) {
113
113
  * @returns `true` if the value is a once callback, otherwise `false`
114
114
  */
115
115
  function isOnce(value) {
116
- return isOnceInstance(value, ONCE_NAME_SYNC);
116
+ return isOnceInstance(ONCE_NAME_SYNC, value);
117
117
  }
118
- function isOnceInstance(value, name) {
119
- return typeof value === "object" && value !== null && "$once" in value && value["$once"] === name;
118
+ function isOnceInstance(type, value) {
119
+ return typeof value === "object" && value !== null && ONCE_SYMBOL in value && value[ONCE_SYMBOL].type === type;
120
120
  }
121
121
  /**
122
122
  * Create a function that can only be called once, returning the same value on subsequent calls
@@ -1,5 +1,5 @@
1
- import { GenericAsyncCallback, GenericCallback } from "../models/index.mjs";
2
1
  import { RetryError, RetryOptions } from "../models/function/retry.model.mjs";
2
+ import { GenericAsyncCallback, GenericCallback } from "../models/index.mjs";
3
3
  /**
4
4
  * Retry a callback a specified number of times, with a delay between attempts
5
5
  *
@@ -1,8 +1,8 @@
1
+ import { getNumberOrDefault } from "../internal/defaults.mjs";
2
+ import { getLimiter } from "../internal/function/limit.mjs";
1
3
  import { isPlainObject } from "../internal/is.mjs";
2
4
  import { asyncAttempt, attempt } from "../internal/result/attempt.mjs";
3
5
  import { LIMITER_WAIT } from "../models/function/limiter.model.mjs";
4
- import { getNumberOrDefault } from "../internal/defaults.mjs";
5
- import { getLimiter } from "../internal/function/limit.mjs";
6
6
  import { RETRY_MESSAGE_EXPECTATION, RETRY_MESSAGE_FAILED, RetryError } from "../models/function/retry.model.mjs";
7
7
  // src/function/retry.ts
8
8
  /**
@@ -17,12 +17,12 @@ import { RETRY_MESSAGE_EXPECTATION, RETRY_MESSAGE_FAILED, RetryError } from "../
17
17
  async function asyncRetry(callback, options) {
18
18
  if (typeof callback !== "function") throw new TypeError(RETRY_MESSAGE_EXPECTATION);
19
19
  async function handle() {
20
- const result = await asyncAttempt(async () => callback());
21
- if (result.ok) {
22
- resolver(result.value);
20
+ const attempted = await asyncAttempt(async () => callback());
21
+ if (attempted.ok) {
22
+ resolver(attempted.value);
23
23
  return;
24
24
  }
25
- if (attempts >= times || !when(result.error)) rejector(new RetryError(RETRY_MESSAGE_FAILED, result.error));
25
+ if (attempts >= times || !when(attempted.error)) rejector(new RetryError(RETRY_MESSAGE_FAILED, attempted.error));
26
26
  else {
27
27
  attempts += 1;
28
28
  limiter.run();
@@ -59,10 +59,10 @@ function retry(callback, options) {
59
59
  const { times, when } = createRetryOptions(options);
60
60
  let last;
61
61
  for (let index = 0; index <= times; index += 1) {
62
- const result = attempt(callback);
63
- if (result.ok) return result.value;
64
- if (index >= times || !when(result.error)) {
65
- last = result.error;
62
+ const attempted = attempt(callback);
63
+ if (attempted.ok) return attempted.value;
64
+ if (index >= times || !when(attempted.error)) {
65
+ last = attempted.error;
66
66
  break;
67
67
  }
68
68
  }
package/dist/herald.d.mts CHANGED
@@ -1,3 +1,3 @@
1
+ import { herald, isHerald, isHeraldEvents } from "./internal/herald.mjs";
1
2
  import { Herald, HeraldEvents, HeraldOptions } from "./models/herald.model.mjs";
2
- import { herald, isHerald, isHeraldEvents, isHeraldSubscription } from "./internal/herald.mjs";
3
- export { type Herald, type HeraldEvents, type HeraldOptions, herald, isHerald, isHeraldEvents, isHeraldSubscription };
3
+ export { type Herald, type HeraldEvents, type HeraldOptions, herald, isHerald, isHeraldEvents };
package/dist/herald.mjs CHANGED
@@ -1 +1 @@
1
- export { herald, isHerald, isHeraldEvents, isHeraldSubscription } from "./internal/herald.mjs";
1
+ export { herald, isHerald, isHeraldEvents } from "./internal/herald.mjs";
package/dist/index.d.mts CHANGED
@@ -3756,6 +3756,9 @@ export declare class SizedMap<SizedKey = unknown, SizedValue = unknown> extends
3756
3756
  * Is the _Map_ full?
3757
3757
  */
3758
3758
  get full(): boolean;
3759
+ /**
3760
+ * The maximum size of the _Map_
3761
+ */
3759
3762
  get maximum(): number;
3760
3763
  /**
3761
3764
  * Create a new _SizedMap_ with entries and a maximum size _(2^20)_
@@ -4877,19 +4880,19 @@ type AsyncPlan<Yielded, Returned, Parameters extends unknown[]> = {
4877
4880
  *
4878
4881
  * @returns Attempted result
4879
4882
  */
4880
- attempt: Parameters extends [infer _, ...(infer _)[]] ? (parameters: Parameters, signal?: AbortSignal) => Promise<Result<PlanOk<Returned>, PlanError<Yielded, Returned>>> : (signal?: AbortSignal) => Promise<Result<PlanOk<Returned>, PlanError<Yielded, Returned>>>;
4883
+ attempt: Parameters extends [infer _, ...(infer _)[]] ? (parameters: Parameters, signal?: AbortSignal) => Promise<Result<PlannedOk<Returned>, PlannedError<Yielded, Returned>>> : (signal?: AbortSignal) => Promise<Result<PlannedOk<Returned>, PlannedError<Yielded, Returned>>>;
4881
4884
  /**
4882
4885
  * Run the plan to completion
4883
4886
  *
4884
- * @throws {PlanError<Yielded, Returned>}
4887
+ * @throws {PlannedError<Yielded, Returned>}
4885
4888
  * @returns Result
4886
4889
  */
4887
- run: Parameters extends [infer _, ...(infer _)[]] ? (parameters: Parameters, signal?: AbortSignal) => Promise<PlanReturned<Returned>> : (signal?: AbortSignal) => Promise<PlanReturned<Returned>>;
4890
+ run: Parameters extends [infer _, ...(infer _)[]] ? (parameters: Parameters, signal?: AbortSignal) => Promise<PlannedReturned<Returned>> : (signal?: AbortSignal) => Promise<PlannedReturned<Returned>>;
4888
4891
  };
4889
4892
  /**
4890
4893
  * An immediately succeeding or failing asynchronous plan
4891
4894
  */
4892
- type AsyncPlanned<Value, Error> = AsyncSuccess<Value> | AsyncFailure<Error>;
4895
+ type AsyncImmediate<Value, Error> = AsyncSuccess<Value> | AsyncFailure<Error>;
4893
4896
  /**
4894
4897
  * A single asynchronous step within a plan of execution
4895
4898
  */
@@ -4932,6 +4935,10 @@ type Failure<Value> = {
4932
4935
  */
4933
4936
  [Symbol.iterator]: () => Generator<Err<Value>, never>;
4934
4937
  };
4938
+ /**
4939
+ * An immediately succeeding or failing plan
4940
+ */
4941
+ type Immediate<Value, Error> = Success<Value> | Failure<Error>;
4935
4942
  type InvalidAsyncStepValue<Input> = ((...args: any[]) => unknown) | ParameterizedPlan<Input>;
4936
4943
  type InvalidStepValue<Input> = ((...args: any[]) => unknown) | {
4937
4944
  [Symbol.asyncIterator]: unknown;
@@ -4958,33 +4965,29 @@ type Plan<Yielded, Returned, Parameters extends unknown[]> = {
4958
4965
  *
4959
4966
  * @returns Attempted result
4960
4967
  */
4961
- attempt(...parameters: Parameters): Result<PlanOk<Returned>, PlanError<Yielded, Returned>>;
4968
+ attempt(...parameters: Parameters): Result<PlannedOk<Returned>, PlannedError<Yielded, Returned>>;
4962
4969
  /**
4963
4970
  * Run the plan to completion
4964
4971
  *
4965
- * @throws {PlanError<Yielded, Returned>}
4972
+ * @throws {PlannedError<Yielded, Returned>}
4966
4973
  * @returns Result
4967
4974
  */
4968
- run(...parameters: Parameters): PlanReturned<Returned>;
4975
+ run(...parameters: Parameters): PlannedReturned<Returned>;
4969
4976
  };
4970
- /**
4971
- * An OK result of a plan execution
4972
- */
4973
- type PlanOk<Returned> = Returned extends Error ? never : Returned extends Err<infer _> ? never : Returned extends Ok<infer Value> ? Value : Returned;
4974
- type PlanErrors<Yielded, Returned> = PlanErrorValues<Yielded> | PlanErrorValues<Returned>;
4975
4977
  /**
4976
4978
  * An error result of a plan execution
4977
4979
  */
4978
- type PlanError<Yielded, Returned> = [PlanErrors<Yielded, Returned>] extends [never] ? Error : PlanErrorValues<Yielded> | PlanErrorValues<Returned>;
4980
+ type PlannedError<Yielded, Returned> = [PlannedErrors<Yielded, Returned>] extends [never] ? Error : PlanErrorValues<Yielded> | PlanErrorValues<Returned>;
4981
+ type PlannedErrors<Yielded, Returned> = PlanErrorValues<Yielded> | PlanErrorValues<Returned>;
4979
4982
  type PlanErrorValues<Original> = Original extends Error ? Original : Original extends Err<infer E> ? E : Original extends Failure<infer E> ? E : never;
4980
4983
  /**
4981
- * The returned result of a plan execution _(excluding errors, which are thrown)_
4984
+ * An OK result of a plan execution
4982
4985
  */
4983
- type PlanReturned<Returned> = Returned extends Error ? never : Returned extends Err<infer _> ? never : Returned;
4986
+ type PlannedOk<Returned> = Returned extends Error ? never : Returned extends Err<infer _> ? never : Returned extends Ok<infer Value> ? Value : Returned;
4984
4987
  /**
4985
- * An immediately succeeding or failing plan
4988
+ * The returned result of a plan execution _(excluding errors, which are thrown)_
4986
4989
  */
4987
- type Planned<Value, Error> = Success<Value> | Failure<Error>;
4990
+ type PlannedReturned<Returned> = Returned extends Error ? never : Returned extends Err<infer _> ? never : Returned;
4988
4991
  /**
4989
4992
  * A single step within a plan of execution
4990
4993
  */
@@ -5184,7 +5187,7 @@ export declare namespace succeed {
5184
5187
  * @param signal Optional abort signal
5185
5188
  * @returns Promised result
5186
5189
  */
5187
- export declare function asyncAttemptRun<Yielded, Returned, Parameters extends unknown[]>(generator: (...parameters: Parameters) => AsyncGenerator<Yielded, Returned>, parameters: Parameters, signal?: AbortSignal): Promise<Result<PlanOk<Returned>, PlanError<Yielded, Returned>>>;
5190
+ export declare function asyncAttemptRun<Yielded, Returned, Parameters extends unknown[]>(generator: (...parameters: Parameters) => AsyncGenerator<Yielded, Returned>, parameters: Parameters, signal?: AbortSignal): Promise<Result<PlannedOk<Returned>, PlannedError<Yielded, Returned>>>;
5188
5191
  /**
5189
5192
  * Attempt to run the generator to completion
5190
5193
  *
@@ -5194,7 +5197,7 @@ export declare function asyncAttemptRun<Yielded, Returned, Parameters extends un
5194
5197
  * @param signal Optional abort signal
5195
5198
  * @returns Promised result
5196
5199
  */
5197
- export declare function asyncAttemptRun<Yielded, Returned>(generator: () => AsyncGenerator<Yielded, Returned>, signal?: AbortSignal): Promise<Result<PlanOk<Returned>, PlanError<Yielded, Returned>>>;
5200
+ export declare function asyncAttemptRun<Yielded, Returned>(generator: () => AsyncGenerator<Yielded, Returned>, signal?: AbortSignal): Promise<Result<PlannedOk<Returned>, PlannedError<Yielded, Returned>>>;
5198
5201
  /**
5199
5202
  * Attempt to run the plan to completion
5200
5203
  *
@@ -5205,7 +5208,7 @@ export declare function asyncAttemptRun<Yielded, Returned>(generator: () => Asyn
5205
5208
  * @param signal Optional abort signal
5206
5209
  * @returns Promised result
5207
5210
  */
5208
- export declare function asyncAttemptRun<Yielded, Returned, Parameters extends unknown[]>(plan: AsyncPlan<Yielded, Returned, Parameters>, parameters: Parameters, signal?: AbortSignal): Promise<Result<PlanOk<Returned>, PlanError<Yielded, Returned>>>;
5211
+ export declare function asyncAttemptRun<Yielded, Returned, Parameters extends unknown[]>(plan: AsyncPlan<Yielded, Returned, Parameters>, parameters: Parameters, signal?: AbortSignal): Promise<Result<PlannedOk<Returned>, PlannedError<Yielded, Returned>>>;
5209
5212
  /**
5210
5213
  * Attempt to run the plan to completion
5211
5214
  *
@@ -5215,7 +5218,7 @@ export declare function asyncAttemptRun<Yielded, Returned, Parameters extends un
5215
5218
  * @param signal Optional abort signal
5216
5219
  * @returns Promised result
5217
5220
  */
5218
- export declare function asyncAttemptRun<Yielded, Returned>(plan: AsyncPlan<Yielded, Returned, []>, signal?: AbortSignal): Promise<Result<PlanOk<Returned>, PlanError<Yielded, Returned>>>;
5221
+ export declare function asyncAttemptRun<Yielded, Returned>(plan: AsyncPlan<Yielded, Returned, []>, signal?: AbortSignal): Promise<Result<PlannedOk<Returned>, PlannedError<Yielded, Returned>>>;
5219
5222
  /**
5220
5223
  * Attempt to run the generator to completion
5221
5224
  *
@@ -5225,7 +5228,7 @@ export declare function asyncAttemptRun<Yielded, Returned>(plan: AsyncPlan<Yield
5225
5228
  * @param parameters Parameters for starting the run
5226
5229
  * @returns Result
5227
5230
  */
5228
- export declare function attemptRun<Yielded, Returned, Parameters extends unknown[]>(generator: (...parameters: Parameters) => Generator<Yielded, Returned>, ...parameters: Parameters): Result<PlanOk<Returned>, PlanError<Yielded, Returned>>;
5231
+ export declare function attemptRun<Yielded, Returned, Parameters extends unknown[]>(generator: (...parameters: Parameters) => Generator<Yielded, Returned>, ...parameters: Parameters): Result<PlannedOk<Returned>, PlannedError<Yielded, Returned>>;
5229
5232
  /**
5230
5233
  * Attempt to run the plan to completion
5231
5234
  *
@@ -5235,7 +5238,7 @@ export declare function attemptRun<Yielded, Returned, Parameters extends unknown
5235
5238
  * @param parameters Parameters for starting the run
5236
5239
  * @returns Result
5237
5240
  */
5238
- export declare function attemptRun<Yielded, Returned, Parameters extends unknown[]>(plan: Plan<Yielded, Returned, Parameters>, ...parameters: Parameters): Result<PlanOk<Returned>, PlanError<Yielded, Returned>>;
5241
+ export declare function attemptRun<Yielded, Returned, Parameters extends unknown[]>(plan: Plan<Yielded, Returned, Parameters>, ...parameters: Parameters): Result<PlannedOk<Returned>, PlannedError<Yielded, Returned>>;
5239
5242
  export declare namespace attemptRun {
5240
5243
  export var async: typeof asyncAttemptRun;
5241
5244
  }
@@ -5247,7 +5250,7 @@ export declare namespace attemptRun {
5247
5250
  * @param signal Optional abort signal
5248
5251
  * @returns Result
5249
5252
  */
5250
- export declare function asyncRun<Yielded, Returned, Parameters extends unknown[]>(generator: (...parameters: Parameters) => AsyncGenerator<Yielded, Returned>, parameters: Parameters, signal?: AbortSignal): Promise<PlanReturned<Returned>>;
5253
+ export declare function asyncRun<Yielded, Returned, Parameters extends unknown[]>(generator: (...parameters: Parameters) => AsyncGenerator<Yielded, Returned>, parameters: Parameters, signal?: AbortSignal): Promise<PlannedReturned<Returned>>;
5251
5254
  /**
5252
5255
  * Run an asynchronous generator to completion
5253
5256
  *
@@ -5255,7 +5258,7 @@ export declare function asyncRun<Yielded, Returned, Parameters extends unknown[]
5255
5258
  * @param signal Optional abort signal
5256
5259
  * @returns Result
5257
5260
  */
5258
- export declare function asyncRun<Yielded, Returned>(generator: () => AsyncGenerator<Yielded, Returned>, signal?: AbortSignal): Promise<PlanReturned<Returned>>;
5261
+ export declare function asyncRun<Yielded, Returned>(generator: () => AsyncGenerator<Yielded, Returned>, signal?: AbortSignal): Promise<PlannedReturned<Returned>>;
5259
5262
  /**
5260
5263
  * Run an asynchronous plan to completion
5261
5264
  *
@@ -5264,7 +5267,7 @@ export declare function asyncRun<Yielded, Returned>(generator: () => AsyncGenera
5264
5267
  * @param signal Optional abort signal
5265
5268
  * @returns Result
5266
5269
  */
5267
- export declare function asyncRun<Yielded, Returned, Parameters extends unknown[]>(plan: AsyncPlan<Yielded, Returned, Parameters>, parameters: Parameters, signal?: AbortSignal): Promise<PlanReturned<Returned>>;
5270
+ export declare function asyncRun<Yielded, Returned, Parameters extends unknown[]>(plan: AsyncPlan<Yielded, Returned, Parameters>, parameters: Parameters, signal?: AbortSignal): Promise<PlannedReturned<Returned>>;
5268
5271
  /**
5269
5272
  * Run an asynchronous plan to completion
5270
5273
  *
@@ -5272,7 +5275,7 @@ export declare function asyncRun<Yielded, Returned, Parameters extends unknown[]
5272
5275
  * @param signal Optional abort signal
5273
5276
  * @returns Result
5274
5277
  */
5275
- export declare function asyncRun<Yielded, Returned>(plan: AsyncPlan<Yielded, Returned, []>, signal?: AbortSignal): Promise<PlanReturned<Returned>>;
5278
+ export declare function asyncRun<Yielded, Returned>(plan: AsyncPlan<Yielded, Returned, []>, signal?: AbortSignal): Promise<PlannedReturned<Returned>>;
5276
5279
  /**
5277
5280
  * Run a generator to completion
5278
5281
  *
@@ -5280,7 +5283,7 @@ export declare function asyncRun<Yielded, Returned>(plan: AsyncPlan<Yielded, Ret
5280
5283
  * @param parameters Parameters for starting the run
5281
5284
  * @returns Result
5282
5285
  */
5283
- export declare function run<Yielded, Returned, Parameters extends unknown[]>(generator: (...parameters: Parameters) => Generator<Yielded, Returned>, ...parameters: Parameters): PlanReturned<Returned>;
5286
+ export declare function run<Yielded, Returned, Parameters extends unknown[]>(generator: (...parameters: Parameters) => Generator<Yielded, Returned>, ...parameters: Parameters): PlannedReturned<Returned>;
5284
5287
  /**
5285
5288
  * Run a plan to completion
5286
5289
  *
@@ -5288,7 +5291,7 @@ export declare function run<Yielded, Returned, Parameters extends unknown[]>(gen
5288
5291
  * @param parameters Parameters for starting the run
5289
5292
  * @returns Result
5290
5293
  */
5291
- export declare function run<Yielded, Returned, Parameters extends unknown[]>(plan: Plan<Yielded, Returned, Parameters>, ...parameters: Parameters): PlanReturned<Returned>;
5294
+ export declare function run<Yielded, Returned, Parameters extends unknown[]>(plan: Plan<Yielded, Returned, Parameters>, ...parameters: Parameters): PlannedReturned<Returned>;
5292
5295
  export declare namespace asyncRun {
5293
5296
  export var attempt: typeof asyncAttemptRun;
5294
5297
  }
@@ -5397,12 +5400,6 @@ type PromiseParameters = {
5397
5400
  * - `first`: rejects on the first rejected _Promise_, and returns an array of values
5398
5401
  */
5399
5402
  type PromiseStrategy = "complete" | "first";
5400
- /**
5401
- * An error thrown when a promise times out
5402
- */
5403
- export declare class PromiseTimeoutError extends Error {
5404
- constructor();
5405
- }
5406
5403
  type PromisesItems<Items extends ArrayOrPlainObject> = { [ItemsKey in keyof Items]: Items[ItemsKey] extends GenericCallback ? ReturnType<Items[ItemsKey]> extends Promise<infer Value> ? Promise<Value> : never : Items[ItemsKey] extends Promise<infer Value> ? Promise<Value> : Promise<Items[ItemsKey]>; };
5407
5404
  /**
5408
5405
  * Options for handling multiple _Promises_
@@ -5434,6 +5431,12 @@ type RejectedPromise = {
5434
5431
  */
5435
5432
  reason: unknown;
5436
5433
  };
5434
+ /**
5435
+ * An error thrown when a promise times out
5436
+ */
5437
+ export declare class TimedError extends Error {
5438
+ constructor();
5439
+ }
5437
5440
  declare const PROMISE_TYPE_FULFILLED = "fulfilled";
5438
5441
  declare const PROMISE_TYPE_REJECTED = "rejected";
5439
5442
  /**
@@ -7145,19 +7148,6 @@ type SubscriptionParameters = {
7145
7148
  */
7146
7149
  value: unknown;
7147
7150
  };
7148
- /**
7149
- * Property information for subscription identification
7150
- */
7151
- type SubscriptionProperty = {
7152
- /**
7153
- * Name of the property used to identify a subscription
7154
- */
7155
- key: string;
7156
- /**
7157
- * Value of the property used to identify a subscription
7158
- */
7159
- value: unknown;
7160
- };
7161
7151
  type Subscriptions<Value = unknown> = {
7162
7152
  /**
7163
7153
  * Items of the subscriptions store
@@ -7195,10 +7185,6 @@ type SubscriptionsParameters = {
7195
7185
  * Allow any or specific keys for subscriptions? _(defaults to `false`, which prevents keyed subscriptions)_
7196
7186
  */
7197
7187
  keys?: boolean | Set<Key$1>;
7198
- /**
7199
- * Property information for subscription identification
7200
- */
7201
- property?: SubscriptionProperty;
7202
7188
  };
7203
7189
  type SubscriptionsItems = {
7204
7190
  any: Set<Subscription>;
@@ -7267,8 +7253,15 @@ type BeaconState<Value> = {
7267
7253
  observable?: Observable<Value>;
7268
7254
  options: Required<BeaconOptions<Value>>;
7269
7255
  subscriptions?: Subscriptions<Observer<unknown>>;
7256
+ name: typeof BEACON_NAME;
7270
7257
  value: Value;
7271
7258
  };
7259
+ type InternalBeacon = {
7260
+ [BEACON_SYMBOL]: BeaconState<unknown>;
7261
+ } & Beacon<unknown>;
7262
+ type InternalObservable = {
7263
+ [BEACON_SYMBOL]: ObservableState<unknown>;
7264
+ } & Observable<unknown>;
7272
7265
  type Observable<Value> = {
7273
7266
  /**
7274
7267
  * Is the observable active?
@@ -7295,6 +7288,11 @@ type Observable<Value> = {
7295
7288
  */
7296
7289
  subscribe(observer: Observer<Value>): Subscription;
7297
7290
  };
7291
+ type ObservableState<Value> = {
7292
+ active: boolean;
7293
+ beacon: BeaconState<Value>;
7294
+ name: typeof BEACON_OBSERVABLE;
7295
+ };
7298
7296
  type Observer<Value> = {
7299
7297
  /**
7300
7298
  * Callback for when the observable is completed
@@ -7309,29 +7307,11 @@ type Observer<Value> = {
7309
7307
  */
7310
7308
  next?: (value: Value) => void;
7311
7309
  };
7312
- /**
7313
- * Is the value a subscription?
7314
- *
7315
- * @param value Value to check
7316
- * @returns `true` if the value is a subscription, otherwise `false`
7317
- */
7318
- export declare function isSubscription(value: unknown): value is Subscription;
7319
- /**
7320
- * Is the value a subscriptions store?
7321
- *
7322
- * @param value Value to check
7323
- * @returns `true` if the value is a subscriptions store, otherwise `false`
7324
- */
7325
- export declare function isSubscriptions(value: unknown): value is Subscriptions;
7326
- /**
7327
- * Create a subscription store
7328
- *
7329
- * @param parameters Store parameters
7330
- * @returns Subscription store
7331
- */
7332
- export declare function subscriptions<Value = unknown>(parameters?: SubscriptionsParameters): Subscriptions<Value>;
7333
- declare function Beacon(this: any, value: unknown, options?: BeaconOptions<unknown>): void;
7334
- declare function Observable(this: any, beacon: BeaconState<unknown>): void;
7310
+ declare const BEACON_NAME = "beacon";
7311
+ declare const BEACON_OBSERVABLE = "observable";
7312
+ declare const BEACON_SYMBOL: unique symbol;
7313
+ declare function Beacon(this: InternalBeacon, value: unknown, options?: BeaconOptions<unknown>): void;
7314
+ declare function Observable(this: InternalObservable, beacon: BeaconState<unknown>): void;
7335
7315
  /**
7336
7316
  * Create a new beacon
7337
7317
  *
@@ -7347,13 +7327,6 @@ export declare function beacon<Value>(value: Value, options?: BeaconOptions<Valu
7347
7327
  * @returns `true` if the value is a beacon, otherwise `false`
7348
7328
  */
7349
7329
  export declare function isBeacon<Value = unknown>(value: unknown): value is Beacon<Value>;
7350
- /**
7351
- * Is the value a beacon subscription?
7352
- *
7353
- * @param value Value to check
7354
- * @returns `true` if the value is a beacon subscription, otherwise `false`
7355
- */
7356
- export declare function isBeaconSubscription(value: unknown): value is Subscription;
7357
7330
  /**
7358
7331
  * Is the value an observable?
7359
7332
  *
@@ -7395,7 +7368,6 @@ type HeraldEvents<Events extends Record<string, GenericCallback>> = { [Key in ke
7395
7368
  type HeraldOnCreate<Events extends Record<string, GenericCallback>> = <Event extends keyof Events>(event: Event, callback: Events[Event], subscription: Subscription) => void;
7396
7369
  type HeraldOptions<Events extends Record<string, GenericCallback>> = {
7397
7370
  names: Array<keyof Events>;
7398
- property?: SubscriptionProperty;
7399
7371
  onCreate?: HeraldOnCreate<Events>;
7400
7372
  };
7401
7373
  /**
@@ -8089,13 +8061,6 @@ export declare function isHerald<Events extends Record<string, GenericCallback>
8089
8061
  * @returns `true` if the value is events for a herald, otherwise `false`
8090
8062
  */
8091
8063
  export declare function isHeraldEvents<Events extends Record<string, GenericCallback> = Record<string, GenericCallback>>(value: unknown): value is HeraldEvents<Events>;
8092
- /**
8093
- * Is the value a herald subscription?
8094
- *
8095
- * @param value Value to check
8096
- * @returns `true` if the value is a herald subscription, otherwise `false`
8097
- */
8098
- export declare function isHeraldSubscription(value: unknown): value is Subscription;
8099
8064
  /**
8100
8065
  * Is the value an array or a plain object?
8101
8066
  *
@@ -9188,6 +9153,9 @@ export declare class SizedSet<Value = unknown> extends Set<Value> {
9188
9153
  * Is the _Set_ full?
9189
9154
  */
9190
9155
  get full(): boolean;
9156
+ /**
9157
+ * The maximum size of the _Set_
9158
+ */
9191
9159
  get maximum(): number;
9192
9160
  /**
9193
9161
  * Create a new _SizedSet_ with values and a maximum size _(2^20)_
@@ -9224,4 +9192,25 @@ export declare class SizedSet<Value = unknown> extends Set<Value> {
9224
9192
  */
9225
9193
  get(value: Value, update?: boolean): Value | undefined;
9226
9194
  }
9227
- export { type ArrayComparisonSorter, type ArrayKeySorter, type ArrayKeySorters, type ArraySorter, type ArraySorters, type ArrayValueSorter, type Asserter, type AssignOptions, type Assigner, type AsyncFailure, type AsyncFlow, type AsyncLimiter, type AsyncOnce, type AsyncPlan, type AsyncPlanned, type AsyncStep, type AsyncSuccess, type Beacon, type BeaconOptions, type CloneOptions, type Cloner, type Color, type ColorType, type ColorTypeExtended, type ColorValue, type ColorValueExtended, type CompareCallback, type ComparisonSorter, type DiffOptions, type DiffResult, type EqualOptions, type Equalizer, type Failure, type Flow, type FulfilledPromise, type Fuzzy, type FuzzyOptions, type FuzzyResult, type HSLAColor, type HSLColor, type HWBAColor, type HWBColor, type Herald, type HeraldEvents, type HeraldOptions, Key$1 as Key, type KeyedQueue, type Limiter, Logger, type Memoized, type MemoizedOptions, type MergeOptions, type Merger, type NormalizeOptions, type Normalizer, type Observable, type Observer, type Once, type Plan, type PlanError, type PlanOk, type PlanReturned, type Planned, type PromiseOptions, type PromiseStrategy, type PromisesOptions, type Queue, type QueueOptions, type Queued, type RGBAColor, type RGBColor, type RejectedPromise, type Renderer, type Shaken, type Smushed, type SortDirection, type Sorter, type Step, type Subscription, type SubscriptionParameters, type SubscriptionProperty, type Subscriptions, type SubscriptionsParameters, type Success, type TemplateOptions, type Templater, type TemplaterOptions, type TemplaterRenderer, type TimeLogger, type TransformCallback, type TransformCallbacks, type Transformer, type Unsmushed, push as append, filterAndMap as select, toPromise as fromResult, getRandomFloatingNumber as getRandomFloat, isLogger, isTimeLogger, mapAndFilter as reverseSelect };
9195
+ /**
9196
+ * Is the value a subscription?
9197
+ *
9198
+ * @param value Value to check
9199
+ * @returns `true` if the value is a subscription, otherwise `false`
9200
+ */
9201
+ export declare function isSubscription(value: unknown): value is Subscription;
9202
+ /**
9203
+ * Is the value a subscriptions store?
9204
+ *
9205
+ * @param value Value to check
9206
+ * @returns `true` if the value is a subscriptions store, otherwise `false`
9207
+ */
9208
+ export declare function isSubscriptions(value: unknown): value is Subscriptions;
9209
+ /**
9210
+ * Create a subscription store
9211
+ *
9212
+ * @param parameters Store parameters
9213
+ * @returns Subscription store
9214
+ */
9215
+ export declare function subscriptions<Value = unknown>(parameters?: SubscriptionsParameters): Subscriptions<Value>;
9216
+ export { type ArrayComparisonSorter, type ArrayKeySorter, type ArrayKeySorters, type ArraySorter, type ArraySorters, type ArrayValueSorter, type Asserter, type AssignOptions, type Assigner, type AsyncFailure, type AsyncFlow, type AsyncImmediate, type AsyncLimiter, type AsyncOnce, type AsyncPlan, type AsyncStep, type AsyncSuccess, type Beacon, type BeaconOptions, type CloneOptions, type Cloner, type Color, type ColorType, type ColorTypeExtended, type ColorValue, type ColorValueExtended, type CompareCallback, type ComparisonSorter, type DiffOptions, type DiffResult, type EqualOptions, type Equalizer, type Failure, type Flow, type FulfilledPromise, type Fuzzy, type FuzzyOptions, type FuzzyResult, type HSLAColor, type HSLColor, type HWBAColor, type HWBColor, type Herald, type HeraldEvents, type HeraldOptions, type Immediate, Key$1 as Key, type KeyedQueue, type Limiter, Logger, type Memoized, type MemoizedOptions, type MergeOptions, type Merger, type NormalizeOptions, type Normalizer, type Observable, type Observer, type Once, type Plan, type PlannedError, type PlannedOk, type PlannedReturned, type PromiseOptions, type PromiseStrategy, type PromisesOptions, type Queue, type QueueOptions, type Queued, type RGBAColor, type RGBColor, type RejectedPromise, type Renderer, type Shaken, type Smushed, type SortDirection, type Sorter, type Step, type Subscription, type SubscriptionParameters, type Subscriptions, type SubscriptionsParameters, type Success, type TemplateOptions, type Templater, type TemplaterOptions, type TemplaterRenderer, type TimeLogger, type TransformCallback, type TransformCallbacks, type Transformer, type Unsmushed, push as append, filterAndMap as select, toPromise as fromResult, getRandomFloatingNumber as getRandomFloat, isLogger, isTimeLogger, mapAndFilter as reverseSelect };