@cyberskill/shared 3.12.0 → 3.14.0
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/config/commitlint/index.d.ts +5 -1
- package/dist/{src/config → config}/config.type.d.ts +1 -1
- package/dist/{src/config → config}/config.util.d.ts +1 -1
- package/dist/{src/config → config}/env/env.util.d.ts +5 -0
- package/dist/config/env/env.util.js +20 -16
- package/dist/config/env/env.util.js.map +1 -1
- package/dist/config/env/index.d.ts +3 -1
- package/dist/config/env/index.js +2 -2
- package/dist/config/eslint/index.d.ts +1198 -1
- package/dist/config/graphql-codegen/index.d.ts +2 -1
- package/dist/config/index.d.ts +2 -1
- package/dist/config/lint-staged/index.d.ts +5 -1
- package/dist/config/storybook/index.d.ts +2 -1
- package/dist/config/vitest/index.d.ts +3 -1
- package/dist/config/vitest/vitest.e2e.d.ts +20 -1
- package/dist/config/vitest/vitest.e2e.js +4 -4
- package/dist/config/vitest/vitest.e2e.js.map +1 -1
- package/dist/config/vitest/vitest.unit.d.ts +22 -1
- package/dist/config/vitest/vitest.unit.js +5 -5
- package/dist/config/vitest/vitest.unit.js.map +1 -1
- package/dist/config/vitest/vitest.unit.setup.js +10 -0
- package/dist/config/vitest/vitest.unit.setup.js.map +1 -0
- package/dist/constant/index.d.ts +5 -1
- package/dist/node/apollo-server/apollo-server.type.d.ts +20 -0
- package/dist/{src/node → node}/apollo-server/apollo-server.util.d.ts +1 -0
- package/dist/node/apollo-server/apollo-server.util.js +40 -16
- package/dist/node/apollo-server/apollo-server.util.js.map +1 -1
- package/dist/node/apollo-server/index.d.ts +2 -1
- package/dist/node/cli/index.d.ts +2 -1
- package/dist/node/cli/index.js +26 -28
- package/dist/node/cli/index.js.map +1 -1
- package/dist/{src/node → node}/command/command.util.d.ts +5 -0
- package/dist/node/command/command.util.js +49 -48
- package/dist/node/command/command.util.js.map +1 -1
- package/dist/node/command/index.d.ts +2 -1
- package/dist/node/command/index.js +2 -2
- package/dist/{src/node → node}/express/express.type.d.ts +11 -0
- package/dist/{src/node → node}/express/express.util.d.ts +34 -6
- package/dist/node/express/express.util.js +81 -56
- package/dist/node/express/express.util.js.map +1 -1
- package/dist/node/express/index.d.ts +2 -1
- package/dist/node/express/index.js +2 -2
- package/dist/node/fs/index.d.ts +2 -1
- package/dist/node/log/index.d.ts +2 -1
- package/dist/node/log/log.type.d.ts +46 -0
- package/dist/node/log/log.type.js.map +1 -1
- package/dist/{src/node → node}/log/log.util.d.ts +1 -1
- package/dist/node/log/log.util.js +25 -11
- package/dist/node/log/log.util.js.map +1 -1
- package/dist/node/mongo/index.d.ts +7 -1
- package/dist/node/mongo/index.js +7 -8
- package/dist/{src/node → node}/mongo/mongo.constant.d.ts +5 -0
- package/dist/node/mongo/mongo.constant.js +2 -2
- package/dist/node/mongo/mongo.constant.js.map +1 -1
- package/dist/{src/node → node}/mongo/mongo.controller.helpers.d.ts +1 -1
- package/dist/{src/node → node}/mongo/mongo.controller.mongoose.d.ts +4 -1
- package/dist/node/mongo/mongo.controller.mongoose.js +41 -55
- package/dist/node/mongo/mongo.controller.mongoose.js.map +1 -1
- package/dist/{src/node → node}/mongo/mongo.controller.native.d.ts +30 -3
- package/dist/node/mongo/mongo.controller.native.js +31 -14
- package/dist/node/mongo/mongo.controller.native.js.map +1 -1
- package/dist/{src/node → node}/mongo/mongo.controller.type.d.ts +1 -1
- package/dist/{src/node → node}/mongo/mongo.type.d.ts +3 -1
- package/dist/{src/node → node}/mongo/mongo.util.d.ts +1 -0
- package/dist/node/mongo/mongo.util.js +38 -17
- package/dist/node/mongo/mongo.util.js.map +1 -1
- package/dist/node/package/index.d.ts +2 -1
- package/dist/{src/node → node}/package/package.util.d.ts +1 -1
- package/dist/node/package/package.util.js +47 -47
- package/dist/node/path/index.d.ts +2 -1
- package/dist/node/path/index.js +2 -2
- package/dist/{src/node → node}/path/path.constant.d.ts +4 -0
- package/dist/node/path/path.constant.js +75 -72
- package/dist/node/path/path.constant.js.map +1 -1
- package/dist/node/storage/index.d.ts +3 -1
- package/dist/{src/node → node}/storage/storage.util.d.ts +50 -1
- package/dist/node/storage/storage.util.js +79 -54
- package/dist/node/storage/storage.util.js.map +1 -1
- package/dist/node/upload/index.d.ts +3 -1
- package/dist/{src/node → node}/upload/upload.type.d.ts +2 -0
- package/dist/node/upload/upload.type.js.map +1 -1
- package/dist/{src/node → node}/upload/upload.util.d.ts +2 -1
- package/dist/node/upload/upload.util.js +62 -52
- package/dist/node/upload/upload.util.js.map +1 -1
- package/dist/node/ws/index.d.ts +2 -1
- package/dist/{src/node → node}/ws/ws.util.d.ts +7 -0
- package/dist/node/ws/ws.util.js +20 -19
- package/dist/node/ws/ws.util.js.map +1 -1
- package/dist/react/apollo-client/apollo-client.component.js.map +1 -1
- package/dist/{src/react → react}/apollo-client/apollo-client.type.d.ts +3 -1
- package/dist/react/apollo-client/apollo-client.util.js +6 -6
- package/dist/react/apollo-client/apollo-client.util.js.map +1 -1
- package/dist/react/apollo-client/index.d.ts +9 -1
- package/dist/react/apollo-client/links/index.d.ts +1 -1
- package/dist/react/apollo-client-nextjs/apollo-client-nextjs.rsc.d.ts +16 -1
- package/dist/react/apollo-client-nextjs/index.d.ts +2 -1
- package/dist/react/apollo-error/apollo-error.component.js +1 -1
- package/dist/react/apollo-error/apollo-error.component.js.map +1 -1
- package/dist/react/apollo-error/apollo-error.util.js.map +1 -1
- package/dist/react/apollo-error/index.d.ts +6 -1
- package/dist/react/i18next/i18next.server.d.ts +17 -0
- package/dist/react/i18next/i18next.server.js +9 -0
- package/dist/react/i18next/i18next.server.js.map +1 -0
- package/dist/react/i18next/index.d.ts +2 -1
- package/dist/react/loading/index.d.ts +5 -1
- package/dist/{src/react → react}/loading/loading.provider.d.ts +1 -1
- package/dist/react/log/index.d.ts +2 -1
- package/dist/react/log/log.type.d.ts +1 -0
- package/dist/{src/react → react}/log/log.util.d.ts +1 -1
- package/dist/react/next-intl/index.d.ts +6 -1
- package/dist/{src/react → react}/next-intl/next-intl.hoc.d.ts +5 -9
- package/dist/react/next-intl/next-intl.hoc.js +14 -10
- package/dist/react/next-intl/next-intl.hoc.js.map +1 -1
- package/dist/react/next-intl/next-intl.server.d.ts +10 -0
- package/dist/react/next-intl/next-intl.server.js +7 -0
- package/dist/react/next-intl/next-intl.server.js.map +1 -0
- package/dist/{src/react → react}/next-intl/next-intl.type.d.ts +1 -1
- package/dist/react/storage/index.d.ts +2 -1
- package/dist/{src/react → react}/storage/storage.hook.d.ts +1 -1
- package/dist/{src/react → react}/storage/storage.util.d.ts +34 -1
- package/dist/react/storage/storage.util.js +30 -5
- package/dist/react/storage/storage.util.js.map +1 -1
- package/dist/react/toast/index.d.ts +1 -1
- package/dist/react/userback/index.d.ts +2 -1
- package/dist/react/userback/userback.component.js.map +1 -1
- package/dist/{src/typescript → typescript}/common.type.d.ts +4 -0
- package/dist/typescript/common.type.js +2 -2
- package/dist/typescript/common.type.js.map +1 -1
- package/dist/typescript/index.d.ts +5 -1
- package/dist/typescript/index.js +2 -2
- package/dist/util/common/index.d.ts +5 -1
- package/dist/util/index.d.ts +9 -1
- package/dist/util/log/index.d.ts +2 -1
- package/dist/{src/util → util}/log/log.util.d.ts +1 -1
- package/dist/util/object/index.d.ts +4 -1
- package/dist/util/object/object.util.js +29 -18
- package/dist/util/object/object.util.js.map +1 -1
- package/dist/util/serializer/index.d.ts +2 -1
- package/dist/{src/util → util}/serializer/serializer.util.d.ts +8 -0
- package/dist/util/serializer/serializer.util.js +51 -64
- package/dist/util/serializer/serializer.util.js.map +1 -1
- package/dist/util/storage/storage-envelope.d.ts +25 -0
- package/dist/util/storage/storage-envelope.js +18 -0
- package/dist/util/storage/storage-envelope.js.map +1 -0
- package/dist/util/string/index.d.ts +5 -1
- package/dist/util/validate/index.d.ts +4 -1
- package/package.json +33 -12
- package/dist/node/mongo/mongo.type.js +0 -8
- package/dist/node/mongo/mongo.type.js.map +0 -1
- package/dist/node_modules/.pnpm/vitest@4.1.2_@types_node@25.5.0_jsdom@29.0.1_@noble_hashes@1.8.0__vite@8.0.3_@types_nod_0827261ede788764a5d99ac6bdf44bde/node_modules/vitest/dist/config.js +0 -8
- package/dist/node_modules/.pnpm/vitest@4.1.2_@types_node@25.5.0_jsdom@29.0.1_@noble_hashes@1.8.0__vite@8.0.3_@types_nod_0827261ede788764a5d99ac6bdf44bde/node_modules/vitest/dist/config.js.map +0 -1
- package/dist/src/config/commitlint/index.d.ts +0 -5
- package/dist/src/config/env/index.d.ts +0 -3
- package/dist/src/config/eslint/index.d.ts +0 -1198
- package/dist/src/config/graphql-codegen/index.d.ts +0 -2
- package/dist/src/config/index.d.ts +0 -2
- package/dist/src/config/lint-staged/index.d.ts +0 -5
- package/dist/src/config/storybook/index.d.ts +0 -2
- package/dist/src/config/vitest/index.d.ts +0 -3
- package/dist/src/config/vitest/vitest.e2e.d.ts +0 -20
- package/dist/src/config/vitest/vitest.unit.d.ts +0 -22
- package/dist/src/constant/index.d.ts +0 -5
- package/dist/src/node/apollo-server/apollo-server.type.d.ts +0 -8
- package/dist/src/node/apollo-server/index.d.ts +0 -2
- package/dist/src/node/cli/index.d.ts +0 -2
- package/dist/src/node/command/index.d.ts +0 -2
- package/dist/src/node/express/index.d.ts +0 -2
- package/dist/src/node/fs/index.d.ts +0 -2
- package/dist/src/node/log/index.d.ts +0 -2
- package/dist/src/node/log/log.type.d.ts +0 -29
- package/dist/src/node/mongo/index.d.ts +0 -6
- package/dist/src/node/package/index.d.ts +0 -2
- package/dist/src/node/path/index.d.ts +0 -2
- package/dist/src/node/storage/index.d.ts +0 -3
- package/dist/src/node/upload/index.d.ts +0 -3
- package/dist/src/node/ws/index.d.ts +0 -2
- package/dist/src/react/apollo-client/index.d.ts +0 -9
- package/dist/src/react/apollo-client/links/index.d.ts +0 -1
- package/dist/src/react/apollo-client-nextjs/apollo-client-nextjs.rsc.d.ts +0 -16
- package/dist/src/react/apollo-client-nextjs/index.d.ts +0 -2
- package/dist/src/react/apollo-error/index.d.ts +0 -6
- package/dist/src/react/i18next/index.d.ts +0 -2
- package/dist/src/react/loading/index.d.ts +0 -5
- package/dist/src/react/log/index.d.ts +0 -2
- package/dist/src/react/log/log.type.d.ts +0 -1
- package/dist/src/react/next-intl/index.d.ts +0 -6
- package/dist/src/react/storage/index.d.ts +0 -2
- package/dist/src/react/toast/index.d.ts +0 -1
- package/dist/src/react/userback/index.d.ts +0 -2
- package/dist/src/typescript/index.d.ts +0 -5
- package/dist/src/util/common/index.d.ts +0 -5
- package/dist/src/util/index.d.ts +0 -9
- package/dist/src/util/log/index.d.ts +0 -2
- package/dist/src/util/object/index.d.ts +0 -4
- package/dist/src/util/serializer/index.d.ts +0 -2
- package/dist/src/util/string/index.d.ts +0 -5
- package/dist/src/util/validate/index.d.ts +0 -4
- /package/dist/{src/config → config}/env/env.constant.d.ts +0 -0
- /package/dist/{src/config → config}/env/env.type.d.ts +0 -0
- /package/dist/{src/config → config}/graphql-codegen/graphql-codegen.type.d.ts +0 -0
- /package/dist/{src/config → config}/graphql-codegen/graphql-codegen.util.d.ts +0 -0
- /package/dist/{src/config → config}/storybook/storybook.main.d.ts +0 -0
- /package/dist/{src/config → config}/storybook/storybook.preview.d.ts +0 -0
- /package/dist/{src/config → config}/vitest/vitest.unit.setup.d.ts +0 -0
- /package/dist/{src/constant → constant}/common.d.ts +0 -0
- /package/dist/{src/constant → constant}/response-status.d.ts +0 -0
- /package/dist/{src/node → node}/command/command.type.d.ts +0 -0
- /package/dist/{src/node → node}/fs/fs.type.d.ts +0 -0
- /package/dist/{src/node → node}/fs/fs.util.d.ts +0 -0
- /package/dist/{src/node → node}/mongo/mongo.controller.d.ts +0 -0
- /package/dist/{src/node → node}/mongo/mongo.dynamic-populate.d.ts +0 -0
- /package/dist/{src/node → node}/mongo/mongo.internal-types.d.ts +0 -0
- /package/dist/{src/node → node}/mongo/mongo.populate.d.ts +0 -0
- /package/dist/{src/node → node}/package/package.type.d.ts +0 -0
- /package/dist/{src/node → node}/path/path.util.d.ts +0 -0
- /package/dist/{src/node → node}/storage/storage.constant.d.ts +0 -0
- /package/dist/{src/node → node}/storage/storage.type.d.ts +0 -0
- /package/dist/{src/node → node}/upload/upload.constant.d.ts +0 -0
- /package/dist/{src/node → node}/ws/ws.type.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-client/apollo-client.component.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-client/apollo-client.constant.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-client/apollo-client.context.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-client/apollo-client.hook.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-client/apollo-client.util.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-client/links/upload.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-client-nextjs/apollo-client-nextjs.component.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-client-nextjs/apollo-client-nextjs.util.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-error/apollo-error.component.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-error/apollo-error.context.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-error/apollo-error.hook.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-error/apollo-error.provider.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-error/apollo-error.type.d.ts +0 -0
- /package/dist/{src/react → react}/apollo-error/apollo-error.util.d.ts +0 -0
- /package/dist/{src/react → react}/i18next/i18next.hook.d.ts +0 -0
- /package/dist/{src/react → react}/i18next/i18next.util.d.ts +0 -0
- /package/dist/{src/react → react}/loading/loading.component.d.ts +0 -0
- /package/dist/{src/react → react}/loading/loading.context.d.ts +0 -0
- /package/dist/{src/react → react}/loading/loading.hook.d.ts +0 -0
- /package/dist/{src/react → react}/loading/loading.type.d.ts +0 -0
- /package/dist/{src/react → react}/next-intl/next-intl.constant.d.ts +0 -0
- /package/dist/{src/react → react}/next-intl/next-intl.context.d.ts +0 -0
- /package/dist/{src/react → react}/next-intl/next-intl.hook.d.ts +0 -0
- /package/dist/{src/react → react}/next-intl/next-intl.provider.d.ts +0 -0
- /package/dist/{src/react → react}/userback/userback.component.d.ts +0 -0
- /package/dist/{src/react → react}/userback/userback.type.d.ts +0 -0
- /package/dist/{src/typescript → typescript}/react.type.d.ts +0 -0
- /package/dist/{src/util → util}/common/common.type.d.ts +0 -0
- /package/dist/{src/util → util}/common/common.util.d.ts +0 -0
- /package/dist/{src/util → util}/log/log.type.d.ts +0 -0
- /package/dist/{src/util → util}/object/object.util.d.ts +0 -0
- /package/dist/{src/util → util}/serializer/serializer.type.d.ts +0 -0
- /package/dist/{src/util → util}/string/string.type.d.ts +0 -0
- /package/dist/{src/util → util}/string/string.util.d.ts +0 -0
- /package/dist/{src/util → util}/validate/validate.util.d.ts +0 -0
|
@@ -4,117 +4,120 @@ import { E_PackageType as n } from "../package/package.type.js";
|
|
|
4
4
|
import { setupPackages as ee } from "../package/package.util.js";
|
|
5
5
|
import { formatCommand as r, rawCommand as i } from "../command/command.util.js";
|
|
6
6
|
import { join as a, resolveWorkingPath as o } from "./path.util.js";
|
|
7
|
-
import
|
|
7
|
+
import s from "fs-extra";
|
|
8
8
|
//#region src/node/path/path.constant.ts
|
|
9
|
-
var
|
|
10
|
-
function
|
|
11
|
-
|
|
9
|
+
var c = e().CWD, l = "@cyberskill/shared", u = "node_modules", d = "dist", f = "public", p = "package.json", m = "package-lock.json", h = "tsconfig.json", g = ".gitignore", _ = ".simple-git-hooks.json", v = "pnpm-lock.yaml", y = ".git/hooks/", b = ".git/COMMIT_EDITMSG", x = ".git/info/exclude", S = ".migrate-mongo.config.js", C = null;
|
|
10
|
+
function te() {
|
|
11
|
+
C = null;
|
|
12
|
+
}
|
|
13
|
+
function w() {
|
|
14
|
+
if (C !== null) return C;
|
|
12
15
|
try {
|
|
13
|
-
|
|
16
|
+
C = s.readJsonSync(o("package.json")).name === "@cyberskill/shared" ? a(c, d) : a(c, u, l, d);
|
|
14
17
|
} catch {
|
|
15
|
-
|
|
18
|
+
C = a(c, u, l, d);
|
|
16
19
|
}
|
|
17
|
-
return
|
|
20
|
+
return C;
|
|
18
21
|
}
|
|
19
|
-
var
|
|
22
|
+
var T = w(), E = "cyberskill", ne = "src/node/cli/index.ts", D = "eslint", O = "eslint", k = "vitest", A = "vitest", j = "@commitlint/cli", M = "@commitlint/config-conventional", N = "commitlint", P = "lint-staged", F = "lint-staged", I = "typescript", re = "tsc", L = "tsx", R = "git", z = "pnpm", B = "pnpm exec", V = "simple-git-hooks", H = "simple-git-hooks", U = "@eslint/config-inspector", W = "eslint-config-inspector", G = "node-modules-inspector", K = "node-modules-inspector", q = "migrate-mongo", J = "./node_modules/migrate-mongo/bin/migrate-mongo", Y = "storybook", X = "storybook", ie = "@vudovn/ag-kit", Z = ".agent", Q = {
|
|
20
23
|
get CYBERSKILL_DIRECTORY() {
|
|
21
|
-
return
|
|
24
|
+
return w();
|
|
22
25
|
},
|
|
23
|
-
WORKING_DIRECTORY:
|
|
24
|
-
PUBLIC_DIRECTORY: o(
|
|
25
|
-
TS_CONFIG: o(
|
|
26
|
-
GIT_IGNORE: o(
|
|
27
|
-
GIT_HOOK: o(
|
|
28
|
-
GIT_COMMIT_MSG: o(
|
|
29
|
-
GIT_EXCLUDE: o(
|
|
30
|
-
SIMPLE_GIT_HOOKS_JSON: o(
|
|
31
|
-
PACKAGE_JSON: o(
|
|
32
|
-
PACKAGE_LOCK_JSON: o(
|
|
33
|
-
PNPM_LOCK_YAML: o(
|
|
34
|
-
NODE_MODULES: o(
|
|
35
|
-
MIGRATE_MONGO_CONFIG: o(
|
|
26
|
+
WORKING_DIRECTORY: c,
|
|
27
|
+
PUBLIC_DIRECTORY: o(f),
|
|
28
|
+
TS_CONFIG: o(h),
|
|
29
|
+
GIT_IGNORE: o(g),
|
|
30
|
+
GIT_HOOK: o(y),
|
|
31
|
+
GIT_COMMIT_MSG: o(b),
|
|
32
|
+
GIT_EXCLUDE: o(x),
|
|
33
|
+
SIMPLE_GIT_HOOKS_JSON: o(_),
|
|
34
|
+
PACKAGE_JSON: o(p),
|
|
35
|
+
PACKAGE_LOCK_JSON: o(m),
|
|
36
|
+
PNPM_LOCK_YAML: o(v),
|
|
37
|
+
NODE_MODULES: o(u),
|
|
38
|
+
MIGRATE_MONGO_CONFIG: o(S),
|
|
36
39
|
get LINT_STAGED_CONFIG() {
|
|
37
|
-
return o(`${
|
|
40
|
+
return o(`${w()}/config/lint-staged/index.js`);
|
|
38
41
|
},
|
|
39
42
|
get COMMITLINT_CONFIG() {
|
|
40
|
-
return o(`${
|
|
43
|
+
return o(`${w()}/config/commitlint/index.js`);
|
|
41
44
|
},
|
|
42
45
|
get VITEST_UNIT_CONFIG() {
|
|
43
|
-
return o(`${
|
|
46
|
+
return o(`${w()}/config/vitest/vitest.unit.js`);
|
|
44
47
|
},
|
|
45
48
|
get VITEST_E2E_CONFIG() {
|
|
46
|
-
return o(`${
|
|
49
|
+
return o(`${w()}/config/vitest/vitest.e2e.js`);
|
|
47
50
|
},
|
|
48
51
|
get STORYBOOK_MAIN_CONFIG() {
|
|
49
|
-
return o(`${
|
|
52
|
+
return o(`${w()}/config/storybook/storybook.main.js`);
|
|
50
53
|
},
|
|
51
54
|
get STORYBOOK_PREVIEW_CONFIG() {
|
|
52
|
-
return o(`${
|
|
55
|
+
return o(`${w()}/config/storybook/storybook.preview.js`);
|
|
53
56
|
},
|
|
54
57
|
DOT_AGENT: o(Z)
|
|
55
58
|
};
|
|
56
|
-
function
|
|
59
|
+
function ae() {
|
|
57
60
|
return {
|
|
58
|
-
"pre-commit":
|
|
59
|
-
"commit-msg":
|
|
60
|
-
"pre-push": i(`git pull && ${
|
|
61
|
+
"pre-commit": F,
|
|
62
|
+
"commit-msg": N,
|
|
63
|
+
"pre-push": i(`git pull && ${z} run --if-present test`)
|
|
61
64
|
};
|
|
62
65
|
}
|
|
63
66
|
function $({ type: e, packages: n, command: a }) {
|
|
64
67
|
let o = n?.reduce((e, t) => (e.some((e) => e.name === t.name) || e.push(t), e), []);
|
|
65
68
|
return async () => {
|
|
66
69
|
switch (e) {
|
|
67
|
-
case t.CLI: return o?.length && await ee(o, { install: !0 }), r(i(`${
|
|
70
|
+
case t.CLI: return o?.length && await ee(o, { install: !0 }), r(i(`${B} ${a}`));
|
|
68
71
|
case t.STRING: return r(i(a));
|
|
69
72
|
default: throw Error("Unsupported command type");
|
|
70
73
|
}
|
|
71
74
|
};
|
|
72
75
|
}
|
|
73
|
-
var
|
|
76
|
+
var oe = /^[\w-]+$/, se = {
|
|
74
77
|
simpleGitHooks: $({
|
|
75
78
|
type: t.CLI,
|
|
76
79
|
packages: [{
|
|
77
|
-
name:
|
|
80
|
+
name: V,
|
|
78
81
|
type: n.DEV_DEPENDENCY
|
|
79
82
|
}],
|
|
80
|
-
command:
|
|
83
|
+
command: H
|
|
81
84
|
}),
|
|
82
85
|
eslintInspect: $({
|
|
83
86
|
type: t.CLI,
|
|
84
87
|
packages: [{
|
|
85
|
-
name:
|
|
88
|
+
name: U,
|
|
86
89
|
type: n.DEV_DEPENDENCY
|
|
87
90
|
}],
|
|
88
|
-
command:
|
|
91
|
+
command: W
|
|
89
92
|
}),
|
|
90
93
|
nodeModulesInspect: $({
|
|
91
94
|
type: t.CLI,
|
|
92
95
|
packages: [{
|
|
93
|
-
name:
|
|
96
|
+
name: G,
|
|
94
97
|
type: n.DEV_DEPENDENCY
|
|
95
98
|
}],
|
|
96
|
-
command:
|
|
99
|
+
command: K
|
|
97
100
|
}),
|
|
98
101
|
eslintCheck: $({
|
|
99
102
|
type: t.CLI,
|
|
100
103
|
packages: [{
|
|
101
|
-
name:
|
|
104
|
+
name: D,
|
|
102
105
|
type: n.DEV_DEPENDENCY
|
|
103
106
|
}],
|
|
104
|
-
command: `${
|
|
107
|
+
command: `${O} ${Q.WORKING_DIRECTORY} --no-cache`
|
|
105
108
|
}),
|
|
106
109
|
eslintFix: $({
|
|
107
110
|
type: t.CLI,
|
|
108
111
|
packages: [{
|
|
109
|
-
name:
|
|
112
|
+
name: D,
|
|
110
113
|
type: n.DEV_DEPENDENCY
|
|
111
114
|
}],
|
|
112
|
-
command: `${
|
|
115
|
+
command: `${O} ${Q.WORKING_DIRECTORY} --fix --no-cache`
|
|
113
116
|
}),
|
|
114
117
|
typescriptCheck: $({
|
|
115
118
|
type: t.CLI,
|
|
116
119
|
packages: [{
|
|
117
|
-
name:
|
|
120
|
+
name: I,
|
|
118
121
|
type: n.DEV_DEPENDENCY
|
|
119
122
|
}],
|
|
120
123
|
command: `tsc -p ${Q.TS_CONFIG} --noEmit --incremental`
|
|
@@ -122,31 +125,31 @@ var ae = /^[\w-]+$/, oe = {
|
|
|
122
125
|
testUnit: $({
|
|
123
126
|
type: t.CLI,
|
|
124
127
|
packages: [{
|
|
125
|
-
name:
|
|
128
|
+
name: k,
|
|
126
129
|
type: n.DEV_DEPENDENCY
|
|
127
130
|
}],
|
|
128
|
-
command: `${
|
|
131
|
+
command: `${A} --config ${Q.VITEST_UNIT_CONFIG}`
|
|
129
132
|
}),
|
|
130
133
|
testE2e: $({
|
|
131
134
|
type: t.CLI,
|
|
132
135
|
packages: [{
|
|
133
|
-
name:
|
|
136
|
+
name: k,
|
|
134
137
|
type: n.DEV_DEPENDENCY
|
|
135
138
|
}],
|
|
136
|
-
command: `${
|
|
139
|
+
command: `${A} --config ${Q.VITEST_E2E_CONFIG}`
|
|
137
140
|
}),
|
|
138
141
|
mongoMigrateCreate: (e) => {
|
|
139
|
-
if (!
|
|
142
|
+
if (!oe.test(e)) throw Error("Migration name must only contain alphanumeric characters, underscores, and hyphens.");
|
|
140
143
|
return $({
|
|
141
144
|
type: t.CLI,
|
|
142
145
|
packages: [{
|
|
143
146
|
name: "tsx",
|
|
144
147
|
type: n.DEPENDENCY
|
|
145
148
|
}, {
|
|
146
|
-
name:
|
|
149
|
+
name: q,
|
|
147
150
|
type: n.DEPENDENCY
|
|
148
151
|
}],
|
|
149
|
-
command: `tsx ${
|
|
152
|
+
command: `tsx ${J} create ${e} -f ${Q.MIGRATE_MONGO_CONFIG}`
|
|
150
153
|
})();
|
|
151
154
|
},
|
|
152
155
|
mongoMigrateUp: $({
|
|
@@ -155,10 +158,10 @@ var ae = /^[\w-]+$/, oe = {
|
|
|
155
158
|
name: "tsx",
|
|
156
159
|
type: n.DEPENDENCY
|
|
157
160
|
}, {
|
|
158
|
-
name:
|
|
161
|
+
name: q,
|
|
159
162
|
type: n.DEPENDENCY
|
|
160
163
|
}],
|
|
161
|
-
command: `tsx ${
|
|
164
|
+
command: `tsx ${J} up -f ${Q.MIGRATE_MONGO_CONFIG}`
|
|
162
165
|
}),
|
|
163
166
|
mongoMigrateDown: $({
|
|
164
167
|
type: t.CLI,
|
|
@@ -166,29 +169,29 @@ var ae = /^[\w-]+$/, oe = {
|
|
|
166
169
|
name: "tsx",
|
|
167
170
|
type: n.DEPENDENCY
|
|
168
171
|
}, {
|
|
169
|
-
name:
|
|
172
|
+
name: q,
|
|
170
173
|
type: n.DEPENDENCY
|
|
171
174
|
}],
|
|
172
|
-
command: `tsx ${
|
|
175
|
+
command: `tsx ${J} down -f ${Q.MIGRATE_MONGO_CONFIG}`
|
|
173
176
|
}),
|
|
174
177
|
commitLint: $({
|
|
175
178
|
type: t.CLI,
|
|
176
179
|
packages: [{
|
|
177
|
-
name:
|
|
180
|
+
name: j,
|
|
178
181
|
type: n.DEV_DEPENDENCY
|
|
179
182
|
}, {
|
|
180
|
-
name:
|
|
183
|
+
name: M,
|
|
181
184
|
type: n.DEV_DEPENDENCY
|
|
182
185
|
}],
|
|
183
|
-
command: `${
|
|
186
|
+
command: `${N} --edit ${Q.GIT_COMMIT_MSG} --config ${Q.COMMITLINT_CONFIG}`
|
|
184
187
|
}),
|
|
185
188
|
lintStaged: $({
|
|
186
189
|
type: t.CLI,
|
|
187
190
|
packages: [{
|
|
188
|
-
name:
|
|
191
|
+
name: P,
|
|
189
192
|
type: n.DEV_DEPENDENCY
|
|
190
193
|
}],
|
|
191
|
-
command: `${
|
|
194
|
+
command: `${F} --config ${Q.LINT_STAGED_CONFIG}`
|
|
192
195
|
}),
|
|
193
196
|
configureGitHook: $({
|
|
194
197
|
type: t.STRING,
|
|
@@ -196,46 +199,46 @@ var ae = /^[\w-]+$/, oe = {
|
|
|
196
199
|
}),
|
|
197
200
|
build: $({
|
|
198
201
|
type: t.STRING,
|
|
199
|
-
command: `${
|
|
202
|
+
command: `${z} run --if-present build`
|
|
200
203
|
}),
|
|
201
204
|
pnpmInstallStandard: $({
|
|
202
205
|
type: t.STRING,
|
|
203
|
-
command: `${
|
|
206
|
+
command: `${z} install --ignore-scripts`
|
|
204
207
|
}),
|
|
205
208
|
pnpmInstallLegacy: $({
|
|
206
209
|
type: t.STRING,
|
|
207
|
-
command: `${
|
|
210
|
+
command: `${z} install --ignore-scripts --legacy-peer-deps`
|
|
208
211
|
}),
|
|
209
212
|
pnpmInstallForce: $({
|
|
210
213
|
type: t.STRING,
|
|
211
|
-
command: `${
|
|
214
|
+
command: `${z} install --ignore-scripts --force`
|
|
212
215
|
}),
|
|
213
216
|
pnpmPruneStore: $({
|
|
214
217
|
type: t.STRING,
|
|
215
|
-
command: `${
|
|
218
|
+
command: `${z} store prune`
|
|
216
219
|
}),
|
|
217
220
|
pnpmCleanCache: $({
|
|
218
221
|
type: t.STRING,
|
|
219
|
-
command: `${
|
|
222
|
+
command: `${z} cache delete`
|
|
220
223
|
}),
|
|
221
224
|
storybookDev: $({
|
|
222
225
|
type: t.CLI,
|
|
223
226
|
packages: [{
|
|
224
|
-
name:
|
|
227
|
+
name: Y,
|
|
225
228
|
type: n.DEV_DEPENDENCY
|
|
226
229
|
}],
|
|
227
|
-
command: `${
|
|
230
|
+
command: `${X} dev`
|
|
228
231
|
}),
|
|
229
232
|
storybookBuild: $({
|
|
230
233
|
type: t.CLI,
|
|
231
234
|
packages: [{
|
|
232
|
-
name:
|
|
235
|
+
name: Y,
|
|
233
236
|
type: n.DEV_DEPENDENCY
|
|
234
237
|
}],
|
|
235
|
-
command: `${
|
|
238
|
+
command: `${X} build`
|
|
236
239
|
})
|
|
237
240
|
};
|
|
238
241
|
//#endregion
|
|
239
|
-
export {
|
|
242
|
+
export { ie as AG_KIT_PACKAGE_NAME, d as BUILD_DIRECTORY, N as COMMIT_LINT_CLI, M as COMMIT_LINT_CONVENTIONAL_CONFIG_PACKAGE_NAME, j as COMMIT_LINT_PACKAGE_NAME, E as CYBERSKILL_CLI, ne as CYBERSKILL_CLI_PATH, T as CYBERSKILL_DIRECTORY, l as CYBERSKILL_PACKAGE_NAME, Z as DOT_AGENT, O as ESLINT_CLI, W as ESLINT_INSPECT_CLI, U as ESLINT_INSPECT_PACKAGE_NAME, D as ESLINT_PACKAGE_NAME, R as GIT_CLI, b as GIT_COMMIT_EDITMSG, x as GIT_EXCLUDE, y as GIT_HOOK, g as GIT_IGNORE, F as LINT_STAGED_CLI, P as LINT_STAGED_PACKAGE_NAME, J as MIGRATE_MONGO_CLI, S as MIGRATE_MONGO_CONFIG, q as MIGRATE_MONGO_PACKAGE_NAME, u as NODE_MODULES, K as NODE_MODULES_INSPECT_CLI, G as NODE_MODULES_INSPECT_PACKAGE_NAME, p as PACKAGE_JSON, m as PACKAGE_LOCK_JSON, Q as PATH, z as PNPM_CLI, B as PNPM_EXEC_CLI, v as PNPM_LOCK_YAML, f as PUBLIC_DIRECTORY, V as SIMPLE_GIT_HOOKS_PACKAGE_NAME, H as SIMPLE_GIT_HOOK_CLI, _ as SIMPLE_GIT_HOOK_JSON, X as STORYBOOK_CLI, Y as STORYBOOK_PACKAGE_NAME, h as TSCONFIG_JSON, re as TSC_CLI, I as TSC_PACKAGE_NAME, L as TSX_CLI, A as VITEST_CLI, k as VITEST_PACKAGE_NAME, c as WORKING_DIRECTORY, se as command, ae as createGitHooksConfig, w as getCyberskillDirectory, te as resetCyberskillDirCacheForTesting };
|
|
240
243
|
|
|
241
244
|
//# sourceMappingURL=path.constant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"path.constant.js","names":[],"sources":["../../../src/node/path/path.constant.ts"],"sourcesContent":["import fsExtra from 'fs-extra';\n\nimport { getEnv } from '#config/env/index.js';\n\nimport type { I_PackageInput, I_PackageJson } from '../package/index.js';\n\nimport { E_CommandType, formatCommand, rawCommand } from '../command/index.js';\nimport { E_PackageType, setupPackages } from '../package/index.js';\nimport { join, resolveWorkingPath } from './path.util.js';\n\nexport const WORKING_DIRECTORY = getEnv().CWD;\nexport const CYBERSKILL_PACKAGE_NAME = '@cyberskill/shared';\nexport const NODE_MODULES = 'node_modules';\nexport const BUILD_DIRECTORY = 'dist';\nexport const PUBLIC_DIRECTORY = 'public';\nexport const PACKAGE_JSON = 'package.json';\nexport const PACKAGE_LOCK_JSON = 'package-lock.json';\nexport const TSCONFIG_JSON = 'tsconfig.json';\nexport const GIT_IGNORE = '.gitignore';\nexport const SIMPLE_GIT_HOOK_JSON = '.simple-git-hooks.json';\nexport const PNPM_LOCK_YAML = 'pnpm-lock.yaml';\nexport const GIT_HOOK = '.git/hooks/';\nexport const GIT_COMMIT_EDITMSG = '.git/COMMIT_EDITMSG';\nexport const GIT_EXCLUDE = '.git/info/exclude';\nexport const MIGRATE_MONGO_CONFIG = '.migrate-mongo.config.js';\nlet _cyberskillDir: string | null = null;\n\n/**\n * Lazily computes the CyberSkill directory path.\n * Reads package.json on first access to determine whether this is the shared package itself\n * or a consumer project, avoiding filesystem reads at module load time.\n */\nexport function getCyberskillDirectory(): string {\n if (_cyberskillDir !== null) {\n return _cyberskillDir;\n }\n\n try {\n const packageJson = fsExtra.readJsonSync(resolveWorkingPath(PACKAGE_JSON)) as I_PackageJson;\n\n _cyberskillDir = packageJson.name === CYBERSKILL_PACKAGE_NAME\n ? join(WORKING_DIRECTORY, BUILD_DIRECTORY)\n : join(WORKING_DIRECTORY, NODE_MODULES, CYBERSKILL_PACKAGE_NAME, BUILD_DIRECTORY);\n }\n catch {\n _cyberskillDir = join(WORKING_DIRECTORY, NODE_MODULES, CYBERSKILL_PACKAGE_NAME, BUILD_DIRECTORY);\n }\n\n return _cyberskillDir;\n}\n\n/** @deprecated Use `getCyberskillDirectory()` instead. Kept for backward compatibility. */\nexport const CYBERSKILL_DIRECTORY = getCyberskillDirectory();\nexport const CYBERSKILL_CLI = 'cyberskill';\nexport const CYBERSKILL_CLI_PATH = 'src/node/cli/index.ts';\nexport const ESLINT_PACKAGE_NAME = 'eslint';\nexport const ESLINT_CLI = 'eslint';\nexport const VITEST_PACKAGE_NAME = 'vitest';\nexport const VITEST_CLI = 'vitest';\nexport const COMMIT_LINT_PACKAGE_NAME = '@commitlint/cli';\nexport const COMMIT_LINT_CONVENTIONAL_CONFIG_PACKAGE_NAME = '@commitlint/config-conventional';\nexport const COMMIT_LINT_CLI = 'commitlint';\nexport const LINT_STAGED_PACKAGE_NAME = 'lint-staged';\nexport const LINT_STAGED_CLI = 'lint-staged';\nexport const TSC_PACKAGE_NAME = 'typescript';\nexport const TSC_CLI = 'tsc';\nexport const TSX_CLI = 'tsx';\nexport const GIT_CLI = 'git';\nexport const PNPM_CLI = 'pnpm';\nexport const PNPM_EXEC_CLI = 'pnpm exec';\nexport const SIMPLE_GIT_HOOKS_PACKAGE_NAME = 'simple-git-hooks';\nexport const SIMPLE_GIT_HOOK_CLI = 'simple-git-hooks';\nexport const ESLINT_INSPECT_PACKAGE_NAME = '@eslint/config-inspector';\nexport const ESLINT_INSPECT_CLI = 'eslint-config-inspector';\nexport const NODE_MODULES_INSPECT_PACKAGE_NAME = 'node-modules-inspector';\nexport const NODE_MODULES_INSPECT_CLI = 'node-modules-inspector';\nexport const MIGRATE_MONGO_PACKAGE_NAME = 'migrate-mongo';\nexport const MIGRATE_MONGO_CLI = './node_modules/migrate-mongo/bin/migrate-mongo';\nexport const STORYBOOK_PACKAGE_NAME = 'storybook';\nexport const STORYBOOK_CLI = 'storybook';\nexport const AG_KIT_PACKAGE_NAME = '@vudovn/ag-kit';\nexport const DOT_AGENT = '.agent';\n\nexport const PATH = {\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get CYBERSKILL_DIRECTORY() { return getCyberskillDirectory(); },\n WORKING_DIRECTORY,\n PUBLIC_DIRECTORY: resolveWorkingPath(PUBLIC_DIRECTORY),\n TS_CONFIG: resolveWorkingPath(TSCONFIG_JSON),\n GIT_IGNORE: resolveWorkingPath(GIT_IGNORE),\n GIT_HOOK: resolveWorkingPath(GIT_HOOK),\n GIT_COMMIT_MSG: resolveWorkingPath(GIT_COMMIT_EDITMSG),\n GIT_EXCLUDE: resolveWorkingPath(GIT_EXCLUDE),\n SIMPLE_GIT_HOOKS_JSON: resolveWorkingPath(SIMPLE_GIT_HOOK_JSON),\n PACKAGE_JSON: resolveWorkingPath(PACKAGE_JSON),\n PACKAGE_LOCK_JSON: resolveWorkingPath(PACKAGE_LOCK_JSON),\n PNPM_LOCK_YAML: resolveWorkingPath(PNPM_LOCK_YAML),\n NODE_MODULES: resolveWorkingPath(NODE_MODULES),\n MIGRATE_MONGO_CONFIG: resolveWorkingPath(MIGRATE_MONGO_CONFIG),\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get LINT_STAGED_CONFIG() { return resolveWorkingPath(`${getCyberskillDirectory()}/config/lint-staged/index.js`); },\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get COMMITLINT_CONFIG() { return resolveWorkingPath(`${getCyberskillDirectory()}/config/commitlint/index.js`); },\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get VITEST_UNIT_CONFIG() { return resolveWorkingPath(`${getCyberskillDirectory()}/config/vitest/vitest.unit.js`); },\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get VITEST_E2E_CONFIG() { return resolveWorkingPath(`${getCyberskillDirectory()}/config/vitest/vitest.e2e.js`); },\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get STORYBOOK_MAIN_CONFIG() { return resolveWorkingPath(`${getCyberskillDirectory()}/config/storybook/storybook.main.js`); },\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get STORYBOOK_PREVIEW_CONFIG() { return resolveWorkingPath(`${getCyberskillDirectory()}/config/storybook/storybook.preview.js`); },\n DOT_AGENT: resolveWorkingPath(DOT_AGENT),\n};\n\n/**\n * Creates Git hooks configuration based on whether this is the current project.\n * This function generates a configuration object for Git hooks that includes\n * pre-commit and commit-msg hooks, with an optional pre-push hook for the current project.\n *\n * @returns A Git hooks configuration object with appropriate commands for each hook.\n */\nexport function createGitHooksConfig() {\n return {\n 'pre-commit': LINT_STAGED_CLI,\n 'commit-msg': COMMIT_LINT_CLI,\n 'pre-push': rawCommand(`${GIT_CLI} pull && ${PNPM_CLI} run --if-present test`),\n };\n}\n\n/**\n * Builds a command function based on the specified type and configuration.\n * This function creates a command executor that handles different command types\n * including CLI commands and string commands. It manages package dependencies\n * and formats commands appropriately for execution.\n *\n * The function supports:\n * - CLI commands that require package installation\n * - String commands that are executed directly\n * - Automatic package dependency management\n * - Command formatting and validation\n *\n * @param config - Configuration object containing type, packages, and command properties.\n * @param config.type - The type of command to build (CLI or STRING).\n * @param config.packages - Optional array of packages required for CLI commands.\n * @param config.command - The command string to execute.\n * @returns A function that returns a promise resolving to the formatted command string.\n * @throws {Error} When an unsupported command type is provided.\n */\nfunction buildCommand({ type, packages, command }: { type: E_CommandType; packages?: I_PackageInput[]; command: string }): () => Promise<string> {\n const uniquePackages = packages?.reduce((acc: I_PackageInput[], pkg) => {\n if (!acc.some(existingPkg => existingPkg.name === pkg.name)) {\n acc.push(pkg);\n }\n return acc;\n }, []);\n\n return async () => {\n switch (type) {\n case E_CommandType.CLI: {\n if (uniquePackages?.length) {\n await setupPackages(uniquePackages, {\n install: true,\n });\n }\n\n return formatCommand(rawCommand(`${PNPM_EXEC_CLI} ${command}`)) as string;\n }\n case E_CommandType.STRING: {\n return formatCommand(rawCommand(command)) as string;\n }\n default: {\n throw new Error('Unsupported command type');\n }\n }\n };\n}\n\nconst RE_MIGRATE_NAME = /^[\\w-]+$/;\n\nexport const command = {\n simpleGitHooks: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: SIMPLE_GIT_HOOKS_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n\n ],\n command: SIMPLE_GIT_HOOK_CLI,\n }),\n eslintInspect: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name:\n ESLINT_INSPECT_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n\n ],\n command: ESLINT_INSPECT_CLI,\n }),\n nodeModulesInspect: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: NODE_MODULES_INSPECT_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n\n ],\n command: NODE_MODULES_INSPECT_CLI,\n }),\n eslintCheck: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: ESLINT_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n\n ],\n command: `${ESLINT_CLI} ${PATH.WORKING_DIRECTORY} --no-cache`,\n }),\n eslintFix: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: ESLINT_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n\n ],\n command: `${ESLINT_CLI} ${PATH.WORKING_DIRECTORY} --fix --no-cache`,\n }),\n typescriptCheck: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: TSC_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n\n ],\n command: `${TSC_CLI} -p ${PATH.TS_CONFIG} --noEmit --incremental`,\n }),\n testUnit: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: VITEST_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n ],\n command: `${VITEST_CLI} --config ${PATH.VITEST_UNIT_CONFIG}`,\n }),\n testE2e: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: VITEST_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n ],\n command: `${VITEST_CLI} --config ${PATH.VITEST_E2E_CONFIG}`,\n }),\n mongoMigrateCreate: (migrateName: string) => {\n if (!RE_MIGRATE_NAME.test(migrateName)) {\n throw new Error('Migration name must only contain alphanumeric characters, underscores, and hyphens.');\n }\n\n return buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: TSX_CLI,\n type: E_PackageType.DEPENDENCY,\n },\n {\n name: MIGRATE_MONGO_PACKAGE_NAME,\n type: E_PackageType.DEPENDENCY,\n },\n ],\n command: `${TSX_CLI} ${MIGRATE_MONGO_CLI} create ${migrateName} -f ${PATH.MIGRATE_MONGO_CONFIG}`,\n })();\n },\n mongoMigrateUp: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: TSX_CLI,\n type: E_PackageType.DEPENDENCY,\n },\n {\n name: MIGRATE_MONGO_PACKAGE_NAME,\n type: E_PackageType.DEPENDENCY,\n },\n ],\n command: `${TSX_CLI} ${MIGRATE_MONGO_CLI} up -f ${PATH.MIGRATE_MONGO_CONFIG}`,\n }),\n mongoMigrateDown: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: TSX_CLI,\n type: E_PackageType.DEPENDENCY,\n },\n {\n name: MIGRATE_MONGO_PACKAGE_NAME,\n type: E_PackageType.DEPENDENCY,\n },\n ],\n command: `${TSX_CLI} ${MIGRATE_MONGO_CLI} down -f ${PATH.MIGRATE_MONGO_CONFIG}`,\n }),\n commitLint: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: COMMIT_LINT_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n {\n name: COMMIT_LINT_CONVENTIONAL_CONFIG_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n ],\n command: `${COMMIT_LINT_CLI} --edit ${PATH.GIT_COMMIT_MSG} --config ${PATH.COMMITLINT_CONFIG}`,\n }),\n lintStaged: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: LINT_STAGED_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n ],\n command: `${LINT_STAGED_CLI} --config ${PATH.LINT_STAGED_CONFIG}`,\n }),\n configureGitHook: buildCommand({\n type: E_CommandType.STRING,\n command: `${GIT_CLI} config core.hooksPath ${PATH.GIT_HOOK}`,\n }),\n build: buildCommand({\n type: E_CommandType.STRING,\n command: `${PNPM_CLI} run --if-present build`,\n }),\n pnpmInstallStandard: buildCommand({\n type: E_CommandType.STRING,\n command: `${PNPM_CLI} install --ignore-scripts`,\n }),\n pnpmInstallLegacy: buildCommand({\n type: E_CommandType.STRING,\n command: `${PNPM_CLI} install --ignore-scripts --legacy-peer-deps`,\n }),\n pnpmInstallForce: buildCommand({\n type: E_CommandType.STRING,\n command: `${PNPM_CLI} install --ignore-scripts --force`,\n }),\n pnpmPruneStore: buildCommand({\n type: E_CommandType.STRING,\n command: `${PNPM_CLI} store prune`,\n }),\n pnpmCleanCache: buildCommand({\n type: E_CommandType.STRING,\n command: `${PNPM_CLI} cache delete`,\n }),\n storybookDev: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: STORYBOOK_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n ],\n command: `${STORYBOOK_CLI} dev`,\n }),\n storybookBuild: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: STORYBOOK_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n ],\n command: `${STORYBOOK_CLI} build`,\n }),\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"path.constant.js","names":[],"sources":["../../../src/node/path/path.constant.ts"],"sourcesContent":["import fsExtra from 'fs-extra';\n\nimport { getEnv } from '#config/env/index.js';\n\nimport type { I_PackageInput, I_PackageJson } from '../package/index.js';\n\nimport { E_CommandType, formatCommand, rawCommand } from '../command/index.js';\nimport { E_PackageType, setupPackages } from '../package/index.js';\nimport { join, resolveWorkingPath } from './path.util.js';\n\nexport const WORKING_DIRECTORY = getEnv().CWD;\nexport const CYBERSKILL_PACKAGE_NAME = '@cyberskill/shared';\nexport const NODE_MODULES = 'node_modules';\nexport const BUILD_DIRECTORY = 'dist';\nexport const PUBLIC_DIRECTORY = 'public';\nexport const PACKAGE_JSON = 'package.json';\nexport const PACKAGE_LOCK_JSON = 'package-lock.json';\nexport const TSCONFIG_JSON = 'tsconfig.json';\nexport const GIT_IGNORE = '.gitignore';\nexport const SIMPLE_GIT_HOOK_JSON = '.simple-git-hooks.json';\nexport const PNPM_LOCK_YAML = 'pnpm-lock.yaml';\nexport const GIT_HOOK = '.git/hooks/';\nexport const GIT_COMMIT_EDITMSG = '.git/COMMIT_EDITMSG';\nexport const GIT_EXCLUDE = '.git/info/exclude';\nexport const MIGRATE_MONGO_CONFIG = '.migrate-mongo.config.js';\nlet _cyberskillDir: string | null = null;\n\n/**\n * Resets the cached directory path. For testing only.\n */\nexport function resetCyberskillDirCacheForTesting(): void {\n _cyberskillDir = null;\n}\n\n/**\n * Lazily computes the CyberSkill directory path.\n * Reads package.json on first access to determine whether this is the shared package itself\n * or a consumer project, avoiding filesystem reads at module load time.\n */\nexport function getCyberskillDirectory(): string {\n if (_cyberskillDir !== null) {\n return _cyberskillDir;\n }\n\n try {\n const packageJson = fsExtra.readJsonSync(resolveWorkingPath(PACKAGE_JSON)) as I_PackageJson;\n\n _cyberskillDir = packageJson.name === CYBERSKILL_PACKAGE_NAME\n ? join(WORKING_DIRECTORY, BUILD_DIRECTORY)\n : join(WORKING_DIRECTORY, NODE_MODULES, CYBERSKILL_PACKAGE_NAME, BUILD_DIRECTORY);\n }\n catch {\n /* Intentionally empty — fallback to node_modules path when package.json is unreadable */\n _cyberskillDir = join(WORKING_DIRECTORY, NODE_MODULES, CYBERSKILL_PACKAGE_NAME, BUILD_DIRECTORY);\n }\n\n return _cyberskillDir;\n}\n\n/** @deprecated Use `getCyberskillDirectory()` instead. Kept for backward compatibility. */\nexport const CYBERSKILL_DIRECTORY = getCyberskillDirectory();\nexport const CYBERSKILL_CLI = 'cyberskill';\nexport const CYBERSKILL_CLI_PATH = 'src/node/cli/index.ts';\nexport const ESLINT_PACKAGE_NAME = 'eslint';\nexport const ESLINT_CLI = 'eslint';\nexport const VITEST_PACKAGE_NAME = 'vitest';\nexport const VITEST_CLI = 'vitest';\nexport const COMMIT_LINT_PACKAGE_NAME = '@commitlint/cli';\nexport const COMMIT_LINT_CONVENTIONAL_CONFIG_PACKAGE_NAME = '@commitlint/config-conventional';\nexport const COMMIT_LINT_CLI = 'commitlint';\nexport const LINT_STAGED_PACKAGE_NAME = 'lint-staged';\nexport const LINT_STAGED_CLI = 'lint-staged';\nexport const TSC_PACKAGE_NAME = 'typescript';\nexport const TSC_CLI = 'tsc';\nexport const TSX_CLI = 'tsx';\nexport const GIT_CLI = 'git';\nexport const PNPM_CLI = 'pnpm';\nexport const PNPM_EXEC_CLI = 'pnpm exec';\nexport const SIMPLE_GIT_HOOKS_PACKAGE_NAME = 'simple-git-hooks';\nexport const SIMPLE_GIT_HOOK_CLI = 'simple-git-hooks';\nexport const ESLINT_INSPECT_PACKAGE_NAME = '@eslint/config-inspector';\nexport const ESLINT_INSPECT_CLI = 'eslint-config-inspector';\nexport const NODE_MODULES_INSPECT_PACKAGE_NAME = 'node-modules-inspector';\nexport const NODE_MODULES_INSPECT_CLI = 'node-modules-inspector';\nexport const MIGRATE_MONGO_PACKAGE_NAME = 'migrate-mongo';\nexport const MIGRATE_MONGO_CLI = './node_modules/migrate-mongo/bin/migrate-mongo';\nexport const STORYBOOK_PACKAGE_NAME = 'storybook';\nexport const STORYBOOK_CLI = 'storybook';\nexport const AG_KIT_PACKAGE_NAME = '@vudovn/ag-kit';\nexport const DOT_AGENT = '.agent';\n\nexport const PATH = {\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get CYBERSKILL_DIRECTORY() { return getCyberskillDirectory(); },\n WORKING_DIRECTORY,\n PUBLIC_DIRECTORY: resolveWorkingPath(PUBLIC_DIRECTORY),\n TS_CONFIG: resolveWorkingPath(TSCONFIG_JSON),\n GIT_IGNORE: resolveWorkingPath(GIT_IGNORE),\n GIT_HOOK: resolveWorkingPath(GIT_HOOK),\n GIT_COMMIT_MSG: resolveWorkingPath(GIT_COMMIT_EDITMSG),\n GIT_EXCLUDE: resolveWorkingPath(GIT_EXCLUDE),\n SIMPLE_GIT_HOOKS_JSON: resolveWorkingPath(SIMPLE_GIT_HOOK_JSON),\n PACKAGE_JSON: resolveWorkingPath(PACKAGE_JSON),\n PACKAGE_LOCK_JSON: resolveWorkingPath(PACKAGE_LOCK_JSON),\n PNPM_LOCK_YAML: resolveWorkingPath(PNPM_LOCK_YAML),\n NODE_MODULES: resolveWorkingPath(NODE_MODULES),\n MIGRATE_MONGO_CONFIG: resolveWorkingPath(MIGRATE_MONGO_CONFIG),\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get LINT_STAGED_CONFIG() { return resolveWorkingPath(`${getCyberskillDirectory()}/config/lint-staged/index.js`); },\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get COMMITLINT_CONFIG() { return resolveWorkingPath(`${getCyberskillDirectory()}/config/commitlint/index.js`); },\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get VITEST_UNIT_CONFIG() { return resolveWorkingPath(`${getCyberskillDirectory()}/config/vitest/vitest.unit.js`); },\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get VITEST_E2E_CONFIG() { return resolveWorkingPath(`${getCyberskillDirectory()}/config/vitest/vitest.e2e.js`); },\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get STORYBOOK_MAIN_CONFIG() { return resolveWorkingPath(`${getCyberskillDirectory()}/config/storybook/storybook.main.js`); },\n /** Lazily resolved — defers `getCyberskillDirectory()` until first property access. */\n get STORYBOOK_PREVIEW_CONFIG() { return resolveWorkingPath(`${getCyberskillDirectory()}/config/storybook/storybook.preview.js`); },\n DOT_AGENT: resolveWorkingPath(DOT_AGENT),\n};\n\n/**\n * Creates Git hooks configuration based on whether this is the current project.\n * This function generates a configuration object for Git hooks that includes\n * pre-commit and commit-msg hooks, with an optional pre-push hook for the current project.\n *\n * @returns A Git hooks configuration object with appropriate commands for each hook.\n */\nexport function createGitHooksConfig() {\n return {\n 'pre-commit': LINT_STAGED_CLI,\n 'commit-msg': COMMIT_LINT_CLI,\n 'pre-push': rawCommand(`${GIT_CLI} pull && ${PNPM_CLI} run --if-present test`),\n };\n}\n\n/**\n * Builds a command function based on the specified type and configuration.\n * This function creates a command executor that handles different command types\n * including CLI commands and string commands. It manages package dependencies\n * and formats commands appropriately for execution.\n *\n * The function supports:\n * - CLI commands that require package installation\n * - String commands that are executed directly\n * - Automatic package dependency management\n * - Command formatting and validation\n *\n * @param config - Configuration object containing type, packages, and command properties.\n * @param config.type - The type of command to build (CLI or STRING).\n * @param config.packages - Optional array of packages required for CLI commands.\n * @param config.command - The command string to execute.\n * @returns A function that returns a promise resolving to the formatted command string.\n * @throws {Error} When an unsupported command type is provided.\n */\nfunction buildCommand({ type, packages, command }: { type: E_CommandType; packages?: I_PackageInput[]; command: string }): () => Promise<string> {\n const uniquePackages = packages?.reduce((acc: I_PackageInput[], pkg) => {\n if (!acc.some(existingPkg => existingPkg.name === pkg.name)) {\n acc.push(pkg);\n }\n return acc;\n }, []);\n\n return async () => {\n switch (type) {\n case E_CommandType.CLI: {\n if (uniquePackages?.length) {\n await setupPackages(uniquePackages, {\n install: true,\n });\n }\n\n return formatCommand(rawCommand(`${PNPM_EXEC_CLI} ${command}`)) as string;\n }\n case E_CommandType.STRING: {\n return formatCommand(rawCommand(command)) as string;\n }\n default: {\n throw new Error('Unsupported command type');\n }\n }\n };\n}\n\nconst RE_MIGRATE_NAME = /^[\\w-]+$/;\n\nexport const command = {\n simpleGitHooks: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: SIMPLE_GIT_HOOKS_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n\n ],\n command: SIMPLE_GIT_HOOK_CLI,\n }),\n eslintInspect: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name:\n ESLINT_INSPECT_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n\n ],\n command: ESLINT_INSPECT_CLI,\n }),\n nodeModulesInspect: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: NODE_MODULES_INSPECT_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n\n ],\n command: NODE_MODULES_INSPECT_CLI,\n }),\n eslintCheck: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: ESLINT_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n\n ],\n command: `${ESLINT_CLI} ${PATH.WORKING_DIRECTORY} --no-cache`,\n }),\n eslintFix: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: ESLINT_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n\n ],\n command: `${ESLINT_CLI} ${PATH.WORKING_DIRECTORY} --fix --no-cache`,\n }),\n typescriptCheck: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: TSC_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n\n ],\n command: `${TSC_CLI} -p ${PATH.TS_CONFIG} --noEmit --incremental`,\n }),\n testUnit: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: VITEST_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n ],\n command: `${VITEST_CLI} --config ${PATH.VITEST_UNIT_CONFIG}`,\n }),\n testE2e: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: VITEST_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n ],\n command: `${VITEST_CLI} --config ${PATH.VITEST_E2E_CONFIG}`,\n }),\n mongoMigrateCreate: (migrateName: string) => {\n if (!RE_MIGRATE_NAME.test(migrateName)) {\n throw new Error('Migration name must only contain alphanumeric characters, underscores, and hyphens.');\n }\n\n return buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: TSX_CLI,\n type: E_PackageType.DEPENDENCY,\n },\n {\n name: MIGRATE_MONGO_PACKAGE_NAME,\n type: E_PackageType.DEPENDENCY,\n },\n ],\n command: `${TSX_CLI} ${MIGRATE_MONGO_CLI} create ${migrateName} -f ${PATH.MIGRATE_MONGO_CONFIG}`,\n })();\n },\n mongoMigrateUp: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: TSX_CLI,\n type: E_PackageType.DEPENDENCY,\n },\n {\n name: MIGRATE_MONGO_PACKAGE_NAME,\n type: E_PackageType.DEPENDENCY,\n },\n ],\n command: `${TSX_CLI} ${MIGRATE_MONGO_CLI} up -f ${PATH.MIGRATE_MONGO_CONFIG}`,\n }),\n mongoMigrateDown: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: TSX_CLI,\n type: E_PackageType.DEPENDENCY,\n },\n {\n name: MIGRATE_MONGO_PACKAGE_NAME,\n type: E_PackageType.DEPENDENCY,\n },\n ],\n command: `${TSX_CLI} ${MIGRATE_MONGO_CLI} down -f ${PATH.MIGRATE_MONGO_CONFIG}`,\n }),\n commitLint: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: COMMIT_LINT_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n {\n name: COMMIT_LINT_CONVENTIONAL_CONFIG_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n ],\n command: `${COMMIT_LINT_CLI} --edit ${PATH.GIT_COMMIT_MSG} --config ${PATH.COMMITLINT_CONFIG}`,\n }),\n lintStaged: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: LINT_STAGED_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n ],\n command: `${LINT_STAGED_CLI} --config ${PATH.LINT_STAGED_CONFIG}`,\n }),\n configureGitHook: buildCommand({\n type: E_CommandType.STRING,\n command: `${GIT_CLI} config core.hooksPath ${PATH.GIT_HOOK}`,\n }),\n build: buildCommand({\n type: E_CommandType.STRING,\n command: `${PNPM_CLI} run --if-present build`,\n }),\n pnpmInstallStandard: buildCommand({\n type: E_CommandType.STRING,\n command: `${PNPM_CLI} install --ignore-scripts`,\n }),\n pnpmInstallLegacy: buildCommand({\n type: E_CommandType.STRING,\n command: `${PNPM_CLI} install --ignore-scripts --legacy-peer-deps`,\n }),\n pnpmInstallForce: buildCommand({\n type: E_CommandType.STRING,\n command: `${PNPM_CLI} install --ignore-scripts --force`,\n }),\n pnpmPruneStore: buildCommand({\n type: E_CommandType.STRING,\n command: `${PNPM_CLI} store prune`,\n }),\n pnpmCleanCache: buildCommand({\n type: E_CommandType.STRING,\n command: `${PNPM_CLI} cache delete`,\n }),\n storybookDev: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: STORYBOOK_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n ],\n command: `${STORYBOOK_CLI} dev`,\n }),\n storybookBuild: buildCommand({\n type: E_CommandType.CLI,\n packages: [\n {\n name: STORYBOOK_PACKAGE_NAME,\n type: E_PackageType.DEV_DEPENDENCY,\n },\n ],\n command: `${STORYBOOK_CLI} build`,\n }),\n};\n"],"mappings":"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"}
|
|
@@ -1,9 +1,25 @@
|
|
|
1
|
+
export interface I_StorageDriver {
|
|
2
|
+
init: (options?: unknown) => Promise<void>;
|
|
3
|
+
clear: () => Promise<void>;
|
|
4
|
+
getItem: <T>(key: string) => Promise<T | null>;
|
|
5
|
+
keys: () => Promise<string[]>;
|
|
6
|
+
removeItem: (key: string) => Promise<void>;
|
|
7
|
+
setItem: <T>(key: string, value: T) => Promise<T>;
|
|
8
|
+
}
|
|
1
9
|
/**
|
|
2
10
|
* Persistent storage utility object for data persistence across application sessions.
|
|
3
11
|
* Uses a filesystem-backed driver that stores JSON-encoded values on disk,
|
|
4
12
|
* with automatic initialization and error handling.
|
|
5
13
|
*/
|
|
6
14
|
export declare const storage: {
|
|
15
|
+
/**
|
|
16
|
+
* Initializes the utility with a custom storage driver instead of the default filesystem driver.
|
|
17
|
+
* This allows swapping to Redis, Memory, or cloud-based drivers.
|
|
18
|
+
* Must optionally be called before the first read/write operation.
|
|
19
|
+
*
|
|
20
|
+
* @param driver - The custom storage driver object that adheres to I_StorageDriver.
|
|
21
|
+
*/
|
|
22
|
+
initDriver(driver: I_StorageDriver): Promise<void>;
|
|
7
23
|
/**
|
|
8
24
|
* Retrieves a value from persistent storage by key.
|
|
9
25
|
* This method fetches data that was previously stored using the set method.
|
|
@@ -20,9 +36,13 @@ export declare const storage: {
|
|
|
20
36
|
*
|
|
21
37
|
* @param key - The unique identifier for the value to store.
|
|
22
38
|
* @param value - The data to store (will be automatically serialized).
|
|
39
|
+
* @param options - Optional settings, such as `ttlMs` for setting an expiration on the key.
|
|
40
|
+
* @param options.ttlMs - The time-to-live in milliseconds.
|
|
23
41
|
* @returns A promise that resolves when the storage operation is complete.
|
|
24
42
|
*/
|
|
25
|
-
set<T = unknown>(key: string, value: T
|
|
43
|
+
set<T = unknown>(key: string, value: T, options?: {
|
|
44
|
+
ttlMs?: number;
|
|
45
|
+
}): Promise<void>;
|
|
26
46
|
/**
|
|
27
47
|
* Removes a value from persistent storage by key.
|
|
28
48
|
* This method permanently deletes the stored data associated with the specified key.
|
|
@@ -31,6 +51,21 @@ export declare const storage: {
|
|
|
31
51
|
* @returns A promise that resolves when the removal operation is complete.
|
|
32
52
|
*/
|
|
33
53
|
remove(key: string): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Checks if a key exists in persistent storage.
|
|
56
|
+
* This method efficiently checks for key existence and respects TTL parsing.
|
|
57
|
+
* Returns false if the key exists but has expired.
|
|
58
|
+
*
|
|
59
|
+
* @param key - The unique identifier to check.
|
|
60
|
+
* @returns A promise that resolves to true if the key exists and has not expired.
|
|
61
|
+
* @since 3.13.0
|
|
62
|
+
*/
|
|
63
|
+
has(key: string): Promise<boolean>;
|
|
64
|
+
/**
|
|
65
|
+
* Clears all entries from storage atomically.
|
|
66
|
+
* @returns A promise that resolves when the clearing operation is complete.
|
|
67
|
+
*/
|
|
68
|
+
clear(): Promise<void>;
|
|
34
69
|
/**
|
|
35
70
|
* Retrieves all storage keys.
|
|
36
71
|
* This method returns an array of all keys that currently have stored values.
|
|
@@ -48,10 +83,24 @@ export declare const storage: {
|
|
|
48
83
|
* @returns A promise that resolves to a formatted log link string or null if an error occurs.
|
|
49
84
|
*/
|
|
50
85
|
getLogLink(key: string): Promise<string | null>;
|
|
86
|
+
/**
|
|
87
|
+
* Retrieves a value from persistent storage, or creates and stores it if it doesn't exist.
|
|
88
|
+
* This method combines check, creation, and storage into a single convenient operation.
|
|
89
|
+
*
|
|
90
|
+
* @param key - The unique identifier for the value.
|
|
91
|
+
* @param factory - A function (sync or async) that generates the value if it's missing or expired.
|
|
92
|
+
* @param options - Optional storage options.
|
|
93
|
+
* @param options.ttlMs - The time-to-live in milliseconds.
|
|
94
|
+
* @returns A promise that resolves to the retrieved or newly created value.
|
|
95
|
+
*/
|
|
96
|
+
getOrSet<T = unknown>(key: string, factory: () => T | Promise<T>, options?: {
|
|
97
|
+
ttlMs?: number;
|
|
98
|
+
}): Promise<T>;
|
|
51
99
|
};
|
|
52
100
|
/**
|
|
53
101
|
* Resets all module-level singleton state used by the storage module.
|
|
54
102
|
* Intended for use in tests to ensure isolation between test cases.
|
|
55
103
|
* Do NOT call this in production code.
|
|
104
|
+
* @since 3.13.0
|
|
56
105
|
*/
|
|
57
106
|
export declare function resetStorageForTesting(): void;
|