silgi 0.42.5 → 0.43.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 (266) hide show
  1. package/dist/_virtual/rolldown_runtime.mjs +11 -0
  2. package/dist/build.d.mts +3 -11
  3. package/dist/build.mjs +4 -48
  4. package/dist/cli/build/build.mjs +17 -0
  5. package/dist/cli/build/dev.d.mts +9 -0
  6. package/dist/cli/build/dev.mjs +59 -0
  7. package/dist/cli/build/prepare.d.mts +6 -0
  8. package/dist/cli/build/prepare.mjs +15 -0
  9. package/dist/cli/commands/commands.mjs +90 -0
  10. package/dist/cli/commands/env.mjs +53 -0
  11. package/dist/cli/commands/init.mjs +84 -0
  12. package/dist/cli/commands/install.mjs +52 -0
  13. package/dist/cli/commands/prepare.mjs +65 -0
  14. package/dist/cli/commands/reset.mjs +46 -0
  15. package/dist/cli/commands/run.mjs +105 -0
  16. package/dist/cli/commands/watch.mjs +48 -0
  17. package/dist/cli/config/defaults.mjs +117 -0
  18. package/dist/cli/config/index.d.mts +3 -11
  19. package/dist/cli/config/index.mjs +4 -17
  20. package/dist/cli/config/loader.d.mts +6 -0
  21. package/dist/cli/config/loader.mjs +71 -0
  22. package/dist/cli/config/resolvers/compatibility.mjs +71 -0
  23. package/dist/cli/config/resolvers/imports.mjs +35 -0
  24. package/dist/cli/config/resolvers/paths.mjs +98 -0
  25. package/dist/cli/config/resolvers/storage.mjs +23 -0
  26. package/dist/cli/config/resolvers/url.mjs +9 -0
  27. package/dist/cli/config/types.d.mts +14 -0
  28. package/dist/cli/config/types.mjs +147 -0
  29. package/dist/cli/core/apiful.mjs +36 -0
  30. package/dist/cli/core/app.mjs +105 -0
  31. package/dist/cli/core/devServer.mjs +10 -0
  32. package/dist/cli/core/env.mjs +68 -0
  33. package/dist/cli/core/installPackage.mjs +60 -0
  34. package/dist/cli/core/runtimeConfig.mjs +70 -0
  35. package/dist/cli/core/scan.mjs +35 -0
  36. package/dist/cli/core/silgi.mjs +111 -0
  37. package/dist/cli/core/templates.mjs +38 -0
  38. package/dist/cli/framework/emptyFramework.mjs +7 -0
  39. package/dist/cli/framework/h3.mjs +55 -0
  40. package/dist/cli/framework/index.mjs +15 -0
  41. package/dist/cli/framework/nitro.mjs +24 -0
  42. package/dist/cli/framework/nuxt.mjs +10 -0
  43. package/dist/cli/index.d.mts +1 -1
  44. package/dist/cli/index.mjs +24 -27
  45. package/dist/cli/module/exportScan.mjs +180 -0
  46. package/dist/cli/module/install.mjs +49 -0
  47. package/dist/cli/module/scan.mjs +195 -0
  48. package/dist/cli/scan/prepareCommands.mjs +40 -0
  49. package/dist/cli/scan/prepareConfigs.mjs +33 -0
  50. package/dist/cli/scan/prepareCoreFile.mjs +118 -0
  51. package/dist/cli/scan/prepareScanFile.mjs +59 -0
  52. package/dist/cli/scan/prepareSchema.mjs +140 -0
  53. package/dist/cli/scan/scanExportFile.mjs +312 -0
  54. package/dist/cli/scan/writeCoreFile.mjs +22 -0
  55. package/dist/cli/scan/writeTypesAndFiles.mjs +72 -0
  56. package/dist/cli/utils/cancel.mjs +14 -0
  57. package/dist/cli/utils/common.mjs +15 -0
  58. package/dist/cli/utils/compatibility.mjs +33 -0
  59. package/dist/cli/utils/debug.mjs +11 -0
  60. package/dist/cli/utils/ignore.mjs +56 -0
  61. package/dist/cli/utils/readScanFile.mjs +58 -0
  62. package/dist/cli/utils/storage.mjs +23 -0
  63. package/dist/core/context.d.mts +30 -0
  64. package/dist/core/context.mjs +32 -0
  65. package/dist/core/createSilgi.d.mts +6 -0
  66. package/dist/core/createSilgi.mjs +152 -0
  67. package/dist/core/error.d.mts +65 -0
  68. package/dist/core/error.mjs +106 -0
  69. package/dist/core/event.d.mts +26 -0
  70. package/dist/core/event.mjs +44 -0
  71. package/dist/core/index.d.mts +24 -316
  72. package/dist/core/index.mjs +27 -1345
  73. package/dist/core/orchestrate.mjs +113 -0
  74. package/dist/core/response.d.mts +20 -0
  75. package/dist/core/response.mjs +105 -0
  76. package/dist/core/silgi.d.mts +19 -0
  77. package/dist/core/silgi.mjs +141 -0
  78. package/dist/core/silgiApp.d.mts +9 -0
  79. package/dist/core/silgiApp.mjs +23 -0
  80. package/dist/core/storage.d.mts +7 -0
  81. package/dist/core/storage.mjs +15 -0
  82. package/dist/core/unctx.d.mts +21 -0
  83. package/dist/core/unctx.mjs +35 -0
  84. package/dist/core/utils/event-stream.d.mts +53 -0
  85. package/dist/core/utils/event-stream.mjs +38 -0
  86. package/dist/core/utils/event.d.mts +8 -0
  87. package/dist/core/utils/event.mjs +12 -0
  88. package/dist/core/utils/internal/event-stream.d.mts +45 -0
  89. package/dist/core/utils/internal/event-stream.mjs +137 -0
  90. package/dist/core/utils/internal/obj.mjs +9 -0
  91. package/dist/core/utils/internal/object.mjs +29 -0
  92. package/dist/core/utils/internal/query.mjs +73 -0
  93. package/dist/core/utils/internal/req.mjs +35 -0
  94. package/dist/core/utils/merge.d.mts +14 -0
  95. package/dist/core/utils/merge.mjs +27 -0
  96. package/dist/{shared/silgi.DTwQEdSr.d.mts → core/utils/middleware.d.mts} +11 -13
  97. package/dist/core/utils/middleware.mjs +12 -0
  98. package/dist/core/utils/request.mjs +35 -0
  99. package/dist/core/utils/resolver.d.mts +7 -0
  100. package/dist/core/utils/resolver.mjs +29 -0
  101. package/dist/core/utils/runtime.d.mts +7 -0
  102. package/dist/core/utils/runtime.mjs +20 -0
  103. package/dist/core/utils/sanitize.mjs +22 -0
  104. package/dist/core/utils/schema.d.mts +34 -0
  105. package/dist/core/utils/schema.mjs +33 -0
  106. package/dist/core/utils/service.d.mts +13 -0
  107. package/dist/core/utils/service.mjs +19 -0
  108. package/dist/core/utils/shared.d.mts +6 -0
  109. package/dist/core/utils/shared.mjs +7 -0
  110. package/dist/core/utils/storage.d.mts +24 -0
  111. package/dist/core/utils/storage.mjs +54 -0
  112. package/dist/index.d.mts +21 -6
  113. package/dist/index.mjs +22 -16
  114. package/dist/kit/add/add-commands.d.mts +6 -0
  115. package/dist/kit/add/add-commands.mjs +12 -0
  116. package/dist/kit/add/add-core-file.d.mts +9 -0
  117. package/dist/kit/add/add-core-file.mjs +11 -0
  118. package/dist/kit/add/add-imports.d.mts +14 -0
  119. package/dist/kit/add/add-imports.mjs +56 -0
  120. package/dist/kit/add/add-npm.d.mts +14 -0
  121. package/dist/kit/add/add-npm.mjs +23 -0
  122. package/dist/kit/define.d.mts +28 -0
  123. package/dist/kit/define.mjs +25 -0
  124. package/dist/kit/errors.d.mts +6 -0
  125. package/dist/kit/errors.mjs +11 -0
  126. package/dist/kit/esm.d.mts +11 -0
  127. package/dist/kit/esm.mjs +21 -0
  128. package/dist/kit/fs.d.mts +7 -0
  129. package/dist/kit/fs.mjs +23 -0
  130. package/dist/kit/function-utils.d.mts +27 -0
  131. package/dist/kit/function-utils.mjs +75 -0
  132. package/dist/kit/gen.d.mts +5 -0
  133. package/dist/kit/gen.mjs +26 -0
  134. package/dist/kit/hash.d.mts +4 -0
  135. package/dist/kit/hash.mjs +10 -0
  136. package/dist/kit/index.d.mts +22 -321
  137. package/dist/kit/index.mjs +23 -1039
  138. package/dist/kit/isFramework.d.mts +6 -0
  139. package/dist/kit/isFramework.mjs +21 -0
  140. package/dist/kit/logger.d.mts +6 -0
  141. package/dist/kit/logger.mjs +10 -0
  142. package/dist/kit/migration.d.mts +113 -0
  143. package/dist/kit/migration.mjs +301 -0
  144. package/dist/kit/module.d.mts +14 -0
  145. package/dist/kit/module.mjs +53 -0
  146. package/dist/kit/path.d.mts +7 -0
  147. package/dist/kit/path.mjs +26 -0
  148. package/dist/kit/preset.d.mts +8 -0
  149. package/dist/kit/preset.mjs +11 -0
  150. package/dist/kit/resolve.d.mts +37 -0
  151. package/dist/kit/resolve.mjs +82 -0
  152. package/dist/kit/template.d.mts +14 -0
  153. package/dist/kit/template.mjs +59 -0
  154. package/dist/kit/useRequest.d.mts +19 -0
  155. package/dist/kit/useRequest.mjs +63 -0
  156. package/dist/kit/utils.d.mts +34 -0
  157. package/dist/kit/utils.mjs +90 -0
  158. package/dist/package.mjs +176 -0
  159. package/dist/presets/_all.gen.d.mts +5 -2
  160. package/dist/presets/_all.gen.mjs +16 -13
  161. package/dist/presets/_resolve.d.mts +10 -6
  162. package/dist/presets/_resolve.mjs +51 -65
  163. package/dist/presets/_types.gen.d.mts +8 -5
  164. package/dist/presets/_types.gen.mjs +5 -1
  165. package/dist/presets/h3/preset.d.mts +5 -2
  166. package/dist/presets/h3/preset.mjs +33 -38
  167. package/dist/presets/hono/preset.d.mts +5 -2
  168. package/dist/presets/hono/preset.mjs +28 -35
  169. package/dist/presets/index.d.mts +3 -2
  170. package/dist/presets/index.mjs +3 -1
  171. package/dist/presets/nitro/preset.d.mts +5 -2
  172. package/dist/presets/nitro/preset.mjs +35 -42
  173. package/dist/presets/npmpackage/preset.d.mts +5 -2
  174. package/dist/presets/npmpackage/preset.mjs +27 -32
  175. package/dist/presets/nuxt/preset.d.mts +5 -2
  176. package/dist/presets/nuxt/preset.mjs +39 -44
  177. package/dist/runtime/index.d.mts +4 -3
  178. package/dist/runtime/index.mjs +5 -3
  179. package/dist/runtime/internal/config.d.mts +11 -7
  180. package/dist/runtime/internal/config.mjs +79 -90
  181. package/dist/runtime/internal/debug.d.mts +6 -3
  182. package/dist/runtime/internal/debug.mjs +9 -4
  183. package/dist/runtime/internal/defu.d.mts +4 -1
  184. package/dist/runtime/internal/defu.mjs +7 -2
  185. package/dist/runtime/internal/index.d.mts +7 -6
  186. package/dist/runtime/internal/index.mjs +8 -20
  187. package/dist/runtime/internal/nitro.d.mts +6 -3
  188. package/dist/runtime/internal/nitro.mjs +29 -37
  189. package/dist/runtime/internal/nuxt.d.mts +12 -8
  190. package/dist/runtime/internal/nuxt.mjs +12 -7
  191. package/dist/runtime/internal/ofetch.d.mts +8 -4
  192. package/dist/runtime/internal/ofetch.mjs +33 -34
  193. package/dist/runtime/internal/plugin.d.mts +7 -3
  194. package/dist/runtime/internal/plugin.mjs +7 -3
  195. package/dist/types/cliConfig.d.mts +288 -0
  196. package/dist/types/cliConfig.mjs +0 -0
  197. package/dist/types/cliHooks.d.mts +154 -0
  198. package/dist/types/cliHooks.mjs +0 -0
  199. package/dist/types/compatibility.d.mts +13 -0
  200. package/dist/types/compatibility.mjs +0 -0
  201. package/dist/types/config.d.mts +46 -0
  202. package/dist/types/config.mjs +0 -0
  203. package/dist/types/dotenv.d.mts +29 -0
  204. package/dist/types/dotenv.mjs +0 -0
  205. package/dist/types/event.d.mts +63 -0
  206. package/dist/types/event.mjs +0 -0
  207. package/dist/types/global.d.mts +24 -0
  208. package/dist/types/global.mjs +0 -0
  209. package/dist/types/helper.d.mts +25 -0
  210. package/dist/types/helper.mjs +0 -0
  211. package/dist/types/hooks.d.mts +37 -0
  212. package/dist/types/hooks.mjs +0 -0
  213. package/dist/types/index.d.mts +26 -1306
  214. package/dist/types/index.mjs +0 -1
  215. package/dist/types/kits.d.mts +32 -0
  216. package/dist/types/kits.mjs +0 -0
  217. package/dist/types/middleware.d.mts +31 -0
  218. package/dist/types/middleware.mjs +0 -0
  219. package/dist/types/module.d.mts +102 -0
  220. package/dist/types/module.mjs +0 -0
  221. package/dist/types/preset.d.mts +20 -0
  222. package/dist/types/preset.mjs +0 -0
  223. package/dist/types/route.d.mts +59 -0
  224. package/dist/types/route.mjs +0 -0
  225. package/dist/types/runtime/index.d.mts +5 -0
  226. package/dist/types/runtime/index.mjs +0 -0
  227. package/dist/types/runtime/nuxt.d.mts +13 -0
  228. package/dist/types/runtime/nuxt.mjs +0 -0
  229. package/dist/types/runtime/ofetch.d.mts +14 -0
  230. package/dist/types/runtime/ofetch.mjs +0 -0
  231. package/dist/types/runtime/plugin.d.mts +8 -0
  232. package/dist/types/runtime/plugin.mjs +0 -0
  233. package/dist/types/runtime/silgi.d.mts +11 -0
  234. package/dist/types/runtime/silgi.mjs +0 -0
  235. package/dist/types/schema.d.mts +86 -0
  236. package/dist/types/schema.mjs +0 -0
  237. package/dist/types/service.d.mts +102 -0
  238. package/dist/types/service.mjs +0 -0
  239. package/dist/types/shared.d.mts +19 -0
  240. package/dist/types/shared.mjs +0 -0
  241. package/dist/types/silgi.d.mts +71 -0
  242. package/dist/types/silgi.mjs +0 -0
  243. package/dist/types/silgiCLI.d.mts +118 -0
  244. package/dist/types/silgiCLI.mjs +0 -0
  245. package/dist/types/standard-schema.d.mts +61 -0
  246. package/dist/types/standard-schema.mjs +0 -0
  247. package/dist/types/storage.d.mts +30 -0
  248. package/dist/types/storage.mjs +0 -0
  249. package/package.json +20 -35
  250. package/dist/_chunks/silgiApp.mjs +0 -25
  251. package/dist/cli/build.mjs +0 -2190
  252. package/dist/cli/common.mjs +0 -13
  253. package/dist/cli/compatibility.mjs +0 -30
  254. package/dist/cli/dev.mjs +0 -67
  255. package/dist/cli/init.mjs +0 -112
  256. package/dist/cli/install.mjs +0 -151
  257. package/dist/cli/loader.mjs +0 -618
  258. package/dist/cli/prepare.mjs +0 -188
  259. package/dist/cli/reset.mjs +0 -55
  260. package/dist/cli/run.mjs +0 -159
  261. package/dist/cli/types.mjs +0 -232
  262. package/dist/cli/watch.mjs +0 -91
  263. package/dist/presets/next/preset.d.mts +0 -3
  264. package/dist/presets/next/preset.mjs +0 -38
  265. package/dist/runtime/internal/next.d.mts +0 -9
  266. package/dist/runtime/internal/next.mjs +0 -22
@@ -1,618 +0,0 @@
1
- import { watchConfig, loadConfig } from 'c12';
2
- import { resolveCompatibilityDatesFromEnv, formatDate, resolveCompatibilityDates } from 'compatx';
3
- import { klona } from 'klona/full';
4
- import { isTest, isDebug } from 'std-env';
5
- import consola from 'consola';
6
- import { colors } from 'consola/utils';
7
- import { relative, join, resolve } from 'pathe';
8
- import escapeRE from 'escape-string-regexp';
9
- import { resolveModuleExportNames } from 'mlly';
10
- import { existsSync } from 'node:fs';
11
- import { findWorkspaceDir, readPackageJSON } from 'pkg-types';
12
- import { resolveSilgiPath } from 'silgi/kit';
13
- import { runtimeDir, pkgDir } from 'silgi/runtime/meta';
14
- import { withLeadingSlash, withTrailingSlash } from 'ufo';
15
-
16
- const SilgiCLIDefaults = {
17
- // General
18
- debug: isDebug === true ? true : void 0,
19
- schemaVendor: "zod",
20
- // timing: isDebug,
21
- logLevel: isTest ? 1 : 3,
22
- appConfig: {},
23
- appConfigFiles: [],
24
- commandType: "prepare",
25
- commands: [],
26
- runtimeConfig: {
27
- silgi: {}
28
- },
29
- storages: [],
30
- devServer: {
31
- watch: []
32
- },
33
- package: {
34
- name: "",
35
- present: "npm-package"
36
- },
37
- // Dirs
38
- scanDirs: [],
39
- build: {
40
- dir: ".silgi",
41
- typesDir: "{{ build.dir }}/types",
42
- templates: []
43
- },
44
- output: {
45
- dir: "{{ rootDir }}/.output",
46
- serverDir: "{{ output.dir }}/server",
47
- publicDir: "{{ output.dir }}/public"
48
- },
49
- serverDir: "{{ rootDir }}/server",
50
- clientDir: "{{ rootDir }}/client",
51
- migrationDir: "{{ rootDir }}/migration",
52
- silgi: {
53
- serverDir: "{{ serverDir }}/silgi",
54
- clientDir: "{{ clientDir }}/silgi",
55
- publicDir: "{{ silgi.serverDir }}/public",
56
- utilsDir: "{{ silgi.serverDir }}/utils",
57
- vfsDir: "{{ silgi.serverDir }}/vfs",
58
- typesDir: "{{ silgi.serverDir }}/types"
59
- },
60
- // Codegen
61
- codegen: {
62
- env: {
63
- safeList: [
64
- ["silgi", "version"]
65
- ]
66
- }
67
- },
68
- // Modules
69
- _modules: [],
70
- modules: [],
71
- future: {},
72
- storage: {},
73
- devStorage: {},
74
- stub: false,
75
- plugins: [],
76
- imports: {
77
- exclude: [],
78
- dirs: [],
79
- presets: [],
80
- virtualImports: ["#silgiImports"]
81
- },
82
- ignore: [
83
- "**/*.stories.{js,cts,mts,ts,jsx,tsx}",
84
- "**/*.{spec,test}.{js,cts,mts,ts,jsx,tsx}",
85
- "**/*.d.{cts,mts,ts}",
86
- "**/.{pnpm-store,vercel,netlify,output,git,cache,data}",
87
- ".silgi",
88
- "**/-*.*"
89
- ],
90
- // Dev
91
- dev: false,
92
- // devServer: { watch: [] },
93
- watchOptions: {
94
- ignoreInitial: true,
95
- ignored: [
96
- "**/node_modules/**",
97
- "**/.git/**",
98
- "**/.silgi/**",
99
- "**/.output/**",
100
- "**/.vscode/**",
101
- "**/.idea/**",
102
- "**/.nuxt/**",
103
- "**/.next/**",
104
- "**/.gitignore",
105
- "**/.gitattributes",
106
- "**/assets/**",
107
- "**/dist/**",
108
- "**/build/**",
109
- "**/coverage/**",
110
- "**/test/**",
111
- "**/tests/**",
112
- "**/tmp/**"
113
- ]
114
- },
115
- // Advanced
116
- typescript: {
117
- generateTsConfig: true,
118
- // generateRuntimeConfigTypes: true,
119
- tsconfigPath: ".silgi/types/silgi.tsconfig.json",
120
- tsConfig: {},
121
- customConditions: [],
122
- generateRuntimeConfigTypes: true,
123
- removeFileExtension: false
124
- },
125
- conditions: [],
126
- nodeModulesDirs: [],
127
- hooks: {},
128
- // Framework
129
- framework: {
130
- name: "h3",
131
- version: ""
132
- },
133
- extensions: [".js", ".jsx", ".mjs", ".ts", ".tsx", ".vue"],
134
- ignoreOptions: void 0,
135
- // 3. party
136
- apiFul: {},
137
- // Kit
138
- installPackages: {
139
- dependencies: {},
140
- devDependencies: {}
141
- }
142
- };
143
-
144
- const fallbackCompatibilityDate = "2025-02-04";
145
- async function resolveCompatibilityOptions(options) {
146
- options.compatibilityDate = resolveCompatibilityDatesFromEnv(
147
- options.compatibilityDate
148
- );
149
- if (!options.compatibilityDate.default) {
150
- options.compatibilityDate.default = await _resolveDefault(options);
151
- }
152
- }
153
- let _fallbackInfoShown = false;
154
- let _promptedUserToUpdate = false;
155
- async function _resolveDefault(options) {
156
- const _todayDate = formatDate(/* @__PURE__ */ new Date());
157
- const consola$1 = consola.withTag("silgi");
158
- consola$1.warn(`No valid compatibility date is specified.`);
159
- const onFallback = () => {
160
- if (!_fallbackInfoShown) {
161
- consola$1.info(
162
- [
163
- `Using \`${fallbackCompatibilityDate}\` as fallback.`,
164
- ` Please specify compatibility date to avoid unwanted behavior changes:`,
165
- ` - Add \`compatibilityDate: '${_todayDate}'\` to the config file.`,
166
- ` - Or set \`COMPATIBILITY_DATE=${_todayDate}\` environment variable.`,
167
- ``
168
- ].join("\n")
169
- );
170
- _fallbackInfoShown = true;
171
- }
172
- return fallbackCompatibilityDate;
173
- };
174
- const shallUpdate = !_promptedUserToUpdate && await consola$1.prompt(
175
- `Do you want to auto update config file to set ${colors.cyan(`compatibilityDate: '${_todayDate}'`)}?`,
176
- {
177
- type: "confirm",
178
- default: true
179
- }
180
- );
181
- _promptedUserToUpdate = true;
182
- if (!shallUpdate) {
183
- return onFallback();
184
- }
185
- const { updateConfig } = await import('c12/update');
186
- const updateResult = await updateConfig({
187
- configFile: "silgi.config",
188
- cwd: options.rootDir,
189
- async onCreate({ configFile }) {
190
- const shallCreate = await consola$1.prompt(
191
- `Do you want to initialize a new config in ${colors.cyan(relative(".", configFile))}?`,
192
- {
193
- type: "confirm",
194
- default: true
195
- }
196
- );
197
- if (shallCreate !== true) {
198
- return false;
199
- }
200
- return _getDefaultNitroConfig();
201
- },
202
- async onUpdate(config) {
203
- config.compatibilityDate = _todayDate;
204
- }
205
- }).catch((error) => {
206
- consola$1.error(`Failed to update config: ${error.message}`);
207
- return null;
208
- });
209
- if (updateResult?.configFile) {
210
- consola$1.success(
211
- `Compatibility date set to \`${_todayDate}\` in \`${relative(".", updateResult.configFile)}\``
212
- );
213
- return _todayDate;
214
- }
215
- return onFallback();
216
- }
217
- function _getDefaultNitroConfig() {
218
- return (
219
- /* js */
220
- `
221
- import { defineSilgiConfig } from 'silgi/config'
222
-
223
- export default defineSilgiConfig({})
224
- `
225
- );
226
- }
227
-
228
- async function resolveImportsOptions(options) {
229
- if (options.imports === false) {
230
- return;
231
- }
232
- options.imports.presets ??= [];
233
- options.imports.presets.push(...getSilgiImportsPreset());
234
- if (options.preset === "h3") {
235
- const h3Exports = await resolveModuleExportNames("h3", {
236
- url: import.meta.url
237
- });
238
- options.imports.presets ??= [];
239
- options.imports.presets.push({
240
- from: "h3",
241
- imports: h3Exports.filter((n) => !/^[A-Z]/.test(n) && n !== "use")
242
- });
243
- }
244
- options.imports.dirs ??= [];
245
- options.imports.dirs.push(
246
- ...options.scanDirs.map((dir) => join(dir, "utils/**/*"))
247
- );
248
- if (Array.isArray(options.imports.exclude) && options.imports.exclude.length === 0) {
249
- options.imports.exclude.push(/[/\\]\.git[/\\]/);
250
- options.imports.exclude.push(options.build.dir);
251
- const scanDirsInNodeModules = options.scanDirs.map((dir) => dir.match(/(?<=\/)node_modules\/(.+)$/)?.[1]).filter(Boolean);
252
- options.imports.exclude.push(
253
- scanDirsInNodeModules.length > 0 ? new RegExp(
254
- `node_modules\\/(?!${scanDirsInNodeModules.map((dir) => escapeRE(dir)).join("|")})`
255
- ) : /[/\\]node_modules[/\\]/
256
- );
257
- }
258
- }
259
- function getSilgiImportsPreset() {
260
- return [
261
- // TODO: buraya bizim importlarimiz gelecek.
262
- // {
263
- // from: 'silgi',
264
- // imports: [
265
- // 'createShared',
266
- // 'useSilgi',
267
- // 'createService',
268
- // 'createSchema',
269
- // 'createRouter',
270
- // ],
271
- // },
272
- // {
273
- // from: 'nitropack/runtime',
274
- // imports: ['useRuntimeConfig', 'useAppConfig'],
275
- // },
276
- // {
277
- // from: 'nitropack/runtime',
278
- // imports: ['defineNitroPlugin', 'nitroPlugin'],
279
- // },
280
- // {
281
- // from: 'nitropack/runtime/internal/cache',
282
- // imports: [
283
- // 'defineCachedFunction',
284
- // 'defineCachedEventHandler',
285
- // 'cachedFunction',
286
- // 'cachedEventHandler',
287
- // ],
288
- // },
289
- {
290
- from: "silgi",
291
- imports: ["useSilgiStorage"]
292
- }
293
- // {
294
- // from: 'nitropack/runtime/internal/renderer',
295
- // imports: ['defineRenderHandler'],
296
- // },
297
- // {
298
- // from: 'nitropack/runtime/internal/meta',
299
- // imports: ['defineRouteMeta'],
300
- // },
301
- // {
302
- // from: 'nitropack/runtime/internal/route-rules',
303
- // imports: ['getRouteRules'],
304
- // },
305
- // {
306
- // from: 'nitropack/runtime/internal/context',
307
- // imports: ['useEvent'],
308
- // },
309
- // {
310
- // from: 'nitropack/runtime/internal/task',
311
- // imports: ['defineTask', 'runTask'],
312
- // },
313
- // {
314
- // from: 'nitropack/runtime/internal/error/utils',
315
- // imports: ['defineNitroErrorHandler'],
316
- // },
317
- ];
318
- }
319
-
320
- async function resolvePathOptions(options) {
321
- options.rootDir = resolve(options.rootDir || ".");
322
- options.workspaceDir = await findWorkspaceDir(options.rootDir).catch(
323
- () => options.rootDir
324
- );
325
- options.srcDir = resolve(options.srcDir || options.rootDir);
326
- for (const key of ["srcDir"]) {
327
- options[key] = resolve(options.rootDir, options[key]);
328
- }
329
- options.build.dir = resolve(options.rootDir, options.build.dir);
330
- options.build.typesDir = resolveSilgiPath(
331
- options.build.typesDir || SilgiCLIDefaults.build.typesDir,
332
- options,
333
- options.rootDir
334
- );
335
- if (options.preset === "npm-package") {
336
- const packageJsonPath = resolve(options.rootDir, "package.json");
337
- const packageJson = await readPackageJSON(packageJsonPath);
338
- if (packageJson.name === void 0) {
339
- throw new Error("Package name is undefined");
340
- }
341
- options.alias ||= {};
342
- options.alias[packageJson.name] = join(options.rootDir, "src/module");
343
- options.alias[`${packageJson.name}/runtime`] = join(options.rootDir, "src/runtime");
344
- options.alias[`${packageJson.name}/data`] = join(options.rootDir, "src/data");
345
- options.alias[`${packageJson.name}/data/*`] = join(options.rootDir, "src/data/*");
346
- options.alias[`${packageJson.name}/runtime/*`] = join(options.rootDir, "src/runtime/*");
347
- options.alias[`${packageJson.name}/types`] = join(options.rootDir, "src/types");
348
- }
349
- if (options.stub) {
350
- options.alias = {
351
- ...options.alias,
352
- "silgi/runtime": join(runtimeDir),
353
- "silgi/runtime/*": join(runtimeDir, "*")
354
- };
355
- }
356
- options.alias = {
357
- ...options.alias,
358
- // '~/': join(options.srcDir, '/'),
359
- // '@/': join(options.srcDir, '/'),
360
- // '~~/': join(options.rootDir, '/'),
361
- // '@@/': join(options.rootDir, '/'),
362
- "#server/*": join(options.silgi.serverDir, "/*"),
363
- "#silgi/*": join(options.build.dir, "/*"),
364
- "#types/*": join(options.build.typesDir, "/*")
365
- };
366
- if (options.preset === "npm-package") {
367
- options.alias = {
368
- ...options.alias
369
- // '#silgi/app/': join(options.build.dir, '/'),
370
- };
371
- }
372
- if (options.alias && typeof options.alias === "object") {
373
- ((options.typescript.tsConfig ??= {}).compilerOptions ??= {}).paths ??= {};
374
- const paths = options.typescript.tsConfig.compilerOptions.paths;
375
- for (const [key, value] of Object.entries(options.alias)) {
376
- if (typeof paths === "object") {
377
- paths[key] = [value];
378
- }
379
- }
380
- }
381
- if (options.typescript.tsConfig.compilerOptions?.paths && typeof options.typescript.tsConfig.compilerOptions.paths === "object") {
382
- ((options.typescript.tsConfig ??= {}).compilerOptions ??= {}).paths ??= {};
383
- const paths = options.typescript.tsConfig.compilerOptions.paths;
384
- for (const [key, value] of Object.entries(options.alias)) {
385
- if (typeof paths === "object") {
386
- paths[key] = [value];
387
- }
388
- }
389
- }
390
- options.modulesDir = [resolve(options.rootDir, "node_modules")];
391
- options.output.dir = resolveSilgiPath(
392
- options.output.dir || SilgiCLIDefaults.output.dir,
393
- options,
394
- options.rootDir
395
- );
396
- options.output.publicDir = resolveSilgiPath(
397
- options.output.publicDir || SilgiCLIDefaults.output.publicDir,
398
- options,
399
- options.rootDir
400
- );
401
- options.output.serverDir = resolveSilgiPath(
402
- options.output.serverDir || SilgiCLIDefaults.output.serverDir,
403
- options,
404
- options.rootDir
405
- );
406
- options.serverDir = resolveSilgiPath(
407
- options.serverDir || SilgiCLIDefaults.serverDir,
408
- options,
409
- options.rootDir
410
- );
411
- options.clientDir = resolveSilgiPath(
412
- options.clientDir || SilgiCLIDefaults.clientDir,
413
- options,
414
- options.rootDir
415
- );
416
- options.silgi.serverDir = resolveSilgiPath(
417
- options.silgi.serverDir || SilgiCLIDefaults.silgi.serverDir,
418
- options,
419
- options.rootDir
420
- );
421
- options.silgi.clientDir = resolveSilgiPath(
422
- options.silgi.clientDir || SilgiCLIDefaults.silgi.clientDir,
423
- options,
424
- options.rootDir
425
- );
426
- options.silgi.publicDir = resolveSilgiPath(
427
- options.silgi.publicDir || SilgiCLIDefaults.silgi.publicDir,
428
- options,
429
- options.rootDir
430
- );
431
- options.silgi.utilsDir = resolveSilgiPath(
432
- options.silgi.utilsDir || SilgiCLIDefaults.silgi.utilsDir,
433
- options,
434
- options.rootDir
435
- );
436
- options.silgi.vfsDir = resolveSilgiPath(
437
- options.silgi.vfsDir || SilgiCLIDefaults.silgi.vfsDir,
438
- options,
439
- options.rootDir
440
- );
441
- options.silgi.typesDir = resolveSilgiPath(
442
- options.silgi.typesDir || SilgiCLIDefaults.silgi.typesDir,
443
- options,
444
- options.rootDir
445
- );
446
- options.nodeModulesDirs.push(resolve(options.workspaceDir, "node_modules"));
447
- options.nodeModulesDirs.push(resolve(options.rootDir, "node_modules"));
448
- options.nodeModulesDirs.push(resolve(pkgDir, "node_modules"));
449
- options.nodeModulesDirs.push(resolve(pkgDir, ".."));
450
- options.nodeModulesDirs = [
451
- ...new Set(
452
- options.nodeModulesDirs.map((dir) => resolve(options.rootDir, dir))
453
- )
454
- ];
455
- options.scanDirs.unshift(options.srcDir);
456
- options.scanDirs = options.scanDirs.map(
457
- (dir) => resolve(options.srcDir, dir)
458
- );
459
- options.scanDirs = [...new Set(options.scanDirs)];
460
- options.appConfigFiles ??= [];
461
- options.appConfigFiles = options.appConfigFiles.map((file) => _tryResolve(resolveSilgiPath(file, options))).filter(Boolean);
462
- for (const dir of options.scanDirs) {
463
- const configFile = _tryResolve("app.config", dir);
464
- if (configFile && !options.appConfigFiles.includes(configFile)) {
465
- options.appConfigFiles.push(configFile);
466
- }
467
- }
468
- options.watchOptions.ignored ??= [];
469
- options.watchOptions.ignoreInitial = true;
470
- if (Array.isArray(options.watchOptions.ignored)) {
471
- options.watchOptions.ignored.push(
472
- `!${join(options.silgi.serverDir, "config")}`,
473
- `${join(options.silgi.serverDir, "permission.ts")}`,
474
- `${join(options.silgi.serverDir, "core.ts")}`,
475
- `${join(options.silgi.serverDir, "meta.ts")}`,
476
- `${join(options.silgi.serverDir, "configs.ts")}`,
477
- `${join(options.silgi.serverDir, "vfs")}`,
478
- `${join(options.silgi.serverDir, "scan.ts")}`
479
- );
480
- }
481
- options.devServer.watch.push(
482
- join(options.serverDir, "services"),
483
- join(options.serverDir, "schemas"),
484
- join(options.serverDir, "shared"),
485
- join(options.serverDir, "utils"),
486
- join(options.serverDir, "types"),
487
- join(options.silgi.serverDir, "config"),
488
- join(options.silgi.serverDir, "modules"),
489
- join(options.rootDir, "silgi.config.ts")
490
- );
491
- }
492
- function _tryResolve(path, base = ".", extensions = ["", ".js", ".ts", ".mjs", ".cjs", ".json"]) {
493
- path = resolve(base, path);
494
- if (existsSync(path)) {
495
- return path;
496
- }
497
- for (const ext of extensions) {
498
- const p = path + ext;
499
- if (existsSync(p)) {
500
- return p;
501
- }
502
- }
503
- }
504
-
505
- async function resolveStorageOptions(options) {
506
- const fsMounts = {
507
- root: resolve(options.rootDir),
508
- src: resolve(options.srcDir),
509
- build: resolve(options.build.dir),
510
- cache: resolve(options.build.dir, "cache")
511
- };
512
- for (const p in fsMounts) {
513
- options.devStorage[p] = options.devStorage[p] || {
514
- driver: "fs",
515
- readOnly: p === "root" || p === "src",
516
- base: fsMounts[p]
517
- };
518
- }
519
- if (options.dev && options.storage.data === void 0 && options.devStorage.data === void 0) {
520
- options.devStorage.data = {
521
- driver: "fs",
522
- base: resolve(options.rootDir, ".data/kv")
523
- };
524
- }
525
- }
526
-
527
- async function resolveURLOptions(options) {
528
- options.baseURL = withLeadingSlash(withTrailingSlash(options.baseURL));
529
- }
530
-
531
- const configResolvers = [
532
- resolveCompatibilityOptions,
533
- resolvePathOptions,
534
- resolveImportsOptions,
535
- // resolveRouteRulesOptions,
536
- // resolveDatabaseOptions,
537
- // resolveFetchOptions,
538
- // resolveExportConditionsOptions,
539
- // resolveRuntimeConfigOptions,
540
- // resolveOpenAPIOptions,
541
- resolveURLOptions,
542
- // resolveAssetsOptions,
543
- resolveStorageOptions
544
- // resolveErrorOptions,
545
- ];
546
- async function loadOptions(configOverrides = {}, opts = {}) {
547
- const options = await _loadUserConfig(configOverrides, opts);
548
- for (const resolver of configResolvers) {
549
- await resolver(options);
550
- }
551
- return options;
552
- }
553
- async function _loadUserConfig(configOverrides = {}, opts = {}) {
554
- const presetOverride = configOverrides.preset || process.env.SILGI_PRESET;
555
- if (configOverrides.dev) ;
556
- configOverrides = klona(configOverrides);
557
- globalThis.defineSilgiConfig = globalThis.defineSilgiConfig || ((c) => c);
558
- let compatibilityDate = configOverrides.compatibilityDate || opts.compatibilityDate || (process.env.SILGI_COMPATIBILITY_DATE || process.env.SERVER_COMPATIBILITY_DATE || process.env.COMPATIBILITY_DATE);
559
- const { resolvePreset } = await import('silgi/presets');
560
- const loadedConfig = await (opts.watch ? watchConfig : loadConfig)({
561
- name: "silgi",
562
- cwd: configOverrides.rootDir,
563
- dotenv: configOverrides.dev,
564
- extend: { extendKey: ["extends", "preset"] },
565
- overrides: {
566
- ...configOverrides,
567
- preset: presetOverride
568
- },
569
- async defaultConfig({ configs }) {
570
- const getConf = (key) => configs.main?.[key] ?? configs.rc?.[key] ?? configs.packageJson?.[key];
571
- if (!compatibilityDate) {
572
- compatibilityDate = getConf("compatibilityDate");
573
- }
574
- return {
575
- // typescript: {
576
- // generateRuntimeConfigTypes:
577
- // !framework?.name || framework.name === 'nitro',
578
- // },
579
- preset: presetOverride || (await resolvePreset("", {
580
- static: getConf("static"),
581
- compatibilityDate: compatibilityDate || fallbackCompatibilityDate
582
- }))?._meta?.name
583
- };
584
- },
585
- defaults: SilgiCLIDefaults,
586
- jitiOptions: {
587
- alias: {
588
- "silgi/config": "silgi/config"
589
- }
590
- },
591
- async resolve(id) {
592
- const preset = await resolvePreset(id, {
593
- static: configOverrides.static,
594
- compatibilityDate: compatibilityDate || fallbackCompatibilityDate
595
- });
596
- if (preset) {
597
- return {
598
- config: klona(preset)
599
- };
600
- }
601
- },
602
- ...opts.c12
603
- });
604
- delete globalThis.defineSilgiConfig;
605
- const options = klona(loadedConfig.config);
606
- options._config = configOverrides;
607
- options._c12 = loadedConfig;
608
- const _presetName = (loadedConfig.layers || []).find((l) => l.config?._meta?.name)?.config?._meta?.name || presetOverride;
609
- options.preset = _presetName;
610
- options.package.present = _presetName;
611
- options.compatibilityDate = resolveCompatibilityDates(
612
- compatibilityDate,
613
- options.compatibilityDate
614
- );
615
- return options;
616
- }
617
-
618
- export { loadOptions as l };