@warlock.js/core 2.8.10 → 3.0.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 (232) hide show
  1. package/bin/warlock-loader.mjs +256 -0
  2. package/cjs/application.js +1 -1
  3. package/cjs/application.js.map +1 -1
  4. package/cjs/aws/get-aws-configurations.js +1 -1
  5. package/cjs/aws/get-aws-configurations.js.map +1 -1
  6. package/cjs/aws/index.d.ts.map +1 -1
  7. package/cjs/aws/index.js +73 -13
  8. package/cjs/aws/index.js.map +1 -1
  9. package/cjs/builder/app-builder.d.ts.map +1 -1
  10. package/cjs/builder/app-builder.js +12 -1
  11. package/cjs/builder/app-builder.js.map +1 -1
  12. package/cjs/builder/build-http-app.d.ts +27 -1
  13. package/cjs/builder/build-http-app.d.ts.map +1 -1
  14. package/cjs/builder/build-http-app.js +148 -7
  15. package/cjs/builder/build-http-app.js.map +1 -1
  16. package/cjs/builder/config-types-generator.d.ts +6 -0
  17. package/cjs/builder/config-types-generator.d.ts.map +1 -0
  18. package/cjs/builder/config-types-generator.js +67 -0
  19. package/cjs/builder/config-types-generator.js.map +1 -0
  20. package/cjs/code-quality/checkers/eslint-checker.d.ts +14 -0
  21. package/cjs/code-quality/checkers/eslint-checker.d.ts.map +1 -0
  22. package/cjs/code-quality/checkers/eslint-checker.js +39 -0
  23. package/cjs/code-quality/checkers/eslint-checker.js.map +1 -0
  24. package/cjs/code-quality/checkers/typescript-checker.d.ts +16 -0
  25. package/cjs/code-quality/checkers/typescript-checker.d.ts.map +1 -0
  26. package/cjs/code-quality/checkers/typescript-checker.js +76 -0
  27. package/cjs/code-quality/checkers/typescript-checker.js.map +1 -0
  28. package/cjs/code-quality/config.d.ts +29 -0
  29. package/cjs/code-quality/config.d.ts.map +1 -0
  30. package/cjs/code-quality/config.js +25 -0
  31. package/cjs/code-quality/config.js.map +1 -0
  32. package/cjs/code-quality/formatters/eslint-formatter.d.ts +12 -0
  33. package/cjs/code-quality/formatters/eslint-formatter.d.ts.map +1 -0
  34. package/cjs/code-quality/formatters/eslint-formatter.js +56 -0
  35. package/cjs/code-quality/formatters/eslint-formatter.js.map +1 -0
  36. package/cjs/code-quality/formatters/summary-formatter.d.ts +33 -0
  37. package/cjs/code-quality/formatters/summary-formatter.d.ts.map +1 -0
  38. package/cjs/code-quality/formatters/summary-formatter.js +54 -0
  39. package/cjs/code-quality/formatters/summary-formatter.js.map +1 -0
  40. package/cjs/code-quality/formatters/typescript-formatter.d.ts +9 -0
  41. package/cjs/code-quality/formatters/typescript-formatter.d.ts.map +1 -0
  42. package/cjs/code-quality/formatters/typescript-formatter.js +64 -0
  43. package/cjs/code-quality/formatters/typescript-formatter.js.map +1 -0
  44. package/cjs/code-quality/index.d.ts +16 -0
  45. package/cjs/code-quality/index.d.ts.map +1 -0
  46. package/cjs/code-quality/project-scanner.d.ts +6 -0
  47. package/cjs/code-quality/project-scanner.d.ts.map +1 -0
  48. package/cjs/code-quality/project-scanner.js +72 -0
  49. package/cjs/code-quality/project-scanner.js.map +1 -0
  50. package/cjs/code-quality/single-file-checker.d.ts +6 -0
  51. package/cjs/code-quality/single-file-checker.d.ts.map +1 -0
  52. package/cjs/code-quality/single-file-checker.js +76 -0
  53. package/cjs/code-quality/single-file-checker.js.map +1 -0
  54. package/cjs/config/index.d.ts +1 -1
  55. package/cjs/config/index.d.ts.map +1 -1
  56. package/cjs/config/typed-config.d.ts +38 -0
  57. package/cjs/config/typed-config.d.ts.map +1 -0
  58. package/cjs/config/typed-config.js +27 -0
  59. package/cjs/config/typed-config.js.map +1 -0
  60. package/cjs/console/commander.js +1 -1
  61. package/cjs/console/commander.js.map +1 -1
  62. package/cjs/http/plugins.js +8 -6
  63. package/cjs/http/plugins.js.map +1 -1
  64. package/cjs/http/request.d.ts +4 -0
  65. package/cjs/http/request.d.ts.map +1 -1
  66. package/cjs/http/request.js +16 -1
  67. package/cjs/http/request.js.map +1 -1
  68. package/cjs/http/response.d.ts.map +1 -1
  69. package/cjs/http/response.js +15 -3
  70. package/cjs/http/response.js.map +1 -1
  71. package/cjs/index.d.ts +2 -0
  72. package/cjs/index.d.ts.map +1 -1
  73. package/cjs/index.js +1 -1
  74. package/cjs/modules/uploads/controllers/get-uploaded-file-with-hash.d.ts.map +1 -1
  75. package/cjs/modules/uploads/controllers/get-uploaded-file-with-hash.js +19 -2
  76. package/cjs/modules/uploads/controllers/get-uploaded-file-with-hash.js.map +1 -1
  77. package/cjs/modules/uploads/controllers/get-uploaded-file.d.ts.map +1 -1
  78. package/cjs/modules/uploads/controllers/get-uploaded-file.js.map +1 -1
  79. package/cjs/modules/uploads/events/compress-uploaded-file.d.ts.map +1 -1
  80. package/cjs/modules/uploads/events/compress-uploaded-file.js +28 -3
  81. package/cjs/modules/uploads/events/compress-uploaded-file.js.map +1 -1
  82. package/cjs/modules/uploads/events/index.js +1 -1
  83. package/cjs/modules/uploads/events/index.js.map +1 -1
  84. package/cjs/modules/uploads/utils/get-watermark-options.js +1 -1
  85. package/cjs/modules/uploads/utils/get-watermark-options.js.map +1 -1
  86. package/cjs/output/output.js +1 -1
  87. package/cjs/output/output.js.map +1 -1
  88. package/cjs/react/vite-config.d.ts.map +1 -1
  89. package/cjs/react/vite-config.js +2 -1
  90. package/cjs/react/vite-config.js.map +1 -1
  91. package/cjs/router/router.d.ts.map +1 -1
  92. package/cjs/router/router.js +9 -1
  93. package/cjs/router/router.js.map +1 -1
  94. package/cjs/starters/http-server-starter.d.ts +5 -0
  95. package/cjs/starters/http-server-starter.d.ts.map +1 -0
  96. package/cjs/starters/http-server-starter.js +27 -0
  97. package/cjs/starters/http-server-starter.js.map +1 -0
  98. package/cjs/starters/serve-log.d.ts +8 -0
  99. package/cjs/starters/serve-log.d.ts.map +1 -0
  100. package/cjs/starters/serve-log.js +43 -0
  101. package/cjs/starters/serve-log.js.map +1 -0
  102. package/cjs/starters/start-http-server.d.ts +1 -0
  103. package/cjs/starters/start-http-server.d.ts.map +1 -1
  104. package/cjs/starters/start-http-server.js +66 -62
  105. package/cjs/starters/start-http-server.js.map +1 -1
  106. package/cjs/utils/_database-log.d.ts +3 -3
  107. package/cjs/utils/_database-log.d.ts.map +1 -1
  108. package/cjs/utils/glob.d.ts +4 -0
  109. package/cjs/utils/glob.d.ts.map +1 -0
  110. package/cjs/utils/glob.js +53 -0
  111. package/cjs/utils/glob.js.map +1 -0
  112. package/cjs/utils/internal.d.ts +1 -0
  113. package/cjs/utils/internal.d.ts.map +1 -1
  114. package/cjs/validator/validateAll.d.ts.map +1 -1
  115. package/cjs/validator/validateAll.js +1 -1
  116. package/cjs/validator/validateAll.js.map +1 -1
  117. package/esm/application.js +1 -1
  118. package/esm/application.js.map +1 -1
  119. package/esm/aws/get-aws-configurations.js +1 -1
  120. package/esm/aws/get-aws-configurations.js.map +1 -1
  121. package/esm/aws/index.d.ts.map +1 -1
  122. package/esm/aws/index.js +73 -13
  123. package/esm/aws/index.js.map +1 -1
  124. package/esm/builder/app-builder.d.ts.map +1 -1
  125. package/esm/builder/app-builder.js +12 -1
  126. package/esm/builder/app-builder.js.map +1 -1
  127. package/esm/builder/build-http-app.d.ts +27 -1
  128. package/esm/builder/build-http-app.d.ts.map +1 -1
  129. package/esm/builder/build-http-app.js +148 -7
  130. package/esm/builder/build-http-app.js.map +1 -1
  131. package/esm/builder/config-types-generator.d.ts +6 -0
  132. package/esm/builder/config-types-generator.d.ts.map +1 -0
  133. package/esm/builder/config-types-generator.js +67 -0
  134. package/esm/builder/config-types-generator.js.map +1 -0
  135. package/esm/code-quality/checkers/eslint-checker.d.ts +14 -0
  136. package/esm/code-quality/checkers/eslint-checker.d.ts.map +1 -0
  137. package/esm/code-quality/checkers/eslint-checker.js +39 -0
  138. package/esm/code-quality/checkers/eslint-checker.js.map +1 -0
  139. package/esm/code-quality/checkers/typescript-checker.d.ts +16 -0
  140. package/esm/code-quality/checkers/typescript-checker.d.ts.map +1 -0
  141. package/esm/code-quality/checkers/typescript-checker.js +76 -0
  142. package/esm/code-quality/checkers/typescript-checker.js.map +1 -0
  143. package/esm/code-quality/config.d.ts +29 -0
  144. package/esm/code-quality/config.d.ts.map +1 -0
  145. package/esm/code-quality/config.js +25 -0
  146. package/esm/code-quality/config.js.map +1 -0
  147. package/esm/code-quality/formatters/eslint-formatter.d.ts +12 -0
  148. package/esm/code-quality/formatters/eslint-formatter.d.ts.map +1 -0
  149. package/esm/code-quality/formatters/eslint-formatter.js +56 -0
  150. package/esm/code-quality/formatters/eslint-formatter.js.map +1 -0
  151. package/esm/code-quality/formatters/summary-formatter.d.ts +33 -0
  152. package/esm/code-quality/formatters/summary-formatter.d.ts.map +1 -0
  153. package/esm/code-quality/formatters/summary-formatter.js +54 -0
  154. package/esm/code-quality/formatters/summary-formatter.js.map +1 -0
  155. package/esm/code-quality/formatters/typescript-formatter.d.ts +9 -0
  156. package/esm/code-quality/formatters/typescript-formatter.d.ts.map +1 -0
  157. package/esm/code-quality/formatters/typescript-formatter.js +64 -0
  158. package/esm/code-quality/formatters/typescript-formatter.js.map +1 -0
  159. package/esm/code-quality/index.d.ts +16 -0
  160. package/esm/code-quality/index.d.ts.map +1 -0
  161. package/esm/code-quality/project-scanner.d.ts +6 -0
  162. package/esm/code-quality/project-scanner.d.ts.map +1 -0
  163. package/esm/code-quality/project-scanner.js +72 -0
  164. package/esm/code-quality/project-scanner.js.map +1 -0
  165. package/esm/code-quality/single-file-checker.d.ts +6 -0
  166. package/esm/code-quality/single-file-checker.d.ts.map +1 -0
  167. package/esm/code-quality/single-file-checker.js +76 -0
  168. package/esm/code-quality/single-file-checker.js.map +1 -0
  169. package/esm/config/index.d.ts +1 -1
  170. package/esm/config/index.d.ts.map +1 -1
  171. package/esm/config/typed-config.d.ts +38 -0
  172. package/esm/config/typed-config.d.ts.map +1 -0
  173. package/esm/config/typed-config.js +27 -0
  174. package/esm/config/typed-config.js.map +1 -0
  175. package/esm/console/commander.js +1 -1
  176. package/esm/console/commander.js.map +1 -1
  177. package/esm/http/plugins.js +8 -6
  178. package/esm/http/plugins.js.map +1 -1
  179. package/esm/http/request.d.ts +4 -0
  180. package/esm/http/request.d.ts.map +1 -1
  181. package/esm/http/request.js +17 -2
  182. package/esm/http/request.js.map +1 -1
  183. package/esm/http/response.d.ts.map +1 -1
  184. package/esm/http/response.js +15 -3
  185. package/esm/http/response.js.map +1 -1
  186. package/esm/index.d.ts +2 -0
  187. package/esm/index.d.ts.map +1 -1
  188. package/esm/index.js +1 -1
  189. package/esm/modules/uploads/controllers/get-uploaded-file-with-hash.d.ts.map +1 -1
  190. package/esm/modules/uploads/controllers/get-uploaded-file-with-hash.js +19 -2
  191. package/esm/modules/uploads/controllers/get-uploaded-file-with-hash.js.map +1 -1
  192. package/esm/modules/uploads/controllers/get-uploaded-file.d.ts.map +1 -1
  193. package/esm/modules/uploads/controllers/get-uploaded-file.js.map +1 -1
  194. package/esm/modules/uploads/events/compress-uploaded-file.d.ts.map +1 -1
  195. package/esm/modules/uploads/events/compress-uploaded-file.js +28 -3
  196. package/esm/modules/uploads/events/compress-uploaded-file.js.map +1 -1
  197. package/esm/modules/uploads/events/index.js +1 -1
  198. package/esm/modules/uploads/events/index.js.map +1 -1
  199. package/esm/modules/uploads/utils/get-watermark-options.js +1 -1
  200. package/esm/modules/uploads/utils/get-watermark-options.js.map +1 -1
  201. package/esm/output/output.js +1 -1
  202. package/esm/output/output.js.map +1 -1
  203. package/esm/react/vite-config.d.ts.map +1 -1
  204. package/esm/react/vite-config.js +2 -1
  205. package/esm/react/vite-config.js.map +1 -1
  206. package/esm/router/router.d.ts.map +1 -1
  207. package/esm/router/router.js +9 -1
  208. package/esm/router/router.js.map +1 -1
  209. package/esm/starters/http-server-starter.d.ts +5 -0
  210. package/esm/starters/http-server-starter.d.ts.map +1 -0
  211. package/esm/starters/http-server-starter.js +27 -0
  212. package/esm/starters/http-server-starter.js.map +1 -0
  213. package/esm/starters/serve-log.d.ts +8 -0
  214. package/esm/starters/serve-log.d.ts.map +1 -0
  215. package/esm/starters/serve-log.js +43 -0
  216. package/esm/starters/serve-log.js.map +1 -0
  217. package/esm/starters/start-http-server.d.ts +1 -0
  218. package/esm/starters/start-http-server.d.ts.map +1 -1
  219. package/esm/starters/start-http-server.js +66 -62
  220. package/esm/starters/start-http-server.js.map +1 -1
  221. package/esm/utils/_database-log.d.ts +3 -3
  222. package/esm/utils/_database-log.d.ts.map +1 -1
  223. package/esm/utils/glob.d.ts +4 -0
  224. package/esm/utils/glob.d.ts.map +1 -0
  225. package/esm/utils/glob.js +53 -0
  226. package/esm/utils/glob.js.map +1 -0
  227. package/esm/utils/internal.d.ts +1 -0
  228. package/esm/utils/internal.d.ts.map +1 -1
  229. package/esm/validator/validateAll.d.ts.map +1 -1
  230. package/esm/validator/validateAll.js +1 -1
  231. package/esm/validator/validateAll.js.map +1 -1
  232. package/package.json +3 -3
@@ -1,5 +1,111 @@
1
- 'use strict';var fs=require('@mongez/fs'),paths=require('../utils/paths.js'),appBuilder=require('./app-builder.js'),configLoaderBuilder=require('./config-loader-builder.js');// Order matters: bootstrap and environment must be first
1
+ 'use strict';var fs=require('@mongez/fs'),path=require('path'),serveLog=require('../starters/serve-log.js'),glob=require('../utils/glob.js'),paths=require('../utils/paths.js'),appBuilder=require('./app-builder.js'),configLoaderBuilder=require('./config-loader-builder.js'),configTypesGenerator=require('./config-types-generator.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var path__default=/*#__PURE__*/_interopDefault(path);const mainfestFilePath = paths.warlockPath("manifest.json");
2
+ const cacheBundlePath = paths.warlockPath(".cache/cache-bundle.json");
3
+ async function createManifestFile() {
4
+ if (await fs.fileExistsAsync(mainfestFilePath)) {
5
+ return await buildMainfestFile();
6
+ }
7
+ // no need to await the build as we will just update the contents of the file
8
+ buildMainfestFile();
9
+ }
10
+ async function buildMainfestFile() {
11
+ // get all files within the src directory
12
+ const [allFiles, aliases] = await Promise.all([
13
+ glob.globFiles(paths.srcPath(), { extensions: [".ts", ".tsx"] }),
14
+ loadAliases(),
15
+ ]);
16
+ // now normalize the paths and remove the root directory from it and replace any \ with /
17
+ const normalizedPaths = allFiles.map(filePath => {
18
+ // do initial code quality check
19
+ const importPath = filePath
20
+ .replace(paths.srcPath(), "")
21
+ .replace(/\\/g, "/")
22
+ .replace(/^\//, "")
23
+ // remove the .ts or .tsx extension
24
+ .replace(/\.tsx?$/, "");
25
+ const fullPath = filePath
26
+ .replace(paths.srcPath(), "")
27
+ .replace(/\\/g, "/")
28
+ .replace(/^\//, "");
29
+ return {
30
+ import: importPath,
31
+ path: fullPath,
32
+ fullPath: filePath.replace(/\\/g, "/"),
33
+ };
34
+ });
35
+ // Create a lookup map for efficient path resolution
36
+ const importLookup = {};
37
+ const directoryIndexLookup = {};
38
+ for (const file of normalizedPaths) {
39
+ // Direct import lookup (e.g., "app/main" -> "app/main.ts")
40
+ importLookup[file.import] = {
41
+ path: file.path,
42
+ fullPath: file.fullPath,
43
+ };
44
+ // Directory index lookup (e.g., "app" -> "app/index.ts")
45
+ if (file.import.endsWith("/index")) {
46
+ const dirPath = file.import.replace(/\/index$/, "");
47
+ directoryIndexLookup[dirPath] = {
48
+ path: file.path,
49
+ fullPath: file.fullPath,
50
+ };
51
+ }
52
+ }
53
+ // now create the manifest file
54
+ const manifest = {
55
+ files: normalizedPaths,
56
+ aliases,
57
+ importLookup,
58
+ directoryIndexLookup,
59
+ };
60
+ await fs.putFileAsync(mainfestFilePath, JSON.stringify(manifest, null, 2));
61
+ return manifest;
62
+ }
63
+ /**
64
+ * Normalize Windows paths into forward slashes (for URL consistency)
65
+ */
66
+ function normalizePath(p) {
67
+ return p.replace(/\\/g, "/");
68
+ }
69
+ let aliases = {};
70
+ /**
71
+ * Parse tsconfig.json and update alias map.
72
+ */
73
+ async function loadAliases(force = false) {
74
+ if (!force && Object.keys(aliases).length) {
75
+ return aliases;
76
+ }
77
+ try {
78
+ const tsconfigRaw = await fs.getJsonFileAsync(paths.rootPath("tsconfig.json"));
79
+ const paths$1 = tsconfigRaw.compilerOptions?.paths ?? {};
80
+ const baseUrl = tsconfigRaw.compilerOptions?.baseUrl ?? ".";
81
+ const root = path__default.default.resolve(process.cwd(), baseUrl);
82
+ const resolved = {};
83
+ for (const [alias, targets] of Object.entries(paths$1)) {
84
+ const cleanKey = alias.replace(/\*$/, "");
85
+ const cleanTarget = (targets?.[0] ?? "").replace(/\*$/, "");
86
+ resolved[cleanKey] = {
87
+ path: normalizePath(path__default.default
88
+ .resolve(root, cleanTarget)
89
+ .replace(paths.srcPath(), "")
90
+ .replace(/\\/g, "/")
91
+ .replace(/^\//, "")),
92
+ type: cleanTarget.endsWith(".tsx") || cleanTarget.endsWith(".ts")
93
+ ? "file"
94
+ : "folder",
95
+ };
96
+ }
97
+ aliases = resolved;
98
+ }
99
+ catch (err) {
100
+ console.warn("⚠️ Warlock loader: could not parse tsconfig.json — using empty aliases.");
101
+ aliases = {};
102
+ }
103
+ return aliases;
104
+ }
105
+ // Order matters: bootstrap and environment must be first
2
106
  const moduleBuilders = {
107
+ mainfest: createManifestFile,
108
+ configTypes: configTypesGenerator.generateConfigTypes,
3
109
  bootstrap: appBuilder.createBootstrapFile,
4
110
  environment: appBuilder.createEnvironmentModeDisplayFile,
5
111
  config: configLoaderBuilder.createConfigLoader,
@@ -9,17 +115,50 @@ const moduleBuilders = {
9
115
  routes: appBuilder.loadRoutesFiles,
10
116
  starter: createHttpApplicationStarter,
11
117
  };
118
+ const log = serveLog.httpLog;
119
+ /**
120
+ * Build consolidated cache bundle for faster startup
121
+ */
122
+ async function buildCacheBundle() {
123
+ log.info("cache", "bundle", "Building consolidated cache bundle...");
124
+ const cacheDir = paths.warlockPath(".cache");
125
+ const cacheFiles = await glob.globFiles(cacheDir, {
126
+ extensions: [".ts", ".tsx", ".js"],
127
+ });
128
+ const bundle = {};
129
+ let filesProcessed = 0;
130
+ for (const filePath of cacheFiles) {
131
+ // Skip the bundle file itself
132
+ if (filePath.includes("cache-bundle.json"))
133
+ continue;
134
+ const fileName = path__default.default.basename(filePath);
135
+ const content = await fs.getFileAsync(filePath);
136
+ bundle[fileName] = content;
137
+ filesProcessed++;
138
+ }
139
+ await fs.putFileAsync(cacheBundlePath, JSON.stringify(bundle));
140
+ log.success("cache", "bundle", `Bundle created with ${filesProcessed} files`);
141
+ return bundle;
142
+ }
12
143
  async function buildHttpApp() {
13
- await fs.ensureDirectoryAsync(paths.warlockPath());
14
- // First, build all modules and save their outputs
15
- for (const [name, builder] of Object.entries(moduleBuilders)) {
144
+ await fs.ensureDirectoryAsync(paths.warlockPath(".cache"));
145
+ // Build all modules in parallel since they're written to separate files
146
+ const buildPromises = Object.entries(moduleBuilders).map(async ([name, builder]) => {
16
147
  try {
17
148
  await builder();
18
149
  }
19
150
  catch (error) {
20
- console.error(`Failed to build module ${name}:`, error);
151
+ log.error("app", name, "failed to build module" +
152
+ (error instanceof Error ? error.message : String(error)));
21
153
  throw error;
22
154
  }
155
+ });
156
+ await Promise.all(buildPromises);
157
+ // Build cache bundle after all modules are built
158
+ // await buildCacheBundle();
159
+ const mainEntry = paths.warlockPath("http.ts");
160
+ if (await fs.fileExistsAsync(mainEntry)) {
161
+ return mainEntry;
23
162
  }
24
163
  // Create the main entry point that imports all modules in order
25
164
  const mainEntryContent = `
@@ -38,14 +177,16 @@ import "./routes";
38
177
 
39
178
  // Start the application
40
179
  import "./start-http-application";`;
41
- const mainEntry = paths.warlockPath("http.ts");
42
180
  await fs.putFileAsync(mainEntry, mainEntryContent);
43
181
  return mainEntry;
44
182
  }
45
183
  async function createHttpApplicationStarter() {
184
+ if (await fs.fileExistsAsync(paths.warlockPath("start-http-application.ts"))) {
185
+ return "import './start-http-application'";
186
+ }
46
187
  const { addImport, addContent, saveAs } = appBuilder.createAppBuilder();
47
188
  addImport(`import { startHttpApplication } from "@warlock.js/core"`);
48
189
  addContent(`startHttpApplication();`);
49
190
  await saveAs("start-http-application");
50
191
  return `import "./start-http-application"`;
51
- }exports.buildHttpApp=buildHttpApp;exports.createHttpApplicationStarter=createHttpApplicationStarter;exports.moduleBuilders=moduleBuilders;//# sourceMappingURL=build-http-app.js.map
192
+ }exports.buildCacheBundle=buildCacheBundle;exports.buildHttpApp=buildHttpApp;exports.createHttpApplicationStarter=createHttpApplicationStarter;exports.createManifestFile=createManifestFile;exports.moduleBuilders=moduleBuilders;//# sourceMappingURL=build-http-app.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-http-app.js","sources":["../../src/builder/build-http-app.ts"],"sourcesContent":[null],"names":["createBootstrapFile","createEnvironmentModeDisplayFile","createConfigLoader","loadMainFiles","loadLocalesFiles","loadEventFiles","loadRoutesFiles","ensureDirectoryAsync","warlockPath","putFileAsync","createAppBuilder"],"mappings":"8KAaA;AACa,MAAA,cAAc,GAAG;AAC5B,IAAA,SAAS,EAAEA,8BAAmB;AAC9B,IAAA,WAAW,EAAEC,2CAAgC;AAC7C,IAAA,MAAM,EAAEC,sCAAkB;AAC1B,IAAA,IAAI,EAAEC,wBAAa;AACnB,IAAA,OAAO,EAAEC,2BAAgB;AACzB,IAAA,MAAM,EAAEC,yBAAc;AACtB,IAAA,MAAM,EAAEC,0BAAe;AACvB,IAAA,OAAO,EAAE,4BAA4B;EACrC;AAEK,eAAe,YAAY,GAAA;AAChC,IAAA,MAAMC,uBAAoB,CAACC,iBAAW,EAAE,CAAC,CAAC;;AAG1C,IAAA,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;QAC5D,IAAI;YACF,MAAM,OAAO,EAAE,CAAC;AACjB,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;YACd,OAAO,CAAC,KAAK,CAAC,CAAA,uBAAA,EAA0B,IAAI,CAAG,CAAA,CAAA,EAAE,KAAK,CAAC,CAAC;AACxD,YAAA,MAAM,KAAK,CAAC;AACb,SAAA;AACF,KAAA;;AAGD,IAAA,MAAM,gBAAgB,GAAG,CAAA;;;;;;;;;;;;;;;mCAeQ,CAAC;AAElC,IAAA,MAAM,SAAS,GAAGA,iBAAW,CAAC,SAAS,CAAC,CAAC;AACzC,IAAA,MAAMC,eAAY,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAEhD,IAAA,OAAO,SAAS,CAAC;AACnB,CAAC;AAEM,eAAe,4BAA4B,GAAA;IAChD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,GAAGC,2BAAgB,EAAE,CAAC;IAE7D,SAAS,CAAC,CAAyD,uDAAA,CAAA,CAAC,CAAC;IAErE,UAAU,CAAC,CAAyB,uBAAA,CAAA,CAAC,CAAC;AAEtC,IAAA,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAEvC,IAAA,OAAO,mCAAmC,CAAC;AAC7C"}
1
+ {"version":3,"file":"build-http-app.js","sources":["../../src/builder/build-http-app.ts"],"sourcesContent":[null],"names":["warlockPath","fileExistsAsync","globFiles","srcPath","putFileAsync","getJsonFileAsync","rootPath","paths","path","generateConfigTypes","createBootstrapFile","createEnvironmentModeDisplayFile","createConfigLoader","loadMainFiles","loadLocalesFiles","loadEventFiles","loadRoutesFiles","httpLog","getFileAsync","ensureDirectoryAsync","createAppBuilder"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generate TypeScript types for config keys using module augmentation
3
+ * This enables autocomplete and type safety for config.get()
4
+ */
5
+ export declare function generateConfigTypes(): Promise<string[]>;
6
+ //# sourceMappingURL=config-types-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-types-generator.d.ts","sourceRoot":"","sources":["../../src/builder/config-types-generator.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAsB,mBAAmB,sBAwExC"}
@@ -0,0 +1,67 @@
1
+ 'use strict';var fs=require('@mongez/fs'),path=require('path'),glob=require('../utils/glob.js'),paths=require('../utils/paths.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var path__default=/*#__PURE__*/_interopDefault(path);/**
2
+ * Generate TypeScript types for config keys using module augmentation
3
+ * This enables autocomplete and type safety for config.get()
4
+ */
5
+ async function generateConfigTypes() {
6
+ try {
7
+ // Find all config files in src/config/
8
+ const configDir = paths.rootPath("src/config");
9
+ const configFiles = await glob.globFiles(configDir, {
10
+ extensions: [".ts", ".tsx", ".js"],
11
+ });
12
+ // Extract config keys from file names
13
+ const configKeys = configFiles
14
+ .map(filePath => {
15
+ const fileName = path__default.default.basename(filePath);
16
+ // Remove extension (.ts, .tsx, .js)
17
+ return fileName.replace(/\.(ts|tsx|js)$/, "");
18
+ })
19
+ .filter(key => key !== "index") // Skip index files
20
+ .sort(); // Alphabetical order for consistency
21
+ // Generate module augmentation file
22
+ const typeDefinition = `/**
23
+ * Auto-generated config types via Module Augmentation
24
+ * DO NOT EDIT MANUALLY - This file is regenerated on every build
25
+ *
26
+ * Add new config files to src/config/ and they will be automatically detected
27
+ *
28
+ * For deep type inference, augment ConfigTypeMap:
29
+ *
30
+ * declare module "@warlock.js/core" {
31
+ * interface ConfigTypeMap {
32
+ * database: import("@warlock.js/cascade").DatabaseConfigurations;
33
+ * app: import("@warlock.js/core").AppConfigurations;
34
+ * }
35
+ * }
36
+ */
37
+
38
+ declare module "@warlock.js/core" {
39
+ /**
40
+ * Project-specific config keys (autocomplete in config.get())
41
+ */
42
+ export type ConfigKeys = ${configKeys.map(key => `"${key}"`).join(" | ")};
43
+
44
+ /**
45
+ * Augment this interface to add return types for config.get()
46
+ *
47
+ * Example:
48
+ * interface ConfigTypeMap {
49
+ * database: import("@warlock.js/cascade").DatabaseConfigurations;
50
+ * }
51
+ */
52
+ // interface ConfigTypeMap {} // Uncomment and add your types here
53
+ }
54
+ `;
55
+ // Ensure .warlock directory exists
56
+ await fs.ensureDirectoryAsync(paths.warlockPath());
57
+ // Write type augmentation file
58
+ const outputPath = paths.warlockPath("config-augmentation.d.ts");
59
+ await fs.putFileAsync(outputPath, typeDefinition);
60
+ console.log(`✓ Generated config types for ${configKeys.length} configurations: ${configKeys.join(", ")}`);
61
+ return configKeys;
62
+ }
63
+ catch (error) {
64
+ console.warn("⚠️ Failed to generate config types:", error instanceof Error ? error.message : String(error));
65
+ return [];
66
+ }
67
+ }exports.generateConfigTypes=generateConfigTypes;//# sourceMappingURL=config-types-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-types-generator.js","sources":["../../src/builder/config-types-generator.ts"],"sourcesContent":[null],"names":["rootPath","globFiles","path","ensureDirectoryAsync","warlockPath","putFileAsync"],"mappings":"yPAKA;;;AAGG;AACI,eAAe,mBAAmB,GAAA;IACvC,IAAI;;AAEF,QAAA,MAAM,SAAS,GAAGA,cAAQ,CAAC,YAAY,CAAC,CAAC;AACzC,QAAA,MAAM,WAAW,GAAG,MAAMC,cAAS,CAAC,SAAS,EAAE;AAC7C,YAAA,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;AACnC,SAAA,CAAC,CAAC;;QAGH,MAAM,UAAU,GAAG,WAAW;aAC3B,GAAG,CAAC,QAAQ,IAAG;YACd,MAAM,QAAQ,GAAGC,qBAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;;YAEzC,OAAO,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;AAChD,SAAC,CAAC;aACD,MAAM,CAAC,GAAG,IAAI,GAAG,KAAK,OAAO,CAAC;aAC9B,IAAI,EAAE,CAAC;;AAGV,QAAA,MAAM,cAAc,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;AAoBE,2BAAA,EAAA,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAI,CAAA,EAAA,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;;;;;;;;;;;CAYzE,CAAC;;AAGE,QAAA,MAAMC,uBAAoB,CAACC,iBAAW,EAAE,CAAC,CAAC;;AAG1C,QAAA,MAAM,UAAU,GAAGA,iBAAW,CAAC,0BAA0B,CAAC,CAAC;AAC3D,QAAA,MAAMC,eAAY,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAE/C,QAAA,OAAO,CAAC,GAAG,CACT,CAAgC,6BAAA,EAAA,UAAU,CAAC,MAAM,CAAA,iBAAA,EAAoB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE,CAC7F,CAAC;AAEF,QAAA,OAAO,UAAU,CAAC;AACnB,KAAA;AAAC,IAAA,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,CACV,qCAAqC,EACrC,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;AACF,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;AACH"}
@@ -0,0 +1,14 @@
1
+ export type ESLintResult = {
2
+ tool: "ESLint";
3
+ filePath: string;
4
+ results: any;
5
+ };
6
+ /**
7
+ * Check a single file for ESLint errors
8
+ */
9
+ export declare function checkSingleFile(filePath: string): Promise<ESLintResult | null>;
10
+ /**
11
+ * Check entire project for ESLint errors
12
+ */
13
+ export declare function checkProject(projectPath: string): Promise<ESLintResult[]>;
14
+ //# sourceMappingURL=eslint-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint-checker.d.ts","sourceRoot":"","sources":["../../../src/code-quality/checkers/eslint-checker.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC;CACd,CAAC;AAEF;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAa9B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC,CAoBzB"}
@@ -0,0 +1,39 @@
1
+ 'use strict';var eslint=require('eslint');// eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
+ // @ts-ignore - ESLint types not available
3
+ /**
4
+ * Check a single file for ESLint errors
5
+ */
6
+ async function checkSingleFile(filePath) {
7
+ try {
8
+ const eslint$1 = new eslint.ESLint();
9
+ const results = await eslint$1.lintFiles([filePath]);
10
+ return {
11
+ tool: "ESLint",
12
+ filePath,
13
+ results: results[0],
14
+ };
15
+ }
16
+ catch (error) {
17
+ return null;
18
+ }
19
+ }
20
+ /**
21
+ * Check entire project for ESLint errors
22
+ */
23
+ async function checkProject(projectPath) {
24
+ try {
25
+ const eslint$1 = new eslint.ESLint();
26
+ // ESLint will automatically use .eslintrc and scan the directory
27
+ const results = await eslint$1.lintFiles([`${projectPath}/**/*.{ts,tsx}`]);
28
+ // Filter out files with no issues for cleaner results
29
+ const resultsWithIssues = results.filter((result) => result.errorCount > 0 || result.warningCount > 0);
30
+ return resultsWithIssues.map((result) => ({
31
+ tool: "ESLint",
32
+ filePath: result.filePath.replace(/\\/g, "/"),
33
+ results: result,
34
+ }));
35
+ }
36
+ catch (error) {
37
+ return [];
38
+ }
39
+ }exports.checkProject=checkProject;exports.checkSingleFile=checkSingleFile;//# sourceMappingURL=eslint-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint-checker.js","sources":["../../../src/code-quality/checkers/eslint-checker.ts"],"sourcesContent":[null],"names":["eslint","ESLint"],"mappings":"0CAAA;AACA;AASA;;AAEG;AACI,eAAe,eAAe,CACnC,QAAgB,EAAA;IAEhB,IAAI;AACF,QAAA,MAAMA,QAAM,GAAG,IAAIC,aAAM,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAMD,QAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEnD,OAAO;AACL,YAAA,IAAI,EAAE,QAAQ;YACd,QAAQ;AACR,YAAA,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;SACpB,CAAC;AACH,KAAA;AAAC,IAAA,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,IAAI,CAAC;AACb,KAAA;AACH,CAAC;AAED;;AAEG;AACI,eAAe,YAAY,CAChC,WAAmB,EAAA;IAEnB,IAAI;AACF,QAAA,MAAMA,QAAM,GAAG,IAAIC,aAAM,EAAE,CAAC;;AAG5B,QAAA,MAAM,OAAO,GAAG,MAAMD,QAAM,CAAC,SAAS,CAAC,CAAC,CAAG,EAAA,WAAW,CAAgB,cAAA,CAAA,CAAC,CAAC,CAAC;;QAGzE,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CACtC,CAAC,MAAW,KAAK,MAAM,CAAC,UAAU,GAAG,CAAC,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,CAClE,CAAC;QAEF,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAW,MAAM;AAC7C,YAAA,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AAC7C,YAAA,OAAO,EAAE,MAAM;AAChB,SAAA,CAAC,CAAC,CAAC;AACL,KAAA;AAAC,IAAA,OAAO,KAAK,EAAE;AACd,QAAA,OAAO,EAAE,CAAC;AACX,KAAA;AACH"}
@@ -0,0 +1,16 @@
1
+ import ts from "typescript";
2
+ export type TypeScriptResult = {
3
+ tool: "TypeScript";
4
+ filePath: string;
5
+ diagnostics: ts.Diagnostic[];
6
+ sourceFile: ts.SourceFile;
7
+ };
8
+ /**
9
+ * Check a single file for TypeScript errors
10
+ */
11
+ export declare function checkSingleFile(filePath: string): Promise<TypeScriptResult | null>;
12
+ /**
13
+ * Check entire project for TypeScript errors
14
+ */
15
+ export declare function checkProject(projectPath: string): Promise<TypeScriptResult[]>;
16
+ //# sourceMappingURL=typescript-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-checker.d.ts","sourceRoot":"","sources":["../../../src/code-quality/checkers/typescript-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC;IAC7B,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAwClC;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA4D7B"}
@@ -0,0 +1,76 @@
1
+ 'use strict';var ts=require('typescript');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ts__default=/*#__PURE__*/_interopDefault(ts);/**
2
+ * Check a single file for TypeScript errors
3
+ */
4
+ async function checkSingleFile(filePath) {
5
+ try {
6
+ const configPath = ts__default.default.findConfigFile(process.cwd(), ts__default.default.sys.fileExists, "tsconfig.json");
7
+ if (!configPath) {
8
+ return null;
9
+ }
10
+ const configFile = ts__default.default.readConfigFile(configPath, ts__default.default.sys.readFile);
11
+ const parsedConfig = ts__default.default.parseJsonConfigFileContent(configFile.config, ts__default.default.sys, process.cwd());
12
+ const program = ts__default.default.createProgram([filePath], parsedConfig.options);
13
+ const sourceFile = program.getSourceFile(filePath);
14
+ if (!sourceFile) {
15
+ return null;
16
+ }
17
+ const diagnostics = [
18
+ ...program.getSyntacticDiagnostics(sourceFile),
19
+ ...program.getSemanticDiagnostics(sourceFile),
20
+ ];
21
+ return {
22
+ tool: "TypeScript",
23
+ filePath: filePath.replace(/\\/g, "/"),
24
+ diagnostics,
25
+ sourceFile,
26
+ };
27
+ }
28
+ catch (error) {
29
+ return null;
30
+ }
31
+ }
32
+ /**
33
+ * Check entire project for TypeScript errors
34
+ */
35
+ async function checkProject(projectPath) {
36
+ try {
37
+ const configPath = ts__default.default.findConfigFile(projectPath, ts__default.default.sys.fileExists, "tsconfig.json");
38
+ if (!configPath) {
39
+ return [];
40
+ }
41
+ const configFile = ts__default.default.readConfigFile(configPath, ts__default.default.sys.readFile);
42
+ const parsedConfig = ts__default.default.parseJsonConfigFileContent(configFile.config, ts__default.default.sys, projectPath);
43
+ // Create program with entire project
44
+ const program = ts__default.default.createProgram(parsedConfig.fileNames, parsedConfig.options);
45
+ // Get all diagnostics for all files
46
+ const allDiagnostics = ts__default.default.getPreEmitDiagnostics(program);
47
+ // Group diagnostics by file
48
+ const diagnosticsByFile = new Map();
49
+ for (const diagnostic of allDiagnostics) {
50
+ if (diagnostic.file) {
51
+ const fileName = diagnostic.file.fileName;
52
+ if (!diagnosticsByFile.has(fileName)) {
53
+ diagnosticsByFile.set(fileName, []);
54
+ }
55
+ diagnosticsByFile.get(fileName).push(diagnostic);
56
+ }
57
+ }
58
+ // Convert to results array
59
+ const results = [];
60
+ for (const [fileName, diagnostics] of diagnosticsByFile) {
61
+ const sourceFile = program.getSourceFile(fileName);
62
+ if (sourceFile) {
63
+ results.push({
64
+ tool: "TypeScript",
65
+ filePath: fileName,
66
+ diagnostics,
67
+ sourceFile,
68
+ });
69
+ }
70
+ }
71
+ return results;
72
+ }
73
+ catch (error) {
74
+ return [];
75
+ }
76
+ }exports.checkProject=checkProject;exports.checkSingleFile=checkSingleFile;//# sourceMappingURL=typescript-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript-checker.js","sources":["../../../src/code-quality/checkers/typescript-checker.ts"],"sourcesContent":[null],"names":["ts"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Display strategies for code quality results
3
+ */
4
+ export type DisplayStrategy = "sequential" | "combined" | "typescript-only" | "eslint-only" | "silent";
5
+ /**
6
+ * Configuration for code quality checks
7
+ */
8
+ export type CodeQualityConfig = {
9
+ displayStrategy: DisplayStrategy;
10
+ showSuccessMessages: boolean;
11
+ showWarnings: boolean;
12
+ showErrors: boolean;
13
+ showCodeSnippets: boolean;
14
+ contextLines: number;
15
+ enableInitialScan: boolean;
16
+ };
17
+ /**
18
+ * Configure the code quality checker
19
+ */
20
+ export declare function configure(newConfig: Partial<CodeQualityConfig>): void;
21
+ /**
22
+ * Get current configuration
23
+ */
24
+ export declare function getConfig(): CodeQualityConfig;
25
+ /**
26
+ * Reset configuration to defaults
27
+ */
28
+ export declare function resetConfig(): void;
29
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/code-quality/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,YAAY,GACZ,UAAU,GACV,iBAAiB,GACjB,aAAa,GACb,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAiBF;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAE9D;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,iBAAiB,CAE7C;AAED;;GAEG;AACH,wBAAgB,WAAW,SAE1B"}
@@ -0,0 +1,25 @@
1
+ 'use strict';/**
2
+ * Default configuration
3
+ */
4
+ const defaultConfig = {
5
+ displayStrategy: "sequential",
6
+ showSuccessMessages: true,
7
+ showWarnings: true,
8
+ showErrors: true,
9
+ showCodeSnippets: true,
10
+ contextLines: 2,
11
+ enableInitialScan: true,
12
+ };
13
+ let config = { ...defaultConfig };
14
+ /**
15
+ * Configure the code quality checker
16
+ */
17
+ function configure(newConfig) {
18
+ config = { ...config, ...newConfig };
19
+ }
20
+ /**
21
+ * Get current configuration
22
+ */
23
+ function getConfig() {
24
+ return { ...config };
25
+ }exports.configure=configure;exports.getConfig=getConfig;//# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sources":["../../src/code-quality/config.ts"],"sourcesContent":[null],"names":[],"mappings":"aAuBA;;AAEG;AACH,MAAM,aAAa,GAAsB;AACvC,IAAA,eAAe,EAAE,YAAY;AAC7B,IAAA,mBAAmB,EAAE,IAAI;AACzB,IAAA,YAAY,EAAE,IAAI;AAClB,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,gBAAgB,EAAE,IAAI;AACtB,IAAA,YAAY,EAAE,CAAC;AACf,IAAA,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,IAAI,MAAM,GAAsB,EAAE,GAAG,aAAa,EAAE,CAAC;AAErD;;AAEG;AACG,SAAU,SAAS,CAAC,SAAqC,EAAA;IAC7D,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;AACvC,CAAC;AAED;;AAEG;SACa,SAAS,GAAA;AACvB,IAAA,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC;AACvB"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Display ESLint errors for a single file
3
+ */
4
+ export declare function displayErrors(result: {
5
+ filePath: string;
6
+ results: any;
7
+ }): void;
8
+ /**
9
+ * Display compact file list (for project scan)
10
+ */
11
+ export declare function displayCompactSummary(results: any, filePath: string): void;
12
+ //# sourceMappingURL=eslint-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint-formatter.d.ts","sourceRoot":"","sources":["../../../src/code-quality/formatters/eslint-formatter.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,QA0FvE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,QAsBnE"}
@@ -0,0 +1,56 @@
1
+ 'use strict';var copper=require('@mongez/copper'),path=require('path'),config=require('../config.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var path__default=/*#__PURE__*/_interopDefault(path);/**
2
+ * Display ESLint errors for a single file
3
+ */
4
+ function displayErrors(result) {
5
+ const config$1 = config.getConfig();
6
+ const { results, filePath } = result;
7
+ const fileName = path__default.default.relative(process.cwd(), filePath).replace(/\\/g, "/");
8
+ if (results.errorCount === 0 && results.warningCount === 0) {
9
+ if (config$1.showSuccessMessages) {
10
+ console.log(copper.colors.green(`\n✓ ${copper.colors.bold("ESLint")} ${copper.colors.dim("→")} ${copper.colors.greenBright("No issues")} ${copper.colors.dim(`in ${path__default.default.basename(filePath)}`)}`));
11
+ }
12
+ return;
13
+ }
14
+ for (const message of results.messages) {
15
+ const isError = message.severity === 2;
16
+ const isWarning = message.severity === 1;
17
+ if (isError && !config$1.showErrors)
18
+ continue;
19
+ if (isWarning && !config$1.showWarnings)
20
+ continue;
21
+ const level = isError ? "ERROR" : "WARNING";
22
+ const levelColor = isError ? copper.colors.redBright : copper.colors.yellowBright;
23
+ const icon = isError ? "✖" : "⚠";
24
+ console.log(`\n${levelColor(icon)} ${levelColor(copper.colors.bold(level))} ${copper.colors.dim("in")} ${copper.colors.cyanBright(fileName)}${copper.colors.dim(`(${message.line},${message.column})`)}`);
25
+ console.log(` ${copper.colors.magentaBright(message.ruleId || "eslint")} ${copper.colors.dim("→")} ${message.message}`);
26
+ if (config$1.showCodeSnippets && results.source) {
27
+ const lines = results.source.split("\n");
28
+ const line = message.line - 1;
29
+ const startLine = Math.max(0, line - config$1.contextLines);
30
+ const endLine = Math.min(lines.length - 1, line + config$1.contextLines);
31
+ for (let i = startLine; i <= endLine; i++) {
32
+ const lineNum = (i + 1).toString().padStart(4, " ");
33
+ const isErrorLine = i === line;
34
+ const prefix = isErrorLine ? levelColor(">") : " ";
35
+ if (isErrorLine) {
36
+ console.log(`${prefix} ${copper.colors.dim(lineNum)} ${copper.colors.dim("│")} ${levelColor(lines[i])}`);
37
+ const padding = " ".repeat((message.column || 1) + lineNum.length + 3);
38
+ const pointer = levelColor("~".repeat(Math.max(1, message.endColumn ? message.endColumn - message.column : 1)));
39
+ console.log(` ${padding}${pointer}`);
40
+ }
41
+ else {
42
+ console.log(`${prefix} ${copper.colors.dim(lineNum)} ${copper.colors.dim("│")} ${copper.colors.dim(lines[i])}`);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ // Summary
48
+ const summary = [];
49
+ if (results.errorCount > 0) {
50
+ summary.push(copper.colors.red(`${results.errorCount} error${results.errorCount > 1 ? "s" : ""}`));
51
+ }
52
+ if (results.warningCount > 0) {
53
+ summary.push(copper.colors.yellow(`${results.warningCount} warning${results.warningCount > 1 ? "s" : ""}`));
54
+ }
55
+ console.log(`\n${copper.colors.dim("╰─")} ${copper.colors.bold("ESLint")} ${copper.colors.dim("→")} ${summary.join(copper.colors.dim(" and "))}`);
56
+ }exports.displayErrors=displayErrors;//# sourceMappingURL=eslint-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint-formatter.js","sources":["../../../src/code-quality/formatters/eslint-formatter.ts"],"sourcesContent":[null],"names":["config","getConfig","path","colors"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import ts from "typescript";
2
+ type ScanSummary = {
3
+ typescript: {
4
+ errorCount: number;
5
+ warningCount: number;
6
+ filesWithIssues: Array<{
7
+ file: string;
8
+ errors: number;
9
+ warnings: number;
10
+ }>;
11
+ };
12
+ eslint: {
13
+ errorCount: number;
14
+ warningCount: number;
15
+ filesWithIssues: Array<{
16
+ file: string;
17
+ errors: number;
18
+ warnings: number;
19
+ }>;
20
+ };
21
+ totalFiles: number;
22
+ scanTime: number;
23
+ };
24
+ /**
25
+ * Display project scan summary
26
+ */
27
+ export declare function displayScanSummary(summary: ScanSummary): void;
28
+ /**
29
+ * Display compact file list (for project scan)
30
+ */
31
+ export declare function displayCompactSummary(diagnostics: ts.Diagnostic[], filePath: string): void;
32
+ export {};
33
+ //# sourceMappingURL=summary-formatter.d.ts.map