@venizia/ignis-helpers 0.2.0-39 → 0.2.0-40
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/dist/cjs/core.d.ts +1 -0
- package/dist/cjs/core.d.ts.map +1 -1
- package/dist/cjs/core.js +1 -0
- package/dist/cjs/core.js.map +1 -1
- package/dist/cjs/modules/base.d.ts.map +1 -1
- package/dist/cjs/modules/base.js +8 -5
- package/dist/cjs/modules/base.js.map +1 -1
- package/dist/cjs/modules/index.d.ts +1 -0
- package/dist/cjs/modules/index.d.ts.map +1 -1
- package/dist/cjs/modules/index.js +1 -0
- package/dist/cjs/modules/index.js.map +1 -1
- package/dist/cjs/modules/logger/base/base.d.ts.map +1 -1
- package/dist/cjs/modules/logger/base/base.js +3 -0
- package/dist/cjs/modules/logger/base/base.js.map +1 -1
- package/dist/cjs/modules/logger/hf/logger.d.ts.map +1 -1
- package/dist/cjs/modules/logger/hf/logger.js +3 -0
- package/dist/cjs/modules/logger/hf/logger.js.map +1 -1
- package/dist/cjs/modules/logger/slot.d.ts +3 -7
- package/dist/cjs/modules/logger/slot.d.ts.map +1 -1
- package/dist/cjs/modules/logger/slot.js +82 -26
- package/dist/cjs/modules/logger/slot.js.map +1 -1
- package/dist/cjs/modules/network/tcp-socket/base-tcp-server.helper.d.ts +2 -3
- package/dist/cjs/modules/network/tcp-socket/base-tcp-server.helper.d.ts.map +1 -1
- package/dist/cjs/modules/network/tcp-socket/base-tcp-server.helper.js +3 -4
- package/dist/cjs/modules/network/tcp-socket/base-tcp-server.helper.js.map +1 -1
- package/dist/cjs/modules/queue/bullmq/helper.d.ts +6 -1
- package/dist/cjs/modules/queue/bullmq/helper.d.ts.map +1 -1
- package/dist/cjs/modules/queue/bullmq/helper.js +11 -4
- package/dist/cjs/modules/queue/bullmq/helper.js.map +1 -1
- package/dist/cjs/modules/queue/kafka/consumer.js +2 -2
- package/dist/cjs/modules/queue/kafka/consumer.js.map +1 -1
- package/dist/cjs/modules/redis/cluster/cluster.helper.d.ts.map +1 -1
- package/dist/cjs/modules/redis/cluster/cluster.helper.js +1 -1
- package/dist/cjs/modules/redis/cluster/cluster.helper.js.map +1 -1
- package/dist/cjs/modules/redis/common/types.d.ts +11 -3
- package/dist/cjs/modules/redis/common/types.d.ts.map +1 -1
- package/dist/cjs/modules/redis/sentinel/sentinel.helper.d.ts.map +1 -1
- package/dist/cjs/modules/redis/sentinel/sentinel.helper.js +1 -1
- package/dist/cjs/modules/redis/sentinel/sentinel.helper.js.map +1 -1
- package/dist/cjs/modules/redis/single/single.helper.d.ts.map +1 -1
- package/dist/cjs/modules/redis/single/single.helper.js +1 -1
- package/dist/cjs/modules/redis/single/single.helper.js.map +1 -1
- package/dist/cjs/modules/socket/socket-io/client/helper.d.ts +2 -1
- package/dist/cjs/modules/socket/socket-io/client/helper.d.ts.map +1 -1
- package/dist/cjs/modules/socket/socket-io/client/helper.js +7 -2
- package/dist/cjs/modules/socket/socket-io/client/helper.js.map +1 -1
- package/dist/cjs/modules/socket/socket-io/common/types/client.d.ts +2 -0
- package/dist/cjs/modules/socket/socket-io/common/types/client.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/adapters/dayjs.d.ts +21 -0
- package/dist/cjs/modules/temporal/adapters/dayjs.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/adapters/dayjs.js +48 -0
- package/dist/cjs/modules/temporal/adapters/dayjs.js.map +1 -0
- package/dist/cjs/modules/temporal/adapters/guards.d.ts +4 -0
- package/dist/cjs/modules/temporal/adapters/guards.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/adapters/guards.js +14 -0
- package/dist/cjs/modules/temporal/adapters/guards.js.map +1 -0
- package/dist/cjs/modules/temporal/adapters/index.d.ts +4 -0
- package/dist/cjs/modules/temporal/adapters/index.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/adapters/index.js +20 -0
- package/dist/cjs/modules/temporal/adapters/index.js.map +1 -0
- package/dist/cjs/modules/temporal/adapters/luxon.d.ts +13 -0
- package/dist/cjs/modules/temporal/adapters/luxon.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/adapters/luxon.js +26 -0
- package/dist/cjs/modules/temporal/adapters/luxon.js.map +1 -0
- package/dist/cjs/modules/temporal/adapters/native.d.ts +16 -0
- package/dist/cjs/modules/temporal/adapters/native.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/adapters/native.js +38 -0
- package/dist/cjs/modules/temporal/adapters/native.js.map +1 -0
- package/dist/cjs/modules/temporal/calendar.d.ts +52 -0
- package/dist/cjs/modules/temporal/calendar.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/calendar.js +151 -0
- package/dist/cjs/modules/temporal/calendar.js.map +1 -0
- package/dist/cjs/modules/temporal/common/constants.d.ts +20 -0
- package/dist/cjs/modules/temporal/common/constants.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/common/constants.js +33 -0
- package/dist/cjs/modules/temporal/common/constants.js.map +1 -0
- package/dist/cjs/modules/temporal/common/index.d.ts +3 -0
- package/dist/cjs/modules/temporal/common/index.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/common/index.js +19 -0
- package/dist/cjs/modules/temporal/common/index.js.map +1 -0
- package/dist/cjs/modules/temporal/common/types.d.ts +69 -0
- package/dist/cjs/modules/temporal/common/types.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/common/types.js +3 -0
- package/dist/cjs/modules/temporal/common/types.js.map +1 -0
- package/dist/cjs/modules/temporal/helper.d.ts +120 -0
- package/dist/cjs/modules/temporal/helper.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/helper.js +326 -0
- package/dist/cjs/modules/temporal/helper.js.map +1 -0
- package/dist/cjs/modules/temporal/index.d.ts +4 -0
- package/dist/cjs/modules/temporal/index.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/index.js +20 -0
- package/dist/cjs/modules/temporal/index.js.map +1 -0
- package/dist/cjs/modules/temporal/pattern.d.ts +24 -0
- package/dist/cjs/modules/temporal/pattern.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/pattern.js +133 -0
- package/dist/cjs/modules/temporal/pattern.js.map +1 -0
- package/dist/cjs/modules/temporal/tokens.d.ts +65 -0
- package/dist/cjs/modules/temporal/tokens.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/tokens.js +113 -0
- package/dist/cjs/modules/temporal/tokens.js.map +1 -0
- package/dist/cjs/modules/uid/uuid/common/constants.d.ts +5 -0
- package/dist/cjs/modules/uid/uuid/common/constants.d.ts.map +1 -1
- package/dist/cjs/modules/uid/uuid/common/constants.js +6 -1
- package/dist/cjs/modules/uid/uuid/common/constants.js.map +1 -1
- package/dist/cjs/modules/uid/uuid/helper.d.ts +7 -3
- package/dist/cjs/modules/uid/uuid/helper.d.ts.map +1 -1
- package/dist/cjs/modules/uid/uuid/helper.js +3 -10
- package/dist/cjs/modules/uid/uuid/helper.js.map +1 -1
- package/dist/cjs/modules/uid/uuid/v4.d.ts +5 -1
- package/dist/cjs/modules/uid/uuid/v4.d.ts.map +1 -1
- package/dist/cjs/modules/uid/uuid/v4.js +9 -4
- package/dist/cjs/modules/uid/uuid/v4.js.map +1 -1
- package/dist/cjs/modules/uid/uuid/v5.d.ts.map +1 -1
- package/dist/cjs/modules/uid/uuid/v5.js +18 -12
- package/dist/cjs/modules/uid/uuid/v5.js.map +1 -1
- package/dist/cjs/modules/uid/uuid/v7.d.ts +8 -2
- package/dist/cjs/modules/uid/uuid/v7.d.ts.map +1 -1
- package/dist/cjs/modules/uid/uuid/v7.js +14 -10
- package/dist/cjs/modules/uid/uuid/v7.js.map +1 -1
- package/dist/cjs/temporal.d.ts +2 -0
- package/dist/cjs/temporal.d.ts.map +1 -0
- package/dist/cjs/temporal.js +19 -0
- package/dist/cjs/temporal.js.map +1 -0
- package/dist/cjs/utilities/hr-time.utility.d.ts +6 -0
- package/dist/cjs/utilities/hr-time.utility.d.ts.map +1 -0
- package/dist/cjs/utilities/hr-time.utility.js +14 -0
- package/dist/cjs/utilities/hr-time.utility.js.map +1 -0
- package/dist/cjs/utilities/index.d.ts +2 -1
- package/dist/cjs/utilities/index.d.ts.map +1 -1
- package/dist/cjs/utilities/index.js +2 -1
- package/dist/cjs/utilities/index.js.map +1 -1
- package/dist/cjs/utilities/sleep.utility.d.ts +0 -1
- package/dist/cjs/utilities/sleep.utility.d.ts.map +1 -1
- package/dist/cjs/utilities/sleep.utility.js +0 -1
- package/dist/cjs/utilities/sleep.utility.js.map +1 -1
- package/dist/esm/core.d.ts +1 -0
- package/dist/esm/core.d.ts.map +1 -1
- package/dist/esm/core.js +1 -0
- package/dist/esm/core.js.map +1 -1
- package/dist/esm/modules/base.d.ts.map +1 -1
- package/dist/esm/modules/base.js +9 -6
- package/dist/esm/modules/base.js.map +1 -1
- package/dist/esm/modules/index.d.ts +1 -0
- package/dist/esm/modules/index.d.ts.map +1 -1
- package/dist/esm/modules/index.js +1 -0
- package/dist/esm/modules/index.js.map +1 -1
- package/dist/esm/modules/logger/base/base.d.ts.map +1 -1
- package/dist/esm/modules/logger/base/base.js +3 -0
- package/dist/esm/modules/logger/base/base.js.map +1 -1
- package/dist/esm/modules/logger/hf/logger.d.ts.map +1 -1
- package/dist/esm/modules/logger/hf/logger.js +4 -1
- package/dist/esm/modules/logger/hf/logger.js.map +1 -1
- package/dist/esm/modules/logger/slot.d.ts +3 -7
- package/dist/esm/modules/logger/slot.d.ts.map +1 -1
- package/dist/esm/modules/logger/slot.js +80 -23
- package/dist/esm/modules/logger/slot.js.map +1 -1
- package/dist/esm/modules/network/tcp-socket/base-tcp-server.helper.d.ts +2 -3
- package/dist/esm/modules/network/tcp-socket/base-tcp-server.helper.d.ts.map +1 -1
- package/dist/esm/modules/network/tcp-socket/base-tcp-server.helper.js +3 -4
- package/dist/esm/modules/network/tcp-socket/base-tcp-server.helper.js.map +1 -1
- package/dist/esm/modules/queue/bullmq/helper.d.ts +6 -1
- package/dist/esm/modules/queue/bullmq/helper.d.ts.map +1 -1
- package/dist/esm/modules/queue/bullmq/helper.js +11 -4
- package/dist/esm/modules/queue/bullmq/helper.js.map +1 -1
- package/dist/esm/modules/queue/kafka/consumer.js +1 -1
- package/dist/esm/modules/queue/kafka/consumer.js.map +1 -1
- package/dist/esm/modules/redis/cluster/cluster.helper.d.ts.map +1 -1
- package/dist/esm/modules/redis/cluster/cluster.helper.js +1 -1
- package/dist/esm/modules/redis/cluster/cluster.helper.js.map +1 -1
- package/dist/esm/modules/redis/common/types.d.ts +11 -3
- package/dist/esm/modules/redis/common/types.d.ts.map +1 -1
- package/dist/esm/modules/redis/sentinel/sentinel.helper.d.ts.map +1 -1
- package/dist/esm/modules/redis/sentinel/sentinel.helper.js +1 -1
- package/dist/esm/modules/redis/sentinel/sentinel.helper.js.map +1 -1
- package/dist/esm/modules/redis/single/single.helper.d.ts.map +1 -1
- package/dist/esm/modules/redis/single/single.helper.js +1 -1
- package/dist/esm/modules/redis/single/single.helper.js.map +1 -1
- package/dist/esm/modules/socket/socket-io/client/helper.d.ts +2 -1
- package/dist/esm/modules/socket/socket-io/client/helper.d.ts.map +1 -1
- package/dist/esm/modules/socket/socket-io/client/helper.js +6 -1
- package/dist/esm/modules/socket/socket-io/client/helper.js.map +1 -1
- package/dist/esm/modules/socket/socket-io/common/types/client.d.ts +2 -0
- package/dist/esm/modules/socket/socket-io/common/types/client.d.ts.map +1 -1
- package/dist/esm/modules/temporal/adapters/dayjs.d.ts +21 -0
- package/dist/esm/modules/temporal/adapters/dayjs.d.ts.map +1 -0
- package/dist/esm/modules/temporal/adapters/dayjs.js +44 -0
- package/dist/esm/modules/temporal/adapters/dayjs.js.map +1 -0
- package/dist/esm/modules/temporal/adapters/guards.d.ts +4 -0
- package/dist/esm/modules/temporal/adapters/guards.d.ts.map +1 -0
- package/dist/esm/modules/temporal/adapters/guards.js +10 -0
- package/dist/esm/modules/temporal/adapters/guards.js.map +1 -0
- package/dist/esm/modules/temporal/adapters/index.d.ts +4 -0
- package/dist/esm/modules/temporal/adapters/index.d.ts.map +1 -0
- package/dist/esm/modules/temporal/adapters/index.js +4 -0
- package/dist/esm/modules/temporal/adapters/index.js.map +1 -0
- package/dist/esm/modules/temporal/adapters/luxon.d.ts +13 -0
- package/dist/esm/modules/temporal/adapters/luxon.d.ts.map +1 -0
- package/dist/esm/modules/temporal/adapters/luxon.js +22 -0
- package/dist/esm/modules/temporal/adapters/luxon.js.map +1 -0
- package/dist/esm/modules/temporal/adapters/native.d.ts +16 -0
- package/dist/esm/modules/temporal/adapters/native.d.ts.map +1 -0
- package/dist/esm/modules/temporal/adapters/native.js +34 -0
- package/dist/esm/modules/temporal/adapters/native.js.map +1 -0
- package/dist/esm/modules/temporal/calendar.d.ts +52 -0
- package/dist/esm/modules/temporal/calendar.d.ts.map +1 -0
- package/dist/esm/modules/temporal/calendar.js +138 -0
- package/dist/esm/modules/temporal/calendar.js.map +1 -0
- package/dist/esm/modules/temporal/common/constants.d.ts +20 -0
- package/dist/esm/modules/temporal/common/constants.d.ts.map +1 -0
- package/dist/esm/modules/temporal/common/constants.js +29 -0
- package/dist/esm/modules/temporal/common/constants.js.map +1 -0
- package/dist/esm/modules/temporal/common/index.d.ts +3 -0
- package/dist/esm/modules/temporal/common/index.d.ts.map +1 -0
- package/dist/esm/modules/temporal/common/index.js +3 -0
- package/dist/esm/modules/temporal/common/index.js.map +1 -0
- package/dist/esm/modules/temporal/common/types.d.ts +69 -0
- package/dist/esm/modules/temporal/common/types.d.ts.map +1 -0
- package/dist/esm/modules/temporal/common/types.js +2 -0
- package/dist/esm/modules/temporal/common/types.js.map +1 -0
- package/dist/esm/modules/temporal/helper.d.ts +120 -0
- package/dist/esm/modules/temporal/helper.d.ts.map +1 -0
- package/dist/esm/modules/temporal/helper.js +322 -0
- package/dist/esm/modules/temporal/helper.js.map +1 -0
- package/dist/esm/modules/temporal/index.d.ts +4 -0
- package/dist/esm/modules/temporal/index.d.ts.map +1 -0
- package/dist/esm/modules/temporal/index.js +4 -0
- package/dist/esm/modules/temporal/index.js.map +1 -0
- package/dist/esm/modules/temporal/pattern.d.ts +24 -0
- package/dist/esm/modules/temporal/pattern.d.ts.map +1 -0
- package/dist/esm/modules/temporal/pattern.js +129 -0
- package/dist/esm/modules/temporal/pattern.js.map +1 -0
- package/dist/esm/modules/temporal/tokens.d.ts +65 -0
- package/dist/esm/modules/temporal/tokens.d.ts.map +1 -0
- package/dist/esm/modules/temporal/tokens.js +102 -0
- package/dist/esm/modules/temporal/tokens.js.map +1 -0
- package/dist/esm/modules/uid/uuid/common/constants.d.ts +5 -0
- package/dist/esm/modules/uid/uuid/common/constants.d.ts.map +1 -1
- package/dist/esm/modules/uid/uuid/common/constants.js +5 -0
- package/dist/esm/modules/uid/uuid/common/constants.js.map +1 -1
- package/dist/esm/modules/uid/uuid/helper.d.ts +7 -3
- package/dist/esm/modules/uid/uuid/helper.d.ts.map +1 -1
- package/dist/esm/modules/uid/uuid/helper.js +3 -10
- package/dist/esm/modules/uid/uuid/helper.js.map +1 -1
- package/dist/esm/modules/uid/uuid/v4.d.ts +5 -1
- package/dist/esm/modules/uid/uuid/v4.d.ts.map +1 -1
- package/dist/esm/modules/uid/uuid/v4.js +9 -4
- package/dist/esm/modules/uid/uuid/v4.js.map +1 -1
- package/dist/esm/modules/uid/uuid/v5.d.ts.map +1 -1
- package/dist/esm/modules/uid/uuid/v5.js +19 -13
- package/dist/esm/modules/uid/uuid/v5.js.map +1 -1
- package/dist/esm/modules/uid/uuid/v7.d.ts +8 -2
- package/dist/esm/modules/uid/uuid/v7.d.ts.map +1 -1
- package/dist/esm/modules/uid/uuid/v7.js +13 -10
- package/dist/esm/modules/uid/uuid/v7.js.map +1 -1
- package/dist/esm/package.json +6 -0
- package/dist/esm/temporal.d.ts +2 -0
- package/dist/esm/temporal.d.ts.map +1 -0
- package/dist/esm/temporal.js +3 -0
- package/dist/esm/temporal.js.map +1 -0
- package/dist/esm/utilities/hr-time.utility.d.ts +6 -0
- package/dist/esm/utilities/hr-time.utility.d.ts.map +1 -0
- package/dist/esm/utilities/hr-time.utility.js +10 -0
- package/dist/esm/utilities/hr-time.utility.js.map +1 -0
- package/dist/esm/utilities/index.d.ts +2 -1
- package/dist/esm/utilities/index.d.ts.map +1 -1
- package/dist/esm/utilities/index.js +2 -1
- package/dist/esm/utilities/index.js.map +1 -1
- package/dist/esm/utilities/sleep.utility.d.ts +0 -1
- package/dist/esm/utilities/sleep.utility.d.ts.map +1 -1
- package/dist/esm/utilities/sleep.utility.js +0 -1
- package/dist/esm/utilities/sleep.utility.js.map +1 -1
- package/package.json +13 -5
- package/dist/cjs/utilities/date.utility.d.ts +0 -19
- package/dist/cjs/utilities/date.utility.d.ts.map +0 -1
- package/dist/cjs/utilities/date.utility.js +0 -57
- package/dist/cjs/utilities/date.utility.js.map +0 -1
- package/dist/esm/utilities/date.utility.d.ts +0 -19
- package/dist/esm/utilities/date.utility.d.ts.map +0 -1
- package/dist/esm/utilities/date.utility.js +0 -46
- package/dist/esm/utilities/date.utility.js.map +0 -1
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TemporalHelper = void 0;
|
|
4
|
+
const http_1 = require("../../common/constants/http");
|
|
5
|
+
const base_1 = require("../base");
|
|
6
|
+
const error_1 = require("../error");
|
|
7
|
+
const native_1 = require("./adapters/native");
|
|
8
|
+
const calendar_1 = require("./calendar");
|
|
9
|
+
const constants_1 = require("./common/constants");
|
|
10
|
+
const pattern_1 = require("./pattern");
|
|
11
|
+
/** `2026-09-19`, `2026-09-19T12:00`, `2026-09-19 12:00:00.021+07:00`, `...Z` - an offset only after a time. */
|
|
12
|
+
const ISO_8601 = /^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{1,9}))?)?(Z|[+-]\d{2}(?::?\d{2}(?::?\d{2})?)?)?)?$/i;
|
|
13
|
+
/** The offset of an ISO 8601 value: `+07`, `+07:00`, `+0700`, `+07:06:40`. */
|
|
14
|
+
const ISO_OFFSET = /^([+-])(\d{2})(?::?(\d{2})(?::?(\d{2}))?)?$/;
|
|
15
|
+
const DAY_MILLISECONDS = 86_400_000;
|
|
16
|
+
/** 0001-01-01T00:00:00.000Z and 9999-12-31T23:59:59.999Z. */
|
|
17
|
+
const MIN_INSTANT = -62_135_596_800_000;
|
|
18
|
+
const MAX_INSTANT = 253_402_300_799_999;
|
|
19
|
+
const MAX_KNOWN_TIME_ZONES = 256;
|
|
20
|
+
const OUT_OF_RANGE = `outside the years ${calendar_1.MIN_TEMPORAL_YEAR}-${calendar_1.MAX_TEMPORAL_YEAR}`;
|
|
21
|
+
/**
|
|
22
|
+
* Dates in one time zone, through whichever library you choose: pass an adapter - the runtime's
|
|
23
|
+
* `Temporal` (the default), your own dayjs, your own Luxon. The adapter only reports a zone's UTC
|
|
24
|
+
* offset at an instant; the wall clock, daylight-saving gaps and repeats, and the calendar math all
|
|
25
|
+
* live here, so every adapter shares one behaviour.
|
|
26
|
+
*
|
|
27
|
+
* Values go in as a `Date`, epoch milliseconds or an ISO 8601 string, and come out as a `Date`, so
|
|
28
|
+
* swapping the adapter never touches a call site. The zone is yours to set: without one this helper
|
|
29
|
+
* computes in UTC, never in the host's zone. Years run from 1 to 9999.
|
|
30
|
+
*/
|
|
31
|
+
class TemporalHelper extends base_1.BaseHelper {
|
|
32
|
+
/** Validated once per process: `Intl` answers the same for a zone name every time. */
|
|
33
|
+
static { this.knownTimeZones = new Set(); }
|
|
34
|
+
constructor(opts) {
|
|
35
|
+
super({ scope: opts?.scope ?? TemporalHelper.name });
|
|
36
|
+
this.timeZone = TemporalHelper.ensureTimeZone({
|
|
37
|
+
timeZone: opts?.timeZone ?? constants_1.DEFAULT_TEMPORAL_TIME_ZONE,
|
|
38
|
+
statusCode: http_1.HTTP.ResultCodes.RS_5.InternalServerError,
|
|
39
|
+
});
|
|
40
|
+
this.adapter = opts?.adapter ?? new native_1.NativeTemporalAdapter();
|
|
41
|
+
}
|
|
42
|
+
static ensureTimeZone(opts) {
|
|
43
|
+
const { timeZone, statusCode } = opts;
|
|
44
|
+
if (TemporalHelper.knownTimeZones.has(timeZone)) {
|
|
45
|
+
return timeZone;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
new Intl.DateTimeFormat('en-US', { timeZone });
|
|
49
|
+
}
|
|
50
|
+
catch (error) {
|
|
51
|
+
throw (0, error_1.getError)({
|
|
52
|
+
statusCode,
|
|
53
|
+
message: `[TemporalHelper] unknown time zone '${timeZone}' | ${error instanceof Error ? error.message : String(error)}`,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
if (TemporalHelper.knownTimeZones.size < MAX_KNOWN_TIME_ZONES) {
|
|
57
|
+
TemporalHelper.knownTimeZones.add(timeZone);
|
|
58
|
+
}
|
|
59
|
+
return timeZone;
|
|
60
|
+
}
|
|
61
|
+
static ensureUnit(opts) {
|
|
62
|
+
const { unit, amount } = opts;
|
|
63
|
+
if (!constants_1.TemporalUnits.isValid(unit)) {
|
|
64
|
+
throw (0, error_1.getError)({
|
|
65
|
+
statusCode: http_1.HTTP.ResultCodes.RS_4.BadRequest,
|
|
66
|
+
message: `[TemporalHelper] unknown unit '${unit}' | Supported: ${[...constants_1.TemporalUnits.SCHEME_SET].join(', ')}`,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
if (amount !== undefined && !Number.isInteger(amount)) {
|
|
70
|
+
throw (0, error_1.getError)({
|
|
71
|
+
statusCode: http_1.HTTP.ResultCodes.RS_4.BadRequest,
|
|
72
|
+
message: `[TemporalHelper] amount must be an integer - received ${amount}`,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/** Every result passes here: an overflowing `add` is refused, never an Invalid Date. */
|
|
77
|
+
static ensureInstant(opts) {
|
|
78
|
+
const { epoch } = opts;
|
|
79
|
+
if (!(epoch >= MIN_INSTANT && epoch <= MAX_INSTANT)) {
|
|
80
|
+
throw (0, error_1.getError)({
|
|
81
|
+
statusCode: http_1.HTTP.ResultCodes.RS_4.BadRequest,
|
|
82
|
+
message: `[TemporalHelper] ${Number.isNaN(epoch) ? 'invalid date' : OUT_OF_RANGE} - received ${epoch}`,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
return new Date(epoch);
|
|
86
|
+
}
|
|
87
|
+
static ensureYear(opts) {
|
|
88
|
+
if (!(0, calendar_1.isSupportedYear)(opts.parts.year)) {
|
|
89
|
+
throw (0, error_1.getError)({
|
|
90
|
+
statusCode: http_1.HTTP.ResultCodes.RS_4.BadRequest,
|
|
91
|
+
message: `[TemporalHelper] year ${opts.parts.year} is ${OUT_OF_RANGE}`,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
resolveTimeZone(opts) {
|
|
96
|
+
return opts.timeZone === undefined
|
|
97
|
+
? this.timeZone
|
|
98
|
+
: TemporalHelper.ensureTimeZone({
|
|
99
|
+
timeZone: opts.timeZone,
|
|
100
|
+
statusCode: http_1.HTTP.ResultCodes.RS_4.BadRequest,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/** The adapter's one answer, rounded: an offset is whole milliseconds, a library's float may not be. */
|
|
104
|
+
offsetAt(opts) {
|
|
105
|
+
return Math.round(this.adapter.getOffsetMilliseconds({ value: new Date(opts.epoch), timeZone: opts.timeZone }));
|
|
106
|
+
}
|
|
107
|
+
zonedParts(opts) {
|
|
108
|
+
const parts = (0, calendar_1.wallClockAt)({ epoch: opts.epoch, offsetMilliseconds: this.offsetAt(opts) });
|
|
109
|
+
TemporalHelper.ensureYear({ parts });
|
|
110
|
+
return parts;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Every instant whose wall clock reads `parts` in the zone, earliest first: one as a rule, two
|
|
114
|
+
* when the clock goes back, none when it jumps forward. `forward` is where a skipped time lands -
|
|
115
|
+
* read with the offset from before the jump, so it moves past the gap.
|
|
116
|
+
*/
|
|
117
|
+
instantsOf(opts) {
|
|
118
|
+
const { parts, timeZone } = opts;
|
|
119
|
+
const local = (0, calendar_1.epochAtOffset)({ parts, offsetMilliseconds: 0 });
|
|
120
|
+
const before = this.offsetAt({ epoch: local - DAY_MILLISECONDS, timeZone });
|
|
121
|
+
const after = this.offsetAt({ epoch: local + DAY_MILLISECONDS, timeZone });
|
|
122
|
+
const offsets = before === after ? [before] : [before, after];
|
|
123
|
+
const instants = [];
|
|
124
|
+
for (const offset of offsets) {
|
|
125
|
+
const candidate = local - offset;
|
|
126
|
+
if (this.offsetAt({ epoch: candidate, timeZone }) === offset) {
|
|
127
|
+
instants.push(candidate);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
instants.sort((left, right) => left - right);
|
|
131
|
+
return { instants, forward: local - before };
|
|
132
|
+
}
|
|
133
|
+
/** The instant wall-clock `parts` name: a skipped time moves forward, a repeated one takes the earlier. */
|
|
134
|
+
earliestOf(opts) {
|
|
135
|
+
const { instants, forward } = this.instantsOf(opts);
|
|
136
|
+
return instants[0] ?? forward;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* `[start, end)` of the unit holding `epoch`. A day or longer starts at its first instant. An hour
|
|
140
|
+
* or less repeats when the clock goes back, so it starts at the latest start not after `epoch`,
|
|
141
|
+
* and ends where the wall clock next shows either the following unit or this one's start again.
|
|
142
|
+
*/
|
|
143
|
+
unitBounds(opts) {
|
|
144
|
+
const { epoch, unit, timeZone } = opts;
|
|
145
|
+
const startParts = (0, calendar_1.truncateTo)({ parts: this.zonedParts({ epoch, timeZone }), unit });
|
|
146
|
+
const nextParts = (0, calendar_1.shiftWallClock)({ parts: startParts, amount: 1, unit });
|
|
147
|
+
TemporalHelper.ensureYear({ parts: nextParts });
|
|
148
|
+
const starts = this.instantsOf({ parts: startParts, timeZone });
|
|
149
|
+
if (calendar_1.EXACT_UNIT_MILLISECONDS[unit] === undefined) {
|
|
150
|
+
const start = starts.instants[0] ?? starts.forward;
|
|
151
|
+
return { start, end: this.earliestOf({ parts: nextParts, timeZone }) };
|
|
152
|
+
}
|
|
153
|
+
const started = starts.instants.filter(instant => instant <= epoch);
|
|
154
|
+
const start = started.at(-1) ?? starts.instants[0] ?? starts.forward;
|
|
155
|
+
const nexts = this.instantsOf({ parts: nextParts, timeZone });
|
|
156
|
+
const following = nexts.instants.find(instant => instant > start) ?? nexts.forward;
|
|
157
|
+
const repeated = starts.instants.find(instant => instant > start);
|
|
158
|
+
return { start, end: repeated === undefined ? following : Math.min(repeated, following) };
|
|
159
|
+
}
|
|
160
|
+
getTimeZone() {
|
|
161
|
+
return this.timeZone;
|
|
162
|
+
}
|
|
163
|
+
now() {
|
|
164
|
+
return new Date();
|
|
165
|
+
}
|
|
166
|
+
/** The instant a value names. An ISO string without an offset is read as wall clock in the zone. */
|
|
167
|
+
toDate(opts) {
|
|
168
|
+
const { value } = opts;
|
|
169
|
+
if (typeof value === 'string') {
|
|
170
|
+
return this.parse({ value, timeZone: opts.timeZone });
|
|
171
|
+
}
|
|
172
|
+
return TemporalHelper.ensureInstant({
|
|
173
|
+
epoch: value instanceof Date ? value.getTime() : value,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
/** The wall clock the value shows in the zone, with its ISO weekday and UTC offset. */
|
|
177
|
+
parts(opts) {
|
|
178
|
+
const timeZone = this.resolveTimeZone({ timeZone: opts.timeZone });
|
|
179
|
+
const date = this.toDate({ value: opts.value, timeZone });
|
|
180
|
+
return this.zonedParts({ epoch: date.getTime(), timeZone });
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Reads a string. With a `pattern` (`YYYY YY MM M DD D HH H mm m ss s SSS Z ZZ`, text in
|
|
184
|
+
* `[brackets]`), the value must match it exactly; without one it must be ISO 8601. An offset in
|
|
185
|
+
* the value wins; otherwise the fields are wall clock in the zone.
|
|
186
|
+
*/
|
|
187
|
+
parse(opts) {
|
|
188
|
+
const { value, pattern } = opts;
|
|
189
|
+
const timeZone = this.resolveTimeZone({ timeZone: opts.timeZone });
|
|
190
|
+
const read = pattern ? pattern_1.TemporalPattern.parse({ pattern, value }) : this.readIso({ value });
|
|
191
|
+
if (!read) {
|
|
192
|
+
throw (0, error_1.getError)({
|
|
193
|
+
statusCode: http_1.HTTP.ResultCodes.RS_4.BadRequest,
|
|
194
|
+
message: pattern
|
|
195
|
+
? `[TemporalHelper] '${value}' does not match pattern '${pattern}'`
|
|
196
|
+
: `[TemporalHelper] '${value}' is not ISO 8601 | Pass a pattern for any other shape`,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
if (!(0, calendar_1.isRealDateTime)({ parts: read.parts })) {
|
|
200
|
+
throw (0, error_1.getError)({
|
|
201
|
+
statusCode: http_1.HTTP.ResultCodes.RS_4.BadRequest,
|
|
202
|
+
message: `[TemporalHelper] '${value}' is not a real date and time`,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
const epoch = read.offsetMilliseconds === undefined
|
|
206
|
+
? this.earliestOf({ parts: read.parts, timeZone })
|
|
207
|
+
: (0, calendar_1.epochAtOffset)({ parts: read.parts, offsetMilliseconds: read.offsetMilliseconds });
|
|
208
|
+
return TemporalHelper.ensureInstant({ epoch });
|
|
209
|
+
}
|
|
210
|
+
readIso(opts) {
|
|
211
|
+
const match = ISO_8601.exec(opts.value);
|
|
212
|
+
if (!match) {
|
|
213
|
+
return undefined;
|
|
214
|
+
}
|
|
215
|
+
const [, year, month, day, hour, minute, second, fraction, offset] = match;
|
|
216
|
+
const parts = {
|
|
217
|
+
year: Number(year),
|
|
218
|
+
month: Number(month),
|
|
219
|
+
day: Number(day),
|
|
220
|
+
hour: Number(hour ?? 0),
|
|
221
|
+
minute: Number(minute ?? 0),
|
|
222
|
+
second: Number(second ?? 0),
|
|
223
|
+
millisecond: Number((fraction ?? '0').padEnd(3, '0').slice(0, 3)),
|
|
224
|
+
};
|
|
225
|
+
if (!offset) {
|
|
226
|
+
return { parts };
|
|
227
|
+
}
|
|
228
|
+
if (offset.toUpperCase() === 'Z') {
|
|
229
|
+
return { parts, offsetMilliseconds: 0 };
|
|
230
|
+
}
|
|
231
|
+
const [, sign, offsetHours, offsetMinutes, offsetSeconds] = ISO_OFFSET.exec(offset) ?? [];
|
|
232
|
+
const hours = Number(offsetHours);
|
|
233
|
+
const minutes = Number(offsetMinutes ?? 0);
|
|
234
|
+
const seconds = Number(offsetSeconds ?? 0);
|
|
235
|
+
if (!(hours <= 23 && minutes <= 59 && seconds <= 59)) {
|
|
236
|
+
return undefined;
|
|
237
|
+
}
|
|
238
|
+
const milliseconds = ((hours * 60 + minutes) * 60 + seconds) * 1000;
|
|
239
|
+
return { parts, offsetMilliseconds: sign === '-' ? -milliseconds : milliseconds };
|
|
240
|
+
}
|
|
241
|
+
/** Writes the value in the zone. Without a `pattern`: ISO 8601 with the zone's offset. */
|
|
242
|
+
format(opts) {
|
|
243
|
+
return pattern_1.TemporalPattern.format({
|
|
244
|
+
pattern: opts.pattern ?? constants_1.DEFAULT_TEMPORAL_PATTERN,
|
|
245
|
+
parts: this.parts({ value: opts.value, timeZone: opts.timeZone }),
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Moves the value by whole units. Hours and smaller are elapsed time; days and larger move the
|
|
250
|
+
* calendar in the zone, so a day across a daylight-saving jump keeps the wall time, and a month
|
|
251
|
+
* past a shorter month clamps to its last day.
|
|
252
|
+
*/
|
|
253
|
+
add(opts) {
|
|
254
|
+
const { amount, unit } = opts;
|
|
255
|
+
TemporalHelper.ensureUnit({ unit, amount });
|
|
256
|
+
const timeZone = this.resolveTimeZone({ timeZone: opts.timeZone });
|
|
257
|
+
const date = this.toDate({ value: opts.value, timeZone });
|
|
258
|
+
if (amount === 0) {
|
|
259
|
+
return date;
|
|
260
|
+
}
|
|
261
|
+
const exact = calendar_1.EXACT_UNIT_MILLISECONDS[unit];
|
|
262
|
+
if (exact !== undefined) {
|
|
263
|
+
return TemporalHelper.ensureInstant({ epoch: date.getTime() + amount * exact });
|
|
264
|
+
}
|
|
265
|
+
const parts = (0, calendar_1.wallClockOf)({ parts: this.zonedParts({ epoch: date.getTime(), timeZone }) });
|
|
266
|
+
const shifted = (0, calendar_1.shiftWallClock)({ parts, amount, unit });
|
|
267
|
+
TemporalHelper.ensureYear({ parts: shifted });
|
|
268
|
+
return TemporalHelper.ensureInstant({ epoch: this.earliestOf({ parts: shifted, timeZone }) });
|
|
269
|
+
}
|
|
270
|
+
subtract(opts) {
|
|
271
|
+
return this.add({ ...opts, amount: -opts.amount });
|
|
272
|
+
}
|
|
273
|
+
/** The first instant of the unit containing the value, in the zone. Weeks start on Monday. */
|
|
274
|
+
startOf(opts) {
|
|
275
|
+
const { unit } = opts;
|
|
276
|
+
TemporalHelper.ensureUnit({ unit });
|
|
277
|
+
const timeZone = this.resolveTimeZone({ timeZone: opts.timeZone });
|
|
278
|
+
const date = this.toDate({ value: opts.value, timeZone });
|
|
279
|
+
if (unit === constants_1.TemporalUnits.MILLISECOND) {
|
|
280
|
+
return date;
|
|
281
|
+
}
|
|
282
|
+
const { start } = this.unitBounds({ epoch: date.getTime(), unit, timeZone });
|
|
283
|
+
return TemporalHelper.ensureInstant({ epoch: start });
|
|
284
|
+
}
|
|
285
|
+
/** The last millisecond of the unit containing the value, in the zone. */
|
|
286
|
+
endOf(opts) {
|
|
287
|
+
const { unit } = opts;
|
|
288
|
+
TemporalHelper.ensureUnit({ unit });
|
|
289
|
+
const timeZone = this.resolveTimeZone({ timeZone: opts.timeZone });
|
|
290
|
+
const date = this.toDate({ value: opts.value, timeZone });
|
|
291
|
+
if (unit === constants_1.TemporalUnits.MILLISECOND) {
|
|
292
|
+
return date;
|
|
293
|
+
}
|
|
294
|
+
const { end } = this.unitBounds({ epoch: date.getTime(), unit, timeZone });
|
|
295
|
+
return TemporalHelper.ensureInstant({ epoch: end - 1 });
|
|
296
|
+
}
|
|
297
|
+
/** Monday to Friday, read on the wall clock of the zone. */
|
|
298
|
+
isWeekday(opts) {
|
|
299
|
+
return this.parts(opts).dayOfWeek <= 5;
|
|
300
|
+
}
|
|
301
|
+
nextWeekday(opts) {
|
|
302
|
+
return this.stepToWeekday({ ...opts, step: 1 });
|
|
303
|
+
}
|
|
304
|
+
previousWeekday(opts) {
|
|
305
|
+
return this.stepToWeekday({ ...opts, step: -1 });
|
|
306
|
+
}
|
|
307
|
+
stepToWeekday(opts) {
|
|
308
|
+
let candidate = this.add({
|
|
309
|
+
value: opts.value,
|
|
310
|
+
amount: opts.step,
|
|
311
|
+
unit: constants_1.TemporalUnits.DAY,
|
|
312
|
+
timeZone: opts.timeZone,
|
|
313
|
+
});
|
|
314
|
+
while (!this.isWeekday({ value: candidate, timeZone: opts.timeZone })) {
|
|
315
|
+
candidate = this.add({
|
|
316
|
+
value: candidate,
|
|
317
|
+
amount: opts.step,
|
|
318
|
+
unit: constants_1.TemporalUnits.DAY,
|
|
319
|
+
timeZone: opts.timeZone,
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
return candidate;
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
exports.TemporalHelper = TemporalHelper;
|
|
326
|
+
//# sourceMappingURL=helper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../../../../src/modules/temporal/helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/temporal/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./adapters"), exports);
|
|
18
|
+
__exportStar(require("./common"), exports);
|
|
19
|
+
__exportStar(require("./helper"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/temporal/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAAyB;AACzB,2CAAyB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ITemporalParts, IZonedTemporalParts } from './common/types';
|
|
2
|
+
/** The pattern dialect: compiled once per pattern, then formatted and parsed from the cache. */
|
|
3
|
+
export declare class TemporalPattern {
|
|
4
|
+
/** A service formats the same few patterns millions of times; capped so caller-fed patterns cannot grow it. */
|
|
5
|
+
private static readonly compiled;
|
|
6
|
+
/**
|
|
7
|
+
* Splits a pattern into tokens and literals. A run of one letter is one token, and an unknown run
|
|
8
|
+
* is refused: `yyyy` is not `YYYY`, and `MMM` is never read as `MM` then `M`.
|
|
9
|
+
*/
|
|
10
|
+
private static compile;
|
|
11
|
+
static format(opts: {
|
|
12
|
+
pattern: string;
|
|
13
|
+
parts: IZonedTemporalParts;
|
|
14
|
+
}): string;
|
|
15
|
+
/** The fields a value spells under a pattern, or undefined when it does not match. Unset fields default to the start: month 1, day 1, 00:00. */
|
|
16
|
+
static parse(opts: {
|
|
17
|
+
pattern: string;
|
|
18
|
+
value: string;
|
|
19
|
+
}): {
|
|
20
|
+
parts: ITemporalParts;
|
|
21
|
+
offsetMilliseconds?: number;
|
|
22
|
+
} | undefined;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=pattern.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../../src/modules/temporal/pattern.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAc1E,gGAAgG;AAChG,qBAAa,eAAe;IAC1B,+GAA+G;IAC/G,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA6C;IAE7E;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO;IAiEtB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,mBAAmB,CAAA;KAAE,GAAG,MAAM;IAU5E,gJAAgJ;IAChJ,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG;QAAE,KAAK,EAAE,cAAc,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;CAwDvE"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TemporalPattern = void 0;
|
|
4
|
+
const http_1 = require("../../common/constants/http");
|
|
5
|
+
const error_1 = require("../error");
|
|
6
|
+
const tokens_1 = require("./tokens");
|
|
7
|
+
/** The pattern dialect: compiled once per pattern, then formatted and parsed from the cache. */
|
|
8
|
+
class TemporalPattern {
|
|
9
|
+
/** A service formats the same few patterns millions of times; capped so caller-fed patterns cannot grow it. */
|
|
10
|
+
static { this.compiled = new Map(); }
|
|
11
|
+
/**
|
|
12
|
+
* Splits a pattern into tokens and literals. A run of one letter is one token, and an unknown run
|
|
13
|
+
* is refused: `yyyy` is not `YYYY`, and `MMM` is never read as `MM` then `M`.
|
|
14
|
+
*/
|
|
15
|
+
static compile(opts) {
|
|
16
|
+
const { pattern } = opts;
|
|
17
|
+
const cached = TemporalPattern.compiled.get(pattern);
|
|
18
|
+
if (cached) {
|
|
19
|
+
return cached;
|
|
20
|
+
}
|
|
21
|
+
const segments = [];
|
|
22
|
+
let literal = '';
|
|
23
|
+
let position = 0;
|
|
24
|
+
while (position < pattern.length) {
|
|
25
|
+
const character = pattern[position];
|
|
26
|
+
if (character === '[') {
|
|
27
|
+
const close = pattern.indexOf(']', position + 1);
|
|
28
|
+
if (close < 0) {
|
|
29
|
+
throw (0, error_1.getError)({
|
|
30
|
+
statusCode: http_1.HTTP.ResultCodes.RS_5.InternalServerError,
|
|
31
|
+
message: `[TemporalPattern] unclosed [ in pattern '${pattern}'`,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
literal += pattern.slice(position + 1, close);
|
|
35
|
+
position = close + 1;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
// `T` is the ISO date-time separator, and the one letter a pattern may carry bare.
|
|
39
|
+
if (!(0, tokens_1.isLetter)(pattern.charCodeAt(position)) || character === 'T') {
|
|
40
|
+
literal += character;
|
|
41
|
+
position += 1;
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
let runEnd = position + 1;
|
|
45
|
+
while (pattern[runEnd] === character) {
|
|
46
|
+
runEnd += 1;
|
|
47
|
+
}
|
|
48
|
+
const run = pattern.slice(position, runEnd);
|
|
49
|
+
if (!(0, tokens_1.isToken)(run)) {
|
|
50
|
+
throw (0, error_1.getError)({
|
|
51
|
+
statusCode: http_1.HTTP.ResultCodes.RS_5.InternalServerError,
|
|
52
|
+
message: `[TemporalPattern] unknown token '${run}' in pattern '${pattern}' | Supported: ${tokens_1.SUPPORTED}; wrap text in [brackets]`,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
if (literal) {
|
|
56
|
+
segments.push({ literal });
|
|
57
|
+
literal = '';
|
|
58
|
+
}
|
|
59
|
+
segments.push({ token: run });
|
|
60
|
+
position = runEnd;
|
|
61
|
+
}
|
|
62
|
+
if (literal) {
|
|
63
|
+
segments.push({ literal });
|
|
64
|
+
}
|
|
65
|
+
if (TemporalPattern.compiled.size < tokens_1.MAX_COMPILED_PATTERNS) {
|
|
66
|
+
TemporalPattern.compiled.set(pattern, segments);
|
|
67
|
+
}
|
|
68
|
+
return segments;
|
|
69
|
+
}
|
|
70
|
+
static format(opts) {
|
|
71
|
+
const segments = TemporalPattern.compile({ pattern: opts.pattern });
|
|
72
|
+
let text = '';
|
|
73
|
+
for (const segment of segments) {
|
|
74
|
+
text +=
|
|
75
|
+
'literal' in segment ? segment.literal : (tokens_1.WRITERS.get(segment.token)?.(opts.parts) ?? '');
|
|
76
|
+
}
|
|
77
|
+
return text;
|
|
78
|
+
}
|
|
79
|
+
/** The fields a value spells under a pattern, or undefined when it does not match. Unset fields default to the start: month 1, day 1, 00:00. */
|
|
80
|
+
static parse(opts) {
|
|
81
|
+
const { value } = opts;
|
|
82
|
+
const segments = TemporalPattern.compile({ pattern: opts.pattern });
|
|
83
|
+
const parts = {
|
|
84
|
+
year: 1970,
|
|
85
|
+
month: 1,
|
|
86
|
+
day: 1,
|
|
87
|
+
hour: 0,
|
|
88
|
+
minute: 0,
|
|
89
|
+
second: 0,
|
|
90
|
+
millisecond: 0,
|
|
91
|
+
};
|
|
92
|
+
let offsetMilliseconds;
|
|
93
|
+
let position = 0;
|
|
94
|
+
for (const segment of segments) {
|
|
95
|
+
if ('literal' in segment) {
|
|
96
|
+
if (!value.startsWith(segment.literal, position)) {
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
99
|
+
position += segment.literal.length;
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
const { token } = segment;
|
|
103
|
+
if (token === 'Z' || token === 'ZZ') {
|
|
104
|
+
const offset = (0, tokens_1.readOffset)({ value, position, separator: token === 'Z' });
|
|
105
|
+
if (!offset) {
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
offsetMilliseconds = offset.milliseconds;
|
|
109
|
+
position = offset.next;
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
if (token === 'YY') {
|
|
113
|
+
const read = (0, tokens_1.readDigits)({ value, position, min: 2, max: 2 });
|
|
114
|
+
if (!read) {
|
|
115
|
+
return undefined;
|
|
116
|
+
}
|
|
117
|
+
parts.year = read.number + (read.number > tokens_1.TWO_DIGIT_YEAR_PIVOT ? 1900 : 2000);
|
|
118
|
+
position = read.next;
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
const [min, max, field] = tokens_1.NUMERIC_TOKENS[token];
|
|
122
|
+
const read = (0, tokens_1.readDigits)({ value, position, min, max });
|
|
123
|
+
if (!read) {
|
|
124
|
+
return undefined;
|
|
125
|
+
}
|
|
126
|
+
parts[field] = read.number;
|
|
127
|
+
position = read.next;
|
|
128
|
+
}
|
|
129
|
+
return position === value.length ? { parts, offsetMilliseconds } : undefined;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
exports.TemporalPattern = TemporalPattern;
|
|
133
|
+
//# sourceMappingURL=pattern.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../../src/modules/temporal/pattern.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { ITemporalParts, IZonedTemporalParts } from './common/types';
|
|
2
|
+
/**
|
|
3
|
+
* The pattern dialect, one for every adapter: `YYYY YY MM M DD D HH H mm m ss s SSS Z ZZ`, with
|
|
4
|
+
* text in `[brackets]`. Numeric only - month and weekday names are a locale's business, not a parser's.
|
|
5
|
+
*/
|
|
6
|
+
export type TPatternToken = 'YYYY' | 'YY' | 'MM' | 'M' | 'DD' | 'D' | 'HH' | 'H' | 'mm' | 'm' | 'ss' | 's' | 'SSS' | 'Z' | 'ZZ';
|
|
7
|
+
export type TPatternSegment = {
|
|
8
|
+
token: TPatternToken;
|
|
9
|
+
} | {
|
|
10
|
+
literal: string;
|
|
11
|
+
};
|
|
12
|
+
export type TNumericToken = Exclude<TPatternToken, 'Z' | 'ZZ' | 'YY'>;
|
|
13
|
+
export declare const SUPPORTED = "YYYY YY MM M DD D HH H mm m ss s SSS Z ZZ";
|
|
14
|
+
export declare const MAX_COMPILED_PATTERNS = 64;
|
|
15
|
+
/** Two-digit years pivot as dayjs and moment do: 00-68 is 2000-2068, 69-99 is 1969-1999. */
|
|
16
|
+
export declare const TWO_DIGIT_YEAR_PIVOT = 68;
|
|
17
|
+
/** `[min digits, max digits, field]` for every numeric token a parse reads directly. */
|
|
18
|
+
export declare const NUMERIC_TOKENS: Record<TNumericToken, [number, number, keyof ITemporalParts]>;
|
|
19
|
+
export declare const pad: (opts: {
|
|
20
|
+
value: number;
|
|
21
|
+
width: number;
|
|
22
|
+
}) => string;
|
|
23
|
+
/** `+07:00`, or `+07:06:40` for an offset with seconds - historic local mean time has them. */
|
|
24
|
+
export declare const formatOffset: (opts: {
|
|
25
|
+
offsetMinutes: number;
|
|
26
|
+
separator: string;
|
|
27
|
+
}) => string;
|
|
28
|
+
/** One writer per token - a lookup rather than a branch per token on every format. */
|
|
29
|
+
export declare const WRITERS: Map<TPatternToken, (parts: IZonedTemporalParts) => string>;
|
|
30
|
+
export declare const isLetter: (code: number) => boolean;
|
|
31
|
+
export declare const isDigit: (code: number) => boolean;
|
|
32
|
+
/** Reads `min`..`max` digits at `position`, greedily; undefined when fewer than `min` are there. */
|
|
33
|
+
export declare const readDigits: (opts: {
|
|
34
|
+
value: string;
|
|
35
|
+
position: number;
|
|
36
|
+
min: number;
|
|
37
|
+
max: number;
|
|
38
|
+
}) => {
|
|
39
|
+
number: number;
|
|
40
|
+
next: number;
|
|
41
|
+
} | undefined;
|
|
42
|
+
/** Reads two digits after an optional separator; undefined when either is missing. */
|
|
43
|
+
export declare const readOffsetField: (opts: {
|
|
44
|
+
value: string;
|
|
45
|
+
position: number;
|
|
46
|
+
separator: boolean;
|
|
47
|
+
}) => {
|
|
48
|
+
number: number;
|
|
49
|
+
next: number;
|
|
50
|
+
} | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* `Z`, `+07:00` (`Z` token) or `+0700` (`ZZ` token), seconds optional, as milliseconds east
|
|
53
|
+
* of UTC. Hours past 23 and minutes or seconds past 59 are refused rather than rolled over.
|
|
54
|
+
*/
|
|
55
|
+
export declare const readOffset: (opts: {
|
|
56
|
+
value: string;
|
|
57
|
+
position: number;
|
|
58
|
+
separator: boolean;
|
|
59
|
+
}) => {
|
|
60
|
+
milliseconds: number;
|
|
61
|
+
next: number;
|
|
62
|
+
} | undefined;
|
|
63
|
+
export declare const TOKEN_NAMES: ReadonlySet<string>;
|
|
64
|
+
export declare const isToken: (run: string) => run is TPatternToken;
|
|
65
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/modules/temporal/tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE1E;;;GAGG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,IAAI,GACJ,GAAG,GACH,KAAK,GACL,GAAG,GACH,IAAI,CAAC;AAET,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAEtE,eAAO,MAAM,SAAS,8CAA8C,CAAC;AAErE,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,4FAA4F;AAC5F,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,wFAAwF;AACxF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC,CAaxF,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,MAAM;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,KAAG,MACf,CAAC;AAE/C,+FAA+F;AAC/F,eAAO,MAAM,YAAY,GAAI,MAAM;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,KAAG,MAYjF,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,OAAO,6BAAkC,mBAAmB,KAAK,MAAM,CAgBlF,CAAC;AAEH,eAAO,MAAM,QAAQ,GAAI,MAAM,MAAM,KAAG,OACmB,CAAC;AAE5D,eAAO,MAAM,OAAO,GAAI,MAAM,MAAM,KAAG,OAAmC,CAAC;AAE3E,oGAAoG;AACpG,eAAO,MAAM,UAAU,GAAI,MAAM;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb,KAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAStC,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,eAAe,GAAI,MAAM;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB,KAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAMtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB,KAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SA0B5C,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,CAA2B,CAAC;AAExE,eAAO,MAAM,OAAO,GAAI,KAAK,MAAM,KAAG,GAAG,IAAI,aAAqC,CAAC"}
|