plgg-bundle 0.0.1 → 0.0.2

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 (185) hide show
  1. package/package.json +1 -4
  2. package/dist/Dev/fixtures/devPoc.spec.d.ts +0 -2
  3. package/dist/Dev/fixtures/devPoc.spec.d.ts.map +0 -1
  4. package/dist/Dev/fixtures/devPoc.spec.js +0 -145
  5. package/dist/Dev/fixtures/devPoc.spec.js.map +0 -1
  6. package/dist/Dev/model/Fetch.d.ts +0 -20
  7. package/dist/Dev/model/Fetch.d.ts.map +0 -1
  8. package/dist/Dev/model/Fetch.js +0 -8
  9. package/dist/Dev/model/Fetch.js.map +0 -1
  10. package/dist/Dev/model/ModuleGraph.d.ts +0 -27
  11. package/dist/Dev/model/ModuleGraph.d.ts.map +0 -1
  12. package/dist/Dev/model/ModuleGraph.js +0 -2
  13. package/dist/Dev/model/ModuleGraph.js.map +0 -1
  14. package/dist/Dev/model/Protocol.d.ts +0 -22
  15. package/dist/Dev/model/Protocol.d.ts.map +0 -1
  16. package/dist/Dev/model/Protocol.js +0 -31
  17. package/dist/Dev/model/Protocol.js.map +0 -1
  18. package/dist/Dev/node/devServer.d.ts +0 -21
  19. package/dist/Dev/node/devServer.d.ts.map +0 -1
  20. package/dist/Dev/node/devServer.js +0 -298
  21. package/dist/Dev/node/devServer.js.map +0 -1
  22. package/dist/Dev/node/httpAdapter.d.ts +0 -19
  23. package/dist/Dev/node/httpAdapter.d.ts.map +0 -1
  24. package/dist/Dev/node/httpAdapter.js +0 -76
  25. package/dist/Dev/node/httpAdapter.js.map +0 -1
  26. package/dist/Dev/node/scanGraph.d.ts +0 -21
  27. package/dist/Dev/node/scanGraph.d.ts.map +0 -1
  28. package/dist/Dev/node/scanGraph.js +0 -145
  29. package/dist/Dev/node/scanGraph.js.map +0 -1
  30. package/dist/Dev/node/watch.d.ts +0 -10
  31. package/dist/Dev/node/watch.d.ts.map +0 -1
  32. package/dist/Dev/node/watch.js +0 -44
  33. package/dist/Dev/node/watch.js.map +0 -1
  34. package/dist/Dev/usecase/allowedHost.d.ts +0 -16
  35. package/dist/Dev/usecase/allowedHost.d.ts.map +0 -1
  36. package/dist/Dev/usecase/allowedHost.js +0 -33
  37. package/dist/Dev/usecase/allowedHost.js.map +0 -1
  38. package/dist/Dev/usecase/allowedHost.spec.d.ts +0 -2
  39. package/dist/Dev/usecase/allowedHost.spec.d.ts.map +0 -1
  40. package/dist/Dev/usecase/allowedHost.spec.js +0 -13
  41. package/dist/Dev/usecase/allowedHost.spec.js.map +0 -1
  42. package/dist/Dev/usecase/buildGraph.d.ts +0 -12
  43. package/dist/Dev/usecase/buildGraph.d.ts.map +0 -1
  44. package/dist/Dev/usecase/buildGraph.js +0 -24
  45. package/dist/Dev/usecase/buildGraph.js.map +0 -1
  46. package/dist/Dev/usecase/buildGraph.spec.d.ts +0 -2
  47. package/dist/Dev/usecase/buildGraph.spec.d.ts.map +0 -1
  48. package/dist/Dev/usecase/buildGraph.spec.js +0 -16
  49. package/dist/Dev/usecase/buildGraph.spec.js.map +0 -1
  50. package/dist/Dev/usecase/decorateDevHtml.d.ts +0 -12
  51. package/dist/Dev/usecase/decorateDevHtml.d.ts.map +0 -1
  52. package/dist/Dev/usecase/decorateDevHtml.js +0 -15
  53. package/dist/Dev/usecase/decorateDevHtml.js.map +0 -1
  54. package/dist/Dev/usecase/decorateDevHtml.spec.d.ts +0 -2
  55. package/dist/Dev/usecase/decorateDevHtml.spec.d.ts.map +0 -1
  56. package/dist/Dev/usecase/decorateDevHtml.spec.js +0 -19
  57. package/dist/Dev/usecase/decorateDevHtml.spec.js.map +0 -1
  58. package/dist/Dev/usecase/invalidate.d.ts +0 -17
  59. package/dist/Dev/usecase/invalidate.d.ts.map +0 -1
  60. package/dist/Dev/usecase/invalidate.js +0 -57
  61. package/dist/Dev/usecase/invalidate.js.map +0 -1
  62. package/dist/Dev/usecase/invalidate.spec.d.ts +0 -2
  63. package/dist/Dev/usecase/invalidate.spec.d.ts.map +0 -1
  64. package/dist/Dev/usecase/invalidate.spec.js +0 -64
  65. package/dist/Dev/usecase/invalidate.spec.js.map +0 -1
  66. package/dist/Dev/usecase/parseImports.d.ts +0 -24
  67. package/dist/Dev/usecase/parseImports.d.ts.map +0 -1
  68. package/dist/Dev/usecase/parseImports.js +0 -40
  69. package/dist/Dev/usecase/parseImports.js.map +0 -1
  70. package/dist/Dev/usecase/parseImports.spec.d.ts +0 -2
  71. package/dist/Dev/usecase/parseImports.spec.d.ts.map +0 -1
  72. package/dist/Dev/usecase/parseImports.spec.js +0 -24
  73. package/dist/Dev/usecase/parseImports.spec.js.map +0 -1
  74. package/dist/Dev/usecase/reloadDecision.d.ts +0 -20
  75. package/dist/Dev/usecase/reloadDecision.d.ts.map +0 -1
  76. package/dist/Dev/usecase/reloadDecision.js +0 -52
  77. package/dist/Dev/usecase/reloadDecision.js.map +0 -1
  78. package/dist/Dev/usecase/reloadDecision.spec.d.ts +0 -2
  79. package/dist/Dev/usecase/reloadDecision.spec.d.ts.map +0 -1
  80. package/dist/Dev/usecase/reloadDecision.spec.js +0 -17
  81. package/dist/Dev/usecase/reloadDecision.spec.js.map +0 -1
  82. package/dist/domain/model/BundleConfig.d.ts +0 -136
  83. package/dist/domain/model/BundleConfig.d.ts.map +0 -1
  84. package/dist/domain/model/BundleConfig.js +0 -18
  85. package/dist/domain/model/BundleConfig.js.map +0 -1
  86. package/dist/domain/model/BundleConfig.spec.d.ts +0 -2
  87. package/dist/domain/model/BundleConfig.spec.d.ts.map +0 -1
  88. package/dist/domain/model/BundleConfig.spec.js +0 -8
  89. package/dist/domain/model/BundleConfig.spec.js.map +0 -1
  90. package/dist/domain/usecase/asBundleConfig.d.ts +0 -17
  91. package/dist/domain/usecase/asBundleConfig.d.ts.map +0 -1
  92. package/dist/domain/usecase/asBundleConfig.js +0 -179
  93. package/dist/domain/usecase/asBundleConfig.js.map +0 -1
  94. package/dist/domain/usecase/asBundleConfig.spec.d.ts +0 -2
  95. package/dist/domain/usecase/asBundleConfig.spec.d.ts.map +0 -1
  96. package/dist/domain/usecase/asBundleConfig.spec.js +0 -119
  97. package/dist/domain/usecase/asBundleConfig.spec.js.map +0 -1
  98. package/dist/domain/usecase/build.d.ts +0 -14
  99. package/dist/domain/usecase/build.d.ts.map +0 -1
  100. package/dist/domain/usecase/build.js +0 -177
  101. package/dist/domain/usecase/build.js.map +0 -1
  102. package/dist/domain/usecase/collectModules.d.ts +0 -53
  103. package/dist/domain/usecase/collectModules.d.ts.map +0 -1
  104. package/dist/domain/usecase/collectModules.js +0 -118
  105. package/dist/domain/usecase/collectModules.js.map +0 -1
  106. package/dist/domain/usecase/deriveExternal.d.ts +0 -25
  107. package/dist/domain/usecase/deriveExternal.d.ts.map +0 -1
  108. package/dist/domain/usecase/deriveExternal.js +0 -79
  109. package/dist/domain/usecase/deriveExternal.js.map +0 -1
  110. package/dist/domain/usecase/deriveExternal.spec.d.ts +0 -2
  111. package/dist/domain/usecase/deriveExternal.spec.d.ts.map +0 -1
  112. package/dist/domain/usecase/deriveExternal.spec.js +0 -56
  113. package/dist/domain/usecase/deriveExternal.spec.js.map +0 -1
  114. package/dist/domain/usecase/discoverWorkspace.d.ts +0 -27
  115. package/dist/domain/usecase/discoverWorkspace.d.ts.map +0 -1
  116. package/dist/domain/usecase/discoverWorkspace.js +0 -116
  117. package/dist/domain/usecase/discoverWorkspace.js.map +0 -1
  118. package/dist/domain/usecase/discoverWorkspace.spec.d.ts +0 -2
  119. package/dist/domain/usecase/discoverWorkspace.spec.d.ts.map +0 -1
  120. package/dist/domain/usecase/discoverWorkspace.spec.js +0 -23
  121. package/dist/domain/usecase/discoverWorkspace.spec.js.map +0 -1
  122. package/dist/domain/usecase/emitBundle.d.ts +0 -43
  123. package/dist/domain/usecase/emitBundle.d.ts.map +0 -1
  124. package/dist/domain/usecase/emitBundle.js +0 -157
  125. package/dist/domain/usecase/emitBundle.js.map +0 -1
  126. package/dist/domain/usecase/emitBundle.spec.d.ts +0 -2
  127. package/dist/domain/usecase/emitBundle.spec.d.ts.map +0 -1
  128. package/dist/domain/usecase/emitBundle.spec.js +0 -80
  129. package/dist/domain/usecase/emitBundle.spec.js.map +0 -1
  130. package/dist/domain/usecase/emitDts.d.ts +0 -32
  131. package/dist/domain/usecase/emitDts.d.ts.map +0 -1
  132. package/dist/domain/usecase/emitDts.js +0 -99
  133. package/dist/domain/usecase/emitDts.js.map +0 -1
  134. package/dist/domain/usecase/isExternal.d.ts +0 -12
  135. package/dist/domain/usecase/isExternal.d.ts.map +0 -1
  136. package/dist/domain/usecase/isExternal.js +0 -16
  137. package/dist/domain/usecase/isExternal.js.map +0 -1
  138. package/dist/domain/usecase/isExternal.spec.d.ts +0 -2
  139. package/dist/domain/usecase/isExternal.spec.d.ts.map +0 -1
  140. package/dist/domain/usecase/isExternal.spec.js +0 -16
  141. package/dist/domain/usecase/isExternal.spec.js.map +0 -1
  142. package/dist/domain/usecase/resolveSpecifier.d.ts +0 -35
  143. package/dist/domain/usecase/resolveSpecifier.d.ts.map +0 -1
  144. package/dist/domain/usecase/resolveSpecifier.js +0 -83
  145. package/dist/domain/usecase/resolveSpecifier.js.map +0 -1
  146. package/dist/domain/usecase/resolveSpecifier.spec.d.ts +0 -2
  147. package/dist/domain/usecase/resolveSpecifier.spec.d.ts.map +0 -1
  148. package/dist/domain/usecase/resolveSpecifier.spec.js +0 -44
  149. package/dist/domain/usecase/resolveSpecifier.spec.js.map +0 -1
  150. package/dist/domain/usecase/resolveWorkspaceSpecifier.d.ts +0 -29
  151. package/dist/domain/usecase/resolveWorkspaceSpecifier.d.ts.map +0 -1
  152. package/dist/domain/usecase/resolveWorkspaceSpecifier.js +0 -89
  153. package/dist/domain/usecase/resolveWorkspaceSpecifier.js.map +0 -1
  154. package/dist/domain/usecase/resolveWorkspaceSpecifier.spec.d.ts +0 -2
  155. package/dist/domain/usecase/resolveWorkspaceSpecifier.spec.d.ts.map +0 -1
  156. package/dist/domain/usecase/resolveWorkspaceSpecifier.spec.js +0 -27
  157. package/dist/domain/usecase/resolveWorkspaceSpecifier.spec.js.map +0 -1
  158. package/dist/domain/usecase/rewriteDtsAliases.d.ts +0 -25
  159. package/dist/domain/usecase/rewriteDtsAliases.d.ts.map +0 -1
  160. package/dist/domain/usecase/rewriteDtsAliases.js +0 -71
  161. package/dist/domain/usecase/rewriteDtsAliases.js.map +0 -1
  162. package/dist/domain/usecase/rewriteDtsAliases.spec.d.ts +0 -2
  163. package/dist/domain/usecase/rewriteDtsAliases.spec.d.ts.map +0 -1
  164. package/dist/domain/usecase/rewriteDtsAliases.spec.js +0 -35
  165. package/dist/domain/usecase/rewriteDtsAliases.spec.js.map +0 -1
  166. package/dist/entrypoints/cli.d.ts +0 -2
  167. package/dist/entrypoints/cli.d.ts.map +0 -1
  168. package/dist/entrypoints/cli.js +0 -79
  169. package/dist/entrypoints/cli.js.map +0 -1
  170. package/dist/index.d.ts +0 -21
  171. package/dist/index.d.ts.map +0 -1
  172. package/dist/index.js +0 -28
  173. package/dist/index.js.map +0 -1
  174. package/dist/vendors/runner.d.ts +0 -20
  175. package/dist/vendors/runner.d.ts.map +0 -1
  176. package/dist/vendors/runner.js +0 -60
  177. package/dist/vendors/runner.js.map +0 -1
  178. package/dist/vendors/runner.spec.d.ts +0 -2
  179. package/dist/vendors/runner.spec.d.ts.map +0 -1
  180. package/dist/vendors/runner.spec.js +0 -20
  181. package/dist/vendors/runner.spec.js.map +0 -1
  182. package/dist/vendors/transpiler.d.ts +0 -19
  183. package/dist/vendors/transpiler.d.ts.map +0 -1
  184. package/dist/vendors/transpiler.js +0 -42
  185. package/dist/vendors/transpiler.js.map +0 -1
@@ -1,179 +0,0 @@
1
- import {} from "plgg-bundle/domain/model/BundleConfig";
2
- /**
3
- * Validate an `unknown` value (a dynamically-imported
4
- * config module's default export) into a typed
5
- * {@link BundleConfig}. The config is the bundler's
6
- * `unknown` boundary, so every field is narrowed with a
7
- * real guard (`typeof`, `Array.isArray`) — no `as`, no
8
- * `any`. Throws a `ConfigError` on the first invalid
9
- * field.
10
- *
11
- * Externals are NOT a config field: the bundler derives
12
- * them from the package's `package.json` dependency
13
- * graph (see `deriveExternal`), so they cannot drift
14
- * from the manifest.
15
- */
16
- export const asBundleConfig = (value) => {
17
- if (!isRecord(value)) {
18
- return fail("config is not an object");
19
- }
20
- const devSection = dev(value);
21
- return {
22
- target: target(value),
23
- root: str(value, "root"),
24
- rootDir: str(value, "rootDir"),
25
- outDir: str(value, "outDir"),
26
- fileNamePattern: str(value, "fileNamePattern"),
27
- entries: entries(value),
28
- formats: formats(value),
29
- alias: alias(value),
30
- // `exactOptionalPropertyTypes`: only attach `dev` when
31
- // the config actually declared it (never `dev:
32
- // undefined`).
33
- ...(devSection === undefined
34
- ? {}
35
- : { dev: devSection }),
36
- };
37
- };
38
- /**
39
- * The optional `dev` section (see {@link DevConfig}).
40
- * Absent → `undefined` (a build-only library). Present →
41
- * every field narrowed at the boundary.
42
- */
43
- const dev = (o) => {
44
- const raw = o["dev"];
45
- if (raw === undefined) {
46
- return undefined;
47
- }
48
- if (!isRecord(raw)) {
49
- return fail(`"dev" must be an object`);
50
- }
51
- return {
52
- entry: str(raw, "entry"),
53
- port: num(raw, "port"),
54
- watch: strArray(raw, "watch"),
55
- allowedHosts: strArray(raw, "allowedHosts"),
56
- sourceAliases: sourceAliases(raw),
57
- };
58
- };
59
- /**
60
- * The optional `sourceAliases` array (defaults to `[]`):
61
- * each element `{ prefix, srcDir }` — both strings.
62
- */
63
- const sourceAliases = (o) => {
64
- const raw = o["sourceAliases"];
65
- return raw === undefined
66
- ? []
67
- : Array.isArray(raw)
68
- ? raw.map(sourceAlias)
69
- : fail(`"sourceAliases" must be an array`);
70
- };
71
- const sourceAlias = (raw) => isRecord(raw) &&
72
- typeof raw["prefix"] === "string" &&
73
- typeof raw["srcDir"] === "string"
74
- ? {
75
- prefix: raw["prefix"],
76
- srcDir: raw["srcDir"],
77
- }
78
- : fail(`each sourceAlias needs string "prefix" and "srcDir"`);
79
- /**
80
- * A required finite-number field.
81
- */
82
- const num = (o, key) => {
83
- const v = o[key];
84
- return typeof v === "number" &&
85
- Number.isFinite(v)
86
- ? v
87
- : fail(`"${key}" must be a number`);
88
- };
89
- /**
90
- * A required array-of-strings field. Maps each element
91
- * through a string guard (mirroring `entries`/`formats`)
92
- * so the result is a real `string[]` — never a leaked
93
- * `any[]` from `Array.isArray`.
94
- */
95
- const strArray = (o, key) => {
96
- const v = o[key];
97
- return Array.isArray(v)
98
- ? v.map((e) => strElem(e, key))
99
- : fail(`"${key}" must be an array`);
100
- };
101
- const strElem = (e, key) => typeof e === "string"
102
- ? e
103
- : fail(`each "${key}" entry must be a string`);
104
- /**
105
- * The optional `target` field — `"library"` (default) or
106
- * `"app"`. Absent means a library, so the existing
107
- * library configs need no change.
108
- */
109
- const target = (o) => {
110
- const v = o["target"];
111
- return v === undefined || v === "library"
112
- ? "library"
113
- : v === "app"
114
- ? "app"
115
- : fail(`"target" must be "library" or "app"`);
116
- };
117
- /**
118
- * Throw a config validation error. Return type `never`
119
- * so a failed check is a dead end at the call site.
120
- */
121
- const fail = (message) => {
122
- throw new Error(`ConfigError: ${message}`);
123
- };
124
- /**
125
- * Whether a value is a non-null object (records the
126
- * narrowing for property reads).
127
- */
128
- const isRecord = (v) => typeof v === "object" && v !== null;
129
- /**
130
- * A required string field.
131
- */
132
- const str = (o, key) => {
133
- const v = o[key];
134
- return typeof v === "string"
135
- ? v
136
- : fail(`"${key}" must be a string`);
137
- };
138
- /**
139
- * The `entries` array: each element an object with
140
- * string `name` and `input`.
141
- */
142
- const entries = (o) => {
143
- const raw = o["entries"];
144
- return Array.isArray(raw)
145
- ? raw.map(entry)
146
- : fail(`"entries" must be an array`);
147
- };
148
- const entry = (raw) => isRecord(raw) &&
149
- typeof raw["name"] === "string" &&
150
- typeof raw["input"] === "string"
151
- ? { name: raw["name"], input: raw["input"] }
152
- : fail(`each entry needs string "name" and "input"`);
153
- /**
154
- * The `formats` array: each `"es"` or `"cjs"`.
155
- */
156
- const formats = (o) => {
157
- const raw = o["formats"];
158
- return Array.isArray(raw)
159
- ? raw.map(format)
160
- : fail(`"formats" must be an array`);
161
- };
162
- const format = (raw) => raw === "es" || raw === "cjs"
163
- ? raw
164
- : fail(`each format must be "es" or "cjs"`);
165
- /**
166
- * The `alias` object: string `prefix` and `srcRoot`.
167
- */
168
- const alias = (o) => {
169
- const raw = o["alias"];
170
- return isRecord(raw) &&
171
- typeof raw["prefix"] === "string" &&
172
- typeof raw["srcRoot"] === "string"
173
- ? {
174
- prefix: raw["prefix"],
175
- srcRoot: raw["srcRoot"],
176
- }
177
- : fail(`"alias" needs string "prefix" and "srcRoot"`);
178
- };
179
- //# sourceMappingURL=asBundleConfig.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"asBundleConfig.js","sourceRoot":"","sources":["../../../src/domain/usecase/asBundleConfig.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=asBundleConfig.spec.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"asBundleConfig.spec.d.ts","sourceRoot":"","sources":["../../../src/domain/usecase/asBundleConfig.spec.ts"],"names":[],"mappings":""}
@@ -1,119 +0,0 @@
1
- import { test, check, all, toBe, } from "plgg-test";
2
- import { asBundleConfig } from "plgg-bundle/domain/usecase/asBundleConfig";
3
- const valid = {
4
- root: "/pkg",
5
- rootDir: "src",
6
- outDir: "dist",
7
- fileNamePattern: "[name].[format].js",
8
- entries: [{ name: "index", input: "index.ts" }],
9
- formats: ["es", "cjs"],
10
- alias: { prefix: "plgg", srcRoot: "src" },
11
- };
12
- /**
13
- * True when `asBundleConfig(input)` throws a ConfigError
14
- * (plain-TS validators throw rather than return a
15
- * `Result`, so the spec catches at the boundary).
16
- */
17
- const rejects = (input) => {
18
- try {
19
- asBundleConfig(input);
20
- return false;
21
- }
22
- catch (e) {
23
- return (e instanceof Error &&
24
- e.message.startsWith("ConfigError"));
25
- }
26
- };
27
- test("asBundleConfig accepts a well-formed config", () => {
28
- const c = asBundleConfig(valid);
29
- return all([
30
- check(c.root, toBe("/pkg")),
31
- check(c.fileNamePattern, toBe("[name].[format].js")),
32
- check(c.formats.length, toBe(2)),
33
- check(c.entries.length, toBe(1)),
34
- check(c.alias.prefix, toBe("plgg")),
35
- ]);
36
- });
37
- test("asBundleConfig rejects a non-object", () => check(rejects(42), toBe(true)));
38
- test("asBundleConfig rejects a missing field", () => check(rejects({ ...valid, formats: undefined }), toBe(true)));
39
- test("asBundleConfig rejects an invalid format", () => check(rejects({ ...valid, formats: ["es", "umd"] }), toBe(true)));
40
- const validDev = {
41
- entry: "devEntry.ts",
42
- port: 5181,
43
- watch: ["src", "docs"],
44
- allowedHosts: ["plgg-guide.qmu.dev"],
45
- };
46
- test("asBundleConfig leaves dev absent for a build-only config", () => check(asBundleConfig(valid).dev, toBe(undefined)));
47
- test("asBundleConfig accepts and narrows a dev section", () => {
48
- const c = asBundleConfig({
49
- ...valid,
50
- dev: validDev,
51
- });
52
- return all([
53
- check(c.dev?.entry, toBe("devEntry.ts")),
54
- check(c.dev?.port, toBe(5181)),
55
- check(c.dev?.watch.length, toBe(2)),
56
- check(c.dev?.allowedHosts[0], toBe("plgg-guide.qmu.dev")),
57
- ]);
58
- });
59
- test("asBundleConfig rejects a non-object dev section", () => check(rejects({ ...valid, dev: 42 }), toBe(true)));
60
- test("asBundleConfig rejects a dev section with a bad port", () => check(rejects({
61
- ...valid,
62
- dev: { ...validDev, port: "5181" },
63
- }), toBe(true)));
64
- test("asBundleConfig rejects a dev section with a non-string watch entry", () => check(rejects({
65
- ...valid,
66
- dev: { ...validDev, watch: ["src", 7] },
67
- }), toBe(true)));
68
- test("asBundleConfig rejects a dev section with non-array allowedHosts", () => check(rejects({
69
- ...valid,
70
- dev: {
71
- ...validDev,
72
- allowedHosts: "nope",
73
- },
74
- }), toBe(true)));
75
- test("asBundleConfig accepts target \"app\"", () => check(asBundleConfig({ ...valid, target: "app" })
76
- .target, toBe("app")));
77
- test("asBundleConfig rejects an invalid target", () => check(rejects({ ...valid, target: "umd" }), toBe(true)));
78
- test("asBundleConfig rejects a non-string required field", () => check(rejects({ ...valid, root: 7 }), toBe(true)));
79
- test("asBundleConfig rejects a malformed entry", () => all([
80
- check(rejects({
81
- ...valid,
82
- entries: [{ name: "x" }],
83
- }), toBe(true)),
84
- check(rejects({ ...valid, entries: [42] }), toBe(true)),
85
- ]));
86
- test("asBundleConfig rejects a malformed alias", () => all([
87
- check(rejects({ ...valid, alias: { prefix: "p" } }), toBe(true)),
88
- check(rejects({ ...valid, alias: "nope" }), toBe(true)),
89
- ]));
90
- test("asBundleConfig rejects a non-string format element", () => check(rejects({ ...valid, formats: [7] }), toBe(true)));
91
- test("asBundleConfig defaults dev.sourceAliases to [] when absent", () => check(asBundleConfig({ ...valid, dev: validDev })
92
- .dev?.sourceAliases.length, toBe(0)));
93
- test("asBundleConfig accepts dev.sourceAliases", () => {
94
- const c = asBundleConfig({
95
- ...valid,
96
- dev: {
97
- ...validDev,
98
- sourceAliases: [
99
- { prefix: "plggpress", srcDir: "../plggpress/src" },
100
- ],
101
- },
102
- });
103
- return all([
104
- check(c.dev?.sourceAliases[0]?.prefix, toBe("plggpress")),
105
- check(c.dev?.sourceAliases[0]?.srcDir, toBe("../plggpress/src")),
106
- ]);
107
- });
108
- test("asBundleConfig rejects a non-array sourceAliases", () => check(rejects({
109
- ...valid,
110
- dev: { ...validDev, sourceAliases: "nope" },
111
- }), toBe(true)));
112
- test("asBundleConfig rejects a malformed sourceAlias element", () => check(rejects({
113
- ...valid,
114
- dev: {
115
- ...validDev,
116
- sourceAliases: [{ prefix: "x" }],
117
- },
118
- }), toBe(true)));
119
- //# sourceMappingURL=asBundleConfig.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"asBundleConfig.spec.js","sourceRoot":"","sources":["../../../src/domain/usecase/asBundleConfig.spec.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { type BundleConfig } from "plgg-bundle/domain/model/BundleConfig";
2
- /**
3
- * Build one package's `dist` from its
4
- * {@link BundleConfig}. Dispatches on the config
5
- * `target`: a `"library"` (dual `es`/`cjs` per entry +
6
- * per-file `.d.ts`, deps external) or the `"app"` leaf (a
7
- * single self-contained `es` bundle, siblings inlined, no
8
- * `.d.ts`). Both build into a private staging dir and
9
- * publish with one atomic swap. Returns the relative
10
- * paths written. Throws on the first failure (caught at
11
- * the bin boundary). Fully synchronous.
12
- */
13
- export declare const build: (config: BundleConfig) => ReadonlyArray<string>;
14
- //# sourceMappingURL=build.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/domain/usecase/build.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,uCAAuC,CAAC;AAe/C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,YAAY,KACnB,aAAa,CAAC,MAAM,CAuBtB,CAAC"}
@@ -1,177 +0,0 @@
1
- import { writeFileSync, mkdirSync, rmSync, renameSync, existsSync, } from "node:fs";
2
- import { join, dirname } from "node:path";
3
- import { applyFileName, } from "plgg-bundle/domain/model/BundleConfig";
4
- import { collectModules, } from "plgg-bundle/domain/usecase/collectModules";
5
- import { emitCjsBundle, emitEsmBundle, } from "plgg-bundle/domain/usecase/emitBundle";
6
- import { emitDts } from "plgg-bundle/domain/usecase/emitDts";
7
- import { deriveExternal } from "plgg-bundle/domain/usecase/deriveExternal";
8
- import { readExportNames } from "plgg-bundle/vendors/runner";
9
- import { discoverWorkspace } from "plgg-bundle/domain/usecase/discoverWorkspace";
10
- import { resolveWorkspaceSpecifier } from "plgg-bundle/domain/usecase/resolveWorkspaceSpecifier";
11
- /**
12
- * Build one package's `dist` from its
13
- * {@link BundleConfig}. Dispatches on the config
14
- * `target`: a `"library"` (dual `es`/`cjs` per entry +
15
- * per-file `.d.ts`, deps external) or the `"app"` leaf (a
16
- * single self-contained `es` bundle, siblings inlined, no
17
- * `.d.ts`). Both build into a private staging dir and
18
- * publish with one atomic swap. Returns the relative
19
- * paths written. Throws on the first failure (caught at
20
- * the bin boundary). Fully synchronous.
21
- */
22
- export const build = (config) => {
23
- const outDir = join(config.root, config.outDir);
24
- // Build into a PRIVATE staging dir, then swap it into
25
- // place as the final step (see swapIntoPlace). The live
26
- // `dist` must never be observed half-built: it is read
27
- // concurrently — by a downstream package's `tsc`/runner
28
- // resolving this package as a dependency, and by any
29
- // overlapping build invocation. The old emptyDir-on-live
30
- // pattern left a multi-second window where `dist` was
31
- // missing or partial; a reader hitting it resolved the
32
- // dependency to its `.js` (TS7016 implicit-any), to a
33
- // not-yet-complete barrel (TS2305 "no exported member"),
34
- // or found no `index.cjs.js` at all — the
35
- // non-deterministic dts-emit flake. Staging shrinks that
36
- // window from the whole build to a single rename.
37
- const stageDir = `${outDir}.stage`;
38
- emptyDir(stageDir);
39
- const written = config.target === "app"
40
- ? buildApp(config, stageDir)
41
- : buildLibrary(config, stageDir);
42
- swapIntoPlace(stageDir, outDir);
43
- return written;
44
- };
45
- /**
46
- * Library build: per entry, emit the dual `es`/`cjs`
47
- * bundle (CJS first so its runtime keys give ESM its
48
- * export surface), then the per-file `.d.ts` tree once.
49
- * Deps are external (ruling B), derived from the
50
- * package's declared dependency graph (+ `node:*`) so a
51
- * bundle stays faithful to its manifest and an undeclared
52
- * import fails loudly.
53
- */
54
- const buildLibrary = (config, stageDir) => {
55
- const external = deriveExternal(config.root);
56
- const written = [];
57
- for (const entry of config.entries) {
58
- const graph = collectModules({
59
- entryFile: join(config.root, config.rootDir, entry.input),
60
- root: config.root,
61
- aliasPrefix: config.alias.prefix,
62
- aliasSrcRoot: join(config.root, config.alias.srcRoot),
63
- external,
64
- });
65
- written.push(...buildEntry(config, entry, graph, stageDir));
66
- }
67
- emitDts({
68
- root: config.root,
69
- rootDir: config.rootDir,
70
- outDir: stageDir,
71
- aliasPrefix: config.alias.prefix,
72
- });
73
- return written;
74
- };
75
- /**
76
- * App build: a single self-contained `es` bundle per
77
- * entry with every workspace sibling INLINED from source
78
- * (the mirror of the library externalization — a browser
79
- * cannot resolve a bare `import "plgg"`). Only `node:*`
80
- * stays external. No CJS, no export-surface discovery
81
- * (an app entry has side effects and no exports, and the
82
- * vm sandbox has no DOM to run it), and no `.d.ts`
83
- * (nothing consumes the app).
84
- */
85
- const buildApp = (config, stageDir) => {
86
- const packages = discoverWorkspace(config.root);
87
- const written = [];
88
- for (const entry of config.entries) {
89
- const graph = collectModules({
90
- entryFile: join(config.root, config.rootDir, entry.input),
91
- root: config.root,
92
- aliasPrefix: config.alias.prefix,
93
- aliasSrcRoot: join(config.root, config.alias.srcRoot),
94
- external: NODE_EXTERNAL,
95
- resolve: (specifier, fromFile) => resolveWorkspaceSpecifier({
96
- specifier,
97
- fromFile,
98
- packages,
99
- }),
100
- });
101
- const rel = applyFileName(config.fileNamePattern, entry.name, "es");
102
- writeOut(join(stageDir, rel), emitEsmBundle(graph, []));
103
- written.push(rel);
104
- }
105
- return written;
106
- };
107
- /**
108
- * The app's only external: Node built-ins. Everything
109
- * else (plgg + siblings) is inlined.
110
- */
111
- const NODE_EXTERNAL = /^node:/;
112
- /**
113
- * Replace `outDir` with the freshly-built `stageDir` in a
114
- * single rename, so a concurrent reader sees only a
115
- * complete `dist` (old or new) — never a torn one. The
116
- * destructive window is one `rename`, not the whole build.
117
- */
118
- const swapIntoPlace = (stageDir, outDir) => {
119
- const backup = `${outDir}.old`;
120
- rmSync(backup, {
121
- recursive: true,
122
- force: true,
123
- });
124
- if (existsSync(outDir)) {
125
- renameSync(outDir, backup);
126
- }
127
- renameSync(stageDir, outDir);
128
- rmSync(backup, {
129
- recursive: true,
130
- force: true,
131
- });
132
- };
133
- /**
134
- * Build every configured format for one entry, returning
135
- * the relative paths written.
136
- */
137
- const buildEntry = (config, entry, graph, destDir) => {
138
- const cjs = emitCjsBundle(graph);
139
- // Discover the exact export surface by running the CJS
140
- // bundle and reading its keys — ESM cannot declare
141
- // exports dynamically. The bundle's external requires
142
- // resolve against the target package's node_modules.
143
- const esm = emitEsmBundle(graph, readExportNames(cjs, config.root));
144
- const written = [];
145
- for (const format of config.formats) {
146
- const code = format === "es" ? esm : cjs;
147
- const rel = applyFileName(config.fileNamePattern, entry.name, format);
148
- writeOut(join(destDir, rel), code);
149
- written.push(rel);
150
- }
151
- return written;
152
- };
153
- /**
154
- * Empty (and recreate) the output directory. The
155
- * recursive remove is the bundler's own build output —
156
- * `force` tolerates a not-yet-existing dir.
157
- */
158
- const emptyDir = (dir) => {
159
- rmSync(dir, { recursive: true, force: true });
160
- mkdirSync(dir, { recursive: true });
161
- };
162
- /**
163
- * Write a file, creating parent dirs; re-throws with
164
- * context on failure.
165
- */
166
- const writeOut = (path, code) => {
167
- try {
168
- mkdirSync(dirname(path), { recursive: true });
169
- writeFileSync(path, code, "utf8");
170
- }
171
- catch (cause) {
172
- throw new Error(`IoError: cannot write ${path}: ${cause instanceof Error
173
- ? cause.message
174
- : String(cause)}`);
175
- }
176
- };
177
- //# sourceMappingURL=build.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/domain/usecase/build.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- import { type External } from "plgg-bundle/domain/model/BundleConfig";
2
- /**
3
- * One bundled module: its stable id (path relative to
4
- * the package root, the same string the runtime keys
5
- * on), its transpiled-and-rewritten CJS body, and the
6
- * external specifiers it still requires at runtime.
7
- */
8
- export type Module = Readonly<{
9
- id: string;
10
- code: string;
11
- externals: ReadonlyArray<string>;
12
- }>;
13
- /**
14
- * The module graph reachable from an entry — the set of
15
- * reachable modules plus the entry's own id. Dependency
16
- * order is not required: the registry runtime links
17
- * lazily by id.
18
- */
19
- export type Graph = Readonly<{
20
- entryId: string;
21
- modules: ReadonlyArray<Module>;
22
- }>;
23
- /**
24
- * Walk the import graph from `entryFile`, transpiling
25
- * each `.ts` to CJS, resolving every `require(...)`
26
- * specifier to either an intra-bundle module id (to
27
- * inline) or an external (to keep as a runtime
28
- * require), and rewriting the inlined `require("spec")`
29
- * calls to `require("<id>")`. Pure in-house graph logic;
30
- * only the per-file TS→JS step is vendored. Throws on an
31
- * unresolvable import or a read failure.
32
- */
33
- export declare const collectModules: (args: {
34
- entryFile: string;
35
- root: string;
36
- aliasPrefix: string;
37
- aliasSrcRoot: string;
38
- external: External;
39
- /**
40
- * App-mode override: resolve a specifier to a source
41
- * file (inlining workspace siblings). When absent, the
42
- * library default resolves only relative imports and
43
- * the package's own self-alias.
44
- */
45
- resolve?: Resolve;
46
- }) => Graph;
47
- /**
48
- * Resolve an import specifier (from `fromFile`) to an
49
- * absolute source file, or `undefined` if it is not a
50
- * bundled module (external / unresolvable).
51
- */
52
- export type Resolve = (specifier: string, fromFile: string) => string | undefined;
53
- //# sourceMappingURL=collectModules.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collectModules.d.ts","sourceRoot":"","sources":["../../../src/domain/usecase/collectModules.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAKtE;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAChC,CAAC,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,KAAG,KAoBH,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,CACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,KACb,MAAM,GAAG,SAAS,CAAC"}