build-raptor 0.129.0 → 0.131.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-raptor.js +7259 -0
- package/index.d.ts +22 -0
- package/index.js +7231 -0
- package/package.json +13 -17
- package/dist/deps/brand/brand.d.ts +0 -5
- package/dist/deps/brand/brand.js +0 -3
- package/dist/deps/brand/index.d.ts +0 -1
- package/dist/deps/brand/index.js +0 -18
- package/dist/deps/build-failed-error/build-failed-error.d.ts +0 -14
- package/dist/deps/build-failed-error/build-failed-error.js +0 -13
- package/dist/deps/build-failed-error/index.d.ts +0 -1
- package/dist/deps/build-failed-error/index.js +0 -18
- package/dist/deps/build-raptor-api/build-raptor-api.d.ts +0 -351
- package/dist/deps/build-raptor-api/build-raptor-api.js +0 -132
- package/dist/deps/build-raptor-api/index.d.ts +0 -2
- package/dist/deps/build-raptor-api/index.js +0 -19
- package/dist/deps/build-raptor-api/step-by-step-processor.d.ts +0 -35
- package/dist/deps/build-raptor-api/step-by-step-processor.js +0 -3
- package/dist/deps/build-raptor-core/breakdown.d.ts +0 -18
- package/dist/deps/build-raptor-core/breakdown.js +0 -99
- package/dist/deps/build-raptor-core/build-raptor-config.d.ts +0 -18
- package/dist/deps/build-raptor-core/build-raptor-config.js +0 -21
- package/dist/deps/build-raptor-core/default-asset-publisher.d.ts +0 -10
- package/dist/deps/build-raptor-core/default-asset-publisher.js +0 -16
- package/dist/deps/build-raptor-core/engine-bootstrapper.d.ts +0 -50
- package/dist/deps/build-raptor-core/engine-bootstrapper.js +0 -200
- package/dist/deps/build-raptor-core/engine-event-scheme.d.ts +0 -20
- package/dist/deps/build-raptor-core/engine-event-scheme.js +0 -3
- package/dist/deps/build-raptor-core/engine.d.ts +0 -66
- package/dist/deps/build-raptor-core/engine.js +0 -285
- package/dist/deps/build-raptor-core/examplify-zod.d.ts +0 -93
- package/dist/deps/build-raptor-core/examplify-zod.js +0 -257
- package/dist/deps/build-raptor-core/execution-plan.d.ts +0 -20
- package/dist/deps/build-raptor-core/execution-plan.js +0 -66
- package/dist/deps/build-raptor-core/execution-record.d.ts +0 -17
- package/dist/deps/build-raptor-core/execution-record.js +0 -3
- package/dist/deps/build-raptor-core/execution-type.d.ts +0 -2
- package/dist/deps/build-raptor-core/execution-type.js +0 -3
- package/dist/deps/build-raptor-core/find-repo-dir.d.ts +0 -1
- package/dist/deps/build-raptor-core/find-repo-dir.js +0 -27
- package/dist/deps/build-raptor-core/fingerprint-ledger.d.ts +0 -33
- package/dist/deps/build-raptor-core/fingerprint-ledger.js +0 -164
- package/dist/deps/build-raptor-core/fingerprint.d.ts +0 -3
- package/dist/deps/build-raptor-core/fingerprint.js +0 -13
- package/dist/deps/build-raptor-core/fingerprinter.d.ts +0 -14
- package/dist/deps/build-raptor-core/fingerprinter.js +0 -121
- package/dist/deps/build-raptor-core/hasher.d.ts +0 -21
- package/dist/deps/build-raptor-core/hasher.js +0 -93
- package/dist/deps/build-raptor-core/index.d.ts +0 -9
- package/dist/deps/build-raptor-core/index.js +0 -26
- package/dist/deps/build-raptor-core/model.d.ts +0 -17
- package/dist/deps/build-raptor-core/model.js +0 -40
- package/dist/deps/build-raptor-core/nop-asset-publisher.d.ts +0 -6
- package/dist/deps/build-raptor-core/nop-asset-publisher.js +0 -12
- package/dist/deps/build-raptor-core/performance-report.d.ts +0 -5
- package/dist/deps/build-raptor-core/performance-report.js +0 -3
- package/dist/deps/build-raptor-core/phase.d.ts +0 -1
- package/dist/deps/build-raptor-core/phase.js +0 -3
- package/dist/deps/build-raptor-core/planner.d.ts +0 -12
- package/dist/deps/build-raptor-core/planner.js +0 -43
- package/dist/deps/build-raptor-core/purger.d.ts +0 -11
- package/dist/deps/build-raptor-core/purger.js +0 -65
- package/dist/deps/build-raptor-core/slot-index.d.ts +0 -6
- package/dist/deps/build-raptor-core/slot-index.js +0 -17
- package/dist/deps/build-raptor-core/step-by-step-transmitter.d.ts +0 -15
- package/dist/deps/build-raptor-core/step-by-step-transmitter.js +0 -94
- package/dist/deps/build-raptor-core/tar-stream.d.ts +0 -20
- package/dist/deps/build-raptor-core/tar-stream.js +0 -194
- package/dist/deps/build-raptor-core/task-executor.d.ts +0 -32
- package/dist/deps/build-raptor-core/task-executor.js +0 -321
- package/dist/deps/build-raptor-core/task-store-cli.d.ts +0 -1
- package/dist/deps/build-raptor-core/task-store-cli.js +0 -61
- package/dist/deps/build-raptor-core/task-store-event.d.ts +0 -17
- package/dist/deps/build-raptor-core/task-store-event.js +0 -3
- package/dist/deps/build-raptor-core/task-store.d.ts +0 -41
- package/dist/deps/build-raptor-core/task-store.js +0 -302
- package/dist/deps/build-raptor-core/task-summary.d.ts +0 -12
- package/dist/deps/build-raptor-core/task-summary.js +0 -3
- package/dist/deps/build-raptor-core/task-tracker.d.ts +0 -23
- package/dist/deps/build-raptor-core/task-tracker.js +0 -97
- package/dist/deps/build-raptor-core/task.d.ts +0 -30
- package/dist/deps/build-raptor-core/task.js +0 -90
- package/dist/deps/build-raptor-core/updatable-task-output-registry.d.ts +0 -13
- package/dist/deps/build-raptor-core/updatable-task-output-registry.js +0 -75
- package/dist/deps/build-raptor-core/validate-task-infos.d.ts +0 -3
- package/dist/deps/build-raptor-core/validate-task-infos.js +0 -53
- package/dist/deps/build-raptor-core-testkit/build-raptor-core-testkit.d.ts +0 -1
- package/dist/deps/build-raptor-core-testkit/build-raptor-core-testkit.js +0 -18
- package/dist/deps/build-raptor-core-testkit/driver.d.ts +0 -119
- package/dist/deps/build-raptor-core-testkit/driver.js +0 -305
- package/dist/deps/build-raptor-core-testkit/index.d.ts +0 -3
- package/dist/deps/build-raptor-core-testkit/index.js +0 -20
- package/dist/deps/build-raptor-core-testkit/repo-protocol-testkit.d.ts +0 -35
- package/dist/deps/build-raptor-core-testkit/repo-protocol-testkit.js +0 -226
- package/dist/deps/build-raptor-core-testkit/simple-node-repo-protocol.d.ts +0 -27
- package/dist/deps/build-raptor-core-testkit/simple-node-repo-protocol.js +0 -140
- package/dist/deps/build-raptor-jest-reporter/index.d.ts +0 -0
- package/dist/deps/build-raptor-jest-reporter/index.js +0 -33
- package/dist/deps/build-run-id/build-run-id.d.ts +0 -3
- package/dist/deps/build-run-id/build-run-id.js +0 -13
- package/dist/deps/build-run-id/index.d.ts +0 -1
- package/dist/deps/build-run-id/index.js +0 -18
- package/dist/deps/core-types/core-types.d.ts +0 -29
- package/dist/deps/core-types/core-types.js +0 -81
- package/dist/deps/core-types/index.d.ts +0 -1
- package/dist/deps/core-types/index.js +0 -18
- package/dist/deps/logger/index.d.ts +0 -1
- package/dist/deps/logger/index.js +0 -18
- package/dist/deps/logger/logger.d.ts +0 -26
- package/dist/deps/logger/logger.js +0 -152
- package/dist/deps/misc/arrays.d.ts +0 -7
- package/dist/deps/misc/arrays.js +0 -67
- package/dist/deps/misc/camelize-record.d.ts +0 -6
- package/dist/deps/misc/camelize-record.js +0 -16
- package/dist/deps/misc/clean-directory.d.ts +0 -4
- package/dist/deps/misc/clean-directory.js +0 -80
- package/dist/deps/misc/constructs.d.ts +0 -106
- package/dist/deps/misc/constructs.js +0 -131
- package/dist/deps/misc/directory-scanner.d.ts +0 -49
- package/dist/deps/misc/directory-scanner.js +0 -165
- package/dist/deps/misc/executor.d.ts +0 -39
- package/dist/deps/misc/executor.js +0 -59
- package/dist/deps/misc/file-system-storage-client.d.ts +0 -23
- package/dist/deps/misc/file-system-storage-client.js +0 -93
- package/dist/deps/misc/folderify.d.ts +0 -8
- package/dist/deps/misc/folderify.js +0 -86
- package/dist/deps/misc/graph.d.ts +0 -29
- package/dist/deps/misc/graph.js +0 -200
- package/dist/deps/misc/in-memory-storage-client.d.ts +0 -21
- package/dist/deps/misc/in-memory-storage-client.js +0 -75
- package/dist/deps/misc/index.d.ts +0 -20
- package/dist/deps/misc/index.js +0 -37
- package/dist/deps/misc/int.d.ts +0 -10
- package/dist/deps/misc/int.js +0 -29
- package/dist/deps/misc/internal/graph-executor.d.ts +0 -15
- package/dist/deps/misc/internal/graph-executor.js +0 -93
- package/dist/deps/misc/maps.d.ts +0 -29
- package/dist/deps/misc/maps.js +0 -47
- package/dist/deps/misc/misc.d.ts +0 -23
- package/dist/deps/misc/misc.js +0 -94
- package/dist/deps/misc/object-map.d.ts +0 -10
- package/dist/deps/misc/object-map.js +0 -26
- package/dist/deps/misc/promises.d.ts +0 -39
- package/dist/deps/misc/promises.js +0 -78
- package/dist/deps/misc/records.d.ts +0 -11
- package/dist/deps/misc/records.js +0 -40
- package/dist/deps/misc/slurp-dir.d.ts +0 -1
- package/dist/deps/misc/slurp-dir.js +0 -14
- package/dist/deps/misc/storage-client.d.ts +0 -12
- package/dist/deps/misc/storage-client.js +0 -3
- package/dist/deps/misc/stream-to-buffer.d.ts +0 -2
- package/dist/deps/misc/stream-to-buffer.js +0 -26
- package/dist/deps/misc/strings.d.ts +0 -12
- package/dist/deps/misc/strings.js +0 -68
- package/dist/deps/misc/typed-publisher.d.ts +0 -17
- package/dist/deps/misc/typed-publisher.js +0 -65
- package/dist/deps/repo-protocol/index.d.ts +0 -3
- package/dist/deps/repo-protocol/index.js +0 -20
- package/dist/deps/repo-protocol/repo-protocol.d.ts +0 -49
- package/dist/deps/repo-protocol/repo-protocol.js +0 -3
- package/dist/deps/repo-protocol/task-info.d.ts +0 -18
- package/dist/deps/repo-protocol/task-info.js +0 -3
- package/dist/deps/repo-protocol/test-run-summary.d.ts +0 -54
- package/dist/deps/repo-protocol/test-run-summary.js +0 -32
- package/dist/deps/repo-protocol-toolbox/generate-task-infos.d.ts +0 -5
- package/dist/deps/repo-protocol-toolbox/generate-task-infos.js +0 -26
- package/dist/deps/repo-protocol-toolbox/index.d.ts +0 -3
- package/dist/deps/repo-protocol-toolbox/index.js +0 -20
- package/dist/deps/repo-protocol-toolbox/repo-protocol-toolbox.d.ts +0 -10
- package/dist/deps/repo-protocol-toolbox/repo-protocol-toolbox.js +0 -90
- package/dist/deps/repo-protocol-toolbox/task-definition.d.ts +0 -14
- package/dist/deps/repo-protocol-toolbox/task-definition.js +0 -3
- package/dist/deps/reporter-output/index.d.ts +0 -1
- package/dist/deps/reporter-output/index.js +0 -18
- package/dist/deps/reporter-output/reporter-output.d.ts +0 -49
- package/dist/deps/reporter-output/reporter-output.js +0 -25
- package/dist/deps/s3-storage-client/creds.d.ts +0 -4
- package/dist/deps/s3-storage-client/creds.js +0 -3
- package/dist/deps/s3-storage-client/get-s3-storage-client-factory.d.ts +0 -3
- package/dist/deps/s3-storage-client/get-s3-storage-client-factory.js +0 -45
- package/dist/deps/s3-storage-client/index.d.ts +0 -2
- package/dist/deps/s3-storage-client/index.js +0 -19
- package/dist/deps/s3-storage-client/main.d.ts +0 -1
- package/dist/deps/s3-storage-client/main.js +0 -20
- package/dist/deps/s3-storage-client/s3-storage-client.d.ts +0 -25
- package/dist/deps/s3-storage-client/s3-storage-client.js +0 -134
- package/dist/deps/task-name/index.d.ts +0 -1
- package/dist/deps/task-name/index.js +0 -18
- package/dist/deps/task-name/task-name.d.ts +0 -17
- package/dist/deps/task-name/task-name.js +0 -44
- package/dist/deps/unit-metadata/index.d.ts +0 -1
- package/dist/deps/unit-metadata/index.js +0 -18
- package/dist/deps/unit-metadata/unit-metadata.d.ts +0 -14
- package/dist/deps/unit-metadata/unit-metadata.js +0 -32
- package/dist/deps/yarn-repo-protocol/build-task-record.d.ts +0 -61
- package/dist/deps/yarn-repo-protocol/build-task-record.js +0 -29
- package/dist/deps/yarn-repo-protocol/generate-test-run-summary.d.ts +0 -4
- package/dist/deps/yarn-repo-protocol/generate-test-run-summary.js +0 -26
- package/dist/deps/yarn-repo-protocol/index.d.ts +0 -2
- package/dist/deps/yarn-repo-protocol/index.js +0 -19
- package/dist/deps/yarn-repo-protocol/rerun-list.d.ts +0 -12
- package/dist/deps/yarn-repo-protocol/rerun-list.js +0 -6
- package/dist/deps/yarn-repo-protocol/yarn-repo-protocol-config.d.ts +0 -24
- package/dist/deps/yarn-repo-protocol/yarn-repo-protocol-config.js +0 -33
- package/dist/deps/yarn-repo-protocol/yarn-repo-protocol.d.ts +0 -82
- package/dist/deps/yarn-repo-protocol/yarn-repo-protocol.js +0 -1036
- package/dist/src/build-raptor-cli.d.ts +0 -60
- package/dist/src/build-raptor-cli.js +0 -514
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.js +0 -20
- package/dist/src/main.d.ts +0 -2
- package/dist/src/main.js +0 -23
- package/dist/src/register-asset-request.d.ts +0 -18
- package/dist/src/register-asset-request.js +0 -11
- package/dist/src/task-execution-visualizer.d.ts +0 -17
- package/dist/src/task-execution-visualizer.js +0 -116
package/dist/deps/misc/misc.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.Timeout = void 0;
|
|
40
|
-
exports.computeObjectHash = computeObjectHash;
|
|
41
|
-
exports.computeHash = computeHash;
|
|
42
|
-
exports.aTimeoutOf = aTimeoutOf;
|
|
43
|
-
exports.dumpFile = dumpFile;
|
|
44
|
-
const crypto = __importStar(require("crypto"));
|
|
45
|
-
const fse = __importStar(require("fs-extra"));
|
|
46
|
-
const safe_stable_stringify_1 = __importDefault(require("safe-stable-stringify"));
|
|
47
|
-
const util = __importStar(require("util"));
|
|
48
|
-
function computeObjectHash(input) {
|
|
49
|
-
// TODO(imaman): add a test where a nested (sub) object of the input is not sorted.
|
|
50
|
-
return computeHash((0, safe_stable_stringify_1.default)(input));
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
*
|
|
54
|
-
* @param input buffer or string to hash
|
|
55
|
-
* @returns a hash, in "hex" encoding.
|
|
56
|
-
*/
|
|
57
|
-
function computeHash(input, algo = 'sha224') {
|
|
58
|
-
const hasher = crypto.createHash(algo);
|
|
59
|
-
return hasher.update(input).digest('hex');
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Represents an event that should happen at some point in the future.
|
|
63
|
-
*/
|
|
64
|
-
class Timeout {
|
|
65
|
-
constructor(promise) {
|
|
66
|
-
this.promise = promise;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Returns a promise that is resvoled when the timeout expires.
|
|
70
|
-
*/
|
|
71
|
-
hasPassed() {
|
|
72
|
-
return this.promise;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
exports.Timeout = Timeout;
|
|
76
|
-
function aTimeoutOf(ms) {
|
|
77
|
-
return new Timeout(new Promise(resolve => setTimeout(resolve, ms)));
|
|
78
|
-
}
|
|
79
|
-
async function dumpFile(inputPath, output) {
|
|
80
|
-
if (!(await fse.pathExists(inputPath))) {
|
|
81
|
-
throw new Error(`Cannot dump non existing file: ${inputPath}`);
|
|
82
|
-
}
|
|
83
|
-
return new Promise((res, rej) => {
|
|
84
|
-
const inputStream = fse.createReadStream(inputPath);
|
|
85
|
-
inputStream.on('end', () => {
|
|
86
|
-
res();
|
|
87
|
-
});
|
|
88
|
-
inputStream.on('error', e => {
|
|
89
|
-
rej(new Error(`failed to read ${inputPath}: ${util.inspect(e)}`));
|
|
90
|
-
});
|
|
91
|
-
inputStream.pipe(output, { end: false });
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlzYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXNjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BLDhDQUdDO0FBT0Qsa0NBR0M7QUFnQkQsZ0NBRUM7QUFFRCw0QkFjQztBQXRERCwrQ0FBZ0M7QUFDaEMsOENBQStCO0FBQy9CLGtGQUFpRDtBQUNqRCwyQ0FBNEI7QUFJNUIsU0FBZ0IsaUJBQWlCLENBQUMsS0FBK0I7SUFDL0QsbUZBQW1GO0lBQ25GLE9BQU8sV0FBVyxDQUFDLElBQUEsK0JBQWEsRUFBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBQzFDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLEtBQXNCLEVBQUUsT0FBNEIsUUFBUTtJQUN0RixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3RDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7QUFDM0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxPQUFPO0lBQ2xCLFlBQTZCLE9BQXNCO1FBQXRCLFlBQU8sR0FBUCxPQUFPLENBQWU7SUFBRyxDQUFDO0lBRXZEOztPQUVHO0lBQ0gsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUNyQixDQUFDO0NBQ0Y7QUFURCwwQkFTQztBQUVELFNBQWdCLFVBQVUsQ0FBQyxFQUFVO0lBQ25DLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUNyRSxDQUFDO0FBRU0sS0FBSyxVQUFVLFFBQVEsQ0FBQyxTQUFpQixFQUFFLE1BQTZCO0lBQzdFLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUNoRSxDQUFDO0lBQ0QsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNwQyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDbkQsV0FBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ3pCLEdBQUcsRUFBRSxDQUFBO1FBQ1AsQ0FBQyxDQUFDLENBQUE7UUFDRixXQUFXLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRTtZQUMxQixHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsa0JBQWtCLFNBQVMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ25FLENBQUMsQ0FBQyxDQUFBO1FBQ0YsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtJQUMxQyxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMifQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export declare class ObjectMap<K, V> {
|
|
2
|
-
private readonly translator;
|
|
3
|
-
private readonly map;
|
|
4
|
-
constructor(translator: (key: K) => string);
|
|
5
|
-
set(k: K, v: V): void;
|
|
6
|
-
get(k: K): V | undefined;
|
|
7
|
-
has(k: K): boolean;
|
|
8
|
-
values(): MapIterator<V>;
|
|
9
|
-
delete(k: K): void;
|
|
10
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObjectMap = void 0;
|
|
4
|
-
class ObjectMap {
|
|
5
|
-
constructor(translator) {
|
|
6
|
-
this.translator = translator;
|
|
7
|
-
this.map = new Map();
|
|
8
|
-
}
|
|
9
|
-
set(k, v) {
|
|
10
|
-
this.map.set(this.translator(k), v);
|
|
11
|
-
}
|
|
12
|
-
get(k) {
|
|
13
|
-
return this.map.get(this.translator(k));
|
|
14
|
-
}
|
|
15
|
-
has(k) {
|
|
16
|
-
return this.map.has(this.translator(k));
|
|
17
|
-
}
|
|
18
|
-
values() {
|
|
19
|
-
return this.map.values();
|
|
20
|
-
}
|
|
21
|
-
delete(k) {
|
|
22
|
-
this.map.delete(this.translator(k));
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
exports.ObjectMap = ObjectMap;
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LW1hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vYmplY3QtbWFwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLE1BQWEsU0FBUztJQUdwQixZQUE2QixVQUE4QjtRQUE5QixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUYxQyxRQUFHLEdBQUcsSUFBSSxHQUFHLEVBQWEsQ0FBQTtJQUVtQixDQUFDO0lBRS9ELEdBQUcsQ0FBQyxDQUFJLEVBQUUsQ0FBSTtRQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDckMsQ0FBQztJQUVELEdBQUcsQ0FBQyxDQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUVELEdBQUcsQ0FBQyxDQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekMsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUE7SUFDMUIsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFJO1FBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JDLENBQUM7Q0FDRjtBQXhCRCw4QkF3QkMifQ==
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* An array-like collection of items allowing map() and filter() operations to be used with async functions with minimal
|
|
3
|
-
* boilerplate. Concrete instances are typically constructed via the `promises()` function.
|
|
4
|
-
*
|
|
5
|
-
* Using this interface eliminates the need to use the cumbersome `await Promise.all(items.map(f))`.
|
|
6
|
-
*/
|
|
7
|
-
export interface AsyncArray<T> {
|
|
8
|
-
/**
|
|
9
|
-
* Applies `mapper` to each element in the collection, returning a new AsyncArray object that contains the respective
|
|
10
|
-
* results. This method is non-async even if the mapper function is async. It will immediately return the result.
|
|
11
|
-
* The actual eapplication of the predicate will take place only when `.refiy()` is subsequently called on the result.
|
|
12
|
-
* @param mapper A function to apply to each element in the collection. Receives the element being processed as its
|
|
13
|
-
* first argument, and the index of this element in the collection as its second argument.
|
|
14
|
-
*/
|
|
15
|
-
map<V>(mapper: (item: T, index: number) => Promise<V> | V): AsyncArray<V>;
|
|
16
|
-
/**
|
|
17
|
-
* Returns a new AsyncArray object with all elements that pass the test implemented by the provided predicate. This
|
|
18
|
-
* method is non-async even if the mapper function is async. It will immediately return the result.
|
|
19
|
-
* The actual application of the predicate will take place only when `.refiy()` is subsequently called on the result.
|
|
20
|
-
* @param predicate a function to test each element of the array. Returns `true` to keep the element, or to `false` otherwise. Receives the element being tested as its first argument,
|
|
21
|
-
* and the index of this element in the collection as its second argument.
|
|
22
|
-
*/
|
|
23
|
-
filter(predicate: (item: T, index: number) => boolean | Promise<boolean>): AsyncArray<T>;
|
|
24
|
-
/**
|
|
25
|
-
* Asynchronosuly invokes the provided function once for each element in the collection.
|
|
26
|
-
* @param callback a function to call for each element. Receives the element being processed as its first argument,
|
|
27
|
-
* and the index of this element in the collection as its second argument.
|
|
28
|
-
*/
|
|
29
|
-
forEach(concurrency: number, callback: (item: T, index: number) => void | Promise<void>): Promise<void>;
|
|
30
|
-
forEach(callback: (item: T, index: number) => void | Promise<void>): Promise<void>;
|
|
31
|
-
/**
|
|
32
|
-
* Asynchronosuly returns the items in the collection.
|
|
33
|
-
*/
|
|
34
|
-
reify(concurrency?: number): Promise<T[]>;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Translates the input array into an `AsyncArray` object.
|
|
38
|
-
*/
|
|
39
|
-
export declare function promises<T>(input: readonly Promise<T>[] | readonly T[]): AsyncArray<T>;
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.promises = promises;
|
|
7
|
-
const p_queue_1 = __importDefault(require("p-queue"));
|
|
8
|
-
const arrays_1 = require("./arrays");
|
|
9
|
-
const constructs_1 = require("./constructs");
|
|
10
|
-
/**
|
|
11
|
-
* Translates the input array into an `AsyncArray` object.
|
|
12
|
-
*/
|
|
13
|
-
function promises(input) {
|
|
14
|
-
const adjusted = new DefaultReifiable(input.map(p => Promise.resolve(p)));
|
|
15
|
-
return new PromisesImpl(adjusted, t => Promise.resolve(t), () => Promise.resolve(true));
|
|
16
|
-
}
|
|
17
|
-
class PromisesImpl {
|
|
18
|
-
constructor(data, mapper, predicate) {
|
|
19
|
-
this.data = data;
|
|
20
|
-
this.mapper = mapper;
|
|
21
|
-
this.predicate = predicate;
|
|
22
|
-
}
|
|
23
|
-
map(mapper) {
|
|
24
|
-
return new PromisesImpl(this, (t, i) => Promise.resolve(mapper(t, i)), async () => true);
|
|
25
|
-
}
|
|
26
|
-
filter(predicate) {
|
|
27
|
-
return new PromisesImpl(this, async (t) => t, (u, i) => Promise.resolve(predicate(u, i)));
|
|
28
|
-
}
|
|
29
|
-
async forEach(...args) {
|
|
30
|
-
const len = args.length;
|
|
31
|
-
if (len === 1) {
|
|
32
|
-
await this.map(args[0]).reify();
|
|
33
|
-
}
|
|
34
|
-
else if (len === 2) {
|
|
35
|
-
await this.map(args[1]).reify(args[0]);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
(0, constructs_1.shouldNeverHappen)(len);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
async reify(concurrency = 16) {
|
|
42
|
-
const ts = await this.data.reify(concurrency);
|
|
43
|
-
// TODO(imaman): pass this queue also when calling this.data.refiy()
|
|
44
|
-
const queue = new p_queue_1.default({ concurrency });
|
|
45
|
-
let captured;
|
|
46
|
-
const pairs = [];
|
|
47
|
-
for (let i = 0; i < ts.length; i++) {
|
|
48
|
-
const t = ts[i];
|
|
49
|
-
queue.add(async () => {
|
|
50
|
-
try {
|
|
51
|
-
const u = await this.mapper(t, i);
|
|
52
|
-
const b = await this.predicate(u, i);
|
|
53
|
-
if (b) {
|
|
54
|
-
pairs.push([u, i]);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
catch (e) {
|
|
58
|
-
// TODO(imaman): should capture only the first one.
|
|
59
|
-
captured = e;
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
await queue.onIdle();
|
|
64
|
-
if (captured) {
|
|
65
|
-
throw captured;
|
|
66
|
-
}
|
|
67
|
-
return (0, arrays_1.sortBy)(pairs, ([_, i]) => i).map(([u, _]) => u);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
class DefaultReifiable {
|
|
71
|
-
constructor(ps) {
|
|
72
|
-
this.ps = ps;
|
|
73
|
-
}
|
|
74
|
-
async reify() {
|
|
75
|
-
return await Promise.all(this.ps);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvbWlzZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUE4Q0EsNEJBT0M7QUFyREQsc0RBQTRCO0FBRTVCLHFDQUFpQztBQUNqQyw2Q0FBZ0Q7QUF3Q2hEOztHQUVHO0FBQ0gsU0FBZ0IsUUFBUSxDQUFJLEtBQTJDO0lBQ3JFLE1BQU0sUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzVFLE9BQU8sSUFBSSxZQUFZLENBQ3JCLFFBQVEsRUFDUixDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQ3ZCLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQzVCLENBQUE7QUFDSCxDQUFDO0FBTUQsTUFBTSxZQUFZO0lBQ2hCLFlBQ21CLElBQWtCLEVBQ2xCLE1BQTJDLEVBQzNDLFNBQW9EO1FBRnBELFNBQUksR0FBSixJQUFJLENBQWM7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBcUM7UUFDM0MsY0FBUyxHQUFULFNBQVMsQ0FBMkM7SUFDcEUsQ0FBQztJQUVKLEdBQUcsQ0FBSSxNQUFrRDtRQUN2RCxPQUFPLElBQUksWUFBWSxDQUNyQixJQUFJLEVBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDdkMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQ2pCLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQWlFO1FBQ3RFLE9BQU8sSUFBSSxZQUFZLENBQ3JCLElBQUksRUFDSixLQUFLLEVB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
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Translates a given record into an array of key,value pairs. Unlike Object.entires() it correctly preserves the types
|
|
3
|
-
* of the keys and the values.
|
|
4
|
-
*/
|
|
5
|
-
export declare function recordToPairs<K extends string, V>(record: Record<K, V>): [K, V][];
|
|
6
|
-
/**
|
|
7
|
-
* Translates a given array of key,value pairs into a record. Unlike Object.fromEntries() it correctly preserves the
|
|
8
|
-
* types of the keys and the values.
|
|
9
|
-
*/
|
|
10
|
-
export declare function pairsToRecord<K extends string, V>(pairs: Iterable<[K, V]> | ArrayLike<[K, V]>): Record<K, V>;
|
|
11
|
-
export declare function mapRecord<K extends string, V, K2 extends string, V2>(record: Record<K, V>, f: (a: [K, V]) => [K2, V2] | undefined): Record<K2, V2>;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.recordToPairs = recordToPairs;
|
|
4
|
-
exports.pairsToRecord = pairsToRecord;
|
|
5
|
-
exports.mapRecord = mapRecord;
|
|
6
|
-
const arrays_1 = require("./arrays");
|
|
7
|
-
/**
|
|
8
|
-
* Translates a given record into an array of key,value pairs. Unlike Object.entires() it correctly preserves the types
|
|
9
|
-
* of the keys and the values.
|
|
10
|
-
*/
|
|
11
|
-
function recordToPairs(record) {
|
|
12
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
13
|
-
const pairs = Object.entries(record);
|
|
14
|
-
return (0, arrays_1.sortBy)(pairs, ([k]) => k);
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Translates a given array of key,value pairs into a record. Unlike Object.fromEntries() it correctly preserves the
|
|
18
|
-
* types of the keys and the values.
|
|
19
|
-
*/
|
|
20
|
-
function pairsToRecord(pairs) {
|
|
21
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
22
|
-
const ret = {};
|
|
23
|
-
for (const [k, v] of Array.from(pairs)) {
|
|
24
|
-
ret[k] = v;
|
|
25
|
-
}
|
|
26
|
-
return ret;
|
|
27
|
-
}
|
|
28
|
-
function mapRecord(record, f) {
|
|
29
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
30
|
-
const ret = {};
|
|
31
|
-
for (const [k, v] of recordToPairs(record)) {
|
|
32
|
-
const mapped = f([k, v]);
|
|
33
|
-
if (mapped) {
|
|
34
|
-
const [k2, v2] = mapped;
|
|
35
|
-
ret[k2] = v2;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return ret;
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3Jkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWNvcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsc0NBSUM7QUFNRCxzQ0FPQztBQUVELDhCQWNDO0FBdkNELHFDQUFpQztBQUVqQzs7O0dBR0c7QUFDSCxTQUFnQixhQUFhLENBQXNCLE1BQW9CO0lBQ3JFLHlFQUF5RTtJQUN6RSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBYSxDQUFBO0lBQ2hELE9BQU8sSUFBQSxlQUFNLEVBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDbEMsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGFBQWEsQ0FBc0IsS0FBMkM7SUFDNUYseUVBQXlFO0lBQ3pFLE1BQU0sR0FBRyxHQUFpQixFQUFrQixDQUFBO0lBQzVDLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDdkMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNaLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUM7QUFFRCxTQUFnQixTQUFTLENBQ3ZCLE1BQW9CLEVBQ3BCLENBQW9DO0lBRXBDLHlFQUF5RTtJQUN6RSxNQUFNLEdBQUcsR0FBRyxFQUFvQixDQUFBO0lBQ2hDLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMzQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN4QixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUE7WUFDdkIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtRQUNkLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDIn0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function slurpDir(rootDir: string): Promise<Record<string, string | string>>;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.slurpDir = slurpDir;
|
|
4
|
-
const _1 = require(".");
|
|
5
|
-
async function slurpDir(rootDir) {
|
|
6
|
-
const scanner = new _1.DirectoryScanner(rootDir);
|
|
7
|
-
const ret = {};
|
|
8
|
-
await scanner.scanTree('', (relativePath, buf) => {
|
|
9
|
-
const str = buf.toString('utf-8');
|
|
10
|
-
ret[relativePath] = str;
|
|
11
|
-
});
|
|
12
|
-
return ret;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2x1cnAtZGlyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NsdXJwLWRpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDRCQVNDO0FBWEQsd0JBQW9DO0FBRTdCLEtBQUssVUFBVSxRQUFRLENBQUMsT0FBZTtJQUM1QyxNQUFNLE9BQU8sR0FBRyxJQUFJLG1CQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRTdDLE1BQU0sR0FBRyxHQUEyQixFQUFFLENBQUE7SUFDdEMsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUMvQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2pDLEdBQUcsQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUE7SUFDekIsQ0FBQyxDQUFDLENBQUE7SUFDRixPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMifQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export type Key = string | number | boolean | null | Key[] | {
|
|
2
|
-
[p: string]: Key;
|
|
3
|
-
};
|
|
4
|
-
export interface StorageClient {
|
|
5
|
-
putContentAddressable(content: string | Buffer): Promise<string>;
|
|
6
|
-
getContentAddressable(hash: string): Promise<Buffer>;
|
|
7
|
-
putObject(key: Key, content: string | Buffer): Promise<void>;
|
|
8
|
-
getObject(key: Key): Promise<string>;
|
|
9
|
-
getObject(key: Key, type: 'string'): Promise<string>;
|
|
10
|
-
getObject(key: Key, type: 'buffer'): Promise<Buffer>;
|
|
11
|
-
objectExists(key: Key): Promise<boolean>;
|
|
12
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RvcmFnZS1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.streamTobuffer = streamTobuffer;
|
|
4
|
-
// This should be equivalent to the buffer() function of 'stream/consumers'
|
|
5
|
-
// (https://nodejs.org/dist/latest-v16.x/docs/api/webstreams.html#streamconsumersbufferstream)
|
|
6
|
-
// Yet, we implemented it since as of Node v16.14.2 using it yield the following warning:
|
|
7
|
-
// "ExperimentalWarning: buffer.Blob is an experimental feature. This feature could change at any time"
|
|
8
|
-
async function streamTobuffer(stream) {
|
|
9
|
-
return new Promise((resolve, reject) => {
|
|
10
|
-
const chunks = [];
|
|
11
|
-
stream.on('data', chunk => {
|
|
12
|
-
if (typeof chunk === 'string') {
|
|
13
|
-
chunks.push(Buffer.from(chunk, 'utf-8'));
|
|
14
|
-
}
|
|
15
|
-
else if (chunk instanceof Buffer) {
|
|
16
|
-
chunks.push(chunk);
|
|
17
|
-
}
|
|
18
|
-
else {
|
|
19
|
-
reject(new Error(`Unsupported chunk type: ${typeof chunk}`));
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
stream.on('end', () => resolve(Buffer.concat(chunks)));
|
|
23
|
-
stream.on('error', err => reject(new Error(`error converting stream - ${err}`)));
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtLXRvLWJ1ZmZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJlYW0tdG8tYnVmZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsd0NBZ0JDO0FBcEJELDJFQUEyRTtBQUMzRSw4RkFBOEY7QUFDOUYseUZBQXlGO0FBQ3pGLHVHQUF1RztBQUNoRyxLQUFLLFVBQVUsY0FBYyxDQUFDLE1BQWM7SUFDakQsT0FBTyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUM3QyxNQUFNLE1BQU0sR0FBaUIsRUFBRSxDQUFBO1FBRS9CLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtZQUMxQyxDQUFDO2lCQUFNLElBQUksS0FBSyxZQUFZLE1BQU0sRUFBRSxDQUFDO2dCQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ3BCLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsMkJBQTJCLE9BQU8sS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQzlELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN0RCxNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDbEYsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIn0=
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare function trimTrailing(s: string, suffix: string): string;
|
|
2
|
-
export declare function chaoticDeterministicString(n: number, seed: string): string;
|
|
3
|
-
/**
|
|
4
|
-
* Sanitizes a string such that it can be used as a file name.
|
|
5
|
-
*/
|
|
6
|
-
export declare function toReasonableFileName(input: string): string;
|
|
7
|
-
export declare function partition(input: string, ...predicates: ((c: string) => boolean)[]): string[];
|
|
8
|
-
export declare function threeWaySplit(input: string, prefixPredicate: (c: string) => boolean, suffixPredicate: (c: string) => boolean): {
|
|
9
|
-
prefix: string;
|
|
10
|
-
mid: string;
|
|
11
|
-
suffix: string;
|
|
12
|
-
};
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.trimTrailing = trimTrailing;
|
|
4
|
-
exports.chaoticDeterministicString = chaoticDeterministicString;
|
|
5
|
-
exports.toReasonableFileName = toReasonableFileName;
|
|
6
|
-
exports.partition = partition;
|
|
7
|
-
exports.threeWaySplit = threeWaySplit;
|
|
8
|
-
const misc_1 = require("./misc");
|
|
9
|
-
function trimTrailing(s, suffix) {
|
|
10
|
-
if (suffix.length === 0) {
|
|
11
|
-
return s;
|
|
12
|
-
}
|
|
13
|
-
while (s.endsWith(suffix)) {
|
|
14
|
-
s = s.slice(0, -suffix.length);
|
|
15
|
-
}
|
|
16
|
-
return s;
|
|
17
|
-
}
|
|
18
|
-
function chaoticDeterministicString(n, seed) {
|
|
19
|
-
const acc = [];
|
|
20
|
-
let size = 0;
|
|
21
|
-
while (size < n) {
|
|
22
|
-
const s = (0, misc_1.computeHash)(`${seed}-${size}-${n}`);
|
|
23
|
-
acc.push(s);
|
|
24
|
-
size += s.length;
|
|
25
|
-
}
|
|
26
|
-
return acc.join('').slice(0, n);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Sanitizes a string such that it can be used as a file name.
|
|
30
|
-
*/
|
|
31
|
-
function toReasonableFileName(input) {
|
|
32
|
-
return input
|
|
33
|
-
.split('')
|
|
34
|
-
.map(c => (c.match(ALLOWED_FILE_NAME_SYMBOLS) ? c : '_'))
|
|
35
|
-
.join('');
|
|
36
|
-
}
|
|
37
|
-
const ALLOWED_FILE_NAME_SYMBOLS = /[a-zA-Z0-9_-]/;
|
|
38
|
-
function partition(input, ...predicates) {
|
|
39
|
-
const ret = [];
|
|
40
|
-
let i = 0;
|
|
41
|
-
for (const p of predicates) {
|
|
42
|
-
const start = i;
|
|
43
|
-
while (i < input.length && p(input[i])) {
|
|
44
|
-
++i;
|
|
45
|
-
}
|
|
46
|
-
ret.push(input.slice(start, i));
|
|
47
|
-
}
|
|
48
|
-
if (i < input.length) {
|
|
49
|
-
throw new Error(`The input string could not be fully partitioned (remainder: "${input.slice(i, i + 100)}")`);
|
|
50
|
-
}
|
|
51
|
-
return ret;
|
|
52
|
-
}
|
|
53
|
-
function threeWaySplit(input, prefixPredicate, suffixPredicate) {
|
|
54
|
-
let i = 0;
|
|
55
|
-
while (i < input.length && prefixPredicate(input[i])) {
|
|
56
|
-
++i;
|
|
57
|
-
}
|
|
58
|
-
let j = input.length - 1;
|
|
59
|
-
while (j >= i && suffixPredicate(input[j])) {
|
|
60
|
-
--j;
|
|
61
|
-
}
|
|
62
|
-
return {
|
|
63
|
-
prefix: input.slice(0, i),
|
|
64
|
-
mid: input.slice(i, j + 1),
|
|
65
|
-
suffix: input.slice(j + 1),
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsb0NBVUM7QUFFRCxnRUFVQztBQUtELG9EQUtDO0FBR0QsOEJBa0JDO0FBRUQsc0NBb0JDO0FBN0VELGlDQUFvQztBQUVwQyxTQUFnQixZQUFZLENBQUMsQ0FBUyxFQUFFLE1BQWM7SUFDcEQsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxDQUFBO0lBQ1YsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFCLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsT0FBTyxDQUFDLENBQUE7QUFDVixDQUFDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsQ0FBUyxFQUFFLElBQVk7SUFDaEUsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFBO0lBQ2QsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFBO0lBQ1osT0FBTyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDaEIsTUFBTSxDQUFDLEdBQUcsSUFBQSxrQkFBVyxFQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQzdDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDWCxJQUFJLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUNsQixDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDakMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsS0FBYTtJQUNoRCxPQUFPLEtBQUs7U0FDVCxLQUFLLENBQUMsRUFBRSxDQUFDO1NBQ1QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDeEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ2IsQ0FBQztBQUNELE1BQU0seUJBQXlCLEdBQUcsZUFBZSxDQUFBO0FBRWpELFNBQWdCLFNBQVMsQ0FBQyxLQUFhLEVBQUUsR0FBRyxVQUFzQztJQUNoRixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUE7SUFDZCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFFVCxLQUFLLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzNCLE1BQU0sS0FBSyxHQUFHLENBQUMsQ0FBQTtRQUNmLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkMsRUFBRSxDQUFDLENBQUE7UUFDTCxDQUFDO1FBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRUFBZ0UsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUM5RyxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUMzQixLQUFhLEVBQ2IsZUFBdUMsRUFDdkMsZUFBdUM7SUFFdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ1QsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNyRCxFQUFFLENBQUMsQ0FBQTtJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQTtJQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0MsRUFBRSxDQUFDLENBQUE7SUFDTCxDQUFDO0lBRUQsT0FBTztRQUNMLE1BQU0sRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsR0FBRyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUMzQixDQUFBO0FBQ0gsQ0FBQyJ9
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export type Subscriber<T> = <K extends keyof T>(k: K, e: T[K]) => Promise<void> | void;
|
|
2
|
-
export interface Subscribable<T> {
|
|
3
|
-
on<K extends keyof T>(k: K, subscriber: (e: T[K]) => Promise<void> | void): void;
|
|
4
|
-
}
|
|
5
|
-
export declare class TypedPublisher<T extends Record<string, any>> implements Subscribable<T> {
|
|
6
|
-
private readonly map;
|
|
7
|
-
publish<K extends keyof T>(k: K, e: T[K]): Promise<void>;
|
|
8
|
-
on<K extends keyof T>(k: K, subscriber: (e: T[K]) => Promise<void> | void): void;
|
|
9
|
-
once<K extends keyof T>(k: K, subscriber: (e: T[K]) => Promise<void> | void): void;
|
|
10
|
-
/**
|
|
11
|
-
* returns a promise that is resolved once an event the satisfies the given predicate has been published
|
|
12
|
-
* @param k event name
|
|
13
|
-
* @param predicate a function to test the event.
|
|
14
|
-
* @returns a Promise that resolves with the value of the first event for which `predicate` returned `true`
|
|
15
|
-
*/
|
|
16
|
-
awaitFor<K extends keyof T>(k: K, predicate: (e: T[K]) => boolean): Promise<T[K]>;
|
|
17
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TypedPublisher = void 0;
|
|
4
|
-
class SinglePublisher {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.subscribers = [];
|
|
7
|
-
}
|
|
8
|
-
on(subscriber) {
|
|
9
|
-
this.subscribers.push(subscriber);
|
|
10
|
-
}
|
|
11
|
-
async publish(e) {
|
|
12
|
-
const promises = this.subscribers.map(s => s(e));
|
|
13
|
-
await Promise.all(promises);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
|
-
class TypedPublisher {
|
|
18
|
-
constructor() {
|
|
19
|
-
this.map = {};
|
|
20
|
-
}
|
|
21
|
-
async publish(k, e) {
|
|
22
|
-
await this.map[k]?.publish(e);
|
|
23
|
-
}
|
|
24
|
-
on(k, subscriber) {
|
|
25
|
-
let x = this.map[k];
|
|
26
|
-
if (!x) {
|
|
27
|
-
x = new SinglePublisher();
|
|
28
|
-
this.map[k] = x;
|
|
29
|
-
}
|
|
30
|
-
x.on(subscriber);
|
|
31
|
-
}
|
|
32
|
-
once(k, subscriber) {
|
|
33
|
-
let fired = false;
|
|
34
|
-
this.on(k, e => {
|
|
35
|
-
if (fired) {
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
fired = true;
|
|
39
|
-
subscriber(e);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* returns a promise that is resolved once an event the satisfies the given predicate has been published
|
|
44
|
-
* @param k event name
|
|
45
|
-
* @param predicate a function to test the event.
|
|
46
|
-
* @returns a Promise that resolves with the value of the first event for which `predicate` returned `true`
|
|
47
|
-
*/
|
|
48
|
-
awaitFor(k, predicate) {
|
|
49
|
-
return new Promise(res => {
|
|
50
|
-
let fired = false;
|
|
51
|
-
this.on(k, e => {
|
|
52
|
-
if (fired) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
if (!predicate(e)) {
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
fired = true;
|
|
59
|
-
res(e);
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
exports.TypedPublisher = TypedPublisher;
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtcHVibGlzaGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVkLXB1Ymxpc2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxNQUFNLGVBQWU7SUFBckI7UUFDVSxnQkFBVyxHQUF1QyxFQUFFLENBQUE7SUFVOUQsQ0FBQztJQVJDLEVBQUUsQ0FBQyxVQUEwQztRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUNuQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFJO1FBQ2hCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDaEQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQzdCLENBQUM7Q0FDRjtBQU1ELDhEQUE4RDtBQUM5RCxNQUFhLGNBQWM7SUFBM0I7UUFDbUIsUUFBRyxHQUdoQixFQUVILENBQUE7SUFrREgsQ0FBQztJQWhEQyxLQUFLLENBQUMsT0FBTyxDQUFvQixDQUFJLEVBQUUsQ0FBTztRQUM1QyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQy9CLENBQUM7SUFFRCxFQUFFLENBQW9CLENBQUksRUFBRSxVQUE2QztRQUN2RSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ25CLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNQLENBQUMsR0FBRyxJQUFJLGVBQWUsRUFBUSxDQUFBO1lBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2pCLENBQUM7UUFDRCxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQ2xCLENBQUM7SUFFRCxJQUFJLENBQW9CLENBQUksRUFBRSxVQUE2QztRQUN6RSxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDakIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDYixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE9BQU07WUFDUixDQUFDO1lBRUQsS0FBSyxHQUFHLElBQUksQ0FBQTtZQUNaLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNmLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsUUFBUSxDQUFvQixDQUFJLEVBQUUsU0FBK0I7UUFDL0QsT0FBTyxJQUFJLE9BQU8sQ0FBTyxHQUFHLENBQUMsRUFBRTtZQUM3QixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUE7WUFDakIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2IsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDVixPQUFNO2dCQUNSLENBQUM7Z0JBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNsQixPQUFNO2dCQUNSLENBQUM7Z0JBRUQsS0FBSyxHQUFHLElBQUksQ0FBQTtnQkFDWixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUE7WUFDUixDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGO0FBeERELHdDQXdEQyJ9
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./repo-protocol"), exports);
|
|
18
|
-
__exportStar(require("./task-info"), exports);
|
|
19
|
-
__exportStar(require("./test-run-summary"), exports);
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUErQjtBQUMvQiw4Q0FBMkI7QUFDM0IscURBQWtDIn0=
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { BuildRunId } from 'build-run-id';
|
|
2
|
-
import { RepoRoot } from 'core-types';
|
|
3
|
-
import { Graph, TypedPublisher } from 'misc';
|
|
4
|
-
import { TaskName } from 'task-name';
|
|
5
|
-
import { UnitId, UnitMetadata } from 'unit-metadata';
|
|
6
|
-
import { z } from 'zod';
|
|
7
|
-
import { TaskInfo } from './task-info';
|
|
8
|
-
export type ExitStatus = 'OK' | 'FAIL' | 'CRASH';
|
|
9
|
-
export type RepoProtocolEventVerdict = 'TEST_PASSED' | 'TEST_FAILED' | 'TEST_CRASHED' | 'TEST_TIMEDOUT';
|
|
10
|
-
export interface RepoProtocolEvent {
|
|
11
|
-
testEnded: {
|
|
12
|
-
verdict: RepoProtocolEventVerdict;
|
|
13
|
-
testPath: string[];
|
|
14
|
-
fileName: string;
|
|
15
|
-
taskName: TaskName;
|
|
16
|
-
durationMillis?: number;
|
|
17
|
-
};
|
|
18
|
-
assetPublished: {
|
|
19
|
-
taskName: TaskName;
|
|
20
|
-
casAddress: string;
|
|
21
|
-
file: string;
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
export interface RepoProtocol {
|
|
25
|
-
/**
|
|
26
|
-
* Initializes the repo protocol for running a build at the given directory.
|
|
27
|
-
* All other methods will be called only after this call has returned. A close() call will be made before the next
|
|
28
|
-
* initialize() call is made.
|
|
29
|
-
*
|
|
30
|
-
* The repo protocol is expected to do the following (in addition to any implemetation-specific setup):
|
|
31
|
-
* - create an output directory at each module
|
|
32
|
-
* - report dependency violations
|
|
33
|
-
*
|
|
34
|
-
* @param rootDir
|
|
35
|
-
* @param publisher
|
|
36
|
-
* @param outDirName - name of the output directory to create in each module.
|
|
37
|
-
* @param repoProtocolConfig
|
|
38
|
-
*/
|
|
39
|
-
initialize(rootDir: RepoRoot, publisher: TypedPublisher<RepoProtocolEvent>, outDirName: string, repoProtocolConfig?: unknown): Promise<void>;
|
|
40
|
-
execute(taskName: TaskName, outputFile: string, buildRunId: BuildRunId): Promise<ExitStatus>;
|
|
41
|
-
getGraph(): Promise<Graph<UnitId>>;
|
|
42
|
-
getUnits(): Promise<UnitMetadata[]>;
|
|
43
|
-
getTasks(): Promise<TaskInfo[]>;
|
|
44
|
-
getConfigSchema(): z.AnyZodObject;
|
|
45
|
-
close(): Promise<void>;
|
|
46
|
-
}
|
|
47
|
-
export interface Publisher {
|
|
48
|
-
publishAsset(u: UnitMetadata, content: Buffer, name: string): Promise<string>;
|
|
49
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwby1wcm90b2NvbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZXBvLXByb3RvY29sLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|