@actdim/utico 1.1.7 → 1.1.8
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.
- package/README.md +123 -123
- package/dist/{asyncMutex.d.ts → asyncLock.d.ts} +5 -5
- package/dist/asyncLock.d.ts.map +1 -0
- package/dist/{asyncMutex.es.js → asyncLock.es.js} +11 -12
- package/dist/asyncLock.es.js.map +1 -0
- package/dist/store/storeDb.es.js +1 -1
- package/dist/store/storeDb.es.js.map +1 -1
- package/package.json +1 -1
- package/dist/asyncMutex.d.ts.map +0 -1
- package/dist/asyncMutex.es.js.map +0 -1
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ A modern foundation toolkit for complex TypeScript apps.
|
|
|
18
18
|
- [dateTimeDataFormat — Date/Time Serialisation](#datetimedataformat--datetime-serialisation)
|
|
19
19
|
- [StructEvent — Typed DOM Events](#structevent--typed-dom-events)
|
|
20
20
|
- [watchable — Promise & Function Tracking](#watchable--promise--function-tracking)
|
|
21
|
-
- [
|
|
21
|
+
- [asyncLock — Async Lock](#asynclock--async-lock)
|
|
22
22
|
- [store — Structured Persistence](#store--structured-persistence)
|
|
23
23
|
- [cache — Persistent Cache](#cache--persistent-cache)
|
|
24
24
|
- [License](#license)
|
|
@@ -589,116 +589,116 @@ user.passwordHash // => 'abc123' — still directly accessible
|
|
|
589
589
|
|
|
590
590
|
---
|
|
591
591
|
|
|
592
|
-
### dateTimeDataFormat — Date/Time Serialisation
|
|
593
|
-
|
|
594
|
-
**Import:** `@actdim/utico/dateTimeDataFormat`
|
|
595
|
-
|
|
596
|
-
**Peer dependency:** `luxon ^3`
|
|
597
|
-
|
|
598
|
-
Date/time conversion utilities built on [Luxon](https://moment.github.io/luxon/).
|
|
599
|
-
The module converts values from string/number/`Date`/`DateTime`, tracks precision, and exports values either as local ISO (without suffix) or UTC ISO (`Z` suffix).
|
|
600
|
-
|
|
601
|
-
#### Core Types
|
|
602
|
-
|
|
603
|
-
| Type | Description |
|
|
604
|
-
|------|-------------|
|
|
605
|
-
| `DateTimeNumberFormat` | Numeric input/output format: Unix ms, Unix seconds, OADate |
|
|
606
|
-
| `DateTimePrecision` | `auto \| date \| minute \| second \| millisecond` |
|
|
607
|
-
| `DateTimeKind` | `local \| utc` |
|
|
608
|
-
| `DateTimeStringInterpretation` | `auto \| local \| utc` for parsing strings |
|
|
609
|
-
| `DateTimeExportInterpretation` | `original \| local \| utc \| match` for `exportToString` |
|
|
610
|
-
| `DateTimeExtended` | Luxon `DateTime` with extra fields: `precision`, `exportToString(...)` |
|
|
611
|
-
| `ToDateTimeOptions` | Options for `toDateTime(...)` |
|
|
612
|
-
| `DateTimeTransport` | `{ serialize(...), deserialize(...) }` pair for wire transport |
|
|
613
|
-
|
|
614
|
-
#### `DateTimeNumberFormat`
|
|
615
|
-
|
|
616
|
-
| Member | Description |
|
|
617
|
-
|--------|-------------|
|
|
618
|
-
| `UnixTimeMilliseconds` | Default — milliseconds since Unix epoch |
|
|
619
|
-
| `UnixTimeSeconds` | Seconds since Unix epoch |
|
|
620
|
-
| `OADate` | Microsoft OLE Automation date (fractional days since 1899-12-30) |
|
|
621
|
-
|
|
622
|
-
#### Functions
|
|
623
|
-
|
|
624
|
-
| Function | Description |
|
|
625
|
-
|----------|-------------|
|
|
626
|
-
| `toDateTime(source, options?)` | Converts `string \| number \| Date \| DateTime` to `DateTimeExtended` |
|
|
627
|
-
| `getDateTimeFromString(value, format?, precision?, interpretAs?)` | Parses string using explicit format or ISO |
|
|
628
|
-
| `getDateTimeFromNumber(value, numberFormat?, interpretAs?, precision?)` | Parses number into `DateTimeExtended` |
|
|
629
|
-
| `getDateTimeNumber(dt, numberFormat?)` | Converts `DateTime`/`DateTimeExtended` to number |
|
|
630
|
-
| `isDateTimeExtended(obj)` | Type guard for `DateTimeExtended` |
|
|
631
|
-
|
|
632
|
-
#### Ready-to-use transports
|
|
633
|
-
|
|
634
|
-
| Transport | Serialize | Deserialize |
|
|
635
|
-
|-----------|-----------|-------------|
|
|
636
|
-
| `invariantLocalDateTimeTransport` | local ISO without zone suffix | strings as auto, numbers as local Unix seconds |
|
|
637
|
-
| `utcDateTimeTransport` | UTC ISO with `Z` suffix | strings as auto, numbers as UTC Unix seconds |
|
|
638
|
-
|
|
639
|
-
#### Usage Examples
|
|
640
|
-
|
|
641
|
-
```typescript
|
|
642
|
-
import {
|
|
643
|
-
toDateTime,
|
|
644
|
-
getDateTimeFromString,
|
|
645
|
-
getDateTimeFromNumber,
|
|
646
|
-
getDateTimeNumber,
|
|
647
|
-
DateTimeKind,
|
|
648
|
-
DateTimePrecision,
|
|
649
|
-
DateTimeNumberFormat,
|
|
650
|
-
DateTimeStringInterpretation,
|
|
651
|
-
DateTimeExportInterpretation,
|
|
652
|
-
invariantLocalDateTimeTransport,
|
|
653
|
-
utcDateTimeTransport
|
|
654
|
-
} from '@actdim/utico/dateTimeDataFormat';
|
|
655
|
-
|
|
656
|
-
// Parse from string (ISO auto-detect)
|
|
657
|
-
const a = toDateTime("2024-03-15T10:30:45.123");
|
|
658
|
-
|
|
659
|
-
// Parse from custom string format
|
|
660
|
-
const b = toDateTime("03/15/2024", { stringFormat: "MM/dd/yyyy" });
|
|
661
|
-
|
|
662
|
-
// Parse from number
|
|
663
|
-
const c = getDateTimeFromNumber(1710496245000, DateTimeNumberFormat.UnixTimeMilliseconds);
|
|
664
|
-
|
|
665
|
-
// Parse string and force interpretation as UTC
|
|
666
|
-
const d = getDateTimeFromString(
|
|
667
|
-
"2024-03-15T10:30:45.123",
|
|
668
|
-
undefined,
|
|
669
|
-
DateTimePrecision.Auto,
|
|
670
|
-
DateTimeStringInterpretation.Utc
|
|
671
|
-
);
|
|
672
|
-
|
|
673
|
-
// Export as ISO local (without zone suffix)
|
|
674
|
-
a.exportToString(DateTimeKind.Local); // "2024-03-15T..."
|
|
675
|
-
|
|
676
|
-
// Export as ISO UTC (with Z)
|
|
677
|
-
a.exportToString(DateTimeKind.Utc); // "2024-03-15T...Z"
|
|
678
|
-
|
|
679
|
-
// Export with explicit interpretation
|
|
680
|
-
a.exportToString(
|
|
681
|
-
DateTimeKind.Local,
|
|
682
|
-
DateTimeExportInterpretation.Local
|
|
683
|
-
);
|
|
684
|
-
|
|
685
|
-
// Precision truncation
|
|
686
|
-
const minute = getDateTimeFromString(
|
|
687
|
-
"2024-03-15T10:30:45.123",
|
|
688
|
-
"yyyy-MM-dd'T'HH:mm:ss.SSS",
|
|
689
|
-
DateTimePrecision.Minute
|
|
690
|
-
);
|
|
691
|
-
minute.second; // 0
|
|
692
|
-
minute.millisecond; // 0
|
|
693
|
-
|
|
694
|
-
// Number conversion back
|
|
695
|
-
getDateTimeNumber(a, DateTimeNumberFormat.UnixTimeSeconds);
|
|
696
|
-
|
|
697
|
-
// Transport helpers
|
|
698
|
-
invariantLocalDateTimeTransport.serialize(a); // local string
|
|
699
|
-
utcDateTimeTransport.serialize(a); // UTC string with Z
|
|
700
|
-
utcDateTimeTransport.serialize(null); // null
|
|
701
|
-
```
|
|
592
|
+
### dateTimeDataFormat — Date/Time Serialisation
|
|
593
|
+
|
|
594
|
+
**Import:** `@actdim/utico/dateTimeDataFormat`
|
|
595
|
+
|
|
596
|
+
**Peer dependency:** `luxon ^3`
|
|
597
|
+
|
|
598
|
+
Date/time conversion utilities built on [Luxon](https://moment.github.io/luxon/).
|
|
599
|
+
The module converts values from string/number/`Date`/`DateTime`, tracks precision, and exports values either as local ISO (without suffix) or UTC ISO (`Z` suffix).
|
|
600
|
+
|
|
601
|
+
#### Core Types
|
|
602
|
+
|
|
603
|
+
| Type | Description |
|
|
604
|
+
|------|-------------|
|
|
605
|
+
| `DateTimeNumberFormat` | Numeric input/output format: Unix ms, Unix seconds, OADate |
|
|
606
|
+
| `DateTimePrecision` | `auto \| date \| minute \| second \| millisecond` |
|
|
607
|
+
| `DateTimeKind` | `local \| utc` |
|
|
608
|
+
| `DateTimeStringInterpretation` | `auto \| local \| utc` for parsing strings |
|
|
609
|
+
| `DateTimeExportInterpretation` | `original \| local \| utc \| match` for `exportToString` |
|
|
610
|
+
| `DateTimeExtended` | Luxon `DateTime` with extra fields: `precision`, `exportToString(...)` |
|
|
611
|
+
| `ToDateTimeOptions` | Options for `toDateTime(...)` |
|
|
612
|
+
| `DateTimeTransport` | `{ serialize(...), deserialize(...) }` pair for wire transport |
|
|
613
|
+
|
|
614
|
+
#### `DateTimeNumberFormat`
|
|
615
|
+
|
|
616
|
+
| Member | Description |
|
|
617
|
+
|--------|-------------|
|
|
618
|
+
| `UnixTimeMilliseconds` | Default — milliseconds since Unix epoch |
|
|
619
|
+
| `UnixTimeSeconds` | Seconds since Unix epoch |
|
|
620
|
+
| `OADate` | Microsoft OLE Automation date (fractional days since 1899-12-30) |
|
|
621
|
+
|
|
622
|
+
#### Functions
|
|
623
|
+
|
|
624
|
+
| Function | Description |
|
|
625
|
+
|----------|-------------|
|
|
626
|
+
| `toDateTime(source, options?)` | Converts `string \| number \| Date \| DateTime` to `DateTimeExtended` |
|
|
627
|
+
| `getDateTimeFromString(value, format?, precision?, interpretAs?)` | Parses string using explicit format or ISO |
|
|
628
|
+
| `getDateTimeFromNumber(value, numberFormat?, interpretAs?, precision?)` | Parses number into `DateTimeExtended` |
|
|
629
|
+
| `getDateTimeNumber(dt, numberFormat?)` | Converts `DateTime`/`DateTimeExtended` to number |
|
|
630
|
+
| `isDateTimeExtended(obj)` | Type guard for `DateTimeExtended` |
|
|
631
|
+
|
|
632
|
+
#### Ready-to-use transports
|
|
633
|
+
|
|
634
|
+
| Transport | Serialize | Deserialize |
|
|
635
|
+
|-----------|-----------|-------------|
|
|
636
|
+
| `invariantLocalDateTimeTransport` | local ISO without zone suffix | strings as auto, numbers as local Unix seconds |
|
|
637
|
+
| `utcDateTimeTransport` | UTC ISO with `Z` suffix | strings as auto, numbers as UTC Unix seconds |
|
|
638
|
+
|
|
639
|
+
#### Usage Examples
|
|
640
|
+
|
|
641
|
+
```typescript
|
|
642
|
+
import {
|
|
643
|
+
toDateTime,
|
|
644
|
+
getDateTimeFromString,
|
|
645
|
+
getDateTimeFromNumber,
|
|
646
|
+
getDateTimeNumber,
|
|
647
|
+
DateTimeKind,
|
|
648
|
+
DateTimePrecision,
|
|
649
|
+
DateTimeNumberFormat,
|
|
650
|
+
DateTimeStringInterpretation,
|
|
651
|
+
DateTimeExportInterpretation,
|
|
652
|
+
invariantLocalDateTimeTransport,
|
|
653
|
+
utcDateTimeTransport
|
|
654
|
+
} from '@actdim/utico/dateTimeDataFormat';
|
|
655
|
+
|
|
656
|
+
// Parse from string (ISO auto-detect)
|
|
657
|
+
const a = toDateTime("2024-03-15T10:30:45.123");
|
|
658
|
+
|
|
659
|
+
// Parse from custom string format
|
|
660
|
+
const b = toDateTime("03/15/2024", { stringFormat: "MM/dd/yyyy" });
|
|
661
|
+
|
|
662
|
+
// Parse from number
|
|
663
|
+
const c = getDateTimeFromNumber(1710496245000, DateTimeNumberFormat.UnixTimeMilliseconds);
|
|
664
|
+
|
|
665
|
+
// Parse string and force interpretation as UTC
|
|
666
|
+
const d = getDateTimeFromString(
|
|
667
|
+
"2024-03-15T10:30:45.123",
|
|
668
|
+
undefined,
|
|
669
|
+
DateTimePrecision.Auto,
|
|
670
|
+
DateTimeStringInterpretation.Utc
|
|
671
|
+
);
|
|
672
|
+
|
|
673
|
+
// Export as ISO local (without zone suffix)
|
|
674
|
+
a.exportToString(DateTimeKind.Local); // "2024-03-15T..."
|
|
675
|
+
|
|
676
|
+
// Export as ISO UTC (with Z)
|
|
677
|
+
a.exportToString(DateTimeKind.Utc); // "2024-03-15T...Z"
|
|
678
|
+
|
|
679
|
+
// Export with explicit interpretation
|
|
680
|
+
a.exportToString(
|
|
681
|
+
DateTimeKind.Local,
|
|
682
|
+
DateTimeExportInterpretation.Local
|
|
683
|
+
);
|
|
684
|
+
|
|
685
|
+
// Precision truncation
|
|
686
|
+
const minute = getDateTimeFromString(
|
|
687
|
+
"2024-03-15T10:30:45.123",
|
|
688
|
+
"yyyy-MM-dd'T'HH:mm:ss.SSS",
|
|
689
|
+
DateTimePrecision.Minute
|
|
690
|
+
);
|
|
691
|
+
minute.second; // 0
|
|
692
|
+
minute.millisecond; // 0
|
|
693
|
+
|
|
694
|
+
// Number conversion back
|
|
695
|
+
getDateTimeNumber(a, DateTimeNumberFormat.UnixTimeSeconds);
|
|
696
|
+
|
|
697
|
+
// Transport helpers
|
|
698
|
+
invariantLocalDateTimeTransport.serialize(a); // local string
|
|
699
|
+
utcDateTimeTransport.serialize(a); // UTC string with Z
|
|
700
|
+
utcDateTimeTransport.serialize(null); // null
|
|
701
|
+
```
|
|
702
702
|
|
|
703
703
|
---
|
|
704
704
|
|
|
@@ -889,13 +889,13 @@ submitButton.addEventListener('click', () => {
|
|
|
889
889
|
|
|
890
890
|
---
|
|
891
891
|
|
|
892
|
-
###
|
|
892
|
+
### asyncLock — Async Lock
|
|
893
893
|
|
|
894
|
-
**Import:** `@actdim/utico/
|
|
894
|
+
**Import:** `@actdim/utico/asyncLock`
|
|
895
895
|
|
|
896
|
-
A lightweight async
|
|
896
|
+
A lightweight async lock that serializes concurrent async operations. Prevents race conditions when accessing shared resources.
|
|
897
897
|
|
|
898
|
-
#### Class: `
|
|
898
|
+
#### Class: `AsyncLock`
|
|
899
899
|
|
|
900
900
|
| Method | Signature | Description |
|
|
901
901
|
| ---------- | ----------------------------------------------------- | ------------------------------------------------------------------- |
|
|
@@ -906,14 +906,14 @@ A lightweight async mutex that serializes concurrent async operations. Prevents
|
|
|
906
906
|
#### Usage Examples
|
|
907
907
|
|
|
908
908
|
```typescript
|
|
909
|
-
import {
|
|
909
|
+
import { AsyncLock } from '@actdim/utico/asyncLock';
|
|
910
910
|
|
|
911
|
-
const
|
|
911
|
+
const lock = new AsyncLock();
|
|
912
912
|
|
|
913
913
|
// --- dispatch: the simplest pattern ---
|
|
914
914
|
|
|
915
915
|
async function updateCounter() {
|
|
916
|
-
return
|
|
916
|
+
return lock.dispatch(async () => {
|
|
917
917
|
const current = await db.get('counter');
|
|
918
918
|
await db.set('counter', current + 1);
|
|
919
919
|
return current + 1;
|
|
@@ -926,7 +926,7 @@ await Promise.all([updateCounter(), updateCounter(), updateCounter()]);
|
|
|
926
926
|
// --- lock / unlock: manual control ---
|
|
927
927
|
|
|
928
928
|
async function criticalSection() {
|
|
929
|
-
const unlock = await
|
|
929
|
+
const unlock = await lock.lock();
|
|
930
930
|
try {
|
|
931
931
|
await doWork();
|
|
932
932
|
} finally {
|
|
@@ -939,10 +939,10 @@ async function criticalSection() {
|
|
|
939
939
|
async function timedSection() {
|
|
940
940
|
let unlock: (() => void) | undefined;
|
|
941
941
|
try {
|
|
942
|
-
unlock = await
|
|
942
|
+
unlock = await lock.lock(5000); // wait at most 5 seconds
|
|
943
943
|
await doSlowWork();
|
|
944
944
|
} catch (e) {
|
|
945
|
-
if ((e as Error).message === '
|
|
945
|
+
if ((e as Error).message === 'Lock timeout') {
|
|
946
946
|
console.warn('Could not acquire lock in time');
|
|
947
947
|
} else {
|
|
948
948
|
throw e;
|
|
@@ -955,7 +955,7 @@ async function timedSection() {
|
|
|
955
955
|
// --- tryLock: fire-and-forget, skip if busy ---
|
|
956
956
|
|
|
957
957
|
function syncSnapshot() {
|
|
958
|
-
const unlock =
|
|
958
|
+
const unlock = lock.tryLock();
|
|
959
959
|
if (!unlock) {
|
|
960
960
|
console.log('Already syncing, skipping...');
|
|
961
961
|
return;
|
|
@@ -977,7 +977,7 @@ function syncSnapshot() {
|
|
|
977
977
|
- `@actdim/utico/store/storeContracts` — types and interfaces
|
|
978
978
|
- `@actdim/utico/store/persistentStore` — `PersistentStore` (main entry point)
|
|
979
979
|
|
|
980
|
-
Built on [Dexie](https://dexie.org/) (IndexedDB). Uses `
|
|
980
|
+
Built on [Dexie](https://dexie.org/) (IndexedDB). Uses `AsyncLock` internally to protect concurrent database access. Transactions are managed automatically — no manual transaction handling needed.
|
|
981
981
|
|
|
982
982
|
#### Core Types
|
|
983
983
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Executor } from './typeCore';
|
|
2
|
-
export declare let
|
|
3
|
-
declare class
|
|
4
|
-
private
|
|
2
|
+
export declare let defaultLockTimeout: number;
|
|
3
|
+
declare class AsyncLock {
|
|
4
|
+
private queue;
|
|
5
5
|
private locked;
|
|
6
6
|
lock(timeoutMs?: number): Promise<() => void>;
|
|
7
7
|
tryLock(): (() => void) | null;
|
|
8
8
|
dispatch<T>(fn: Executor<T>, timeoutMs?: number): Promise<T>;
|
|
9
9
|
}
|
|
10
|
-
export {
|
|
11
|
-
//# sourceMappingURL=
|
|
10
|
+
export { AsyncLock };
|
|
11
|
+
//# sourceMappingURL=asyncLock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncLock.d.ts","sourceRoot":"","sources":["../src/asyncLock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOtC,eAAO,IAAI,kBAAkB,QAAW,CAAC;AAEzC,cAAM,SAAS;IACX,OAAO,CAAC,KAAK,CAAqB;IAElC,OAAO,CAAC,MAAM,CAAS;IAEjB,IAAI,CAAC,SAAS,SAAqB,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAgC/D,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI;IAaxB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,SAAqB,GAAG,OAAO,CAAC,CAAC,CAAC;CAQjF;AAGD,OAAO,EACH,SAAS,EACZ,CAAC"}
|
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
let i = 5e3;
|
|
2
2
|
class n {
|
|
3
|
-
|
|
4
|
-
mutex = Promise.resolve();
|
|
3
|
+
queue = Promise.resolve();
|
|
5
4
|
locked = !1;
|
|
6
5
|
async lock(e = i) {
|
|
7
6
|
let t = () => {
|
|
8
7
|
}, s;
|
|
9
|
-
const r = this.
|
|
10
|
-
this.
|
|
11
|
-
const
|
|
8
|
+
const r = this.queue;
|
|
9
|
+
this.queue = this.queue.then(() => new Promise(t)), this.locked = !0;
|
|
10
|
+
const c = new Promise((o, l) => {
|
|
12
11
|
t = o, e && (s = setTimeout(() => {
|
|
13
|
-
|
|
12
|
+
l(new Error("Lock timeout"));
|
|
14
13
|
}, e));
|
|
15
14
|
});
|
|
16
15
|
try {
|
|
17
|
-
const o = await
|
|
16
|
+
const o = await c;
|
|
18
17
|
return clearTimeout(s), () => {
|
|
19
18
|
this.locked = !1, o();
|
|
20
19
|
};
|
|
21
20
|
} catch (o) {
|
|
22
|
-
throw this.
|
|
21
|
+
throw this.queue = r, this.locked = !1, o;
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
24
|
tryLock() {
|
|
@@ -29,7 +28,7 @@ class n {
|
|
|
29
28
|
const t = new Promise((s) => {
|
|
30
29
|
e = s;
|
|
31
30
|
});
|
|
32
|
-
return this.
|
|
31
|
+
return this.queue = this.queue.then(() => t), () => {
|
|
33
32
|
this.locked = !1, e();
|
|
34
33
|
};
|
|
35
34
|
}
|
|
@@ -43,7 +42,7 @@ class n {
|
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
44
|
export {
|
|
46
|
-
n as
|
|
47
|
-
i as
|
|
45
|
+
n as AsyncLock,
|
|
46
|
+
i as defaultLockTimeout
|
|
48
47
|
};
|
|
49
|
-
//# sourceMappingURL=
|
|
48
|
+
//# sourceMappingURL=asyncLock.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncLock.es.js","sources":["D:/Src/my/actdim/public/utico/src/asyncLock.ts"],"sourcesContent":null,"names":["defaultLockTimeout","AsyncLock","timeoutMs","begin","timer","previous","lockPromise","resolve","reject","unlock","err","promise","res","fn"],"mappings":"AAOO,IAAIA,IAAqB;AAEhC,MAAMC,EAAU;AAAA,EACJ,QAAQ,QAAQ,QAAA;AAAA,EAEhB,SAAS;AAAA,EAEjB,MAAM,KAAKC,IAAYF,GAAyC;AAC5D,QAAIG,IAAsC,MAAM;AAAA,IAAE,GAC9CC;AAEJ,UAAMC,IAAW,KAAK;AACtB,SAAK,QAAQ,KAAK,MAAM,KAAK,MAAM,IAAI,QAAQF,CAAK,CAAC,GACrD,KAAK,SAAS;AAEd,UAAMG,IAAc,IAAI,QAAoB,CAACC,GAASC,MAAW;AAC7D,MAAAL,IAAQI,GAEJL,MACAE,IAAQ,WAAW,MAAM;AACrB,QAAAI,EAAO,IAAI,MAAM,cAAc,CAAC;AAAA,MACpC,GAAGN,CAAS;AAAA,IAEpB,CAAC;AAED,QAAI;AACA,YAAMO,IAAS,MAAMH;AACrB,0BAAaF,CAAK,GACX,MAAM;AACT,aAAK,SAAS,IACdK,EAAA;AAAA,MACJ;AAAA,IACJ,SAASC,GAAK;AACV,iBAAK,QAAQL,GACb,KAAK,SAAS,IACRK;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,UAA+B;AAC3B,QAAI,KAAK,OAAQ,QAAO;AAExB,SAAK,SAAS;AACd,QAAIH;AACJ,UAAMI,IAAU,IAAI,QAAc,CAAAC,MAAO;AAAE,MAAAL,IAAUK;AAAA,IAAK,CAAC;AAC3D,gBAAK,QAAQ,KAAK,MAAM,KAAK,MAAMD,CAAO,GACnC,MAAM;AACT,WAAK,SAAS,IACdJ,EAAA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,SAAYM,GAAiBX,IAAYF,GAAgC;AAC3E,UAAMS,IAAS,MAAM,KAAK,KAAKP,CAAS;AACxC,QAAI;AACA,aAAO,MAAMW,EAAA;AAAA,IACjB,UAAA;AACI,MAAAJ,EAAA;AAAA,IACJ;AAAA,EACJ;AACJ;"}
|
package/dist/store/storeDb.es.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storeDb.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/storeDb.ts"],"sourcesContent":null,"names":["metadataTableName","dataTableName","dataFieldDefTemplate","
|
|
1
|
+
{"version":3,"file":"storeDb.es.js","sources":["D:/Src/my/actdim/public/utico/src/store/storeDb.ts"],"sourcesContent":null,"names":["metadataTableName","dataTableName","dataFieldDefTemplate","lock","AsyncLock","StoreDb","Dexie","name","metadataFieldDefTemplate","db","key","obj","mods","err","action","transactionMode","keys","factory","store"],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/asyncMutex.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asyncMutex.d.ts","sourceRoot":"","sources":["../src/asyncMutex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC,eAAO,IAAI,mBAAmB,QAAW,CAAC;AAE1C,cAAM,UAAU;IACZ,OAAO,CAAC,KAAK,CAAqB;IAElC,OAAO,CAAC,MAAM,CAAS;IAEjB,IAAI,CAAC,SAAS,SAAsB,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAgChE,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI;IAaxB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,SAAsB,GAAG,OAAO,CAAC,CAAC,CAAC;CAQlF;AAGD,OAAO,EACH,UAAU,EACb,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"asyncMutex.es.js","sources":["D:/Src/my/actdim/public/utico/src/asyncMutex.ts"],"sourcesContent":null,"names":["defaultMutexTimeout","AsyncMutex","timeoutMs","begin","timer","previous","lockPromise","resolve","reject","unlock","err","promise","res","fn"],"mappings":"AAQO,IAAIA,IAAsB;AAEjC,MAAMC,EAAW;AAAA;AAAA,EACL,QAAQ,QAAQ,QAAA;AAAA,EAEhB,SAAS;AAAA,EAEjB,MAAM,KAAKC,IAAYF,GAA0C;AAC7D,QAAIG,IAAsC,MAAM;AAAA,IAAE,GAC9CC;AAEJ,UAAMC,IAAW,KAAK;AACtB,SAAK,QAAQ,KAAK,MAAM,KAAK,MAAM,IAAI,QAAQF,CAAK,CAAC,GACrD,KAAK,SAAS;AAEd,UAAMG,IAAc,IAAI,QAAoB,CAACC,GAASC,MAAW;AAC7D,MAAAL,IAAQI,GAEJL,MACAE,IAAQ,WAAW,MAAM;AACrB,QAAAI,EAAO,IAAI,MAAM,oBAAoB,CAAC;AAAA,MAC1C,GAAGN,CAAS;AAAA,IAEpB,CAAC;AAED,QAAI;AACA,YAAMO,IAAS,MAAMH;AACrB,0BAAaF,CAAK,GACX,MAAM;AACT,aAAK,SAAS,IACdK,EAAA;AAAA,MACJ;AAAA,IACJ,SAASC,GAAK;AACV,iBAAK,QAAQL,GACb,KAAK,SAAS,IACRK;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,UAA+B;AAC3B,QAAI,KAAK,OAAQ,QAAO;AAExB,SAAK,SAAS;AACd,QAAIH;AACJ,UAAMI,IAAU,IAAI,QAAc,CAAAC,MAAO;AAAE,MAAAL,IAAUK;AAAA,IAAK,CAAC;AAC3D,gBAAK,QAAQ,KAAK,MAAM,KAAK,MAAMD,CAAO,GACnC,MAAM;AACT,WAAK,SAAS,IACdJ,EAAA;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,SAAYM,GAAiBX,IAAYF,GAAiC;AAC5E,UAAMS,IAAS,MAAM,KAAK,KAAKP,CAAS;AACxC,QAAI;AACA,aAAO,MAAMW,EAAA;AAAA,IACjB,UAAA;AACI,MAAAJ,EAAA;AAAA,IACJ;AAAA,EACJ;AACJ;"}
|