@aws-cdk-testing/cli-integ 2.61.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/LICENSE +201 -0
- package/NOTICE +16 -0
- package/README.md +151 -0
- package/bin/apply-patches +19 -0
- package/bin/download-and-run-old-tests +52 -0
- package/bin/query-github +2 -0
- package/bin/query-github.d.ts +1 -0
- package/bin/query-github.js +55 -0
- package/bin/run-suite +2 -0
- package/bin/run-suite.d.ts +1 -0
- package/bin/run-suite.js +126 -0
- package/bin/stage-distribution +2 -0
- package/bin/stage-distribution.d.ts +1 -0
- package/bin/stage-distribution.js +209 -0
- package/bin/test-root +2 -0
- package/bin/test-root.d.ts +1 -0
- package/bin/test-root.js +6 -0
- package/entrypoints/test-cli-regression-against-current-code.sh +11 -0
- package/entrypoints/test-cli-regression-against-latest-release.sh +11 -0
- package/entrypoints/test-cli-regression.bash +83 -0
- package/entrypoints/test.sh +12 -0
- package/lib/aws.d.ts +55 -0
- package/lib/aws.js +243 -0
- package/lib/corking.d.ts +13 -0
- package/lib/corking.js +34 -0
- package/lib/files.d.ts +15 -0
- package/lib/files.js +80 -0
- package/lib/github.d.ts +4 -0
- package/lib/github.js +43 -0
- package/lib/index.d.ts +12 -0
- package/lib/index.js +25 -0
- package/lib/integ-test.d.ts +11 -0
- package/lib/integ-test.js +55 -0
- package/lib/lists.d.ts +1 -0
- package/lib/lists.js +12 -0
- package/lib/memoize.d.ts +6 -0
- package/lib/memoize.js +19 -0
- package/lib/npm.d.ts +4 -0
- package/lib/npm.js +15 -0
- package/lib/package-sources/release-source.d.ts +22 -0
- package/lib/package-sources/release-source.js +67 -0
- package/lib/package-sources/repo-source.d.ts +23 -0
- package/lib/package-sources/repo-source.js +92 -0
- package/lib/package-sources/repo-tools/npm +2 -0
- package/lib/package-sources/repo-tools/npm.d.ts +1 -0
- package/lib/package-sources/repo-tools/npm.js +42 -0
- package/lib/package-sources/source.d.ts +24 -0
- package/lib/package-sources/source.js +3 -0
- package/lib/package-sources/subprocess.d.ts +3 -0
- package/lib/package-sources/subprocess.js +18 -0
- package/lib/resource-pool.d.ts +54 -0
- package/lib/resource-pool.js +120 -0
- package/lib/resources.d.ts +1 -0
- package/lib/resources.js +6 -0
- package/lib/shell.d.ts +59 -0
- package/lib/shell.js +118 -0
- package/lib/staging/codeartifact.d.ts +44 -0
- package/lib/staging/codeartifact.js +258 -0
- package/lib/staging/maven.d.ts +5 -0
- package/lib/staging/maven.js +83 -0
- package/lib/staging/npm.d.ts +4 -0
- package/lib/staging/npm.js +56 -0
- package/lib/staging/nuget.d.ts +4 -0
- package/lib/staging/nuget.js +71 -0
- package/lib/staging/parallel-shell.d.ts +6 -0
- package/lib/staging/parallel-shell.js +46 -0
- package/lib/staging/pypi.d.ts +4 -0
- package/lib/staging/pypi.js +49 -0
- package/lib/staging/usage-dir.d.ts +31 -0
- package/lib/staging/usage-dir.js +87 -0
- package/lib/with-aws.d.ts +13 -0
- package/lib/with-aws.js +60 -0
- package/lib/with-cdk-app.d.ts +146 -0
- package/lib/with-cdk-app.js +398 -0
- package/lib/with-packages.d.ts +5 -0
- package/lib/with-packages.js +14 -0
- package/lib/with-sam.d.ts +33 -0
- package/lib/with-sam.js +240 -0
- package/lib/with-temporary-directory.d.ts +5 -0
- package/lib/with-temporary-directory.js +32 -0
- package/lib/xpmutex.d.ts +43 -0
- package/lib/xpmutex.js +207 -0
- package/package.json +73 -0
- package/resources/cdk-apps/app/app.js +463 -0
- package/resources/cdk-apps/app/cdk.json +7 -0
- package/resources/cdk-apps/app/docker/Dockerfile +2 -0
- package/resources/cdk-apps/app/docker/Dockerfile.Custom +2 -0
- package/resources/cdk-apps/app/lambda/index.js +4 -0
- package/resources/cdk-apps/app/lambda/response.json +3 -0
- package/resources/cdk-apps/app/nested-stack.js +49 -0
- package/resources/cdk-apps/cfn-include-app/.gitignore +1 -0
- package/resources/cdk-apps/cfn-include-app/cdk.json +4 -0
- package/resources/cdk-apps/cfn-include-app/cfn-include-app.js +21 -0
- package/resources/cdk-apps/cfn-include-app/example-template.json +13 -0
- package/resources/cdk-apps/sam_cdk_integ_app/bin/test-app.js +11 -0
- package/resources/cdk-apps/sam_cdk_integ_app/cdk.json +6 -0
- package/resources/cdk-apps/sam_cdk_integ_app/lib/nested-stack.js +19 -0
- package/resources/cdk-apps/sam_cdk_integ_app/lib/test-stack.js +134 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/docker/DockerImageFunctionConstruct/.no-packagejson-validator +0 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/docker/DockerImageFunctionConstruct/Dockerfile +9 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/docker/DockerImageFunctionConstruct/app.js +22 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/docker/DockerImageFunctionConstruct/package.json +18 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/go/GoFunctionConstruct/go.mod +5 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/go/GoFunctionConstruct/go.sum +17 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/go/GoFunctionConstruct/main.go +17 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/nodejs/NodeJsFunctionConstruct/.no-packagejson-validator +0 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/nodejs/NodeJsFunctionConstruct/app.ts +16 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/nodejs/NodeJsFunctionConstruct/package-lock.json +12 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/nodejs/NodeJsFunctionConstruct/package.json +5 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/python/Function/app.py +15 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/python/Function/requirements.txt +1 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/python/Layer/layer_version_dependency.py +5 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/python/Layer/requirements.txt +1 -0
- package/resources/cdk-apps/sam_cdk_integ_app/src/rest-api-definition.yaml +12 -0
- package/resources/cli-regression-patches/v1.119.0/NOTES.md +5 -0
- package/resources/cli-regression-patches/v1.119.0/cli.integtest.js +659 -0
- package/resources/cli-regression-patches/v1.130.0/NOTES.md +12 -0
- package/resources/cli-regression-patches/v1.130.0/app/app.js +378 -0
- package/resources/cli-regression-patches/v1.130.0/bootstrapping.integtest.js +220 -0
- package/resources/cli-regression-patches/v1.44.0/NOTES.md +18 -0
- package/resources/cli-regression-patches/v1.44.0/bootstrapping.integtest.js +126 -0
- package/resources/cli-regression-patches/v1.44.0/test.sh +26 -0
- package/resources/cli-regression-patches/v1.61.1/NOTES.md +2 -0
- package/resources/cli-regression-patches/v1.61.1/skip-tests.txt +16 -0
- package/resources/cli-regression-patches/v1.62.0/NOTES.md +2 -0
- package/resources/cli-regression-patches/v1.62.0/aws-helpers.js +245 -0
- package/resources/cli-regression-patches/v1.63.0/NOTES.md +1 -0
- package/resources/cli-regression-patches/v1.63.0/skip-tests.txt +7 -0
- package/resources/cli-regression-patches/v1.64.0/NOTES.md +3 -0
- package/resources/cli-regression-patches/v1.64.0/cdk-helpers.js +325 -0
- package/resources/cli-regression-patches/v1.64.0/cli.integtest.js +599 -0
- package/resources/cli-regression-patches/v1.64.1/NOTES.md +3 -0
- package/resources/cli-regression-patches/v1.64.1/cdk-helpers.js +324 -0
- package/resources/cli-regression-patches/v1.64.1/cli.integtest.js +599 -0
- package/resources/cli-regression-patches/v1.67.0/NOTES.md +2 -0
- package/resources/cli-regression-patches/v1.67.0/cdk-helpers.js +331 -0
- package/resources/cloud-assemblies/0.36.0/InitStack.template.json +1 -0
- package/resources/cloud-assemblies/0.36.0/manifest.json +19 -0
- package/resources/cloud-assemblies/1.10.0-lookup-default-vpc/InitStack.template.json +2 -0
- package/resources/cloud-assemblies/1.10.0-lookup-default-vpc/manifest.json.js +37 -0
- package/resources/cloud-assemblies/1.10.0-request-azs/InitStack.template.json +2 -0
- package/resources/cloud-assemblies/1.10.0-request-azs/manifest.json.js +34 -0
- package/resources/integ.jest.config.js +25 -0
- package/skip-tests.txt +8 -0
- package/tests/cli-integ-tests/README.md +47 -0
- package/tests/cli-integ-tests/bootstrapping.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/bootstrapping.integtest.js +271 -0
- package/tests/cli-integ-tests/cli.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cli.integtest.js +1029 -0
- package/tests/init-csharp/init-csharp.integtest.d.ts +1 -0
- package/tests/init-csharp/init-csharp.integtest.js +14 -0
- package/tests/init-fsharp/init-fsharp.integtest.d.ts +1 -0
- package/tests/init-fsharp/init-fsharp.integtest.js +14 -0
- package/tests/init-java/init-java.integtest.d.ts +1 -0
- package/tests/init-java/init-java.integtest.js +14 -0
- package/tests/init-javascript/init-javascript.integtest.d.ts +1 -0
- package/tests/init-javascript/init-javascript.integtest.js +15 -0
- package/tests/init-python/init-python.integtest.d.ts +1 -0
- package/tests/init-python/init-python.integtest.js +19 -0
- package/tests/init-typescript-app/init-typescript-app.integtest.d.ts +1 -0
- package/tests/init-typescript-app/init-typescript-app.integtest.js +49 -0
- package/tests/init-typescript-lib/init-typescript-lib.integtest.d.ts +1 -0
- package/tests/init-typescript-lib/init-typescript-lib.integtest.js +13 -0
- package/tests/uberpackage/uberpackage.integtest.d.ts +1 -0
- package/tests/uberpackage/uberpackage.integtest.js +11 -0
package/lib/memoize.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.memoize0 = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Return a memoized version of an function with 0 arguments.
|
|
6
|
+
*
|
|
7
|
+
* Async-safe.
|
|
8
|
+
*/
|
|
9
|
+
function memoize0(fn) {
|
|
10
|
+
let promise;
|
|
11
|
+
return () => {
|
|
12
|
+
if (!promise) {
|
|
13
|
+
promise = fn();
|
|
14
|
+
}
|
|
15
|
+
return promise;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.memoize0 = memoize0;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1lbW9pemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7R0FJRztBQUNILFNBQWdCLFFBQVEsQ0FBSSxFQUFvQjtJQUM5QyxJQUFJLE9BQStCLENBQUM7SUFDcEMsT0FBTyxHQUFHLEVBQUU7UUFDVixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxHQUFHLEVBQUUsRUFBRSxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQVJELDRCQVFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXR1cm4gYSBtZW1vaXplZCB2ZXJzaW9uIG9mIGFuIGZ1bmN0aW9uIHdpdGggMCBhcmd1bWVudHMuXG4gKlxuICogQXN5bmMtc2FmZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lbW9pemUwPEE+KGZuOiAoKSA9PiBQcm9taXNlPEE+KTogKCkgPT4gUHJvbWlzZTxBPiB7XG4gIGxldCBwcm9taXNlOiBQcm9taXNlPEE+IHwgdW5kZWZpbmVkO1xuICByZXR1cm4gKCkgPT4ge1xuICAgIGlmICghcHJvbWlzZSkge1xuICAgICAgcHJvbWlzZSA9IGZuKCk7XG4gICAgfVxuICAgIHJldHVybiBwcm9taXNlO1xuICB9O1xufSJdfQ==
|
package/lib/npm.d.ts
ADDED
package/lib/npm.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.typescriptVersionsSync = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const MINIMUM_VERSION = '3.9';
|
|
6
|
+
/**
|
|
7
|
+
* Use NPM preinstalled on the machine to look up a list of TypeScript versions
|
|
8
|
+
*/
|
|
9
|
+
function typescriptVersionsSync() {
|
|
10
|
+
const { stdout } = child_process_1.spawnSync('npm', ['--silent', 'view', `typescript@>=${MINIMUM_VERSION}`, 'version', '--json']);
|
|
11
|
+
const versions = JSON.parse(stdout);
|
|
12
|
+
return Array.from(new Set(versions.map(v => v.split('.').slice(0, 2).join('.'))));
|
|
13
|
+
}
|
|
14
|
+
exports.typescriptVersionsSync = typescriptVersionsSync;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUEwQztBQUUxQyxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUM7QUFFOUI7O0dBRUc7QUFDSCxTQUFnQixzQkFBc0I7SUFDcEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLHlCQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsZUFBZSxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFbEgsTUFBTSxRQUFRLEdBQWEsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDcEYsQ0FBQztBQUxELHdEQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3Bhd25TeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5cbmNvbnN0IE1JTklNVU1fVkVSU0lPTiA9ICczLjknO1xuXG4vKipcbiAqIFVzZSBOUE0gcHJlaW5zdGFsbGVkIG9uIHRoZSBtYWNoaW5lIHRvIGxvb2sgdXAgYSBsaXN0IG9mIFR5cGVTY3JpcHQgdmVyc2lvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHR5cGVzY3JpcHRWZXJzaW9uc1N5bmMoKTogc3RyaW5nW10ge1xuICBjb25zdCB7IHN0ZG91dCB9ID0gc3Bhd25TeW5jKCducG0nLCBbJy0tc2lsZW50JywgJ3ZpZXcnLCBgdHlwZXNjcmlwdEA+PSR7TUlOSU1VTV9WRVJTSU9OfWAsICd2ZXJzaW9uJywgJy0tanNvbiddKTtcblxuICBjb25zdCB2ZXJzaW9uczogc3RyaW5nW10gPSBKU09OLnBhcnNlKHN0ZG91dCk7XG4gIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQodmVyc2lvbnMubWFwKHYgPT4gdi5zcGxpdCgnLicpLnNsaWNlKDAsIDIpLmpvaW4oJy4nKSkpKTtcbn0iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IPackageSourceSetup, IPackageSource } from './source';
|
|
2
|
+
export declare class ReleasePackageSourceSetup implements IPackageSourceSetup {
|
|
3
|
+
private readonly version;
|
|
4
|
+
private readonly frameworkVersion?;
|
|
5
|
+
readonly name = "release";
|
|
6
|
+
readonly description: string;
|
|
7
|
+
private tempDir?;
|
|
8
|
+
constructor(version: string, frameworkVersion?: string | undefined);
|
|
9
|
+
prepare(): Promise<void>;
|
|
10
|
+
cleanup(): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export declare class ReleasePackageSource implements IPackageSource {
|
|
13
|
+
private readonly cliPath;
|
|
14
|
+
private readonly version;
|
|
15
|
+
constructor();
|
|
16
|
+
makeCliAvailable(): Promise<void>;
|
|
17
|
+
assertJsiiPackagesAvailable(): void;
|
|
18
|
+
initializeDotnetPackages(currentDir: string): Promise<void>;
|
|
19
|
+
majorVersion(): string;
|
|
20
|
+
requestedFrameworkVersion(): string;
|
|
21
|
+
requestedAlphaVersion(): string;
|
|
22
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReleasePackageSource = exports.ReleasePackageSourceSetup = void 0;
|
|
4
|
+
const os = require("os");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const fs = require("fs-extra");
|
|
7
|
+
const files_1 = require("../files");
|
|
8
|
+
const shell_1 = require("../shell");
|
|
9
|
+
class ReleasePackageSourceSetup {
|
|
10
|
+
constructor(version, frameworkVersion) {
|
|
11
|
+
this.version = version;
|
|
12
|
+
this.frameworkVersion = frameworkVersion;
|
|
13
|
+
this.name = 'release';
|
|
14
|
+
this.description = `release @ ${this.version}`;
|
|
15
|
+
}
|
|
16
|
+
async prepare() {
|
|
17
|
+
this.tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'tmpcdk'));
|
|
18
|
+
fs.mkdirSync(this.tempDir, { recursive: true });
|
|
19
|
+
await shell_1.shell(['node', require.resolve('npm'), 'install', `aws-cdk@${this.version}`], {
|
|
20
|
+
cwd: this.tempDir,
|
|
21
|
+
});
|
|
22
|
+
process.env.CDK_CLI_PATH = this.tempDir;
|
|
23
|
+
process.env.VERSION = this.version;
|
|
24
|
+
process.env.FRAMEWORK_VERSION = this.frameworkVersion ?? this.version;
|
|
25
|
+
}
|
|
26
|
+
async cleanup() {
|
|
27
|
+
if (this.tempDir) {
|
|
28
|
+
shell_1.rimraf(this.tempDir);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.ReleasePackageSourceSetup = ReleasePackageSourceSetup;
|
|
33
|
+
class ReleasePackageSource {
|
|
34
|
+
constructor() {
|
|
35
|
+
this.cliPath = process.env.CDK_CLI_PATH;
|
|
36
|
+
this.version = process.env.VERSION;
|
|
37
|
+
}
|
|
38
|
+
async makeCliAvailable() {
|
|
39
|
+
shell_1.addToShellPath(path.join(this.cliPath, 'node_modules', '.bin'));
|
|
40
|
+
}
|
|
41
|
+
assertJsiiPackagesAvailable() {
|
|
42
|
+
}
|
|
43
|
+
async initializeDotnetPackages(currentDir) {
|
|
44
|
+
if (process.env.CWD_FILES_DIR) {
|
|
45
|
+
await files_1.copyDirectoryContents(process.env.CWD_FILES_DIR, currentDir);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
majorVersion() {
|
|
49
|
+
return this.version.split('.')[0];
|
|
50
|
+
}
|
|
51
|
+
requestedFrameworkVersion() {
|
|
52
|
+
return process.env.FRAMEWORK_VERSION;
|
|
53
|
+
}
|
|
54
|
+
requestedAlphaVersion() {
|
|
55
|
+
const frameworkVersion = this.requestedFrameworkVersion();
|
|
56
|
+
if (frameworkVersion.includes('-rc.')) {
|
|
57
|
+
// For a pipeline release
|
|
58
|
+
return frameworkVersion.replace(/-rc\.\d+$/, '-alpha.999');
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
// For a stable release
|
|
62
|
+
return `${frameworkVersion}-alpha.0`;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.ReleasePackageSource = ReleasePackageSource;
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZS1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZWxlYXNlLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQixvQ0FBaUQ7QUFDakQsb0NBQXlEO0FBR3pELE1BQWEseUJBQXlCO0lBTXBDLFlBQTZCLE9BQWUsRUFBbUIsZ0JBQXlCO1FBQTNELFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBbUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFTO1FBTC9FLFNBQUksR0FBRyxTQUFTLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxhQUFhLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUtuRCxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDaEUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFaEQsTUFBTSxhQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRTtZQUNsRixHQUFHLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDbEIsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixjQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztDQUNGO0FBM0JELDhEQTJCQztBQUVELE1BQWEsb0JBQW9CO0lBSS9CO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQWEsQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBUSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxLQUFLLENBQUMsZ0JBQWdCO1FBQzNCLHNCQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFTSwyQkFBMkI7SUFDbEMsQ0FBQztJQUVNLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxVQUFrQjtRQUN0RCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFO1lBQzdCLE1BQU0sNkJBQXFCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDcEU7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBVyxDQUFDO0lBQzlDLENBQUM7SUFFTSx5QkFBeUI7UUFDOUIsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFrQixDQUFDO0lBQ3hDLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUMxRCxJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNyQyx5QkFBeUI7WUFDekIsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQzVEO2FBQU07WUFDTCx1QkFBdUI7WUFDdkIsT0FBTyxHQUFHLGdCQUFnQixVQUFVLENBQUM7U0FDdEM7SUFDSCxDQUFDO0NBQ0Y7QUF4Q0Qsb0RBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IGNvcHlEaXJlY3RvcnlDb250ZW50cyB9IGZyb20gJy4uL2ZpbGVzJztcbmltcG9ydCB7IHNoZWxsLCByaW1yYWYsIGFkZFRvU2hlbGxQYXRoIH0gZnJvbSAnLi4vc2hlbGwnO1xuaW1wb3J0IHsgSVBhY2thZ2VTb3VyY2VTZXR1cCwgSVBhY2thZ2VTb3VyY2UgfSBmcm9tICcuL3NvdXJjZSc7XG5cbmV4cG9ydCBjbGFzcyBSZWxlYXNlUGFja2FnZVNvdXJjZVNldHVwIGltcGxlbWVudHMgSVBhY2thZ2VTb3VyY2VTZXR1cCB7XG4gIHJlYWRvbmx5IG5hbWUgPSAncmVsZWFzZSc7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uID0gYHJlbGVhc2UgQCAke3RoaXMudmVyc2lvbn1gO1xuXG4gIHByaXZhdGUgdGVtcERpcj86IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZywgcHJpdmF0ZSByZWFkb25seSBmcmFtZXdvcmtWZXJzaW9uPzogc3RyaW5nKSB7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcHJlcGFyZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnRlbXBEaXIgPSBmcy5ta2R0ZW1wU3luYyhwYXRoLmpvaW4ob3MudG1wZGlyKCksICd0bXBjZGsnKSk7XG4gICAgZnMubWtkaXJTeW5jKHRoaXMudGVtcERpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICBhd2FpdCBzaGVsbChbJ25vZGUnLCByZXF1aXJlLnJlc29sdmUoJ25wbScpLCAnaW5zdGFsbCcsIGBhd3MtY2RrQCR7dGhpcy52ZXJzaW9ufWBdLCB7XG4gICAgICBjd2Q6IHRoaXMudGVtcERpcixcbiAgICB9KTtcblxuICAgIHByb2Nlc3MuZW52LkNES19DTElfUEFUSCA9IHRoaXMudGVtcERpcjtcbiAgICBwcm9jZXNzLmVudi5WRVJTSU9OID0gdGhpcy52ZXJzaW9uO1xuICAgIHByb2Nlc3MuZW52LkZSQU1FV09SS19WRVJTSU9OID0gdGhpcy5mcmFtZXdvcmtWZXJzaW9uID8/IHRoaXMudmVyc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjbGVhbnVwKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnRlbXBEaXIpIHtcbiAgICAgIHJpbXJhZih0aGlzLnRlbXBEaXIpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUmVsZWFzZVBhY2thZ2VTb3VyY2UgaW1wbGVtZW50cyBJUGFja2FnZVNvdXJjZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpUGF0aDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmNsaVBhdGggPSBwcm9jZXNzLmVudi5DREtfQ0xJX1BBVEghO1xuICAgIHRoaXMudmVyc2lvbiA9IHByb2Nlc3MuZW52LlZFUlNJT04hO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG1ha2VDbGlBdmFpbGFibGUoKSB7XG4gICAgYWRkVG9TaGVsbFBhdGgocGF0aC5qb2luKHRoaXMuY2xpUGF0aCwgJ25vZGVfbW9kdWxlcycsICcuYmluJykpO1xuICB9XG5cbiAgcHVibGljIGFzc2VydEpzaWlQYWNrYWdlc0F2YWlsYWJsZSgpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbml0aWFsaXplRG90bmV0UGFja2FnZXMoY3VycmVudERpcjogc3RyaW5nKSB7XG4gICAgaWYgKHByb2Nlc3MuZW52LkNXRF9GSUxFU19ESVIpIHtcbiAgICAgIGF3YWl0IGNvcHlEaXJlY3RvcnlDb250ZW50cyhwcm9jZXNzLmVudi5DV0RfRklMRVNfRElSLCBjdXJyZW50RGlyKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbWFqb3JWZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnZlcnNpb24uc3BsaXQoJy4nKVswXSBhcyBzdHJpbmc7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdGVkRnJhbWV3b3JrVmVyc2lvbigpIHtcbiAgICByZXR1cm4gcHJvY2Vzcy5lbnYuRlJBTUVXT1JLX1ZFUlNJT04hO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RlZEFscGhhVmVyc2lvbigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZyYW1ld29ya1ZlcnNpb24gPSB0aGlzLnJlcXVlc3RlZEZyYW1ld29ya1ZlcnNpb24oKTtcbiAgICBpZiAoZnJhbWV3b3JrVmVyc2lvbi5pbmNsdWRlcygnLXJjLicpKSB7XG4gICAgICAvLyBGb3IgYSBwaXBlbGluZSByZWxlYXNlXG4gICAgICByZXR1cm4gZnJhbWV3b3JrVmVyc2lvbi5yZXBsYWNlKC8tcmNcXC5cXGQrJC8sICctYWxwaGEuOTk5Jyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZvciBhIHN0YWJsZSByZWxlYXNlXG4gICAgICByZXR1cm4gYCR7ZnJhbWV3b3JrVmVyc2lvbn0tYWxwaGEuMGA7XG4gICAgfVxuICB9XG59Il19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IPackageSourceSetup, IPackageSource } from './source';
|
|
2
|
+
export declare class RepoPackageSourceSetup implements IPackageSourceSetup {
|
|
3
|
+
private readonly repoRoot;
|
|
4
|
+
readonly name = "repo";
|
|
5
|
+
readonly description: string;
|
|
6
|
+
constructor(repoRoot: string);
|
|
7
|
+
prepare(): Promise<void>;
|
|
8
|
+
cleanup(): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
export declare class RepoPackageSource implements IPackageSource {
|
|
11
|
+
private readonly repoRoot;
|
|
12
|
+
constructor();
|
|
13
|
+
makeCliAvailable(): Promise<void>;
|
|
14
|
+
assertJsiiPackagesAvailable(): void;
|
|
15
|
+
initializeDotnetPackages(): Promise<void>;
|
|
16
|
+
majorVersion(): any;
|
|
17
|
+
requestedFrameworkVersion(): string;
|
|
18
|
+
requestedAlphaVersion(): string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Find the root directory of the repo from the current directory
|
|
22
|
+
*/
|
|
23
|
+
export declare function autoFindRoot(): Promise<string>;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.autoFindRoot = exports.RepoPackageSource = exports.RepoPackageSourceSetup = void 0;
|
|
4
|
+
const os = require("os");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const fs = require("fs-extra");
|
|
7
|
+
const files_1 = require("../files");
|
|
8
|
+
const shell_1 = require("../shell");
|
|
9
|
+
class RepoPackageSourceSetup {
|
|
10
|
+
constructor(repoRoot) {
|
|
11
|
+
this.repoRoot = repoRoot;
|
|
12
|
+
this.name = 'repo';
|
|
13
|
+
this.description = `repo(${this.repoRoot})`;
|
|
14
|
+
}
|
|
15
|
+
async prepare() {
|
|
16
|
+
if (!await fs.pathExists(path.join(this.repoRoot, 'package.json')) || !await fs.pathExists(path.join(this.repoRoot, 'yarn.lock'))) {
|
|
17
|
+
throw new Error(`${this.repoRoot}: does not look like the repository root`);
|
|
18
|
+
}
|
|
19
|
+
process.env.REPO_ROOT = this.repoRoot;
|
|
20
|
+
process.env.REPO_PACKAGE_MAP = await writePackageMap(this.repoRoot);
|
|
21
|
+
shell_1.addToShellPath(path.resolve(__dirname, 'repo-tools'));
|
|
22
|
+
}
|
|
23
|
+
async cleanup() {
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.RepoPackageSourceSetup = RepoPackageSourceSetup;
|
|
27
|
+
class RepoPackageSource {
|
|
28
|
+
constructor() {
|
|
29
|
+
this.repoRoot = process.env.REPO_ROOT;
|
|
30
|
+
}
|
|
31
|
+
async makeCliAvailable() {
|
|
32
|
+
shell_1.addToShellPath(path.join(this.repoRoot, 'packages', 'aws-cdk', 'bin'));
|
|
33
|
+
}
|
|
34
|
+
assertJsiiPackagesAvailable() {
|
|
35
|
+
throw new Error('jsii client packages are not available when using REPO source');
|
|
36
|
+
}
|
|
37
|
+
async initializeDotnetPackages() {
|
|
38
|
+
}
|
|
39
|
+
majorVersion() {
|
|
40
|
+
const releaseJson = fs.readJsonSync(path.resolve(this.repoRoot, 'release.json'));
|
|
41
|
+
return releaseJson.majorVersion;
|
|
42
|
+
}
|
|
43
|
+
requestedFrameworkVersion() {
|
|
44
|
+
return '*';
|
|
45
|
+
}
|
|
46
|
+
requestedAlphaVersion() {
|
|
47
|
+
return '*';
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.RepoPackageSource = RepoPackageSource;
|
|
51
|
+
async function writePackageMap(repoRoot) {
|
|
52
|
+
const packages = await findYarnPackages(repoRoot);
|
|
53
|
+
const fileName = path.join(os.tmpdir(), 'package-map.json');
|
|
54
|
+
await fs.writeJson(fileName, packages);
|
|
55
|
+
return fileName;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Cache monorepo discovery results, we only want to do this once per run
|
|
59
|
+
*/
|
|
60
|
+
const YARN_MONOREPO_CACHE = {};
|
|
61
|
+
/**
|
|
62
|
+
* Return a { name -> directory } packages found in a Yarn monorepo
|
|
63
|
+
*
|
|
64
|
+
* Cached in YARN_MONOREPO_CACHE.
|
|
65
|
+
*/
|
|
66
|
+
async function findYarnPackages(root) {
|
|
67
|
+
if (!(root in YARN_MONOREPO_CACHE)) {
|
|
68
|
+
const output = JSON.parse(await shell_1.shell(['yarn', 'workspaces', '--silent', 'info'], {
|
|
69
|
+
captureStderr: false,
|
|
70
|
+
cwd: root,
|
|
71
|
+
show: 'error',
|
|
72
|
+
}));
|
|
73
|
+
const ret = {};
|
|
74
|
+
for (const [k, v] of Object.entries(output)) {
|
|
75
|
+
ret[k] = path.join(root, v.location);
|
|
76
|
+
}
|
|
77
|
+
YARN_MONOREPO_CACHE[root] = ret;
|
|
78
|
+
}
|
|
79
|
+
return YARN_MONOREPO_CACHE[root];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Find the root directory of the repo from the current directory
|
|
83
|
+
*/
|
|
84
|
+
async function autoFindRoot() {
|
|
85
|
+
const found = await files_1.findUp('release.json');
|
|
86
|
+
if (!found) {
|
|
87
|
+
throw new Error(`Could not determine repository root: 'release.json' not found from ${process.cwd()}`);
|
|
88
|
+
}
|
|
89
|
+
return path.dirname(found);
|
|
90
|
+
}
|
|
91
|
+
exports.autoFindRoot = autoFindRoot;
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwby1zb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJyZXBvLXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQixvQ0FBa0M7QUFDbEMsb0NBQWlEO0FBR2pELE1BQWEsc0JBQXNCO0lBSWpDLFlBQTZCLFFBQWdCO1FBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFIcEMsU0FBSSxHQUFHLE1BQU0sQ0FBQztRQUNkLGdCQUFXLEdBQUcsUUFBUSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUM7SUFHaEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDLEVBQUU7WUFDakksTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLDBDQUEwQyxDQUFDLENBQUM7U0FDN0U7UUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BFLHNCQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87SUFDcEIsQ0FBQztDQUNGO0FBbkJELHdEQW1CQztBQUVELE1BQWEsaUJBQWlCO0lBRzVCO1FBQ0UsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQW1CLENBQUM7SUFDbEQsQ0FBQztJQUVNLEtBQUssQ0FBQyxnQkFBZ0I7UUFDM0Isc0JBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSwyQkFBMkI7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywrREFBK0QsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTSxLQUFLLENBQUMsd0JBQXdCO0lBQ3JDLENBQUM7SUFFTSxZQUFZO1FBQ2pCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDakYsT0FBTyxXQUFXLENBQUMsWUFBWSxDQUFDO0lBQ2xDLENBQUM7SUFFTSx5QkFBeUI7UUFDOUIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0scUJBQXFCO1FBQzFCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBOUJELDhDQThCQztBQUVELEtBQUssVUFBVSxlQUFlLENBQUMsUUFBZ0I7SUFDN0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQzVELE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdkMsT0FBTyxRQUFRLENBQUM7QUFDbEIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxtQkFBbUIsR0FBd0IsRUFBRSxDQUFDO0FBRXBEOzs7O0lBSUk7QUFDSixLQUFLLFVBQVUsZ0JBQWdCLENBQUMsSUFBWTtJQUMxQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksbUJBQW1CLENBQUMsRUFBRTtRQUNsQyxNQUFNLE1BQU0sR0FBeUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLGFBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ3RHLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLEdBQUcsRUFBRSxJQUFJO1lBQ1QsSUFBSSxFQUFFLE9BQU87U0FDZCxDQUFDLENBQUMsQ0FBQztRQUVKLE1BQU0sR0FBRyxHQUEyQixFQUFFLENBQUM7UUFDdkMsS0FBSyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDM0MsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0QztRQUNELG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztLQUNqQztJQUNELE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLFlBQVk7SUFDaEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxjQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsc0VBQXNFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDeEc7SUFDRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQU5ELG9DQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IGZpbmRVcCB9IGZyb20gJy4uL2ZpbGVzJztcbmltcG9ydCB7IHNoZWxsLCBhZGRUb1NoZWxsUGF0aCB9IGZyb20gJy4uL3NoZWxsJztcbmltcG9ydCB7IElQYWNrYWdlU291cmNlU2V0dXAsIElQYWNrYWdlU291cmNlIH0gZnJvbSAnLi9zb3VyY2UnO1xuXG5leHBvcnQgY2xhc3MgUmVwb1BhY2thZ2VTb3VyY2VTZXR1cCBpbXBsZW1lbnRzIElQYWNrYWdlU291cmNlU2V0dXAge1xuICByZWFkb25seSBuYW1lID0gJ3JlcG8nO1xuICByZWFkb25seSBkZXNjcmlwdGlvbiA9IGByZXBvKCR7dGhpcy5yZXBvUm9vdH0pYDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlcG9Sb290OiBzdHJpbmcpIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBwcmVwYXJlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghYXdhaXQgZnMucGF0aEV4aXN0cyhwYXRoLmpvaW4odGhpcy5yZXBvUm9vdCwgJ3BhY2thZ2UuanNvbicpKSB8fCAhYXdhaXQgZnMucGF0aEV4aXN0cyhwYXRoLmpvaW4odGhpcy5yZXBvUm9vdCwgJ3lhcm4ubG9jaycpKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMucmVwb1Jvb3R9OiBkb2VzIG5vdCBsb29rIGxpa2UgdGhlIHJlcG9zaXRvcnkgcm9vdGApO1xuICAgIH1cblxuICAgIHByb2Nlc3MuZW52LlJFUE9fUk9PVCA9IHRoaXMucmVwb1Jvb3Q7XG4gICAgcHJvY2Vzcy5lbnYuUkVQT19QQUNLQUdFX01BUCA9IGF3YWl0IHdyaXRlUGFja2FnZU1hcCh0aGlzLnJlcG9Sb290KTtcbiAgICBhZGRUb1NoZWxsUGF0aChwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAncmVwby10b29scycpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjbGVhbnVwKCk6IFByb21pc2U8dm9pZD4ge1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXBvUGFja2FnZVNvdXJjZSBpbXBsZW1lbnRzIElQYWNrYWdlU291cmNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSByZXBvUm9vdDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMucmVwb1Jvb3QgPSBwcm9jZXNzLmVudi5SRVBPX1JPT1QgYXMgc3RyaW5nO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIG1ha2VDbGlBdmFpbGFibGUoKSB7XG4gICAgYWRkVG9TaGVsbFBhdGgocGF0aC5qb2luKHRoaXMucmVwb1Jvb3QsICdwYWNrYWdlcycsICdhd3MtY2RrJywgJ2JpbicpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3NlcnRKc2lpUGFja2FnZXNBdmFpbGFibGUoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdqc2lpIGNsaWVudCBwYWNrYWdlcyBhcmUgbm90IGF2YWlsYWJsZSB3aGVuIHVzaW5nIFJFUE8gc291cmNlJyk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZURvdG5ldFBhY2thZ2VzKCkge1xuICB9XG5cbiAgcHVibGljIG1ham9yVmVyc2lvbigpIHtcbiAgICBjb25zdCByZWxlYXNlSnNvbiA9IGZzLnJlYWRKc29uU3luYyhwYXRoLnJlc29sdmUodGhpcy5yZXBvUm9vdCwgJ3JlbGVhc2UuanNvbicpKTtcbiAgICByZXR1cm4gcmVsZWFzZUpzb24ubWFqb3JWZXJzaW9uO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RlZEZyYW1ld29ya1ZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJyonO1xuICB9XG5cbiAgcHVibGljIHJlcXVlc3RlZEFscGhhVmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAnKic7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gd3JpdGVQYWNrYWdlTWFwKHJlcG9Sb290OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBwYWNrYWdlcyA9IGF3YWl0IGZpbmRZYXJuUGFja2FnZXMocmVwb1Jvb3QpO1xuICBjb25zdCBmaWxlTmFtZSA9IHBhdGguam9pbihvcy50bXBkaXIoKSwgJ3BhY2thZ2UtbWFwLmpzb24nKTtcbiAgYXdhaXQgZnMud3JpdGVKc29uKGZpbGVOYW1lLCBwYWNrYWdlcyk7XG4gIHJldHVybiBmaWxlTmFtZTtcbn1cblxuLyoqXG4gKiBDYWNoZSBtb25vcmVwbyBkaXNjb3ZlcnkgcmVzdWx0cywgd2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb25jZSBwZXIgcnVuXG4gKi9cbmNvbnN0IFlBUk5fTU9OT1JFUE9fQ0FDSEU6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcblxuLyoqXG4gICogUmV0dXJuIGEgeyBuYW1lIC0+IGRpcmVjdG9yeSB9IHBhY2thZ2VzIGZvdW5kIGluIGEgWWFybiBtb25vcmVwb1xuICAqXG4gICogQ2FjaGVkIGluIFlBUk5fTU9OT1JFUE9fQ0FDSEUuXG4gICovXG5hc3luYyBmdW5jdGlvbiBmaW5kWWFyblBhY2thZ2VzKHJvb3Q6IHN0cmluZyk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICBpZiAoIShyb290IGluIFlBUk5fTU9OT1JFUE9fQ0FDSEUpKSB7XG4gICAgY29uc3Qgb3V0cHV0OiBZYXJuV29ya3NwYWNlc091dHB1dCA9IEpTT04ucGFyc2UoYXdhaXQgc2hlbGwoWyd5YXJuJywgJ3dvcmtzcGFjZXMnLCAnLS1zaWxlbnQnLCAnaW5mbyddLCB7XG4gICAgICBjYXB0dXJlU3RkZXJyOiBmYWxzZSxcbiAgICAgIGN3ZDogcm9vdCxcbiAgICAgIHNob3c6ICdlcnJvcicsXG4gICAgfSkpO1xuXG4gICAgY29uc3QgcmV0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgZm9yIChjb25zdCBbaywgdl0gb2YgT2JqZWN0LmVudHJpZXMob3V0cHV0KSkge1xuICAgICAgcmV0W2tdID0gcGF0aC5qb2luKHJvb3QsIHYubG9jYXRpb24pO1xuICAgIH1cbiAgICBZQVJOX01PTk9SRVBPX0NBQ0hFW3Jvb3RdID0gcmV0O1xuICB9XG4gIHJldHVybiBZQVJOX01PTk9SRVBPX0NBQ0hFW3Jvb3RdO1xufVxuXG4vKipcbiAqIEZpbmQgdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoZSByZXBvIGZyb20gdGhlIGN1cnJlbnQgZGlyZWN0b3J5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBhdXRvRmluZFJvb3QoKSB7XG4gIGNvbnN0IGZvdW5kID0gYXdhaXQgZmluZFVwKCdyZWxlYXNlLmpzb24nKTtcbiAgaWYgKCFmb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGRldGVybWluZSByZXBvc2l0b3J5IHJvb3Q6ICdyZWxlYXNlLmpzb24nIG5vdCBmb3VuZCBmcm9tICR7cHJvY2Vzcy5jd2QoKX1gKTtcbiAgfVxuICByZXR1cm4gcGF0aC5kaXJuYW1lKGZvdW5kKTtcbn1cblxudHlwZSBZYXJuV29ya3NwYWNlc091dHB1dCA9IFJlY29yZDxzdHJpbmcsIHsgbG9jYXRpb246IHN0cmluZyB9PjtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const child_process = require("child_process");
|
|
4
|
+
const fs = require("fs-extra");
|
|
5
|
+
let argv = process.argv.slice(2);
|
|
6
|
+
// eslint-disable-next-line no-console
|
|
7
|
+
console.log('fake npm');
|
|
8
|
+
if (argv[0] === 'install') {
|
|
9
|
+
if (!process.env.REPO_PACKAGE_MAP) {
|
|
10
|
+
throw new Error('REPO_PACKAGE_MAP not set');
|
|
11
|
+
}
|
|
12
|
+
const repoPackageMap = fs.readJsonSync(process.env.REPO_PACKAGE_MAP, { encoding: 'utf-8' });
|
|
13
|
+
// Replace paths in the 'package.json' in the current directory
|
|
14
|
+
if (fs.pathExistsSync('package.json')) {
|
|
15
|
+
const packageJson = fs.readJsonSync('package.json', { encoding: 'utf-8' });
|
|
16
|
+
for (const deps of [packageJson.dependencies ?? {}, packageJson.devDependencies ?? {}]) {
|
|
17
|
+
for (const [name, version] of Object.entries(deps)) {
|
|
18
|
+
deps[name] = repoPackageMap[name] ?? version;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
fs.writeJsonSync('package.json', packageJson, { encoding: 'utf-8' });
|
|
22
|
+
}
|
|
23
|
+
// Replace package names on the command line
|
|
24
|
+
argv = argv.map(x => repoPackageMap[x] ?? x);
|
|
25
|
+
}
|
|
26
|
+
////////////////////////////////////////////////////////////////////////
|
|
27
|
+
// Shell out to original npm
|
|
28
|
+
const child = child_process.spawn('node', [require.resolve('npm'), ...argv], {
|
|
29
|
+
shell: false,
|
|
30
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
|
31
|
+
});
|
|
32
|
+
child.once('error', e => {
|
|
33
|
+
// eslint-disable-next-line no-console
|
|
34
|
+
console.error(e);
|
|
35
|
+
process.exitCode = 1;
|
|
36
|
+
});
|
|
37
|
+
child.once('close', code => {
|
|
38
|
+
if (code) {
|
|
39
|
+
process.exitCode = code;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibnBtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0NBQStDO0FBQy9DLCtCQUErQjtBQUUvQixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVqQyxzQ0FBc0M7QUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUV4QixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQUU7SUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUU7UUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0tBQzdDO0lBQ0QsTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFNUYsK0RBQStEO0lBQy9ELElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRTtRQUNyQyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxJQUFJLEVBQUUsRUFBRSxXQUFXLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3RGLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNsRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQzthQUM5QztTQUNGO1FBQ0QsRUFBRSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7S0FDdEU7SUFFRCw0Q0FBNEM7SUFDNUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Q0FDOUM7QUFFRCx3RUFBd0U7QUFDeEUsNkJBQTZCO0FBRTdCLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFO0lBQzNFLEtBQUssRUFBRSxLQUFLO0lBQ1osS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUM7Q0FDeEMsQ0FBQyxDQUFDO0FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDdEIsc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUM7QUFFSCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRTtJQUN6QixJQUFJLElBQUksRUFBRTtRQUNSLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0tBQ3pCO0FBQ0gsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGlsZF9wcm9jZXNzIGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuXG5sZXQgYXJndiA9IHByb2Nlc3MuYXJndi5zbGljZSgyKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbmNvbnNvbGUubG9nKCdmYWtlIG5wbScpO1xuXG5pZiAoYXJndlswXSA9PT0gJ2luc3RhbGwnKSB7XG4gIGlmICghcHJvY2Vzcy5lbnYuUkVQT19QQUNLQUdFX01BUCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUkVQT19QQUNLQUdFX01BUCBub3Qgc2V0Jyk7XG4gIH1cbiAgY29uc3QgcmVwb1BhY2thZ2VNYXAgPSBmcy5yZWFkSnNvblN5bmMocHJvY2Vzcy5lbnYuUkVQT19QQUNLQUdFX01BUCwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcblxuICAvLyBSZXBsYWNlIHBhdGhzIGluIHRoZSAncGFja2FnZS5qc29uJyBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnlcbiAgaWYgKGZzLnBhdGhFeGlzdHNTeW5jKCdwYWNrYWdlLmpzb24nKSkge1xuICAgIGNvbnN0IHBhY2thZ2VKc29uID0gZnMucmVhZEpzb25TeW5jKCdwYWNrYWdlLmpzb24nLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xuICAgIGZvciAoY29uc3QgZGVwcyBvZiBbcGFja2FnZUpzb24uZGVwZW5kZW5jaWVzID8/IHt9LCBwYWNrYWdlSnNvbi5kZXZEZXBlbmRlbmNpZXMgPz8ge31dKSB7XG4gICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2ZXJzaW9uXSBvZiBPYmplY3QuZW50cmllcyhkZXBzKSkge1xuICAgICAgICBkZXBzW25hbWVdID0gcmVwb1BhY2thZ2VNYXBbbmFtZV0gPz8gdmVyc2lvbjtcbiAgICAgIH1cbiAgICB9XG4gICAgZnMud3JpdGVKc29uU3luYygncGFja2FnZS5qc29uJywgcGFja2FnZUpzb24sIHsgZW5jb2Rpbmc6ICd1dGYtOCcgfSk7XG4gIH1cblxuICAvLyBSZXBsYWNlIHBhY2thZ2UgbmFtZXMgb24gdGhlIGNvbW1hbmQgbGluZVxuICBhcmd2ID0gYXJndi5tYXAoeCA9PiByZXBvUGFja2FnZU1hcFt4XSA/PyB4KTtcbn1cblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyAgU2hlbGwgb3V0IHRvIG9yaWdpbmFsIG5wbVxuXG5jb25zdCBjaGlsZCA9IGNoaWxkX3Byb2Nlc3Muc3Bhd24oJ25vZGUnLCBbcmVxdWlyZS5yZXNvbHZlKCducG0nKSwgLi4uYXJndl0sIHtcbiAgc2hlbGw6IGZhbHNlLFxuICBzdGRpbzogWydpZ25vcmUnLCAnaW5oZXJpdCcsICdpbmhlcml0J10sXG59KTtcblxuY2hpbGQub25jZSgnZXJyb3InLCBlID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5lcnJvcihlKTtcbiAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG59KTtcblxuY2hpbGQub25jZSgnY2xvc2UnLCBjb2RlID0+IHtcbiAgaWYgKGNvZGUpIHtcbiAgICBwcm9jZXNzLmV4aXRDb2RlID0gY29kZTtcbiAgfVxufSk7Il19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface IPackageSourceSetup {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly description: string;
|
|
4
|
+
prepare(): Promise<void>;
|
|
5
|
+
cleanup(): Promise<void>;
|
|
6
|
+
}
|
|
7
|
+
export interface IPackageSource {
|
|
8
|
+
makeCliAvailable(): Promise<void>;
|
|
9
|
+
assertJsiiPackagesAvailable(): void;
|
|
10
|
+
majorVersion(): string;
|
|
11
|
+
initializeDotnetPackages(targetDir: string): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Framework version if it's different than the CLI version
|
|
14
|
+
*
|
|
15
|
+
* Not all tests will respect this.
|
|
16
|
+
*/
|
|
17
|
+
requestedFrameworkVersion(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Versions of alpha packages if different than the CLI version
|
|
20
|
+
*
|
|
21
|
+
* Not all tests will respect this.
|
|
22
|
+
*/
|
|
23
|
+
requestedAlphaVersion(): string;
|
|
24
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElQYWNrYWdlU291cmNlU2V0dXAge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgcHJlcGFyZSgpOiBQcm9taXNlPHZvaWQ+O1xuICBjbGVhbnVwKCk6IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBhY2thZ2VTb3VyY2Uge1xuICBtYWtlQ2xpQXZhaWxhYmxlKCk6IFByb21pc2U8dm9pZD47XG5cbiAgYXNzZXJ0SnNpaVBhY2thZ2VzQXZhaWxhYmxlKCk6IHZvaWQ7XG4gIG1ham9yVmVyc2lvbigpOiBzdHJpbmc7XG5cbiAgaW5pdGlhbGl6ZURvdG5ldFBhY2thZ2VzKHRhcmdldERpcjogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogRnJhbWV3b3JrIHZlcnNpb24gaWYgaXQncyBkaWZmZXJlbnQgdGhhbiB0aGUgQ0xJIHZlcnNpb25cbiAgICpcbiAgICogTm90IGFsbCB0ZXN0cyB3aWxsIHJlc3BlY3QgdGhpcy5cbiAgICovXG4gIHJlcXVlc3RlZEZyYW1ld29ya1ZlcnNpb24oKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9ucyBvZiBhbHBoYSBwYWNrYWdlcyBpZiBkaWZmZXJlbnQgdGhhbiB0aGUgQ0xJIHZlcnNpb25cbiAgICpcbiAgICogTm90IGFsbCB0ZXN0cyB3aWxsIHJlc3BlY3QgdGhpcy5cbiAgICovXG4gIHJlcXVlc3RlZEFscGhhVmVyc2lvbigpOiBzdHJpbmc7XG59Il19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.packageSourceInSubprocess = exports.serializeForSubprocess = void 0;
|
|
4
|
+
const release_source_1 = require("./release-source");
|
|
5
|
+
const repo_source_1 = require("./repo-source");
|
|
6
|
+
function serializeForSubprocess(s) {
|
|
7
|
+
process.env.PACKAGE_SOURCE = s.name;
|
|
8
|
+
}
|
|
9
|
+
exports.serializeForSubprocess = serializeForSubprocess;
|
|
10
|
+
function packageSourceInSubprocess() {
|
|
11
|
+
switch (process.env.PACKAGE_SOURCE) {
|
|
12
|
+
case 'repo': return new repo_source_1.RepoPackageSource();
|
|
13
|
+
case 'release': return new release_source_1.ReleasePackageSource();
|
|
14
|
+
default: throw new Error(`Unrecognized package source: ${process.env.PACKAGE_SOURCE}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.packageSourceInSubprocess = packageSourceInSubprocess;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VicHJvY2Vzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN1YnByb2Nlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQXdEO0FBQ3hELCtDQUFrRDtBQUdsRCxTQUFnQixzQkFBc0IsQ0FBQyxDQUFzQjtJQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3RDLENBQUM7QUFGRCx3REFFQztBQUVELFNBQWdCLHlCQUF5QjtJQUN2QyxRQUFRLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFO1FBQ2xDLEtBQUssTUFBTSxDQUFDLENBQUMsT0FBTyxJQUFJLCtCQUFpQixFQUFFLENBQUM7UUFDNUMsS0FBSyxTQUFTLENBQUMsQ0FBQyxPQUFPLElBQUkscUNBQW9CLEVBQUUsQ0FBQztRQUNsRCxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7S0FDeEY7QUFDSCxDQUFDO0FBTkQsOERBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWxlYXNlUGFja2FnZVNvdXJjZSB9IGZyb20gJy4vcmVsZWFzZS1zb3VyY2UnO1xuaW1wb3J0IHsgUmVwb1BhY2thZ2VTb3VyY2UgfSBmcm9tICcuL3JlcG8tc291cmNlJztcbmltcG9ydCB7IElQYWNrYWdlU291cmNlU2V0dXAsIElQYWNrYWdlU291cmNlIH0gZnJvbSAnLi9zb3VyY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplRm9yU3VicHJvY2VzcyhzOiBJUGFja2FnZVNvdXJjZVNldHVwKSB7XG4gIHByb2Nlc3MuZW52LlBBQ0tBR0VfU09VUkNFID0gcy5uYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFja2FnZVNvdXJjZUluU3VicHJvY2VzcygpOiBJUGFja2FnZVNvdXJjZSB7XG4gIHN3aXRjaCAocHJvY2Vzcy5lbnYuUEFDS0FHRV9TT1VSQ0UpIHtcbiAgICBjYXNlICdyZXBvJzogcmV0dXJuIG5ldyBSZXBvUGFja2FnZVNvdXJjZSgpO1xuICAgIGNhc2UgJ3JlbGVhc2UnOiByZXR1cm4gbmV3IFJlbGVhc2VQYWNrYWdlU291cmNlKCk7XG4gICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKGBVbnJlY29nbml6ZWQgcGFja2FnZSBzb3VyY2U6ICR7cHJvY2Vzcy5lbnYuUEFDS0FHRV9TT1VSQ0V9YCk7XG4gIH1cbn0iXX0=
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A class that holds a pool of resources and gives them out and returns them on-demand
|
|
3
|
+
*
|
|
4
|
+
* The resources will be given out front to back, when they are returned
|
|
5
|
+
* the most recently returned version will be given out again (for best
|
|
6
|
+
* cache coherency).
|
|
7
|
+
*
|
|
8
|
+
* If there are multiple consumers waiting for a resource, consumers are serviced
|
|
9
|
+
* in FIFO order for most fairness.
|
|
10
|
+
*/
|
|
11
|
+
export declare class ResourcePool<A extends string = string> {
|
|
12
|
+
private readonly pool;
|
|
13
|
+
static withResources<A extends string>(name: string, resources: A[]): ResourcePool<A>;
|
|
14
|
+
private readonly resources;
|
|
15
|
+
private readonly mutexes;
|
|
16
|
+
private readonly locks;
|
|
17
|
+
private constructor();
|
|
18
|
+
/**
|
|
19
|
+
* Take one value from the resource pool
|
|
20
|
+
*
|
|
21
|
+
* If no such value is currently available, wait until it is.
|
|
22
|
+
*/
|
|
23
|
+
take(): Promise<ILease<A>>;
|
|
24
|
+
/**
|
|
25
|
+
* Execute a block using a single resource from the pool
|
|
26
|
+
*/
|
|
27
|
+
using<B>(block: (x: A) => B | Promise<B>): Promise<B>;
|
|
28
|
+
private tryObtainLease;
|
|
29
|
+
private makeLease;
|
|
30
|
+
/**
|
|
31
|
+
* When a value is returned:
|
|
32
|
+
*
|
|
33
|
+
* - If someone's waiting for it, give it to them
|
|
34
|
+
* - Otherwise put it back into the pool
|
|
35
|
+
*/
|
|
36
|
+
private returnValue;
|
|
37
|
+
/**
|
|
38
|
+
* Return all resources that we definitely don't own the locks for
|
|
39
|
+
*/
|
|
40
|
+
private unlockedResources;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* A single value taken from the pool
|
|
44
|
+
*/
|
|
45
|
+
export interface ILease<A> {
|
|
46
|
+
/**
|
|
47
|
+
* The value obtained by the lease
|
|
48
|
+
*/
|
|
49
|
+
readonly value: A;
|
|
50
|
+
/**
|
|
51
|
+
* Return the leased value to the pool
|
|
52
|
+
*/
|
|
53
|
+
dispose(): Promise<void>;
|
|
54
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResourcePool = void 0;
|
|
4
|
+
const xpmutex_1 = require("./xpmutex");
|
|
5
|
+
/**
|
|
6
|
+
* A class that holds a pool of resources and gives them out and returns them on-demand
|
|
7
|
+
*
|
|
8
|
+
* The resources will be given out front to back, when they are returned
|
|
9
|
+
* the most recently returned version will be given out again (for best
|
|
10
|
+
* cache coherency).
|
|
11
|
+
*
|
|
12
|
+
* If there are multiple consumers waiting for a resource, consumers are serviced
|
|
13
|
+
* in FIFO order for most fairness.
|
|
14
|
+
*/
|
|
15
|
+
class ResourcePool {
|
|
16
|
+
constructor(pool, resources) {
|
|
17
|
+
this.pool = pool;
|
|
18
|
+
this.mutexes = {};
|
|
19
|
+
this.locks = {};
|
|
20
|
+
if (resources.length === 0) {
|
|
21
|
+
throw new Error('Must have at least one resource in the pool');
|
|
22
|
+
}
|
|
23
|
+
// Shuffle to reduce contention
|
|
24
|
+
resources = [...resources];
|
|
25
|
+
fisherYatesShuffle(resources);
|
|
26
|
+
this.resources = resources;
|
|
27
|
+
for (const res of resources) {
|
|
28
|
+
this.mutexes[res] = this.pool.mutex(res);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
static withResources(name, resources) {
|
|
32
|
+
const pool = xpmutex_1.XpMutexPool.fromName(name);
|
|
33
|
+
return new ResourcePool(pool, resources);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Take one value from the resource pool
|
|
37
|
+
*
|
|
38
|
+
* If no such value is currently available, wait until it is.
|
|
39
|
+
*/
|
|
40
|
+
async take() {
|
|
41
|
+
while (true) {
|
|
42
|
+
// Start a wait on the unlock now -- if the unlock signal comes after
|
|
43
|
+
// we try to acquire but before we start the wait, we might miss it.
|
|
44
|
+
const wait = this.pool.awaitUnlock(5000);
|
|
45
|
+
for (const res of this.unlockedResources()) {
|
|
46
|
+
const lease = await this.tryObtainLease(res);
|
|
47
|
+
if (lease) {
|
|
48
|
+
// Ignore the wait (count as handled)
|
|
49
|
+
wait.then(() => { }, () => { });
|
|
50
|
+
return lease;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// None available, wait until one gets unlocked then try again
|
|
54
|
+
await wait;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Execute a block using a single resource from the pool
|
|
59
|
+
*/
|
|
60
|
+
async using(block) {
|
|
61
|
+
const lease = await this.take();
|
|
62
|
+
try {
|
|
63
|
+
return await block(lease.value);
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
await lease.dispose();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async tryObtainLease(value) {
|
|
70
|
+
const lock = await this.mutexes[value].tryAcquire();
|
|
71
|
+
if (!lock) {
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
this.locks[value] = lock;
|
|
75
|
+
return this.makeLease(value);
|
|
76
|
+
}
|
|
77
|
+
makeLease(value) {
|
|
78
|
+
let disposed = false;
|
|
79
|
+
return {
|
|
80
|
+
value,
|
|
81
|
+
dispose: () => {
|
|
82
|
+
if (disposed) {
|
|
83
|
+
throw new Error('Calling dispose() on an already-disposed lease.');
|
|
84
|
+
}
|
|
85
|
+
disposed = true;
|
|
86
|
+
return this.returnValue(value);
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* When a value is returned:
|
|
92
|
+
*
|
|
93
|
+
* - If someone's waiting for it, give it to them
|
|
94
|
+
* - Otherwise put it back into the pool
|
|
95
|
+
*/
|
|
96
|
+
async returnValue(value) {
|
|
97
|
+
const lock = this.locks[value];
|
|
98
|
+
delete this.locks[value];
|
|
99
|
+
await lock?.release();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Return all resources that we definitely don't own the locks for
|
|
103
|
+
*/
|
|
104
|
+
unlockedResources() {
|
|
105
|
+
return this.resources.filter(res => !this.locks[res]);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.ResourcePool = ResourcePool;
|
|
109
|
+
/**
|
|
110
|
+
* Shuffle an array in-place
|
|
111
|
+
*/
|
|
112
|
+
function fisherYatesShuffle(xs) {
|
|
113
|
+
for (let i = xs.length - 1; i >= 1; i--) {
|
|
114
|
+
const j = Math.floor(Math.random() * i);
|
|
115
|
+
const h = xs[j];
|
|
116
|
+
xs[j] = xs[i];
|
|
117
|
+
xs[i] = h;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtcG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInJlc291cmNlLXBvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQXdEO0FBRXhEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsWUFBWTtJQVV2QixZQUFxQyxJQUFpQixFQUFFLFNBQWM7UUFBakMsU0FBSSxHQUFKLElBQUksQ0FBYTtRQUhyQyxZQUFPLEdBQTRCLEVBQUUsQ0FBQztRQUN0QyxVQUFLLEdBQXNDLEVBQUUsQ0FBQztRQUc3RCxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztTQUNoRTtRQUVELCtCQUErQjtRQUMvQixTQUFTLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBQzNCLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTNCLEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBdEJNLE1BQU0sQ0FBQyxhQUFhLENBQW1CLElBQVksRUFBRSxTQUFjO1FBQ3hFLE1BQU0sSUFBSSxHQUFHLHFCQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFxQkQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsT0FBTyxJQUFJLEVBQUU7WUFDWCxxRUFBcUU7WUFDckUsb0VBQW9FO1lBQ3BFLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRXpDLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUU7Z0JBQzFDLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxLQUFLLEVBQUU7b0JBQ1QscUNBQXFDO29CQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztvQkFDOUIsT0FBTyxLQUFLLENBQUM7aUJBQ2Q7YUFDRjtZQUVELDhEQUE4RDtZQUM5RCxNQUFNLElBQUksQ0FBQztTQUNaO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEtBQUssQ0FBSSxLQUErQjtRQUNuRCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxJQUFJO1lBQ0YsT0FBTyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7Z0JBQVM7WUFDUixNQUFNLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN2QjtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQVE7UUFDbkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8sU0FBUyxDQUFDLEtBQVE7UUFDeEIsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE9BQU87WUFDTCxLQUFLO1lBQ0wsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDWixJQUFJLFFBQVEsRUFBRTtvQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7aUJBQ3BFO2dCQUNELFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUNyQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixNQUFNLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxpQkFBaUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDRjtBQXhHRCxvQ0F3R0M7QUFpQkQ7O0dBRUc7QUFDSCxTQUFTLGtCQUFrQixDQUFJLEVBQU87SUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQixFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2QsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNYO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElMb2NrLCBYcE11dGV4LCBYcE11dGV4UG9vbCB9IGZyb20gJy4veHBtdXRleCc7XG5cbi8qKlxuICogQSBjbGFzcyB0aGF0IGhvbGRzIGEgcG9vbCBvZiByZXNvdXJjZXMgYW5kIGdpdmVzIHRoZW0gb3V0IGFuZCByZXR1cm5zIHRoZW0gb24tZGVtYW5kXG4gKlxuICogVGhlIHJlc291cmNlcyB3aWxsIGJlIGdpdmVuIG91dCBmcm9udCB0byBiYWNrLCB3aGVuIHRoZXkgYXJlIHJldHVybmVkXG4gKiB0aGUgbW9zdCByZWNlbnRseSByZXR1cm5lZCB2ZXJzaW9uIHdpbGwgYmUgZ2l2ZW4gb3V0IGFnYWluIChmb3IgYmVzdFxuICogY2FjaGUgY29oZXJlbmN5KS5cbiAqXG4gKiBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgY29uc3VtZXJzIHdhaXRpbmcgZm9yIGEgcmVzb3VyY2UsIGNvbnN1bWVycyBhcmUgc2VydmljZWRcbiAqIGluIEZJRk8gb3JkZXIgZm9yIG1vc3QgZmFpcm5lc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVBvb2w8QSBleHRlbmRzIHN0cmluZz1zdHJpbmc+IHtcbiAgcHVibGljIHN0YXRpYyB3aXRoUmVzb3VyY2VzPEEgZXh0ZW5kcyBzdHJpbmc+KG5hbWU6IHN0cmluZywgcmVzb3VyY2VzOiBBW10pIHtcbiAgICBjb25zdCBwb29sID0gWHBNdXRleFBvb2wuZnJvbU5hbWUobmFtZSk7XG4gICAgcmV0dXJuIG5ldyBSZXNvdXJjZVBvb2wocG9vbCwgcmVzb3VyY2VzKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VzOiBSZWFkb25seUFycmF5PEE+O1xuICBwcml2YXRlIHJlYWRvbmx5IG11dGV4ZXM6IFJlY29yZDxzdHJpbmcsIFhwTXV0ZXg+ID0ge307XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9ja3M6IFJlY29yZDxzdHJpbmcsIElMb2NrIHwgdW5kZWZpbmVkPiA9IHt9O1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwb29sOiBYcE11dGV4UG9vbCwgcmVzb3VyY2VzOiBBW10pIHtcbiAgICBpZiAocmVzb3VyY2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IGhhdmUgYXQgbGVhc3Qgb25lIHJlc291cmNlIGluIHRoZSBwb29sJyk7XG4gICAgfVxuXG4gICAgLy8gU2h1ZmZsZSB0byByZWR1Y2UgY29udGVudGlvblxuICAgIHJlc291cmNlcyA9IFsuLi5yZXNvdXJjZXNdO1xuICAgIGZpc2hlcllhdGVzU2h1ZmZsZShyZXNvdXJjZXMpO1xuICAgIHRoaXMucmVzb3VyY2VzID0gcmVzb3VyY2VzO1xuXG4gICAgZm9yIChjb25zdCByZXMgb2YgcmVzb3VyY2VzKSB7XG4gICAgICB0aGlzLm11dGV4ZXNbcmVzXSA9IHRoaXMucG9vbC5tdXRleChyZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlIG9uZSB2YWx1ZSBmcm9tIHRoZSByZXNvdXJjZSBwb29sXG4gICAqXG4gICAqIElmIG5vIHN1Y2ggdmFsdWUgaXMgY3VycmVudGx5IGF2YWlsYWJsZSwgd2FpdCB1bnRpbCBpdCBpcy5cbiAgICovXG4gIHB1YmxpYyBhc3luYyB0YWtlKCk6IFByb21pc2U8SUxlYXNlPEE+PiB7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIC8vIFN0YXJ0IGEgd2FpdCBvbiB0aGUgdW5sb2NrIG5vdyAtLSBpZiB0aGUgdW5sb2NrIHNpZ25hbCBjb21lcyBhZnRlclxuICAgICAgLy8gd2UgdHJ5IHRvIGFjcXVpcmUgYnV0IGJlZm9yZSB3ZSBzdGFydCB0aGUgd2FpdCwgd2UgbWlnaHQgbWlzcyBpdC5cbiAgICAgIGNvbnN0IHdhaXQgPSB0aGlzLnBvb2wuYXdhaXRVbmxvY2soNTAwMCk7XG5cbiAgICAgIGZvciAoY29uc3QgcmVzIG9mIHRoaXMudW5sb2NrZWRSZXNvdXJjZXMoKSkge1xuICAgICAgICBjb25zdCBsZWFzZSA9IGF3YWl0IHRoaXMudHJ5T2J0YWluTGVhc2UocmVzKTtcbiAgICAgICAgaWYgKGxlYXNlKSB7XG4gICAgICAgICAgLy8gSWdub3JlIHRoZSB3YWl0IChjb3VudCBhcyBoYW5kbGVkKVxuICAgICAgICAgIHdhaXQudGhlbigoKSA9PiB7fSwgKCkgPT4ge30pO1xuICAgICAgICAgIHJldHVybiBsZWFzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBOb25lIGF2YWlsYWJsZSwgd2FpdCB1bnRpbCBvbmUgZ2V0cyB1bmxvY2tlZCB0aGVuIHRyeSBhZ2FpblxuICAgICAgYXdhaXQgd2FpdDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSBhIGJsb2NrIHVzaW5nIGEgc2luZ2xlIHJlc291cmNlIGZyb20gdGhlIHBvb2xcbiAgICovXG4gIHB1YmxpYyBhc3luYyB1c2luZzxCPihibG9jazogKHg6IEEpID0+IEIgfCBQcm9taXNlPEI+KTogUHJvbWlzZTxCPiB7XG4gICAgY29uc3QgbGVhc2UgPSBhd2FpdCB0aGlzLnRha2UoKTtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGJsb2NrKGxlYXNlLnZhbHVlKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgbGVhc2UuZGlzcG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdHJ5T2J0YWluTGVhc2UodmFsdWU6IEEpIHtcbiAgICBjb25zdCBsb2NrID0gYXdhaXQgdGhpcy5tdXRleGVzW3ZhbHVlXS50cnlBY3F1aXJlKCk7XG4gICAgaWYgKCFsb2NrKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRoaXMubG9ja3NbdmFsdWVdID0gbG9jaztcbiAgICByZXR1cm4gdGhpcy5tYWtlTGVhc2UodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYWtlTGVhc2UodmFsdWU6IEEpOiBJTGVhc2U8QT4ge1xuICAgIGxldCBkaXNwb3NlZCA9IGZhbHNlO1xuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZSxcbiAgICAgIGRpc3Bvc2U6ICgpID0+IHtcbiAgICAgICAgaWYgKGRpc3Bvc2VkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYWxsaW5nIGRpc3Bvc2UoKSBvbiBhbiBhbHJlYWR5LWRpc3Bvc2VkIGxlYXNlLicpO1xuICAgICAgICB9XG4gICAgICAgIGRpc3Bvc2VkID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHRoaXMucmV0dXJuVmFsdWUodmFsdWUpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gYSB2YWx1ZSBpcyByZXR1cm5lZDpcbiAgICpcbiAgICogLSBJZiBzb21lb25lJ3Mgd2FpdGluZyBmb3IgaXQsIGdpdmUgaXQgdG8gdGhlbVxuICAgKiAtIE90aGVyd2lzZSBwdXQgaXQgYmFjayBpbnRvIHRoZSBwb29sXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJldHVyblZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBsb2NrID0gdGhpcy5sb2Nrc1t2YWx1ZV07XG4gICAgZGVsZXRlIHRoaXMubG9ja3NbdmFsdWVdO1xuICAgIGF3YWl0IGxvY2s/LnJlbGVhc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIHJlc291cmNlcyB0aGF0IHdlIGRlZmluaXRlbHkgZG9uJ3Qgb3duIHRoZSBsb2NrcyBmb3JcbiAgICovXG4gIHByaXZhdGUgdW5sb2NrZWRSZXNvdXJjZXMoKTogQVtdIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZXMuZmlsdGVyKHJlcyA9PiAhdGhpcy5sb2Nrc1tyZXNdKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgc2luZ2xlIHZhbHVlIHRha2VuIGZyb20gdGhlIHBvb2xcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTGVhc2U8QT4ge1xuICAvKipcbiAgICogVGhlIHZhbHVlIG9idGFpbmVkIGJ5IHRoZSBsZWFzZVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU6IEE7XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbGVhc2VkIHZhbHVlIHRvIHRoZSBwb29sXG4gICAqL1xuICBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD47XG59XG5cbi8qKlxuICogU2h1ZmZsZSBhbiBhcnJheSBpbi1wbGFjZVxuICovXG5mdW5jdGlvbiBmaXNoZXJZYXRlc1NodWZmbGU8QT4oeHM6IEFbXSkge1xuICBmb3IgKGxldCBpID0geHMubGVuZ3RoIC0gMTsgaSA+PSAxOyBpLS0pIHtcbiAgICBjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogaSk7XG4gICAgY29uc3QgaCA9IHhzW2pdO1xuICAgIHhzW2pdID0geHNbaV07XG4gICAgeHNbaV0gPSBoO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const RESOURCES_DIR: string;
|
package/lib/resources.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RESOURCES_DIR = void 0;
|
|
4
|
+
const path = require("path");
|
|
5
|
+
exports.RESOURCES_DIR = path.resolve(__dirname, '..', 'resources');
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZCQUE2QjtBQUVoQixRQUFBLGFBQWEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG5leHBvcnQgY29uc3QgUkVTT1VSQ0VTX0RJUiA9IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICdyZXNvdXJjZXMnKTtcblxuIl19
|