@plugjs/plug 0.0.15 → 0.0.17
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/dist/assert.cjs +18 -38
- package/dist/assert.cjs.map +1 -1
- package/dist/assert.d.ts +2 -16
- package/dist/assert.mjs +17 -32
- package/dist/assert.mjs.map +1 -1
- package/dist/async.cjs +2 -2
- package/dist/async.cjs.map +1 -1
- package/dist/async.d.ts +1 -1
- package/dist/async.mjs +2 -2
- package/dist/async.mjs.map +1 -1
- package/dist/build.cjs +20 -72
- package/dist/build.cjs.map +2 -2
- package/dist/build.d.ts +5 -3
- package/dist/build.mjs +22 -74
- package/dist/build.mjs.map +2 -2
- package/dist/failure.cjs +48 -0
- package/dist/failure.cjs.map +6 -0
- package/dist/failure.d.ts +13 -0
- package/dist/failure.mjs +22 -0
- package/dist/failure.mjs.map +6 -0
- package/dist/fork.cjs +21 -10
- package/dist/fork.cjs.map +1 -1
- package/dist/fork.d.ts +19 -1
- package/dist/fork.mjs +21 -11
- package/dist/fork.mjs.map +1 -1
- package/dist/helpers.cjs +8 -40
- package/dist/helpers.cjs.map +1 -1
- package/dist/helpers.d.ts +23 -3
- package/dist/helpers.mjs +8 -40
- package/dist/helpers.mjs.map +1 -1
- package/dist/index.cjs +16 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.mjs +7 -0
- package/dist/index.mjs.map +1 -1
- package/dist/log/logger.cjs +15 -12
- package/dist/log/logger.cjs.map +1 -1
- package/dist/log/logger.d.ts +2 -0
- package/dist/log/logger.mjs +15 -12
- package/dist/log/logger.mjs.map +1 -1
- package/dist/log/report.cjs +7 -4
- package/dist/log/report.cjs.map +1 -1
- package/dist/log/report.mjs +7 -4
- package/dist/log/report.mjs.map +1 -1
- package/dist/log.cjs +3 -0
- package/dist/log.cjs.map +1 -1
- package/dist/log.mjs +3 -0
- package/dist/log.mjs.map +1 -1
- package/dist/pipe.cjs +56 -14
- package/dist/pipe.cjs.map +1 -1
- package/dist/pipe.d.ts +42 -28
- package/dist/pipe.mjs +60 -13
- package/dist/pipe.mjs.map +1 -1
- package/dist/plugs/copy.cjs +1 -1
- package/dist/plugs/copy.cjs.map +1 -1
- package/dist/plugs/copy.mjs +1 -1
- package/dist/plugs/copy.mjs.map +1 -1
- package/dist/plugs/coverage.cjs +1 -2
- package/dist/plugs/coverage.cjs.map +1 -1
- package/dist/plugs/coverage.mjs +1 -2
- package/dist/plugs/coverage.mjs.map +1 -1
- package/dist/plugs/debug.cjs +6 -1
- package/dist/plugs/debug.cjs.map +1 -1
- package/dist/plugs/debug.d.ts +1 -1
- package/dist/plugs/debug.mjs +7 -2
- package/dist/plugs/debug.mjs.map +1 -1
- package/dist/plugs/esbuild.mjs.map +1 -1
- package/dist/plugs/eslint/runner.cjs +2 -1
- package/dist/plugs/eslint/runner.cjs.map +1 -1
- package/dist/plugs/eslint/runner.d.ts +1 -1
- package/dist/plugs/eslint/runner.mjs +3 -2
- package/dist/plugs/eslint/runner.mjs.map +1 -1
- package/dist/plugs/eslint.cjs +2 -2
- package/dist/plugs/eslint.cjs.map +1 -1
- package/dist/plugs/eslint.mjs +1 -1
- package/dist/plugs/exec.cjs +1 -1
- package/dist/plugs/exec.cjs.map +1 -1
- package/dist/plugs/exec.mjs +1 -1
- package/dist/plugs/exec.mjs.map +1 -1
- package/dist/plugs/mocha/runner.cjs +2 -2
- package/dist/plugs/mocha/runner.cjs.map +1 -1
- package/dist/plugs/mocha/runner.d.ts +1 -1
- package/dist/plugs/mocha/runner.mjs +2 -2
- package/dist/plugs/mocha/runner.mjs.map +1 -1
- package/dist/plugs/mocha.cjs +2 -2
- package/dist/plugs/mocha.cjs.map +1 -1
- package/dist/plugs/mocha.mjs +1 -1
- package/dist/plugs/rmf.mjs.map +1 -1
- package/dist/plugs/tsc/report.cjs.map +1 -1
- package/dist/plugs/tsc/report.mjs.map +1 -1
- package/dist/plugs/tsc/runner.cjs +3 -6
- package/dist/plugs/tsc/runner.cjs.map +2 -2
- package/dist/plugs/tsc/runner.mjs +4 -7
- package/dist/plugs/tsc/runner.mjs.map +2 -2
- package/dist/plugs/tsc.cjs +2 -2
- package/dist/plugs/tsc.cjs.map +1 -1
- package/dist/plugs/tsc.mjs +1 -1
- package/dist/types.d.ts +7 -8
- package/dist/utils/asyncfs.cjs.map +1 -1
- package/dist/utils/asyncfs.mjs.map +1 -1
- package/extra/cli.mjs +1 -1
- package/package.json +14 -13
- package/src/assert.ts +20 -34
- package/src/async.ts +3 -3
- package/src/failure.ts +31 -0
- package/src/fork.ts +43 -10
- package/src/helpers.ts +35 -56
- package/src/index.ts +4 -3
- package/src/log/logger.ts +22 -16
- package/src/log/report.ts +7 -3
- package/src/log.ts +4 -0
- package/src/pipe.ts +147 -44
- package/src/plugs/copy.ts +2 -2
- package/src/plugs/coverage/report.ts +1 -1
- package/src/plugs/coverage.ts +2 -3
- package/src/plugs/debug.ts +11 -4
- package/src/plugs/esbuild.ts +1 -1
- package/src/plugs/eslint/runner.ts +4 -3
- package/src/plugs/eslint.ts +1 -1
- package/src/plugs/exec.ts +1 -1
- package/src/plugs/mocha/runner.ts +3 -3
- package/src/plugs/mocha.ts +1 -1
- package/src/plugs/rmf.ts +1 -1
- package/src/plugs/tsc/runner.ts +5 -8
- package/src/plugs/tsc.ts +1 -1
- package/src/types.ts +8 -15
- package/src/utils/asyncfs.ts +1 -0
package/dist/failure.cjs
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
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
|
+
|
|
20
|
+
// failure.ts
|
|
21
|
+
var failure_exports = {};
|
|
22
|
+
__export(failure_exports, {
|
|
23
|
+
BuildFailure: () => BuildFailure,
|
|
24
|
+
isBuildFailure: () => isBuildFailure
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(failure_exports);
|
|
27
|
+
var buildFailure = Symbol.for("plugjs:buildFailure");
|
|
28
|
+
function isBuildFailure(arg) {
|
|
29
|
+
return arg && arg[buildFailure] === buildFailure;
|
|
30
|
+
}
|
|
31
|
+
var BuildFailure = class extends Error {
|
|
32
|
+
errors;
|
|
33
|
+
logged;
|
|
34
|
+
constructor(options = "Build Failure", errors = []) {
|
|
35
|
+
const { logged, message } = typeof options === "string" ? { message: options, logged: false } : { message: "Build Failure", ...options };
|
|
36
|
+
super(message);
|
|
37
|
+
Error.captureStackTrace(this, BuildFailure);
|
|
38
|
+
Object.defineProperty(this, "buildFailure", { value: buildFailure });
|
|
39
|
+
this.errors = errors.filter((e) => !(isBuildFailure(e) && e.logged));
|
|
40
|
+
this.logged = logged;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
44
|
+
0 && (module.exports = {
|
|
45
|
+
BuildFailure,
|
|
46
|
+
isBuildFailure
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=failure.cjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/failure.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,IAAM,eAAe,OAAO,IAAI,qBAAqB;AAG9C,SAAS,eAAe,KAA+B;AAC5D,SAAO,OAAO,IAAI,kBAAkB;AACtC;AAGO,IAAM,eAAN,cAA2B,MAAM;AAAA,EAC7B;AAAA,EACT;AAAA,EAOA,YAAY,UAAwC,iBAAiB,SAAgB,CAAC,GAAG;AACvF,UAAM,EAAE,QAAQ,QAAQ,IACtB,OAAO,YAAY,WACjB,EAAE,SAAS,SAAS,QAAQ,MAAM,IAClC,EAAE,SAAS,iBAAiB,GAAG,QAAQ;AAE3C,UAAM,OAAO;AACb,UAAM,kBAAkB,MAAM,YAAY;AAC1C,WAAO,eAAe,MAAM,gBAAgB,EAAE,OAAO,aAAa,CAAC;AACnE,SAAK,SAAS,OAAO,OAAO,CAAC,MAAM,EAAG,eAAe,CAAC,KAAK,EAAE,OAAO;AACpE,SAAK,SAAS;AAAA,EAChB;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Check if the specified argument is a {@link BuildFailure} */
|
|
2
|
+
export declare function isBuildFailure(arg: any): arg is BuildFailure;
|
|
3
|
+
/** A {@link BuildFailure} represents an error _already logged_ in our build. */
|
|
4
|
+
export declare class BuildFailure extends Error {
|
|
5
|
+
readonly errors: readonly any[];
|
|
6
|
+
logged: boolean;
|
|
7
|
+
/** Construct a {@link BuildFailure} that was already _logged_ (internal) */
|
|
8
|
+
constructor(options: {
|
|
9
|
+
logged: true;
|
|
10
|
+
});
|
|
11
|
+
/** Construct a {@link BuildFailure} with a detail message */
|
|
12
|
+
constructor(message: string, errors?: any[]);
|
|
13
|
+
}
|
package/dist/failure.mjs
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// failure.ts
|
|
2
|
+
var buildFailure = Symbol.for("plugjs:buildFailure");
|
|
3
|
+
function isBuildFailure(arg) {
|
|
4
|
+
return arg && arg[buildFailure] === buildFailure;
|
|
5
|
+
}
|
|
6
|
+
var BuildFailure = class extends Error {
|
|
7
|
+
errors;
|
|
8
|
+
logged;
|
|
9
|
+
constructor(options = "Build Failure", errors = []) {
|
|
10
|
+
const { logged, message } = typeof options === "string" ? { message: options, logged: false } : { message: "Build Failure", ...options };
|
|
11
|
+
super(message);
|
|
12
|
+
Error.captureStackTrace(this, BuildFailure);
|
|
13
|
+
Object.defineProperty(this, "buildFailure", { value: buildFailure });
|
|
14
|
+
this.errors = errors.filter((e) => !(isBuildFailure(e) && e.logged));
|
|
15
|
+
this.logged = logged;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
BuildFailure,
|
|
20
|
+
isBuildFailure
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=failure.mjs.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/failure.ts"],
|
|
4
|
+
"mappings": ";AACA,IAAM,eAAe,OAAO,IAAI,qBAAqB;AAG9C,SAAS,eAAe,KAA+B;AAC5D,SAAO,OAAO,IAAI,kBAAkB;AACtC;AAGO,IAAM,eAAN,cAA2B,MAAM;AAAA,EAC7B;AAAA,EACT;AAAA,EAOA,YAAY,UAAwC,iBAAiB,SAAgB,CAAC,GAAG;AACvF,UAAM,EAAE,QAAQ,QAAQ,IACtB,OAAO,YAAY,WACjB,EAAE,SAAS,SAAS,QAAQ,MAAM,IAClC,EAAE,SAAS,iBAAiB,GAAG,QAAQ;AAE3C,UAAM,OAAO;AACb,UAAM,kBAAkB,MAAM,YAAY;AAC1C,WAAO,eAAe,MAAM,gBAAgB,EAAE,OAAO,aAAa,CAAC;AACnE,SAAK,SAAS,OAAO,OAAO,CAAC,MAAM,EAAG,eAAe,CAAC,KAAK,EAAE,OAAO;AACpE,SAAK,SAAS;AAAA,EAChB;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/fork.cjs
CHANGED
|
@@ -20,12 +20,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// fork.ts
|
|
21
21
|
var fork_exports = {};
|
|
22
22
|
__export(fork_exports, {
|
|
23
|
-
ForkingPlug: () => ForkingPlug
|
|
23
|
+
ForkingPlug: () => ForkingPlug,
|
|
24
|
+
installForking: () => installForking
|
|
24
25
|
});
|
|
25
26
|
module.exports = __toCommonJS(fork_exports);
|
|
26
27
|
var import_node_child_process = require("node:child_process");
|
|
27
28
|
var import_assert = require("./assert.cjs");
|
|
28
29
|
var import_async = require("./async.cjs");
|
|
30
|
+
var import_failure = require("./failure.cjs");
|
|
29
31
|
var import_files = require("./files.cjs");
|
|
30
32
|
var import_log = require("./log.cjs");
|
|
31
33
|
var import_paths = require("./paths.cjs");
|
|
@@ -68,7 +70,7 @@ var ForkingPlug = class {
|
|
|
68
70
|
let result = void 0;
|
|
69
71
|
child.on("error", (error) => {
|
|
70
72
|
context.log.error("Child process error", error);
|
|
71
|
-
return done || reject(
|
|
73
|
+
return done || reject(new import_failure.BuildFailure({ logged: true }));
|
|
72
74
|
});
|
|
73
75
|
child.on("message", (message2) => {
|
|
74
76
|
context.log.debug("Message from child process", message2);
|
|
@@ -77,15 +79,15 @@ var ForkingPlug = class {
|
|
|
77
79
|
child.on("exit", (code, signal) => {
|
|
78
80
|
if (signal) {
|
|
79
81
|
context.log.error(`Child process exited with signal ${signal}`, (0, import_log.$gry)(`(pid=${child.pid})`));
|
|
80
|
-
return done || reject(
|
|
82
|
+
return done || reject(new import_failure.BuildFailure({ logged: true }));
|
|
81
83
|
} else if (code !== 0) {
|
|
82
84
|
context.log.error(`Child process exited with code ${code}`, (0, import_log.$gry)(`(pid=${child.pid})`));
|
|
83
|
-
return done || reject(
|
|
85
|
+
return done || reject(new import_failure.BuildFailure({ logged: true }));
|
|
84
86
|
} else if (!result) {
|
|
85
87
|
context.log.error("Child process exited with no result", (0, import_log.$gry)(`(pid=${child.pid})`));
|
|
86
|
-
return done || reject(
|
|
88
|
+
return done || reject(new import_failure.BuildFailure({ logged: true }));
|
|
87
89
|
} else if (result.failed) {
|
|
88
|
-
return done || reject(
|
|
90
|
+
return done || reject(new import_failure.BuildFailure({ logged: true }));
|
|
89
91
|
}
|
|
90
92
|
return done || resolve(message.filesDir && message.filesList ? import_files.Files.builder(message.filesDir).add(...message.filesList).build() : void 0);
|
|
91
93
|
});
|
|
@@ -93,16 +95,16 @@ var ForkingPlug = class {
|
|
|
93
95
|
const result2 = child.send(message, (error) => {
|
|
94
96
|
if (error) {
|
|
95
97
|
context.log.error("Error sending message to child process (callback failure)", error);
|
|
96
|
-
reject(
|
|
98
|
+
reject(new import_failure.BuildFailure({ logged: true }));
|
|
97
99
|
}
|
|
98
100
|
});
|
|
99
101
|
if (!result2) {
|
|
100
102
|
context.log.error("Error sending message to child process (send returned false)");
|
|
101
|
-
reject(
|
|
103
|
+
reject(new import_failure.BuildFailure({ logged: true }));
|
|
102
104
|
}
|
|
103
105
|
} catch (error) {
|
|
104
106
|
context.log.error("Error sending message to child process (exception caught)", error);
|
|
105
|
-
reject(
|
|
107
|
+
reject(new import_failure.BuildFailure({ logged: true }));
|
|
106
108
|
}
|
|
107
109
|
}).finally(() => done = true);
|
|
108
110
|
}
|
|
@@ -160,8 +162,17 @@ if (process.argv[1] === (0, import_paths.requireFilename)(__filename) && process
|
|
|
160
162
|
});
|
|
161
163
|
});
|
|
162
164
|
}
|
|
165
|
+
function installForking(plugName, scriptFile) {
|
|
166
|
+
const ctor = class extends ForkingPlug {
|
|
167
|
+
constructor(...args) {
|
|
168
|
+
super(scriptFile, args);
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
(0, import_pipe.install)(plugName, ctor);
|
|
172
|
+
}
|
|
163
173
|
// Annotate the CommonJS export names for ESM import in node:
|
|
164
174
|
0 && (module.exports = {
|
|
165
|
-
ForkingPlug
|
|
175
|
+
ForkingPlug,
|
|
176
|
+
installForking
|
|
166
177
|
});
|
|
167
178
|
//# sourceMappingURL=fork.cjs.map
|
package/dist/fork.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/fork.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAAqB;AACrB,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["message", "result"]
|
|
6
6
|
}
|
package/dist/fork.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Files } from './files';
|
|
2
2
|
import { LogOptions } from './log';
|
|
3
3
|
import { AbsolutePath } from './paths';
|
|
4
|
-
import { Plug,
|
|
4
|
+
import { Context, Plug, PlugName, PlugResult } from './pipe';
|
|
5
5
|
/** Fork data, from parent to child process */
|
|
6
6
|
export interface ForkData {
|
|
7
7
|
/** Script name for the Plug to execute */
|
|
@@ -34,3 +34,21 @@ export declare abstract class ForkingPlug implements Plug<PlugResult> {
|
|
|
34
34
|
constructor(_scriptFile: AbsolutePath, _arguments: any[]);
|
|
35
35
|
pipe(files: Files, context: Context): Promise<PlugResult>;
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Install a _forking_ {@link Plug} in the {@link Pipe}, in other words
|
|
39
|
+
* execute the plug in a separate process.
|
|
40
|
+
*
|
|
41
|
+
* As a contract, if the _last non-null_ parameter of the constructor is an
|
|
42
|
+
* object and contains the key `coverageDir`, the process will be forked with
|
|
43
|
+
* the approptiately resolved `NODE_V8_COVERAGE` environment variable.
|
|
44
|
+
*
|
|
45
|
+
* Also, forking plugs require some special attention:
|
|
46
|
+
*
|
|
47
|
+
* * plug functions are not supported, only classes implementing the
|
|
48
|
+
* {@link Plug} interface can be used with this.
|
|
49
|
+
*
|
|
50
|
+
* * the class itself _MUST_ be exported as the _default_ export for the
|
|
51
|
+
* `scriptFile` specified below. This is to simplify interoperability between
|
|
52
|
+
* CommonJS and ESM modules as we use dynamic `import(...)` statements.
|
|
53
|
+
*/
|
|
54
|
+
export declare function installForking<Name extends PlugName>(plugName: Name, scriptFile: AbsolutePath): void;
|
package/dist/fork.mjs
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
// fork.ts
|
|
2
2
|
import { fork } from "node:child_process";
|
|
3
|
-
import { assert
|
|
3
|
+
import { assert } from "./assert.mjs";
|
|
4
4
|
import { runAsync } from "./async.mjs";
|
|
5
|
+
import { BuildFailure } from "./failure.mjs";
|
|
5
6
|
import { Files } from "./files.mjs";
|
|
6
7
|
import { $gry, $p, logOptions } from "./log.mjs";
|
|
7
8
|
import { requireFilename, resolveFile } from "./paths.mjs";
|
|
8
|
-
import { Context } from "./pipe.mjs";
|
|
9
|
+
import { Context, install } from "./pipe.mjs";
|
|
9
10
|
var ForkingPlug = class {
|
|
10
11
|
constructor(_scriptFile, _arguments) {
|
|
11
12
|
this._scriptFile = _scriptFile;
|
|
@@ -44,7 +45,7 @@ var ForkingPlug = class {
|
|
|
44
45
|
let result = void 0;
|
|
45
46
|
child.on("error", (error) => {
|
|
46
47
|
context.log.error("Child process error", error);
|
|
47
|
-
return done || reject(
|
|
48
|
+
return done || reject(new BuildFailure({ logged: true }));
|
|
48
49
|
});
|
|
49
50
|
child.on("message", (message2) => {
|
|
50
51
|
context.log.debug("Message from child process", message2);
|
|
@@ -53,15 +54,15 @@ var ForkingPlug = class {
|
|
|
53
54
|
child.on("exit", (code, signal) => {
|
|
54
55
|
if (signal) {
|
|
55
56
|
context.log.error(`Child process exited with signal ${signal}`, $gry(`(pid=${child.pid})`));
|
|
56
|
-
return done || reject(
|
|
57
|
+
return done || reject(new BuildFailure({ logged: true }));
|
|
57
58
|
} else if (code !== 0) {
|
|
58
59
|
context.log.error(`Child process exited with code ${code}`, $gry(`(pid=${child.pid})`));
|
|
59
|
-
return done || reject(
|
|
60
|
+
return done || reject(new BuildFailure({ logged: true }));
|
|
60
61
|
} else if (!result) {
|
|
61
62
|
context.log.error("Child process exited with no result", $gry(`(pid=${child.pid})`));
|
|
62
|
-
return done || reject(
|
|
63
|
+
return done || reject(new BuildFailure({ logged: true }));
|
|
63
64
|
} else if (result.failed) {
|
|
64
|
-
return done || reject(
|
|
65
|
+
return done || reject(new BuildFailure({ logged: true }));
|
|
65
66
|
}
|
|
66
67
|
return done || resolve(message.filesDir && message.filesList ? Files.builder(message.filesDir).add(...message.filesList).build() : void 0);
|
|
67
68
|
});
|
|
@@ -69,16 +70,16 @@ var ForkingPlug = class {
|
|
|
69
70
|
const result2 = child.send(message, (error) => {
|
|
70
71
|
if (error) {
|
|
71
72
|
context.log.error("Error sending message to child process (callback failure)", error);
|
|
72
|
-
reject(
|
|
73
|
+
reject(new BuildFailure({ logged: true }));
|
|
73
74
|
}
|
|
74
75
|
});
|
|
75
76
|
if (!result2) {
|
|
76
77
|
context.log.error("Error sending message to child process (send returned false)");
|
|
77
|
-
reject(
|
|
78
|
+
reject(new BuildFailure({ logged: true }));
|
|
78
79
|
}
|
|
79
80
|
} catch (error) {
|
|
80
81
|
context.log.error("Error sending message to child process (exception caught)", error);
|
|
81
|
-
reject(
|
|
82
|
+
reject(new BuildFailure({ logged: true }));
|
|
82
83
|
}
|
|
83
84
|
}).finally(() => done = true);
|
|
84
85
|
}
|
|
@@ -136,7 +137,16 @@ if (process.argv[1] === requireFilename(import.meta.url) && process.send) {
|
|
|
136
137
|
});
|
|
137
138
|
});
|
|
138
139
|
}
|
|
140
|
+
function installForking(plugName, scriptFile) {
|
|
141
|
+
const ctor = class extends ForkingPlug {
|
|
142
|
+
constructor(...args) {
|
|
143
|
+
super(scriptFile, args);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
install(plugName, ctor);
|
|
147
|
+
}
|
|
139
148
|
export {
|
|
140
|
-
ForkingPlug
|
|
149
|
+
ForkingPlug,
|
|
150
|
+
installForking
|
|
141
151
|
};
|
|
142
152
|
//# sourceMappingURL=fork.mjs.map
|
package/dist/fork.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/fork.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,YAAY;AACrB,SAAS,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["message", "result"]
|
|
6
6
|
}
|
package/dist/helpers.cjs
CHANGED
|
@@ -23,7 +23,7 @@ __export(helpers_exports, {
|
|
|
23
23
|
find: () => find,
|
|
24
24
|
isDirectory: () => isDirectory,
|
|
25
25
|
isFile: () => isFile,
|
|
26
|
-
|
|
26
|
+
resolve: () => resolve,
|
|
27
27
|
rmrf: () => rmrf
|
|
28
28
|
});
|
|
29
29
|
module.exports = __toCommonJS(helpers_exports);
|
|
@@ -36,52 +36,17 @@ var import_pipe = require("./pipe.cjs");
|
|
|
36
36
|
var import_asyncfs = require("./utils/asyncfs.cjs");
|
|
37
37
|
var import_options = require("./utils/options.cjs");
|
|
38
38
|
var import_walk = require("./utils/walk.cjs");
|
|
39
|
-
var PipeImpl = class extends import_pipe.Pipe {
|
|
40
|
-
constructor(_start) {
|
|
41
|
-
super();
|
|
42
|
-
this._start = _start;
|
|
43
|
-
}
|
|
44
|
-
plug(arg) {
|
|
45
|
-
const plug = typeof arg === "function" ? { pipe: arg } : arg;
|
|
46
|
-
const parent = this;
|
|
47
|
-
return new PipeImpl(async (context) => {
|
|
48
|
-
const files = await parent._start(context);
|
|
49
|
-
const files2 = await plug.pipe(files, context);
|
|
50
|
-
(0, import_assert.assert)(files2, "Unable to extend pipe (part tres)");
|
|
51
|
-
return files2;
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
async run() {
|
|
55
|
-
return this._start((0, import_async.requireContext)());
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
39
|
function find(...args) {
|
|
59
40
|
const { params: globs, options } = (0, import_options.parseOptions)(args, {});
|
|
60
|
-
|
|
41
|
+
const context = (0, import_async.requireContext)();
|
|
42
|
+
return new import_pipe.Pipe(context, Promise.resolve().then(async () => {
|
|
61
43
|
const directory = options.directory ? context.resolve(options.directory) : (0, import_paths.getCurrentWorkingDirectory)();
|
|
62
44
|
const builder = import_files.Files.builder(directory);
|
|
63
45
|
for await (const file of (0, import_walk.walk)(directory, globs, options)) {
|
|
64
46
|
builder.add(file);
|
|
65
47
|
}
|
|
66
48
|
return builder.build();
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
function merge(...pipes) {
|
|
70
|
-
return new PipeImpl(async () => {
|
|
71
|
-
if (pipes.length === 0)
|
|
72
|
-
return import_files.Files.builder((0, import_paths.getCurrentWorkingDirectory)()).build();
|
|
73
|
-
const results = [];
|
|
74
|
-
for (const pipe of pipes) {
|
|
75
|
-
const result = await pipe.run();
|
|
76
|
-
(0, import_assert.assert)(result, "Pipe did not return a Files result");
|
|
77
|
-
results.push(result);
|
|
78
|
-
}
|
|
79
|
-
const [first, ...others] = results;
|
|
80
|
-
const firstDir = first.directory;
|
|
81
|
-
const otherDirs = others.map((f) => f.directory);
|
|
82
|
-
const directory = (0, import_paths.commonPath)(firstDir, ...otherDirs);
|
|
83
|
-
return import_files.Files.builder(directory).merge(first, ...others).build();
|
|
84
|
-
});
|
|
49
|
+
}));
|
|
85
50
|
}
|
|
86
51
|
async function rmrf(directory) {
|
|
87
52
|
const context = (0, import_async.requireContext)();
|
|
@@ -101,6 +66,9 @@ async function rmrf(directory) {
|
|
|
101
66
|
import_log.log.notice("Removing directory", (0, import_log.$p)(dir), "recursively");
|
|
102
67
|
await (0, import_asyncfs.rm)(dir, { recursive: true });
|
|
103
68
|
}
|
|
69
|
+
function resolve(...paths) {
|
|
70
|
+
return (0, import_async.requireContext)().resolve(...paths);
|
|
71
|
+
}
|
|
104
72
|
function isFile(...paths) {
|
|
105
73
|
const path = (0, import_async.requireContext)().resolve(...paths);
|
|
106
74
|
return (0, import_paths.resolveFile)(path);
|
|
@@ -114,7 +82,7 @@ function isDirectory(...paths) {
|
|
|
114
82
|
find,
|
|
115
83
|
isDirectory,
|
|
116
84
|
isFile,
|
|
117
|
-
|
|
85
|
+
resolve,
|
|
118
86
|
rmrf
|
|
119
87
|
});
|
|
120
88
|
//# sourceMappingURL=helpers.cjs.map
|
package/dist/helpers.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/helpers.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;AACvB,mBAA+B;AAC/B,mBAAsB;AACtB,iBAAwB;AACxB,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAuB;AACvB,mBAA+B;AAC/B,mBAAsB;AACtB,iBAAwB;AACxB,mBAAwF;AACxF,kBAAqB;AACrB,qBAAmB;AACnB,qBAA2C;AAC3C,kBAAkC;AAqB3B,SAAS,QAAQ,MAAuC;AAC7D,QAAM,EAAE,QAAQ,OAAO,QAAQ,QAAI,6BAAa,MAAM,CAAC,CAAC;AAExD,QAAM,cAAU,6BAAe;AAC/B,SAAO,IAAI,iBAAK,SAAS,QAAQ,QAAQ,EAAE,KAAK,YAAY;AAC1D,UAAM,YAAY,QAAQ,YACxB,QAAQ,QAAQ,QAAQ,SAAS,QACjC,yCAA2B;AAE7B,UAAM,UAAU,mBAAM,QAAQ,SAAS;AACvC,qBAAiB,YAAQ,kBAAK,WAAW,OAAO,OAAO,GAAG;AACxD,cAAQ,IAAI,IAAI;AAAA,IAClB;AAEA,WAAO,QAAQ,MAAM;AAAA,EACvB,CAAC,CAAC;AACJ;AAKA,eAAsB,KAAK,WAAkC;AAC3D,QAAM,cAAU,6BAAe;AAC/B,QAAM,MAAM,QAAQ,QAAQ,SAAS;AAErC;AAAA,IAAO,YAAQ,yCAA2B;AAAA,IACtC,2DAAuD,eAAG,GAAG;AAAA,EAAG;AAEpE;AAAA,IAAO,QAAQ,QAAQ,QAAQ,GAAG;AAAA,IAC9B,sDAAkD,eAAG,GAAG;AAAA,EAAG;AAE/D,MAAI,KAAE,+BAAiB,GAAG,GAAG;AAC3B,mBAAI,KAAK,iBAAa,eAAG,GAAG,GAAG,WAAW;AAC1C;AAAA,EACF;AAEA,iBAAI,OAAO,0BAAsB,eAAG,GAAG,GAAG,aAAa;AACvD,YAAM,mBAAG,KAAK,EAAE,WAAW,KAAK,CAAC;AACnC;AAUO,SAAS,WAAW,OAA8C;AACvE,aAAO,6BAAe,EAAE,QAAQ,GAAG,KAAK;AAC1C;AAOO,SAAS,UAAU,OAA0D;AAClF,QAAM,WAAO,6BAAe,EAAE,QAAQ,GAAG,KAAK;AAC9C,aAAO,0BAAY,IAAI;AACzB;AAOO,SAAS,eAAe,OAA0D;AACvF,QAAM,WAAO,6BAAe,EAAE,QAAQ,GAAG,KAAK;AAC9C,aAAO,+BAAiB,IAAI;AAC9B;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/helpers.d.ts
CHANGED
|
@@ -6,16 +6,36 @@ export interface FindOptions extends WalkOptions {
|
|
|
6
6
|
/** The directory where to start looking for files. */
|
|
7
7
|
directory?: string;
|
|
8
8
|
}
|
|
9
|
+
/** Find files in the current directory using the specified _glob_. */
|
|
9
10
|
export declare function find(glob: string): Pipe;
|
|
11
|
+
/** Find files in the current directory using the specified _globs_. */
|
|
10
12
|
export declare function find(glob: string, ...globs: string[]): Pipe;
|
|
13
|
+
/** Find files using the specified _glob_ and {@link FindOptions | options}. */
|
|
11
14
|
export declare function find(glob: string, options: FindOptions): Pipe;
|
|
15
|
+
/** Find files using the specified _globs_ and {@link FindOptions | options}. */
|
|
12
16
|
export declare function find(glob: string, ...extra: [...globs: string[], options: FindOptions]): Pipe;
|
|
13
|
-
export declare function merge(...pipes: Pipe[]): Pipe;
|
|
14
17
|
/**
|
|
15
18
|
* Recursively remove the specified directory _**(use with care)**_.
|
|
16
19
|
*/
|
|
17
20
|
export declare function rmrf(directory: string): Promise<void>;
|
|
18
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Resolve a (set of) path(s) into an {@link AbsolutePath}.
|
|
23
|
+
*
|
|
24
|
+
* If the path (or first component thereof) starts with `@...`, then the
|
|
25
|
+
* resolved path will be relative to the directory containing the build file
|
|
26
|
+
* where the current task was defined, otherwise it will be relative to the
|
|
27
|
+
* current working directory.
|
|
28
|
+
*/
|
|
29
|
+
export declare function resolve(...paths: [string, ...string[]]): AbsolutePath;
|
|
30
|
+
/**
|
|
31
|
+
* Return an absolute path of the file if it exist on disk.
|
|
32
|
+
*
|
|
33
|
+
* See the comments on {@link resolve} to understand how paths are resolved.
|
|
34
|
+
*/
|
|
19
35
|
export declare function isFile(...paths: [string, ...string[]]): AbsolutePath | undefined;
|
|
20
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* Return an absolute path of the directory if it exist on disk.
|
|
38
|
+
*
|
|
39
|
+
* See the comments on {@link resolve} to understand how paths are resolved.
|
|
40
|
+
*/
|
|
21
41
|
export declare function isDirectory(...paths: [string, ...string[]]): AbsolutePath | undefined;
|
package/dist/helpers.mjs
CHANGED
|
@@ -3,57 +3,22 @@ import { assert } from "./assert.mjs";
|
|
|
3
3
|
import { requireContext } from "./async.mjs";
|
|
4
4
|
import { Files } from "./files.mjs";
|
|
5
5
|
import { $p, log } from "./log.mjs";
|
|
6
|
-
import {
|
|
6
|
+
import { getCurrentWorkingDirectory, resolveDirectory, resolveFile } from "./paths.mjs";
|
|
7
7
|
import { Pipe } from "./pipe.mjs";
|
|
8
8
|
import { rm } from "./utils/asyncfs.mjs";
|
|
9
9
|
import { parseOptions } from "./utils/options.mjs";
|
|
10
10
|
import { walk } from "./utils/walk.mjs";
|
|
11
|
-
var PipeImpl = class extends Pipe {
|
|
12
|
-
constructor(_start) {
|
|
13
|
-
super();
|
|
14
|
-
this._start = _start;
|
|
15
|
-
}
|
|
16
|
-
plug(arg) {
|
|
17
|
-
const plug = typeof arg === "function" ? { pipe: arg } : arg;
|
|
18
|
-
const parent = this;
|
|
19
|
-
return new PipeImpl(async (context) => {
|
|
20
|
-
const files = await parent._start(context);
|
|
21
|
-
const files2 = await plug.pipe(files, context);
|
|
22
|
-
assert(files2, "Unable to extend pipe (part tres)");
|
|
23
|
-
return files2;
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
async run() {
|
|
27
|
-
return this._start(requireContext());
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
11
|
function find(...args) {
|
|
31
12
|
const { params: globs, options } = parseOptions(args, {});
|
|
32
|
-
|
|
13
|
+
const context = requireContext();
|
|
14
|
+
return new Pipe(context, Promise.resolve().then(async () => {
|
|
33
15
|
const directory = options.directory ? context.resolve(options.directory) : getCurrentWorkingDirectory();
|
|
34
16
|
const builder = Files.builder(directory);
|
|
35
17
|
for await (const file of walk(directory, globs, options)) {
|
|
36
18
|
builder.add(file);
|
|
37
19
|
}
|
|
38
20
|
return builder.build();
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
function merge(...pipes) {
|
|
42
|
-
return new PipeImpl(async () => {
|
|
43
|
-
if (pipes.length === 0)
|
|
44
|
-
return Files.builder(getCurrentWorkingDirectory()).build();
|
|
45
|
-
const results = [];
|
|
46
|
-
for (const pipe of pipes) {
|
|
47
|
-
const result = await pipe.run();
|
|
48
|
-
assert(result, "Pipe did not return a Files result");
|
|
49
|
-
results.push(result);
|
|
50
|
-
}
|
|
51
|
-
const [first, ...others] = results;
|
|
52
|
-
const firstDir = first.directory;
|
|
53
|
-
const otherDirs = others.map((f) => f.directory);
|
|
54
|
-
const directory = commonPath(firstDir, ...otherDirs);
|
|
55
|
-
return Files.builder(directory).merge(first, ...others).build();
|
|
56
|
-
});
|
|
21
|
+
}));
|
|
57
22
|
}
|
|
58
23
|
async function rmrf(directory) {
|
|
59
24
|
const context = requireContext();
|
|
@@ -73,6 +38,9 @@ async function rmrf(directory) {
|
|
|
73
38
|
log.notice("Removing directory", $p(dir), "recursively");
|
|
74
39
|
await rm(dir, { recursive: true });
|
|
75
40
|
}
|
|
41
|
+
function resolve(...paths) {
|
|
42
|
+
return requireContext().resolve(...paths);
|
|
43
|
+
}
|
|
76
44
|
function isFile(...paths) {
|
|
77
45
|
const path = requireContext().resolve(...paths);
|
|
78
46
|
return resolveFile(path);
|
|
@@ -85,7 +53,7 @@ export {
|
|
|
85
53
|
find,
|
|
86
54
|
isDirectory,
|
|
87
55
|
isFile,
|
|
88
|
-
|
|
56
|
+
resolve,
|
|
89
57
|
rmrf
|
|
90
58
|
};
|
|
91
59
|
//# sourceMappingURL=helpers.mjs.map
|
package/dist/helpers.mjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/helpers.ts"],
|
|
4
|
-
"mappings": ";AAAA,SAAS,cAAc;AACvB,SAAS,sBAAsB;AAC/B,SAAS,aAAa;AACtB,SAAS,IAAI,WAAW;AACxB,SAAuB,
|
|
4
|
+
"mappings": ";AAAA,SAAS,cAAc;AACvB,SAAS,sBAAsB;AAC/B,SAAS,aAAa;AACtB,SAAS,IAAI,WAAW;AACxB,SAAuB,4BAA4B,kBAAkB,mBAAmB;AACxF,SAAS,YAAY;AACrB,SAAS,UAAU;AACnB,SAAuB,oBAAoB;AAC3C,SAAS,YAAyB;AAqB3B,SAAS,QAAQ,MAAuC;AAC7D,QAAM,EAAE,QAAQ,OAAO,QAAQ,IAAI,aAAa,MAAM,CAAC,CAAC;AAExD,QAAM,UAAU,eAAe;AAC/B,SAAO,IAAI,KAAK,SAAS,QAAQ,QAAQ,EAAE,KAAK,YAAY;AAC1D,UAAM,YAAY,QAAQ,YACxB,QAAQ,QAAQ,QAAQ,SAAS,IACjC,2BAA2B;AAE7B,UAAM,UAAU,MAAM,QAAQ,SAAS;AACvC,qBAAiB,QAAQ,KAAK,WAAW,OAAO,OAAO,GAAG;AACxD,cAAQ,IAAI,IAAI;AAAA,IAClB;AAEA,WAAO,QAAQ,MAAM;AAAA,EACvB,CAAC,CAAC;AACJ;AAKA,eAAsB,KAAK,WAAkC;AAC3D,QAAM,UAAU,eAAe;AAC/B,QAAM,MAAM,QAAQ,QAAQ,SAAS;AAErC;AAAA,IAAO,QAAQ,2BAA2B;AAAA,IACtC,uDAAuD,GAAG,GAAG;AAAA,EAAG;AAEpE;AAAA,IAAO,QAAQ,QAAQ,QAAQ,GAAG;AAAA,IAC9B,kDAAkD,GAAG,GAAG;AAAA,EAAG;AAE/D,MAAI,CAAE,iBAAiB,GAAG,GAAG;AAC3B,QAAI,KAAK,aAAa,GAAG,GAAG,GAAG,WAAW;AAC1C;AAAA,EACF;AAEA,MAAI,OAAO,sBAAsB,GAAG,GAAG,GAAG,aAAa;AACvD,QAAM,GAAG,KAAK,EAAE,WAAW,KAAK,CAAC;AACnC;AAUO,SAAS,WAAW,OAA8C;AACvE,SAAO,eAAe,EAAE,QAAQ,GAAG,KAAK;AAC1C;AAOO,SAAS,UAAU,OAA0D;AAClF,QAAM,OAAO,eAAe,EAAE,QAAQ,GAAG,KAAK;AAC9C,SAAO,YAAY,IAAI;AACzB;AAOO,SAAS,eAAe,OAA0D;AACvF,QAAM,OAAO,eAAe,EAAE,QAAQ,GAAG,KAAK;AAC9C,SAAO,iBAAiB,IAAI;AAC9B;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -3,6 +3,10 @@ var __defProp = Object.defineProperty;
|
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
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
|
+
};
|
|
6
10
|
var __copyProps = (to, from, except, desc) => {
|
|
7
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
12
|
for (let key of __getOwnPropNames(from))
|
|
@@ -16,11 +20,23 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
16
20
|
|
|
17
21
|
// index.ts
|
|
18
22
|
var src_exports = {};
|
|
23
|
+
__export(src_exports, {
|
|
24
|
+
BuildFailure: () => import_failure.BuildFailure,
|
|
25
|
+
Pipe: () => import_pipe.Pipe
|
|
26
|
+
});
|
|
19
27
|
module.exports = __toCommonJS(src_exports);
|
|
28
|
+
var import_failure = require("./failure.cjs");
|
|
29
|
+
var import_pipe = require("./pipe.cjs");
|
|
20
30
|
__reExport(src_exports, require("./assert.cjs"), module.exports);
|
|
21
31
|
__reExport(src_exports, require("./build.cjs"), module.exports);
|
|
32
|
+
__reExport(src_exports, require("./fork.cjs"), module.exports);
|
|
22
33
|
__reExport(src_exports, require("./helpers.cjs"), module.exports);
|
|
23
34
|
__reExport(src_exports, require("./log.cjs"), module.exports);
|
|
24
35
|
__reExport(src_exports, require("./plugs.cjs"), module.exports);
|
|
25
36
|
__reExport(src_exports, require("./types.cjs"), module.exports);
|
|
37
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
38
|
+
0 && (module.exports = {
|
|
39
|
+
BuildFailure,
|
|
40
|
+
Pipe
|
|
41
|
+
});
|
|
26
42
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,qBAA6B;AAC7B,kBAAqB;AAGrB,wBAAc,yBATd;AAUA,wBAAc,wBAVd;AAWA,wBAAc,uBAXd;AAYA,wBAAc,0BAZd;AAaA,wBAAc,sBAbd;AAcA,wBAAc,wBAdd;AAeA,wBAAc,wBAfd;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/// <reference path="../extra/webassembly.d.ts" />
|
|
2
2
|
export type { AbsolutePath } from './paths';
|
|
3
3
|
export type { Files, FilesBuilder } from './files';
|
|
4
|
-
export
|
|
4
|
+
export { BuildFailure } from './failure';
|
|
5
|
+
export { Pipe } from './pipe';
|
|
5
6
|
export * from './assert';
|
|
6
7
|
export * from './build';
|
|
8
|
+
export * from './fork';
|
|
7
9
|
export * from './helpers';
|
|
8
10
|
export * from './log';
|
|
9
11
|
export * from './plugs';
|