@actdim/utico 1.1.5 → 1.1.7

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 CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  A modern foundation toolkit for complex TypeScript apps.
4
4
 
5
+ [![npm version](https://img.shields.io/npm/v/@actdim/utico.svg)](https://www.npmjs.com/package/@actdim/utico)
6
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.9+-blue.svg)](https://www.typescriptlang.org/)
7
+ [![License: Proprietary](https://img.shields.io/badge/License-Proprietary-red.svg)](LICENSE)
8
+
5
9
  ## Table of Contents
6
10
 
7
11
  - [Installation](#installation)
@@ -21,6 +25,18 @@ A modern foundation toolkit for complex TypeScript apps.
21
25
 
22
26
  ---
23
27
 
28
+ ## Quick Start
29
+
30
+ Try @actdim/utico instantly in your browser without any installation:
31
+
32
+ [![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/~/github.com/actdim/utico)
33
+
34
+ Once the project loads, run the tests to see it in action:
35
+
36
+ ```bash
37
+ pnpm run test
38
+ ```
39
+
24
40
  ## Installation
25
41
 
26
42
  ```bash
@@ -573,106 +589,116 @@ user.passwordHash // => 'abc123' — still directly accessible
573
589
 
574
590
  ---
575
591
 
576
- ### dateTimeDataFormat — Date/Time Serialisation
577
-
578
- **Import:** `@actdim/utico/dateTimeDataFormat`
579
-
580
- **Peer dependency:** `luxon ^3`
581
-
582
- UTC-first date/time utilities built on [Luxon](https://moment.github.io/luxon/). Provides a canonical wire format (`yyyy-MM-dd'T'HH:mm:ss.SSS`), serialisation/deserialisation, display formatting, and helpers for OLE Automation and numeric timestamps.
583
-
584
- #### Types
585
-
586
- | Type | Description |
587
- |------|-------------|
588
- | `DateTimeDataFormat` | Interface for the default export: `serialize`, `deserialize`, `tryDeserialize`, `normalize`, `isValid`, `serializationFormat` |
589
- | `DateValueFormats` | `{ string?: string; number?: DateNumberFormat }` format hints passed to `toDateTime` |
590
-
591
- #### Enum: `DateNumberFormat`
592
-
593
- | Member | Description |
594
- |--------|-------------|
595
- | `UnixTimeMilliseconds` | Default milliseconds since Unix epoch |
596
- | `UnixTimeSeconds` | Seconds since Unix epoch |
597
- | `OADate` | Microsoft OLE Automation date (fractional days since 1899-12-30) |
598
-
599
- #### Functions
600
-
601
- | Function | Description |
602
- |----------|-------------|
603
- | `toDateTime(source, formats?)` | Converts `string \| number \| Date \| DateTime` -> `DateTime` (UTC). Accepts optional `DateValueFormats` hints |
604
- | `fromLocalDate(date)` | Reads the local time parts of a `Date` (e.g. from `normalize()`) and places them in UTC. Use to serialize a normalized `Date` back to the wire format |
605
- | `formatDate(date, format?)` | Formats a `Date` or `DateTime` using a Luxon format string. Auto-selects a locale format when `format` is omitted |
606
- | `getDateFromNumber(value, fmt?)` | Converts a numeric timestamp to a `Date` according to `DateNumberFormat` |
607
- | `getDateFromOADate(oaDate)` | Converts a Microsoft OADate number to `Date` |
608
- | `getOADateFromDate(date)` | Converts a `Date` to a Microsoft OADate string |
609
-
610
- #### Default export `dateTimeFormat`
611
-
612
- | Method / Property | Signature | Description |
613
- |-------------------|-----------|-------------|
614
- | `serializationFormat` | `string` | `"yyyy-MM-dd'T'HH:mm:ss.SSS"` — the canonical wire format |
615
- | `serialize(source)` | `-> string \| null` | Formats any supported source to the wire format |
616
- | `deserialize(value)` | `-> DateTime` | Parses a wire-format string; throws on invalid input |
617
- | `tryDeserialize(value)` | `-> DateTime \| null` | Like `deserialize` but returns `null` instead of throwing |
618
- | `isValid(source)` | `-> boolean` | `true` for `null`, a valid wire-format string, or any `Date` |
619
- | `normalize(source)` | `-> Date \| null` | Converts any supported source to a native `Date`. The local accessors (`getHours()`, etc.) reflect the original UTC values |
620
-
621
- #### Usage Examples
622
-
623
- ```typescript
624
- import dateTimeFormat, { toDateTime, fromLocalDate, formatDate, DateNumberFormat } from '@actdim/utico/dateTimeDataFormat';
625
- import { DateTime } from 'luxon';
626
-
627
- // Deserialize a wire-format string -> Luxon DateTime (UTC)
628
- const dt = dateTimeFormat.deserialize("2024-03-15T10:30:45.123");
629
- dt.year; // 2024
630
- dt.hour; // 10
631
- dt.zoneName; // "UTC"
632
-
633
- // Serialize back to wire format
634
- dateTimeFormat.serialize(dt); // "2024-03-15T10:30:45.123"
635
- dateTimeFormat.serialize(new Date(...)); // same format
636
-
637
- // Safe parse — returns null instead of throwing
638
- dateTimeFormat.tryDeserialize("bad"); // null
639
-
640
- // isValid
641
- dateTimeFormat.isValid("2024-03-15T10:30:45.000"); // true
642
- dateTimeFormat.isValid("not-a-date"); // false
643
- dateTimeFormat.isValid(null); // true (no value is OK)
644
-
645
- // normalize — native Date whose getHours() reflects the UTC hour
646
- const date = dateTimeFormat.normalize("2024-03-15T10:30:45.000");
647
- date.getHours(); // 10 regardless of local timezone
648
-
649
- // toDateTime flexible conversion
650
- toDateTime("2024-03-15T10:30:45.000"); // from s11n string
651
- toDateTime(new Date()); // from Date
652
- toDateTime(1710496245000, { number: DateNumberFormat.UnixTimeMilliseconds });
653
- toDateTime(1710496245, { number: DateNumberFormat.UnixTimeSeconds });
654
- toDateTime("03/15/2024", { string: "MM/dd/yyyy" }); // custom format
655
-
656
- // formatDate — display formatting
657
- formatDate(dt, "yyyy-MM-dd"); // "2024-03-15"
658
- formatDate(dt); // auto-selected locale format
659
-
660
- // fromLocalDate serialize a normalize()'d Date back to the wire format
661
- //
662
- // normalize() produces a Date whose getHours() equals the original UTC hour.
663
- // toDateTime(date) reads the epoch as UTC, which gives the wrong result for
664
- // such Dates. fromLocalDate() reads the local time parts instead.
665
- //
666
- const normalized = dateTimeFormat.normalize("2024-03-15T10:30:45.123");
667
- normalized.getHours(); // 10 — correct for display in <input>
668
- dateTimeFormat.serialize(fromLocalDate(normalized)); // "2024-03-15T10:30:45.123" ✓
669
-
670
- // Typical <input type="datetime-local"> round-trip:
671
- // input.valueAsDate = dateTimeFormat.normalize(serverValue)
672
- // ...user edits...
673
- // const saved = dateTimeFormat.serialize(input.value); // simplest
674
- // const saved = dateTimeFormat.serialize(fromLocalDate(input.valueAsDate)); // via Date
675
- ```
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
+ ```
676
702
 
677
703
  ---
678
704
 
@@ -6,28 +6,28 @@ class o {
6
6
  return -o.asc(t, r);
7
7
  }
8
8
  }
9
- Array.prototype.unfold = function(i) {
10
- return this.reduce((t, r) => (Array.prototype.push.apply(t, i(r)), t), []);
9
+ Array.prototype.unfold = function(n) {
10
+ return this.reduce((t, r) => (Array.prototype.push.apply(t, n(r)), t), []);
11
11
  };
12
- Array.prototype.max = function(i, t) {
13
- return this.length == 0 ? t : this.map(i).sort(o.desc)[0];
12
+ Array.prototype.max = function(n, t) {
13
+ return this.length == 0 ? t : this.map(n).sort(o.desc)[0];
14
14
  };
15
- Array.prototype.min = function(i, t) {
16
- return this.length == 0 ? t : this.map(i).sort(o.asc)[0];
15
+ Array.prototype.min = function(n, t) {
16
+ return this.length == 0 ? t : this.map(n).sort(o.asc)[0];
17
17
  };
18
- Array.prototype.orderBy = function(i) {
19
- return this.slice(0).sort((t, r) => o.asc(i(t), i(r)));
18
+ Array.prototype.orderBy = function(n) {
19
+ return this.slice(0).sort((t, r) => o.asc(n(t), n(r)));
20
20
  };
21
- Array.prototype.orderByDesc = function(i) {
22
- return this.slice(0).sort((t, r) => o.desc(i(t), i(r)));
21
+ Array.prototype.orderByDesc = function(n) {
22
+ return this.slice(0).sort((t, r) => o.desc(n(t), n(r)));
23
23
  };
24
- Array.prototype.groupBy = function(i) {
24
+ Array.prototype.groupBy = function(n) {
25
25
  return this.reduce((t, r) => {
26
- const n = i(r);
27
- return (t[n] = t[n] || []).push(r), t;
26
+ const i = n(r);
27
+ return (t[i] = t[i] || []).push(r), t;
28
28
  }, {});
29
29
  };
30
- class y {
30
+ class c {
31
31
  static notNull(t) {
32
32
  return t != null;
33
33
  }
@@ -38,30 +38,30 @@ class y {
38
38
  return t !== "";
39
39
  }
40
40
  // unique
41
- static distinct(t, r, n) {
42
- return n.indexOf(t) === r;
41
+ static distinct(t, r, i) {
42
+ return i.indexOf(t) === r;
43
43
  }
44
44
  }
45
- Array.prototype.distinct = function(i) {
46
- if (!i)
47
- return this.filter(y.distinct);
45
+ Array.prototype.distinct = function(n) {
46
+ if (!n)
47
+ return this.filter(c.distinct);
48
48
  let t = [];
49
49
  return this.filter(function(r) {
50
- const n = i(r);
51
- return t.indexOf(n) >= 0 ? !1 : t.push(n);
50
+ const i = n(r);
51
+ return t.indexOf(i) >= 0 ? !1 : t.push(i);
52
52
  });
53
53
  };
54
- Array.prototype.copy = function(i, t = 0, r = 0, n) {
55
- return s(i, this, t, r, n);
54
+ Array.prototype.copy = function(n, t = 0, r = 0, i) {
55
+ return p(n, this, t, r, i);
56
56
  };
57
- Array.prototype.copyTo = function(i, t = 0, r = 0, n) {
58
- return s(this, i, t, r, n);
57
+ Array.prototype.copyTo = function(n, t = 0, r = 0, i) {
58
+ return p(this, n, t, r, i);
59
59
  };
60
- function s(i, t, r = 0, n = 0, e) {
61
- (r == null || r < 0) && (r = 0), (n == null || n < 0) && (n = 0), e == null && (e = Math.min(i.length, i.length - r));
62
- let p = n;
60
+ function p(n, t, r = 0, i = 0, e) {
61
+ r < 0 && (r = 0), i < 0 && (i = 0), e == null && (e = Math.min(n.length, n.length - r));
62
+ let s = i;
63
63
  for (let u = r; u < e; u++)
64
- t[p] = i[u], p++;
64
+ t[s] = n[u], s++;
65
65
  return t;
66
66
  }
67
67
  //# sourceMappingURL=arrayExtensions.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arrayExtensions.es.js","sources":["D:/Src/my/actdim/public/utico/src/arrayExtensions.ts"],"sourcesContent":null,"names":["Sorters","a","b","callback","res","element","selector","defaultValue","result","item","value","Filters","index","self","keys","key","src","srcIndex","dstIndex","length","copyArray","dst","j","i"],"mappings":"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"}
1
+ {"version":3,"file":"arrayExtensions.es.js","sources":["D:/Src/my/actdim/public/utico/src/arrayExtensions.ts"],"sourcesContent":null,"names":["Sorters","a","b","callback","res","element","selector","defaultValue","result","item","value","Filters","index","self","keys","key","src","srcIndex","dstIndex","length","copyArray","dst","j","i"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Executor } from './typeCore';
2
+ export declare let defaultMutexTimeout: number;
2
3
  declare class AsyncMutex {
3
4
  private mutex;
4
5
  private locked;
@@ -1 +1 @@
1
- {"version":3,"file":"asyncMutex.d.ts","sourceRoot":"","sources":["../src/asyncMutex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQtC,cAAM,UAAU;IACZ,OAAO,CAAC,KAAK,CAAqB;IAElC,OAAO,CAAC,MAAM,CAAS;IAEjB,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC;IAgCnD,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI;IAaxB,QAAQ,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAQrE;AAGD,OAAO,EACH,UAAU,EACb,CAAC"}
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,24 +1,25 @@
1
+ let i = 5e3;
1
2
  class n {
2
3
  // or Mutex
3
4
  mutex = Promise.resolve();
4
5
  locked = !1;
5
- async lock(e) {
6
+ async lock(e = i) {
6
7
  let t = () => {
7
8
  }, s;
8
- const i = this.mutex;
9
+ const r = this.mutex;
9
10
  this.mutex = this.mutex.then(() => new Promise(t)), this.locked = !0;
10
- const r = new Promise((o, l) => {
11
+ const l = new Promise((o, c) => {
11
12
  t = o, e && (s = setTimeout(() => {
12
- l(new Error("Mutex lock timeout"));
13
+ c(new Error("Mutex lock timeout"));
13
14
  }, e));
14
15
  });
15
16
  try {
16
- const o = await r;
17
+ const o = await l;
17
18
  return clearTimeout(s), () => {
18
19
  this.locked = !1, o();
19
20
  };
20
21
  } catch (o) {
21
- throw this.mutex = i, this.locked = !1, o;
22
+ throw this.mutex = r, this.locked = !1, o;
22
23
  }
23
24
  }
24
25
  tryLock() {
@@ -32,7 +33,7 @@ class n {
32
33
  this.locked = !1, e();
33
34
  };
34
35
  }
35
- async dispatch(e, t) {
36
+ async dispatch(e, t = i) {
36
37
  const s = await this.lock(t);
37
38
  try {
38
39
  return await e();
@@ -42,6 +43,7 @@ class n {
42
43
  }
43
44
  }
44
45
  export {
45
- n as AsyncMutex
46
+ n as AsyncMutex,
47
+ i as defaultMutexTimeout
46
48
  };
47
49
  //# sourceMappingURL=asyncMutex.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"asyncMutex.es.js","sources":["D:/Src/my/actdim/public/utico/src/asyncMutex.ts"],"sourcesContent":null,"names":["AsyncMutex","timeoutMs","begin","timer","previous","lockPromise","resolve","reject","unlock","err","promise","res","fn"],"mappings":"AAQA,MAAMA,EAAW;AAAA;AAAA,EACL,QAAQ,QAAQ,QAAA;AAAA,EAEhB,SAAS;AAAA,EAEjB,MAAM,KAAKC,GAAyC;AAChD,QAAIC,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,GAAgC;AAC/D,UAAMO,IAAS,MAAM,KAAK,KAAKP,CAAS;AACxC,QAAI;AACA,aAAO,MAAMW,EAAA;AAAA,IACjB,UAAA;AACI,MAAAJ,EAAA;AAAA,IACJ;AAAA,EACJ;AACJ;"}
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;"}
@@ -1,5 +1,10 @@
1
1
  declare const _default: {
2
- dateTime: import('./dateTimeDataFormat').DateTimeDataFormat;
2
+ dateTime: {
3
+ transports: {
4
+ commonLocal: import('./dateTimeDataFormat').DateTimeTransport;
5
+ utc: import('./dateTimeDataFormat').DateTimeTransport;
6
+ };
7
+ };
3
8
  };
4
9
  export default _default;
5
10
  //# sourceMappingURL=dataFormats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataFormats.d.ts","sourceRoot":"","sources":["../src/dataFormats.ts"],"names":[],"mappings":";;;AACA,wBAEE"}
1
+ {"version":3,"file":"dataFormats.d.ts","sourceRoot":"","sources":["../src/dataFormats.ts"],"names":[],"mappings":";;;;;;;;AAEA,wBAIE"}
@@ -1,8 +1,10 @@
1
- import t from "./dateTimeDataFormat.es.js";
2
- const e = {
3
- dateTime: t
1
+ import { dateTimeTransports as t } from "./dateTimeDataFormat.es.js";
2
+ const r = {
3
+ dateTime: {
4
+ transports: t
5
+ }
4
6
  };
5
7
  export {
6
- e as default
8
+ r as default
7
9
  };
8
10
  //# sourceMappingURL=dataFormats.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataFormats.es.js","sources":["D:/Src/my/actdim/public/utico/src/dataFormats.ts"],"sourcesContent":null,"names":["dataFormats","dateTimeDataFormat"],"mappings":";AACA,MAAAA,IAAe;AAAA,EACX,UAAUC;AACd;"}
1
+ {"version":3,"file":"dataFormats.es.js","sources":["D:/Src/my/actdim/public/utico/src/dataFormats.ts"],"sourcesContent":null,"names":["dataFormats","dateTimeTransports"],"mappings":";AAEA,MAAAA,IAAe;AAAA,EACX,UAAU;AAAA,IACN,YAAYC;AAAA,EAAA;AAEpB;"}
@@ -1,27 +1,63 @@
1
- import { DateTime } from 'luxon';
2
- export type DateTimeDataFormat = {
3
- serializationFormat: string;
4
- normalize: (source: string | number | Date) => Date | null;
5
- serialize: (source: string | number | Date | DateTime) => string | null;
6
- deserialize: (value: string) => DateTime;
7
- tryDeserialize: (value: string) => DateTime | null;
8
- isValid: (source: string | Date) => boolean;
9
- };
10
- export declare enum DateNumberFormat {
11
- UnixTimeMilliseconds = 0,
12
- UnixTimeSeconds = 1,
13
- OADate = 2
14
- }
15
- export declare function getDateFromOADate(oaDate: number): Date;
16
- export declare function getOADateFromDate(date: Date): string;
17
- export declare function getDateFromNumber(value: number, dateNumberFormat?: DateNumberFormat): Date | null;
18
- export declare function fromLocalDate(date: Date): DateTime | null;
19
- export type DateValueFormats = {
20
- string?: string;
21
- number?: DateNumberFormat;
22
- };
23
- export declare function toDateTime(source: any, formats?: DateValueFormats): DateTime | null;
24
- export declare function formatDate(date: Date | DateTime, format?: string): string;
25
- declare const dateTimeFormat: DateTimeDataFormat;
26
- export default dateTimeFormat;
1
+ import { DateTime, LocaleOptions } from 'luxon';
2
+ export declare const DateTimeNumberFormat: {
3
+ readonly UnixTimeMilliseconds: "unixTimeMilliseconds";
4
+ readonly UnixTimeSeconds: "unixTimeSeconds";
5
+ readonly OADate: "oaDate";
6
+ };
7
+ export type DateTimeNumberFormat = (typeof DateTimeNumberFormat)[keyof typeof DateTimeNumberFormat];
8
+ export declare const DateTimePrecision: {
9
+ readonly Auto: "auto";
10
+ readonly Date: "date";
11
+ readonly Minute: "minute";
12
+ readonly Second: "second";
13
+ readonly Millisecond: "millisecond";
14
+ };
15
+ export type DateTimePrecision = (typeof DateTimePrecision)[keyof typeof DateTimePrecision];
16
+ export declare const DateTimeKind: {
17
+ readonly Local: "local";
18
+ readonly Utc: "utc";
19
+ };
20
+ export type DateTimeKind = (typeof DateTimeKind)[keyof typeof DateTimeKind];
21
+ export declare const DateTimeStringInterpretation: {
22
+ readonly Auto: "auto";
23
+ readonly Local: "local";
24
+ readonly Utc: "utc";
25
+ };
26
+ export type DateTimeStringInterpretation = (typeof DateTimeStringInterpretation)[keyof typeof DateTimeStringInterpretation];
27
+ export declare const DateTimeExportInterpretation: {
28
+ readonly Original: "original";
29
+ readonly Local: "local";
30
+ readonly Utc: "utc";
31
+ readonly Match: "match";
32
+ };
33
+ export type DateTimeExportInterpretation = (typeof DateTimeExportInterpretation)[keyof typeof DateTimeExportInterpretation];
34
+ declare const $isDateTimeExtended: unique symbol;
35
+ export type DateTimeExtended = DateTime & {
36
+ [$isDateTimeExtended]: true;
37
+ precision: DateTimePrecision;
38
+ exportToString: (formatOrKind?: string | DateTimeKind, interpretAs?: DateTimeExportInterpretation, options?: LocaleOptions) => string;
39
+ };
40
+ export declare function isDateTimeExtended(obj: unknown): obj is DateTimeExtended;
41
+ export type ToDateTimeOptions = {
42
+ stringFormat?: string;
43
+ stringInterpretAs?: DateTimeStringInterpretation;
44
+ numberFormat?: DateTimeNumberFormat;
45
+ numberInterpretAs?: DateTimeKind;
46
+ dateInterpretAs?: DateTimeKind;
47
+ precision?: DateTimePrecision;
48
+ };
49
+ export declare const defaultToDateTimeOptions: ToDateTimeOptions;
50
+ export declare function getDateTimeFromString(value: string, format?: string, precision?: DateTimePrecision, interpretAs?: DateTimeStringInterpretation): DateTimeExtended | null;
51
+ export declare function getDateTimeFromNumber(value: number, dtNumberFormat?: DateTimeNumberFormat, interpretAs?: DateTimeKind, precision?: DateTimePrecision): DateTimeExtended | null;
52
+ export declare function getDateTimeNumber(dt: DateTime | DateTimeExtended, dtNumberFormat?: DateTimeNumberFormat): number | null;
53
+ export declare function toDateTime(source: string | number | Date | DateTime | DateTimeExtended | null | undefined, options?: ToDateTimeOptions): DateTimeExtended | null;
54
+ export type DateTimeTransport = {
55
+ serialize: (dt: DateTimeExtended | null | undefined) => string | null;
56
+ deserialize: (value: string | number | null | undefined) => DateTimeExtended | null;
57
+ };
58
+ export declare const dateTimeTransports: {
59
+ commonLocal: DateTimeTransport;
60
+ utc: DateTimeTransport;
61
+ };
62
+ export {};
27
63
  //# sourceMappingURL=dateTimeDataFormat.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dateTimeDataFormat.d.ts","sourceRoot":"","sources":["../src/dateTimeDataFormat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAOjC,MAAM,MAAM,kBAAkB,GAAG;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3D,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,KAAK,MAAM,GAAG,IAAI,CAAC;IACxE,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC;IACzC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC;IACnD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC;CAC/C,CAAC;AAEF,oBAAY,gBAAgB;IACxB,oBAAoB,IAAA;IACpB,eAAe,IAAA;IACf,MAAM,IAAA;CACT;AAWD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAOtD;AAOD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAQpD;AAED,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,MAAM,EACb,gBAAgB,mBAAwC,GACzD,IAAI,GAAG,IAAI,CAUb;AAKD,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,GAAG,IAAI,CAGzD;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAkBF,wBAAgB,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,QAAQ,GAAG,IAAI,CAenF;AAGD,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAazE;AAED,QAAA,MAAM,cAAc,EAAE,kBA2CrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"dateTimeDataFormat.d.ts","sourceRoot":"","sources":["../src/dateTimeDataFormat.ts"],"names":[],"mappings":"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"}