@trebired/bundler 0.1.0 → 0.3.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 (45) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +168 -9
  3. package/dist/core/build.d.ts.map +1 -1
  4. package/dist/core/build.js +11 -2
  5. package/dist/core/build.js.map +1 -1
  6. package/dist/core/derive-manifest.d.ts +10 -0
  7. package/dist/core/derive-manifest.d.ts.map +1 -0
  8. package/dist/core/derive-manifest.js +150 -0
  9. package/dist/core/derive-manifest.js.map +1 -0
  10. package/dist/core/discovery-watch.d.ts +9 -0
  11. package/dist/core/discovery-watch.d.ts.map +1 -0
  12. package/dist/core/discovery-watch.js +71 -0
  13. package/dist/core/discovery-watch.js.map +1 -0
  14. package/dist/core/discovery.d.ts +30 -0
  15. package/dist/core/discovery.d.ts.map +1 -0
  16. package/dist/core/discovery.js +257 -0
  17. package/dist/core/discovery.js.map +1 -0
  18. package/dist/core/esbuild-options.d.ts +7 -2
  19. package/dist/core/esbuild-options.d.ts.map +1 -1
  20. package/dist/core/esbuild-options.js +18 -22
  21. package/dist/core/esbuild-options.js.map +1 -1
  22. package/dist/core/manifest.d.ts +15 -0
  23. package/dist/core/manifest.d.ts.map +1 -0
  24. package/dist/core/manifest.js +31 -0
  25. package/dist/core/manifest.js.map +1 -0
  26. package/dist/core/shared.d.ts +6 -2
  27. package/dist/core/shared.d.ts.map +1 -1
  28. package/dist/core/shared.js +14 -2
  29. package/dist/core/shared.js.map +1 -1
  30. package/dist/core/watch.d.ts.map +1 -1
  31. package/dist/core/watch.js +125 -14
  32. package/dist/core/watch.js.map +1 -1
  33. package/dist/index.d.ts +3 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +2 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/plugins/source-annotations.js +1 -1
  38. package/dist/plugins/source-annotations.js.map +1 -1
  39. package/dist/plugins/virtual-entries.d.ts +11 -0
  40. package/dist/plugins/virtual-entries.d.ts.map +1 -0
  41. package/dist/plugins/virtual-entries.js +32 -0
  42. package/dist/plugins/virtual-entries.js.map +1 -0
  43. package/dist/types.d.ts +58 -2
  44. package/dist/types.d.ts.map +1 -1
  45. package/package.json +1 -1
@@ -0,0 +1,257 @@
1
+ import fs from "node:fs";
2
+ import fsp from "node:fs/promises";
3
+ import path from "node:path";
4
+ const DEFAULT_DISCOVERY_EXTENSIONS = [".css", ".js", ".jsx", ".scss", ".ts", ".tsx"];
5
+ const DEFAULT_IGNORE_DIRS = [".git", "coverage", "dist", "node_modules"];
6
+ const VIRTUAL_ENTRY_PREFIX = "trebired-virtual:";
7
+ function toPosixPath(value) {
8
+ return value.replace(/\\/g, "/");
9
+ }
10
+ function normalizePathValue(value) {
11
+ return toPosixPath(String(value || "").trim()).replace(/^\.\/+/, "");
12
+ }
13
+ function globToRegExp(pattern) {
14
+ const normalized = normalizePathValue(pattern);
15
+ let source = "";
16
+ for (let index = 0; index < normalized.length; index += 1) {
17
+ const char = normalized[index];
18
+ const next = normalized[index + 1];
19
+ const afterNext = normalized[index + 2];
20
+ if (char === "*" && next === "*" && afterNext === "/") {
21
+ source += "(?:.*/)?";
22
+ index += 2;
23
+ continue;
24
+ }
25
+ if (char === "*" && next === "*") {
26
+ source += ".*";
27
+ index += 1;
28
+ continue;
29
+ }
30
+ if (char === "*") {
31
+ source += "[^/]*";
32
+ continue;
33
+ }
34
+ if (char === "?") {
35
+ source += ".";
36
+ continue;
37
+ }
38
+ if (/[|\\{}()[\]^$+?.]/.test(char)) {
39
+ source += `\\${char}`;
40
+ continue;
41
+ }
42
+ source += char;
43
+ }
44
+ return new RegExp(`^${source}$`);
45
+ }
46
+ function matchesAnyPattern(value, patterns) {
47
+ if (!patterns.length)
48
+ return false;
49
+ const normalized = normalizePathValue(value);
50
+ const base = path.basename(normalized);
51
+ return patterns.some((pattern) => {
52
+ const normalizedPattern = normalizePathValue(pattern);
53
+ if (!normalizedPattern)
54
+ return false;
55
+ if (normalizedPattern === normalized || normalizedPattern === base)
56
+ return true;
57
+ return globToRegExp(normalizedPattern).test(normalized);
58
+ });
59
+ }
60
+ function normalizeStringList(values) {
61
+ return (values || []).map(normalizePathValue).filter(Boolean);
62
+ }
63
+ function normalizeDiscoverOptions(rootDir, discover) {
64
+ const list = Array.isArray(discover) ? discover : discover ? [discover] : [];
65
+ return list
66
+ .map((item) => item && typeof item === "object" ? item : null)
67
+ .filter(Boolean)
68
+ .map((item) => {
69
+ const dir = normalizePathValue(item.dir);
70
+ if (!dir) {
71
+ throw new Error("bundler-discover-missing-dir");
72
+ }
73
+ const extensions = (item.extensions && item.extensions.length ? item.extensions : DEFAULT_DISCOVERY_EXTENSIONS)
74
+ .map((value) => String(value || "").trim().toLowerCase())
75
+ .filter(Boolean)
76
+ .map((value) => value.startsWith(".") ? value : `.${value}`);
77
+ return {
78
+ dir,
79
+ dirAbs: path.resolve(rootDir, dir),
80
+ exclude: normalizeStringList(item.exclude),
81
+ extensions,
82
+ ignoreDirs: new Set([
83
+ ...DEFAULT_IGNORE_DIRS,
84
+ ...normalizeStringList(item.ignoreDirs),
85
+ ].map((value) => path.basename(value))),
86
+ include: normalizeStringList(item.include),
87
+ namePrefix: normalizePathValue(item.namePrefix || ""),
88
+ };
89
+ });
90
+ }
91
+ function normalizeManualEntries(entries, rootDir) {
92
+ if (!entries)
93
+ return [];
94
+ if (Array.isArray(entries)) {
95
+ return entries
96
+ .map((value) => String(value || "").trim())
97
+ .filter(Boolean)
98
+ .map((value) => {
99
+ const rel = normalizePathValue(value);
100
+ const ext = path.extname(rel);
101
+ const noExt = ext ? rel.slice(0, -ext.length) : rel;
102
+ return {
103
+ name: noExt,
104
+ path: path.resolve(rootDir, rel),
105
+ source: "manual",
106
+ };
107
+ });
108
+ }
109
+ if (typeof entries === "object") {
110
+ return Object.entries(entries)
111
+ .map(([key, value]) => ({
112
+ name: normalizePathValue(key),
113
+ path: path.resolve(rootDir, String(value || "").trim()),
114
+ source: "manual",
115
+ }))
116
+ .filter((entry) => Boolean(entry.name && entry.path));
117
+ }
118
+ return [];
119
+ }
120
+ function normalizeVirtualEntries(virtualEntries) {
121
+ if (!virtualEntries || typeof virtualEntries !== "object")
122
+ return [];
123
+ return Object.entries(virtualEntries)
124
+ .map(([key, value]) => ({
125
+ name: normalizePathValue(key),
126
+ path: `${VIRTUAL_ENTRY_PREFIX}${normalizePathValue(key)}`,
127
+ source: "virtual",
128
+ contents: String(value || ""),
129
+ }))
130
+ .filter((entry) => Boolean(entry.name));
131
+ }
132
+ function buildDiscoveredEntryName(args) {
133
+ const ext = path.extname(args.relativePath);
134
+ const withoutExt = ext ? args.relativePath.slice(0, -ext.length) : args.relativePath;
135
+ return normalizePathValue([args.config.namePrefix, withoutExt].filter(Boolean).join("/"));
136
+ }
137
+ async function walkDiscoveredEntries(config) {
138
+ if (!fs.existsSync(config.dirAbs))
139
+ return [];
140
+ const records = [];
141
+ const visit = async (currentAbs) => {
142
+ const entries = await fsp.readdir(currentAbs, { withFileTypes: true });
143
+ for (const entry of entries) {
144
+ const abs = path.join(currentAbs, entry.name);
145
+ const relFromDiscover = normalizePathValue(path.relative(config.dirAbs, abs));
146
+ if (!relFromDiscover)
147
+ continue;
148
+ if (entry.isDirectory()) {
149
+ if (config.ignoreDirs.has(entry.name))
150
+ continue;
151
+ if (matchesAnyPattern(relFromDiscover, config.exclude))
152
+ continue;
153
+ await visit(abs);
154
+ continue;
155
+ }
156
+ if (!entry.isFile())
157
+ continue;
158
+ const ext = path.extname(entry.name).toLowerCase();
159
+ if (!config.extensions.includes(ext))
160
+ continue;
161
+ if (config.include.length && !matchesAnyPattern(relFromDiscover, config.include))
162
+ continue;
163
+ if (matchesAnyPattern(relFromDiscover, config.exclude))
164
+ continue;
165
+ records.push({
166
+ name: buildDiscoveredEntryName({
167
+ config,
168
+ relativePath: relFromDiscover,
169
+ }),
170
+ path: abs,
171
+ source: "discover",
172
+ });
173
+ }
174
+ };
175
+ await visit(config.dirAbs);
176
+ return records.sort((a, b) => a.name.localeCompare(b.name) || a.path.localeCompare(b.path));
177
+ }
178
+ async function resolveBundlerEntries(options, rootDir, settings = {}) {
179
+ const manual = normalizeManualEntries(options.entries, rootDir);
180
+ const virtual = normalizeVirtualEntries(options.virtualEntries);
181
+ const discoveredGroups = await Promise.all(normalizeDiscoverOptions(rootDir, options.discover).map(walkDiscoveredEntries));
182
+ const discovered = discoveredGroups.flat();
183
+ const all = [...manual, ...virtual, ...discovered];
184
+ if (!all.length && !settings.allowEmpty) {
185
+ throw new Error("bundler-missing-entries");
186
+ }
187
+ const byName = new Map();
188
+ for (const record of all) {
189
+ const existing = byName.get(record.name);
190
+ if (!existing) {
191
+ byName.set(record.name, record);
192
+ continue;
193
+ }
194
+ if (existing.path === record.path)
195
+ continue;
196
+ throw new Error(`bundler-entry-name-conflict :: ${record.name}`);
197
+ }
198
+ const records = Array.from(byName.values()).sort((a, b) => a.name.localeCompare(b.name) || a.path.localeCompare(b.path));
199
+ const signature = JSON.stringify(records.map((record) => ({
200
+ contents: record.source === "virtual" ? record.contents || "" : undefined,
201
+ name: record.name,
202
+ path: record.source === "virtual"
203
+ ? `virtual:${record.name}`
204
+ : normalizePathValue(path.relative(rootDir, record.path)),
205
+ source: record.source,
206
+ })));
207
+ return {
208
+ records,
209
+ signature,
210
+ };
211
+ }
212
+ function toEntryPointMap(records, rootDir) {
213
+ return Object.fromEntries(records.map((record) => [
214
+ record.name,
215
+ record.source === "virtual"
216
+ ? record.path
217
+ : normalizePathValue(path.relative(rootDir, record.path)),
218
+ ]));
219
+ }
220
+ function toPublicEntryMap(records, rootDir) {
221
+ return Object.fromEntries(records.map((record) => [
222
+ record.name,
223
+ record.source === "virtual"
224
+ ? `virtual:${record.name}`
225
+ : normalizePathValue(path.relative(rootDir, record.path)),
226
+ ]));
227
+ }
228
+ function normalizeManifestOptions(manifest) {
229
+ if (!manifest) {
230
+ return { enabled: false };
231
+ }
232
+ if (manifest === true) {
233
+ return {
234
+ enabled: true,
235
+ file: "bundler-manifest.json",
236
+ };
237
+ }
238
+ return {
239
+ enabled: true,
240
+ file: normalizePathValue(manifest.file || "bundler-manifest.json"),
241
+ };
242
+ }
243
+ function normalizeDiscoverRoots(rootDir, discover) {
244
+ const roots = normalizeDiscoverOptions(rootDir, discover).map((item) => {
245
+ let current = item.dirAbs;
246
+ while (!fs.existsSync(current)) {
247
+ const parent = path.dirname(current);
248
+ if (parent === current)
249
+ return rootDir;
250
+ current = parent;
251
+ }
252
+ return current;
253
+ });
254
+ return Array.from(new Set(roots));
255
+ }
256
+ export { normalizeDiscoverRoots, normalizeManifestOptions, resolveBundlerEntries, toPublicEntryMap, toEntryPointMap, toPosixPath, VIRTUAL_ENTRY_PREFIX, };
257
+ //# sourceMappingURL=discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/core/discovery.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,20 @@
1
1
  import type { BuildOptions } from "esbuild";
2
- import type { BundlerOptions, NormalizedBundlerLogger } from "../types.js";
2
+ import type { BundlerOptions, BundlerEntryRecord, NormalizedBundlerLogger } from "../types.js";
3
+ import { normalizeManifestOptions } from "./discovery.js";
3
4
  type NormalizedBundlerOptions = {
4
5
  annotateSources: boolean;
5
6
  clean: boolean;
6
7
  define?: Record<string, string>;
7
- entries: string[] | Record<string, string>;
8
+ entries?: string[] | Record<string, string>;
9
+ entryRecords?: BundlerEntryRecord[];
8
10
  external?: string[];
9
11
  format?: BundlerOptions["format"];
10
12
  logger?: BundlerOptions["logger"];
11
13
  loggerAdapter?: BundlerOptions["loggerAdapter"];
14
+ manifest: ReturnType<typeof normalizeManifestOptions>;
12
15
  minify: boolean;
16
+ onEntrySetChanged?: BundlerOptions["onEntrySetChanged"];
17
+ onRebuilt?: BundlerOptions["onRebuilt"];
13
18
  outDir: string;
14
19
  platform?: BundlerOptions["platform"];
15
20
  publicPath?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"esbuild-options.d.ts","sourceRoot":"","sources":["../../src/core/esbuild-options.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,OAAO,KAAK,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3E,KAAK,wBAAwB,GAAG;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5B,CAAC;AA4BF,iBAAS,uBAAuB,CAAC,OAAO,EAAE,cAAc,GAAG,wBAAwB,CA6BlF;AAED,iBAAS,oBAAoB,CAC3B,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,uBAAuB,GAC9B,YAAY,CAyCd;AAED,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,CAAC;AACzD,YAAY,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"esbuild-options.d.ts","sourceRoot":"","sources":["../../src/core/esbuild-options.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAK5C,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAmB,MAAM,gBAAgB,CAAC;AAE3E,KAAK,wBAAwB,GAAG;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,YAAY,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACpC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,aAAa,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;IAChD,QAAQ,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC;IACtD,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,CAAC,EAAE,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACxD,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,iBAAS,uBAAuB,CAAC,OAAO,EAAE,cAAc,GAAG,wBAAwB,CA8BlF;AAED,iBAAS,oBAAoB,CAC3B,OAAO,EAAE,wBAAwB,EACjC,MAAM,EAAE,uBAAuB,GAC9B,YAAY,CAsDd;AAED,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,CAAC;AACzD,YAAY,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,25 +1,8 @@
1
1
  import path from "node:path";
2
2
  import { createScssPlugin } from "../plugins/scss.js";
3
3
  import { createSourceAnnotationsPlugin } from "../plugins/source-annotations.js";
4
- function normalizeEntries(entries) {
5
- if (Array.isArray(entries)) {
6
- const filtered = entries.map((value) => String(value || "").trim()).filter(Boolean);
7
- if (!filtered.length) {
8
- throw new Error("bundler-missing-entries");
9
- }
10
- return filtered;
11
- }
12
- if (!entries || typeof entries !== "object") {
13
- throw new Error("bundler-missing-entries");
14
- }
15
- const normalized = Object.fromEntries(Object.entries(entries)
16
- .map(([key, value]) => [String(key || "").trim(), String(value || "").trim()])
17
- .filter(([key, value]) => Boolean(key && value)));
18
- if (Object.keys(normalized).length === 0) {
19
- throw new Error("bundler-missing-entries");
20
- }
21
- return normalized;
22
- }
4
+ import { createVirtualEntriesPlugin } from "../plugins/virtual-entries.js";
5
+ import { normalizeManifestOptions, toEntryPointMap } from "./discovery.js";
23
6
  function normalizeBundlerOptions(options) {
24
7
  const rootDir = path.resolve(String(options.rootDir || "").trim() || process.cwd());
25
8
  const outDir = String(options.outDir || "").trim();
@@ -27,17 +10,19 @@ function normalizeBundlerOptions(options) {
27
10
  throw new Error("bundler-missing-out-dir");
28
11
  }
29
12
  const resolvedOutDir = path.resolve(rootDir, outDir);
30
- const entries = normalizeEntries(options.entries);
31
13
  return {
32
14
  annotateSources: Boolean(options.annotateSources),
33
15
  clean: options.clean !== false,
34
16
  define: options.define,
35
- entries,
17
+ entries: options.entries,
36
18
  external: options.external,
37
19
  format: options.format,
38
20
  logger: options.logger,
39
21
  loggerAdapter: options.loggerAdapter,
22
+ manifest: normalizeManifestOptions(options.manifest),
40
23
  minify: Boolean(options.minify),
24
+ onEntrySetChanged: options.onEntrySetChanged,
25
+ onRebuilt: options.onRebuilt,
41
26
  outDir: resolvedOutDir,
42
27
  platform: options.platform,
43
28
  publicPath: options.publicPath,
@@ -48,6 +33,12 @@ function normalizeBundlerOptions(options) {
48
33
  };
49
34
  }
50
35
  function createEsbuildOptions(options, logger) {
36
+ const entryPoints = options.entryRecords
37
+ ? toEntryPointMap(options.entryRecords, options.rootDir)
38
+ : options.entries;
39
+ if (!entryPoints || (typeof entryPoints === "object" && !Array.isArray(entryPoints) && Object.keys(entryPoints).length === 0)) {
40
+ throw new Error("bundler-missing-entries");
41
+ }
51
42
  if (options.annotateSources) {
52
43
  logger.info("annotate", "inline source annotations enabled");
53
44
  }
@@ -56,7 +47,7 @@ function createEsbuildOptions(options, logger) {
56
47
  absWorkingDir: options.rootDir,
57
48
  bundle: true,
58
49
  define: options.define,
59
- entryPoints: options.entries,
50
+ entryPoints,
60
51
  external: options.external,
61
52
  format: options.format,
62
53
  legalComments: options.annotateSources ? "inline" : undefined,
@@ -67,6 +58,11 @@ function createEsbuildOptions(options, logger) {
67
58
  outdir: options.outDir,
68
59
  platform: options.platform,
69
60
  plugins: [
61
+ createVirtualEntriesPlugin({
62
+ entries: options.entryRecords || [],
63
+ logger,
64
+ rootDir: options.rootDir,
65
+ }),
70
66
  createScssPlugin({
71
67
  annotateSources: options.annotateSources,
72
68
  logger,
@@ -1 +1 @@
1
- {"version":3,"file":"esbuild-options.js","sourceRoot":"","sources":["../../src/core/esbuild-options.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"esbuild-options.js","sourceRoot":"","sources":["../../src/core/esbuild-options.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAyB3E,SAAS,uBAAuB,CAAC,OAAuB;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEnD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrD,OAAO;QACL,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,KAAK;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,QAAQ,EAAE,wBAAwB,CAAC,OAAO,CAAC,QAAQ,CAAC;QACpD,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QAC/B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,OAAO;QACP,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QACrC,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,OAAiC,EACjC,MAA+B;IAE/B,MAAM,WAAW,GAAG,OAAO,CAAC,YAAY;QACtC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC;QACxD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IAEpB,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9H,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,mCAAmC,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IAE7C,OAAO;QACL,aAAa,EAAE,OAAO,CAAC,OAAO;QAC9B,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,WAAW;QACX,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC7D,QAAQ,EAAE,QAAQ;QAClB,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE;YACP,0BAA0B,CAAC;gBACzB,OAAO,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;gBACnC,MAAM;gBACN,OAAO,EAAE,OAAO,CAAC,OAAO;aACzB,CAAC;YACF,gBAAgB,CAAC;gBACf,eAAe,EAAE,OAAO,CAAC,eAAe;gBACxC,MAAM;gBACN,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;aAC7C,CAAC;YACF,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC5B,6BAA6B,CAAC;oBAC5B,MAAM;oBACN,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC;aACH,CAAC,CAAC,CAAC,EAAE,CAAC;SACR;QACD,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,IAAI;KACZ,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { Metafile } from "esbuild";
2
+ import type { BundlerEntryRecord } from "../types.js";
3
+ import type { NormalizedManifestOptions } from "./discovery.js";
4
+ type ManifestWriteResult = {
5
+ manifestPath?: string;
6
+ };
7
+ declare function writeBundlerManifest(args: {
8
+ entries: BundlerEntryRecord[];
9
+ metafile?: Metafile;
10
+ manifest: NormalizedManifestOptions;
11
+ outDir: string;
12
+ rootDir: string;
13
+ }): Promise<ManifestWriteResult>;
14
+ export { writeBundlerManifest };
15
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/core/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,KAAK,mBAAmB,GAAG;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,iBAAe,oBAAoB,CAAC,IAAI,EAAE;IACxC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA8B/B;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { toPosixPath } from "./discovery.js";
4
+ import { deriveManifest } from "./derive-manifest.js";
5
+ async function writeBundlerManifest(args) {
6
+ if (!args.manifest.enabled || !args.manifest.file || !args.metafile) {
7
+ return {};
8
+ }
9
+ const manifestPath = path.resolve(args.outDir, args.manifest.file);
10
+ await fs.mkdir(path.dirname(manifestPath), { recursive: true });
11
+ const body = {
12
+ generatedAt: new Date().toISOString(),
13
+ resolvedEntries: Object.fromEntries(args.entries.map((entry) => [
14
+ entry.name,
15
+ {
16
+ path: entry.source === "virtual"
17
+ ? `virtual:${entry.name}`
18
+ : toPosixPath(path.relative(args.rootDir, entry.path)),
19
+ source: entry.source,
20
+ },
21
+ ])),
22
+ ...deriveManifest(args.metafile, {
23
+ outDir: args.outDir,
24
+ rootDir: args.rootDir,
25
+ }),
26
+ };
27
+ await fs.writeFile(`${manifestPath}`, `${JSON.stringify(body, null, 2)}\n`);
28
+ return { manifestPath };
29
+ }
30
+ export { writeBundlerManifest };
31
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/core/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAMtD,KAAK,UAAU,oBAAoB,CAAC,IAMnC;IACC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,IAAI,GAAG;QACX,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,eAAe,EAAE,MAAM,CAAC,WAAW,CACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI;YACV;gBACE,IAAI,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS;oBAC9B,CAAC,CAAC,WAAW,KAAK,CAAC,IAAI,EAAE;oBACzB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxD,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB;SACF,CAAC,CACH;QACD,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;KACH,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAE5E,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1,11 +1,15 @@
1
1
  import type { BuildResult, Message } from "esbuild";
2
- import type { BundlerBuildResult, NormalizedBundlerLogger } from "../types.js";
2
+ import type { BundlerBuildResult, BundlerEntryRecord, NormalizedBundlerLogger } from "../types.js";
3
+ import type { NormalizedManifestOptions } from "./discovery.js";
3
4
  declare function logWarnings(logger: NormalizedBundlerLogger, warnings: Message[]): void;
4
5
  declare function toBuildResult(args: {
6
+ entries: BundlerEntryRecord[];
7
+ manifest: NormalizedManifestOptions;
8
+ outDir: string;
5
9
  result: BuildResult<any>;
6
10
  rootDir: string;
7
11
  startedAt: number;
8
- }): BundlerBuildResult;
12
+ }): Promise<BundlerBuildResult>;
9
13
  declare function cleanOutDir(outDir: string): Promise<void>;
10
14
  declare function formatFailure(error: unknown): string;
11
15
  export { cleanOutDir, formatFailure, logWarnings, toBuildResult };
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/core/shared.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAU/E,iBAAS,WAAW,CAAC,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAI/E;AAUD,iBAAS,aAAa,CAAC,IAAI,EAAE;IAC3B,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,kBAAkB,CAOrB;AAED,iBAAe,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO7C;AAED,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/core/shared.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGnG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAUhE,iBAAS,WAAW,CAAC,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAI/E;AAUD,iBAAe,aAAa,CAAC,IAAI,EAAE;IACjC,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,QAAQ,EAAE,yBAAyB,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkB9B;AAED,iBAAe,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO7C;AAED,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
+ import { toPublicEntryMap } from "./discovery.js";
4
+ import { writeBundlerManifest } from "./manifest.js";
3
5
  function formatEsbuildMessage(message) {
4
6
  const location = message.location
5
7
  ? `${message.location.file}:${message.location.line}:${message.location.column}`
@@ -19,11 +21,21 @@ function resolveOutputs(result, rootDir) {
19
21
  .map((value) => path.isAbsolute(value) ? value : path.resolve(rootDir, value))
20
22
  .sort();
21
23
  }
22
- function toBuildResult(args) {
24
+ async function toBuildResult(args) {
25
+ const outputs = resolveOutputs(args.result, args.rootDir);
26
+ const manifestWrite = await writeBundlerManifest({
27
+ entries: args.entries,
28
+ metafile: args.result.metafile,
29
+ manifest: args.manifest,
30
+ outDir: args.outDir,
31
+ rootDir: args.rootDir,
32
+ });
23
33
  return {
24
- outputs: resolveOutputs(args.result, args.rootDir),
34
+ entries: toPublicEntryMap(args.entries, args.rootDir),
35
+ outputs,
25
36
  warnings: args.result.warnings.length,
26
37
  metafile: args.result.metafile,
38
+ manifestPath: manifestWrite.manifestPath,
27
39
  durationMs: Date.now() - args.startedAt,
28
40
  };
29
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/core/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAK7B,SAAS,oBAAoB,CAAC,OAAyB;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ;QAC/B,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;QAChF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,MAA+B,EAAE,QAAmB;IACvE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAwB,EAAE,OAAe;IAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEhC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;SACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC7E,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,aAAa,CAAC,IAItB;IACC,OAAO;QACL,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC;QAClD,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;QACrC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;QAC9B,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS;KACxC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,MAAc;IACvC,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAE,KAAgC,CAAC,MAAM,CAAC,EAAE,CAAC;QAClG,MAAM,MAAM,GAAI,KAAwC,CAAC,MAAM,CAAC;QAChE,OAAO,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/core/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,SAAS,oBAAoB,CAAC,OAAyB;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ;QAC/B,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;QAChF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,WAAW,CAAC,MAA+B,EAAE,QAAmB;IACvE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAwB,EAAE,OAAe;IAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAEhC,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;SACxC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;SAC7E,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAO5B;IACC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC;QAC/C,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;QAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QACrD,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;QACrC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;QAC9B,YAAY,EAAE,aAAa,CAAC,YAAY;QACxC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS;KACxC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,MAAc;IACvC,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAE,KAAgC,CAAC,MAAM,CAAC,EAAE,CAAC;QAClG,MAAM,MAAM,GAAI,KAAwC,CAAC,MAAM,CAAC;QAChE,OAAO,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/core/watch.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAsB,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAI3F,iBAAe,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAwD1E;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/core/watch.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAsB,cAAc,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAM3F,iBAAe,KAAK,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA8K1E;AAED,OAAO,EAAE,KAAK,EAAE,CAAC"}