rlz-engine 1.0.50 → 1.0.52

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.
@@ -0,0 +1,6 @@
1
+ import type { Plugin } from 'esbuild';
2
+ type PinoWorkersPluginOptions = {
3
+ transports?: string[];
4
+ };
5
+ export declare function esbuildPluginPino(options?: PinoWorkersPluginOptions): Plugin;
6
+ export {};
@@ -0,0 +1,87 @@
1
+ import { createRequire } from 'node:module';
2
+ import path from 'node:path';
3
+ import { build as esbuildBuild } from 'esbuild';
4
+ const REQUIRE = createRequire(import.meta.url);
5
+ export function esbuildPluginPino(options = {}) {
6
+ return {
7
+ name: 'pino-workers',
8
+ setup(build) {
9
+ const outdir = build.initialOptions.outdir;
10
+ if (!outdir) {
11
+ throw new Error('pinoWorkersPlugin requires "outdir" to be set');
12
+ }
13
+ const extraEntries = resolveExtraEntries(outdir, options.transports ?? []);
14
+ injectBundlerOverrides(build.initialOptions, extraEntries);
15
+ build.onEnd(async (result) => {
16
+ if (result.errors.length > 0) {
17
+ return;
18
+ }
19
+ await Promise.all(extraEntries.map(entry => esbuildBuild(makeBuildOptions(build.initialOptions, entry))));
20
+ });
21
+ }
22
+ };
23
+ }
24
+ function resolveExtraEntries(outdir, transports) {
25
+ const transportEntries = Array.from(new Set(['pino/file', ...transports])).map(transport => ({
26
+ entryPoint: REQUIRE.resolve(transport),
27
+ outfile: path.join(outdir, `${sanitizeTransportName(transport)}.js`),
28
+ overrideKey: transport
29
+ }));
30
+ return [
31
+ {
32
+ entryPoint: REQUIRE.resolve('thread-stream/lib/worker.js'),
33
+ outfile: path.join(outdir, 'thread-stream-worker.js'),
34
+ overrideKey: 'thread-stream-worker'
35
+ },
36
+ {
37
+ entryPoint: REQUIRE.resolve('pino/lib/worker.js'),
38
+ outfile: path.join(outdir, 'pino-worker.js'),
39
+ overrideKey: 'pino-worker'
40
+ },
41
+ ...transportEntries
42
+ ];
43
+ }
44
+ function makeBuildOptions(initialOptions, entry) {
45
+ return {
46
+ bundle: true,
47
+ define: initialOptions.define,
48
+ external: initialOptions.external,
49
+ format: initialOptions.format ?? 'cjs',
50
+ keepNames: initialOptions.keepNames,
51
+ minify: initialOptions.minify,
52
+ outfile: entry.outfile,
53
+ platform: initialOptions.platform ?? 'node',
54
+ sourcemap: initialOptions.sourcemap,
55
+ target: initialOptions.target,
56
+ entryPoints: [entry.entryPoint]
57
+ };
58
+ }
59
+ function sanitizeTransportName(transport) {
60
+ return transport.replace(/[@/\\]/g, '-');
61
+ }
62
+ function injectBundlerOverrides(initialOptions, extraEntries) {
63
+ const existingBanner = initialOptions.banner?.js;
64
+ const overrideLines = extraEntries.map((entry) => {
65
+ const relativePath = `./${path.basename(entry.outfile)}`;
66
+ return `${JSON.stringify(entry.overrideKey)}: pinoBundlerAbsolutePath(${JSON.stringify(relativePath)})`;
67
+ });
68
+ const banner = [
69
+ existingBanner,
70
+ 'function pinoBundlerAbsolutePath(path) {',
71
+ ' try {',
72
+ ' return require(\'path\').join((process.cwd() + require(\'path\').sep + \'dist\').replace(/\\\\/g, \'/\'), path)',
73
+ ' } catch {',
74
+ ' return new Function(\'p\', \'return new URL(p, import.meta.url).pathname\')(path)',
75
+ ' }',
76
+ '}',
77
+ 'globalThis.__bundlerPathsOverrides = {',
78
+ ' ...(globalThis.__bundlerPathsOverrides || {}),',
79
+ ` ${overrideLines.join(',\n ')}`,
80
+ '};'
81
+ ].filter(Boolean).join('\n');
82
+ initialOptions.banner = {
83
+ ...initialOptions.banner,
84
+ js: banner
85
+ };
86
+ }
87
+ //# sourceMappingURL=esbuild-plugin-pino.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"esbuild-plugin-pino.js","sourceRoot":"","sources":["../../src/back/esbuild-plugin-pino.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  import { WritableDraft } from 'immer';
2
2
  import { Logger, LoggerOptions } from 'pino';
3
- export declare function logger(name: string, optionsRecipe?: (draft: WritableDraft<LoggerOptions>) => WritableDraft<LoggerOptions>): Logger;
4
- export declare function loggerOptions(name: string): LoggerOptions;
3
+ export interface LoggerConfig {
4
+ debug?: boolean;
5
+ }
6
+ export declare function logger(name: string, config?: LoggerConfig, optionsRecipe?: (draft: WritableDraft<LoggerOptions>) => WritableDraft<LoggerOptions>): Logger;
7
+ export declare function loggerOptions(name: string, { debug }?: LoggerConfig): LoggerOptions;
@@ -1,20 +1,20 @@
1
1
  import { produce } from 'immer';
2
2
  import { pino } from 'pino';
3
3
  import { PRODUCTION } from './config.js';
4
- export function logger(name, optionsRecipe) {
4
+ export function logger(name, config, optionsRecipe) {
5
5
  const options = optionsRecipe === undefined
6
- ? loggerOptions(name)
7
- : produce(loggerOptions(name), optionsRecipe);
6
+ ? loggerOptions(name, config)
7
+ : produce(loggerOptions(name, config), optionsRecipe);
8
8
  return pino(options);
9
9
  }
10
- export function loggerOptions(name) {
10
+ export function loggerOptions(name, { debug = false } = {}) {
11
11
  if (PRODUCTION) {
12
12
  return {
13
13
  name,
14
14
  transport: {
15
15
  targets: [
16
16
  {
17
- level: 'info',
17
+ level: debug ? 'debug' : 'info',
18
18
  target: 'pino/file',
19
19
  options: { destination: 1 }
20
20
  }
@@ -24,7 +24,7 @@ export function loggerOptions(name) {
24
24
  // }
25
25
  ]
26
26
  },
27
- level: 'info'
27
+ level: debug ? 'debug' : 'info'
28
28
  };
29
29
  }
30
30
  return {
@@ -37,7 +37,7 @@ export function loggerOptions(name) {
37
37
  }
38
38
  ]
39
39
  },
40
- level: 'trace'
40
+ level: debug ? 'trace' : 'info'
41
41
  };
42
42
  }
43
43
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/back/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,OAAO,CAAA;AAC9C,OAAO,EAAyB,IAAI,EAAE,MAAM,MAAM,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,MAAM,UAAU,MAAM,CAAC,IAAY,EAAE,aAAqF;IACtH,MAAM,OAAO,GAAG,aAAa,KAAK,SAAS;QACvC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAA;IACjD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACtC,IAAI,UAAU,EAAE,CAAC;QACb,OAAO;YACH,IAAI;YACJ,SAAS,EAAE;gBACP,OAAO,EAAE;oBACL;wBACI,KAAK,EAAE,MAAM;wBACb,MAAM,EAAE,WAAW;wBACnB,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;qBAC9B;oBACD,IAAI;oBACJ,qBAAqB;oBACrB,sBAAsB;oBACtB,IAAI;iBACP;aACJ;YACD,KAAK,EAAE,MAAM;SAChB,CAAA;IACL,CAAC;IAED,OAAO;QACH,IAAI;QACJ,SAAS,EAAE;YACP,OAAO,EAAE;gBACL;oBACI,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,aAAa;iBACxB;aACJ;SACJ;QACD,KAAK,EAAE,OAAO;KACjB,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/back/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAiB,MAAM,OAAO,CAAA;AAC9C,OAAO,EAAyB,IAAI,EAAE,MAAM,MAAM,CAAA;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAMxC,MAAM,UAAU,MAAM,CAClB,IAAY,EACZ,MAAqB,EACrB,aAAqF;IAErF,MAAM,OAAO,GAAG,aAAa,KAAK,SAAS;QACvC,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC;QAC7B,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,CAAA;IACzD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,EAAE,KAAK,GAAG,KAAK,KAAmB,EAAE;IAC5E,IAAI,UAAU,EAAE,CAAC;QACb,OAAO;YACH,IAAI;YACJ,SAAS,EAAE;gBACP,OAAO,EAAE;oBACL;wBACI,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;wBAC/B,MAAM,EAAE,WAAW;wBACnB,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE;qBAC9B;oBACD,IAAI;oBACJ,qBAAqB;oBACrB,sBAAsB;oBACtB,IAAI;iBACP;aACJ;YACD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;SAClC,CAAA;IACL,CAAC;IAED,OAAO;QACH,IAAI;QACJ,SAAS,EAAE;YACP,OAAO,EAAE;gBACL;oBACI,KAAK,EAAE,OAAO;oBACd,MAAM,EAAE,aAAa;iBACxB;aACJ;SACJ;QACD,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;KAClC,CAAA;AACL,CAAC"}
@@ -3,6 +3,7 @@ import { Logger } from 'pino';
3
3
  export type InitServerFuncType = <S extends RawServerBase>(server: FastifyInstance<S, RawRequestDefaultExpression<S>, RawReplyDefaultExpression<S>, Logger>) => Promise<void>;
4
4
  export interface RunServerParams {
5
5
  production: boolean;
6
+ debug?: boolean;
6
7
  unsecurePort?: number;
7
8
  securePort?: number;
8
9
  domain: string;
@@ -10,4 +11,4 @@ export interface RunServerParams {
10
11
  staticDir: string;
11
12
  init: InitServerFuncType;
12
13
  }
13
- export declare function runServer({ production, domain, certDir, staticDir, securePort, unsecurePort, init }: RunServerParams): Promise<() => Promise<void>>;
14
+ export declare function runServer({ production, debug, domain, certDir, staticDir, securePort, unsecurePort, init }: RunServerParams): Promise<() => Promise<void>>;
@@ -11,11 +11,11 @@ import { installIntoGlobal } from 'iterator-helpers-polyfill';
11
11
  import path from 'path';
12
12
  import { logger } from './logger.js';
13
13
  installIntoGlobal();
14
- const L = logger('init');
15
- export async function runServer({ production, domain, certDir, staticDir, securePort, unsecurePort, init }) {
14
+ export async function runServer({ production, debug = false, domain, certDir, staticDir, securePort, unsecurePort, init }) {
15
+ const L = logger('init', { debug });
16
16
  L.info({ production }, 'runServer');
17
17
  const httpServer = fastify({
18
- loggerInstance: logger('http'),
18
+ loggerInstance: logger('http', { debug }),
19
19
  ajv: { plugins: [formatsPlugin.default], customOptions: { useDefaults: false, coerceTypes: false, allErrors: true, verbose: true } }
20
20
  });
21
21
  if (!production) {
@@ -40,7 +40,7 @@ export async function runServer({ production, domain, certDir, staticDir, secure
40
40
  httpServer.register(fastifyAcmeUnsecurePlugin, { redirectDomain: domain });
41
41
  await httpServer.listen({ port: unsecurePort ?? 80, host: '::' });
42
42
  L.info('Get certificates');
43
- const certAndKey = await getCertAndKey(certDir, domain);
43
+ const certAndKey = await getCertAndKey(certDir, domain, httpServer.log);
44
44
  L.info('Init secure server');
45
45
  const httpsServer = fastify({
46
46
  http2: true,
@@ -49,7 +49,7 @@ export async function runServer({ production, domain, certDir, staticDir, secure
49
49
  cert: certAndKey.cert,
50
50
  key: certAndKey.pkey
51
51
  },
52
- loggerInstance: logger('https'),
52
+ loggerInstance: logger('https', { debug }),
53
53
  ajv: { plugins: [formatsPlugin.default], customOptions: { useDefaults: false, coerceTypes: false, allErrors: true, verbose: true } }
54
54
  });
55
55
  await httpsServer.register(fastifyAcmeSecurePlugin, {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/back/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/back/server.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { DateTime } from 'luxon';
2
- import { toValid } from '../shared/utils/datetime.js';
2
+ import { toValidDateTime } from '../shared/utils/datetime.js';
3
3
  export async function syncItems({ getRemoteLastModified, localItems, pushRemote, getRemote, pushLocal, lastSyncDate }) {
4
4
  const remoteItems = (await getRemoteLastModified()).items;
5
- const remoteItemsMap = Object.fromEntries(remoteItems.map(i => [i.id, toValid(DateTime.fromISO(i.lastModified, { zone: 'utc' }))]));
5
+ const remoteItemsMap = Object.fromEntries(remoteItems.map(i => [i.id, toValidDateTime(DateTime.fromISO(i.lastModified, { zone: 'utc' }))]));
6
6
  const itemsToGet = [];
7
7
  const itemsToPush = [];
8
8
  for (const i of localItems) {
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/client/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AAErD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAyD,EACpF,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EAQf;IACG,MAAM,WAAW,GAAG,CAAC,MAAM,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAA;IACzD,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CACrC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAC3F,CAAA;IAED,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,MAAM,WAAW,GAAQ,EAAE,CAAA;IAE3B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACnB,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC;gBACzD,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;YACD,SAAQ;QACZ,CAAC;QAED,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5B,SAAQ;QACZ,CAAC;QAED,IAAI,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YACtB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACnB,SAAQ;QACZ,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACzB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACrD,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvB,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,UAAU,CAAC,WAAW,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,SAAS,CAAC,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/client/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAGhC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAE7D,MAAM,CAAC,KAAK,UAAU,SAAS,CAAyD,EACpF,qBAAqB,EACrB,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EAQf;IACG,MAAM,WAAW,GAAG,CAAC,MAAM,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAA;IACzD,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CACrC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CACnG,CAAA;IAED,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,MAAM,WAAW,GAAQ,EAAE,CAAA;IAE3B,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAC/B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACnB,IAAI,YAAY,KAAK,IAAI,IAAI,CAAC,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC;gBACzD,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACvB,CAAC;YACD,SAAQ;QACZ,CAAC;QAED,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5B,SAAQ;QACZ,CAAC;QAED,IAAI,EAAE,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YACtB,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACnB,SAAQ;QACZ,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IACzB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACrD,KAAK,MAAM,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACtB,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACvB,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,UAAU,CAAC,WAAW,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,SAAS,CAAC,CAAC,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;AACL,CAAC"}
@@ -1,3 +1,5 @@
1
1
  import { DateTime } from 'luxon';
2
- export declare function toValid(datetime: DateTime): DateTime<true>;
2
+ export declare function isValidDateTime(dt: DateTime): dt is DateTime<true>;
3
+ export declare function assertValidDateTime(dt: DateTime<boolean> | undefined | null): asserts dt is DateTime<true>;
4
+ export declare function toValidDateTime(datetime: DateTime): DateTime<true>;
3
5
  export declare function utcToday(): DateTime<true>;
@@ -1,16 +1,20 @@
1
1
  import { DateTime } from 'luxon';
2
- export function toValid(datetime) {
3
- if (!datetime.isValid) {
4
- throw Error('Invalid DateTime');
2
+ export function isValidDateTime(dt) {
3
+ return dt.isValid;
4
+ }
5
+ export function assertValidDateTime(dt) {
6
+ if (dt !== undefined && dt !== null && !dt.isValid) {
7
+ throw new Error('Invalid DateTime');
5
8
  }
9
+ }
10
+ export function toValidDateTime(datetime) {
11
+ assertValidDateTime(datetime);
6
12
  return datetime;
7
13
  }
8
14
  export function utcToday() {
9
15
  const local = DateTime.local();
10
16
  const utc = DateTime.utc(local.year, local.month, local.day);
11
- if (!utc.isValid) {
12
- throw Error('Invalid DateTime');
13
- }
17
+ assertValidDateTime(utc);
14
18
  return utc;
15
19
  }
16
20
  //# sourceMappingURL=datetime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../../src/shared/utils/datetime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,MAAM,UAAU,OAAO,CAAC,QAAkB;IACtC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACnC,CAAC;IAED,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,QAAQ;IACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAA;IAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5D,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACf,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,GAAG,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"datetime.js","sourceRoot":"","sources":["../../../src/shared/utils/datetime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,MAAM,UAAU,eAAe,CAAC,EAAY;IACxC,OAAO,EAAE,CAAC,OAAO,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAAwC;IACxE,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACvC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAkB;IAC9C,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IAE7B,OAAO,QAAQ,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,QAAQ;IACpB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAA;IAC9B,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5D,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACxB,OAAO,GAAG,CAAA;AACd,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rlz-engine",
3
- "version": "1.0.50",
3
+ "version": "1.0.52",
4
4
  "description": "Deps and tools for my style of development",
5
5
  "author": "Dmitry Maslennikov <maslennikovdm@gmail.com>",
6
6
  "license": "ISC",
@@ -22,51 +22,51 @@
22
22
  "dist"
23
23
  ],
24
24
  "devDependencies": {
25
- "@stylistic/eslint-plugin": "^5.0.0",
26
- "@types/luxon": "^3.4.2",
27
- "@types/node": "^25.0.3",
28
- "@typescript-eslint/parser": "^8.16.0",
29
- "eslint": "^10.4.0",
30
- "eslint-plugin-simple-import-sort": "^13.0.0",
31
- "tsx": "^4.19.2",
32
- "typescript": "^5.9.3",
33
- "typescript-eslint": "^8.16.0",
34
- "@types/react": "^19.0.2",
35
- "@types/react-dom": "^19.0.2"
25
+ "@stylistic/eslint-plugin": "^5.10.0",
26
+ "@types/luxon": "^3.7.4",
27
+ "@types/node": "^26.2.0",
28
+ "@types/react": "^19.2.18",
29
+ "@types/react-dom": "^19.2.4",
30
+ "@typescript-eslint/parser": "^8.67.0",
31
+ "eslint": "^10.8.1",
32
+ "eslint-plugin-simple-import-sort": "^14.0.0",
33
+ "tsx": "^4.23.12",
34
+ "typescript": "^6.0.3",
35
+ "typescript-eslint": "^8.67.0"
36
36
  },
37
37
  "dependencies": {
38
38
  "@emotion/react": "^11.14.0",
39
- "@emotion/styled": "^11.14.0",
40
- "@fastify/compress": "^8.0.1",
41
- "@fastify/cors": "^11.0.1",
42
- "@fastify/response-validation": "^3.0.2",
43
- "@fastify/sensible": "^6.0.1",
44
- "@fastify/static": "^9.0.0",
45
- "@fontsource/roboto": "^5.0.12",
46
- "@mui/icons-material": "^9.0.1",
47
- "@mui/material": "^9.0.1",
39
+ "@emotion/styled": "^11.14.1",
40
+ "@fastify/compress": "^9.2.0",
41
+ "@fastify/cors": "^11.3.0",
42
+ "@fastify/response-validation": "^3.0.4",
43
+ "@fastify/sensible": "^6.0.5",
44
+ "@fastify/static": "^10.1.3",
45
+ "@fontsource/roboto": "^5.3.0",
46
+ "@mui/icons-material": "^9.3.1",
47
+ "@mui/material": "^9.3.1",
48
48
  "@types/react-router-dom": "^5.3.3",
49
49
  "acme-client": "^5.4.0",
50
50
  "ajv": "^8.20.0",
51
51
  "ajv-formats": "^3.0.1",
52
52
  "cmd-ts": "^0.15.0",
53
- "embla-carousel-react": "^8.5.1",
54
- "embla-carousel-wheel-gestures": "^8.0.1",
55
- "fastify": "^5.1.0",
56
- "fastify-acme": "^1.0.5",
57
- "fastify-plugin": "^5.0.1",
58
- "immer": "^11.1.3",
53
+ "embla-carousel-react": "^8.6.0",
54
+ "embla-carousel-wheel-gestures": "^8.1.0",
55
+ "fastify": "^5.12.1",
56
+ "fastify-acme": "^1.0.12",
57
+ "fastify-plugin": "^6.0.0",
58
+ "immer": "^11.1.18",
59
59
  "iterator-helpers-polyfill": "^3.0.1",
60
- "luxon": "^3.5.0",
61
- "mongodb": "^7.0.0",
62
- "pino": "^10.0.0",
63
- "pino-pretty": "^13.0.0",
60
+ "luxon": "^3.7.2",
61
+ "mongodb": "^7.5.0",
62
+ "pino": "^10.3.1",
63
+ "pino-pretty": "^13.1.3",
64
64
  "react-resize-detector": "^12.3.0",
65
- "react-router-dom": "^7.1.1",
66
- "uuidv7": "^1.0.2",
67
- "zod": "^4.3.4",
68
- "zod-to-ts": "^2.0.0",
69
- "zustand": "^5.0.3"
65
+ "react-router-dom": "^7.18.2",
66
+ "uuidv7": "^1.2.1",
67
+ "zod": "^4.4.3",
68
+ "zod-to-ts": "^2.1.0",
69
+ "zustand": "^5.0.15"
70
70
  },
71
71
  "peerDependencies": {
72
72
  "react": "^19.0.0",