rlz-engine 1.0.53 → 1.0.55
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 +225 -0
- package/dist/back/auth/admin-secret.d.ts +4 -0
- package/dist/back/auth/admin-secret.js +86 -0
- package/dist/back/auth/admin-secret.js.map +1 -0
- package/dist/back/auth/cookies.d.ts +12 -0
- package/dist/back/auth/cookies.js +20 -0
- package/dist/back/auth/cookies.js.map +1 -0
- package/dist/back/auth/csrf.d.ts +8 -0
- package/dist/back/auth/csrf.js +47 -0
- package/dist/back/auth/csrf.js.map +1 -0
- package/dist/back/auth/model.d.ts +7 -3
- package/dist/back/auth/module.d.ts +14 -0
- package/dist/back/auth/module.js +121 -0
- package/dist/back/auth/module.js.map +1 -0
- package/dist/back/auth/rate-limit.d.ts +11 -0
- package/dist/back/auth/rate-limit.js +59 -0
- package/dist/back/auth/rate-limit.js.map +1 -0
- package/dist/back/auth/session.d.ts +22 -0
- package/dist/back/auth/session.js +55 -0
- package/dist/back/auth/session.js.map +1 -0
- package/dist/back/auth/storage.d.ts +9 -9
- package/dist/back/auth/storage.js +39 -36
- package/dist/back/auth/storage.js.map +1 -1
- package/dist/back/auth/utils.d.ts +10 -8
- package/dist/back/auth/utils.js +43 -56
- package/dist/back/auth/utils.js.map +1 -1
- package/dist/back/certificate/adm-rpc.d.ts +5 -0
- package/dist/back/certificate/adm-rpc.js +52 -0
- package/dist/back/certificate/adm-rpc.js.map +1 -0
- package/dist/back/certificate/module.d.ts +13 -0
- package/dist/back/certificate/module.js +19 -0
- package/dist/back/certificate/module.js.map +1 -0
- package/dist/back/cli/cli-engine.d.ts +25 -0
- package/dist/back/cli/cli-engine.js +68 -0
- package/dist/back/cli/cli-engine.js.map +1 -0
- package/dist/back/http/module.d.ts +7 -0
- package/dist/back/http/module.js +34 -0
- package/dist/back/http/module.js.map +1 -0
- package/dist/back/http/server.d.ts +22 -0
- package/dist/back/http/server.js +126 -0
- package/dist/back/http/server.js.map +1 -0
- package/dist/back/logger/adm-rpc.d.ts +2 -0
- package/dist/back/logger/adm-rpc.js +50 -0
- package/dist/back/logger/adm-rpc.js.map +1 -0
- package/dist/back/logger/audit-logger.d.ts +97 -0
- package/dist/back/logger/audit-logger.js +155 -0
- package/dist/back/logger/audit-logger.js.map +1 -0
- package/dist/back/logger/cli.d.ts +2 -0
- package/dist/back/logger/cli.js +43 -0
- package/dist/back/logger/cli.js.map +1 -0
- package/dist/back/logger/format.d.ts +3 -0
- package/dist/back/logger/format.js +27 -0
- package/dist/back/logger/format.js.map +1 -0
- package/dist/back/logger/module.d.ts +14 -0
- package/dist/back/logger/module.js +24 -0
- package/dist/back/logger/module.js.map +1 -0
- package/dist/back/logger/sqlite-storage.d.ts +27 -0
- package/dist/back/logger/sqlite-storage.js +169 -0
- package/dist/back/logger/sqlite-storage.js.map +1 -0
- package/dist/back/logger/system-logger.d.ts +27 -0
- package/dist/back/logger/system-logger.js +82 -0
- package/dist/back/logger/system-logger.js.map +1 -0
- package/dist/back/module/composer.d.ts +34 -0
- package/dist/back/module/composer.js +57 -0
- package/dist/back/module/composer.js.map +1 -0
- package/dist/back/rpc/gen.d.ts +2 -1
- package/dist/back/rpc/gen.js +38 -17
- package/dist/back/rpc/gen.js.map +1 -1
- package/dist/back/rpc/module.d.ts +14 -0
- package/dist/back/rpc/module.js +43 -0
- package/dist/back/rpc/module.js.map +1 -0
- package/dist/back/rpc/rpc.d.ts +53 -6
- package/dist/back/rpc/rpc.js +72 -29
- package/dist/back/rpc/rpc.js.map +1 -1
- package/dist/back/storage/db.js +5 -3
- package/dist/back/storage/db.js.map +1 -1
- package/dist/back/storage/model.d.ts +2 -2
- package/dist/back/storage/model.js +2 -2
- package/dist/back/storage/model.js.map +1 -1
- package/dist/back/storage/sync.d.ts +5 -2
- package/dist/back/storage/sync.js +1 -3
- package/dist/back/storage/sync.js.map +1 -1
- package/dist/client/adm/admin.d.ts +17 -0
- package/dist/client/adm/admin.js +62 -0
- package/dist/client/adm/admin.js.map +1 -0
- package/dist/client/adm/audit-logs.d.ts +5 -0
- package/dist/client/adm/audit-logs.js +68 -0
- package/dist/client/adm/audit-logs.js.map +1 -0
- package/dist/client/adm/certificate.d.ts +5 -0
- package/dist/client/adm/certificate.js +48 -0
- package/dist/client/adm/certificate.js.map +1 -0
- package/dist/client/config.d.ts +2 -0
- package/dist/client/config.js +7 -0
- package/dist/client/config.js.map +1 -1
- package/dist/client/rpc.d.ts +4 -4
- package/dist/client/rpc.js +19 -7
- package/dist/client/rpc.js.map +1 -1
- package/dist/client/screens/404.js.map +1 -1
- package/dist/client/screens/SignupSigninScreen.d.ts +13 -1
- package/dist/client/screens/SignupSigninScreen.js +41 -37
- package/dist/client/screens/SignupSigninScreen.js.map +1 -1
- package/dist/client/state/auth.d.ts +13 -7
- package/dist/client/state/auth.js +24 -19
- package/dist/client/state/auth.js.map +1 -1
- package/dist/client/sync.d.ts +7 -2
- package/dist/client/sync.js +5 -3
- package/dist/client/sync.js.map +1 -1
- package/dist/client/widgets/ItemsSelect.js +15 -8
- package/dist/client/widgets/ItemsSelect.js.map +1 -1
- package/package.json +87 -77
- package/dist/back/auth/controllers.d.ts +0 -7
- package/dist/back/auth/controllers.js +0 -39
- package/dist/back/auth/controllers.js.map +0 -1
- package/dist/back/esbuild-plugin-pino.d.ts +0 -6
- package/dist/back/esbuild-plugin-pino.js +0 -87
- package/dist/back/esbuild-plugin-pino.js.map +0 -1
- package/dist/back/logger.d.ts +0 -7
- package/dist/back/logger.js +0 -43
- package/dist/back/logger.js.map +0 -1
- package/dist/back/server.d.ts +0 -17
- package/dist/back/server.js +0 -94
- package/dist/back/server.js.map +0 -1
- package/dist/client/api/api.d.ts +0 -22
- package/dist/client/api/api.js +0 -87
- package/dist/client/api/api.js.map +0 -1
- package/dist/client/api/auth.d.ts +0 -5
- package/dist/client/api/auth.js +0 -22
- package/dist/client/api/auth.js.map +0 -1
- package/dist/shared/api/auth.d.ts +0 -19
- package/dist/shared/api/auth.js +0 -17
- package/dist/shared/api/auth.js.map +0 -1
- package/dist/shared/api/sync.d.ts +0 -21
- package/dist/shared/api/sync.js +0 -22
- package/dist/shared/api/sync.js.map +0 -1
|
@@ -1,32 +1,37 @@
|
|
|
1
1
|
import { create } from 'zustand';
|
|
2
2
|
import { persist } from 'zustand/middleware';
|
|
3
|
-
import {
|
|
3
|
+
import { setCsrfToken } from '../config.js';
|
|
4
4
|
const AUTH_ID_KEY = 'AUTH_ID';
|
|
5
5
|
const AUTH_NAME_KEY = 'AUTH_NAME';
|
|
6
6
|
const AUTH_EMAIL_KEY = 'AUTH_EMAIL';
|
|
7
|
-
const AUTH_TEMP_PASSWORD_KEY = 'AUTH_TEMP_PASSWORD';
|
|
8
7
|
localStorage.removeItem(AUTH_ID_KEY);
|
|
9
8
|
localStorage.removeItem(AUTH_NAME_KEY);
|
|
10
9
|
localStorage.removeItem(AUTH_EMAIL_KEY);
|
|
11
|
-
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
13
|
-
const makeAuthParam = cacheLastResult(function makeAuthParam(id, tempPassword) {
|
|
14
|
-
if (id === null || tempPassword === null) {
|
|
15
|
-
return null;
|
|
16
|
-
}
|
|
17
|
-
return { userId: id, tempPassword };
|
|
18
|
-
});
|
|
19
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
20
|
-
export const useAuthState = create()(persist((set, get) => ({
|
|
10
|
+
export const useAuthState = create()(persist((set) => ({
|
|
21
11
|
id: null,
|
|
22
12
|
name: null,
|
|
23
13
|
email: null,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
14
|
+
csrfToken: null,
|
|
15
|
+
login: (id, name, email, csrfToken) => {
|
|
16
|
+
setCsrfToken(csrfToken);
|
|
17
|
+
set({ id, name, email, csrfToken });
|
|
28
18
|
},
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
19
|
+
logout: () => {
|
|
20
|
+
setCsrfToken(null);
|
|
21
|
+
set({ id: null, name: null, email: null, csrfToken: null });
|
|
22
|
+
}
|
|
23
|
+
}), {
|
|
24
|
+
name: 'AUTH',
|
|
25
|
+
version: 2,
|
|
26
|
+
partialize: ({ id, name, email }) => ({ id, name, email }),
|
|
27
|
+
migrate: (persistedState) => {
|
|
28
|
+
const oldState = persistedState;
|
|
29
|
+
return {
|
|
30
|
+
id: typeof oldState.id === 'string' ? oldState.id : null,
|
|
31
|
+
name: typeof oldState.name === 'string' ? oldState.name : null,
|
|
32
|
+
email: typeof oldState.email === 'string' ? oldState.email : null,
|
|
33
|
+
csrfToken: null
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
}));
|
|
32
37
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/client/state/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/client/state/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,MAAM,WAAW,GAAG,SAAS,CAAA;AAC7B,MAAM,aAAa,GAAG,WAAW,CAAA;AACjC,MAAM,cAAc,GAAG,YAAY,CAAA;AAEnC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAA;AACpC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;AACtC,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;AAWvC,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,EAAa,CAC3C,OAAO,CACH,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACN,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QAClC,YAAY,CAAC,SAAS,CAAC,CAAA;QACvB,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;IACvC,CAAC;IACD,MAAM,EAAE,GAAG,EAAE;QACT,YAAY,CAAC,IAAI,CAAC,CAAA;QAClB,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAC/D,CAAC;CACJ,CAAC,EACF;IACI,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC1D,OAAO,EAAE,CAAC,cAAc,EAAE,EAAE;QACxB,MAAM,QAAQ,GAAG,cAAoC,CAAA;QACrD,OAAO;YACH,EAAE,EAAE,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;YACxD,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;YAC9D,KAAK,EAAE,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YACjE,SAAS,EAAE,IAAI;SAClB,CAAA;IACL,CAAC;CACJ,CACJ,CACJ,CAAA"}
|
package/dist/client/sync.d.ts
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
import { DateTime } from 'luxon';
|
|
2
|
-
|
|
2
|
+
export interface SyncComparisonObject {
|
|
3
|
+
id: string;
|
|
4
|
+
lastModified: string;
|
|
5
|
+
}
|
|
3
6
|
export declare function syncItems<T extends {
|
|
4
7
|
id: string;
|
|
5
8
|
lastModified: DateTime<true>;
|
|
6
9
|
}>({ getRemoteLastModified, localItems, pushRemote, getRemote, pushLocal, lastSyncDate }: {
|
|
7
|
-
getRemoteLastModified: () => Promise<
|
|
10
|
+
getRemoteLastModified: () => Promise<{
|
|
11
|
+
items: readonly SyncComparisonObject[];
|
|
12
|
+
}>;
|
|
8
13
|
localItems: readonly T[];
|
|
9
14
|
pushRemote: (items: readonly T[]) => Promise<void>;
|
|
10
15
|
getRemote: (ids: readonly string[]) => Promise<T[]>;
|
package/dist/client/sync.js
CHANGED
|
@@ -2,7 +2,7 @@ import { DateTime } from 'luxon';
|
|
|
2
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, toValidDateTime(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) {
|
|
@@ -22,17 +22,19 @@ export async function syncItems({ getRemoteLastModified, localItems, pushRemote,
|
|
|
22
22
|
}
|
|
23
23
|
itemsToGet.push(i.id);
|
|
24
24
|
}
|
|
25
|
-
const knownItems = new Set(localItems.map(i => i.id));
|
|
25
|
+
const knownItems = new Set(localItems.map((i) => i.id));
|
|
26
26
|
for (const { id } of remoteItems) {
|
|
27
27
|
if (!knownItems.has(id)) {
|
|
28
28
|
itemsToGet.push(id);
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
|
+
// Push local edits before applying fetched remote versions so the two directions
|
|
32
|
+
// remain explicit and the caller can persist remote results after uploads finish.
|
|
31
33
|
if (itemsToPush.length > 0) {
|
|
32
34
|
await pushRemote(itemsToPush);
|
|
33
35
|
}
|
|
34
36
|
if (itemsToGet.length > 0) {
|
|
35
|
-
pushLocal(
|
|
37
|
+
pushLocal(await getRemote(itemsToGet));
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
//# sourceMappingURL=sync.js.map
|
package/dist/client/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/client/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/client/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAO7D,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,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,CACrG,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,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACvD,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,iFAAiF;IACjF,kFAAkF;IAClF,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,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC,CAAA;IAC1C,CAAC;AACL,CAAC"}
|
|
@@ -5,7 +5,8 @@ import { WheelGesturesPlugin } from 'embla-carousel-wheel-gestures';
|
|
|
5
5
|
import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|
6
6
|
import { useResizeDetector } from 'react-resize-detector';
|
|
7
7
|
const A = styled('a')({
|
|
8
|
-
fontSize: '0',
|
|
8
|
+
fontSize: '0',
|
|
9
|
+
cursor: 'pointer'
|
|
9
10
|
});
|
|
10
11
|
export function ItemsSelect(props) {
|
|
11
12
|
const { height, ref } = useResizeDetector();
|
|
@@ -29,14 +30,16 @@ export function ItemsSelect(props) {
|
|
|
29
30
|
};
|
|
30
31
|
}
|
|
31
32
|
}, [carouselApi, onSelect]);
|
|
32
|
-
const onSelectedChangeContainer = useMemo(() => {
|
|
33
|
+
const onSelectedChangeContainer = useMemo(() => {
|
|
34
|
+
return { v: props.onSelectedChange };
|
|
35
|
+
}, []);
|
|
33
36
|
onSelectedChangeContainer.v = props.onSelectedChange;
|
|
34
37
|
const items = useMemo(() => {
|
|
35
38
|
const items = filter === null
|
|
36
39
|
? props.items
|
|
37
40
|
: (() => {
|
|
38
41
|
const re = new RegExp(filter, 'i');
|
|
39
|
-
return props.items.filter(i => re.test(i.label));
|
|
42
|
+
return props.items.filter((i) => re.test(i.label));
|
|
40
43
|
})();
|
|
41
44
|
return items.map((i) => {
|
|
42
45
|
const fontStyle = typeof i === 'string' ? undefined : i.fontStyle;
|
|
@@ -44,7 +47,7 @@ export function ItemsSelect(props) {
|
|
|
44
47
|
const chip = React.createElement(Chip, { key: i.value, color: 'primary', size: 'small', label: i.label, sx: { fontStyle } });
|
|
45
48
|
if (props.selectZero || (props.selectMany && selected.size > 1)) {
|
|
46
49
|
return (React.createElement(A, { key: i.value, onClick: () => {
|
|
47
|
-
onSelectedChangeContainer.v(props.selected.filter(s => s !== i.value));
|
|
50
|
+
onSelectedChangeContainer.v(props.selected.filter((s) => s !== i.value));
|
|
48
51
|
} }, chip));
|
|
49
52
|
}
|
|
50
53
|
return chip;
|
|
@@ -65,9 +68,11 @@ export function ItemsSelect(props) {
|
|
|
65
68
|
React.createElement(InputLabel, null, 'Filter'),
|
|
66
69
|
React.createElement(FilledInput, { fullWidth: true, size: 'small', value: filter ?? '', onChange: (ev) => {
|
|
67
70
|
setFilter(ev.target.value === '' ? null : ev.target.value);
|
|
68
|
-
}, endAdornment:
|
|
69
|
-
React.createElement(IconButton, { disabled: filter === null, onClick: () => {
|
|
70
|
-
|
|
71
|
+
}, endAdornment: React.createElement(InputAdornment, { position: 'end' },
|
|
72
|
+
React.createElement(IconButton, { disabled: filter === null, onClick: () => {
|
|
73
|
+
setFilter(null);
|
|
74
|
+
}, edge: 'end' },
|
|
75
|
+
React.createElement(ClearIcon, null))) })),
|
|
71
76
|
React.createElement(Box, { sx: { overflow: 'hidden' }, ref: carouselRef },
|
|
72
77
|
React.createElement(Stack, { direction: 'row' },
|
|
73
78
|
React.createElement(Box, { sx: { height: pageHeight, overflow: 'hidden', flex: '0 0 100%' } },
|
|
@@ -79,7 +84,9 @@ export function ItemsSelect(props) {
|
|
|
79
84
|
})))),
|
|
80
85
|
React.createElement(Stack, { direction: 'row', sx: { justifyContent: 'center', gap: 1, mt: 1, height: 10 } }, pages > 1
|
|
81
86
|
? Array.from(Iterator.range(pages).map((p) => {
|
|
82
|
-
return (React.createElement(A, { key: p, onClick: () => {
|
|
87
|
+
return (React.createElement(A, { key: p, onClick: () => {
|
|
88
|
+
carouselApi?.scrollTo(p);
|
|
89
|
+
} },
|
|
83
90
|
React.createElement(Box, { sx: {
|
|
84
91
|
width: 10,
|
|
85
92
|
height: 10,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemsSelect.js","sourceRoot":"","sources":["../../../src/client/widgets/ItemsSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAgB,MAAM,eAAe,CAAA;AACxI,OAAO,gBAAgB,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,KAAK,EAAE,EAAqB,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAezD,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAClB,QAAQ,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"ItemsSelect.js","sourceRoot":"","sources":["../../../src/client/widgets/ItemsSelect.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,78 +1,88 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
2
|
+
"name": "rlz-engine",
|
|
3
|
+
"version": "1.0.55",
|
|
4
|
+
"description": "Deps and tools for my style of development",
|
|
5
|
+
"engines": {
|
|
6
|
+
"node": ">=22.13.0"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"test": "npm run test:types && vitest run",
|
|
10
|
+
"test:all": "MONGODB_TEST_URI=mongodb://127.0.0.1:27017 npm test",
|
|
11
|
+
"test:coverage": "npm run test:types && vitest run --coverage",
|
|
12
|
+
"test:types": "tsc -p tsconfig.test.json",
|
|
13
|
+
"build": "tsc --sourceMap",
|
|
14
|
+
"lint": "oxlint --type-aware",
|
|
15
|
+
"format": "oxfmt",
|
|
16
|
+
"format:check": "oxfmt --check",
|
|
17
|
+
"prepack": "rm -rf dist && tsc --sourceMap"
|
|
18
|
+
},
|
|
19
|
+
"author": "Dmitry Maslennikov <maslennikovdm@gmail.com>",
|
|
20
|
+
"license": "ISC",
|
|
21
|
+
"homepage": "https://github.com/rlz/rlz-engine",
|
|
22
|
+
"bugs": {
|
|
23
|
+
"url": "https://github.com/rlz/rlz-engine/issues"
|
|
24
|
+
},
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "git+https://github.com/rlz/rlz-engine.git"
|
|
28
|
+
},
|
|
29
|
+
"type": "module",
|
|
30
|
+
"exports": {
|
|
31
|
+
"./back/*": "./dist/back/*",
|
|
32
|
+
"./client/*": "./dist/client/*",
|
|
33
|
+
"./shared/*": "./dist/shared/*"
|
|
34
|
+
},
|
|
35
|
+
"files": [
|
|
36
|
+
"dist"
|
|
37
|
+
],
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@types/luxon": "^3.7.4",
|
|
40
|
+
"@types/node": "^26.2.0",
|
|
41
|
+
"@types/react": "^19.2.18",
|
|
42
|
+
"@types/react-dom": "^19.2.4",
|
|
43
|
+
"@typescript/native": "npm:typescript@^7.0.2",
|
|
44
|
+
"@vitest/coverage-v8": "^5.0.5",
|
|
45
|
+
"oxfmt": "^0.73.0",
|
|
46
|
+
"oxlint": "^1.88.0",
|
|
47
|
+
"oxlint-tsgolint": "^7.0.2004",
|
|
48
|
+
"tsx": "^4.23.12",
|
|
49
|
+
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
50
|
+
"vitest": "^5.0.3"
|
|
51
|
+
},
|
|
52
|
+
"dependencies": {
|
|
53
|
+
"@emotion/react": "^11.14.0",
|
|
54
|
+
"@emotion/styled": "^11.14.1",
|
|
55
|
+
"@fastify/compress": "^9.2.0",
|
|
56
|
+
"@fastify/cookie": "^11.1.3",
|
|
57
|
+
"@fastify/cors": "^11.3.0",
|
|
58
|
+
"@fastify/response-validation": "^3.0.4",
|
|
59
|
+
"@fastify/sensible": "^6.0.5",
|
|
60
|
+
"@fastify/static": "^10.1.3",
|
|
61
|
+
"@fontsource/roboto": "^5.3.0",
|
|
62
|
+
"@mui/icons-material": "^9.3.1",
|
|
63
|
+
"@mui/material": "^9.3.1",
|
|
64
|
+
"@types/react-router-dom": "^5.3.3",
|
|
65
|
+
"acme-client": "^5.4.0",
|
|
66
|
+
"ajv": "^8.20.0",
|
|
67
|
+
"ajv-formats": "^3.0.1",
|
|
68
|
+
"cmd-ts": "^0.15.0",
|
|
69
|
+
"embla-carousel-react": "^8.6.0",
|
|
70
|
+
"embla-carousel-wheel-gestures": "^8.1.0",
|
|
71
|
+
"fastify": "^5.12.1",
|
|
72
|
+
"fastify-acme": "^1.0.17",
|
|
73
|
+
"fastify-plugin": "^6.0.0",
|
|
74
|
+
"iterator-helpers-polyfill": "^3.0.1",
|
|
75
|
+
"luxon": "^3.7.2",
|
|
76
|
+
"mongodb": "^7.5.0",
|
|
77
|
+
"react-resize-detector": "^12.3.0",
|
|
78
|
+
"react-router-dom": "^7.18.2",
|
|
79
|
+
"uuidv7": "^1.2.1",
|
|
80
|
+
"zod": "^4.4.3",
|
|
81
|
+
"zod-to-ts": "^2.1.0",
|
|
82
|
+
"zustand": "^5.0.15"
|
|
83
|
+
},
|
|
84
|
+
"peerDependencies": {
|
|
85
|
+
"react": "^19.0.0",
|
|
86
|
+
"react-dom": "^19.0.0"
|
|
87
|
+
}
|
|
88
|
+
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { FastifyInstance, RawServerBase } from 'fastify';
|
|
2
|
-
import { AuthStorage } from './storage.js';
|
|
3
|
-
interface AuthEndpointsOpts {
|
|
4
|
-
storage: AuthStorage;
|
|
5
|
-
}
|
|
6
|
-
export declare const AUTH_API: <T extends RawServerBase>(app: FastifyInstance<T>, { storage }: AuthEndpointsOpts) => Promise<void>;
|
|
7
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { httpErrors } from '@fastify/sensible';
|
|
2
|
-
import fastifyPlugin from 'fastify-plugin';
|
|
3
|
-
import { API_AUTH_RESPONSE_SCHEMA_V0, API_SIGNIN_REQUEST_SCHEMA_V0, API_SIGNUP_REQUEST_SCHEMA_V0 } from '../../shared/api/auth.js';
|
|
4
|
-
import { logout, signin, signup } from './utils.js';
|
|
5
|
-
export const AUTH_API = fastifyPlugin(async function authApi(app, { storage }) {
|
|
6
|
-
app.post('/api/v0/signup', {
|
|
7
|
-
schema: {
|
|
8
|
-
body: API_SIGNUP_REQUEST_SCHEMA_V0.toJSONSchema({ target: 'draft-07' }),
|
|
9
|
-
response: { 200: API_AUTH_RESPONSE_SCHEMA_V0.toJSONSchema({ target: 'draft-07' }) }
|
|
10
|
-
}
|
|
11
|
-
}, async (req, _resp) => {
|
|
12
|
-
const body = API_SIGNUP_REQUEST_SCHEMA_V0.parse(req.body);
|
|
13
|
-
return await signup(storage, body.name, body.email, body.password);
|
|
14
|
-
});
|
|
15
|
-
app.post('/api/v0/signin', {
|
|
16
|
-
schema: {
|
|
17
|
-
body: API_SIGNIN_REQUEST_SCHEMA_V0.toJSONSchema({ target: 'draft-07' }),
|
|
18
|
-
response: { 200: API_AUTH_RESPONSE_SCHEMA_V0.toJSONSchema({ target: 'draft-07' }) }
|
|
19
|
-
}
|
|
20
|
-
}, async (req, _resp) => {
|
|
21
|
-
const body = API_SIGNIN_REQUEST_SCHEMA_V0.parse(req.body);
|
|
22
|
-
const r = await signin(storage, body.name, body.password);
|
|
23
|
-
if (r === null) {
|
|
24
|
-
return httpErrors.unauthorized();
|
|
25
|
-
}
|
|
26
|
-
return r;
|
|
27
|
-
});
|
|
28
|
-
app.post('/api/v0/logout', {}, async (req, resp) => {
|
|
29
|
-
await storage.auth(req.headers);
|
|
30
|
-
const authHeader = req.headers.authorization;
|
|
31
|
-
if (authHeader === undefined) {
|
|
32
|
-
throw httpErrors.forbidden();
|
|
33
|
-
}
|
|
34
|
-
const [userId, tempPassword] = authHeader.split(':');
|
|
35
|
-
await logout(storage, userId, tempPassword);
|
|
36
|
-
return resp.code(204).send();
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
//# sourceMappingURL=controllers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../../src/back/auth/controllers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAA;AAElI,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAMnD,MAAM,CAAC,MAAM,QAAQ,GAAG,aAAa,CACjC,KAAK,UAAU,OAAO,CAA0B,GAAuB,EAAE,EAAE,OAAO,EAAqB;IACnG,GAAG,CAAC,IAAI,CACJ,gBAAgB,EAChB;QACI,MAAM,EAAE;YACJ,IAAI,EAAE,4BAA4B,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;YACvE,QAAQ,EAAE,EAAE,GAAG,EAAE,2BAA2B,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE;SACtF;KACJ,EACD,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACjB,MAAM,IAAI,GAAG,4BAA4B,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACzD,OAAO,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtE,CAAC,CACJ,CAAA;IAED,GAAG,CAAC,IAAI,CACJ,gBAAgB,EAChB;QACI,MAAM,EAAE;YACJ,IAAI,EAAE,4BAA4B,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;YACvE,QAAQ,EAAE,EAAE,GAAG,EAAE,2BAA2B,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE;SACtF;KACJ,EACD,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACjB,MAAM,IAAI,GAAG,4BAA4B,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACzD,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QACzD,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACb,OAAO,UAAU,CAAC,YAAY,EAAE,CAAA;QACpC,CAAC;QACD,OAAO,CAAC,CAAA;IACZ,CAAC,CACJ,CAAA;IAED,GAAG,CAAC,IAAI,CACJ,gBAAgB,EAChB,EACC,EACD,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAChB,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QAE/B,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAA;QAC5C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,UAAU,CAAC,SAAS,EAAE,CAAA;QAChC,CAAC;QAED,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEpD,MAAM,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;QAE3C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;IAChC,CAAC,CACJ,CAAA;AACL,CAAC,CACJ,CAAA"}
|
|
@@ -1,87 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"esbuild-plugin-pino.js","sourceRoot":"","sources":["../../src/back/esbuild-plugin-pino.ts"],"names":[],"mappings":"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"}
|
package/dist/back/logger.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { WritableDraft } from 'immer';
|
|
2
|
-
import { Logger, LoggerOptions } from 'pino';
|
|
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;
|
package/dist/back/logger.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { produce } from 'immer';
|
|
2
|
-
import { pino } from 'pino';
|
|
3
|
-
import { PRODUCTION } from './config.js';
|
|
4
|
-
export function logger(name, config, optionsRecipe) {
|
|
5
|
-
const options = optionsRecipe === undefined
|
|
6
|
-
? loggerOptions(name, config)
|
|
7
|
-
: produce(loggerOptions(name, config), optionsRecipe);
|
|
8
|
-
return pino(options);
|
|
9
|
-
}
|
|
10
|
-
export function loggerOptions(name, { debug = false } = {}) {
|
|
11
|
-
if (PRODUCTION) {
|
|
12
|
-
return {
|
|
13
|
-
name,
|
|
14
|
-
transport: {
|
|
15
|
-
targets: [
|
|
16
|
-
{
|
|
17
|
-
level: debug ? 'debug' : 'info',
|
|
18
|
-
target: 'pino/file',
|
|
19
|
-
options: { destination: 1 }
|
|
20
|
-
}
|
|
21
|
-
// {
|
|
22
|
-
// level: 'info',
|
|
23
|
-
// target: 'pino-'
|
|
24
|
-
// }
|
|
25
|
-
]
|
|
26
|
-
},
|
|
27
|
-
level: debug ? 'debug' : 'info'
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
return {
|
|
31
|
-
name,
|
|
32
|
-
transport: {
|
|
33
|
-
targets: [
|
|
34
|
-
{
|
|
35
|
-
level: 'trace',
|
|
36
|
-
target: 'pino-pretty'
|
|
37
|
-
}
|
|
38
|
-
]
|
|
39
|
-
},
|
|
40
|
-
level: debug ? 'trace' : 'info'
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=logger.js.map
|
package/dist/back/logger.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|