@matter/tools 0.13.0-alpha.0-20250304-d4a7592a4 → 0.13.0-alpha.0-20250307-ebf84a05a

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/tools",
3
- "version": "0.13.0-alpha.0-20250304-d4a7592a4",
3
+ "version": "0.13.0-alpha.0-20250307-ebf84a05a",
4
4
  "description": "Matter.js tooling",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -1,38 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Graph } from "./graph.js";
7
- import { Project } from "./project.js";
8
- import { TypescriptContext } from "./typescript/context.js";
9
- export declare enum Target {
10
- clean = "clean",
11
- types = "types",
12
- esm = "esm",
13
- cjs = "cjs"
14
- }
15
- export interface Options {
16
- targets?: Target[];
17
- clean?: boolean;
18
- graph?: Graph;
19
- }
20
- /**
21
- * High-level build coordination.
22
- *
23
- * Warning: This class is intended for command line use and will process.exit if things go wrong.
24
- */
25
- export declare class Builder {
26
- #private;
27
- private options;
28
- unconditional: boolean;
29
- tsContext?: TypescriptContext;
30
- graph?: Graph;
31
- constructor(options?: Options);
32
- get hasClean(): boolean | undefined;
33
- clearClean(): void;
34
- hasTargets(): boolean | undefined;
35
- configure(project: Project): Promise<void>;
36
- build(project: Project): Promise<void>;
37
- }
38
- //# sourceMappingURL=builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/building/builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAoB,OAAO,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,oBAAY,MAAM;IACd,KAAK,UAAU;IACf,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,GAAG,QAAQ;CACd;AAED,MAAM,WAAW,OAAO;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,OAAO;;IAKJ,OAAO,CAAC,OAAO;IAJ3B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC;gBAEM,OAAO,GAAE,OAAY;IAMzC,IAAI,QAAQ,wBAEX;IAED,UAAU;IAIV,UAAU;IAIG,SAAS,CAAC,OAAO,EAAE,OAAO;IAQ1B,KAAK,CAAC,OAAO,EAAE,OAAO;CAsKtC"}
@@ -1,200 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var builder_exports = {};
20
- __export(builder_exports, {
21
- Builder: () => Builder,
22
- Target: () => Target
23
- });
24
- module.exports = __toCommonJS(builder_exports);
25
- var import_node_crypto = require("node:crypto");
26
- var import_error = require("./error.js");
27
- var import_graph = require("./graph.js");
28
- var import_typescript = require("./typescript.js");
29
- /**
30
- * @license
31
- * Copyright 2022-2025 Matter.js Authors
32
- * SPDX-License-Identifier: Apache-2.0
33
- */
34
- var Target = /* @__PURE__ */ ((Target2) => {
35
- Target2["clean"] = "clean";
36
- Target2["types"] = "types";
37
- Target2["esm"] = "esm";
38
- Target2["cjs"] = "cjs";
39
- return Target2;
40
- })(Target || {});
41
- class Builder {
42
- constructor(options = {}) {
43
- this.options = options;
44
- this.graph = options.graph;
45
- this.unconditional = options.clean || options.targets !== void 0 && options.targets?.indexOf("clean" /* clean */) !== -1;
46
- }
47
- unconditional;
48
- tsContext;
49
- graph;
50
- get hasClean() {
51
- return this.options.clean;
52
- }
53
- clearClean() {
54
- delete this.options.clean;
55
- }
56
- hasTargets() {
57
- return this.options.targets && this.options.targets.length > 0;
58
- }
59
- async configure(project) {
60
- if (!project.pkg.hasConfig) {
61
- return;
62
- }
63
- await project.configure();
64
- }
65
- async build(project) {
66
- const progress = project.pkg.start("Building");
67
- try {
68
- await this.#doBuild(project, progress);
69
- } catch (e) {
70
- progress.close();
71
- process.stderr.write(`${e.stack ?? e.message}
72
-
73
- `);
74
- process.exit(1);
75
- }
76
- progress.close();
77
- }
78
- async #doBuild(project, progress) {
79
- const targets = this.#selectTargets(project);
80
- if (targets.has("clean" /* clean */) || this.options.clean) {
81
- await progress.run("Clean", () => project.clean());
82
- }
83
- if (!targets.has("types" /* types */) && !targets.has("esm" /* esm */) && !targets.has("cjs" /* cjs */)) {
84
- return;
85
- }
86
- const info = {};
87
- const config = await project.configure();
88
- await config?.before?.({ project });
89
- const graph = this.graph ?? await import_graph.Graph.forProject(project.pkg.path);
90
- let node;
91
- if (graph) {
92
- node = graph.get(project.pkg.name);
93
- for (const dep of node.dependencies) {
94
- if (dep.info.apiSha !== void 0) {
95
- if (info.dependencyApiShas === void 0) {
96
- info.dependencyApiShas = {};
97
- }
98
- info.dependencyApiShas[dep.pkg.name] = dep.info.apiSha;
99
- }
100
- }
101
- }
102
- if (targets.has("types" /* types */)) {
103
- try {
104
- let context = this.tsContext;
105
- if (context === void 0) {
106
- context = this.tsContext = await (0, import_typescript.createTypescriptContext)(project.pkg.workspace, graph);
107
- }
108
- const refreshCallback = progress.refresh.bind(progress);
109
- if (project.pkg.isLibrary) {
110
- const apiSha = (0, import_node_crypto.createHash)("sha1");
111
- if (node) {
112
- for (const dep of node.dependencies) {
113
- if (dep.info.apiSha !== void 0) {
114
- apiSha.update(dep.info.apiSha);
115
- }
116
- }
117
- }
118
- await progress.run(`Generate ${progress.emphasize("type declarations")}`, async () => {
119
- await context.build(project.pkg, "src", refreshCallback);
120
- await project.hashDeclarations(apiSha);
121
- });
122
- info.apiSha = apiSha.digest("hex");
123
- } else {
124
- await progress.run(
125
- `Validate ${progress.emphasize("types")}`,
126
- () => context.build(project.pkg, "src", refreshCallback, false)
127
- );
128
- }
129
- if (project.pkg.hasTests) {
130
- await progress.run(
131
- `Validate ${progress.emphasize("test types")}`,
132
- () => context.build(project.pkg, "test", refreshCallback)
133
- );
134
- }
135
- } catch (e) {
136
- if (e instanceof import_error.BuildError) {
137
- progress.failure("Terminating due to type errors");
138
- process.stderr.write(`${e.diagnostics}
139
- `);
140
- process.exit(1);
141
- }
142
- throw e;
143
- }
144
- }
145
- const formats = Array();
146
- if (targets.has("esm" /* esm */)) {
147
- formats.push("esm");
148
- }
149
- if (targets.has("cjs" /* cjs */)) {
150
- formats.push("cjs");
151
- }
152
- if (formats.length) {
153
- const groups = [project.pkg.isLibrary ? "library" : "app"];
154
- if (project.pkg.hasTests) {
155
- groups.push("tests");
156
- }
157
- const formatDesc = formats.map(progress.emphasize).join("+");
158
- const groupDesc = groups.map(progress.emphasize).join("+");
159
- await progress.run(`Transpile ${groupDesc} to ${formatDesc}`, async () => {
160
- for (const format of formats) {
161
- await this.#transpile(project, format);
162
- }
163
- });
164
- }
165
- await config?.after?.({ project });
166
- if (!this.options.targets?.length) {
167
- await project.recordBuildInfo(info);
168
- if (node) {
169
- node.info = info;
170
- }
171
- }
172
- }
173
- async #transpile(project, format) {
174
- await project.buildSource(format);
175
- if (project.pkg.hasTests) {
176
- await project.buildTests(format);
177
- }
178
- }
179
- #selectTargets(project) {
180
- const targets = new Set(this.options.targets);
181
- if (!targets.size) {
182
- targets.add("types" /* types */);
183
- if (project.pkg.supportsEsm) {
184
- targets.add("esm" /* esm */);
185
- }
186
- if (project.pkg.supportsCjs) {
187
- targets.add("cjs" /* cjs */);
188
- }
189
- } else {
190
- if (!project.pkg.supportsEsm) {
191
- targets.delete("esm" /* esm */);
192
- }
193
- if (!project.pkg.supportsCjs) {
194
- targets.delete("cjs" /* cjs */);
195
- }
196
- }
197
- return targets;
198
- }
199
- }
200
- //# sourceMappingURL=builder.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/building/builder.ts"],
4
- "mappings": "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",
5
- "names": ["Target"]
6
- }
@@ -1,38 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Graph } from "./graph.js";
7
- import { Project } from "./project.js";
8
- import { TypescriptContext } from "./typescript/context.js";
9
- export declare enum Target {
10
- clean = "clean",
11
- types = "types",
12
- esm = "esm",
13
- cjs = "cjs"
14
- }
15
- export interface Options {
16
- targets?: Target[];
17
- clean?: boolean;
18
- graph?: Graph;
19
- }
20
- /**
21
- * High-level build coordination.
22
- *
23
- * Warning: This class is intended for command line use and will process.exit if things go wrong.
24
- */
25
- export declare class Builder {
26
- #private;
27
- private options;
28
- unconditional: boolean;
29
- tsContext?: TypescriptContext;
30
- graph?: Graph;
31
- constructor(options?: Options);
32
- get hasClean(): boolean | undefined;
33
- clearClean(): void;
34
- hasTargets(): boolean | undefined;
35
- configure(project: Project): Promise<void>;
36
- build(project: Project): Promise<void>;
37
- }
38
- //# sourceMappingURL=builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/building/builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAoB,OAAO,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,oBAAY,MAAM;IACd,KAAK,UAAU;IACf,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,GAAG,QAAQ;CACd;AAED,MAAM,WAAW,OAAO;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,OAAO;;IAKJ,OAAO,CAAC,OAAO;IAJ3B,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC;gBAEM,OAAO,GAAE,OAAY;IAMzC,IAAI,QAAQ,wBAEX;IAED,UAAU;IAIV,UAAU;IAIG,SAAS,CAAC,OAAO,EAAE,OAAO;IAQ1B,KAAK,CAAC,OAAO,EAAE,OAAO;CAsKtC"}
@@ -1,180 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { createHash } from "node:crypto";
7
- import { BuildError } from "./error.js";
8
- import { Graph } from "./graph.js";
9
- import { createTypescriptContext } from "./typescript.js";
10
- var Target = /* @__PURE__ */ ((Target2) => {
11
- Target2["clean"] = "clean";
12
- Target2["types"] = "types";
13
- Target2["esm"] = "esm";
14
- Target2["cjs"] = "cjs";
15
- return Target2;
16
- })(Target || {});
17
- class Builder {
18
- constructor(options = {}) {
19
- this.options = options;
20
- this.graph = options.graph;
21
- this.unconditional = options.clean || options.targets !== void 0 && options.targets?.indexOf("clean" /* clean */) !== -1;
22
- }
23
- unconditional;
24
- tsContext;
25
- graph;
26
- get hasClean() {
27
- return this.options.clean;
28
- }
29
- clearClean() {
30
- delete this.options.clean;
31
- }
32
- hasTargets() {
33
- return this.options.targets && this.options.targets.length > 0;
34
- }
35
- async configure(project) {
36
- if (!project.pkg.hasConfig) {
37
- return;
38
- }
39
- await project.configure();
40
- }
41
- async build(project) {
42
- const progress = project.pkg.start("Building");
43
- try {
44
- await this.#doBuild(project, progress);
45
- } catch (e) {
46
- progress.close();
47
- process.stderr.write(`${e.stack ?? e.message}
48
-
49
- `);
50
- process.exit(1);
51
- }
52
- progress.close();
53
- }
54
- async #doBuild(project, progress) {
55
- const targets = this.#selectTargets(project);
56
- if (targets.has("clean" /* clean */) || this.options.clean) {
57
- await progress.run("Clean", () => project.clean());
58
- }
59
- if (!targets.has("types" /* types */) && !targets.has("esm" /* esm */) && !targets.has("cjs" /* cjs */)) {
60
- return;
61
- }
62
- const info = {};
63
- const config = await project.configure();
64
- await config?.before?.({ project });
65
- const graph = this.graph ?? await Graph.forProject(project.pkg.path);
66
- let node;
67
- if (graph) {
68
- node = graph.get(project.pkg.name);
69
- for (const dep of node.dependencies) {
70
- if (dep.info.apiSha !== void 0) {
71
- if (info.dependencyApiShas === void 0) {
72
- info.dependencyApiShas = {};
73
- }
74
- info.dependencyApiShas[dep.pkg.name] = dep.info.apiSha;
75
- }
76
- }
77
- }
78
- if (targets.has("types" /* types */)) {
79
- try {
80
- let context = this.tsContext;
81
- if (context === void 0) {
82
- context = this.tsContext = await createTypescriptContext(project.pkg.workspace, graph);
83
- }
84
- const refreshCallback = progress.refresh.bind(progress);
85
- if (project.pkg.isLibrary) {
86
- const apiSha = createHash("sha1");
87
- if (node) {
88
- for (const dep of node.dependencies) {
89
- if (dep.info.apiSha !== void 0) {
90
- apiSha.update(dep.info.apiSha);
91
- }
92
- }
93
- }
94
- await progress.run(`Generate ${progress.emphasize("type declarations")}`, async () => {
95
- await context.build(project.pkg, "src", refreshCallback);
96
- await project.hashDeclarations(apiSha);
97
- });
98
- info.apiSha = apiSha.digest("hex");
99
- } else {
100
- await progress.run(
101
- `Validate ${progress.emphasize("types")}`,
102
- () => context.build(project.pkg, "src", refreshCallback, false)
103
- );
104
- }
105
- if (project.pkg.hasTests) {
106
- await progress.run(
107
- `Validate ${progress.emphasize("test types")}`,
108
- () => context.build(project.pkg, "test", refreshCallback)
109
- );
110
- }
111
- } catch (e) {
112
- if (e instanceof BuildError) {
113
- progress.failure("Terminating due to type errors");
114
- process.stderr.write(`${e.diagnostics}
115
- `);
116
- process.exit(1);
117
- }
118
- throw e;
119
- }
120
- }
121
- const formats = Array();
122
- if (targets.has("esm" /* esm */)) {
123
- formats.push("esm");
124
- }
125
- if (targets.has("cjs" /* cjs */)) {
126
- formats.push("cjs");
127
- }
128
- if (formats.length) {
129
- const groups = [project.pkg.isLibrary ? "library" : "app"];
130
- if (project.pkg.hasTests) {
131
- groups.push("tests");
132
- }
133
- const formatDesc = formats.map(progress.emphasize).join("+");
134
- const groupDesc = groups.map(progress.emphasize).join("+");
135
- await progress.run(`Transpile ${groupDesc} to ${formatDesc}`, async () => {
136
- for (const format of formats) {
137
- await this.#transpile(project, format);
138
- }
139
- });
140
- }
141
- await config?.after?.({ project });
142
- if (!this.options.targets?.length) {
143
- await project.recordBuildInfo(info);
144
- if (node) {
145
- node.info = info;
146
- }
147
- }
148
- }
149
- async #transpile(project, format) {
150
- await project.buildSource(format);
151
- if (project.pkg.hasTests) {
152
- await project.buildTests(format);
153
- }
154
- }
155
- #selectTargets(project) {
156
- const targets = new Set(this.options.targets);
157
- if (!targets.size) {
158
- targets.add("types" /* types */);
159
- if (project.pkg.supportsEsm) {
160
- targets.add("esm" /* esm */);
161
- }
162
- if (project.pkg.supportsCjs) {
163
- targets.add("cjs" /* cjs */);
164
- }
165
- } else {
166
- if (!project.pkg.supportsEsm) {
167
- targets.delete("esm" /* esm */);
168
- }
169
- if (!project.pkg.supportsCjs) {
170
- targets.delete("cjs" /* cjs */);
171
- }
172
- }
173
- return targets;
174
- }
175
- }
176
- export {
177
- Builder,
178
- Target
179
- };
180
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2J1aWxkaW5nL2J1aWxkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjUgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJub2RlOmNyeXB0b1wiO1xuaW1wb3J0IHsgUHJvZ3Jlc3MgfSBmcm9tIFwiLi4vdXRpbC9wcm9ncmVzcy5qc1wiO1xuaW1wb3J0IHsgQnVpbGRFcnJvciB9IGZyb20gXCIuL2Vycm9yLmpzXCI7XG5pbXBvcnQgeyBHcmFwaCB9IGZyb20gXCIuL2dyYXBoLmpzXCI7XG5pbXBvcnQgeyBCdWlsZEluZm9ybWF0aW9uLCBQcm9qZWN0IH0gZnJvbSBcIi4vcHJvamVjdC5qc1wiO1xuaW1wb3J0IHsgY3JlYXRlVHlwZXNjcmlwdENvbnRleHQgfSBmcm9tIFwiLi90eXBlc2NyaXB0LmpzXCI7XG5pbXBvcnQgeyBUeXBlc2NyaXB0Q29udGV4dCB9IGZyb20gXCIuL3R5cGVzY3JpcHQvY29udGV4dC5qc1wiO1xuXG5leHBvcnQgZW51bSBUYXJnZXQge1xuICAgIGNsZWFuID0gXCJjbGVhblwiLFxuICAgIHR5cGVzID0gXCJ0eXBlc1wiLFxuICAgIGVzbSA9IFwiZXNtXCIsXG4gICAgY2pzID0gXCJjanNcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgICB0YXJnZXRzPzogVGFyZ2V0W107XG4gICAgY2xlYW4/OiBib29sZWFuO1xuICAgIGdyYXBoPzogR3JhcGg7XG59XG5cbi8qKlxuICogSGlnaC1sZXZlbCBidWlsZCBjb29yZGluYXRpb24uXG4gKlxuICogV2FybmluZzogVGhpcyBjbGFzcyBpcyBpbnRlbmRlZCBmb3IgY29tbWFuZCBsaW5lIHVzZSBhbmQgd2lsbCBwcm9jZXNzLmV4aXQgaWYgdGhpbmdzIGdvIHdyb25nLlxuICovXG5leHBvcnQgY2xhc3MgQnVpbGRlciB7XG4gICAgdW5jb25kaXRpb25hbDogYm9vbGVhbjtcbiAgICB0c0NvbnRleHQ/OiBUeXBlc2NyaXB0Q29udGV4dDtcbiAgICBncmFwaD86IEdyYXBoO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBPcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5ncmFwaCA9IG9wdGlvbnMuZ3JhcGg7XG4gICAgICAgIHRoaXMudW5jb25kaXRpb25hbCA9XG4gICAgICAgICAgICBvcHRpb25zLmNsZWFuIHx8IChvcHRpb25zLnRhcmdldHMgIT09IHVuZGVmaW5lZCAmJiBvcHRpb25zLnRhcmdldHM/LmluZGV4T2YoVGFyZ2V0LmNsZWFuKSAhPT0gLTEpO1xuICAgIH1cblxuICAgIGdldCBoYXNDbGVhbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5jbGVhbjtcbiAgICB9XG5cbiAgICBjbGVhckNsZWFuKCkge1xuICAgICAgICBkZWxldGUgdGhpcy5vcHRpb25zLmNsZWFuO1xuICAgIH1cblxuICAgIGhhc1RhcmdldHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMudGFyZ2V0cyAmJiB0aGlzLm9wdGlvbnMudGFyZ2V0cy5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBjb25maWd1cmUocHJvamVjdDogUHJvamVjdCkge1xuICAgICAgICBpZiAoIXByb2plY3QucGtnLmhhc0NvbmZpZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYXdhaXQgcHJvamVjdC5jb25maWd1cmUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgYnVpbGQocHJvamVjdDogUHJvamVjdCkge1xuICAgICAgICBjb25zdCBwcm9ncmVzcyA9IHByb2plY3QucGtnLnN0YXJ0KFwiQnVpbGRpbmdcIik7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuI2RvQnVpbGQocHJvamVjdCwgcHJvZ3Jlc3MpO1xuICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICAgIHByb2dyZXNzLmNsb3NlKCk7XG4gICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShgJHtlLnN0YWNrID8/IGUubWVzc2FnZX1cXG5cXG5gKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHByb2dyZXNzLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgYXN5bmMgI2RvQnVpbGQocHJvamVjdDogUHJvamVjdCwgcHJvZ3Jlc3M6IFByb2dyZXNzKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldHMgPSB0aGlzLiNzZWxlY3RUYXJnZXRzKHByb2plY3QpO1xuXG4gICAgICAgIGlmICh0YXJnZXRzLmhhcyhUYXJnZXQuY2xlYW4pIHx8IHRoaXMub3B0aW9ucy5jbGVhbikge1xuICAgICAgICAgICAgYXdhaXQgcHJvZ3Jlc3MucnVuKFwiQ2xlYW5cIiwgKCkgPT4gcHJvamVjdC5jbGVhbigpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGFyZ2V0cy5oYXMoVGFyZ2V0LnR5cGVzKSAmJiAhdGFyZ2V0cy5oYXMoVGFyZ2V0LmVzbSkgJiYgIXRhcmdldHMuaGFzKFRhcmdldC5janMpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpbmZvOiBCdWlsZEluZm9ybWF0aW9uID0ge307XG5cbiAgICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgcHJvamVjdC5jb25maWd1cmUoKTtcblxuICAgICAgICBhd2FpdCBjb25maWc/LmJlZm9yZT8uKHsgcHJvamVjdCB9KTtcblxuICAgICAgICAvLyBJZiBhdmFpbGFibGUgd2UgdXNlIGdyYXBoIHRvIGFjY2VzcyBkZXBlbmRlbmN5IEFQSSBzaGFzXG4gICAgICAgIGNvbnN0IGdyYXBoID0gdGhpcy5ncmFwaCA/PyAoYXdhaXQgR3JhcGguZm9yUHJvamVjdChwcm9qZWN0LnBrZy5wYXRoKSk7XG4gICAgICAgIGxldCBub2RlOiBHcmFwaC5Ob2RlIHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAoZ3JhcGgpIHtcbiAgICAgICAgICAgIG5vZGUgPSBncmFwaC5nZXQocHJvamVjdC5wa2cubmFtZSk7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRlcCBvZiBub2RlLmRlcGVuZGVuY2llcykge1xuICAgICAgICAgICAgICAgIGlmIChkZXAuaW5mby5hcGlTaGEgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5mby5kZXBlbmRlbmN5QXBpU2hhcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvLmRlcGVuZGVuY3lBcGlTaGFzID0ge307XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW5mby5kZXBlbmRlbmN5QXBpU2hhc1tkZXAucGtnLm5hbWVdID0gZGVwLmluZm8uYXBpU2hhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0YXJnZXRzLmhhcyhUYXJnZXQudHlwZXMpKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIC8vIE9idGFpbiBvciBpbml0aWFsaXplIHR5cGVzY3JpcHQgc29sdXRpb24gYnVpbGRlclxuICAgICAgICAgICAgICAgIGxldCBjb250ZXh0ID0gdGhpcy50c0NvbnRleHQ7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0ID0gdGhpcy50c0NvbnRleHQgPSBhd2FpdCBjcmVhdGVUeXBlc2NyaXB0Q29udGV4dChwcm9qZWN0LnBrZy53b3Jrc3BhY2UsIGdyYXBoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCByZWZyZXNoQ2FsbGJhY2sgPSBwcm9ncmVzcy5yZWZyZXNoLmJpbmQocHJvZ3Jlc3MpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHByb2plY3QucGtnLmlzTGlicmFyeSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhcGlTaGEgPSBjcmVhdGVIYXNoKFwic2hhMVwiKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBPdXIgQVBJIFNIQSBjaGFuZ2VzIGlmIHRoYXQgb2YgYW55IGRlcGVuZGVuY3kgY2hhbmdlc1xuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBkZXAgb2Ygbm9kZS5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGVwLmluZm8uYXBpU2hhICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBpU2hhLnVwZGF0ZShkZXAuaW5mby5hcGlTaGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHByb2dyZXNzLnJ1bihgR2VuZXJhdGUgJHtwcm9ncmVzcy5lbXBoYXNpemUoXCJ0eXBlIGRlY2xhcmF0aW9uc1wiKX1gLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBjb250ZXh0LmJ1aWxkKHByb2plY3QucGtnLCBcInNyY1wiLCByZWZyZXNoQ2FsbGJhY2spO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgcHJvamVjdC5oYXNoRGVjbGFyYXRpb25zKGFwaVNoYSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFdvcmstaW4tcHJvZ3Jlc3MgYWx0ZXJuYXRpdmUgZG9jIGdlbmVyYXRpb24gaW1wbGVtZW50YXRpb25cbiAgICAgICAgICAgICAgICAgICAgLy8gYXdhaXQgcHJvZ3Jlc3MucnVuKGBFeHRyYWN0ICR7cHJvZ3Jlc3MuZW1waGFzaXplKFwiYXBpIGRvY3NcIil9YCwgKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIGVtaXRBcGlEb2MocHJvamVjdC5wa2csIHByb2dyYW0sIHByb2dyZXNzKSxcbiAgICAgICAgICAgICAgICAgICAgLy8gKTtcblxuICAgICAgICAgICAgICAgICAgICBpbmZvLmFwaVNoYSA9IGFwaVNoYS5kaWdlc3QoXCJoZXhcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgcHJvZ3Jlc3MucnVuKGBWYWxpZGF0ZSAke3Byb2dyZXNzLmVtcGhhc2l6ZShcInR5cGVzXCIpfWAsICgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmJ1aWxkKHByb2plY3QucGtnLCBcInNyY1wiLCByZWZyZXNoQ2FsbGJhY2ssIGZhbHNlKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHByb2plY3QucGtnLmhhc1Rlc3RzKSB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHByb2dyZXNzLnJ1bihgVmFsaWRhdGUgJHtwcm9ncmVzcy5lbXBoYXNpemUoXCJ0ZXN0IHR5cGVzXCIpfWAsICgpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmJ1aWxkKHByb2plY3QucGtnLCBcInRlc3RcIiwgcmVmcmVzaENhbGxiYWNrKSxcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBCdWlsZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzLmZhaWx1cmUoXCJUZXJtaW5hdGluZyBkdWUgdG8gdHlwZSBlcnJvcnNcIik7XG4gICAgICAgICAgICAgICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGAke2UuZGlhZ25vc3RpY3N9XFxuYCk7XG4gICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZvcm1hdHMgPSBBcnJheTxcImVzbVwiIHwgXCJjanNcIj4oKTtcbiAgICAgICAgaWYgKHRhcmdldHMuaGFzKFRhcmdldC5lc20pKSB7XG4gICAgICAgICAgICBmb3JtYXRzLnB1c2goXCJlc21cIik7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRhcmdldHMuaGFzKFRhcmdldC5janMpKSB7XG4gICAgICAgICAgICBmb3JtYXRzLnB1c2goXCJjanNcIik7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZm9ybWF0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGdyb3VwcyA9IFtwcm9qZWN0LnBrZy5pc0xpYnJhcnkgPyBcImxpYnJhcnlcIiA6IFwiYXBwXCJdO1xuICAgICAgICAgICAgaWYgKHByb2plY3QucGtnLmhhc1Rlc3RzKSB7XG4gICAgICAgICAgICAgICAgZ3JvdXBzLnB1c2goXCJ0ZXN0c1wiKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZm9ybWF0RGVzYyA9IGZvcm1hdHMubWFwKHByb2dyZXNzLmVtcGhhc2l6ZSkuam9pbihcIitcIik7XG4gICAgICAgICAgICBjb25zdCBncm91cERlc2MgPSBncm91cHMubWFwKHByb2dyZXNzLmVtcGhhc2l6ZSkuam9pbihcIitcIik7XG5cbiAgICAgICAgICAgIGF3YWl0IHByb2dyZXNzLnJ1bihgVHJhbnNwaWxlICR7Z3JvdXBEZXNjfSB0byAke2Zvcm1hdERlc2N9YCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybWF0IG9mIGZvcm1hdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy4jdHJhbnNwaWxlKHByb2plY3QsIGZvcm1hdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBjb25maWc/LmFmdGVyPy4oeyBwcm9qZWN0IH0pO1xuXG4gICAgICAgIC8vIE9ubHkgdXBkYXRlIGJ1aWxkIGluZm9ybWF0aW9uIHdoZW4gdGhlcmUgYXJlIG5vIGV4cGxpY2l0IHRhcmdldHMgc28gd2Uga25vdyBpdCdzIGEgZnVsbCBidWlsZFxuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy50YXJnZXRzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGF3YWl0IHByb2plY3QucmVjb3JkQnVpbGRJbmZvKGluZm8pO1xuICAgICAgICAgICAgaWYgKG5vZGUpIHtcbiAgICAgICAgICAgICAgICBub2RlLmluZm8gPSBpbmZvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgI3RyYW5zcGlsZShwcm9qZWN0OiBQcm9qZWN0LCBmb3JtYXQ6IFwiZXNtXCIgfCBcImNqc1wiKSB7XG4gICAgICAgIGF3YWl0IHByb2plY3QuYnVpbGRTb3VyY2UoZm9ybWF0KTtcbiAgICAgICAgaWYgKHByb2plY3QucGtnLmhhc1Rlc3RzKSB7XG4gICAgICAgICAgICBhd2FpdCBwcm9qZWN0LmJ1aWxkVGVzdHMoZm9ybWF0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNzZWxlY3RUYXJnZXRzKHByb2plY3Q6IFByb2plY3QpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0cyA9IG5ldyBTZXQ8c3RyaW5nPih0aGlzLm9wdGlvbnMudGFyZ2V0cyk7XG5cbiAgICAgICAgaWYgKCF0YXJnZXRzLnNpemUpIHtcbiAgICAgICAgICAgIHRhcmdldHMuYWRkKFRhcmdldC50eXBlcyk7XG5cbiAgICAgICAgICAgIGlmIChwcm9qZWN0LnBrZy5zdXBwb3J0c0VzbSkge1xuICAgICAgICAgICAgICAgIHRhcmdldHMuYWRkKFRhcmdldC5lc20pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocHJvamVjdC5wa2cuc3VwcG9ydHNDanMpIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRzLmFkZChUYXJnZXQuY2pzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghcHJvamVjdC5wa2cuc3VwcG9ydHNFc20pIHtcbiAgICAgICAgICAgICAgICB0YXJnZXRzLmRlbGV0ZShUYXJnZXQuZXNtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFwcm9qZWN0LnBrZy5zdXBwb3J0c0Nqcykge1xuICAgICAgICAgICAgICAgIHRhcmdldHMuZGVsZXRlKFRhcmdldC5janMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRhcmdldHM7XG4gICAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLFNBQVMsa0JBQWtCO0FBRTNCLFNBQVMsa0JBQWtCO0FBQzNCLFNBQVMsYUFBYTtBQUV0QixTQUFTLCtCQUErQjtBQUdqQyxJQUFLLFNBQUwsa0JBQUtBLFlBQUw7QUFDSCxFQUFBQSxRQUFBLFdBQVE7QUFDUixFQUFBQSxRQUFBLFdBQVE7QUFDUixFQUFBQSxRQUFBLFNBQU07QUFDTixFQUFBQSxRQUFBLFNBQU07QUFKRSxTQUFBQTtBQUFBLEdBQUE7QUFrQkwsTUFBTSxRQUFRO0FBQUEsRUFLakIsWUFBb0IsVUFBbUIsQ0FBQyxHQUFHO0FBQXZCO0FBQ2hCLFNBQUssUUFBUSxRQUFRO0FBQ3JCLFNBQUssZ0JBQ0QsUUFBUSxTQUFVLFFBQVEsWUFBWSxVQUFhLFFBQVEsU0FBUyxRQUFRLG1CQUFZLE1BQU07QUFBQSxFQUN0RztBQUFBLEVBUkE7QUFBQSxFQUNB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
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/building/builder.ts"],
4
- "mappings": "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",
5
- "names": ["Target"]
6
- }
@@ -1,230 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2025 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- import { createHash } from "node:crypto";
8
- import { Progress } from "../util/progress.js";
9
- import { BuildError } from "./error.js";
10
- import { Graph } from "./graph.js";
11
- import { BuildInformation, Project } from "./project.js";
12
- import { createTypescriptContext } from "./typescript.js";
13
- import { TypescriptContext } from "./typescript/context.js";
14
-
15
- export enum Target {
16
- clean = "clean",
17
- types = "types",
18
- esm = "esm",
19
- cjs = "cjs",
20
- }
21
-
22
- export interface Options {
23
- targets?: Target[];
24
- clean?: boolean;
25
- graph?: Graph;
26
- }
27
-
28
- /**
29
- * High-level build coordination.
30
- *
31
- * Warning: This class is intended for command line use and will process.exit if things go wrong.
32
- */
33
- export class Builder {
34
- unconditional: boolean;
35
- tsContext?: TypescriptContext;
36
- graph?: Graph;
37
-
38
- constructor(private options: Options = {}) {
39
- this.graph = options.graph;
40
- this.unconditional =
41
- options.clean || (options.targets !== undefined && options.targets?.indexOf(Target.clean) !== -1);
42
- }
43
-
44
- get hasClean() {
45
- return this.options.clean;
46
- }
47
-
48
- clearClean() {
49
- delete this.options.clean;
50
- }
51
-
52
- hasTargets() {
53
- return this.options.targets && this.options.targets.length > 0;
54
- }
55
-
56
- public async configure(project: Project) {
57
- if (!project.pkg.hasConfig) {
58
- return;
59
- }
60
-
61
- await project.configure();
62
- }
63
-
64
- public async build(project: Project) {
65
- const progress = project.pkg.start("Building");
66
-
67
- try {
68
- await this.#doBuild(project, progress);
69
- } catch (e: any) {
70
- progress.close();
71
- process.stderr.write(`${e.stack ?? e.message}\n\n`);
72
- process.exit(1);
73
- }
74
-
75
- progress.close();
76
- }
77
-
78
- async #doBuild(project: Project, progress: Progress) {
79
- const targets = this.#selectTargets(project);
80
-
81
- if (targets.has(Target.clean) || this.options.clean) {
82
- await progress.run("Clean", () => project.clean());
83
- }
84
-
85
- if (!targets.has(Target.types) && !targets.has(Target.esm) && !targets.has(Target.cjs)) {
86
- return;
87
- }
88
-
89
- const info: BuildInformation = {};
90
-
91
- const config = await project.configure();
92
-
93
- await config?.before?.({ project });
94
-
95
- // If available we use graph to access dependency API shas
96
- const graph = this.graph ?? (await Graph.forProject(project.pkg.path));
97
- let node: Graph.Node | undefined;
98
- if (graph) {
99
- node = graph.get(project.pkg.name);
100
- for (const dep of node.dependencies) {
101
- if (dep.info.apiSha !== undefined) {
102
- if (info.dependencyApiShas === undefined) {
103
- info.dependencyApiShas = {};
104
- }
105
- info.dependencyApiShas[dep.pkg.name] = dep.info.apiSha;
106
- }
107
- }
108
- }
109
-
110
- if (targets.has(Target.types)) {
111
- try {
112
- // Obtain or initialize typescript solution builder
113
- let context = this.tsContext;
114
- if (context === undefined) {
115
- context = this.tsContext = await createTypescriptContext(project.pkg.workspace, graph);
116
- }
117
-
118
- const refreshCallback = progress.refresh.bind(progress);
119
-
120
- if (project.pkg.isLibrary) {
121
- const apiSha = createHash("sha1");
122
-
123
- // Our API SHA changes if that of any dependency changes
124
- if (node) {
125
- for (const dep of node.dependencies) {
126
- if (dep.info.apiSha !== undefined) {
127
- apiSha.update(dep.info.apiSha);
128
- }
129
- }
130
- }
131
-
132
- await progress.run(`Generate ${progress.emphasize("type declarations")}`, async () => {
133
- await context.build(project.pkg, "src", refreshCallback);
134
- await project.hashDeclarations(apiSha);
135
- });
136
-
137
- // Work-in-progress alternative doc generation implementation
138
- // await progress.run(`Extract ${progress.emphasize("api docs")}`, () =>
139
- // emitApiDoc(project.pkg, program, progress),
140
- // );
141
-
142
- info.apiSha = apiSha.digest("hex");
143
- } else {
144
- await progress.run(`Validate ${progress.emphasize("types")}`, () =>
145
- context.build(project.pkg, "src", refreshCallback, false),
146
- );
147
- }
148
- if (project.pkg.hasTests) {
149
- await progress.run(`Validate ${progress.emphasize("test types")}`, () =>
150
- context.build(project.pkg, "test", refreshCallback),
151
- );
152
- }
153
- } catch (e) {
154
- if (e instanceof BuildError) {
155
- progress.failure("Terminating due to type errors");
156
- process.stderr.write(`${e.diagnostics}\n`);
157
- process.exit(1);
158
- }
159
- throw e;
160
- }
161
- }
162
-
163
- const formats = Array<"esm" | "cjs">();
164
- if (targets.has(Target.esm)) {
165
- formats.push("esm");
166
- }
167
- if (targets.has(Target.cjs)) {
168
- formats.push("cjs");
169
- }
170
-
171
- if (formats.length) {
172
- const groups = [project.pkg.isLibrary ? "library" : "app"];
173
- if (project.pkg.hasTests) {
174
- groups.push("tests");
175
- }
176
-
177
- const formatDesc = formats.map(progress.emphasize).join("+");
178
- const groupDesc = groups.map(progress.emphasize).join("+");
179
-
180
- await progress.run(`Transpile ${groupDesc} to ${formatDesc}`, async () => {
181
- for (const format of formats) {
182
- await this.#transpile(project, format);
183
- }
184
- });
185
- }
186
-
187
- await config?.after?.({ project });
188
-
189
- // Only update build information when there are no explicit targets so we know it's a full build
190
- if (!this.options.targets?.length) {
191
- await project.recordBuildInfo(info);
192
- if (node) {
193
- node.info = info;
194
- }
195
- }
196
- }
197
-
198
- async #transpile(project: Project, format: "esm" | "cjs") {
199
- await project.buildSource(format);
200
- if (project.pkg.hasTests) {
201
- await project.buildTests(format);
202
- }
203
- }
204
-
205
- #selectTargets(project: Project) {
206
- const targets = new Set<string>(this.options.targets);
207
-
208
- if (!targets.size) {
209
- targets.add(Target.types);
210
-
211
- if (project.pkg.supportsEsm) {
212
- targets.add(Target.esm);
213
- }
214
-
215
- if (project.pkg.supportsCjs) {
216
- targets.add(Target.cjs);
217
- }
218
- } else {
219
- if (!project.pkg.supportsEsm) {
220
- targets.delete(Target.esm);
221
- }
222
-
223
- if (!project.pkg.supportsCjs) {
224
- targets.delete(Target.cjs);
225
- }
226
- }
227
-
228
- return targets;
229
- }
230
- }