@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.
Files changed (254) hide show
  1. package/dist/config/commitlint/index.d.ts +5 -1
  2. package/dist/{src/config → config}/config.type.d.ts +1 -1
  3. package/dist/{src/config → config}/config.util.d.ts +1 -1
  4. package/dist/{src/config → config}/env/env.util.d.ts +5 -0
  5. package/dist/config/env/env.util.js +20 -16
  6. package/dist/config/env/env.util.js.map +1 -1
  7. package/dist/config/env/index.d.ts +3 -1
  8. package/dist/config/env/index.js +2 -2
  9. package/dist/config/eslint/index.d.ts +1198 -1
  10. package/dist/config/graphql-codegen/index.d.ts +2 -1
  11. package/dist/config/index.d.ts +2 -1
  12. package/dist/config/lint-staged/index.d.ts +5 -1
  13. package/dist/config/storybook/index.d.ts +2 -1
  14. package/dist/config/vitest/index.d.ts +3 -1
  15. package/dist/config/vitest/vitest.e2e.d.ts +20 -1
  16. package/dist/config/vitest/vitest.e2e.js +4 -4
  17. package/dist/config/vitest/vitest.e2e.js.map +1 -1
  18. package/dist/config/vitest/vitest.unit.d.ts +22 -1
  19. package/dist/config/vitest/vitest.unit.js +5 -5
  20. package/dist/config/vitest/vitest.unit.js.map +1 -1
  21. package/dist/config/vitest/vitest.unit.setup.js +10 -0
  22. package/dist/config/vitest/vitest.unit.setup.js.map +1 -0
  23. package/dist/constant/index.d.ts +5 -1
  24. package/dist/node/apollo-server/apollo-server.type.d.ts +20 -0
  25. package/dist/{src/node → node}/apollo-server/apollo-server.util.d.ts +1 -0
  26. package/dist/node/apollo-server/apollo-server.util.js +40 -16
  27. package/dist/node/apollo-server/apollo-server.util.js.map +1 -1
  28. package/dist/node/apollo-server/index.d.ts +2 -1
  29. package/dist/node/cli/index.d.ts +2 -1
  30. package/dist/node/cli/index.js +26 -28
  31. package/dist/node/cli/index.js.map +1 -1
  32. package/dist/{src/node → node}/command/command.util.d.ts +5 -0
  33. package/dist/node/command/command.util.js +49 -48
  34. package/dist/node/command/command.util.js.map +1 -1
  35. package/dist/node/command/index.d.ts +2 -1
  36. package/dist/node/command/index.js +2 -2
  37. package/dist/{src/node → node}/express/express.type.d.ts +11 -0
  38. package/dist/{src/node → node}/express/express.util.d.ts +34 -6
  39. package/dist/node/express/express.util.js +81 -56
  40. package/dist/node/express/express.util.js.map +1 -1
  41. package/dist/node/express/index.d.ts +2 -1
  42. package/dist/node/express/index.js +2 -2
  43. package/dist/node/fs/index.d.ts +2 -1
  44. package/dist/node/log/index.d.ts +2 -1
  45. package/dist/node/log/log.type.d.ts +46 -0
  46. package/dist/node/log/log.type.js.map +1 -1
  47. package/dist/{src/node → node}/log/log.util.d.ts +1 -1
  48. package/dist/node/log/log.util.js +25 -11
  49. package/dist/node/log/log.util.js.map +1 -1
  50. package/dist/node/mongo/index.d.ts +7 -1
  51. package/dist/node/mongo/index.js +7 -8
  52. package/dist/{src/node → node}/mongo/mongo.constant.d.ts +5 -0
  53. package/dist/node/mongo/mongo.constant.js +2 -2
  54. package/dist/node/mongo/mongo.constant.js.map +1 -1
  55. package/dist/{src/node → node}/mongo/mongo.controller.helpers.d.ts +1 -1
  56. package/dist/{src/node → node}/mongo/mongo.controller.mongoose.d.ts +4 -1
  57. package/dist/node/mongo/mongo.controller.mongoose.js +41 -55
  58. package/dist/node/mongo/mongo.controller.mongoose.js.map +1 -1
  59. package/dist/{src/node → node}/mongo/mongo.controller.native.d.ts +30 -3
  60. package/dist/node/mongo/mongo.controller.native.js +31 -14
  61. package/dist/node/mongo/mongo.controller.native.js.map +1 -1
  62. package/dist/{src/node → node}/mongo/mongo.controller.type.d.ts +1 -1
  63. package/dist/{src/node → node}/mongo/mongo.type.d.ts +3 -1
  64. package/dist/{src/node → node}/mongo/mongo.util.d.ts +1 -0
  65. package/dist/node/mongo/mongo.util.js +38 -17
  66. package/dist/node/mongo/mongo.util.js.map +1 -1
  67. package/dist/node/package/index.d.ts +2 -1
  68. package/dist/{src/node → node}/package/package.util.d.ts +1 -1
  69. package/dist/node/package/package.util.js +47 -47
  70. package/dist/node/path/index.d.ts +2 -1
  71. package/dist/node/path/index.js +2 -2
  72. package/dist/{src/node → node}/path/path.constant.d.ts +4 -0
  73. package/dist/node/path/path.constant.js +75 -72
  74. package/dist/node/path/path.constant.js.map +1 -1
  75. package/dist/node/storage/index.d.ts +3 -1
  76. package/dist/{src/node → node}/storage/storage.util.d.ts +50 -1
  77. package/dist/node/storage/storage.util.js +79 -54
  78. package/dist/node/storage/storage.util.js.map +1 -1
  79. package/dist/node/upload/index.d.ts +3 -1
  80. package/dist/{src/node → node}/upload/upload.type.d.ts +2 -0
  81. package/dist/node/upload/upload.type.js.map +1 -1
  82. package/dist/{src/node → node}/upload/upload.util.d.ts +2 -1
  83. package/dist/node/upload/upload.util.js +62 -52
  84. package/dist/node/upload/upload.util.js.map +1 -1
  85. package/dist/node/ws/index.d.ts +2 -1
  86. package/dist/{src/node → node}/ws/ws.util.d.ts +7 -0
  87. package/dist/node/ws/ws.util.js +20 -19
  88. package/dist/node/ws/ws.util.js.map +1 -1
  89. package/dist/react/apollo-client/apollo-client.component.js.map +1 -1
  90. package/dist/{src/react → react}/apollo-client/apollo-client.type.d.ts +3 -1
  91. package/dist/react/apollo-client/apollo-client.util.js +6 -6
  92. package/dist/react/apollo-client/apollo-client.util.js.map +1 -1
  93. package/dist/react/apollo-client/index.d.ts +9 -1
  94. package/dist/react/apollo-client/links/index.d.ts +1 -1
  95. package/dist/react/apollo-client-nextjs/apollo-client-nextjs.rsc.d.ts +16 -1
  96. package/dist/react/apollo-client-nextjs/index.d.ts +2 -1
  97. package/dist/react/apollo-error/apollo-error.component.js +1 -1
  98. package/dist/react/apollo-error/apollo-error.component.js.map +1 -1
  99. package/dist/react/apollo-error/apollo-error.util.js.map +1 -1
  100. package/dist/react/apollo-error/index.d.ts +6 -1
  101. package/dist/react/i18next/i18next.server.d.ts +17 -0
  102. package/dist/react/i18next/i18next.server.js +9 -0
  103. package/dist/react/i18next/i18next.server.js.map +1 -0
  104. package/dist/react/i18next/index.d.ts +2 -1
  105. package/dist/react/loading/index.d.ts +5 -1
  106. package/dist/{src/react → react}/loading/loading.provider.d.ts +1 -1
  107. package/dist/react/log/index.d.ts +2 -1
  108. package/dist/react/log/log.type.d.ts +1 -0
  109. package/dist/{src/react → react}/log/log.util.d.ts +1 -1
  110. package/dist/react/next-intl/index.d.ts +6 -1
  111. package/dist/{src/react → react}/next-intl/next-intl.hoc.d.ts +5 -9
  112. package/dist/react/next-intl/next-intl.hoc.js +14 -10
  113. package/dist/react/next-intl/next-intl.hoc.js.map +1 -1
  114. package/dist/react/next-intl/next-intl.server.d.ts +10 -0
  115. package/dist/react/next-intl/next-intl.server.js +7 -0
  116. package/dist/react/next-intl/next-intl.server.js.map +1 -0
  117. package/dist/{src/react → react}/next-intl/next-intl.type.d.ts +1 -1
  118. package/dist/react/storage/index.d.ts +2 -1
  119. package/dist/{src/react → react}/storage/storage.hook.d.ts +1 -1
  120. package/dist/{src/react → react}/storage/storage.util.d.ts +34 -1
  121. package/dist/react/storage/storage.util.js +30 -5
  122. package/dist/react/storage/storage.util.js.map +1 -1
  123. package/dist/react/toast/index.d.ts +1 -1
  124. package/dist/react/userback/index.d.ts +2 -1
  125. package/dist/react/userback/userback.component.js.map +1 -1
  126. package/dist/{src/typescript → typescript}/common.type.d.ts +4 -0
  127. package/dist/typescript/common.type.js +2 -2
  128. package/dist/typescript/common.type.js.map +1 -1
  129. package/dist/typescript/index.d.ts +5 -1
  130. package/dist/typescript/index.js +2 -2
  131. package/dist/util/common/index.d.ts +5 -1
  132. package/dist/util/index.d.ts +9 -1
  133. package/dist/util/log/index.d.ts +2 -1
  134. package/dist/{src/util → util}/log/log.util.d.ts +1 -1
  135. package/dist/util/object/index.d.ts +4 -1
  136. package/dist/util/object/object.util.js +29 -18
  137. package/dist/util/object/object.util.js.map +1 -1
  138. package/dist/util/serializer/index.d.ts +2 -1
  139. package/dist/{src/util → util}/serializer/serializer.util.d.ts +8 -0
  140. package/dist/util/serializer/serializer.util.js +51 -64
  141. package/dist/util/serializer/serializer.util.js.map +1 -1
  142. package/dist/util/storage/storage-envelope.d.ts +25 -0
  143. package/dist/util/storage/storage-envelope.js +18 -0
  144. package/dist/util/storage/storage-envelope.js.map +1 -0
  145. package/dist/util/string/index.d.ts +5 -1
  146. package/dist/util/validate/index.d.ts +4 -1
  147. package/package.json +33 -12
  148. package/dist/node/mongo/mongo.type.js +0 -8
  149. package/dist/node/mongo/mongo.type.js.map +0 -1
  150. 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
  151. 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
  152. package/dist/src/config/commitlint/index.d.ts +0 -5
  153. package/dist/src/config/env/index.d.ts +0 -3
  154. package/dist/src/config/eslint/index.d.ts +0 -1198
  155. package/dist/src/config/graphql-codegen/index.d.ts +0 -2
  156. package/dist/src/config/index.d.ts +0 -2
  157. package/dist/src/config/lint-staged/index.d.ts +0 -5
  158. package/dist/src/config/storybook/index.d.ts +0 -2
  159. package/dist/src/config/vitest/index.d.ts +0 -3
  160. package/dist/src/config/vitest/vitest.e2e.d.ts +0 -20
  161. package/dist/src/config/vitest/vitest.unit.d.ts +0 -22
  162. package/dist/src/constant/index.d.ts +0 -5
  163. package/dist/src/node/apollo-server/apollo-server.type.d.ts +0 -8
  164. package/dist/src/node/apollo-server/index.d.ts +0 -2
  165. package/dist/src/node/cli/index.d.ts +0 -2
  166. package/dist/src/node/command/index.d.ts +0 -2
  167. package/dist/src/node/express/index.d.ts +0 -2
  168. package/dist/src/node/fs/index.d.ts +0 -2
  169. package/dist/src/node/log/index.d.ts +0 -2
  170. package/dist/src/node/log/log.type.d.ts +0 -29
  171. package/dist/src/node/mongo/index.d.ts +0 -6
  172. package/dist/src/node/package/index.d.ts +0 -2
  173. package/dist/src/node/path/index.d.ts +0 -2
  174. package/dist/src/node/storage/index.d.ts +0 -3
  175. package/dist/src/node/upload/index.d.ts +0 -3
  176. package/dist/src/node/ws/index.d.ts +0 -2
  177. package/dist/src/react/apollo-client/index.d.ts +0 -9
  178. package/dist/src/react/apollo-client/links/index.d.ts +0 -1
  179. package/dist/src/react/apollo-client-nextjs/apollo-client-nextjs.rsc.d.ts +0 -16
  180. package/dist/src/react/apollo-client-nextjs/index.d.ts +0 -2
  181. package/dist/src/react/apollo-error/index.d.ts +0 -6
  182. package/dist/src/react/i18next/index.d.ts +0 -2
  183. package/dist/src/react/loading/index.d.ts +0 -5
  184. package/dist/src/react/log/index.d.ts +0 -2
  185. package/dist/src/react/log/log.type.d.ts +0 -1
  186. package/dist/src/react/next-intl/index.d.ts +0 -6
  187. package/dist/src/react/storage/index.d.ts +0 -2
  188. package/dist/src/react/toast/index.d.ts +0 -1
  189. package/dist/src/react/userback/index.d.ts +0 -2
  190. package/dist/src/typescript/index.d.ts +0 -5
  191. package/dist/src/util/common/index.d.ts +0 -5
  192. package/dist/src/util/index.d.ts +0 -9
  193. package/dist/src/util/log/index.d.ts +0 -2
  194. package/dist/src/util/object/index.d.ts +0 -4
  195. package/dist/src/util/serializer/index.d.ts +0 -2
  196. package/dist/src/util/string/index.d.ts +0 -5
  197. package/dist/src/util/validate/index.d.ts +0 -4
  198. /package/dist/{src/config → config}/env/env.constant.d.ts +0 -0
  199. /package/dist/{src/config → config}/env/env.type.d.ts +0 -0
  200. /package/dist/{src/config → config}/graphql-codegen/graphql-codegen.type.d.ts +0 -0
  201. /package/dist/{src/config → config}/graphql-codegen/graphql-codegen.util.d.ts +0 -0
  202. /package/dist/{src/config → config}/storybook/storybook.main.d.ts +0 -0
  203. /package/dist/{src/config → config}/storybook/storybook.preview.d.ts +0 -0
  204. /package/dist/{src/config → config}/vitest/vitest.unit.setup.d.ts +0 -0
  205. /package/dist/{src/constant → constant}/common.d.ts +0 -0
  206. /package/dist/{src/constant → constant}/response-status.d.ts +0 -0
  207. /package/dist/{src/node → node}/command/command.type.d.ts +0 -0
  208. /package/dist/{src/node → node}/fs/fs.type.d.ts +0 -0
  209. /package/dist/{src/node → node}/fs/fs.util.d.ts +0 -0
  210. /package/dist/{src/node → node}/mongo/mongo.controller.d.ts +0 -0
  211. /package/dist/{src/node → node}/mongo/mongo.dynamic-populate.d.ts +0 -0
  212. /package/dist/{src/node → node}/mongo/mongo.internal-types.d.ts +0 -0
  213. /package/dist/{src/node → node}/mongo/mongo.populate.d.ts +0 -0
  214. /package/dist/{src/node → node}/package/package.type.d.ts +0 -0
  215. /package/dist/{src/node → node}/path/path.util.d.ts +0 -0
  216. /package/dist/{src/node → node}/storage/storage.constant.d.ts +0 -0
  217. /package/dist/{src/node → node}/storage/storage.type.d.ts +0 -0
  218. /package/dist/{src/node → node}/upload/upload.constant.d.ts +0 -0
  219. /package/dist/{src/node → node}/ws/ws.type.d.ts +0 -0
  220. /package/dist/{src/react → react}/apollo-client/apollo-client.component.d.ts +0 -0
  221. /package/dist/{src/react → react}/apollo-client/apollo-client.constant.d.ts +0 -0
  222. /package/dist/{src/react → react}/apollo-client/apollo-client.context.d.ts +0 -0
  223. /package/dist/{src/react → react}/apollo-client/apollo-client.hook.d.ts +0 -0
  224. /package/dist/{src/react → react}/apollo-client/apollo-client.util.d.ts +0 -0
  225. /package/dist/{src/react → react}/apollo-client/links/upload.d.ts +0 -0
  226. /package/dist/{src/react → react}/apollo-client-nextjs/apollo-client-nextjs.component.d.ts +0 -0
  227. /package/dist/{src/react → react}/apollo-client-nextjs/apollo-client-nextjs.util.d.ts +0 -0
  228. /package/dist/{src/react → react}/apollo-error/apollo-error.component.d.ts +0 -0
  229. /package/dist/{src/react → react}/apollo-error/apollo-error.context.d.ts +0 -0
  230. /package/dist/{src/react → react}/apollo-error/apollo-error.hook.d.ts +0 -0
  231. /package/dist/{src/react → react}/apollo-error/apollo-error.provider.d.ts +0 -0
  232. /package/dist/{src/react → react}/apollo-error/apollo-error.type.d.ts +0 -0
  233. /package/dist/{src/react → react}/apollo-error/apollo-error.util.d.ts +0 -0
  234. /package/dist/{src/react → react}/i18next/i18next.hook.d.ts +0 -0
  235. /package/dist/{src/react → react}/i18next/i18next.util.d.ts +0 -0
  236. /package/dist/{src/react → react}/loading/loading.component.d.ts +0 -0
  237. /package/dist/{src/react → react}/loading/loading.context.d.ts +0 -0
  238. /package/dist/{src/react → react}/loading/loading.hook.d.ts +0 -0
  239. /package/dist/{src/react → react}/loading/loading.type.d.ts +0 -0
  240. /package/dist/{src/react → react}/next-intl/next-intl.constant.d.ts +0 -0
  241. /package/dist/{src/react → react}/next-intl/next-intl.context.d.ts +0 -0
  242. /package/dist/{src/react → react}/next-intl/next-intl.hook.d.ts +0 -0
  243. /package/dist/{src/react → react}/next-intl/next-intl.provider.d.ts +0 -0
  244. /package/dist/{src/react → react}/userback/userback.component.d.ts +0 -0
  245. /package/dist/{src/react → react}/userback/userback.type.d.ts +0 -0
  246. /package/dist/{src/typescript → typescript}/react.type.d.ts +0 -0
  247. /package/dist/{src/util → util}/common/common.type.d.ts +0 -0
  248. /package/dist/{src/util → util}/common/common.util.d.ts +0 -0
  249. /package/dist/{src/util → util}/log/log.type.d.ts +0 -0
  250. /package/dist/{src/util → util}/object/object.util.d.ts +0 -0
  251. /package/dist/{src/util → util}/serializer/serializer.type.d.ts +0 -0
  252. /package/dist/{src/util → util}/string/string.type.d.ts +0 -0
  253. /package/dist/{src/util → util}/string/string.util.d.ts +0 -0
  254. /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 te from "fs-extra";
7
+ import s from "fs-extra";
8
8
  //#region src/node/path/path.constant.ts
9
- var s = e().CWD, c = "@cyberskill/shared", l = "node_modules", u = "dist", d = "public", f = "package.json", p = "package-lock.json", m = "tsconfig.json", h = ".gitignore", g = ".simple-git-hooks.json", _ = "pnpm-lock.yaml", v = ".git/hooks/", y = ".git/COMMIT_EDITMSG", b = ".git/info/exclude", x = ".migrate-mongo.config.js", S = null;
10
- function C() {
11
- if (S !== null) return S;
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
- S = te.readJsonSync(o("package.json")).name === "@cyberskill/shared" ? a(s, u) : a(s, l, c, u);
16
+ C = s.readJsonSync(o("package.json")).name === "@cyberskill/shared" ? a(c, d) : a(c, u, l, d);
14
17
  } catch {
15
- S = a(s, l, c, u);
18
+ C = a(c, u, l, d);
16
19
  }
17
- return S;
20
+ return C;
18
21
  }
19
- var ne = C(), w = "cyberskill", re = "src/node/cli/index.ts", T = "eslint", E = "eslint", D = "vitest", O = "vitest", k = "@commitlint/cli", A = "@commitlint/config-conventional", j = "commitlint", M = "lint-staged", N = "lint-staged", P = "typescript", F = "tsc", I = "tsx", L = "git", R = "pnpm", z = "pnpm exec", B = "simple-git-hooks", V = "simple-git-hooks", H = "@eslint/config-inspector", U = "eslint-config-inspector", W = "node-modules-inspector", G = "node-modules-inspector", K = "migrate-mongo", q = "./node_modules/migrate-mongo/bin/migrate-mongo", J = "storybook", Y = "storybook", X = "@vudovn/ag-kit", Z = ".agent", Q = {
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 C();
24
+ return w();
22
25
  },
23
- WORKING_DIRECTORY: s,
24
- PUBLIC_DIRECTORY: o(d),
25
- TS_CONFIG: o(m),
26
- GIT_IGNORE: o(h),
27
- GIT_HOOK: o(v),
28
- GIT_COMMIT_MSG: o(y),
29
- GIT_EXCLUDE: o(b),
30
- SIMPLE_GIT_HOOKS_JSON: o(g),
31
- PACKAGE_JSON: o(f),
32
- PACKAGE_LOCK_JSON: o(p),
33
- PNPM_LOCK_YAML: o(_),
34
- NODE_MODULES: o(l),
35
- MIGRATE_MONGO_CONFIG: o(x),
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(`${C()}/config/lint-staged/index.js`);
40
+ return o(`${w()}/config/lint-staged/index.js`);
38
41
  },
39
42
  get COMMITLINT_CONFIG() {
40
- return o(`${C()}/config/commitlint/index.js`);
43
+ return o(`${w()}/config/commitlint/index.js`);
41
44
  },
42
45
  get VITEST_UNIT_CONFIG() {
43
- return o(`${C()}/config/vitest/vitest.unit.js`);
46
+ return o(`${w()}/config/vitest/vitest.unit.js`);
44
47
  },
45
48
  get VITEST_E2E_CONFIG() {
46
- return o(`${C()}/config/vitest/vitest.e2e.js`);
49
+ return o(`${w()}/config/vitest/vitest.e2e.js`);
47
50
  },
48
51
  get STORYBOOK_MAIN_CONFIG() {
49
- return o(`${C()}/config/storybook/storybook.main.js`);
52
+ return o(`${w()}/config/storybook/storybook.main.js`);
50
53
  },
51
54
  get STORYBOOK_PREVIEW_CONFIG() {
52
- return o(`${C()}/config/storybook/storybook.preview.js`);
55
+ return o(`${w()}/config/storybook/storybook.preview.js`);
53
56
  },
54
57
  DOT_AGENT: o(Z)
55
58
  };
56
- function ie() {
59
+ function ae() {
57
60
  return {
58
- "pre-commit": N,
59
- "commit-msg": j,
60
- "pre-push": i(`git pull && ${R} run --if-present test`)
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(`${z} ${a}`));
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 ae = /^[\w-]+$/, oe = {
76
+ var oe = /^[\w-]+$/, se = {
74
77
  simpleGitHooks: $({
75
78
  type: t.CLI,
76
79
  packages: [{
77
- name: B,
80
+ name: V,
78
81
  type: n.DEV_DEPENDENCY
79
82
  }],
80
- command: V
83
+ command: H
81
84
  }),
82
85
  eslintInspect: $({
83
86
  type: t.CLI,
84
87
  packages: [{
85
- name: H,
88
+ name: U,
86
89
  type: n.DEV_DEPENDENCY
87
90
  }],
88
- command: U
91
+ command: W
89
92
  }),
90
93
  nodeModulesInspect: $({
91
94
  type: t.CLI,
92
95
  packages: [{
93
- name: W,
96
+ name: G,
94
97
  type: n.DEV_DEPENDENCY
95
98
  }],
96
- command: G
99
+ command: K
97
100
  }),
98
101
  eslintCheck: $({
99
102
  type: t.CLI,
100
103
  packages: [{
101
- name: T,
104
+ name: D,
102
105
  type: n.DEV_DEPENDENCY
103
106
  }],
104
- command: `${E} ${Q.WORKING_DIRECTORY} --no-cache`
107
+ command: `${O} ${Q.WORKING_DIRECTORY} --no-cache`
105
108
  }),
106
109
  eslintFix: $({
107
110
  type: t.CLI,
108
111
  packages: [{
109
- name: T,
112
+ name: D,
110
113
  type: n.DEV_DEPENDENCY
111
114
  }],
112
- command: `${E} ${Q.WORKING_DIRECTORY} --fix --no-cache`
115
+ command: `${O} ${Q.WORKING_DIRECTORY} --fix --no-cache`
113
116
  }),
114
117
  typescriptCheck: $({
115
118
  type: t.CLI,
116
119
  packages: [{
117
- name: P,
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: D,
128
+ name: k,
126
129
  type: n.DEV_DEPENDENCY
127
130
  }],
128
- command: `${O} --config ${Q.VITEST_UNIT_CONFIG}`
131
+ command: `${A} --config ${Q.VITEST_UNIT_CONFIG}`
129
132
  }),
130
133
  testE2e: $({
131
134
  type: t.CLI,
132
135
  packages: [{
133
- name: D,
136
+ name: k,
134
137
  type: n.DEV_DEPENDENCY
135
138
  }],
136
- command: `${O} --config ${Q.VITEST_E2E_CONFIG}`
139
+ command: `${A} --config ${Q.VITEST_E2E_CONFIG}`
137
140
  }),
138
141
  mongoMigrateCreate: (e) => {
139
- if (!ae.test(e)) throw Error("Migration name must only contain alphanumeric characters, underscores, and hyphens.");
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: K,
149
+ name: q,
147
150
  type: n.DEPENDENCY
148
151
  }],
149
- command: `tsx ${q} create ${e} -f ${Q.MIGRATE_MONGO_CONFIG}`
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: K,
161
+ name: q,
159
162
  type: n.DEPENDENCY
160
163
  }],
161
- command: `tsx ${q} up -f ${Q.MIGRATE_MONGO_CONFIG}`
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: K,
172
+ name: q,
170
173
  type: n.DEPENDENCY
171
174
  }],
172
- command: `tsx ${q} down -f ${Q.MIGRATE_MONGO_CONFIG}`
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: k,
180
+ name: j,
178
181
  type: n.DEV_DEPENDENCY
179
182
  }, {
180
- name: A,
183
+ name: M,
181
184
  type: n.DEV_DEPENDENCY
182
185
  }],
183
- command: `${j} --edit ${Q.GIT_COMMIT_MSG} --config ${Q.COMMITLINT_CONFIG}`
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: M,
191
+ name: P,
189
192
  type: n.DEV_DEPENDENCY
190
193
  }],
191
- command: `${N} --config ${Q.LINT_STAGED_CONFIG}`
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: `${R} run --if-present build`
202
+ command: `${z} run --if-present build`
200
203
  }),
201
204
  pnpmInstallStandard: $({
202
205
  type: t.STRING,
203
- command: `${R} install --ignore-scripts`
206
+ command: `${z} install --ignore-scripts`
204
207
  }),
205
208
  pnpmInstallLegacy: $({
206
209
  type: t.STRING,
207
- command: `${R} install --ignore-scripts --legacy-peer-deps`
210
+ command: `${z} install --ignore-scripts --legacy-peer-deps`
208
211
  }),
209
212
  pnpmInstallForce: $({
210
213
  type: t.STRING,
211
- command: `${R} install --ignore-scripts --force`
214
+ command: `${z} install --ignore-scripts --force`
212
215
  }),
213
216
  pnpmPruneStore: $({
214
217
  type: t.STRING,
215
- command: `${R} store prune`
218
+ command: `${z} store prune`
216
219
  }),
217
220
  pnpmCleanCache: $({
218
221
  type: t.STRING,
219
- command: `${R} cache delete`
222
+ command: `${z} cache delete`
220
223
  }),
221
224
  storybookDev: $({
222
225
  type: t.CLI,
223
226
  packages: [{
224
- name: J,
227
+ name: Y,
225
228
  type: n.DEV_DEPENDENCY
226
229
  }],
227
- command: `${Y} dev`
230
+ command: `${X} dev`
228
231
  }),
229
232
  storybookBuild: $({
230
233
  type: t.CLI,
231
234
  packages: [{
232
- name: J,
235
+ name: Y,
233
236
  type: n.DEV_DEPENDENCY
234
237
  }],
235
- command: `${Y} build`
238
+ command: `${X} build`
236
239
  })
237
240
  };
238
241
  //#endregion
239
- export { X as AG_KIT_PACKAGE_NAME, u as BUILD_DIRECTORY, j as COMMIT_LINT_CLI, A as COMMIT_LINT_CONVENTIONAL_CONFIG_PACKAGE_NAME, k as COMMIT_LINT_PACKAGE_NAME, w as CYBERSKILL_CLI, re as CYBERSKILL_CLI_PATH, ne as CYBERSKILL_DIRECTORY, c as CYBERSKILL_PACKAGE_NAME, Z as DOT_AGENT, E as ESLINT_CLI, U as ESLINT_INSPECT_CLI, H as ESLINT_INSPECT_PACKAGE_NAME, T as ESLINT_PACKAGE_NAME, L as GIT_CLI, y as GIT_COMMIT_EDITMSG, b as GIT_EXCLUDE, v as GIT_HOOK, h as GIT_IGNORE, N as LINT_STAGED_CLI, M as LINT_STAGED_PACKAGE_NAME, q as MIGRATE_MONGO_CLI, x as MIGRATE_MONGO_CONFIG, K as MIGRATE_MONGO_PACKAGE_NAME, l as NODE_MODULES, G as NODE_MODULES_INSPECT_CLI, W as NODE_MODULES_INSPECT_PACKAGE_NAME, f as PACKAGE_JSON, p as PACKAGE_LOCK_JSON, Q as PATH, R as PNPM_CLI, z as PNPM_EXEC_CLI, _ as PNPM_LOCK_YAML, d as PUBLIC_DIRECTORY, B as SIMPLE_GIT_HOOKS_PACKAGE_NAME, V as SIMPLE_GIT_HOOK_CLI, g as SIMPLE_GIT_HOOK_JSON, Y as STORYBOOK_CLI, J as STORYBOOK_PACKAGE_NAME, m as TSCONFIG_JSON, F as TSC_CLI, P as TSC_PACKAGE_NAME, I as TSX_CLI, O as VITEST_CLI, D as VITEST_PACKAGE_NAME, s as WORKING_DIRECTORY, oe as command, ie as createGitHooksConfig, C as getCyberskillDirectory };
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 +1,3 @@
1
- export {}
1
+ export * from './storage.constant.js';
2
+ export * from './storage.type.js';
3
+ export * from './storage.util.js';
@@ -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): Promise<void>;
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;