@venizia/ignis-helpers 0.2.1 → 0.2.2-1
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/modules/error/index.d.ts +1 -1
- package/dist/cjs/modules/error/index.d.ts.map +1 -1
- package/dist/cjs/modules/error/index.js +2 -1
- package/dist/cjs/modules/error/index.js.map +1 -1
- package/dist/cjs/modules/temporal/adapters/index.d.ts +1 -0
- package/dist/cjs/modules/temporal/adapters/index.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/adapters/index.js +1 -0
- package/dist/cjs/modules/temporal/adapters/index.js.map +1 -1
- package/dist/cjs/modules/temporal/adapters/intl.d.ts +16 -0
- package/dist/cjs/modules/temporal/adapters/intl.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/adapters/intl.js +83 -0
- package/dist/cjs/modules/temporal/adapters/intl.js.map +1 -0
- package/dist/cjs/modules/temporal/common/constants.d.ts +12 -0
- package/dist/cjs/modules/temporal/common/constants.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/common/constants.js +15 -1
- package/dist/cjs/modules/temporal/common/constants.js.map +1 -1
- package/dist/cjs/modules/temporal/common/types.d.ts +9 -0
- package/dist/cjs/modules/temporal/common/types.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/duration.d.ts +19 -0
- package/dist/cjs/modules/temporal/duration.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/duration.js +64 -0
- package/dist/cjs/modules/temporal/duration.js.map +1 -0
- package/dist/cjs/modules/temporal/helper.d.ts +90 -4
- package/dist/cjs/modules/temporal/helper.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/helper.js +213 -3
- package/dist/cjs/modules/temporal/helper.js.map +1 -1
- package/dist/cjs/modules/temporal/locale.d.ts +40 -0
- package/dist/cjs/modules/temporal/locale.d.ts.map +1 -0
- package/dist/cjs/modules/temporal/locale.js +124 -0
- package/dist/cjs/modules/temporal/locale.js.map +1 -0
- package/dist/cjs/modules/temporal/pattern.d.ts +2 -0
- package/dist/cjs/modules/temporal/pattern.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/pattern.js +15 -2
- package/dist/cjs/modules/temporal/pattern.js.map +1 -1
- package/dist/cjs/modules/temporal/tokens.d.ts +19 -6
- package/dist/cjs/modules/temporal/tokens.d.ts.map +1 -1
- package/dist/cjs/modules/temporal/tokens.js +49 -17
- package/dist/cjs/modules/temporal/tokens.js.map +1 -1
- package/dist/esm/modules/error/index.d.ts +1 -1
- package/dist/esm/modules/error/index.d.ts.map +1 -1
- package/dist/esm/modules/error/index.js +1 -1
- package/dist/esm/modules/error/index.js.map +1 -1
- package/dist/esm/modules/temporal/adapters/index.d.ts +1 -0
- package/dist/esm/modules/temporal/adapters/index.d.ts.map +1 -1
- package/dist/esm/modules/temporal/adapters/index.js +1 -0
- package/dist/esm/modules/temporal/adapters/index.js.map +1 -1
- package/dist/esm/modules/temporal/adapters/intl.d.ts +16 -0
- package/dist/esm/modules/temporal/adapters/intl.d.ts.map +1 -0
- package/dist/esm/modules/temporal/adapters/intl.js +79 -0
- package/dist/esm/modules/temporal/adapters/intl.js.map +1 -0
- package/dist/esm/modules/temporal/common/constants.d.ts +12 -0
- package/dist/esm/modules/temporal/common/constants.d.ts.map +1 -1
- package/dist/esm/modules/temporal/common/constants.js +13 -0
- package/dist/esm/modules/temporal/common/constants.js.map +1 -1
- package/dist/esm/modules/temporal/common/types.d.ts +9 -0
- package/dist/esm/modules/temporal/common/types.d.ts.map +1 -1
- package/dist/esm/modules/temporal/duration.d.ts +19 -0
- package/dist/esm/modules/temporal/duration.d.ts.map +1 -0
- package/dist/esm/modules/temporal/duration.js +60 -0
- package/dist/esm/modules/temporal/duration.js.map +1 -0
- package/dist/esm/modules/temporal/helper.d.ts +90 -4
- package/dist/esm/modules/temporal/helper.d.ts.map +1 -1
- package/dist/esm/modules/temporal/helper.js +215 -5
- package/dist/esm/modules/temporal/helper.js.map +1 -1
- package/dist/esm/modules/temporal/locale.d.ts +40 -0
- package/dist/esm/modules/temporal/locale.d.ts.map +1 -0
- package/dist/esm/modules/temporal/locale.js +120 -0
- package/dist/esm/modules/temporal/locale.js.map +1 -0
- package/dist/esm/modules/temporal/pattern.d.ts +2 -0
- package/dist/esm/modules/temporal/pattern.d.ts.map +1 -1
- package/dist/esm/modules/temporal/pattern.js +16 -3
- package/dist/esm/modules/temporal/pattern.js.map +1 -1
- package/dist/esm/modules/temporal/tokens.d.ts +19 -6
- package/dist/esm/modules/temporal/tokens.d.ts.map +1 -1
- package/dist/esm/modules/temporal/tokens.js +47 -16
- package/dist/esm/modules/temporal/tokens.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { HTTP } from '../../common/constants/http.js';
|
|
2
|
+
import { getError } from '../error/index.js';
|
|
3
|
+
/** A service writes a handful of locales; capped so caller-fed locales cannot grow it. */
|
|
4
|
+
const MAX_CACHED_LOCALES = 32;
|
|
5
|
+
const MONTHS = 12;
|
|
6
|
+
const WEEKDAYS = 7;
|
|
7
|
+
const NOON = 12;
|
|
8
|
+
/** A Monday: ISO weekday `n` is this date plus `n - 1` days. */
|
|
9
|
+
const MONDAY = Date.UTC(2024, 0, 1);
|
|
10
|
+
const DAY_MILLISECONDS = 86_400_000;
|
|
11
|
+
/**
|
|
12
|
+
* Month and weekday names, the AM/PM marker and the written date of one locale, as `Intl` spells
|
|
13
|
+
* them. Every table is read once, on first use, from a fixed UTC date: the names belong to the
|
|
14
|
+
* calendar, not to a time zone, so the wall clock is formatted as if it were UTC.
|
|
15
|
+
*/
|
|
16
|
+
export class TemporalLocale {
|
|
17
|
+
static { this.locales = new Map(); }
|
|
18
|
+
constructor(opts) {
|
|
19
|
+
this.tables = new Map();
|
|
20
|
+
this.formatters = new Map();
|
|
21
|
+
this.locale = opts.locale;
|
|
22
|
+
}
|
|
23
|
+
/** The locale's names; a malformed tag is a 400. */
|
|
24
|
+
static of(opts) {
|
|
25
|
+
const { locale } = opts;
|
|
26
|
+
const cached = TemporalLocale.locales.get(locale);
|
|
27
|
+
if (cached) {
|
|
28
|
+
return cached;
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
Intl.getCanonicalLocales(locale);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
throw getError({
|
|
35
|
+
statusCode: HTTP.ResultCodes.RS_4.BadRequest,
|
|
36
|
+
message: `[TemporalLocale] invalid locale '${locale}' | ${error instanceof Error ? error.message : String(error)}`,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
// Full: the oldest locale makes room, so the 33rd locale is not rebuilt on every call.
|
|
40
|
+
if (TemporalLocale.locales.size >= MAX_CACHED_LOCALES) {
|
|
41
|
+
const oldest = TemporalLocale.locales.keys().next().value;
|
|
42
|
+
if (oldest !== undefined) {
|
|
43
|
+
TemporalLocale.locales.delete(oldest);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const created = new TemporalLocale({ locale });
|
|
47
|
+
TemporalLocale.locales.set(locale, created);
|
|
48
|
+
return created;
|
|
49
|
+
}
|
|
50
|
+
formatterOf(opts) {
|
|
51
|
+
const key = JSON.stringify(opts);
|
|
52
|
+
const cached = this.formatters.get(key);
|
|
53
|
+
if (cached) {
|
|
54
|
+
return cached;
|
|
55
|
+
}
|
|
56
|
+
// Gregorian always: the numeric tokens are, and a name from another calendar would sit beside them.
|
|
57
|
+
const formatter = new Intl.DateTimeFormat(this.locale, {
|
|
58
|
+
...opts,
|
|
59
|
+
calendar: 'gregory',
|
|
60
|
+
timeZone: 'UTC',
|
|
61
|
+
});
|
|
62
|
+
this.formatters.set(key, formatter);
|
|
63
|
+
return formatter;
|
|
64
|
+
}
|
|
65
|
+
tableOf(opts) {
|
|
66
|
+
const cached = this.tables.get(opts.key);
|
|
67
|
+
if (cached) {
|
|
68
|
+
return cached;
|
|
69
|
+
}
|
|
70
|
+
const table = Array.from({ length: opts.size }, (_, index) => opts.read(index));
|
|
71
|
+
this.tables.set(opts.key, table);
|
|
72
|
+
return table;
|
|
73
|
+
}
|
|
74
|
+
/** `month` is 1-12. */
|
|
75
|
+
monthName(opts) {
|
|
76
|
+
const { month, width } = opts;
|
|
77
|
+
const formatter = this.formatterOf({ month: width });
|
|
78
|
+
const table = this.tableOf({
|
|
79
|
+
key: `month-${width}`,
|
|
80
|
+
size: MONTHS,
|
|
81
|
+
read: index => formatter.format(Date.UTC(2024, index, 15)),
|
|
82
|
+
});
|
|
83
|
+
return table[month - 1];
|
|
84
|
+
}
|
|
85
|
+
/** `dayOfWeek` is ISO: 1 Monday - 7 Sunday. */
|
|
86
|
+
weekdayName(opts) {
|
|
87
|
+
const { dayOfWeek, width } = opts;
|
|
88
|
+
const formatter = this.formatterOf({ weekday: width });
|
|
89
|
+
const table = this.tableOf({
|
|
90
|
+
key: `weekday-${width}`,
|
|
91
|
+
size: WEEKDAYS,
|
|
92
|
+
read: index => formatter.format(MONDAY + index * DAY_MILLISECONDS),
|
|
93
|
+
});
|
|
94
|
+
return table[dayOfWeek - 1];
|
|
95
|
+
}
|
|
96
|
+
/** The AM or PM marker the locale writes for `hour` (0-23), lower-cased by the locale's own rules when asked. */
|
|
97
|
+
dayPeriod(opts) {
|
|
98
|
+
const formatter = this.formatterOf({ hour: 'numeric', hourCycle: 'h12' });
|
|
99
|
+
const table = this.tableOf({
|
|
100
|
+
key: 'day-period',
|
|
101
|
+
size: 2,
|
|
102
|
+
read: index => formatter
|
|
103
|
+
.formatToParts(Date.UTC(2024, 0, 1, index === 0 ? 1 : NOON + 1))
|
|
104
|
+
.find(part => part.type === 'dayPeriod')?.value ?? (index === 0 ? 'AM' : 'PM'),
|
|
105
|
+
});
|
|
106
|
+
const marker = table[opts.hour < NOON ? 0 : 1];
|
|
107
|
+
return opts.isLowerCase ? marker.toLocaleLowerCase(this.locale) : marker;
|
|
108
|
+
}
|
|
109
|
+
/** The wall-clock date the way the locale writes it: `numeric` is `10/14/2026`, `long` is `October 14, 2026`. */
|
|
110
|
+
writtenDate(opts) {
|
|
111
|
+
const { parts, style } = opts;
|
|
112
|
+
const formatter = style === 'numeric'
|
|
113
|
+
? this.formatterOf({ year: 'numeric', month: '2-digit', day: '2-digit' })
|
|
114
|
+
: this.formatterOf({ dateStyle: 'long' });
|
|
115
|
+
const date = new Date(0);
|
|
116
|
+
date.setUTCFullYear(parts.year, parts.month - 1, parts.day);
|
|
117
|
+
return formatter.format(date);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=locale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../../../src/modules/temporal/locale.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,9 +8,11 @@ export declare class TemporalPattern {
|
|
|
8
8
|
* is refused: `yyyy` is not `YYYY`, and `MMM` is never read as `MM` then `M`.
|
|
9
9
|
*/
|
|
10
10
|
private static compile;
|
|
11
|
+
/** Writes the wall clock; `locale` spells the name tokens, and is only resolved when one is used. */
|
|
11
12
|
static format(opts: {
|
|
12
13
|
pattern: string;
|
|
13
14
|
parts: IZonedTemporalParts;
|
|
15
|
+
locale: string;
|
|
14
16
|
}): string;
|
|
15
17
|
/** 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
18
|
static parse(opts: {
|
|
@@ -1 +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;
|
|
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;AAgB1E,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,qGAAqG;IACrG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,mBAAmB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAe5F,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;CAgEvE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HTTP } from '../../common/constants/http.js';
|
|
2
2
|
import { getError } from '../error/index.js';
|
|
3
|
-
import {
|
|
3
|
+
import { TemporalLocale } from './locale.js';
|
|
4
|
+
import { isLetter, isLocaleToken, isToken, MAX_COMPILED_PATTERNS, NUMERIC_TOKENS, readDigits, readOffset, SUPPORTED, TWO_DIGIT_YEAR_PIVOT, WRITERS, } from './tokens.js';
|
|
4
5
|
/** The pattern dialect: compiled once per pattern, then formatted and parsed from the cache. */
|
|
5
6
|
export class TemporalPattern {
|
|
6
7
|
/** A service formats the same few patterns millions of times; capped so caller-fed patterns cannot grow it. */
|
|
@@ -64,12 +65,17 @@ export class TemporalPattern {
|
|
|
64
65
|
}
|
|
65
66
|
return segments;
|
|
66
67
|
}
|
|
68
|
+
/** Writes the wall clock; `locale` spells the name tokens, and is only resolved when one is used. */
|
|
67
69
|
static format(opts) {
|
|
68
70
|
const segments = TemporalPattern.compile({ pattern: opts.pattern });
|
|
71
|
+
let resolved;
|
|
72
|
+
const input = {
|
|
73
|
+
parts: opts.parts,
|
|
74
|
+
locale: () => (resolved ??= TemporalLocale.of({ locale: opts.locale })),
|
|
75
|
+
};
|
|
69
76
|
let text = '';
|
|
70
77
|
for (const segment of segments) {
|
|
71
|
-
text +=
|
|
72
|
-
'literal' in segment ? segment.literal : (WRITERS.get(segment.token)?.(opts.parts) ?? '');
|
|
78
|
+
text += 'literal' in segment ? segment.literal : (WRITERS.get(segment.token)?.(input) ?? '');
|
|
73
79
|
}
|
|
74
80
|
return text;
|
|
75
81
|
}
|
|
@@ -97,6 +103,13 @@ export class TemporalPattern {
|
|
|
97
103
|
continue;
|
|
98
104
|
}
|
|
99
105
|
const { token } = segment;
|
|
106
|
+
// A pattern is code, not input: a write-only token here is a bug, as an unknown token is.
|
|
107
|
+
if (isLocaleToken(token)) {
|
|
108
|
+
throw getError({
|
|
109
|
+
statusCode: HTTP.ResultCodes.RS_5.InternalServerError,
|
|
110
|
+
message: `[TemporalPattern] '${token}' in pattern '${opts.pattern}' is for writing only | A parse reads the numeric tokens`,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
100
113
|
if (token === 'Z' || token === 'ZZ') {
|
|
101
114
|
const offset = readOffset({ value, position, separator: token === 'Z' });
|
|
102
115
|
if (!offset) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../../src/modules/temporal/pattern.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../../src/modules/temporal/pattern.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
import type { ITemporalParts, IZonedTemporalParts } from './common/types.js';
|
|
2
|
+
import type { TemporalLocale } from './locale.js';
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
4
|
+
* Tokens a pattern can write but never read: names and the written date come from a locale, and a
|
|
5
|
+
* parse stays numeric and strict.
|
|
5
6
|
*/
|
|
6
|
-
export type
|
|
7
|
+
export type TLocaleToken = 'MMMM' | 'MMM' | 'dddd' | 'ddd' | 'A' | 'a' | 'hh' | 'h' | 'LL' | 'L';
|
|
8
|
+
/**
|
|
9
|
+
* The pattern dialect, one for every adapter: `YYYY YY MM M DD D HH H mm m ss s SSS Z ZZ` both ways,
|
|
10
|
+
* plus the locale tokens `MMMM MMM dddd ddd A a hh h LL L` for writing only, with text in `[brackets]`.
|
|
11
|
+
*/
|
|
12
|
+
export type TPatternToken = TLocaleToken | 'YYYY' | 'YY' | 'MM' | 'M' | 'DD' | 'D' | 'HH' | 'H' | 'mm' | 'm' | 'ss' | 's' | 'SSS' | 'Z' | 'ZZ';
|
|
7
13
|
export type TPatternSegment = {
|
|
8
14
|
token: TPatternToken;
|
|
9
15
|
} | {
|
|
10
16
|
literal: string;
|
|
11
17
|
};
|
|
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";
|
|
18
|
+
export type TNumericToken = Exclude<TPatternToken, 'Z' | 'ZZ' | 'YY' | TLocaleToken>;
|
|
19
|
+
export declare const SUPPORTED = "YYYY YY MM M DD D HH H mm m ss s SSS Z ZZ, and for writing only MMMM MMM dddd ddd A a hh h LL L";
|
|
20
|
+
export declare const LOCALE_TOKENS: ReadonlySet<TPatternToken>;
|
|
21
|
+
export declare const isLocaleToken: (token: TPatternToken) => token is TLocaleToken;
|
|
14
22
|
export declare const MAX_COMPILED_PATTERNS = 64;
|
|
15
23
|
/** Two-digit years pivot as dayjs and moment do: 00-68 is 2000-2068, 69-99 is 1969-1999. */
|
|
16
24
|
export declare const TWO_DIGIT_YEAR_PIVOT = 68;
|
|
@@ -25,8 +33,13 @@ export declare const formatOffset: (opts: {
|
|
|
25
33
|
offsetMinutes: number;
|
|
26
34
|
separator: string;
|
|
27
35
|
}) => string;
|
|
36
|
+
/** What a writer reads: the wall clock, and the locale - resolved only when a locale token asks for it. */
|
|
37
|
+
export interface ITokenWriterInput {
|
|
38
|
+
parts: IZonedTemporalParts;
|
|
39
|
+
locale: () => TemporalLocale;
|
|
40
|
+
}
|
|
28
41
|
/** One writer per token - a lookup rather than a branch per token on every format. */
|
|
29
|
-
export declare const WRITERS: Map<TPatternToken, (
|
|
42
|
+
export declare const WRITERS: Map<TPatternToken, (input: ITokenWriterInput) => string>;
|
|
30
43
|
export declare const isLetter: (code: number) => boolean;
|
|
31
44
|
export declare const isDigit: (code: number) => boolean;
|
|
32
45
|
/** Reads `min`..`max` digits at `position`, greedily; undefined when fewer than `min` are there. */
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../../../../src/modules/temporal/tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
export const SUPPORTED = 'YYYY YY MM M DD D HH H mm m ss s SSS Z ZZ';
|
|
1
|
+
export const SUPPORTED = 'YYYY YY MM M DD D HH H mm m ss s SSS Z ZZ, and for writing only MMMM MMM dddd ddd A a hh h LL L';
|
|
2
|
+
export const LOCALE_TOKENS = new Set([
|
|
3
|
+
'MMMM',
|
|
4
|
+
'MMM',
|
|
5
|
+
'dddd',
|
|
6
|
+
'ddd',
|
|
7
|
+
'A',
|
|
8
|
+
'a',
|
|
9
|
+
'hh',
|
|
10
|
+
'h',
|
|
11
|
+
'LL',
|
|
12
|
+
'L',
|
|
13
|
+
]);
|
|
14
|
+
export const isLocaleToken = (token) => LOCALE_TOKENS.has(token);
|
|
2
15
|
export const MAX_COMPILED_PATTERNS = 64;
|
|
3
16
|
/** Two-digit years pivot as dayjs and moment do: 00-68 is 2000-2068, 69-99 is 1969-1999. */
|
|
4
17
|
export const TWO_DIGIT_YEAR_PIVOT = 68;
|
|
@@ -30,23 +43,41 @@ export const formatOffset = (opts) => {
|
|
|
30
43
|
pad({ value: Math.floor((totalSeconds % 3600) / 60), width: 2 });
|
|
31
44
|
return seconds === 0 ? text : text + separator + pad({ value: seconds, width: 2 });
|
|
32
45
|
};
|
|
46
|
+
/** The hour on a 12-hour clock: 12, 1, ... 11. */
|
|
47
|
+
const twelveHour = (hour) => hour % 12 || 12;
|
|
33
48
|
/** One writer per token - a lookup rather than a branch per token on every format. */
|
|
34
49
|
export const WRITERS = new Map([
|
|
35
|
-
['YYYY', parts => pad({ value: parts.year, width: 4 })],
|
|
36
|
-
['YY', parts => pad({ value: parts.year % 100, width: 2 })],
|
|
37
|
-
['
|
|
38
|
-
['
|
|
39
|
-
['
|
|
40
|
-
['
|
|
41
|
-
['
|
|
42
|
-
['
|
|
43
|
-
[
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
[
|
|
48
|
-
|
|
49
|
-
|
|
50
|
+
['YYYY', ({ parts }) => pad({ value: parts.year, width: 4 })],
|
|
51
|
+
['YY', ({ parts }) => pad({ value: parts.year % 100, width: 2 })],
|
|
52
|
+
['MMMM', ({ parts, locale }) => locale().monthName({ month: parts.month, width: 'long' })],
|
|
53
|
+
['MMM', ({ parts, locale }) => locale().monthName({ month: parts.month, width: 'short' })],
|
|
54
|
+
['MM', ({ parts }) => pad({ value: parts.month, width: 2 })],
|
|
55
|
+
['M', ({ parts }) => String(parts.month)],
|
|
56
|
+
['DD', ({ parts }) => pad({ value: parts.day, width: 2 })],
|
|
57
|
+
['D', ({ parts }) => String(parts.day)],
|
|
58
|
+
[
|
|
59
|
+
'dddd',
|
|
60
|
+
({ parts, locale }) => locale().weekdayName({ dayOfWeek: parts.dayOfWeek, width: 'long' }),
|
|
61
|
+
],
|
|
62
|
+
[
|
|
63
|
+
'ddd',
|
|
64
|
+
({ parts, locale }) => locale().weekdayName({ dayOfWeek: parts.dayOfWeek, width: 'short' }),
|
|
65
|
+
],
|
|
66
|
+
['HH', ({ parts }) => pad({ value: parts.hour, width: 2 })],
|
|
67
|
+
['H', ({ parts }) => String(parts.hour)],
|
|
68
|
+
['hh', ({ parts }) => pad({ value: twelveHour(parts.hour), width: 2 })],
|
|
69
|
+
['h', ({ parts }) => String(twelveHour(parts.hour))],
|
|
70
|
+
['A', ({ parts, locale }) => locale().dayPeriod({ hour: parts.hour })],
|
|
71
|
+
['a', ({ parts, locale }) => locale().dayPeriod({ hour: parts.hour, isLowerCase: true })],
|
|
72
|
+
['mm', ({ parts }) => pad({ value: parts.minute, width: 2 })],
|
|
73
|
+
['m', ({ parts }) => String(parts.minute)],
|
|
74
|
+
['ss', ({ parts }) => pad({ value: parts.second, width: 2 })],
|
|
75
|
+
['s', ({ parts }) => String(parts.second)],
|
|
76
|
+
['SSS', ({ parts }) => pad({ value: parts.millisecond, width: 3 })],
|
|
77
|
+
['Z', ({ parts }) => formatOffset({ offsetMinutes: parts.offsetMinutes, separator: ':' })],
|
|
78
|
+
['ZZ', ({ parts }) => formatOffset({ offsetMinutes: parts.offsetMinutes, separator: '' })],
|
|
79
|
+
['LL', ({ parts, locale }) => locale().writtenDate({ parts, style: 'long' })],
|
|
80
|
+
['L', ({ parts, locale }) => locale().writtenDate({ parts, style: 'numeric' })],
|
|
50
81
|
]);
|
|
51
82
|
export const isLetter = (code) => (code >= 65 && code <= 90) || (code >= 97 && code <= 122);
|
|
52
83
|
export const isDigit = (code) => code >= 48 && code <= 57;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../../src/modules/temporal/tokens.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../../src/modules/temporal/tokens.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-helpers",
|
|
3
|
-
"version": "0.2.1",
|
|
3
|
+
"version": "0.2.2-1",
|
|
4
4
|
"description": "Production-ready TypeScript utility library: pluggable logging (winston or pino behind one ILogger contract), Redis single/cluster/sentinel with pub/sub, BullMQ/MQTT/Kafka message queues, MinIO/Disk/Bun-S3 object storage, AES-256/RSA/ECDH cryptography, Snowflake UID generation, cron scheduling, Socket.IO/WebSocket, TCP/TLS/UDP networking, HTTP clients, secrets/Vault, worker thread pools, and environment management. Sub-path imports isolate optional peer dependencies so the root barrel never forces a peer into your bundle.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"aes",
|
|
@@ -228,7 +228,7 @@
|
|
|
228
228
|
},
|
|
229
229
|
"dependencies": {
|
|
230
230
|
"zod": "^4.5.4",
|
|
231
|
-
"@venizia/ignis-inversion": "^0.2.
|
|
231
|
+
"@venizia/ignis-inversion": "^0.2.2-0",
|
|
232
232
|
"reflect-metadata": "^0.2.2"
|
|
233
233
|
},
|
|
234
234
|
"peerDependencies": {
|