@zajno/common 2.4.1 → 2.4.3

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 (43) hide show
  1. package/README.md +63 -19
  2. package/cjs/async/manualPromise.js +17 -0
  3. package/cjs/async/manualPromise.js.map +1 -0
  4. package/cjs/async/misc.js +2 -14
  5. package/cjs/async/misc.js.map +1 -1
  6. package/cjs/math/object/math.composite.js +15 -5
  7. package/cjs/math/object/math.composite.js.map +1 -1
  8. package/cjs/math/object/ops.js +4 -1
  9. package/cjs/math/object/ops.js.map +1 -1
  10. package/cjs/models/Loading.js +80 -0
  11. package/cjs/models/Loading.js.map +1 -0
  12. package/cjs/models/LogicModel.js +134 -0
  13. package/cjs/models/LogicModel.js.map +1 -0
  14. package/cjs/models/Model.js +1 -1
  15. package/cjs/models/Model.js.map +1 -1
  16. package/cjs/structures/promiseExtended.js +15 -1
  17. package/cjs/structures/promiseExtended.js.map +1 -1
  18. package/esm/async/manualPromise.js +14 -0
  19. package/esm/async/manualPromise.js.map +1 -0
  20. package/esm/async/misc.js +1 -13
  21. package/esm/async/misc.js.map +1 -1
  22. package/esm/math/object/math.composite.js +15 -5
  23. package/esm/math/object/math.composite.js.map +1 -1
  24. package/esm/math/object/ops.js +4 -1
  25. package/esm/math/object/ops.js.map +1 -1
  26. package/esm/models/Loading.js +74 -0
  27. package/esm/models/Loading.js.map +1 -0
  28. package/esm/models/LogicModel.js +130 -0
  29. package/esm/models/LogicModel.js.map +1 -0
  30. package/esm/models/Model.js +1 -1
  31. package/esm/models/Model.js.map +1 -1
  32. package/esm/structures/promiseExtended.js +15 -1
  33. package/esm/structures/promiseExtended.js.map +1 -1
  34. package/package.json +1 -1
  35. package/tsconfig.cjs.tsbuildinfo +1 -1
  36. package/tsconfig.esm.tsbuildinfo +1 -1
  37. package/tsconfig.types.tsbuildinfo +1 -1
  38. package/types/async/manualPromise.d.ts +6 -0
  39. package/types/async/misc.d.ts +1 -6
  40. package/types/models/Loading.d.ts +35 -0
  41. package/types/models/LogicModel.d.ts +47 -0
  42. package/types/models/Model.d.ts +2 -2
  43. package/types/structures/promiseExtended.d.ts +9 -0
package/README.md CHANGED
@@ -4,26 +4,78 @@
4
4
 
5
5
  This is a library with a useful utils/helpers to share across our projects.
6
6
 
7
- Doesn't pretend to be useful in outer world because probably everything is invented, tested and released to NPM already.
8
-
9
7
  The motivation to have this – just to control and organize some shared code that we ever wanted to write by ourselves.
10
8
 
9
+ ## Contents
10
+
11
+ * [API](./src/api/index.ts): a middle-layer REST API endpoints definition helpers, to have communication described declarative & type-safely.
12
+
13
+ * [Async](./src/async)
14
+ * [Timeouts](./src/async/timeout.ts): a promisified `setTimeout` - `setTimeoutAsync`; `timeoutPromise` - a promise that rejects after a timeout;
15
+ * [ManualPromise](./src/async/manualPromise.ts): a promise that can be resolved/rejected manually;
16
+ * [Array extensions](./src/async/arrays.ts): `someAsync`, `everyAsync`, `forEachAsync`, `mapAsync` (previously were Array.prototype extensions);
17
+
18
+ * [Date extensions & helpers](./src/dates/index.ts): operations with granularity, date formatting etc;
19
+ * [Period](./src/dates/period.ts): a structure to work with date periods e.g. 1 day, 5 years etc;
20
+ * [CalendarIndex](./src/dates/calendarIndex.ts): a structure to work with day, week, month indexes;
21
+ * [Shift dates](./src/dates/shift.ts): shift dates by period, get start/end of with granularity etc;
22
+
23
+ * [Fields](./src/fields/index.ts): work with object fields: skip/filter falsy, transfer falsy/changed; merge arrays of objects.
24
+
25
+ * [Functions](./src/functions): [`assert`](./src/functions/assert.ts), [`IDisposable`/`Disposable`/`Disposer`](./src/functions/disposer.ts), [`ThrottleAction`/`ThrottleProcessor`](./src/functions/throttle.ts).
26
+
27
+ * [Lazy](./src/lazy): [`Lazy`](./src/lazy/singleton.ts) (sync), [`LazyPromise`](./src/lazy/promise.ts).
28
+
29
+ * [Logger interface & console implementation](./src/logger/index.ts): create instance of logger, inject your own implementation or globally enable/disable logger instances by calling `setMode`.
30
+
31
+ * [Math](./src/math/index.ts)
32
+ * [General helpers](./src/math/calc.ts): `clamp`, `round`, `random`, intersections helpers and more;
33
+ * [Array helpers]('./src/math/arrays.ts'): compare, max, min, average, count, normalize, shuffle, etc;
34
+ * [Math Objects helpers](./src/math/object/index.ts): do arithmetical operations on objects with number fields;
35
+ * [Distribution](./src/math/distribution.ts): simple distribution by a type;
36
+
37
+ * [Models](./src/models/): helpers for moving on towards OOP world.
38
+ - [`EntityWithStatus`](./src/models/EntityWithStatus.ts): a base class for entities with a string status, keeps history of status changes;
39
+ - [`Model`](./src/models/Model.ts): a simple base class (box) for `value`s setter/getter;
40
+ - [`LoadingModel`](./src/models/Loading.ts): aggregates multiple loading flags into one;
41
+ - [`LogicModel`](./src/models/LogicModel.ts): a helper base class which helps to run async logic with `PromiseExtended` (see below);
42
+ - various interfaces and helpers for models.
11
43
 
12
- * [Math and Array extensions](./src/math/index.ts)
44
+ * [Observing](./src/observing)
45
+ - [`Event`](./src/observing/event.ts): a simple event emitter;
46
+ - [`OneTimeLateEvent`](./src/observing/event.late.ts): an event emitter that can be listened to after it's been emitted;
47
+ - Others: `ThrottledEvent`, `Timer`, `ProgressTracker` and more.
13
48
 
14
- * [Date extensions & helpers](./src/dates/index.ts)
49
+ * [Storage](./src/storage/index.ts): abstractions + helpers for sync/async storages;
15
50
 
16
- * [Logger interface & console implementation](./src/logger/index.ts) – create instance of logger, inject your own implementation or globally enable/disable logger instances by callling `setMode`
51
+ * [Structures](./src/structures)
52
+ - [`Path`](./src/structures/path/index.ts): a helper to build (almost) type-safe dynamic paths (useful for routing definitions);
53
+ - [`Queues`](./src/structures/queue/): [`ParallelQueue`](./src/structures/queue/parallel.ts) (helps run & track multiple prioritized async tasks), [`TasksQueue`](./src/structures/queue/tasks.ts) (a simple queue for async tasks with a limit for concurrent tasks);
54
+ - [`PromiseCache`](./src/structures/promiseCache.ts): a cache for Promise'd values; supports TTL, invalidation, custom keys, deferred getters and more;
55
+ - [`PromiseExtended`](./src/structures/promiseExtended.ts): a Promise wrapper which never rejects but provides `onSuccess` and `onError` callbacks;
56
+ - [`PromiseProxy`](./src/structures/promiseProxy.ts): a Promise wrapper to mimic (fake) a resolved value's properties until it's actually resolved;
57
+ - [`Enum helpers`](./src/structures/helpers/enum.ts): `EnumHelper`, `EnumStringHelper`, `EnumBitwiseHelper`;
58
+ - Misc: [`Pool`](./src/structures/pool.ts), [`LinkedList`](./src/structures/linkedList.ts), [`TempoCache`](./src/structures/tempoCache.ts) (invalidates sync values after a timeout), [`ExpireTracker`](./src/structures/expire.ts), [`NamesHelper`](./src/structures/helpers/name.ts) and more.
17
59
 
18
- * Cache, EnumHelper, Event, Lazy, Pool, Throttle, Disposer
60
+ * [`Types`](./src/types/index.ts): [`DeepReadonly`, `DeepMutable`, `DeepPartial`, `DeepRequired` etc.](./src/types/deep.ts), [`Getter`](./src/types/getter.ts), [`Ident`](./src/types/ident.ts) and various others.
19
61
 
20
- ...and other more or less noteworthy stuff.
62
+ * [`Validation`](./src/validation/index.ts): abstractions & helpers for validation.
21
63
 
22
- The source code is written in TypeScript, and intended to be used in TS project, so no built JS sources included.
64
+ ### Tests
65
+
66
+ Tests are written with Vitest, coverage is (kinda) tracked with Coveralls. Test coverage is mainly dictated by real-world usage in the projects.
23
67
 
24
68
  ## Usage
25
69
 
26
- It can be used a git submodule if you're brave enough, but it's possible to use it as npm package (kinda) as well. In your project:
70
+ Sources are in TypeScript, shipped as CJS & ESM modules targeted on `ES2022`.
71
+
72
+ ### Distribution
73
+
74
+ There's no barrel exports, so you can import each module separately. Each `index.ts` file is outlined in generated `package.json`'s `exports` field. Might require `tslib` as a peer dependency.
75
+
76
+ The package does't really use `semver` for now, breaking changes to existing modules can be introduced in minor versions, so it's recommended to use `~` in your `package.json`'s dependencies. New modules can be introduced in minor & patch versions.
77
+
78
+ ### Install
27
79
 
28
80
  1. Install from NPM:
29
81
 
@@ -31,21 +83,13 @@ It can be used a git submodule if you're brave enough, but it's possible to use
31
83
  npm i @zajno/common
32
84
  ```
33
85
 
34
- [`tslib`](https://www.npmjs.com/package/tslib) is the only peer dependency.
35
-
36
86
  2. In your code, use each module separately:
37
87
 
38
88
  ```typescript
39
89
  import logger, { ILogger } from '@zajno/common/logger';
40
90
  ```
41
91
 
42
- ### Note on imports in v1
43
-
44
- Previously one had to import from like `@zajno/common/lib/logger` since compiling had been doing at `postinstall` time so Typescript with its config was a peer dependency. Currently it's not the case and this packages is provided with build artifacts (js + d.ts + source maps); so no need to include `/lib` part in imports anymore.
45
-
46
- Although install time has been decreased, the main downside is that sources are built being targeted on [CommonJS & ES2019+](./tsconfig.json#L13-L14) (for now!). This might be not always suitable and/or optimal for all build setups.
47
-
48
- ## Local development
92
+ ### Local development (a guide to Yalc)
49
93
 
50
94
  If you plan to update the sources while using it in your project, we'd recommend using [`yalc`](https://www.npmjs.com/package/yalc). It does some magic to allow both using it in your project and updating it.
51
95
 
@@ -56,7 +100,7 @@ The flow will look like the following. [1] – operations made on this project,
56
100
  3. `[1]` run `yalc publish --private`
57
101
  4. `[2]` run `yalc add @zajno/common && npm i`
58
102
  5. `[1]` make changes in local copy, run tests etc.
59
- 6. `[1]` run some magic: `npm run push:local` – this should deliver your updated copy to local project(s) [2]
103
+ 6. `[1]` run some magic: `npm run publish:local` – this should deliver your updated copy to local project(s) [2]
60
104
  7. `[2]` notice the changes in your project, repeat 5-7 until you're done
61
105
  8. `[2]` to cleanup, run `yalc remove @zajno/common` or just `yalc remove --all`
62
106
  9. `[1]` push your changes after making sure it's OK, we'd say thank you for a PR!
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createManualPromise = createManualPromise;
4
+ function createManualPromise() {
5
+ let resolve;
6
+ let reject;
7
+ const promise = new Promise((_resolve, _reject) => {
8
+ resolve = _resolve;
9
+ reject = _reject;
10
+ });
11
+ return {
12
+ get promise() { return promise; },
13
+ get resolve() { return resolve; },
14
+ get reject() { return reject; },
15
+ };
16
+ }
17
+ //# sourceMappingURL=manualPromise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manualPromise.js","sourceRoot":"","sources":["../../../src/async/manualPromise.ts"],"names":[],"mappings":";;AAOA,kDAeC;AAfD,SAAgB,mBAAmB;IAE/B,IAAI,OAAyB,CAAC;IAC9B,IAAI,MAA4B,CAAC;IAEjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QACjD,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,OAAO,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,IAAI,OAAO,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC;KAClC,CAAC;AACN,CAAC"}
package/cjs/async/misc.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OptAwait = OptAwait;
4
4
  exports.chainPromises = chainPromises;
5
- exports.createManualPromise = createManualPromise;
5
+ const tslib_1 = require("tslib");
6
6
  async function OptAwait(cb, doAwait) {
7
7
  return cb && (doAwait ? (await cb()) : cb());
8
8
  }
@@ -10,17 +10,5 @@ async function chainPromises(...promises) {
10
10
  const applyAsync = (acc, val) => acc.then(val);
11
11
  return promises.reduce(applyAsync, Promise.resolve());
12
12
  }
13
- function createManualPromise() {
14
- let resolve;
15
- let reject;
16
- const promise = new Promise((_resolve, _reject) => {
17
- resolve = _resolve;
18
- reject = _reject;
19
- });
20
- return {
21
- get promise() { return promise; },
22
- get resolve() { return resolve; },
23
- get reject() { return reject; },
24
- };
25
- }
13
+ tslib_1.__exportStar(require("./manualPromise"), exports);
26
14
  //# sourceMappingURL=misc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/async/misc.ts"],"names":[],"mappings":";;AACA,4BAEC;AAED,sCAKC;AAQD,kDAeC;AAhCM,KAAK,UAAU,QAAQ,CAAI,EAA0B,EAAE,OAAgB;IAC1E,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,GAAG,QAAiC;IAEpE,MAAM,UAAU,GAAG,CAAC,GAAkB,EAAE,GAAwB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnF,OAAO,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAQD,SAAgB,mBAAmB;IAE/B,IAAI,OAAyB,CAAC;IAC9B,IAAI,MAA4B,CAAC;IAEjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QACjD,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,OAAO,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,IAAI,OAAO,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC;KAClC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/async/misc.ts"],"names":[],"mappings":";;AACA,4BAEC;AAED,sCAKC;;AATM,KAAK,UAAU,QAAQ,CAAI,EAA0B,EAAE,OAAgB;IAC1E,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,GAAG,QAAiC;IAEpE,MAAM,UAAU,GAAG,CAAC,GAAkB,EAAE,GAAwB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnF,OAAO,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,0DAAgC"}
@@ -48,14 +48,24 @@ class CompositeObjectMath extends ops_composite_1.CompositeObjectOps {
48
48
  if (this.isEmpty(o1)) {
49
49
  return 0;
50
50
  }
51
- if (typeof o2 === 'number' && o2 === 0 || typeof o2 !== 'number' && this.isEmpty(o2)) {
51
+ const checkRight = (val, getIsEmpty) => {
52
+ return typeof val === 'number' && val === 0 || typeof val !== 'number' && getIsEmpty(val);
53
+ };
54
+ if (checkRight(o2, v => this.isEmpty(v))) {
52
55
  return Number.POSITIVE_INFINITY;
53
56
  }
54
- const vals = this._math.map(pair => {
55
- const val = (0, helpers_1._getInnerValue)(o1, pair.key);
56
- return pair.ops.div(val, (0, helpers_1._getInnerValue)(o2, pair.key));
57
+ const results = this._math.map(pair => {
58
+ const left = (0, helpers_1._getInnerValue)(o1, pair.key);
59
+ if (pair.ops.isEmpty(left)) {
60
+ return 0;
61
+ }
62
+ const right = (0, helpers_1._getInnerValue)(o2, pair.key);
63
+ if (checkRight(right, v => pair.ops.isEmpty(v))) {
64
+ return 0;
65
+ }
66
+ return pair.ops.div(left, right);
57
67
  }).filter(Boolean);
58
- return Math.min(...vals);
68
+ return results.length ? Math.min(...results) : 0;
59
69
  }
60
70
  }
61
71
  exports.CompositeObjectMath = CompositeObjectMath;
@@ -1 +1 @@
1
- {"version":3,"file":"math.composite.js","sourceRoot":"","sources":["../../../../src/math/object/math.composite.ts"],"names":[],"mappings":";;;AAEA,uCAAkD;AAClD,mDAAqD;AAIrD,MAAa,mBAAyC,SAAQ,kCAAqB;IAC9D,KAAK,CAAgB;IAEtC,YAAY,SAA0B;QAClC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;aACjC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACV,GAAG,EAAE,IAAI,CAAC,CAAC,CAAqB;YAChC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAqC;SACnD,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,QAAQ,CAAC,IAAqB,EAAE,MAAuB;QACnD,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAA,wBAAc,EAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,IAAA,wBAAc,EAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,CAAkB;QACtB,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,GAAG,CAAC,CAAkB,EAAE,OAAoB;QACxC,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,CAAkB,EAAE,OAAsB;QAC5C,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,GAAG,CAAC,EAAmB,EAAE,EAAmB;QACxC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO,IAAA,eAAK,EAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAA,wBAAc,EAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,QAAQ,CAAC,IAAqB,EAAE,MAAgC;QAC5D,OAAO,IAAA,eAAK,EACR,IAAI,CAAC,KAAK,EACV,IAAI,EACJ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAC3B,GAAG,EACH,IAAA,wBAAc,EAAC,MAAM,EAAE,GAAG,CAAC,CAC9B,CACJ,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,EAAmB,EAAE,EAA4B;QACtD,OAAO,IAAA,eAAK,EACR,IAAI,CAAC,KAAK,EACV,EAAE,EACF,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAC3B,GAAG,EACH,IAAA,wBAAc,EAAC,EAAE,EAAE,GAAG,CAAC,CAC1B,CACJ,CAAC;IACN,CAAC;IAED,GAAG,CAAC,EAAmB,EAAE,EAA4B;QACjD,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,CAAC;QACb,CAAC;QAED,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YACnF,OAAO,MAAM,CAAC,iBAAiB,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC/B,MAAM,GAAG,GAAG,IAAA,wBAAc,EAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,IAAA,wBAAc,EAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEnB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC7B,CAAC;CACJ;AAlFD,kDAkFC"}
1
+ {"version":3,"file":"math.composite.js","sourceRoot":"","sources":["../../../../src/math/object/math.composite.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,10 @@ class ObjectOps {
27
27
  if (o != null) {
28
28
  this.keys.forEach(key => {
29
29
  const kk = key;
30
- result[key] = o[kk];
30
+ const v = o[kk];
31
+ if (v !== undefined) {
32
+ result[key] = v;
33
+ }
31
34
  });
32
35
  }
33
36
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"ops.js","sourceRoot":"","sources":["../../../../src/math/object/ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ops.js","sourceRoot":"","sources":["../../../../src/math/object/ops.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExclusiveLoadingError = exports.LoadingModel = void 0;
4
+ exports.withLoading = withLoading;
5
+ const Model_1 = require("./Model");
6
+ async function withLoading(model, cb, exclusive = false) {
7
+ if (exclusive && model.value) {
8
+ if (exclusive === 'throw') {
9
+ throw new ExclusiveLoadingError();
10
+ }
11
+ return { aborted: true };
12
+ }
13
+ model.value = true;
14
+ try {
15
+ const res = await cb();
16
+ return {
17
+ aborted: false,
18
+ result: res,
19
+ };
20
+ }
21
+ finally {
22
+ model.value = false;
23
+ }
24
+ }
25
+ class LoadingModel {
26
+ _number;
27
+ _firstInit;
28
+ /**
29
+ * @param useFirstInit - if true, then `isLoading` will be returning 'true' until first `useLoading` call. Defaults to false.
30
+ */
31
+ constructor(useFirstInit = false) {
32
+ this._firstInit = useFirstInit;
33
+ this._number = this.pureConstructNumberModel();
34
+ }
35
+ get isLoading() { return this.value || this._firstInit; }
36
+ get value() { return this._number.value > 0; }
37
+ set value(v) {
38
+ this.setValue(v);
39
+ }
40
+ useLoading(cb, exclusive = false) {
41
+ return withLoading(this, cb, exclusive);
42
+ }
43
+ reset = () => {
44
+ this._firstInit = false;
45
+ this._number.reset();
46
+ };
47
+ setValue(isLoading) {
48
+ if (isLoading) {
49
+ this.incrementLoading();
50
+ }
51
+ else {
52
+ this._firstInit = false;
53
+ this.decrementLoading();
54
+ }
55
+ }
56
+ /** override me */
57
+ incrementLoading() {
58
+ this._number.value++;
59
+ }
60
+ /** override me */
61
+ decrementLoading() {
62
+ this._number.value--;
63
+ }
64
+ /** override me
65
+ *
66
+ * Called in the ctor. Should be pure and should NOT access `this`. */
67
+ pureConstructNumberModel() {
68
+ return new Model_1.Model(0);
69
+ }
70
+ }
71
+ exports.LoadingModel = LoadingModel;
72
+ class ExclusiveLoadingError extends Error {
73
+ actionName;
74
+ constructor(message = 'Operation cannot be started because another one is in progress already.', actionName) {
75
+ super(message);
76
+ this.actionName = actionName;
77
+ }
78
+ }
79
+ exports.ExclusiveLoadingError = ExclusiveLoadingError;
80
+ //# sourceMappingURL=Loading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Loading.js","sourceRoot":"","sources":["../../../src/models/Loading.ts"],"names":[],"mappings":";;;AAYA,kCAmBC;AA/BD,mCAAgC;AAYzB,KAAK,UAAU,WAAW,CAAgB,KAA2B,EAAE,EAAoB,EAAE,YAA+B,KAAK;IACpI,IAAI,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,qBAAqB,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IAEnB,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QACvB,OAAO;YACH,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,GAAG;SACd,CAAC;IACN,CAAC;YAAS,CAAC;QACP,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IACxB,CAAC;AACL,CAAC;AAED,MAAa,YAAY;IAEJ,OAAO,CAAwC;IACtD,UAAU,CAAU;IAE9B;;OAEG;IACH,YAAY,YAAY,GAAG,KAAK;QAC5B,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACnD,CAAC;IAED,IAAW,SAAS,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAEhE,IAAW,KAAK,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAE9D,IAAW,KAAK,CAAC,CAAU;QACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAEM,UAAU,CAAI,EAAoB,EAAE,YAA+B,KAAK;QAC3E,OAAO,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEM,KAAK,GAAG,GAAG,EAAE;QAChB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC,CAAC;IAEQ,QAAQ,CAAC,SAAkB;QACjC,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC5B,CAAC;IACL,CAAC;IAED,kBAAkB;IACR,gBAAgB;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,kBAAkB;IACR,gBAAgB;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED;;0EAEsE;IAC5D,wBAAwB;QAC9B,OAAO,IAAI,aAAK,CAAS,CAAC,CAAC,CAAC;IAChC,CAAC;CACJ;AAvDD,oCAuDC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAIxB;IAFpB,YACI,OAAO,GAAG,yEAAyE,EACnE,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,eAAU,GAAV,UAAU,CAAS;IAGvC,CAAC;CACJ;AARD,sDAQC"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActionResult = exports.LogicModel = void 0;
4
+ const Loading_1 = require("./Loading");
5
+ const types_1 = require("../types");
6
+ const promiseExtended_1 = require("../structures/promiseExtended");
7
+ const logger_1 = require("../logger");
8
+ class LogicModel {
9
+ _loading;
10
+ get isLoading() { return this._loading.isLoading; }
11
+ logger;
12
+ _namedRunners = new Map();
13
+ _runningActionNames = new Set();
14
+ constructor(name, useFirstInit = true) {
15
+ this.logger = (0, logger_1.createLogger)(`[${name || this.constructor.name}]`);
16
+ this._loading = this.pureConstructLoadingModel(useFirstInit);
17
+ }
18
+ pureConstructLoadingModel(useFirstInit) {
19
+ return new Loading_1.LoadingModel(useFirstInit);
20
+ }
21
+ runAction(worker, options = {}, errorCtx) {
22
+ const started = Date.now();
23
+ const name = options.name;
24
+ if (name && !options.noLogs) {
25
+ this.logger.log(`runAction "${name}" started...`);
26
+ }
27
+ const runner = async () => {
28
+ const { exclusive = false, noLoading = false, join } = options;
29
+ let existingRunner;
30
+ if (join && name) {
31
+ existingRunner = this._namedRunners.get(name);
32
+ if (existingRunner != null) {
33
+ if (join === 'cancel') {
34
+ if (!options.noLogs) {
35
+ this.logger.warn(`runAction "${name}" has been skipped because another instance of it is in progress`);
36
+ }
37
+ return undefined;
38
+ }
39
+ else if (join === 'merge') {
40
+ if (!options.noLogs) {
41
+ this.logger.log(`runAction "${name}" merging with existing instance...`);
42
+ }
43
+ return existingRunner;
44
+ }
45
+ }
46
+ }
47
+ const wrapWorker = async () => {
48
+ const storedName = name || `<unnamed:${Date.now()}>`;
49
+ this._runningActionNames.add(storedName);
50
+ try {
51
+ let result;
52
+ if (!noLoading) {
53
+ const resultWithLoading = await (0, Loading_1.withLoading)(this._loading, worker, !!exclusive);
54
+ if (resultWithLoading.aborted) {
55
+ const othersNames = Array.from(this._runningActionNames, n => `"${n}"`).join(', ') || '<?>';
56
+ const message = `runAction(exclusive=${exclusive}): "${storedName}" has been skipped, others in progress: ${othersNames}`;
57
+ if (exclusive === 'throw') {
58
+ throw new Loading_1.ExclusiveLoadingError(message, storedName);
59
+ }
60
+ this.logger.warn(message);
61
+ return undefined;
62
+ }
63
+ result = resultWithLoading.result;
64
+ }
65
+ else {
66
+ result = await worker();
67
+ }
68
+ if (name && !options.noLogs) {
69
+ this.logger.log(`runAction "${storedName}" succeed in ${Date.now() - started}ms`);
70
+ }
71
+ return result;
72
+ }
73
+ finally {
74
+ this._runningActionNames.delete(storedName);
75
+ }
76
+ };
77
+ const wrapped = wrapWorker();
78
+ if (!name) {
79
+ return await wrapped;
80
+ }
81
+ try {
82
+ this._namedRunners.set(name, wrapped);
83
+ return await wrapped;
84
+ }
85
+ finally {
86
+ this._namedRunners.delete(name);
87
+ }
88
+ };
89
+ return ActionResult.expectExclusive(promiseExtended_1.PromiseExtended.run(runner))
90
+ .onError(data => {
91
+ this.logger.error(...formatError({
92
+ name,
93
+ err: data.source,
94
+ errorCtx,
95
+ elapsed: Date.now() - started,
96
+ }));
97
+ });
98
+ }
99
+ }
100
+ exports.LogicModel = LogicModel;
101
+ function formatError({ name, err, errorCtx, elapsed }) {
102
+ const prepend = (val, ...strs) => (val ? [...strs, ...(Array.isArray(val) ? val : [val])] : [null]);
103
+ const getErrorCause = () => {
104
+ if (!err) {
105
+ return [''];
106
+ }
107
+ if (Array.isArray(err)) {
108
+ return err.map(e => e.cause ?? '');
109
+ }
110
+ return [err.cause ?? ''];
111
+ };
112
+ return [
113
+ `runAction "${name || '<unnamed>'}" got an error(s) after ${elapsed}ms:`,
114
+ err,
115
+ ...prepend(getErrorCause(), '\nCause:'),
116
+ ...prepend(types_1.Getter.toValue(errorCtx), '\nContext:'),
117
+ ];
118
+ }
119
+ var ActionResult;
120
+ (function (ActionResult) {
121
+ let Expect;
122
+ (function (Expect) {
123
+ Expect.Config = {
124
+ name: 'exclusive',
125
+ ErrCtor: Loading_1.ExclusiveLoadingError,
126
+ };
127
+ })(Expect = ActionResult.Expect || (ActionResult.Expect = {}));
128
+ ActionResult.expectExclusive = promiseExtended_1.PromiseExtended.ErrorConfig.createExpecter(Expect.Config);
129
+ function createSucceeded(data) {
130
+ return ActionResult.expectExclusive(promiseExtended_1.PromiseExtended.succeeded(data));
131
+ }
132
+ ActionResult.createSucceeded = createSucceeded;
133
+ })(ActionResult || (exports.ActionResult = ActionResult = {}));
134
+ //# sourceMappingURL=LogicModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogicModel.js","sourceRoot":"","sources":["../../../src/models/LogicModel.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ class Model {
9
9
  this._value = v;
10
10
  this._defaultValue = v;
11
11
  }
12
- get value() { return getter_1.Getter.getValue(this._value); }
12
+ get value() { return getter_1.Getter.toValue(this._value); }
13
13
  set value(v) {
14
14
  this.setValue(v);
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Model.js","sourceRoot":"","sources":["../../../src/models/Model.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAGzC,MAAa,KAAK;IACN,MAAM,CAAsB;IAEnB,aAAa,CAAsB;IAEpD,YAAY,IAAyB,IAAI;QACrC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAW,KAAK,KAAK,OAAO,eAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC;IAC5D,IAAW,KAAK,CAAC,CAAI;QACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAEM,QAAQ,CAAC,KAA0B;QACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;CACJ;AAtBD,sBAsBC"}
1
+ {"version":3,"file":"Model.js","sourceRoot":"","sources":["../../../src/models/Model.ts"],"names":[],"mappings":";;;AACA,4CAAyC;AAGzC,MAAa,KAAK;IACN,MAAM,CAAsB;IAEnB,aAAa,CAAsB;IAEpD,YAAY,IAAyB,IAAI;QACrC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED,IAAW,KAAK,KAAK,OAAO,eAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC,CAAC,CAAC;IAC3D,IAAW,KAAK,CAAC,CAAI;QACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAEM,QAAQ,CAAC,KAA0B;QACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACtC,CAAC;CACJ;AAtBD,sBAsBC"}
@@ -87,7 +87,10 @@ class PromiseExtended {
87
87
  }
88
88
  return this;
89
89
  }
90
- expectError(name, ErrCtor, processor) {
90
+ expectError(nameOrConfig, _ErrCtor, _processor) {
91
+ const { name, ErrCtor, processor } = typeof nameOrConfig === 'string'
92
+ ? { name: nameOrConfig, ErrCtor: _ErrCtor, processor: _processor }
93
+ : nameOrConfig;
91
94
  this._errorProcessors.push(errorData => {
92
95
  const src = errorData?.source;
93
96
  if (src && src instanceof ErrCtor) {
@@ -166,6 +169,17 @@ class PromiseExtended {
166
169
  }
167
170
  }
168
171
  exports.PromiseExtended = PromiseExtended;
172
+ (function (PromiseExtended) {
173
+ let ErrorConfig;
174
+ (function (ErrorConfig) {
175
+ function createExpecter(config) {
176
+ return (promise, processor) => {
177
+ return promise.expectError({ ...config, processor });
178
+ };
179
+ }
180
+ ErrorConfig.createExpecter = createExpecter;
181
+ })(ErrorConfig = PromiseExtended.ErrorConfig || (PromiseExtended.ErrorConfig = {}));
182
+ })(PromiseExtended || (exports.PromiseExtended = PromiseExtended = {}));
169
183
  /*
170
184
 
171
185
  Idea: would be nice to combine few Promises and PromiseExtended's into one PromiseExtended instance, so the final result will be handled by onSuccess/onError
@@ -1 +1 @@
1
- {"version":3,"file":"promiseExtended.js","sourceRoot":"","sources":["../../../src/structures/promiseExtended.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promiseExtended.js","sourceRoot":"","sources":["../../../src/structures/promiseExtended.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export function createManualPromise() {
2
+ let resolve;
3
+ let reject;
4
+ const promise = new Promise((_resolve, _reject) => {
5
+ resolve = _resolve;
6
+ reject = _reject;
7
+ });
8
+ return {
9
+ get promise() { return promise; },
10
+ get resolve() { return resolve; },
11
+ get reject() { return reject; },
12
+ };
13
+ }
14
+ //# sourceMappingURL=manualPromise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manualPromise.js","sourceRoot":"","sources":["../../../src/async/manualPromise.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,mBAAmB;IAE/B,IAAI,OAAyB,CAAC;IAC9B,IAAI,MAA4B,CAAC;IAEjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QACjD,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,OAAO,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,IAAI,OAAO,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC;KAClC,CAAC;AACN,CAAC"}
package/esm/async/misc.js CHANGED
@@ -5,17 +5,5 @@ export async function chainPromises(...promises) {
5
5
  const applyAsync = (acc, val) => acc.then(val);
6
6
  return promises.reduce(applyAsync, Promise.resolve());
7
7
  }
8
- export function createManualPromise() {
9
- let resolve;
10
- let reject;
11
- const promise = new Promise((_resolve, _reject) => {
12
- resolve = _resolve;
13
- reject = _reject;
14
- });
15
- return {
16
- get promise() { return promise; },
17
- get resolve() { return resolve; },
18
- get reject() { return reject; },
19
- };
20
- }
8
+ export * from './manualPromise';
21
9
  //# sourceMappingURL=misc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/async/misc.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,EAA0B,EAAE,OAAgB;IAC1E,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAG,QAAiC;IAEpE,MAAM,UAAU,GAAG,CAAC,GAAkB,EAAE,GAAwB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnF,OAAO,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAQD,MAAM,UAAU,mBAAmB;IAE/B,IAAI,OAAyB,CAAC;IAC9B,IAAI,MAA4B,CAAC;IAEjC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QACjD,OAAO,GAAG,QAAQ,CAAC;QACnB,MAAM,GAAG,OAAO,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,IAAI,OAAO,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,OAAO,OAAO,CAAC,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,OAAO,MAAM,CAAC,CAAC,CAAC;KAClC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../../src/async/misc.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,EAA0B,EAAE,OAAgB;IAC1E,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAG,QAAiC;IAEpE,MAAM,UAAU,GAAG,CAAC,GAAkB,EAAE,GAAwB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEnF,OAAO,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,cAAc,iBAAiB,CAAC"}