@aws-cdk-testing/cli-integ 3.0.1 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/NOTICE +1 -1
  2. package/lib/aws.js +2 -2
  3. package/lib/aws.ts +1 -1
  4. package/lib/integ-test.js +37 -6
  5. package/lib/integ-test.ts +42 -5
  6. package/lib/shell.d.ts +5 -2
  7. package/lib/shell.js +16 -8
  8. package/lib/shell.ts +16 -9
  9. package/lib/with-cdk-app.d.ts +10 -2
  10. package/lib/with-cdk-app.js +17 -41
  11. package/lib/with-cdk-app.ts +27 -51
  12. package/lib/with-cli-lib.d.ts +2 -2
  13. package/lib/with-cli-lib.js +7 -1
  14. package/lib/with-cli-lib.ts +11 -3
  15. package/lib/with-sam.js +26 -21
  16. package/lib/with-sam.ts +23 -21
  17. package/package.json +7 -7
  18. package/resources/cdk-apps/app/app.js +3 -3
  19. package/resources/cdk-apps/rollback-test-app/app.js +1 -1
  20. package/resources/cdk-apps/sam_cdk_integ_app/lib/test-stack.js +3 -1
  21. package/resources/cdk-apps/sam_cdk_integ_app/src/docker/DockerImageFunctionConstruct/Dockerfile +2 -0
  22. package/resources/cli-regression-patches/v1.130.0/bootstrapping.integtest.js +1 -1
  23. package/tests/cli-integ-tests/bootstrapping.integtest.js +20 -1
  24. package/tests/cli-integ-tests/bootstrapping.integtest.ts +25 -0
  25. package/tests/cli-integ-tests/cli.integtest.js +57 -2
  26. package/tests/cli-integ-tests/cli.integtest.ts +64 -2
  27. package/tests/init-go/init-go.integtest.js +7 -2
  28. package/tests/init-go/init-go.integtest.ts +6 -1
  29. package/tests/init-typescript-app/init-typescript-app.integtest.js +3 -3
  30. package/tests/init-typescript-app/init-typescript-app.integtest.ts +4 -3
  31. package/tests/uberpackage/uberpackage.integtest.js +2 -2
  32. package/tests/uberpackage/uberpackage.integtest.ts +2 -2
  33. package/bin/query-github.ts +0 -56
  34. package/bin/run-suite.ts +0 -140
  35. package/bin/stage-distribution.ts +0 -267
  36. package/bin/test-root.ts +0 -3
@@ -363,7 +363,8 @@ integTest('doubly nested stack',
363
363
  await fixture.cdkDeploy('with-doubly-nested-stack', {
364
364
  captureStderr: false,
365
365
  });
366
- }));
366
+ }),
367
+ );
367
368
 
368
369
  integTest(
369
370
  'nested stack with parameters',
@@ -406,7 +407,7 @@ integTest(
406
407
  );
407
408
  expect(response.Stacks?.[0].StackStatus).toEqual('REVIEW_IN_PROGRESS');
408
409
 
409
- //verify a change set was created with the provided name
410
+ // verify a change set was created with the provided name
410
411
  const changeSetResponse = await fixture.aws.cloudFormation.send(
411
412
  new ListChangeSetsCommand({
412
413
  StackName: stackArn,
@@ -487,6 +488,65 @@ integTest(
487
488
  }),
488
489
  );
489
490
 
491
+ integTest('deploy with import-existing-resources true', withDefaultFixture(async (fixture) => {
492
+ const stackArn = await fixture.cdkDeploy('test-2', {
493
+ options: ['--no-execute', '--import-existing-resources'],
494
+ captureStderr: false,
495
+ });
496
+ // verify that we only deployed a single stack (there's a single ARN in the output)
497
+ expect(stackArn.split('\n').length).toEqual(1);
498
+
499
+ const response = await fixture.aws.cloudFormation.send(new DescribeStacksCommand({
500
+ StackName: stackArn,
501
+ }));
502
+ expect(response.Stacks?.[0].StackStatus).toEqual('REVIEW_IN_PROGRESS');
503
+
504
+ // verify a change set was successfully created
505
+ // Here, we do not test whether a resource is actually imported, because that is a CloudFormation feature, not a CDK feature.
506
+ const changeSetResponse = await fixture.aws.cloudFormation.send(new ListChangeSetsCommand({
507
+ StackName: stackArn,
508
+ }));
509
+ const changeSets = changeSetResponse.Summaries || [];
510
+ expect(changeSets.length).toEqual(1);
511
+ expect(changeSets[0].Status).toEqual('CREATE_COMPLETE');
512
+ expect(changeSets[0].ImportExistingResources).toEqual(true);
513
+ }));
514
+
515
+ integTest('deploy without import-existing-resources', withDefaultFixture(async (fixture) => {
516
+ const stackArn = await fixture.cdkDeploy('test-2', {
517
+ options: ['--no-execute'],
518
+ captureStderr: false,
519
+ });
520
+ // verify that we only deployed a single stack (there's a single ARN in the output)
521
+ expect(stackArn.split('\n').length).toEqual(1);
522
+
523
+ const response = await fixture.aws.cloudFormation.send(new DescribeStacksCommand({
524
+ StackName: stackArn,
525
+ }));
526
+ expect(response.Stacks?.[0].StackStatus).toEqual('REVIEW_IN_PROGRESS');
527
+
528
+ // verify a change set was successfully created and ImportExistingResources = false
529
+ const changeSetResponse = await fixture.aws.cloudFormation.send(new ListChangeSetsCommand({
530
+ StackName: stackArn,
531
+ }));
532
+ const changeSets = changeSetResponse.Summaries || [];
533
+ expect(changeSets.length).toEqual(1);
534
+ expect(changeSets[0].Status).toEqual('CREATE_COMPLETE');
535
+ expect(changeSets[0].ImportExistingResources).toEqual(false);
536
+ }));
537
+
538
+ integTest('deploy with method=direct and import-existing-resources fails', withDefaultFixture(async (fixture) => {
539
+ const stackName = 'iam-test';
540
+ await expect(fixture.cdkDeploy(stackName, {
541
+ options: ['--import-existing-resources', '--method=direct'],
542
+ })).rejects.toThrow('exited with error');
543
+
544
+ // Ensure stack was not deployed
545
+ await expect(fixture.aws.cloudFormation.send(new DescribeStacksCommand({
546
+ StackName: fixture.fullStackName(stackName),
547
+ }))).rejects.toThrow('does not exist');
548
+ }));
549
+
490
550
  integTest(
491
551
  'update to stack in ROLLBACK_COMPLETE state will delete stack and create a new one',
492
552
  withDefaultFixture(async (fixture) => {
@@ -2488,6 +2548,8 @@ integTest(
2488
2548
  // THEN
2489
2549
  const expectedSubstring = 'Resource is not in the expected state due to waiter status: TIMEOUT';
2490
2550
  expect(deployOutput).toContain(expectedSubstring);
2551
+ expect(deployOutput).toContain('Observed responses:');
2552
+ expect(deployOutput).toContain('200: OK');
2491
2553
  expect(deployOutput).not.toContain('hotswapped!');
2492
2554
  }),
2493
2555
  );
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const lib_1 = require("../../lib");
4
4
  ['app', 'sample-app'].forEach(template => {
5
5
  (0, lib_1.integTest)(`init go ${template}`, (0, lib_1.withTemporaryDirectory)((0, lib_1.withPackages)(async (context) => {
6
+ var _a;
6
7
  const isCanary = !!process.env.IS_CANARY;
7
8
  context.packages.assertJsiiPackagesAvailable();
8
9
  const shell = lib_1.ShellHelper.fromContext(context);
@@ -11,11 +12,15 @@ const lib_1 = require("../../lib");
11
12
  // Canaries will use the generated go.mod as is
12
13
  // For pipeline tests we replace the source with the locally build one
13
14
  if (!isCanary) {
14
- await shell.shell(['go', 'mod', 'edit', '-replace', 'github.com/aws/aws-cdk-go/awscdk/v2=$CODEBUILD_SRC_DIR/go/awscdk']);
15
+ const dir = (_a = process.env.CODEBUILD_SRC_DIR) !== null && _a !== void 0 ? _a : process.env.GITHUB_WORKSPACE;
16
+ if (!dir) {
17
+ throw new Error('Cannot figure out CI system root directory');
18
+ }
19
+ await shell.shell(['go', 'mod', 'edit', '-replace', `github.com/aws/aws-cdk-go/awscdk/v2=${dir}/go/awscdk`]);
15
20
  }
16
21
  await shell.shell(['go', 'mod', 'tidy']);
17
22
  await shell.shell(['go', 'test']);
18
23
  await shell.shell(['cdk', 'synth']);
19
24
  })));
20
25
  });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1nby5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbml0LWdvLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUF5RjtBQUV6RixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFDdkMsSUFBQSxlQUFTLEVBQUMsV0FBVyxRQUFRLEVBQUUsRUFBRSxJQUFBLDRCQUFzQixFQUFDLElBQUEsa0JBQVksRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDckYsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxRQUFRLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUUvQyxNQUFNLEtBQUssR0FBRyxpQkFBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUUxQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUV6RCwrQ0FBK0M7UUFDL0Msc0VBQXNFO1FBQ3RFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxrRUFBa0UsQ0FBQyxDQUFDLENBQUM7UUFDM0gsQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6QyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNsQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludGVnVGVzdCwgd2l0aFRlbXBvcmFyeURpcmVjdG9yeSwgU2hlbGxIZWxwZXIsIHdpdGhQYWNrYWdlcyB9IGZyb20gJy4uLy4uL2xpYic7XG5cblsnYXBwJywgJ3NhbXBsZS1hcHAnXS5mb3JFYWNoKHRlbXBsYXRlID0+IHtcbiAgaW50ZWdUZXN0KGBpbml0IGdvICR7dGVtcGxhdGV9YCwgd2l0aFRlbXBvcmFyeURpcmVjdG9yeSh3aXRoUGFja2FnZXMoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICBjb25zdCBpc0NhbmFyeSA9ICEhcHJvY2Vzcy5lbnYuSVNfQ0FOQVJZO1xuICAgIGNvbnRleHQucGFja2FnZXMuYXNzZXJ0SnNpaVBhY2thZ2VzQXZhaWxhYmxlKCk7XG5cbiAgICBjb25zdCBzaGVsbCA9IFNoZWxsSGVscGVyLmZyb21Db250ZXh0KGNvbnRleHQpO1xuICAgIGF3YWl0IGNvbnRleHQucGFja2FnZXMubWFrZUNsaUF2YWlsYWJsZSgpO1xuXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnaW5pdCcsICctbCcsICdnbycsIHRlbXBsYXRlXSk7XG5cbiAgICAvLyBDYW5hcmllcyB3aWxsIHVzZSB0aGUgZ2VuZXJhdGVkIGdvLm1vZCBhcyBpc1xuICAgIC8vIEZvciBwaXBlbGluZSB0ZXN0cyB3ZSByZXBsYWNlIHRoZSBzb3VyY2Ugd2l0aCB0aGUgbG9jYWxseSBidWlsZCBvbmVcbiAgICBpZiAoIWlzQ2FuYXJ5KSB7XG4gICAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ2dvJywgJ21vZCcsICdlZGl0JywgJy1yZXBsYWNlJywgJ2dpdGh1Yi5jb20vYXdzL2F3cy1jZGstZ28vYXdzY2RrL3YyPSRDT0RFQlVJTERfU1JDX0RJUi9nby9hd3NjZGsnXSk7XG4gICAgfVxuXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydnbycsICdtb2QnLCAndGlkeSddKTtcbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ2dvJywgJ3Rlc3QnXSk7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnc3ludGgnXSk7XG4gIH0pKSk7XG59KTtcbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC1nby5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbml0LWdvLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUF5RjtBQUV6RixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFDdkMsSUFBQSxlQUFTLEVBQUMsV0FBVyxRQUFRLEVBQUUsRUFBRSxJQUFBLDRCQUFzQixFQUFDLElBQUEsa0JBQVksRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7O1FBQ3JGLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztRQUN6QyxPQUFPLENBQUMsUUFBUSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFFL0MsTUFBTSxLQUFLLEdBQUcsaUJBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFMUMsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFekQsK0NBQStDO1FBQy9DLHNFQUFzRTtRQUN0RSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLEdBQUcsR0FBRyxNQUFBLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLG1DQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUM7WUFDMUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUNoRSxDQUFDO1lBRUQsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLHVDQUF1QyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDL0csQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN6QyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNsQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludGVnVGVzdCwgd2l0aFRlbXBvcmFyeURpcmVjdG9yeSwgU2hlbGxIZWxwZXIsIHdpdGhQYWNrYWdlcyB9IGZyb20gJy4uLy4uL2xpYic7XG5cblsnYXBwJywgJ3NhbXBsZS1hcHAnXS5mb3JFYWNoKHRlbXBsYXRlID0+IHtcbiAgaW50ZWdUZXN0KGBpbml0IGdvICR7dGVtcGxhdGV9YCwgd2l0aFRlbXBvcmFyeURpcmVjdG9yeSh3aXRoUGFja2FnZXMoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICBjb25zdCBpc0NhbmFyeSA9ICEhcHJvY2Vzcy5lbnYuSVNfQ0FOQVJZO1xuICAgIGNvbnRleHQucGFja2FnZXMuYXNzZXJ0SnNpaVBhY2thZ2VzQXZhaWxhYmxlKCk7XG5cbiAgICBjb25zdCBzaGVsbCA9IFNoZWxsSGVscGVyLmZyb21Db250ZXh0KGNvbnRleHQpO1xuICAgIGF3YWl0IGNvbnRleHQucGFja2FnZXMubWFrZUNsaUF2YWlsYWJsZSgpO1xuXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnaW5pdCcsICctbCcsICdnbycsIHRlbXBsYXRlXSk7XG5cbiAgICAvLyBDYW5hcmllcyB3aWxsIHVzZSB0aGUgZ2VuZXJhdGVkIGdvLm1vZCBhcyBpc1xuICAgIC8vIEZvciBwaXBlbGluZSB0ZXN0cyB3ZSByZXBsYWNlIHRoZSBzb3VyY2Ugd2l0aCB0aGUgbG9jYWxseSBidWlsZCBvbmVcbiAgICBpZiAoIWlzQ2FuYXJ5KSB7XG4gICAgICBjb25zdCBkaXIgPSBwcm9jZXNzLmVudi5DT0RFQlVJTERfU1JDX0RJUiA/PyBwcm9jZXNzLmVudi5HSVRIVUJfV09SS1NQQUNFO1xuICAgICAgaWYgKCFkaXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZmlndXJlIG91dCBDSSBzeXN0ZW0gcm9vdCBkaXJlY3RvcnknKTtcbiAgICAgIH1cblxuICAgICAgYXdhaXQgc2hlbGwuc2hlbGwoWydnbycsICdtb2QnLCAnZWRpdCcsICctcmVwbGFjZScsIGBnaXRodWIuY29tL2F3cy9hd3MtY2RrLWdvL2F3c2Nkay92Mj0ke2Rpcn0vZ28vYXdzY2RrYF0pO1xuICAgIH1cblxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnZ28nLCAnbW9kJywgJ3RpZHknXSk7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydnbycsICd0ZXN0J10pO1xuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnY2RrJywgJ3N5bnRoJ10pO1xuICB9KSkpO1xufSk7XG4iXX0=
@@ -13,7 +13,12 @@ import { integTest, withTemporaryDirectory, ShellHelper, withPackages } from '..
13
13
  // Canaries will use the generated go.mod as is
14
14
  // For pipeline tests we replace the source with the locally build one
15
15
  if (!isCanary) {
16
- await shell.shell(['go', 'mod', 'edit', '-replace', 'github.com/aws/aws-cdk-go/awscdk/v2=$CODEBUILD_SRC_DIR/go/awscdk']);
16
+ const dir = process.env.CODEBUILD_SRC_DIR ?? process.env.GITHUB_WORKSPACE;
17
+ if (!dir) {
18
+ throw new Error('Cannot figure out CI system root directory');
19
+ }
20
+
21
+ await shell.shell(['go', 'mod', 'edit', '-replace', `github.com/aws/aws-cdk-go/awscdk/v2=${dir}/go/awscdk`]);
17
22
  }
18
23
 
19
24
  await shell.shell(['go', 'mod', 'tidy']);
@@ -19,8 +19,6 @@ const npm_1 = require("../../lib/npm");
19
19
  // Same as https://github.com/DefinitelyTyped/DefinitelyTyped?tab=readme-ov-file#support-window
20
20
  const TYPESCRIPT_VERSION_AGE_DAYS = 2 * 365;
21
21
  const TYPESCRIPT_VERSIONS = (0, npm_1.typescriptVersionsYoungerThanDaysSync)(TYPESCRIPT_VERSION_AGE_DAYS, (0, npm_1.typescriptVersionsSync)());
22
- // eslint-disable-next-line no-console
23
- console.log(TYPESCRIPT_VERSIONS);
24
22
  /**
25
23
  * Test our generated code with various versions of TypeScript
26
24
  */
@@ -35,6 +33,8 @@ TYPESCRIPT_VERSIONS.forEach(tsVersion => {
35
33
  // still want to test with older versions as well.
36
34
  await removeDevDependencies(context);
37
35
  await shell.shell(['npm', 'install', '--save-dev', `typescript@${tsVersion}`]);
36
+ // After we've removed devDependencies we need to re-install ts-node because it's necessary for `cdk synth`
37
+ await shell.shell(['npm', 'install', '--save-dev', `ts-node@^10`]);
38
38
  await shell.shell(['npm', 'install']); // Older versions of npm require this to be a separate step from the one above
39
39
  await shell.shell(['npx', 'tsc', '--version']);
40
40
  await shell.shell(['npm', 'prune']);
@@ -51,4 +51,4 @@ async function removeDevDependencies(context) {
51
51
  delete pj.devDependencies;
52
52
  await fs_1.promises.writeFile(filename, JSON.stringify(pj, undefined, 2), { encoding: 'utf-8' });
53
53
  }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC10eXBlc2NyaXB0LWFwcC5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbml0LXR5cGVzY3JpcHQtYXBwLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJCQUFvQztBQUNwQyw2QkFBNkI7QUFDN0IsbUNBQW9IO0FBQ3BILHVDQUE4RjtBQUU5RixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFDdkMsSUFBQSxlQUFTLEVBQUMsbUJBQW1CLFFBQVEsRUFBRSxFQUFFLElBQUEsNEJBQXNCLEVBQUMsSUFBQSxrQkFBWSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUM3RixNQUFNLEtBQUssR0FBRyxpQkFBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUUxQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUVqRSxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNwQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9EQUFvRDtRQUN0RixNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDM0MsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRTFDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxP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Q0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQ3hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhUZW1wb3JhcnlEaXJlY3RvcnksIFNoZWxsSGVscGVyLCB3aXRoUGFja2FnZXMsIFRlbXBvcmFyeURpcmVjdG9yeUNvbnRleHQgfSBmcm9tICcuLi8uLi9saWInO1xuaW1wb3J0IHsgdHlwZXNjcmlwdFZlcnNpb25zU3luYywgdHlwZXNjcmlwdFZlcnNpb25zWW91bmdlclRoYW5EYXlzU3luYyB9IGZyb20gJy4uLy4uL2xpYi9ucG0nO1xuXG5bJ2FwcCcsICdzYW1wbGUtYXBwJ10uZm9yRWFjaCh0ZW1wbGF0ZSA9PiB7XG4gIGludGVnVGVzdChgdHlwZXNjcmlwdCBpbml0ICR7dGVtcGxhdGV9YCwgd2l0aFRlbXBvcmFyeURpcmVjdG9yeSh3aXRoUGFja2FnZXMoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICBjb25zdCBzaGVsbCA9IFNoZWxsSGVscGVyLmZyb21Db250ZXh0KGNvbnRleHQpO1xuICAgIGF3YWl0IGNvbnRleHQucGFja2FnZXMubWFrZUNsaUF2YWlsYWJsZSgpO1xuXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnaW5pdCcsICctbCcsICd0eXBlc2NyaXB0JywgdGVtcGxhdGVdKTtcblxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ3BydW5lJ10pO1xuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ2xzJ10pOyAvLyB0aGlzIHdpbGwgZmFpbCBpZiB3ZSBoYXZlIHVubWV0IHBlZXIgZGVwZW5kZW5jaWVzXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAncnVuJywgJ2J1aWxkJ10pO1xuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ3J1bicsICd0ZXN0J10pO1xuXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnc3ludGgnXSk7XG4gIH0pKSk7XG59KTtcblxuLy8gU2FtZSBhcyBodHRwczovL2dpdGh1Yi5jb20vRGVmaW5pdGVseVR5cGVkL0RlZmluaXRlbHlUeXBlZD90YWI9cmVhZG1lLW92LWZpbGUjc3VwcG9ydC13aW5kb3dcbmNvbnN0IFRZUEVTQ1JJUFRfVkVSU0lPTl9BR0VfREFZUyA9IDIgKiAzNjU7XG5cbmNvbnN0IFRZUEVTQ1JJUFRfVkVSU0lPTlMgPSB0eXBlc2NyaXB0VmVyc2lvbnNZb3VuZ2VyVGhhbkRheXNTeW5jKFRZUEVTQ1JJUFRfVkVSU0lPTl9BR0VfREFZUywgdHlwZXNjcmlwdFZlcnNpb25zU3luYygpKTtcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbmNvbnNvbGUubG9nKFRZUEVTQ1JJUFRfVkVSU0lPTlMpO1xuXG4vKipcbiAqIFRlc3Qgb3VyIGdlbmVyYXRlZCBjb2RlIHdpdGggdmFyaW91cyB2ZXJzaW9ucyBvZiBUeXBlU2NyaXB0XG4gKi9cblRZUEVTQ1JJUFRfVkVSU0lPTlMuZm9yRWFjaCh0c1ZlcnNpb24gPT4ge1xuICBpbnRlZ1Rlc3QoYHR5cGVzY3JpcHQgJHt0c1ZlcnNpb259IGluaXQgYXBwYCwgd2l0aFRlbXBvcmFyeURpcmVjdG9yeSh3aXRoUGFja2FnZXMoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICBjb25zdCBzaGVsbCA9IFNoZWxsSGVscGVyLmZyb21Db250ZXh0KGNvbnRleHQpO1xuICAgIGF3YWl0IGNvbnRleHQucGFja2FnZXMubWFrZUNsaUF2YWlsYWJsZSgpO1xuXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydub2RlJywgJy0tdmVyc2lvbiddKTtcbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICctLXZlcnNpb24nXSk7XG5cbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ2NkaycsICdpbml0JywgJy1sJywgJ3R5cGVzY3JpcHQnLCAnYXBwJywgJy0tZ2VuZXJhdGUtb25seSddKTtcblxuICAgIC8vIE5lY2Vzc2FyeSBiZWNhdXNlIHJlY2VudCB2ZXJzaW9ucyBvZiB0cy1qZXN0IHJlcXVpcmUgVHlwZVNjcmlwdD49NC4zIGJ1dCB3ZVxuICAgIC8vIHN0aWxsIHdhbnQgdG8gdGVzdCB3aXRoIG9sZGVyIHZlcnNpb25zIGFzIHdlbGwuXG4gICAgYXdhaXQgcmVtb3ZlRGV2RGVwZW5kZW5jaWVzKGNvbnRleHQpO1xuXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAnaW5zdGFsbCcsICctLXNhdmUtZGV2JywgYHR5cGVzY3JpcHRAJHt0c1ZlcnNpb259YF0pO1xuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ2luc3RhbGwnXSk7IC8vIE9sZGVyIHZlcnNpb25zIG9mIG5wbSByZXF1aXJlIHRoaXMgdG8gYmUgYSBzZXBhcmF0ZSBzdGVwIGZyb20gdGhlIG9uZSBhYm92ZVxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnB4JywgJ3RzYycsICctLXZlcnNpb24nXSk7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAncHJ1bmUnXSk7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAnbHMnXSk7IC8vIHRoaXMgd2lsbCBmYWlsIGlmIHdlIGhhdmUgdW5tZXQgcGVlciBkZXBlbmRlbmNpZXNcblxuICAgIC8vIFdlIGp1c3QgcmVtb3ZlZCB0aGUgJ2plc3QnIGRlcGVuZGVuY3kgc28gcmVtb3ZlIHRoZSB0ZXN0cyBhcyB3ZWxsIGJlY2F1c2UgdGhleSB3b24ndCBjb21waWxlXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydybScsICctcmYnLCAndGVzdC8nXSk7XG5cbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdydW4nLCAnYnVpbGQnXSk7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnc3ludGgnXSk7XG4gIH0pKSk7XG59KTtcblxuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlRGV2RGVwZW5kZW5jaWVzKGNvbnRleHQ6IFRlbXBvcmFyeURpcmVjdG9yeUNvbnRleHQpIHtcbiAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLmpvaW4oY29udGV4dC5pbnRlZ1Rlc3REaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgY29uc3QgcGogPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVuYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pKTtcbiAgZGVsZXRlIHBqLmRldkRlcGVuZGVuY2llcztcbiAgYXdhaXQgZnMud3JpdGVGaWxlKGZpbGVuYW1lLCBKU09OLnN0cmluZ2lmeShwaiwgdW5kZWZpbmVkLCAyKSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbn1cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC10eXBlc2NyaXB0LWFwcC5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbml0LXR5cGVzY3JpcHQtYXBwLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJCQUFvQztBQUNwQyw2QkFBNkI7QUFDN0IsbUNBQW9IO0FBQ3BILHVDQUE4RjtBQUU5RixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFDdkMsSUFBQSxlQUFTLEVBQUMsbUJBQW1CLFFBQVEsRUFBRSxFQUFFLElBQUEsNEJBQXNCLEVBQUMsSUFBQSxrQkFBWSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUM3RixNQUFNLEtBQUssR0FBRyxpQkFBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxNQUFNLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUUxQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUVqRSxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNwQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9EQUFvRDtRQUN0RixNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDM0MsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRTFDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMsQ0FBQyxDQUFDO0FBRUgsK0ZBQStGO0FBQy9GLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUU1QyxNQUFNLG1CQUFtQixHQUFHLElBQUEsMkNBQXFDLEVBQUMsMkJBQTJCLEVBQUUsSUFBQSw0QkFBc0IsR0FBRSxDQUFDLENBQUM7QUFFekg7O0dBRUc7QUFDSCxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7SUFDdEMsSUFBQSxlQUFTLEVBQUMsY0FBYyxTQUFTLFdBQVcsRUFBRSxJQUFBLDRCQUFzQixFQUFDLElBQUEsa0JBQVksRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDbEcsTUFBTSxLQUFLLEdBQUcsaUJBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFMUMsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFeEMsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7UUFFakYsOEVBQThFO1FBQzlFLGtEQUFrRDtRQUNsRCxNQUFNLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXJDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGNBQWMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRS9FLDJHQUEyRztRQUMzRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBRW5FLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsOEVBQThFO1FBQ3JILE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMvQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNwQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9EQUFvRDtRQUV0RiwrRkFBK0Y7UUFDL0YsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRTFDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMzQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQztBQUVILEtBQUssVUFBVSxxQkFBcUIsQ0FBQyxPQUFrQztJQUNyRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDakUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLGFBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRSxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDMUIsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUN4RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoVGVtcG9yYXJ5RGlyZWN0b3J5LCBTaGVsbEhlbHBlciwgd2l0aFBhY2thZ2VzLCBUZW1wb3JhcnlEaXJlY3RvcnlDb250ZXh0IH0gZnJvbSAnLi4vLi4vbGliJztcbmltcG9ydCB7IHR5cGVzY3JpcHRWZXJzaW9uc1N5bmMsIHR5cGVzY3JpcHRWZXJzaW9uc1lvdW5nZXJUaGFuRGF5c1N5bmMgfSBmcm9tICcuLi8uLi9saWIvbnBtJztcblxuWydhcHAnLCAnc2FtcGxlLWFwcCddLmZvckVhY2godGVtcGxhdGUgPT4ge1xuICBpbnRlZ1Rlc3QoYHR5cGVzY3JpcHQgaW5pdCAke3RlbXBsYXRlfWAsIHdpdGhUZW1wb3JhcnlEaXJlY3Rvcnkod2l0aFBhY2thZ2VzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgY29uc3Qgc2hlbGwgPSBTaGVsbEhlbHBlci5mcm9tQ29udGV4dChjb250ZXh0KTtcbiAgICBhd2FpdCBjb250ZXh0LnBhY2thZ2VzLm1ha2VDbGlBdmFpbGFibGUoKTtcblxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnY2RrJywgJ2luaXQnLCAnLWwnLCAndHlwZXNjcmlwdCcsIHRlbXBsYXRlXSk7XG5cbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdwcnVuZSddKTtcbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdscyddKTsgLy8gdGhpcyB3aWxsIGZhaWwgaWYgd2UgaGF2ZSB1bm1ldCBwZWVyIGRlcGVuZGVuY2llc1xuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ3J1bicsICdidWlsZCddKTtcbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdydW4nLCAndGVzdCddKTtcblxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnY2RrJywgJ3N5bnRoJ10pO1xuICB9KSkpO1xufSk7XG5cbi8vIFNhbWUgYXMgaHR0cHM6Ly9naXRodWIuY29tL0RlZmluaXRlbHlUeXBlZC9EZWZpbml0ZWx5VHlwZWQ/dGFiPXJlYWRtZS1vdi1maWxlI3N1cHBvcnQtd2luZG93XG5jb25zdCBUWVBFU0NSSVBUX1ZFUlNJT05fQUdFX0RBWVMgPSAyICogMzY1O1xuXG5jb25zdCBUWVBFU0NSSVBUX1ZFUlNJT05TID0gdHlwZXNjcmlwdFZlcnNpb25zWW91bmdlclRoYW5EYXlzU3luYyhUWVBFU0NSSVBUX1ZFUlNJT05fQUdFX0RBWVMsIHR5cGVzY3JpcHRWZXJzaW9uc1N5bmMoKSk7XG5cbi8qKlxuICogVGVzdCBvdXIgZ2VuZXJhdGVkIGNvZGUgd2l0aCB2YXJpb3VzIHZlcnNpb25zIG9mIFR5cGVTY3JpcHRcbiAqL1xuVFlQRVNDUklQVF9WRVJTSU9OUy5mb3JFYWNoKHRzVmVyc2lvbiA9PiB7XG4gIGludGVnVGVzdChgdHlwZXNjcmlwdCAke3RzVmVyc2lvbn0gaW5pdCBhcHBgLCB3aXRoVGVtcG9yYXJ5RGlyZWN0b3J5KHdpdGhQYWNrYWdlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHNoZWxsID0gU2hlbGxIZWxwZXIuZnJvbUNvbnRleHQoY29udGV4dCk7XG4gICAgYXdhaXQgY29udGV4dC5wYWNrYWdlcy5tYWtlQ2xpQXZhaWxhYmxlKCk7XG5cbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25vZGUnLCAnLS12ZXJzaW9uJ10pO1xuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJy0tdmVyc2lvbiddKTtcblxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnY2RrJywgJ2luaXQnLCAnLWwnLCAndHlwZXNjcmlwdCcsICdhcHAnLCAnLS1nZW5lcmF0ZS1vbmx5J10pO1xuXG4gICAgLy8gTmVjZXNzYXJ5IGJlY2F1c2UgcmVjZW50IHZlcnNpb25zIG9mIHRzLWplc3QgcmVxdWlyZSBUeXBlU2NyaXB0Pj00LjMgYnV0IHdlXG4gICAgLy8gc3RpbGwgd2FudCB0byB0ZXN0IHdpdGggb2xkZXIgdmVyc2lvbnMgYXMgd2VsbC5cbiAgICBhd2FpdCByZW1vdmVEZXZEZXBlbmRlbmNpZXMoY29udGV4dCk7XG5cbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdpbnN0YWxsJywgJy0tc2F2ZS1kZXYnLCBgdHlwZXNjcmlwdEAke3RzVmVyc2lvbn1gXSk7XG5cbiAgICAvLyBBZnRlciB3ZSd2ZSByZW1vdmVkIGRldkRlcGVuZGVuY2llcyB3ZSBuZWVkIHRvIHJlLWluc3RhbGwgdHMtbm9kZSBiZWNhdXNlIGl0J3MgbmVjZXNzYXJ5IGZvciBgY2RrIHN5bnRoYFxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ2luc3RhbGwnLCAnLS1zYXZlLWRldicsIGB0cy1ub2RlQF4xMGBdKTtcblxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ2luc3RhbGwnXSk7IC8vIE9sZGVyIHZlcnNpb25zIG9mIG5wbSByZXF1aXJlIHRoaXMgdG8gYmUgYSBzZXBhcmF0ZSBzdGVwIGZyb20gdGhlIG9uZSBhYm92ZVxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnB4JywgJ3RzYycsICctLXZlcnNpb24nXSk7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAncHJ1bmUnXSk7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAnbHMnXSk7IC8vIHRoaXMgd2lsbCBmYWlsIGlmIHdlIGhhdmUgdW5tZXQgcGVlciBkZXBlbmRlbmNpZXNcblxuICAgIC8vIFdlIGp1c3QgcmVtb3ZlZCB0aGUgJ2plc3QnIGRlcGVuZGVuY3kgc28gcmVtb3ZlIHRoZSB0ZXN0cyBhcyB3ZWxsIGJlY2F1c2UgdGhleSB3b24ndCBjb21waWxlXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydybScsICctcmYnLCAndGVzdC8nXSk7XG5cbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdydW4nLCAnYnVpbGQnXSk7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnc3ludGgnXSk7XG4gIH0pKSk7XG59KTtcblxuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlRGV2RGVwZW5kZW5jaWVzKGNvbnRleHQ6IFRlbXBvcmFyeURpcmVjdG9yeUNvbnRleHQpIHtcbiAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLmpvaW4oY29udGV4dC5pbnRlZ1Rlc3REaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgY29uc3QgcGogPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVuYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pKTtcbiAgZGVsZXRlIHBqLmRldkRlcGVuZGVuY2llcztcbiAgYXdhaXQgZnMud3JpdGVGaWxlKGZpbGVuYW1lLCBKU09OLnN0cmluZ2lmeShwaiwgdW5kZWZpbmVkLCAyKSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcbn1cbiJdfQ==
@@ -24,9 +24,6 @@ const TYPESCRIPT_VERSION_AGE_DAYS = 2 * 365;
24
24
 
25
25
  const TYPESCRIPT_VERSIONS = typescriptVersionsYoungerThanDaysSync(TYPESCRIPT_VERSION_AGE_DAYS, typescriptVersionsSync());
26
26
 
27
- // eslint-disable-next-line no-console
28
- console.log(TYPESCRIPT_VERSIONS);
29
-
30
27
  /**
31
28
  * Test our generated code with various versions of TypeScript
32
29
  */
@@ -45,6 +42,10 @@ TYPESCRIPT_VERSIONS.forEach(tsVersion => {
45
42
  await removeDevDependencies(context);
46
43
 
47
44
  await shell.shell(['npm', 'install', '--save-dev', `typescript@${tsVersion}`]);
45
+
46
+ // After we've removed devDependencies we need to re-install ts-node because it's necessary for `cdk synth`
47
+ await shell.shell(['npm', 'install', '--save-dev', `ts-node@^10`]);
48
+
48
49
  await shell.shell(['npm', 'install']); // Older versions of npm require this to be a separate step from the one above
49
50
  await shell.shell(['npx', 'tsc', '--version']);
50
51
  await shell.shell(['npm', 'prune']);
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const lib_1 = require("../../lib");
4
4
  jest.setTimeout(600000);
5
5
  describe('uberpackage', () => {
6
- (0, lib_1.integTest)('works with cloudformation-include', (0, lib_1.withMonolithicCfnIncludeCdkApp)(async (fixture) => {
6
+ (0, lib_1.integTest)('works with cloudformation-include', (0, lib_1.withSpecificFixture)('cfn-include-app', async (fixture) => {
7
7
  fixture.log('Starting test of cfn-include with monolithic CDK');
8
8
  await fixture.cdkSynth();
9
9
  }));
10
10
  });
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWJlcnBhY2thZ2UuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidWJlcnBhY2thZ2UuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQXNFO0FBRXRFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTyxDQUFDLENBQUM7QUFFekIsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7SUFDM0IsSUFBQSxlQUFTLEVBQUMsbUNBQW1DLEVBQUUsSUFBQSxvQ0FBOEIsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDOUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludGVnVGVzdCwgd2l0aE1vbm9saXRoaWNDZm5JbmNsdWRlQ2RrQXBwIH0gZnJvbSAnLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDYwMF8wMDApO1xuXG5kZXNjcmliZSgndWJlcnBhY2thZ2UnLCAoKSA9PiB7XG4gIGludGVnVGVzdCgnd29ya3Mgd2l0aCBjbG91ZGZvcm1hdGlvbi1pbmNsdWRlJywgd2l0aE1vbm9saXRoaWNDZm5JbmNsdWRlQ2RrQXBwKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgZml4dHVyZS5sb2coJ1N0YXJ0aW5nIHRlc3Qgb2YgY2ZuLWluY2x1ZGUgd2l0aCBtb25vbGl0aGljIENESycpO1xuXG4gICAgYXdhaXQgZml4dHVyZS5jZGtTeW50aCgpO1xuICB9KSk7XG59KTtcbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWJlcnBhY2thZ2UuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidWJlcnBhY2thZ2UuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUNBQTJEO0FBRTNELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTyxDQUFDLENBQUM7QUFFekIsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7SUFDM0IsSUFBQSxlQUFTLEVBQUMsbUNBQW1DLEVBQUUsSUFBQSx5QkFBbUIsRUFBQyxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDdEcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludGVnVGVzdCwgd2l0aFNwZWNpZmljRml4dHVyZSB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCg2MDBfMDAwKTtcblxuZGVzY3JpYmUoJ3ViZXJwYWNrYWdlJywgKCkgPT4ge1xuICBpbnRlZ1Rlc3QoJ3dvcmtzIHdpdGggY2xvdWRmb3JtYXRpb24taW5jbHVkZScsIHdpdGhTcGVjaWZpY0ZpeHR1cmUoJ2Nmbi1pbmNsdWRlLWFwcCcsIGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgZml4dHVyZS5sb2coJ1N0YXJ0aW5nIHRlc3Qgb2YgY2ZuLWluY2x1ZGUgd2l0aCBtb25vbGl0aGljIENESycpO1xuXG4gICAgYXdhaXQgZml4dHVyZS5jZGtTeW50aCgpO1xuICB9KSk7XG59KTtcbiJdfQ==
@@ -1,9 +1,9 @@
1
- import { integTest, withMonolithicCfnIncludeCdkApp } from '../../lib';
1
+ import { integTest, withSpecificFixture } from '../../lib';
2
2
 
3
3
  jest.setTimeout(600_000);
4
4
 
5
5
  describe('uberpackage', () => {
6
- integTest('works with cloudformation-include', withMonolithicCfnIncludeCdkApp(async (fixture) => {
6
+ integTest('works with cloudformation-include', withSpecificFixture('cfn-include-app', async (fixture) => {
7
7
  fixture.log('Starting test of cfn-include with monolithic CDK');
8
8
 
9
9
  await fixture.cdkSynth();
@@ -1,56 +0,0 @@
1
- import * as yargs from 'yargs';
2
- import { fetchPreviousVersion } from '../lib/github';
3
-
4
- async function main() {
5
- const args = await yargs
6
- .option('token', {
7
- descripton: 'GitHub token (default: from environment GITHUB_TOKEN)',
8
- alias: 't',
9
- type: 'string',
10
- requiresArg: true,
11
- })
12
- .command('last-release', 'Query the last release', cmd => cmd
13
- .option('prior-to', {
14
- description: 'Return the most recent release before the given version',
15
- alias: 'p',
16
- type: 'string',
17
- requiresArg: true,
18
- })
19
- .option('major', {
20
- description: 'Return the most recent release that matches',
21
- alias: 'm',
22
- type: 'string',
23
- requiresArg: true,
24
- }))
25
- .demandCommand()
26
- .help()
27
- .showHelpOnFail(false)
28
- .argv;
29
-
30
- const command = args._[0];
31
-
32
- const token = args.token ?? process.env.GITHUB_TOKEN;
33
- if (!token) {
34
- throw new Error('Either pass --token or set GITHUB_TOKEN.');
35
- }
36
-
37
- switch (command) {
38
- case 'last-release':
39
- if (args['prior-to'] && args.major) {
40
- throw new Error('Cannot pass both `--prior-to and --major at the same time');
41
- }
42
-
43
- // eslint-disable-next-line no-console
44
- console.log(await fetchPreviousVersion(token, {
45
- priorTo: args['prior-to'],
46
- majorVersion: args.major,
47
- }));
48
- break;
49
- }
50
- }
51
-
52
- main().catch(e => {
53
- // eslint-disable-next-line no-console
54
- console.error(e);
55
- process.exitCode = 1;
56
- });
package/bin/run-suite.ts DELETED
@@ -1,140 +0,0 @@
1
- /* eslint-disable no-console */
2
- import * as path from 'path';
3
- import * as jest from 'jest';
4
- import * as yargs from 'yargs';
5
- import { ReleasePackageSourceSetup } from '../lib/package-sources/release-source';
6
- import { RepoPackageSourceSetup, autoFindRoot } from '../lib/package-sources/repo-source';
7
- import { IPackageSourceSetup } from '../lib/package-sources/source';
8
- import { serializeForSubprocess } from '../lib/package-sources/subprocess';
9
-
10
- async function main() {
11
- const args = await yargs
12
- .usage('$0 <SUITENAME>')
13
- .positional('SUITENAME', {
14
- descripton: 'Name of the test suite to run',
15
- type: 'string',
16
- demandOption: true,
17
- })
18
- .option('test', {
19
- descripton: 'Test pattern to selectively run tests',
20
- alias: 't',
21
- type: 'string',
22
- requiresArg: true,
23
- })
24
- .option('test-file', {
25
- description: 'The specific test file to run',
26
- type: 'string',
27
- requiresArg: true,
28
- })
29
- .option('use-source', {
30
- descripton: 'Use TypeScript packages from the given source repository (or "auto")',
31
- alias: 's',
32
- type: 'string',
33
- requiresArg: true,
34
- })
35
- .option('use-cli-release', {
36
- descripton: 'Run the current tests against the CLI at the given version',
37
- alias: 'u',
38
- type: 'string',
39
- requiresArg: true,
40
- })
41
- .option('auto-source', {
42
- alias: 'a',
43
- description: 'Automatically find the source tree from the current working directory',
44
- type: 'boolean',
45
- requiresArg: false,
46
- })
47
- .option('runInBand', {
48
- descripton: 'Run all tests in one Node process',
49
- alias: 'i',
50
- type: 'boolean',
51
- })
52
- .options('framework-version', {
53
- description: 'Framework version to use, if different than the CLI version (not all suites respect this)',
54
- alias: 'f',
55
- type: 'string',
56
- })
57
- .options('verbose', {
58
- alias: 'v',
59
- description: 'Run in verbose mode',
60
- type: 'boolean',
61
- requiresArg: false,
62
- })
63
- .options('passWithNoTests', {
64
- description: 'Allow passing if the test suite is not found (default true when IS_CANARY mode, false otherwise)',
65
- type: 'boolean',
66
- requiresArg: false,
67
- })
68
- .help()
69
- .showHelpOnFail(false)
70
- .argv;
71
-
72
- const suiteName = args._[0] as string;
73
- if (!suiteName) {
74
- throw new Error('Usage: run-suite <SUITENAME>');
75
- }
76
-
77
- let packageSource: undefined | IPackageSourceSetup;
78
- function usePackageSource(s: IPackageSourceSetup) {
79
- if (packageSource) {
80
- throw new Error('Cannot specify two package sources');
81
- }
82
- packageSource = s;
83
- }
84
-
85
- if (args['use-source'] || args['auto-source']) {
86
- if (args['framework-version']) {
87
- throw new Error('Cannot use --framework-version with --use-source');
88
- }
89
-
90
- const root = args['use-source'] && args['use-source'] !== 'auto'
91
- ? args['use-source']
92
- : await autoFindRoot();
93
-
94
- usePackageSource(new RepoPackageSourceSetup(root));
95
- } else if (args['use-cli-release']) {
96
- usePackageSource(new ReleasePackageSourceSetup(args['use-cli-release'], args['framework-version']));
97
- }
98
- if (!packageSource) {
99
- throw new Error('Specify either --use-source or --use-cli-release');
100
- }
101
-
102
- console.log(`Package source: ${packageSource.description}`);
103
- console.log(`Test suite: ${suiteName}`);
104
-
105
- await packageSource.prepare();
106
- serializeForSubprocess(packageSource);
107
-
108
- if (args.verbose) {
109
- process.env.VERBOSE = '1';
110
- }
111
-
112
- // Motivation behind this behavior: when adding a new test suite to the pipeline, because of the way our
113
- // Pipeline package works, the suite would be added to the pipeline AND as a canary immediately. The canary
114
- // would fail until the package was actually released, so for canaries we make an exception so that the initial
115
- // canary would succeed even if the suite wasn't yet available. The fact that the suite is not optional in
116
- // the pipeline protects us from typos.
117
- const passWithNoTests = args.passWithNoTests ?? !!process.env.IS_CANARY;
118
-
119
- // Communicate with the config file (integ.jest.config.js)
120
- process.env.TEST_SUITE_NAME = suiteName;
121
-
122
- try {
123
- await jest.run([
124
- ...args.runInBand ? ['-i'] : [],
125
- ...args.test ? ['-t', args.test] : [],
126
- ...args.verbose ? ['--verbose'] : [],
127
- ...passWithNoTests ? ['--passWithNoTests'] : [],
128
- ...args['test-file'] ? [args['test-file']] : [],
129
- ], path.resolve(__dirname, '..', 'resources', 'integ.jest.config.js'));
130
-
131
- } finally {
132
- await packageSource.cleanup();
133
- }
134
- }
135
-
136
- main().catch(e => {
137
- // eslint-disable-next-line no-console
138
- console.error(e);
139
- process.exitCode = 1;
140
- });