@plugjs/plug 0.1.4 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +2 -2
  2. package/cli/plug.mjs +1397 -0
  3. package/cli/ts-loader.mjs +273 -0
  4. package/cli/tsrun.mjs +136 -0
  5. package/dist/asserts.cjs +1 -0
  6. package/dist/asserts.cjs.map +1 -1
  7. package/dist/asserts.mjs +1 -0
  8. package/dist/asserts.mjs.map +1 -1
  9. package/dist/build.cjs +51 -24
  10. package/dist/build.cjs.map +2 -2
  11. package/dist/build.d.ts +7 -3
  12. package/dist/build.mjs +50 -24
  13. package/dist/build.mjs.map +2 -2
  14. package/dist/files.cjs +9 -0
  15. package/dist/files.cjs.map +1 -1
  16. package/dist/files.mjs +9 -0
  17. package/dist/files.mjs.map +1 -1
  18. package/dist/fork.cjs +2 -0
  19. package/dist/fork.cjs.map +1 -1
  20. package/dist/fork.mjs +2 -0
  21. package/dist/fork.mjs.map +1 -1
  22. package/dist/fs.cjs +11 -4
  23. package/dist/fs.cjs.map +1 -1
  24. package/dist/fs.mjs +7 -4
  25. package/dist/fs.mjs.map +1 -1
  26. package/dist/helpers.cjs +1 -1
  27. package/dist/helpers.cjs.map +1 -1
  28. package/dist/helpers.mjs +1 -1
  29. package/dist/helpers.mjs.map +1 -1
  30. package/dist/index.cjs +7 -0
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.ts +6 -0
  33. package/dist/index.mjs +2 -0
  34. package/dist/index.mjs.map +1 -1
  35. package/dist/logging/levels.cjs.map +1 -1
  36. package/dist/logging/levels.mjs.map +1 -1
  37. package/dist/logging/logger.cjs.map +1 -1
  38. package/dist/logging/logger.mjs.map +1 -1
  39. package/dist/logging/options.cjs +5 -0
  40. package/dist/logging/options.cjs.map +1 -1
  41. package/dist/logging/options.mjs +5 -0
  42. package/dist/logging/options.mjs.map +1 -1
  43. package/dist/logging/report.cjs.map +1 -1
  44. package/dist/logging/report.mjs.map +1 -1
  45. package/dist/logging/spinner.cjs +12 -0
  46. package/dist/logging/spinner.cjs.map +1 -1
  47. package/dist/logging/spinner.mjs +12 -0
  48. package/dist/logging/spinner.mjs.map +1 -1
  49. package/dist/paths.cjs.map +1 -1
  50. package/dist/paths.mjs.map +1 -1
  51. package/dist/pipe.cjs +34 -0
  52. package/dist/pipe.cjs.map +1 -1
  53. package/dist/pipe.mjs +34 -0
  54. package/dist/pipe.mjs.map +1 -1
  55. package/dist/plugs/debug.cjs.map +1 -1
  56. package/dist/plugs/debug.mjs.map +1 -1
  57. package/dist/plugs/edit.cjs +1 -1
  58. package/dist/plugs/edit.cjs.map +1 -1
  59. package/dist/plugs/edit.d.ts +2 -2
  60. package/dist/plugs/edit.mjs +1 -1
  61. package/dist/plugs/edit.mjs.map +1 -1
  62. package/dist/plugs/esbuild/fix-extensions.cjs +4 -0
  63. package/dist/plugs/esbuild/fix-extensions.cjs.map +1 -1
  64. package/dist/plugs/esbuild/fix-extensions.mjs.map +1 -1
  65. package/dist/plugs/esbuild.cjs +6 -2
  66. package/dist/plugs/esbuild.cjs.map +1 -1
  67. package/dist/plugs/esbuild.mjs +6 -2
  68. package/dist/plugs/esbuild.mjs.map +1 -1
  69. package/dist/plugs/exec.cjs.map +1 -1
  70. package/dist/plugs/exec.mjs.map +1 -1
  71. package/dist/plugs/exports.cjs +122 -0
  72. package/dist/plugs/exports.cjs.map +6 -0
  73. package/dist/plugs/exports.d.ts +17 -0
  74. package/dist/plugs/exports.mjs +105 -0
  75. package/dist/plugs/exports.mjs.map +6 -0
  76. package/dist/plugs/filter.cjs.map +1 -1
  77. package/dist/plugs/filter.mjs.map +1 -1
  78. package/dist/plugs.cjs +1 -0
  79. package/dist/plugs.cjs.map +1 -1
  80. package/dist/plugs.d.ts +1 -0
  81. package/dist/plugs.mjs +1 -0
  82. package/dist/plugs.mjs.map +1 -1
  83. package/dist/types.d.ts +5 -1
  84. package/dist/utils/exec.cjs +9 -0
  85. package/dist/utils/exec.cjs.map +1 -1
  86. package/dist/utils/exec.mjs +5 -0
  87. package/dist/utils/exec.mjs.map +1 -1
  88. package/dist/utils/match.cjs +5 -0
  89. package/dist/utils/match.cjs.map +1 -1
  90. package/dist/utils/match.mjs +1 -0
  91. package/dist/utils/match.mjs.map +1 -1
  92. package/dist/utils/options.cjs.map +1 -1
  93. package/dist/utils/options.mjs.map +1 -1
  94. package/dist/utils/walk.cjs.map +1 -1
  95. package/dist/utils/walk.mjs.map +1 -1
  96. package/extra/plug.mts +373 -0
  97. package/extra/ts-loader.mts +545 -0
  98. package/extra/tsrun.mts +64 -0
  99. package/extra/utils.ts +168 -0
  100. package/package.json +9 -19
  101. package/src/build.ts +66 -33
  102. package/src/fork.ts +1 -0
  103. package/src/helpers.ts +1 -1
  104. package/src/index.ts +7 -0
  105. package/src/logging/spinner.ts +2 -0
  106. package/src/plugs/edit.ts +4 -3
  107. package/src/plugs/esbuild.ts +0 -1
  108. package/src/plugs/exports.ts +175 -0
  109. package/src/plugs.ts +1 -0
  110. package/src/types.ts +5 -1
  111. package/types/plugjs.d.ts +0 -2
  112. package/LICENSE.md +0 -211
  113. package/NOTICE.md +0 -13
  114. package/extra/cli.mjs +0 -1356
  115. package/extra/ts-loader.mjs +0 -223
@@ -0,0 +1,273 @@
1
+ // ts-loader.mts
2
+ import _fs2 from "node:fs";
3
+ import _module from "node:module";
4
+ import _path from "node:path";
5
+ import _url from "node:url";
6
+ import _util from "node:util";
7
+ import _esbuild from "esbuild";
8
+
9
+ // utils.ts
10
+ import _fs from "node:fs";
11
+ var $rst = process.stdout.isTTY ? "\x1B[0m" : "";
12
+ var $und = process.stdout.isTTY ? "\x1B[4m" : "";
13
+ var $gry = process.stdout.isTTY ? "\x1B[38;5;240m" : "";
14
+ var $blu = process.stdout.isTTY ? "\x1B[38;5;69m" : "";
15
+ var $wht = process.stdout.isTTY ? "\x1B[1;38;5;255m" : "";
16
+ var $tsk = process.stdout.isTTY ? "\x1B[38;5;141m" : "";
17
+ function isFile(path) {
18
+ try {
19
+ return _fs.statSync(path).isFile();
20
+ } catch (error) {
21
+ return false;
22
+ }
23
+ }
24
+ function isDirectory(path) {
25
+ try {
26
+ return _fs.statSync(path).isDirectory();
27
+ } catch (error) {
28
+ return false;
29
+ }
30
+ }
31
+
32
+ // ts-loader.mts
33
+ var CJS = "commonjs";
34
+ var ESM = "module";
35
+ var _debugLog = _util.debuglog("plug:ts-loader");
36
+ var _debug = _debugLog.enabled;
37
+ function _log(type, arg, ...args) {
38
+ if (!_debug)
39
+ return;
40
+ const t = type === ESM ? "esm" : type === CJS ? "cjs" : "---";
41
+ _debugLog(`[${t}] ${arg}`, ...args);
42
+ }
43
+ function _throw(type, message, options = {}) {
44
+ const t = type === ESM ? "esm" : type === CJS ? "cjs" : "---";
45
+ const prefix = `[ts-loader|${t}|pid=${process.pid}]`;
46
+ const { start = _throw, ...extra } = options;
47
+ const error = new Error(`${prefix} ${message}`);
48
+ Error.captureStackTrace(error, start);
49
+ Object.assign(error, extra);
50
+ throw error;
51
+ }
52
+ function _checkType(type) {
53
+ if (type === CJS)
54
+ return CJS;
55
+ if (type === ESM)
56
+ return ESM;
57
+ _throw(null, `Invalid type "${process.env.__TS_LOADER_FORCE_TYPE}"`);
58
+ }
59
+ var _type = (() => {
60
+ if (process.env.__TS_LOADER_FORCE_TYPE) {
61
+ const type = process.env.__TS_LOADER_FORCE_TYPE;
62
+ _log(null, `Forcing type to "${type}" from environment`);
63
+ return _checkType(type);
64
+ }
65
+ const findType = (directory) => {
66
+ const packageFile = _path.join(directory, "package.json");
67
+ try {
68
+ const packageData = _fs2.readFileSync(packageFile, "utf-8");
69
+ const packageJson = JSON.parse(packageData);
70
+ const packageType = packageJson.type;
71
+ switch (packageType) {
72
+ case void 0:
73
+ _log(null, `File "${packageFile}" does not declare a default type`);
74
+ return CJS;
75
+ case CJS:
76
+ case ESM:
77
+ _log(null, `File "${packageFile}" declares type as "${CJS}"`);
78
+ return packageType;
79
+ default:
80
+ _log(null, `File "${packageFile}" specifies unknown type "${packageType}"`);
81
+ return CJS;
82
+ }
83
+ } catch (cause) {
84
+ if (cause.code !== "ENOENT" && cause.code !== "EISDIR") {
85
+ _throw(null, `Unable to read or parse "${packageFile}"`, { cause, start: findType });
86
+ }
87
+ }
88
+ const parent = _path.dirname(directory);
89
+ if (directory !== parent)
90
+ return findType(directory);
91
+ _log(null, `Type defaulted to "${CJS}"`);
92
+ return CJS;
93
+ };
94
+ return findType(process.cwd());
95
+ })();
96
+ var tsLoaderMarker = Symbol.for("plugjs:tsLoader");
97
+ Object.defineProperty(globalThis, tsLoaderMarker, {
98
+ set(type) {
99
+ _log(null, `Setting type to "${type}"`);
100
+ process.env.__TS_LOADER_FORCE_TYPE = _type = _checkType(type);
101
+ },
102
+ get() {
103
+ return _type;
104
+ }
105
+ });
106
+ function _esbReport(kind, messages = []) {
107
+ const output = process.stderr;
108
+ const options = { color: !!output.isTTY, terminalWidth: output.columns || 80 };
109
+ const array = _esbuild.formatMessagesSync(messages, { kind, ...options });
110
+ array.forEach((message) => output.write(`${message}
111
+ `));
112
+ }
113
+ function _esbTranpile(filename, type) {
114
+ _log(type, `Transpiling "${filename}`);
115
+ const [format, __fileurl] = type === ESM ? ["esm", "import.meta.url"] : ["cjs", "__filename"];
116
+ const options = {
117
+ sourcefile: filename,
118
+ // the original filename we're parsing
119
+ format,
120
+ // what are we actually transpiling to???
121
+ loader: "ts",
122
+ // the format is always "typescript"
123
+ sourcemap: "inline",
124
+ // always inline source maps
125
+ sourcesContent: false,
126
+ // do not include sources content in sourcemap
127
+ platform: "node",
128
+ // d'oh! :-)
129
+ logLevel: "silent",
130
+ // catching those in our _esbReport below
131
+ target: `node${process.versions["node"]}`,
132
+ // target _this_ version
133
+ define: { __fileurl }
134
+ // from "globals.d.ts"
135
+ };
136
+ if (_debug) {
137
+ if (format === "esm") {
138
+ options.banner = `;(await import('node:util')).debuglog('plug:ts-loader')('[esm] Loaded "%s"', ${__fileurl});`;
139
+ } else if (format === "cjs") {
140
+ options.banner = `;require('node:util').debuglog('plug:ts-loader')('[cjs] Loaded "%s"', ${__fileurl});`;
141
+ }
142
+ }
143
+ let result;
144
+ try {
145
+ const source = _fs2.readFileSync(filename, "utf-8");
146
+ result = _esbuild.transformSync(source, options);
147
+ } catch (cause) {
148
+ _esbReport("error", cause.errors);
149
+ _esbReport("warning", cause.warnings);
150
+ _throw(type, `ESBuild error transpiling "${filename}"`, { cause, start: _esbTranpile });
151
+ }
152
+ if (_debug)
153
+ _esbReport("warning", result.warnings);
154
+ return result.code;
155
+ }
156
+ var resolve = (specifier, context, nextResolve) => {
157
+ _log(ESM, `Resolving "${specifier}" from "${context.parentURL}"`);
158
+ if (!specifier.match(/^\.\.?\//))
159
+ return nextResolve(specifier, context);
160
+ const parentURL = context.parentURL;
161
+ if (!parentURL)
162
+ return nextResolve(specifier, context);
163
+ if (!parentURL.startsWith("file:"))
164
+ return nextResolve(specifier, context);
165
+ if (!parentURL.match(/\.m?ts$/))
166
+ return nextResolve(specifier, context);
167
+ const url = new URL(specifier, parentURL).href;
168
+ const path = _url.fileURLToPath(url);
169
+ if (isFile(path)) {
170
+ _log(ESM, `Positive match for "${specifier}" as "${path}" (1)`);
171
+ return nextResolve(specifier, context);
172
+ }
173
+ const match = specifier.match(/(.*)(\.[mc]?js$)/);
174
+ if (match) {
175
+ const [, base, ext] = match;
176
+ const tsspecifier = base + ext.replace("js", "ts");
177
+ const tsurl = new URL(tsspecifier, parentURL).href;
178
+ const tspath = _url.fileURLToPath(tsurl);
179
+ if (isFile(tspath)) {
180
+ _log(ESM, `Positive match for "${specifier}" as "${tspath}" (2)`);
181
+ return nextResolve(tsspecifier, context);
182
+ }
183
+ }
184
+ if (isFile(`${path}.ts`)) {
185
+ _log(ESM, `Positive match for "${specifier}.ts" as "${path}.ts" (3)`);
186
+ return nextResolve(`${specifier}.ts`, context);
187
+ }
188
+ if (isDirectory(path)) {
189
+ const file = _path.resolve(path, "index.ts");
190
+ if (isFile(file)) {
191
+ _log(ESM, `Positive match for "${specifier}" as "${file}" (4)`);
192
+ const spec = _url.pathToFileURL(file).pathname;
193
+ return nextResolve(spec, context);
194
+ }
195
+ }
196
+ return nextResolve(specifier, context);
197
+ };
198
+ var load = (url, context, nextLoad) => {
199
+ _log(ESM, `Attempting to load "${url}"`);
200
+ if (!url.startsWith("file:"))
201
+ return nextLoad(url, context);
202
+ const ext = url.match(/\.[cm]?ts$/)?.[0];
203
+ if (!ext)
204
+ return nextLoad(url, context);
205
+ if (ext === ".cts") {
206
+ if (_debug) {
207
+ _log(null, `Switching type from "module" to "commonjs" for "${url}"`);
208
+ _log(null, "Please note that named import WILL NOT WORK in this case, as Node.js performs a");
209
+ _log(null, "static analisys on the CommonJS source code, and this file is transpiled from.");
210
+ _log(null, "TypeScript to CommonJS dynamically.");
211
+ }
212
+ return { format: CJS, shortCircuit: true };
213
+ }
214
+ const filename = _url.fileURLToPath(url);
215
+ if (ext === ".ts") {
216
+ if (_type === CJS) {
217
+ if (_debug) {
218
+ _log(null, `Switching type from "module" to "commonjs" for "${url}"`);
219
+ _log(null, "Please note that named import WILL NOT WORK in this case, as Node.js performs a");
220
+ _log(null, "static analisys on the CommonJS source code, and this file is transpiled from.");
221
+ _log(null, "TypeScript to CommonJS dynamically.");
222
+ }
223
+ return { format: CJS, shortCircuit: true };
224
+ }
225
+ }
226
+ const source = _esbTranpile(filename, ESM);
227
+ return { source, format: ESM, shortCircuit: true };
228
+ };
229
+ var loader = (module, filename) => {
230
+ _log(CJS, `Attempting to load "${filename}"`);
231
+ const ext = _path.extname(filename);
232
+ if (ext === ".ts") {
233
+ if (_type === ESM) {
234
+ _throw(CJS, `Must use import to load ES Module: ${filename}`, { code: "ERR_REQUIRE_ESM" });
235
+ }
236
+ } else if (ext !== ".cts") {
237
+ _throw(CJS, `Unsupported filename "${filename}"`);
238
+ }
239
+ const source = _esbTranpile(filename, CJS);
240
+ try {
241
+ module._compile(source, filename);
242
+ } catch (cause) {
243
+ console.error(`Error compiling module "${filename}"`, cause);
244
+ }
245
+ };
246
+ _module._extensions[".ts"] = _module._extensions[".cts"] = loader;
247
+ var _oldResolveFilename = _module._resolveFilename;
248
+ _module._resolveFilename = function(request, parent, ...args) {
249
+ try {
250
+ return _oldResolveFilename.call(this, request, parent, ...args);
251
+ } catch (error) {
252
+ if (error.code !== "MODULE_NOT_FOUND")
253
+ throw error;
254
+ const match = request.match(/(.*)(\.[mc]?js$)/);
255
+ if (parent && match) {
256
+ const [, name, ext] = match;
257
+ const tsrequest = name + ext.replace("js", "ts");
258
+ try {
259
+ const result = _oldResolveFilename.call(this, tsrequest, parent, ...args);
260
+ _log(CJS, `Resolution for "${request}" intercepted as "${tsrequest}`);
261
+ return result;
262
+ } catch (discard) {
263
+ throw error;
264
+ }
265
+ }
266
+ throw error;
267
+ }
268
+ };
269
+ export {
270
+ load,
271
+ resolve
272
+ };
273
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vZXh0cmEvdHMtbG9hZGVyLm10cyIsICIuLi9leHRyYS91dGlscy50cyJdLAogICJtYXBwaW5ncyI6ICI7QUFxQkEsT0FBT0EsVUFBUztBQUNoQixPQUFPLGFBQWE7QUFDcEIsT0FBTyxXQUFXO0FBQ2xCLE9BQU8sVUFBVTtBQUNqQixPQUFPLFdBQVc7QUFHbEIsT0FBTyxjQUFjOzs7QUMxQnJCLE9BQU8sU0FBUztBQVNULElBQU0sT0FBTyxRQUFRLE9BQU8sUUFBUSxZQUFjO0FBQ2xELElBQU0sT0FBTyxRQUFRLE9BQU8sUUFBUSxZQUFjO0FBQ2xELElBQU0sT0FBTyxRQUFRLE9BQU8sUUFBUSxtQkFBcUI7QUFDekQsSUFBTSxPQUFPLFFBQVEsT0FBTyxRQUFRLGtCQUFvQjtBQUN4RCxJQUFNLE9BQU8sUUFBUSxPQUFPLFFBQVEscUJBQXVCO0FBQzNELElBQU0sT0FBTyxRQUFRLE9BQU8sUUFBUSxtQkFBcUI7QUEyQ3pELFNBQVMsT0FBTyxNQUF1QjtBQUM1QyxNQUFJO0FBQ0YsV0FBTyxJQUFJLFNBQVMsSUFBSSxFQUFFLE9BQU87QUFBQSxFQUNuQyxTQUFTLE9BQVA7QUFDQSxXQUFPO0FBQUEsRUFDVDtBQUNGO0FBR08sU0FBUyxZQUFZLE1BQXVCO0FBQ2pELE1BQUk7QUFDRixXQUFPLElBQUksU0FBUyxJQUFJLEVBQUUsWUFBWTtBQUFBLEVBQ3hDLFNBQVMsT0FBUDtBQUNBLFdBQU87QUFBQSxFQUNUO0FBQ0Y7OztBRGxDQSxJQUFNLE1BQU07QUFFWixJQUFNLE1BQU07QUFHWixJQUFNLFlBQVksTUFBTSxTQUFTLGdCQUFnQjtBQUNqRCxJQUFNLFNBQVMsVUFBVTtBQUd6QixTQUFTLEtBQUssTUFBbUIsUUFBZ0IsTUFBb0I7QUFDbkUsTUFBSSxDQUFFO0FBQVE7QUFFZCxRQUFNLElBQUksU0FBUyxNQUFNLFFBQVEsU0FBUyxNQUFNLFFBQVE7QUFDeEQsWUFBVSxJQUFJLE1BQU0sT0FBTyxHQUFHLElBQUk7QUFDcEM7QUFHQSxTQUFT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
package/cli/tsrun.mjs ADDED
@@ -0,0 +1,136 @@
1
+ #!/usr/bin/env node
2
+
3
+ // tsrun.mts
4
+ import _path2 from "node:path";
5
+
6
+ // utils.ts
7
+ import _childProcess from "node:child_process";
8
+ import _fs from "node:fs";
9
+ import _path from "node:path";
10
+ import _url from "node:url";
11
+ import _util from "node:util";
12
+ var $rst = process.stdout.isTTY ? "\x1B[0m" : "";
13
+ var $und = process.stdout.isTTY ? "\x1B[4m" : "";
14
+ var $gry = process.stdout.isTTY ? "\x1B[38;5;240m" : "";
15
+ var $blu = process.stdout.isTTY ? "\x1B[38;5;69m" : "";
16
+ var $wht = process.stdout.isTTY ? "\x1B[1;38;5;255m" : "";
17
+ var $tsk = process.stdout.isTTY ? "\x1B[38;5;141m" : "";
18
+ function version() {
19
+ const debug = _util.debuglog("plug:cli");
20
+ try {
21
+ const thisFile = _url.fileURLToPath(import.meta.url);
22
+ const packageFile = _path.resolve(thisFile, "..", "..", "package.json");
23
+ const packageData = _fs.readFileSync(packageFile, "utf-8");
24
+ return JSON.parse(packageData).version || "(unknown)";
25
+ } catch (error) {
26
+ debug("Error parsing version:", error);
27
+ return "(error)";
28
+ }
29
+ }
30
+ function forceType(type) {
31
+ const debug = _util.debuglog("plug:cli");
32
+ const tsLoaderMarker = Symbol.for("plugjs:tsLoader");
33
+ if (!(tsLoaderMarker in globalThis)) {
34
+ throw new Error("TypeScript Loader not available");
35
+ }
36
+ debug(`Forcing type to "${type}"`);
37
+ globalThis[tsLoaderMarker] = type;
38
+ }
39
+ function main(callback) {
40
+ const debug = _util.debuglog("plug:cli");
41
+ const sourceMapsEnabled = process.execArgv.indexOf("--enable-source-maps") >= 0;
42
+ const tsLoaderMarker = Symbol.for("plugjs:tsLoader");
43
+ const typeScriptEnabled = globalThis[tsLoaderMarker];
44
+ debug("SourceMaps enabled =", sourceMapsEnabled);
45
+ debug("TypeScript enabled =", typeScriptEnabled || false);
46
+ if (sourceMapsEnabled && typeScriptEnabled) {
47
+ const args = process.argv.slice(2).filter((arg) => {
48
+ if (arg === "--force-esm") {
49
+ return forceType("module");
50
+ } else if (arg === "--force-cjs") {
51
+ return forceType("commonjs");
52
+ } else {
53
+ return arg;
54
+ }
55
+ });
56
+ Promise.resolve().then(() => callback(args)).catch(console.error);
57
+ } else {
58
+ const script = _url.fileURLToPath(import.meta.url);
59
+ const execArgv = [...process.execArgv];
60
+ if (!sourceMapsEnabled)
61
+ execArgv.push("--enable-source-maps");
62
+ if (!typeScriptEnabled) {
63
+ const directory = _path.dirname(script);
64
+ const extension = _path.extname(script);
65
+ const loader = _path.resolve(directory, `ts-loader${extension}`);
66
+ execArgv.push(`--experimental-loader=${loader}`, "--no-warnings");
67
+ }
68
+ const child = _childProcess.fork(script, [...process.argv.slice(2)], {
69
+ stdio: ["inherit", "inherit", "inherit", "ipc"],
70
+ execArgv
71
+ });
72
+ child.on("error", (error) => {
73
+ console.log("Error respawning CLI", error);
74
+ process.exit(1);
75
+ });
76
+ child.on("exit", (code, signal) => {
77
+ if (signal) {
78
+ console.log(`CLI process exited with signal ${signal}`);
79
+ process.exit(1);
80
+ } else if (typeof code !== "number") {
81
+ console.log("CLI process failed for an unknown reason");
82
+ process.exit(1);
83
+ } else {
84
+ process.exit(code);
85
+ }
86
+ });
87
+ }
88
+ }
89
+
90
+ // tsrun.mts
91
+ function help() {
92
+ console.log(`${$blu}${$und}Usage:${$rst}
93
+
94
+ ${$wht}tsrun${$rst} ${$gry}[${$rst}--options${$gry}] script.ts [...${$rst}script args${$gry}]${$rst}
95
+
96
+ ${$blu}${$und}Options:${$rst}
97
+
98
+ ${$wht}-h --help${$rst} Help! You're reading it now!
99
+ ${$wht}-v --version${$rst} Version! This one: ${version()}!
100
+ ${$wht} --force-esm${$rst} Force transpilation of ".ts" files to EcmaScript modules
101
+ ${$wht} --force-cjs${$rst} Force transpilation of ".ts" files to CommonJS modules
102
+
103
+ ${$blu}${$und}Description:${$rst}
104
+
105
+ ${$wht}tsrun${$rst} is a minimalistic TypeScript loader, using "esbuild" to transpile TS
106
+ code to JavaScript, and running it. Being extremely un-sofisticated, it's
107
+ not meant to to be in any way a replacement for more complete alternatives
108
+ like "ts-node".
109
+ `);
110
+ process.exit(1);
111
+ }
112
+ main((args) => {
113
+ let script;
114
+ let scriptArgs = [];
115
+ for (let i = 0; i < args.length; i++) {
116
+ const arg = args[i];
117
+ if (arg === "-h" || arg === "--help")
118
+ help();
119
+ if (arg === "-v" || arg === "--version") {
120
+ console.log(`v${version()}`);
121
+ process.exit(1);
122
+ }
123
+ if (arg.startsWith("-")) {
124
+ console.log(`${$wht}tsrun${$rst}: Uknown option "${$wht}${arg}${$rst}"`);
125
+ process.exit(1);
126
+ }
127
+ [script, ...scriptArgs] = args.slice(i);
128
+ break;
129
+ }
130
+ if (!script)
131
+ help();
132
+ script = _path2.resolve(process.cwd(), script);
133
+ process.argv = [process.argv0, script, ...scriptArgs];
134
+ import(script);
135
+ });
136
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vZXh0cmEvdHNydW4ubXRzIiwgIi4uL2V4dHJhL3V0aWxzLnRzIl0sCiAgIm1hcHBpbmdzIjogIjs7O0FBR0EsT0FBT0EsWUFBVzs7O0FDRmxCLE9BQU8sbUJBQW1CO0FBQzFCLE9BQU8sU0FBUztBQUNoQixPQUFPLFdBQVc7QUFDbEIsT0FBTyxVQUFVO0FBQ2pCLE9BQU8sV0FBVztBQU1YLElBQU0sT0FBTyxRQUFRLE9BQU8sUUFBUSxZQUFjO0FBQ2xELElBQU0sT0FBTyxRQUFRLE9BQU8sUUFBUSxZQUFjO0FBQ2xELElBQU0sT0FBTyxRQUFRLE9BQU8sUUFBUSxtQkFBcUI7QUFDekQsSUFBTSxPQUFPLFFBQVEsT0FBTyxRQUFRLGtCQUFvQjtBQUN4RCxJQUFNLE9BQU8sUUFBUSxPQUFPLFFBQVEscUJBQXVCO0FBQzNELElBQU0sT0FBTyxRQUFRLE9BQU8sUUFBUSxtQkFBcUI7QUFPekQsU0FBUyxVQUFrQjtBQUNoQyxRQUFNLFFBQVEsTUFBTSxTQUFTLFVBQVU7QUFFdkMsTUFBSTtBQUNGLFVBQU0sV0FBVyxLQUFLLGNBQWMsWUFBWSxHQUFHO0FBQ25ELFVBQU0sY0FBYyxNQUFNLFFBQVEsVUFBVSxNQUFNLE1BQU0sY0FBYztBQUN0RSxVQUFNLGNBQWMsSUFBSSxhQUFhLGFBQWEsT0FBTztBQUN6RCxXQUFPLEtBQUssTUFBTSxXQUFXLEVBQUUsV0FBVztBQUFBLEVBQzVDLFNBQVMsT0FBUDtBQUNBLFVBQU0sMEJBQTBCLEtBQUs7QUFDckMsV0FBTztBQUFBLEVBQ1Q7QUFDRjtBQU1BLFNBQVMsVUFBVSxNQUFtQztBQUNwRCxRQUFNLFFBQVEsTUFBTSxTQUFTLFVBQVU7QUFFdkMsUUFBTSxpQkFBaUIsT0FBTyxJQUFJLGlCQUFpQjtBQUVuRCxNQUFJLEVBQUUsa0JBQWtCLGFBQWE7QUFDbkMsVUFBTSxJQUFJLE1BQU0saUNBQWlDO0FBQUEsRUFDbkQ7QUFDQSxRQUFNLG9CQUFvQixPQUFPO0FBQ2hDLEVBQUMsV0FBbUIsY0FBYyxJQUFJ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
package/dist/asserts.cjs CHANGED
@@ -33,6 +33,7 @@ function isBuildFailure(arg) {
33
33
  }
34
34
  var BuildFailure = class extends Error {
35
35
  errors;
36
+ /** Construct a {@link BuildFailure} */
36
37
  constructor(message, errors = []) {
37
38
  super(message || "");
38
39
  Error.captureStackTrace(this, BuildFailure);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/asserts.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,IAAM,eAAe,OAAO,IAAI,qBAAqB;AAG9C,SAAS,eAAe,KAA+B;AAC5D,SAAO,OAAO,IAAI,kBAAkB;AACtC;AAGO,IAAM,eAAN,cAA2B,MAAM;AAAA,EAC7B;AAAA,EAGT,YAAY,SAA8B,SAAgB,CAAC,GAAG;AAC5D,UAAM,WAAW,EAAE;AAGnB,UAAM,kBAAkB,MAAM,YAAY;AAC1C,QAAI,OAAO;AAAQ,WAAK,SAAS,OAAO,OAAO,CAAE,GAAG,MAAO,CAAC;AAG5D,WAAO,iBAAiB,MAAM;AAAA,MAC5B,CAAC,eAAe,EAAE,OAAO,aAAa;AAAA,MACtC,QAAQ,EAAE,OAAO,eAAe;AAAA,IAClC,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,OAAqB;AAC1B,WAAO,IAAI,aAAa,QAAW,CAAC,CAAC;AAAA,EACvC;AAAA,EAEA,OAAO,YAAY,SAA+B;AAChD,WAAO,IAAI,aAAa,SAAS,CAAC,CAAC;AAAA,EACrC;AAAA,EAEA,OAAO,WAAW,QAA6B;AAC7C,WAAO,IAAI,aAAa,QAAW,MAAM;AAAA,EAC3C;AACF;AAGA,eAAsB,eAAkB,UAA4C;AAElF,QAAM,cAAc,MAAM,QAAQ,WAAW,QAAQ;AAGrD,QAAM,UAAe,CAAC;AACtB,QAAM,WAAW,oBAAI,IAAS;AAE9B,cAAY,QAAQ,CAAC,eAAe;AAClC,QAAI,WAAW,WAAW,aAAa;AACrC,cAAQ,KAAK,WAAW,KAAK;AAAA,IAC/B,OAAO;AACL,eAAS,IAAI,WAAW,MAAM;AAAA,IAChC;AAAA,EACF,CAAC;AAGD,MAAI,SAAS;AAAM,UAAM,aAAa,WAAW,CAAE,GAAG,QAAS,CAAC;AAEhE,SAAO;AACT;AAGO,SAAS,OAAO,WAAgB,SAAoC;AACzE,MAAI,CAAE;AAAW,UAAM,aAAa,YAAY,OAAO;AACzD;AAGO,SAAS,KAAK,SAAwB;AAC3C,QAAM,aAAa,YAAY,OAAO;AACxC;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,IAAM,eAAe,OAAO,IAAI,qBAAqB;AAG9C,SAAS,eAAe,KAA+B;AAC5D,SAAO,OAAO,IAAI,YAAY,MAAM;AACtC;AAGO,IAAM,eAAN,cAA2B,MAAM;AAAA,EAC7B;AAAA;AAAA,EAGT,YAAY,SAA8B,SAAgB,CAAC,GAAG;AAC5D,UAAM,WAAW,EAAE;AAGnB,UAAM,kBAAkB,MAAM,YAAY;AAC1C,QAAI,OAAO;AAAQ,WAAK,SAAS,OAAO,OAAO,CAAE,GAAG,MAAO,CAAC;AAG5D,WAAO,iBAAiB,MAAM;AAAA,MAC5B,CAAC,YAAY,GAAG,EAAE,OAAO,aAAa;AAAA,MACtC,QAAQ,EAAE,OAAO,eAAe;AAAA,IAClC,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,OAAqB;AAC1B,WAAO,IAAI,aAAa,QAAW,CAAC,CAAC;AAAA,EACvC;AAAA,EAEA,OAAO,YAAY,SAA+B;AAChD,WAAO,IAAI,aAAa,SAAS,CAAC,CAAC;AAAA,EACrC;AAAA,EAEA,OAAO,WAAW,QAA6B;AAC7C,WAAO,IAAI,aAAa,QAAW,MAAM;AAAA,EAC3C;AACF;AAGA,eAAsB,eAAkB,UAA4C;AAElF,QAAM,cAAc,MAAM,QAAQ,WAAW,QAAQ;AAGrD,QAAM,UAAe,CAAC;AACtB,QAAM,WAAW,oBAAI,IAAS;AAE9B,cAAY,QAAQ,CAAC,eAAe;AAClC,QAAI,WAAW,WAAW,aAAa;AACrC,cAAQ,KAAK,WAAW,KAAK;AAAA,IAC/B,OAAO;AACL,eAAS,IAAI,WAAW,MAAM;AAAA,IAChC;AAAA,EACF,CAAC;AAGD,MAAI,SAAS;AAAM,UAAM,aAAa,WAAW,CAAE,GAAG,QAAS,CAAC;AAEhE,SAAO;AACT;AAGO,SAAS,OAAO,WAAgB,SAAoC;AACzE,MAAI,CAAE;AAAW,UAAM,aAAa,YAAY,OAAO;AACzD;AAGO,SAAS,KAAK,SAAwB;AAC3C,QAAM,aAAa,YAAY,OAAO;AACxC;",
5
5
  "names": []
6
6
  }
package/dist/asserts.mjs CHANGED
@@ -5,6 +5,7 @@ function isBuildFailure(arg) {
5
5
  }
6
6
  var BuildFailure = class extends Error {
7
7
  errors;
8
+ /** Construct a {@link BuildFailure} */
8
9
  constructor(message, errors = []) {
9
10
  super(message || "");
10
11
  Error.captureStackTrace(this, BuildFailure);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/asserts.ts"],
4
- "mappings": ";AAKA,IAAM,eAAe,OAAO,IAAI,qBAAqB;AAG9C,SAAS,eAAe,KAA+B;AAC5D,SAAO,OAAO,IAAI,kBAAkB;AACtC;AAGO,IAAM,eAAN,cAA2B,MAAM;AAAA,EAC7B;AAAA,EAGT,YAAY,SAA8B,SAAgB,CAAC,GAAG;AAC5D,UAAM,WAAW,EAAE;AAGnB,UAAM,kBAAkB,MAAM,YAAY;AAC1C,QAAI,OAAO;AAAQ,WAAK,SAAS,OAAO,OAAO,CAAE,GAAG,MAAO,CAAC;AAG5D,WAAO,iBAAiB,MAAM;AAAA,MAC5B,CAAC,eAAe,EAAE,OAAO,aAAa;AAAA,MACtC,QAAQ,EAAE,OAAO,eAAe;AAAA,IAClC,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,OAAqB;AAC1B,WAAO,IAAI,aAAa,QAAW,CAAC,CAAC;AAAA,EACvC;AAAA,EAEA,OAAO,YAAY,SAA+B;AAChD,WAAO,IAAI,aAAa,SAAS,CAAC,CAAC;AAAA,EACrC;AAAA,EAEA,OAAO,WAAW,QAA6B;AAC7C,WAAO,IAAI,aAAa,QAAW,MAAM;AAAA,EAC3C;AACF;AAGA,eAAsB,eAAkB,UAA4C;AAElF,QAAM,cAAc,MAAM,QAAQ,WAAW,QAAQ;AAGrD,QAAM,UAAe,CAAC;AACtB,QAAM,WAAW,oBAAI,IAAS;AAE9B,cAAY,QAAQ,CAAC,eAAe;AAClC,QAAI,WAAW,WAAW,aAAa;AACrC,cAAQ,KAAK,WAAW,KAAK;AAAA,IAC/B,OAAO;AACL,eAAS,IAAI,WAAW,MAAM;AAAA,IAChC;AAAA,EACF,CAAC;AAGD,MAAI,SAAS;AAAM,UAAM,aAAa,WAAW,CAAE,GAAG,QAAS,CAAC;AAEhE,SAAO;AACT;AAGO,SAAS,OAAO,WAAgB,SAAoC;AACzE,MAAI,CAAE;AAAW,UAAM,aAAa,YAAY,OAAO;AACzD;AAGO,SAAS,KAAK,SAAwB;AAC3C,QAAM,aAAa,YAAY,OAAO;AACxC;",
4
+ "mappings": ";AAKA,IAAM,eAAe,OAAO,IAAI,qBAAqB;AAG9C,SAAS,eAAe,KAA+B;AAC5D,SAAO,OAAO,IAAI,YAAY,MAAM;AACtC;AAGO,IAAM,eAAN,cAA2B,MAAM;AAAA,EAC7B;AAAA;AAAA,EAGT,YAAY,SAA8B,SAAgB,CAAC,GAAG;AAC5D,UAAM,WAAW,EAAE;AAGnB,UAAM,kBAAkB,MAAM,YAAY;AAC1C,QAAI,OAAO;AAAQ,WAAK,SAAS,OAAO,OAAO,CAAE,GAAG,MAAO,CAAC;AAG5D,WAAO,iBAAiB,MAAM;AAAA,MAC5B,CAAC,YAAY,GAAG,EAAE,OAAO,aAAa;AAAA,MACtC,QAAQ,EAAE,OAAO,eAAe;AAAA,IAClC,CAAC;AAAA,EACH;AAAA,EAEA,OAAO,OAAqB;AAC1B,WAAO,IAAI,aAAa,QAAW,CAAC,CAAC;AAAA,EACvC;AAAA,EAEA,OAAO,YAAY,SAA+B;AAChD,WAAO,IAAI,aAAa,SAAS,CAAC,CAAC;AAAA,EACrC;AAAA,EAEA,OAAO,WAAW,QAA6B;AAC7C,WAAO,IAAI,aAAa,QAAW,MAAM;AAAA,EAC3C;AACF;AAGA,eAAsB,eAAkB,UAA4C;AAElF,QAAM,cAAc,MAAM,QAAQ,WAAW,QAAQ;AAGrD,QAAM,UAAe,CAAC;AACtB,QAAM,WAAW,oBAAI,IAAS;AAE9B,cAAY,QAAQ,CAAC,eAAe;AAClC,QAAI,WAAW,WAAW,aAAa;AACrC,cAAQ,KAAK,WAAW,KAAK;AAAA,IAC/B,OAAO;AACL,eAAS,IAAI,WAAW,MAAM;AAAA,IAChC;AAAA,EACF,CAAC;AAGD,MAAI,SAAS;AAAM,UAAM,aAAa,WAAW,CAAE,GAAG,QAAS,CAAC;AAEhE,SAAO;AACT;AAGO,SAAS,OAAO,WAAgB,SAAoC;AACzE,MAAI,CAAE;AAAW,UAAM,aAAa,YAAY,OAAO;AACzD;AAGO,SAAS,KAAK,SAAwB;AAC3C,QAAM,aAAa,YAAY,OAAO;AACxC;",
5
5
  "names": []
6
6
  }
package/dist/build.cjs CHANGED
@@ -21,7 +21,8 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
21
21
  var build_exports = {};
22
22
  __export(build_exports, {
23
23
  build: () => build,
24
- invoke: () => invoke
24
+ hookAfter: () => hookAfter,
25
+ hookBefore: () => hookBefore
25
26
  });
26
27
  module.exports = __toCommonJS(build_exports);
27
28
  var import_asserts = require("./asserts.cjs");
@@ -29,13 +30,12 @@ var import_async = require("./async.cjs");
29
30
  var import_logging = require("./logging.cjs");
30
31
  var import_pipe = require("./pipe.cjs");
31
32
  var import_caller = require("./utils/caller.cjs");
32
- var import_options = require("./utils/options.cjs");
33
33
  var taskMarker = Symbol.for("plugjs:isTask");
34
34
  function isTask(something) {
35
35
  return something[taskMarker] === true;
36
36
  }
37
37
  function makeTask(buildFile, tasks, props, _def, _name) {
38
- function invoke2(state, taskName) {
38
+ async function invoke(state, taskName) {
39
39
  (0, import_asserts.assert)(!state.stack.includes(task), `Recursion detected calling ${(0, import_logging.$t)(taskName)}`);
40
40
  const cached = state.cache.get(task);
41
41
  if (cached)
@@ -44,13 +44,13 @@ function makeTask(buildFile, tasks, props, _def, _name) {
44
44
  const tasks2 = Object.assign({}, task.tasks, state.tasks);
45
45
  const stack = [...state.stack, task];
46
46
  const cache = state.cache;
47
+ state = { stack, cache, tasks: tasks2, props: props2 };
47
48
  const context = new import_pipe.Context(task.buildFile, taskName);
48
49
  const build2 = new Proxy({}, {
49
50
  get(_, name) {
50
51
  if (name in tasks2) {
51
52
  return () => {
52
- const state2 = { stack, cache, tasks: tasks2, props: props2 };
53
- const promise2 = tasks2[name].invoke(state2, name);
53
+ const promise2 = tasks2[name].invoke(state, name);
54
54
  return new import_pipe.PipeImpl(context, promise2);
55
55
  };
56
56
  } else if (name in props2) {
@@ -58,16 +58,25 @@ function makeTask(buildFile, tasks, props, _def, _name) {
58
58
  }
59
59
  }
60
60
  });
61
+ for (const before of task.before)
62
+ await before.invoke(state, before.name);
61
63
  context.log.info("Running...");
62
64
  const now = Date.now();
63
65
  const promise = (0, import_async.runAsync)(context, taskName, async () => {
64
66
  return await _def.call(build2) || void 0;
65
- }).then((result) => {
66
- context.log.notice(`Success ${(0, import_logging.$ms)(Date.now() - now)}`);
67
+ }).then(async (result) => {
68
+ const level = taskName.startsWith("_") ? "info" : "notice";
69
+ context.log[level](`Success ${(0, import_logging.$ms)(Date.now() - now)}`);
67
70
  return result;
68
71
  }).catch((error) => {
69
72
  throw context.log.fail(`Failure ${(0, import_logging.$ms)(Date.now() - now)}`, error);
70
- }).finally(() => import_pipe.ContextPromises.wait(context));
73
+ }).finally(async () => {
74
+ await import_pipe.ContextPromises.wait(context);
75
+ }).then(async (result) => {
76
+ for (const after of task.after)
77
+ await after.invoke(state, after.name);
78
+ return result;
79
+ });
71
80
  cache.set(task, promise);
72
81
  return promise;
73
82
  }
@@ -78,9 +87,11 @@ function makeTask(buildFile, tasks, props, _def, _name) {
78
87
  props: Object.assign({}, props, overrideProps),
79
88
  tasks
80
89
  };
81
- return invoke2(state, _name);
82
- }, { buildFile, tasks, props, invoke: invoke2 });
83
- return Object.defineProperty(task, "name", { value: _name });
90
+ return invoke(state, _name);
91
+ }, { buildFile, tasks, props, invoke, before: [], after: [] });
92
+ Object.defineProperty(task, taskMarker, { value: true });
93
+ Object.defineProperty(task, "name", { value: _name });
94
+ return task;
84
95
  }
85
96
  var buildMarker = Symbol.for("plugjs:isBuild");
86
97
  function build(def) {
@@ -89,19 +100,19 @@ function build(def) {
89
100
  const props = {};
90
101
  for (const [key, val] of Object.entries(def)) {
91
102
  let len = 0;
92
- if (typeof val === "string") {
103
+ if (isTask(val)) {
104
+ tasks[key] = val;
105
+ len = key.length;
106
+ } else if (typeof val === "string") {
93
107
  props[key] = val;
94
108
  } else if (typeof val === "function") {
95
109
  tasks[key] = makeTask(buildFile, tasks, props, val, key);
96
110
  len = key.length;
97
- } else if (isTask(val)) {
98
- tasks[key] = val;
99
- len = key.length;
100
111
  }
101
112
  if (len > import_logging.logOptions.taskLength)
102
113
  import_logging.logOptions.taskLength = len;
103
114
  }
104
- const invoke2 = async function invoke3(taskNames, overrideProps = {}) {
115
+ const invoke = async function invoke2(taskNames, overrideProps = {}) {
105
116
  const logger = (0, import_logging.getLogger)();
106
117
  const state = {
107
118
  cache: /* @__PURE__ */ new Map(),
@@ -123,19 +134,35 @@ function build(def) {
123
134
  }
124
135
  };
125
136
  const compiled = Object.assign({}, props, tasks);
126
- Object.defineProperty(compiled, buildMarker, { value: invoke2 });
137
+ Object.defineProperty(compiled, buildMarker, { value: invoke });
127
138
  return compiled;
128
139
  }
129
- async function invoke(build2, ...args) {
130
- const { params: tasks, options: props } = (0, import_options.parseOptions)(args, {});
131
- const invoke2 = build2[buildMarker];
132
- if (typeof invoke2 !== "function")
133
- import_logging.log.fail("Unknown build type");
134
- return await invoke2(tasks, props);
140
+ function hookBefore(build2, taskName, hooks) {
141
+ const task = build2[taskName];
142
+ (0, import_asserts.assert)(isTask(task), `Task "${(0, import_logging.$t)(taskName)}" not found in build`);
143
+ for (const hook of hooks) {
144
+ const beforeHook = build2[hook];
145
+ (0, import_asserts.assert)(isTask(beforeHook), `Task "${(0, import_logging.$t)(hook)}" to hook before "${(0, import_logging.$t)(taskName)}" not found in build`);
146
+ if (task.before.includes(beforeHook))
147
+ continue;
148
+ task.before.push(beforeHook);
149
+ }
150
+ }
151
+ function hookAfter(build2, taskName, hooks) {
152
+ const task = build2[taskName];
153
+ (0, import_asserts.assert)(isTask(task), `Task "${(0, import_logging.$t)(taskName)}" not found in build`);
154
+ for (const hook of hooks) {
155
+ const afterHook = build2[hook];
156
+ (0, import_asserts.assert)(isTask(afterHook), `Task "${(0, import_logging.$t)(hook)}" to hook after "${(0, import_logging.$t)(taskName)}" not found in build`);
157
+ if (task.after.includes(afterHook))
158
+ continue;
159
+ task.after.push(afterHook);
160
+ }
135
161
  }
136
162
  // Annotate the CommonJS export names for ESM import in node:
137
163
  0 && (module.exports = {
138
164
  build,
139
- invoke
165
+ hookAfter,
166
+ hookBefore
140
167
  });
141
168
  //# sourceMappingURL=build.cjs.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/build.ts"],
4
- "mappings": "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",
5
- "names": ["invoke", "props", "tasks", "build", "state", "promise"]
4
+ "mappings": "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",
5
+ "names": ["props", "tasks", "build", "promise", "invoke"]
6
6
  }