@trebired/bundler 3.0.0 → 3.1.1

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 (334) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +94 -11
  3. package/dist/backend/utils/normalize.d.ts +2 -0
  4. package/dist/backend/utils/normalize.d.ts.map +1 -0
  5. package/dist/backend/utils/normalize.js +4 -0
  6. package/dist/backend/utils/normalize.js.map +1 -0
  7. package/dist/backend/utils/object.d.ts +3 -0
  8. package/dist/backend/utils/object.d.ts.map +1 -0
  9. package/dist/backend/utils/object.js +12 -0
  10. package/dist/backend/utils/object.js.map +1 -0
  11. package/dist/backend/utils/time.d.ts +3 -0
  12. package/dist/backend/utils/time.d.ts.map +1 -0
  13. package/dist/backend/utils/time.js +7 -0
  14. package/dist/backend/utils/time.js.map +1 -0
  15. package/dist/cli/run-cli.d.ts.map +1 -1
  16. package/dist/cli/run-cli.js +40 -36
  17. package/dist/cli/run-cli.js.map +1 -1
  18. package/dist/cli.d.ts.map +1 -1
  19. package/dist/cli.js.map +1 -1
  20. package/dist/config/index.d.ts +1 -1
  21. package/dist/config/index.d.ts.map +1 -1
  22. package/dist/config/index.js.map +1 -1
  23. package/dist/constants.d.ts.map +1 -1
  24. package/dist/constants.js.map +1 -1
  25. package/dist/core/asset-manifest.d.ts +1 -4
  26. package/dist/core/asset-manifest.d.ts.map +1 -1
  27. package/dist/core/asset-manifest.js +1 -254
  28. package/dist/core/asset-manifest.js.map +1 -1
  29. package/dist/core/asset_manifest/runtime.d.ts +5 -0
  30. package/dist/core/asset_manifest/runtime.d.ts.map +1 -0
  31. package/dist/core/asset_manifest/runtime.js +252 -0
  32. package/dist/core/asset_manifest/runtime.js.map +1 -0
  33. package/dist/core/build.d.ts +1 -1
  34. package/dist/core/build.d.ts.map +1 -1
  35. package/dist/core/build.js +2 -2
  36. package/dist/core/build.js.map +1 -1
  37. package/dist/core/derive-manifest.d.ts +2 -9
  38. package/dist/core/derive-manifest.d.ts.map +1 -1
  39. package/dist/core/derive-manifest.js +1 -153
  40. package/dist/core/derive-manifest.js.map +1 -1
  41. package/dist/core/derive_manifest/runtime.d.ts +10 -0
  42. package/dist/core/derive_manifest/runtime.d.ts.map +1 -0
  43. package/dist/core/derive_manifest/runtime.js +133 -0
  44. package/dist/core/derive_manifest/runtime.js.map +1 -0
  45. package/dist/core/discovery/aggregate.d.ts +32 -0
  46. package/dist/core/discovery/aggregate.d.ts.map +1 -0
  47. package/dist/core/discovery/aggregate.js +124 -0
  48. package/dist/core/discovery/aggregate.js.map +1 -0
  49. package/dist/core/discovery/emit.d.ts +22 -0
  50. package/dist/core/discovery/emit.d.ts.map +1 -0
  51. package/dist/core/discovery/emit.js +37 -0
  52. package/dist/core/discovery/emit.js.map +1 -0
  53. package/dist/core/discovery/normalize.d.ts +8 -0
  54. package/dist/core/discovery/normalize.d.ts.map +1 -0
  55. package/dist/core/discovery/normalize.js +130 -0
  56. package/dist/core/discovery/normalize.js.map +1 -0
  57. package/dist/core/discovery/public.d.ts +5 -0
  58. package/dist/core/discovery/public.d.ts.map +1 -0
  59. package/dist/core/discovery/public.js +25 -0
  60. package/dist/core/discovery/public.js.map +1 -0
  61. package/dist/core/discovery/resolve.d.ts +9 -0
  62. package/dist/core/discovery/resolve.d.ts.map +1 -0
  63. package/dist/core/discovery/resolve.js +235 -0
  64. package/dist/core/discovery/resolve.js.map +1 -0
  65. package/dist/core/discovery/scan.d.ts +29 -0
  66. package/dist/core/discovery/scan.d.ts.map +1 -0
  67. package/dist/core/discovery/scan.js +105 -0
  68. package/dist/core/discovery/scan.js.map +1 -0
  69. package/dist/core/discovery/shared.d.ts +100 -0
  70. package/dist/core/discovery/shared.d.ts.map +1 -0
  71. package/dist/core/discovery/shared.js +187 -0
  72. package/dist/core/discovery/shared.js.map +1 -0
  73. package/dist/core/discovery-watch.d.ts +1 -8
  74. package/dist/core/discovery-watch.d.ts.map +1 -1
  75. package/dist/core/discovery-watch.js +1 -100
  76. package/dist/core/discovery-watch.js.map +1 -1
  77. package/dist/core/discovery.d.ts +4 -31
  78. package/dist/core/discovery.d.ts.map +1 -1
  79. package/dist/core/discovery.js +3 -468
  80. package/dist/core/discovery.js.map +1 -1
  81. package/dist/core/discovery_watch/runtime.d.ts +9 -0
  82. package/dist/core/discovery_watch/runtime.d.ts.map +1 -0
  83. package/dist/core/discovery_watch/runtime.js +127 -0
  84. package/dist/core/discovery_watch/runtime.js.map +1 -0
  85. package/dist/core/esbuild-options.d.ts +1 -1
  86. package/dist/core/esbuild-options.d.ts.map +1 -1
  87. package/dist/core/esbuild-options.js +38 -38
  88. package/dist/core/esbuild-options.js.map +1 -1
  89. package/dist/core/import-graph.d.ts +1 -3
  90. package/dist/core/import-graph.d.ts.map +1 -1
  91. package/dist/core/import-graph.js +1 -409
  92. package/dist/core/import-graph.js.map +1 -1
  93. package/dist/core/import_graph/parse.d.ts +6 -0
  94. package/dist/core/import_graph/parse.d.ts.map +1 -0
  95. package/dist/core/import_graph/parse.js +134 -0
  96. package/dist/core/import_graph/parse.js.map +1 -0
  97. package/dist/core/import_graph/resolve.d.ts +4 -0
  98. package/dist/core/import_graph/resolve.d.ts.map +1 -0
  99. package/dist/core/import_graph/resolve.js +105 -0
  100. package/dist/core/import_graph/resolve.js.map +1 -0
  101. package/dist/core/import_graph/shared.d.ts +21 -0
  102. package/dist/core/import_graph/shared.d.ts.map +1 -0
  103. package/dist/core/import_graph/shared.js +27 -0
  104. package/dist/core/import_graph/shared.js.map +1 -0
  105. package/dist/core/import_graph/tsconfig.d.ts +7 -0
  106. package/dist/core/import_graph/tsconfig.d.ts.map +1 -0
  107. package/dist/core/import_graph/tsconfig.js +111 -0
  108. package/dist/core/import_graph/tsconfig.js.map +1 -0
  109. package/dist/core/manifest.d.ts +1 -1
  110. package/dist/core/manifest.d.ts.map +1 -1
  111. package/dist/core/manifest.js.map +1 -1
  112. package/dist/core/shared.d.ts +5 -4
  113. package/dist/core/shared.d.ts.map +1 -1
  114. package/dist/core/shared.js +12 -4
  115. package/dist/core/shared.js.map +1 -1
  116. package/dist/core/watch.d.ts +1 -1
  117. package/dist/core/watch.d.ts.map +1 -1
  118. package/dist/core/watch.js +143 -135
  119. package/dist/core/watch.js.map +1 -1
  120. package/dist/frontend/js/utils/text.d.ts +2 -0
  121. package/dist/frontend/js/utils/text.d.ts.map +1 -0
  122. package/dist/frontend/js/utils/text.js +4 -0
  123. package/dist/frontend/js/utils/text.js.map +1 -0
  124. package/dist/index.d.ts +1 -1
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js.map +1 -1
  127. package/dist/logging.d.ts.map +1 -1
  128. package/dist/logging.js.map +1 -1
  129. package/dist/plugins/scss.d.ts +1 -1
  130. package/dist/plugins/scss.d.ts.map +1 -1
  131. package/dist/plugins/scss.js.map +1 -1
  132. package/dist/plugins/source-annotations.d.ts +1 -1
  133. package/dist/plugins/source-annotations.d.ts.map +1 -1
  134. package/dist/plugins/source-annotations.js.map +1 -1
  135. package/dist/plugins/virtual-entries.d.ts +1 -1
  136. package/dist/plugins/virtual-entries.d.ts.map +1 -1
  137. package/dist/plugins/virtual-entries.js +1 -1
  138. package/dist/plugins/virtual-entries.js.map +1 -1
  139. package/dist/src/backend/utils/normalize.d.ts +2 -0
  140. package/dist/src/backend/utils/normalize.d.ts.map +1 -0
  141. package/dist/src/backend/utils/normalize.js +4 -0
  142. package/dist/src/backend/utils/normalize.js.map +1 -0
  143. package/dist/src/backend/utils/object.d.ts +3 -0
  144. package/dist/src/backend/utils/object.d.ts.map +1 -0
  145. package/dist/src/backend/utils/object.js +12 -0
  146. package/dist/src/backend/utils/object.js.map +1 -0
  147. package/dist/src/backend/utils/time.d.ts +3 -0
  148. package/dist/src/backend/utils/time.d.ts.map +1 -0
  149. package/dist/src/backend/utils/time.js +7 -0
  150. package/dist/src/backend/utils/time.js.map +1 -0
  151. package/dist/src/cli/run-cli.d.ts +14 -0
  152. package/dist/src/cli/run-cli.d.ts.map +1 -0
  153. package/dist/src/cli/run-cli.js +108 -0
  154. package/dist/src/cli/run-cli.js.map +1 -0
  155. package/dist/src/cli.d.ts +5 -0
  156. package/dist/src/cli.d.ts.map +1 -0
  157. package/dist/src/cli.js +10 -0
  158. package/dist/src/cli.js.map +1 -0
  159. package/dist/src/config/index.d.ts +5 -0
  160. package/dist/src/config/index.d.ts.map +1 -0
  161. package/dist/src/config/index.js +32 -0
  162. package/dist/src/config/index.js.map +1 -0
  163. package/dist/src/constants.d.ts +4 -0
  164. package/dist/src/constants.d.ts.map +1 -0
  165. package/dist/src/constants.js +4 -0
  166. package/dist/src/constants.js.map +1 -0
  167. package/dist/src/core/asset-manifest.d.ts +2 -0
  168. package/dist/src/core/asset-manifest.d.ts.map +1 -0
  169. package/dist/src/core/asset-manifest.js +2 -0
  170. package/dist/src/core/asset-manifest.js.map +1 -0
  171. package/dist/src/core/asset_manifest/runtime.d.ts +5 -0
  172. package/dist/src/core/asset_manifest/runtime.d.ts.map +1 -0
  173. package/dist/src/core/asset_manifest/runtime.js +252 -0
  174. package/dist/src/core/asset_manifest/runtime.js.map +1 -0
  175. package/dist/src/core/build.d.ts +4 -0
  176. package/dist/src/core/build.d.ts.map +1 -0
  177. package/dist/src/core/build.js +49 -0
  178. package/dist/src/core/build.js.map +1 -0
  179. package/dist/src/core/derive-manifest.d.ts +3 -0
  180. package/dist/src/core/derive-manifest.d.ts.map +1 -0
  181. package/dist/src/core/derive-manifest.js +2 -0
  182. package/dist/src/core/derive-manifest.js.map +1 -0
  183. package/dist/src/core/derive_manifest/runtime.d.ts +10 -0
  184. package/dist/src/core/derive_manifest/runtime.d.ts.map +1 -0
  185. package/dist/src/core/derive_manifest/runtime.js +133 -0
  186. package/dist/src/core/derive_manifest/runtime.js.map +1 -0
  187. package/dist/src/core/discovery/aggregate.d.ts +32 -0
  188. package/dist/src/core/discovery/aggregate.d.ts.map +1 -0
  189. package/dist/src/core/discovery/aggregate.js +124 -0
  190. package/dist/src/core/discovery/aggregate.js.map +1 -0
  191. package/dist/src/core/discovery/emit.d.ts +22 -0
  192. package/dist/src/core/discovery/emit.d.ts.map +1 -0
  193. package/dist/src/core/discovery/emit.js +37 -0
  194. package/dist/src/core/discovery/emit.js.map +1 -0
  195. package/dist/src/core/discovery/normalize.d.ts +8 -0
  196. package/dist/src/core/discovery/normalize.d.ts.map +1 -0
  197. package/dist/src/core/discovery/normalize.js +130 -0
  198. package/dist/src/core/discovery/normalize.js.map +1 -0
  199. package/dist/src/core/discovery/public.d.ts +5 -0
  200. package/dist/src/core/discovery/public.d.ts.map +1 -0
  201. package/dist/src/core/discovery/public.js +25 -0
  202. package/dist/src/core/discovery/public.js.map +1 -0
  203. package/dist/src/core/discovery/resolve.d.ts +9 -0
  204. package/dist/src/core/discovery/resolve.d.ts.map +1 -0
  205. package/dist/src/core/discovery/resolve.js +235 -0
  206. package/dist/src/core/discovery/resolve.js.map +1 -0
  207. package/dist/src/core/discovery/scan.d.ts +29 -0
  208. package/dist/src/core/discovery/scan.d.ts.map +1 -0
  209. package/dist/src/core/discovery/scan.js +105 -0
  210. package/dist/src/core/discovery/scan.js.map +1 -0
  211. package/dist/src/core/discovery/shared.d.ts +100 -0
  212. package/dist/src/core/discovery/shared.d.ts.map +1 -0
  213. package/dist/src/core/discovery/shared.js +187 -0
  214. package/dist/src/core/discovery/shared.js.map +1 -0
  215. package/dist/src/core/discovery-watch.d.ts +2 -0
  216. package/dist/src/core/discovery-watch.d.ts.map +1 -0
  217. package/dist/src/core/discovery-watch.js +2 -0
  218. package/dist/src/core/discovery-watch.js.map +1 -0
  219. package/dist/src/core/discovery.d.ts +5 -0
  220. package/dist/src/core/discovery.d.ts.map +1 -0
  221. package/dist/src/core/discovery.js +4 -0
  222. package/dist/src/core/discovery.js.map +1 -0
  223. package/dist/src/core/discovery_watch/runtime.d.ts +9 -0
  224. package/dist/src/core/discovery_watch/runtime.d.ts.map +1 -0
  225. package/dist/src/core/discovery_watch/runtime.js +127 -0
  226. package/dist/src/core/discovery_watch/runtime.js.map +1 -0
  227. package/dist/src/core/esbuild-options.d.ts +30 -0
  228. package/dist/src/core/esbuild-options.d.ts.map +1 -0
  229. package/dist/src/core/esbuild-options.js +93 -0
  230. package/dist/src/core/esbuild-options.js.map +1 -0
  231. package/dist/src/core/import-graph.d.ts +2 -0
  232. package/dist/src/core/import-graph.d.ts.map +1 -0
  233. package/dist/src/core/import-graph.js +2 -0
  234. package/dist/src/core/import-graph.js.map +1 -0
  235. package/dist/src/core/import_graph/parse.d.ts +6 -0
  236. package/dist/src/core/import_graph/parse.d.ts.map +1 -0
  237. package/dist/src/core/import_graph/parse.js +134 -0
  238. package/dist/src/core/import_graph/parse.js.map +1 -0
  239. package/dist/src/core/import_graph/resolve.d.ts +4 -0
  240. package/dist/src/core/import_graph/resolve.d.ts.map +1 -0
  241. package/dist/src/core/import_graph/resolve.js +105 -0
  242. package/dist/src/core/import_graph/resolve.js.map +1 -0
  243. package/dist/src/core/import_graph/shared.d.ts +21 -0
  244. package/dist/src/core/import_graph/shared.d.ts.map +1 -0
  245. package/dist/src/core/import_graph/shared.js +27 -0
  246. package/dist/src/core/import_graph/shared.js.map +1 -0
  247. package/dist/src/core/import_graph/tsconfig.d.ts +7 -0
  248. package/dist/src/core/import_graph/tsconfig.d.ts.map +1 -0
  249. package/dist/src/core/import_graph/tsconfig.js +111 -0
  250. package/dist/src/core/import_graph/tsconfig.js.map +1 -0
  251. package/dist/src/core/manifest.d.ts +15 -0
  252. package/dist/src/core/manifest.d.ts.map +1 -0
  253. package/dist/src/core/manifest.js +29 -0
  254. package/dist/src/core/manifest.js.map +1 -0
  255. package/dist/src/core/shared.d.ts +17 -0
  256. package/dist/src/core/shared.d.ts.map +1 -0
  257. package/dist/src/core/shared.js +71 -0
  258. package/dist/src/core/shared.js.map +1 -0
  259. package/dist/src/core/watch.d.ts +4 -0
  260. package/dist/src/core/watch.d.ts.map +1 -0
  261. package/dist/src/core/watch.js +185 -0
  262. package/dist/src/core/watch.js.map +1 -0
  263. package/dist/src/frontend/js/utils/text.d.ts +2 -0
  264. package/dist/src/frontend/js/utils/text.d.ts.map +1 -0
  265. package/dist/src/frontend/js/utils/text.js +4 -0
  266. package/dist/src/frontend/js/utils/text.js.map +1 -0
  267. package/dist/src/index.d.ts +14 -0
  268. package/dist/src/index.d.ts.map +1 -0
  269. package/dist/src/index.js +13 -0
  270. package/dist/src/index.js.map +1 -0
  271. package/dist/src/logging.d.ts +5 -0
  272. package/dist/src/logging.d.ts.map +1 -0
  273. package/dist/src/logging.js +35 -0
  274. package/dist/src/logging.js.map +1 -0
  275. package/dist/src/plugins/scss.d.ts +11 -0
  276. package/dist/src/plugins/scss.d.ts.map +1 -0
  277. package/dist/src/plugins/scss.js +44 -0
  278. package/dist/src/plugins/scss.js.map +1 -0
  279. package/dist/src/plugins/source-annotations.d.ts +17 -0
  280. package/dist/src/plugins/source-annotations.d.ts.map +1 -0
  281. package/dist/src/plugins/source-annotations.js +78 -0
  282. package/dist/src/plugins/source-annotations.js.map +1 -0
  283. package/dist/src/plugins/virtual-entries.d.ts +11 -0
  284. package/dist/src/plugins/virtual-entries.d.ts.map +1 -0
  285. package/dist/src/plugins/virtual-entries.js +39 -0
  286. package/dist/src/plugins/virtual-entries.js.map +1 -0
  287. package/dist/src/types/discovery.d.ts +91 -0
  288. package/dist/src/types/discovery.d.ts.map +1 -0
  289. package/dist/src/types/discovery.js +2 -0
  290. package/dist/src/types/discovery.js.map +1 -0
  291. package/dist/src/types/import_graph.d.ts +29 -0
  292. package/dist/src/types/import_graph.d.ts.map +1 -0
  293. package/dist/src/types/import_graph.js +2 -0
  294. package/dist/src/types/import_graph.js.map +1 -0
  295. package/dist/src/types/logging.d.ts +9 -0
  296. package/dist/src/types/logging.d.ts.map +1 -0
  297. package/dist/src/types/logging.js +2 -0
  298. package/dist/src/types/logging.js.map +1 -0
  299. package/dist/src/types/manifest.d.ts +106 -0
  300. package/dist/src/types/manifest.d.ts.map +1 -0
  301. package/dist/src/types/manifest.js +2 -0
  302. package/dist/src/types/manifest.js.map +1 -0
  303. package/dist/src/types/runtime.d.ts +53 -0
  304. package/dist/src/types/runtime.d.ts.map +1 -0
  305. package/dist/src/types/runtime.js +2 -0
  306. package/dist/src/types/runtime.js.map +1 -0
  307. package/dist/src/types.d.ts +6 -0
  308. package/dist/src/types.d.ts.map +1 -0
  309. package/dist/src/types.js +2 -0
  310. package/dist/src/types.js.map +1 -0
  311. package/dist/types/discovery.d.ts +91 -0
  312. package/dist/types/discovery.d.ts.map +1 -0
  313. package/dist/types/discovery.js +2 -0
  314. package/dist/types/discovery.js.map +1 -0
  315. package/dist/types/import_graph.d.ts +29 -0
  316. package/dist/types/import_graph.d.ts.map +1 -0
  317. package/dist/types/import_graph.js +2 -0
  318. package/dist/types/import_graph.js.map +1 -0
  319. package/dist/types/logging.d.ts +9 -0
  320. package/dist/types/logging.d.ts.map +1 -0
  321. package/dist/types/logging.js +2 -0
  322. package/dist/types/logging.js.map +1 -0
  323. package/dist/types/manifest.d.ts +106 -0
  324. package/dist/types/manifest.d.ts.map +1 -0
  325. package/dist/types/manifest.js +2 -0
  326. package/dist/types/manifest.js.map +1 -0
  327. package/dist/types/runtime.d.ts +53 -0
  328. package/dist/types/runtime.d.ts.map +1 -0
  329. package/dist/types/runtime.js +2 -0
  330. package/dist/types/runtime.js.map +1 -0
  331. package/dist/types.d.ts +5 -216
  332. package/dist/types.d.ts.map +1 -1
  333. package/dist/types.js.map +1 -1
  334. package/package.json +119 -41
@@ -0,0 +1,185 @@
1
+ import { context as createContext } from "esbuild";
2
+ import { logPackageInitialized } from "@trebired/logger-adapter";
3
+ import { BUNDLER_LOG_GROUP, BUNDLER_PACKAGE_NAME } from "../constants.js";
4
+ import { resolveLogger } from "../logging.js";
5
+ import { createEsbuildOptions, normalizeBundlerOptions } from "./esbuild-options.js";
6
+ import { resolveBundlerEntries, normalizeDiscoverRoots } from "./discovery.js";
7
+ import { createDiscoveryWatcher } from "./discovery-watch.js";
8
+ import { cleanOutDir, formatFailure, logWarnings, toBuildResult } from "./shared.js";
9
+ async function watch(options) {
10
+ const state = await createWatchState(options);
11
+ try {
12
+ await startWatchState(state);
13
+ return createWatchSession(state);
14
+ }
15
+ catch (error) {
16
+ await failWatchState(state, error);
17
+ throw error;
18
+ }
19
+ }
20
+ async function createWatchState(options) {
21
+ const normalized = normalizeBundlerOptions(options || {});
22
+ const logger = resolveLogger(normalized.logger, normalized.loggerAdapter);
23
+ logPackageInitialized({
24
+ adapter: normalized.loggerAdapter,
25
+ fallback: "console",
26
+ group: BUNDLER_LOG_GROUP,
27
+ logger: normalized.logger,
28
+ source: BUNDLER_PACKAGE_NAME,
29
+ });
30
+ if (normalized.clean) {
31
+ logger.info("watch", `clean :: ${normalized.outDir}`);
32
+ await cleanOutDir(normalized.outDir);
33
+ }
34
+ return {
35
+ currentContext: null,
36
+ currentDiscovery: await resolveBundlerEntries(options || {}, normalized.rootDir, { allowEmpty: true }),
37
+ discoveryWatcher: null,
38
+ disposed: false,
39
+ logger,
40
+ normalized,
41
+ options,
42
+ queued: Promise.resolve(),
43
+ };
44
+ }
45
+ async function startWatchState(state) {
46
+ state.discoveryWatcher = createWatchStateWatcher(state);
47
+ state.logger.info("watch", "start");
48
+ state.logger.info("watch", `entries :: count=${state.currentDiscovery.entries.length}`);
49
+ if (state.currentDiscovery.entries.length > 0) {
50
+ state.currentContext = await createWatchedContext(state, state.currentDiscovery.entries);
51
+ await executeRebuild(state);
52
+ }
53
+ }
54
+ function createWatchSession(state) {
55
+ return {
56
+ rebuild: () => runExclusive(state, async () => {
57
+ try {
58
+ await refreshDiscovery(state);
59
+ return await executeRebuild(state);
60
+ }
61
+ catch (error) {
62
+ state.logger.fail("watch", `rebuild-failed :: ${formatFailure(error)}`);
63
+ throw error;
64
+ }
65
+ }),
66
+ dispose: () => disposeWatchState(state),
67
+ };
68
+ }
69
+ async function failWatchState(state, error) {
70
+ state.logger.fail("watch", `failed :: ${formatFailure(error)}`);
71
+ await disposeWatchState(state);
72
+ }
73
+ function createWatchStateWatcher(state) {
74
+ const discoveryRoots = normalizeDiscoverRoots(state.normalized.rootDir, state.options.discover);
75
+ return discoveryRoots.length
76
+ ? createDiscoveryWatcher({
77
+ dirs: discoveryRoots,
78
+ onChange() {
79
+ void runExclusive(state, async () => {
80
+ if (state.disposed)
81
+ return;
82
+ try {
83
+ await refreshDiscovery(state);
84
+ }
85
+ catch (error) {
86
+ state.logger.fail("watch", `discovery-refresh-failed :: ${formatFailure(error)}`);
87
+ }
88
+ });
89
+ },
90
+ })
91
+ : null;
92
+ }
93
+ async function callHook(state, args) {
94
+ if (typeof args.hook !== "function")
95
+ return;
96
+ try {
97
+ await args.hook(args.payload);
98
+ }
99
+ catch (error) {
100
+ state.logger.fail("watch", `${args.name}-failed :: ${formatFailure(error)}`);
101
+ throw error;
102
+ }
103
+ }
104
+ async function createWatchedContext(state, records = state.currentDiscovery.entries) {
105
+ const context = await createContext(createEsbuildOptions({
106
+ ...state.normalized,
107
+ entryRecords: records,
108
+ }, state.logger));
109
+ await context.watch();
110
+ return context;
111
+ }
112
+ async function executeRebuild(state) {
113
+ if (!state.currentContext) {
114
+ const emptyResult = createEmptyBuildResult();
115
+ await callHook(state, { hook: state.normalized.onRebuilt, name: "onRebuilt", payload: emptyResult });
116
+ return emptyResult;
117
+ }
118
+ const startedAt = Date.now();
119
+ const result = await state.currentContext.rebuild();
120
+ logWarnings(state.logger, result.warnings);
121
+ const summary = await toBuildResult({
122
+ manifest: state.normalized.manifest,
123
+ outDir: state.normalized.outDir,
124
+ resolvedDiscovery: state.currentDiscovery,
125
+ result,
126
+ rootDir: state.normalized.rootDir,
127
+ startedAt,
128
+ });
129
+ state.logger.info("watch", `rebuilt :: outputs=${summary.outputs.length} warnings=${summary.warnings}`);
130
+ await callHook(state, { hook: state.normalized.onRebuilt, name: "onRebuilt", payload: summary });
131
+ return summary;
132
+ }
133
+ async function refreshDiscovery(state) {
134
+ const nextDiscovery = await resolveBundlerEntries(state.options || {}, state.normalized.rootDir, {
135
+ allowEmpty: true,
136
+ });
137
+ if (nextDiscovery.signature === state.currentDiscovery.signature)
138
+ return;
139
+ state.logger.info("watch", `entry-set-changed :: count=${nextDiscovery.entries.length}`);
140
+ await callHook(state, {
141
+ hook: state.normalized.onEntrySetChanged,
142
+ name: "onEntrySetChanged",
143
+ payload: nextDiscovery.sourceOwners,
144
+ });
145
+ state.currentDiscovery = nextDiscovery;
146
+ if (state.currentContext) {
147
+ await state.currentContext.dispose();
148
+ state.currentContext = null;
149
+ }
150
+ await cleanOutDir(state.normalized.outDir);
151
+ if (state.currentDiscovery.entries.length === 0) {
152
+ state.logger.info("watch", "entry-set-empty");
153
+ return;
154
+ }
155
+ state.currentContext = await createWatchedContext(state, state.currentDiscovery.entries);
156
+ await executeRebuild(state);
157
+ }
158
+ function runExclusive(state, task) {
159
+ const next = state.queued.then(task, task);
160
+ state.queued = next.then(() => undefined, () => undefined);
161
+ return next;
162
+ }
163
+ async function disposeWatchState(state) {
164
+ state.logger.info("watch", "dispose");
165
+ state.disposed = true;
166
+ state.discoveryWatcher?.close();
167
+ if (state.currentContext)
168
+ await state.currentContext.dispose();
169
+ }
170
+ function createEmptyBuildResult() {
171
+ return {
172
+ entries: {},
173
+ outputs: [],
174
+ warnings: 0,
175
+ manifestPath: undefined,
176
+ durationMs: 0,
177
+ resolvedDiscovery: {
178
+ entries: [],
179
+ rules: {},
180
+ sourceOwners: {},
181
+ },
182
+ };
183
+ }
184
+ export { watch };
185
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/core/watch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function text(value: unknown): string;
2
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../../../src/frontend/js/utils/text.ts"],"names":[],"mappings":"AAAA,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE3C"}
@@ -0,0 +1,4 @@
1
+ export function text(value) {
2
+ return typeof value === "string" ? value : String(value ?? "");
3
+ }
4
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../../../src/frontend/js/utils/text.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,IAAI,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AACjE,CAAC"}
@@ -0,0 +1,14 @@
1
+ export { BUNDLER_LOG_GROUP, BUNDLER_PACKAGE_NAME } from "./constants.js";
2
+ export { bundle } from "./core/build.js";
3
+ export { buildAssetManifest, collectAssetLinks } from "./core/asset-manifest.js";
4
+ export { deriveManifest } from "./core/derive-manifest.js";
5
+ export { walkImportGraph } from "./core/import-graph.js";
6
+ export { watch } from "./core/watch.js";
7
+ export { defineBundlerConfig } from "./config/index.js";
8
+ export { resolveLogger } from "./logging.js";
9
+ export { buildSourceAnnotation, injectSourceAnnotation, resolveSourceLabel } from "./plugins/source-annotations.js";
10
+ export { createScssPlugin } from "./plugins/scss.js";
11
+ export { runCli } from "./cli/run-cli.js";
12
+ export type { BundlerAggregateEntryMetadata, BundlerAggregateKind, BundlerAggregateModuleMap, BundlerAggregateModuleMapExports, BundlerAggregateRuleMetadata, BundlerAssetManifest, BundlerAssetManifestEntry, BundlerAssetManifestOutput, BundlerAssetManifestRule, BundlerAssetManifestSource, BundlerBuildAssetManifestOptions, BundlerBuildResult, BundlerCollectedAssetLinks, BundlerCollectAssetLinksLookup, BundlerCollectAssetLinksOptions, BundlerDiscoverOptions, BundlerDiscoverRule, BundlerDiscoverRuleStrategy, BundlerDerivedManifest, BundlerDerivedManifestChunk, BundlerDerivedManifestEntry, BundlerDerivedManifestOutput, BundlerDerivedManifestOutputKind, BundlerDiscoverAggregateRule, BundlerDiscoverBundleRule, BundlerDiscoverEntryRule, BundlerDiscoverIgnoreRule, BundlerEntryKind, BundlerEntryRecord, BundlerEntrySource, BundlerEnvironment, BundlerGenericLogMethod, BundlerImportGraph, BundlerImportGraphFile, BundlerImportGraphImport, BundlerImportGraphImportKind, BundlerImportGraphOptions, BundlerImportGraphTsconfigOptions, BundlerLogEvent, BundlerLogger, BundlerLoggerAdapter, BundlerLogMethod, BundlerManifestOptions, BundlerOptions, BundlerResolvedDiscovery, BundlerResolvedRule, BundlerTsconfigPaths, BundlerWatchSession, LoadedBundlerConfig, NormalizedBundlerLogger, } from "./types.js";
13
+ export { bundle as default } from "./core/build.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,YAAY,EACV,6BAA6B,EAC7B,oBAAoB,EACpB,yBAAyB,EACzB,gCAAgC,EAChC,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,kBAAkB,EAClB,0BAA0B,EAC1B,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC5B,gCAAgC,EAChC,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,4BAA4B,EAC5B,yBAAyB,EACzB,iCAAiC,EACjC,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export { BUNDLER_LOG_GROUP, BUNDLER_PACKAGE_NAME } from "./constants.js";
2
+ export { bundle } from "./core/build.js";
3
+ export { buildAssetManifest, collectAssetLinks } from "./core/asset-manifest.js";
4
+ export { deriveManifest } from "./core/derive-manifest.js";
5
+ export { walkImportGraph } from "./core/import-graph.js";
6
+ export { watch } from "./core/watch.js";
7
+ export { defineBundlerConfig } from "./config/index.js";
8
+ export { resolveLogger } from "./logging.js";
9
+ export { buildSourceAnnotation, injectSourceAnnotation, resolveSourceLabel } from "./plugins/source-annotations.js";
10
+ export { createScssPlugin } from "./plugins/scss.js";
11
+ export { runCli } from "./cli/run-cli.js";
12
+ export { bundle as default } from "./core/build.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACpH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAuD1C,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { BundlerLogger, BundlerLoggerAdapter, NormalizedBundlerLogger } from "./types.js";
2
+ declare function toBundlerLogGroup(group: string): string;
3
+ declare function resolveLogger(logger?: BundlerLogger, adapter?: BundlerLoggerAdapter): NormalizedBundlerLogger;
4
+ export { resolveLogger, toBundlerLogGroup };
5
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,iBAAS,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAShD;AAED,iBAAS,aAAa,CACpB,MAAM,CAAC,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,uBAAuB,CAsBzB;AAED,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { resolveLogger as resolveSharedLogger } from "@trebired/logger-adapter";
2
+ import { BUNDLER_LOG_GROUP, BUNDLER_PACKAGE_NAME } from "./constants.js";
3
+ function toBundlerLogGroup(group) {
4
+ const normalized = String(group || "").trim();
5
+ if (!normalized)
6
+ return BUNDLER_LOG_GROUP;
7
+ if (normalized === BUNDLER_LOG_GROUP || normalized.startsWith(`${BUNDLER_LOG_GROUP}.`)) {
8
+ return normalized;
9
+ }
10
+ return `${BUNDLER_LOG_GROUP}.${normalized}`;
11
+ }
12
+ function resolveLogger(logger, adapter) {
13
+ const resolved = resolveSharedLogger({
14
+ adapter,
15
+ fallback: "console",
16
+ logger,
17
+ source: BUNDLER_PACKAGE_NAME,
18
+ });
19
+ return {
20
+ error(group, message, metadata) {
21
+ resolved.error(toBundlerLogGroup(group), message, metadata);
22
+ },
23
+ fail(group, message, metadata) {
24
+ resolved.fail(toBundlerLogGroup(group), message, metadata);
25
+ },
26
+ info(group, message, metadata) {
27
+ resolved.info(toBundlerLogGroup(group), message, metadata);
28
+ },
29
+ warn(group, message, metadata) {
30
+ resolved.warn(toBundlerLogGroup(group), message, metadata);
31
+ },
32
+ };
33
+ }
34
+ export { resolveLogger, toBundlerLogGroup };
35
+ //# sourceMappingURL=logging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAOzE,SAAS,iBAAiB,CAAC,KAAa;IACtC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAE9C,IAAI,CAAC,UAAU;QAAE,OAAO,iBAAiB,CAAC;IAC1C,IAAI,UAAU,KAAK,iBAAiB,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,iBAAiB,GAAG,CAAC,EAAE,CAAC;QACvF,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,GAAG,iBAAiB,IAAI,UAAU,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,aAAa,CACpB,MAAsB,EACtB,OAA8B;IAE9B,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,OAAO;QACP,QAAQ,EAAE,SAAS;QACnB,MAAM;QACN,MAAM,EAAE,oBAAoB;KAC7B,CAA4B,CAAC;IAE9B,OAAO;QACL,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ;YAC5B,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ;YAC3B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ;YAC3B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ;YAC3B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { Plugin } from "esbuild";
2
+ import type { NormalizedBundlerLogger } from "../types.d.ts";
3
+ type ScssPluginOptions = {
4
+ annotateSources: boolean;
5
+ logger: NormalizedBundlerLogger;
6
+ rootDir: string;
7
+ sourcemapEnabled: boolean;
8
+ };
9
+ declare function createScssPlugin(options: ScssPluginOptions): Plugin;
10
+ export { createScssPlugin };
11
+ //# sourceMappingURL=scss.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scss.d.ts","sourceRoot":"","sources":["../../../src/plugins/scss.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D,KAAK,iBAAiB,GAAG;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,iBAAS,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAuC5D;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,44 @@
1
+ import path from "node:path";
2
+ import { compileAsync } from "sass-embedded";
3
+ import { injectSourceAnnotation } from "./source-annotations.js";
4
+ function createScssPlugin(options) {
5
+ return {
6
+ name: "trebired-scss",
7
+ setup(build) {
8
+ build.onLoad({ filter: /\.scss$/ }, async (args) => {
9
+ try {
10
+ const result = await compileAsync(args.path, {
11
+ loadPaths: [options.rootDir],
12
+ sourceMap: options.sourcemapEnabled,
13
+ sourceMapIncludeSources: options.sourcemapEnabled,
14
+ style: "expanded",
15
+ });
16
+ const contents = options.annotateSources
17
+ ? injectSourceAnnotation({
18
+ contents: result.css,
19
+ filePath: args.path,
20
+ kind: "css",
21
+ rootDir: options.rootDir,
22
+ })
23
+ : result.css;
24
+ return {
25
+ contents,
26
+ loader: "css",
27
+ resolveDir: path.dirname(args.path),
28
+ watchFiles: result.loadedUrls
29
+ .filter((url) => url.protocol === "file:")
30
+ .map((url) => url.pathname),
31
+ };
32
+ }
33
+ catch (error) {
34
+ options.logger.error("scss", `compile-failed :: ${args.path}`, {
35
+ error: error instanceof Error ? error.message : String(error),
36
+ });
37
+ throw error;
38
+ }
39
+ });
40
+ },
41
+ };
42
+ }
43
+ export { createScssPlugin };
44
+ //# sourceMappingURL=scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scss.js","sourceRoot":"","sources":["../../../src/plugins/scss.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAUjE,SAAS,gBAAgB,CAAC,OAA0B;IAClD,OAAO;QACL,IAAI,EAAE,eAAe;QACrB,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACjD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE;wBAC3C,SAAS,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;wBAC5B,SAAS,EAAE,OAAO,CAAC,gBAAgB;wBACnC,uBAAuB,EAAE,OAAO,CAAC,gBAAgB;wBACjD,KAAK,EAAE,UAAU;qBAClB,CAAC,CAAC;oBAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe;wBACtC,CAAC,CAAC,sBAAsB,CAAC;4BACvB,QAAQ,EAAE,MAAM,CAAC,GAAG;4BACpB,QAAQ,EAAE,IAAI,CAAC,IAAI;4BACnB,IAAI,EAAE,KAAK;4BACX,OAAO,EAAE,OAAO,CAAC,OAAO;yBACzB,CAAC;wBACF,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;oBAEf,OAAO;wBACL,QAAQ;wBACR,MAAM,EAAE,KAAK;wBACb,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;wBACnC,UAAU,EAAE,MAAM,CAAC,UAAU;6BAC1B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;6BACzC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;qBAC9B,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,qBAAqB,IAAI,CAAC,IAAI,EAAE,EAAE;wBAC7D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;oBACH,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { Plugin } from "esbuild";
2
+ import type { NormalizedBundlerLogger } from "../types.d.ts";
3
+ type SourceAnnotationsPluginOptions = {
4
+ logger: NormalizedBundlerLogger;
5
+ rootDir: string;
6
+ };
7
+ declare function resolveSourceLabel(filePath: string, rootDir: string): string;
8
+ declare function buildSourceAnnotation(filePath: string, rootDir: string): string;
9
+ declare function injectSourceAnnotation(args: {
10
+ contents: string;
11
+ filePath: string;
12
+ kind: "code" | "css";
13
+ rootDir: string;
14
+ }): string;
15
+ declare function createSourceAnnotationsPlugin(options: SourceAnnotationsPluginOptions): Plugin;
16
+ export { buildSourceAnnotation, createSourceAnnotationsPlugin, injectSourceAnnotation, resolveSourceLabel };
17
+ //# sourceMappingURL=source-annotations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-annotations.d.ts","sourceRoot":"","sources":["../../../src/plugins/source-annotations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAU,MAAM,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE7D,KAAK,8BAA8B,GAAG;IACpC,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAMF,iBAAS,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,iBAAS,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAExE;AAeD,iBAAS,sBAAsB,CAAC,IAAI,EAAE;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAYT;AAYD,iBAAS,6BAA6B,CAAC,OAAO,EAAE,8BAA8B,GAAG,MAAM,CA6BtF;AAED,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,78 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ function toPosixPath(value) {
4
+ return value.replace(/\\/g, "/");
5
+ }
6
+ function resolveSourceLabel(filePath, rootDir) {
7
+ return toPosixPath(path.relative(rootDir, filePath) || path.basename(filePath));
8
+ }
9
+ function buildSourceAnnotation(filePath, rootDir) {
10
+ return `/*! source: ${resolveSourceLabel(filePath, rootDir)} */`;
11
+ }
12
+ function insertAfterShebang(contents, annotation) {
13
+ const newlineIndex = contents.indexOf("\n");
14
+ if (newlineIndex === -1)
15
+ return `${contents}\n${annotation}\n`;
16
+ return `${contents.slice(0, newlineIndex + 1)}${annotation}\n${contents.slice(newlineIndex + 1)}`;
17
+ }
18
+ function insertAfterCharset(contents, annotation) {
19
+ const charsetMatch = contents.match(/^(@charset\s+(?:"[^"]*"|'[^']*');\s*)/i);
20
+ if (!charsetMatch)
21
+ return `${annotation}\n${contents}`;
22
+ const prefix = charsetMatch[1];
23
+ return `${prefix}${annotation}\n${contents.slice(prefix.length)}`;
24
+ }
25
+ function injectSourceAnnotation(args) {
26
+ const annotation = buildSourceAnnotation(args.filePath, args.rootDir);
27
+ if (args.kind === "css") {
28
+ return insertAfterCharset(args.contents, annotation);
29
+ }
30
+ if (args.contents.startsWith("#!")) {
31
+ return insertAfterShebang(args.contents, annotation);
32
+ }
33
+ return `${annotation}\n${args.contents}`;
34
+ }
35
+ function resolveLoader(filePath) {
36
+ const ext = path.extname(filePath).toLowerCase();
37
+ if (ext === ".css")
38
+ return "css";
39
+ if (ext === ".tsx")
40
+ return "tsx";
41
+ if (ext === ".jsx")
42
+ return "jsx";
43
+ if (ext === ".ts" || ext === ".mts" || ext === ".cts")
44
+ return "ts";
45
+ return "js";
46
+ }
47
+ function createSourceAnnotationsPlugin(options) {
48
+ return {
49
+ name: "trebired-source-annotations",
50
+ setup(build) {
51
+ build.onLoad({ filter: /\.(?:[mc]?js|[mc]?ts|jsx|tsx|css)$/ }, async (args) => {
52
+ try {
53
+ const original = await fs.readFile(args.path, "utf8");
54
+ const kind = path.extname(args.path).toLowerCase() === ".css" ? "css" : "code";
55
+ const contents = injectSourceAnnotation({
56
+ contents: original,
57
+ filePath: args.path,
58
+ kind,
59
+ rootDir: options.rootDir,
60
+ });
61
+ return {
62
+ contents,
63
+ loader: resolveLoader(args.path),
64
+ watchFiles: [args.path],
65
+ };
66
+ }
67
+ catch (error) {
68
+ options.logger.error("annotate", `load-failed :: ${args.path}`, {
69
+ error: error instanceof Error ? error.message : String(error),
70
+ });
71
+ throw error;
72
+ }
73
+ });
74
+ },
75
+ };
76
+ }
77
+ export { buildSourceAnnotation, createSourceAnnotationsPlugin, injectSourceAnnotation, resolveSourceLabel };
78
+ //# sourceMappingURL=source-annotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-annotations.js","sourceRoot":"","sources":["../../../src/plugins/source-annotations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Plugin } from "esbuild";
2
+ import type { BundlerEntryRecord, NormalizedBundlerLogger } from "../types.d.ts";
3
+ declare const VIRTUAL_ENTRY_NAMESPACE = "trebired-virtual-entry";
4
+ type VirtualEntriesPluginOptions = {
5
+ entries: BundlerEntryRecord[];
6
+ logger: NormalizedBundlerLogger;
7
+ rootDir: string;
8
+ };
9
+ declare function createVirtualEntriesPlugin(options: VirtualEntriesPluginOptions): Plugin;
10
+ export { VIRTUAL_ENTRY_NAMESPACE, createVirtualEntriesPlugin };
11
+ //# sourceMappingURL=virtual-entries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-entries.d.ts","sourceRoot":"","sources":["../../../src/plugins/virtual-entries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC,OAAO,KAAK,EAAE,kBAAkB,EAA6B,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAE5G,QAAA,MAAM,uBAAuB,2BAA2B,CAAC;AAEzD,KAAK,2BAA2B,GAAG;IACjC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,iBAAS,0BAA0B,CAAC,OAAO,EAAE,2BAA2B,GAAG,MAAM,CAyChF;AAED,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { VIRTUAL_ENTRY_PREFIX } from "../core/discovery.js";
2
+ const VIRTUAL_ENTRY_NAMESPACE = "trebired-virtual-entry";
3
+ function createVirtualEntriesPlugin(options) {
4
+ const byName = new Map(options.entries
5
+ .filter((entry) => entry.source === "internal")
6
+ .map((entry) => [entry.name, {
7
+ contents: entry.contents || "",
8
+ loader: entry.virtualLoader || "ts",
9
+ }]));
10
+ return {
11
+ name: "trebired-virtual-entries",
12
+ setup(build) {
13
+ build.onResolve({ filter: /^trebired-virtual:/ }, (args) => {
14
+ const name = args.path.slice(VIRTUAL_ENTRY_PREFIX.length);
15
+ if (!byName.has(name)) {
16
+ options.logger.fail("build", `virtual-entry-missing :: ${name}`);
17
+ throw new Error(`bundler-virtual-entry-missing :: ${name}`);
18
+ }
19
+ return {
20
+ namespace: VIRTUAL_ENTRY_NAMESPACE,
21
+ path: name,
22
+ };
23
+ });
24
+ build.onLoad({ filter: /.*/, namespace: VIRTUAL_ENTRY_NAMESPACE }, async (args) => {
25
+ const entry = byName.get(args.path) || {
26
+ contents: "",
27
+ loader: "ts",
28
+ };
29
+ return {
30
+ contents: entry.contents,
31
+ loader: entry.loader,
32
+ resolveDir: options.rootDir,
33
+ };
34
+ });
35
+ },
36
+ };
37
+ }
38
+ export { VIRTUAL_ENTRY_NAMESPACE, createVirtualEntriesPlugin };
39
+ //# sourceMappingURL=virtual-entries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-entries.js","sourceRoot":"","sources":["../../../src/plugins/virtual-entries.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,MAAM,uBAAuB,GAAG,wBAAwB,CAAC;AAQzD,SAAS,0BAA0B,CAAC,OAAoC;IACtE,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,OAAO,CAAC,OAAO;SACZ,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,UAAU,CAAC;SAC9C,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;YAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;YAC9B,MAAM,EAAE,KAAK,CAAC,aAAa,IAAI,IAAiC;SACjE,CAAC,CAAC,CACN,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,0BAA0B;QAChC,KAAK,CAAC,KAAK;YACT,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBAE1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,4BAA4B,IAAI,EAAE,CAAC,CAAC;oBACjE,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;gBAC9D,CAAC;gBAED,OAAO;oBACL,SAAS,EAAE,uBAAuB;oBAClC,IAAI,EAAE,IAAI;iBACX,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,uBAAuB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBAChF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBACrC,QAAQ,EAAE,EAAE;oBACZ,MAAM,EAAE,IAAiC;iBAC1C,CAAC;gBAEF,OAAO;oBACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,UAAU,EAAE,OAAO,CAAC,OAAO;iBAC5B,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,91 @@
1
+ type BundlerVirtualEntryLoader = "css" | "ts";
2
+ type BundlerDiscoverRuleStrategy = "entry" | "bundle" | "ignore" | "aggregate";
3
+ type BundlerEntryKind = "entry" | "bundle";
4
+ type BundlerEntrySource = "discover" | "internal";
5
+ type BundlerAggregateKind = "module-map";
6
+ type BundlerAggregateModuleMapExports = {
7
+ root?: string;
8
+ map: string;
9
+ resolver: string;
10
+ default?: boolean;
11
+ };
12
+ type BundlerAggregateModuleMap = {
13
+ kind: "module-map";
14
+ rootModule?: string;
15
+ rootModuleExportName?: string;
16
+ matchedModuleExportName?: string;
17
+ keyFromPath?: "relative-path";
18
+ collapseIndex?: boolean;
19
+ allowEmpty?: boolean;
20
+ exports?: BundlerAggregateModuleMapExports;
21
+ };
22
+ type BundlerDiscoverEntryRule = {
23
+ key: string;
24
+ include: string[];
25
+ exclude?: string[];
26
+ strategy: "entry";
27
+ };
28
+ type BundlerDiscoverBundleRule = {
29
+ key: string;
30
+ include: string[];
31
+ exclude?: string[];
32
+ strategy: "bundle";
33
+ maxBundleSize?: number | string;
34
+ };
35
+ type BundlerDiscoverIgnoreRule = {
36
+ key: string;
37
+ include: string[];
38
+ exclude?: string[];
39
+ strategy: "ignore";
40
+ };
41
+ type BundlerDiscoverAggregateRule = {
42
+ key: string;
43
+ include: string[];
44
+ exclude?: string[];
45
+ strategy: "aggregate";
46
+ aggregate: BundlerAggregateModuleMap;
47
+ };
48
+ type BundlerDiscoverRule = BundlerDiscoverEntryRule | BundlerDiscoverBundleRule | BundlerDiscoverIgnoreRule | BundlerDiscoverAggregateRule;
49
+ type BundlerDiscoverOptions = {
50
+ dir: string;
51
+ rules: BundlerDiscoverRule[];
52
+ ignoreDirs?: string[];
53
+ };
54
+ type BundlerAggregateEntryMetadata = {
55
+ kind: "module-map";
56
+ rootModule?: string;
57
+ matchedSources: string[];
58
+ };
59
+ type BundlerAggregateRuleMetadata = {
60
+ kind: "module-map";
61
+ rootModule?: string;
62
+ };
63
+ type BundlerEntryRecord = {
64
+ aggregate?: BundlerAggregateEntryMetadata;
65
+ contents?: string;
66
+ entrySource?: string;
67
+ generated: boolean;
68
+ key: string;
69
+ kind: BundlerEntryKind;
70
+ name: string;
71
+ ownedSources: string[];
72
+ path: string;
73
+ ruleKey: string;
74
+ source: BundlerEntrySource;
75
+ strategy: Exclude<BundlerDiscoverRuleStrategy, "ignore">;
76
+ virtualLoader?: BundlerVirtualEntryLoader;
77
+ };
78
+ type BundlerResolvedRule = {
79
+ aggregate?: BundlerAggregateRuleMetadata;
80
+ entryKeys: string[];
81
+ ignoredSources: string[];
82
+ ruleKey: string;
83
+ strategy: BundlerDiscoverRuleStrategy;
84
+ };
85
+ type BundlerResolvedDiscovery = {
86
+ entries: BundlerEntryRecord[];
87
+ rules: Record<string, BundlerResolvedRule>;
88
+ sourceOwners: Record<string, string>;
89
+ };
90
+ export type { BundlerAggregateEntryMetadata, BundlerAggregateKind, BundlerAggregateModuleMap, BundlerAggregateModuleMapExports, BundlerAggregateRuleMetadata, BundlerDiscoverAggregateRule, BundlerDiscoverBundleRule, BundlerDiscoverEntryRule, BundlerDiscoverIgnoreRule, BundlerDiscoverOptions, BundlerDiscoverRule, BundlerDiscoverRuleStrategy, BundlerEntryKind, BundlerEntryRecord, BundlerEntrySource, BundlerResolvedDiscovery, BundlerResolvedRule, BundlerVirtualEntryLoader, };
91
+ //# sourceMappingURL=discovery.d.ts.map