@aws-cdk-testing/cli-integ 3.25.0 → 3.25.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk-testing/cli-integ",
3
- "version": "3.25.0",
3
+ "version": "3.25.1",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
package/package.json CHANGED
@@ -116,7 +116,7 @@
116
116
  "publishConfig": {
117
117
  "access": "public"
118
118
  },
119
- "version": "3.25.0",
119
+ "version": "3.25.1",
120
120
  "types": "lib/index.d.ts",
121
121
  "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
122
122
  }
@@ -5,7 +5,7 @@ const fs = require("fs");
5
5
  const path = require("path");
6
6
  const watch_helpers_1 = require("./watch-helpers");
7
7
  const lib_1 = require("../../../lib");
8
- jest.setTimeout(3 * 60 * 1000); // 3 minutes for watch tests
8
+ jest.setTimeout(5 * 60 * 1000); // 5 minutes for watch tests
9
9
  (0, lib_1.integTest)('cdk watch does NOT detect file changes for excluded patterns', (0, lib_1.withDefaultFixture)(async (fixture) => {
10
10
  // Create a test file that will be watched (for initial deploy)
11
11
  const watchedFile = path.join(fixture.integTestDir, 'watched-file.ts');
@@ -20,12 +20,11 @@ jest.setTimeout(3 * 60 * 1000); // 3 minutes for watch tests
20
20
  fs.writeFileSync(cdkJsonPath, JSON.stringify(cdkJson, null, 2));
21
21
  await fixture.cli.makeCliAvailable();
22
22
  let output = '';
23
- // Start cdk watch with detached process group for clean termination
23
+ // Start cdk watch
24
24
  const watchProcess = child_process.spawn('cdk', [
25
25
  'watch', '--hotswap', '-v', fixture.fullStackName('test-1'),
26
26
  ], {
27
27
  cwd: fixture.integTestDir,
28
- shell: true,
29
28
  stdio: 'pipe',
30
29
  env: { ...process.env, ...fixture.cdkShellEnv() },
31
30
  });
@@ -63,12 +62,8 @@ jest.setTimeout(3 * 60 * 1000); // 3 minutes for watch tests
63
62
  fixture.log('✓ Watch still detects changes to included files');
64
63
  }
65
64
  finally {
66
- try {
67
- watchProcess.kill('SIGTERM');
68
- }
69
- catch {
70
- // process may have already exited
71
- }
65
+ (0, watch_helpers_1.safeKillProcess)(watchProcess);
72
66
  }
67
+ expect.assertions(5);
73
68
  }));
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXdhdGNoLWRldGVjdHMtZmlsZS1jaGFuZ2VzLXdpdGgtZ2xvYi1wYXR0ZXJucy1uZWdhdGl2ZS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstd2F0Y2gtZGV0ZWN0cy1maWxlLWNoYW5nZXMtd2l0aC1nbG9iLXBhdHRlcm5zLW5lZ2F0aXZlLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUErQztBQUMvQyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG1EQUFnRDtBQUNoRCxzQ0FBb0U7QUFFcEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsNEJBQTRCO0FBRTVELElBQUEsZUFBUyxFQUNQLDhEQUE4RCxFQUM5RCxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQywrREFBK0Q7SUFDL0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDdkUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsOEJBQThCLENBQUMsQ0FBQztJQUU5RCx1RUFBdUU7SUFDdkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsS0FBSyxHQUFHO1FBQ2QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO0tBQzlCLENBQUM7SUFDRixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxJQUFJLENB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QUFFLCtCQUErQixDQUFDLENBQUM7UUFFL0QsTUFBTSxJQUFBLDZCQUFhLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7WUFBUyxDQUFDO1FBQ1QsSUFBSSxDQUFDO1lBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1Asa0NBQWtDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoaWxkX3Byb2Nlc3MgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgd2FpdEZvck91dHB1dCB9IGZyb20gJy4vd2F0Y2gtaGVscGVycyc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSwgc2xlZXAgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMyAqIDYwICogMTAwMCk7IC8vIDMgbWludXRlcyBmb3Igd2F0Y2ggdGVzdHNcblxuaW50ZWdUZXN0KFxuICAnY2RrIHdhdGNoIGRvZXMgTk9UIGRldGVjdCBmaWxlIGNoYW5nZXMgZm9yIGV4Y2x1ZGVkIHBhdHRlcm5zJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gQ3JlYXRlIGEgdGVzdCBmaWxlIHRoYXQgd2lsbCBiZSB3YXRjaGVkIChmb3IgaW5pdGlhbCBkZXBsb3kpXG4gICAgY29uc3Qgd2F0Y2hlZEZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICd3YXRjaGVkLWZpbGUudHMnKTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKHdhdGNoZWRGaWxlLCAnZXhwb3J0IGNvbnN0IGluaXRpYWwgPSB0cnVlOycpO1xuXG4gICAgLy8gVXBkYXRlIGNkay5qc29uIHRvIGluY2x1ZGUgd2F0Y2ggY29uZmlndXJhdGlvbiB3aXRoIHNwZWNpZmljIGV4Y2x1ZGVcbiAgICBjb25zdCBjZGtKc29uUGF0aCA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ2Nkay5qc29uJyk7XG4gICAgY29uc3QgY2RrSnNvbiA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGNka0pzb25QYXRoLCAndXRmLTgnKSk7XG4gICAgY2RrSnNvbi53YXRjaCA9IHtcbiAgICAgIGluY2x1ZGU6IFsnKiovKi50cyddLFxuICAgICAgZXhjbHVkZTogWycqKi8qLmV4Y2x1ZGVkLnRzJ10sXG4gICAgfTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKGNka0pzb25QYXRoLCBKU09OLnN0cmluZ2lmeShjZGtKc29uLCBudWxsLCAyKSk7XG5cbiAgICBhd2FpdCBmaXh0dXJlLmNsaS5tYWtlQ2xpQXZhaWxhYmxlKCk7XG5cbiAgICBsZXQgb3V0cHV0ID0gJyc7XG5cbiAgICAvLyBTdGFydCBjZGsgd2F0Y2ggd2l0aCBkZXRhY2hlZCBwcm9jZXNzIGdyb3VwIGZvciBjbGVhbiB0ZXJtaW5hdGlvblxuICAgIGNvbnN0IHdhdGNoUHJvY2VzcyA9IGNoaWxkX3Byb2Nlc3Muc3Bhd24oJ2NkaycsIFtcbiAgICAgICd3YXRjaCcsICctLWhvdHN3YXAnLCAnLXYnLCBmaXh0dXJlLmZ1bGxTdGFja05hbWUoJ3Rlc3QtMScpLFxuICAgIF0sIHtcbiAgICAgIGN3ZDogZml4dHVyZS5pbnRlZ1Rlc3REaXIsXG4gICAgICBzaGVsbDogdHJ1ZSxcbiAgICAgIHN0ZGlvOiAncGlwZScsXG4gICAgICBlbnY6IHsgLi4ucHJvY2Vzcy5lbnYsIC4uLmZpeHR1cmUuY2RrU2hlbGxFbnYoKSB9LFxuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIHdhdGNoUHJvY2Vzcy5zdGRvdXQ/Lm9uKCdkYXRhJywgKGRhdGEpID0+IHtcbiAgICAgICAgb3V0cHV0ICs9IGRhdGEudG9TdHJpbmcoKTtcbiAgICAgICAgZml4dHVyZS5sb2coZGF0YS50b1N0cmluZygpKTtcbiAgICAgIH0pO1xuICAgICAgd2F0Y2hQcm9jZXNzLnN0ZGVycj8ub24oJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgICBvdXRwdXQgKz0gZGF0YS50b1N0cmluZygpO1xuICAgICAgICBmaXh0dXJlLmxvZyhkYXRhLnRvU3RyaW5nKCkpO1xuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IHdhaXRGb3JPdXRwdXQoKCkgPT4gb3V0cHV0LCBcIlRyaWdnZXJpbmcgaW5pdGlhbCAnY2RrIGRlcGxveSdcIik7XG4gICAgICBmaXh0dXJlLmxvZygn4pyTIFdhdGNoIHN0YXJ0IGRldGVjdGVkJyk7XG5cbiAgICAgIGF3YWl0IHdhaXRGb3JPdXRwdXQoKCkgPT4gb3V0cHV0LCAnZGVwbG95bWVudCB0aW1lJyk7XG4gICAgICBmaXh0dXJlLmxvZygn4pyTIEluaXRpYWwgZGVwbG95bWVudCBjb21wbGV0ZWQnKTtcblxuICAgICAgLy8gQ291bnQgZGVwbG95bWVudHMgYmVmb3JlIGNyZWF0aW5nIGV4Y2x1ZGVkIGZpbGVcbiAgICAgIGNvbnN0IGRlcGxveW1lbnRzQmVmb3JlID0gKG91dHB1dC5tYXRjaCgvZGVwbG95bWVudCB0aW1lL2cpIHx8IFtdKS5sZW5ndGg7XG5cbiAgICAgIC8vIENyZWF0ZSBhbiBleGNsdWRlZCBmaWxlIC0gdGhpcyBzaG91bGQgTk9UIHRyaWdnZXIgYSB3YXRjaCBldmVudFxuICAgICAgY29uc3QgZXhjbHVkZWRGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnc2hvdWxkLWJlLWlnbm9yZWQuZXhjbHVkZWQudHMnKTtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZXhjbHVkZWRGaWxlLCAnZXhwb3J0IGNvbnN0IGV4Y2x1ZGVkID0gdHJ1ZTsnKTtcbiAgICAgIGZpeHR1cmUubG9nKCdDcmVhdGVkIGV4Y2x1ZGVkIGZpbGU6IHNob3VsZC1iZS1pZ25vcmVkLmV4Y2x1ZGVkLnRzJyk7XG5cbiAgICAgIC8vIFdhaXQgYSByZWFzb25hYmxlIHRpbWUgZm9yIGFueSBwb3RlbnRpYWwgKHVud2FudGVkKSBkZXRlY3Rpb25cbiAgICAgIGF3YWl0IHNsZWVwKDUwMDApO1xuXG4gICAgICAvLyBWZXJpZnkgbm8gXCJEZXRlY3RlZCBjaGFuZ2VcIiBtZXNzYWdlIGZvciB0aGUgZXhjbHVkZWQgZmlsZVxuICAgICAgY29uc3QgZGV0ZWN0ZWRFeGNsdWRlZCA9IG91dHB1dC5pbmNsdWRlcygnRGV0ZWN0ZWQgY2hhbmdlIHRvJykgJiYgb3V0cHV0LmluY2x1ZGVzKCdleGNsdWRlZCcpO1xuICAgICAgZXhwZWN0KGRldGVjdGVkRXhjbHVkZWQpLnRvQmUoZmFsc2UpO1xuXG4gICAgICAvLyBWZXJpZnkgZGVwbG95bWVudCBjb3VudCBoYXNuJ3QgaW5jcmVhc2VkXG4gICAgICBjb25zdCBkZXBsb3ltZW50c0FmdGVyID0gKG91dHB1dC5tYXRjaCgvZGVwbG95bWVudCB0aW1lL2cpIHx8IFtdKS5sZW5ndGg7XG4gICAgICBleHBlY3QoZGVwbG95bWVudHNBZnRlcikudG9CZShkZXBsb3ltZW50c0JlZm9yZSk7XG5cbiAgICAgIGZpeHR1cmUubG9nKCfinJMgV2F0Y2ggY29ycmVjdGx5IGlnbm9yZWQgZXhjbHVkZWQgZmlsZScpO1xuXG4gICAgICAvLyBOb3cgbW9kaWZ5IGEgd2F0Y2hlZCBmaWxlIHRvIGNvbmZpcm0gd2F0Y2ggaXMgc3RpbGwgd29ya2luZ1xuICAgICAgZnMud3JpdGVGaWxlU3luYyh3YXRjaGVkRmlsZSwgJ2V4cG9ydCBjb25zdCBtb2RpZmllZCA9IHRydWU7Jyk7XG5cbiAgICAgIGF3YWl0IHdhaXRGb3JPdXRwdXQoKCkgPT4gb3V0cHV0LCAnRGV0ZWN0ZWQgY2hhbmdlIHRvJyk7XG4gICAgICBmaXh0dXJlLmxvZygn4pyTIFdhdGNoIHN0aWxsIGRldGVjdHMgY2hhbmdlcyB0byBpbmNsdWRlZCBmaWxlcycpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0cnkge1xuICAgICAgICB3YXRjaFByb2Nlc3Mua2lsbCgnU0lHVEVSTScpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIHByb2Nlc3MgbWF5IGhhdmUgYWxyZWFkeSBleGl0ZWRcbiAgICAgIH1cbiAgICB9XG4gIH0pLFxuKTtcbiJdfQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXdhdGNoLWRldGVjdHMtZmlsZS1jaGFuZ2VzLXdpdGgtZ2xvYi1wYXR0ZXJucy1uZWdhdGl2ZS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstd2F0Y2gtZGV0ZWN0cy1maWxlLWNoYW5nZXMtd2l0aC1nbG9iLXBhdHRlcm5zLW5lZ2F0aXZlLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUErQztBQUMvQyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG1EQUFpRTtBQUNqRSxzQ0FBb0U7QUFFcEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsNEJBQTRCO0FBRTVELElBQUEsZUFBUyxFQUNQLDhEQUE4RCxFQUM5RCxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQywrREFBK0Q7SUFDL0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDdkUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsOEJBQThCLENBQUMsQ0FBQztJQUU5RCx1RUFBdUU7SUFDdkUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsS0FBSyxHQUFHO1FBQ2QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3BCLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO0tBQzlCLENBQUM7SUFDRixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxJQUFJLENB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O1FBRS9ELE1BQU0sSUFBQSw2QkFBYSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxHQUFHLENBQUMsaURBQWlELENBQUMsQ0FBQztJQUNqRSxDQUFDO1lBQVMsQ0FBQztRQUNULElBQUEsK0JBQWUsRUFBQyxZQUFZLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hpbGRfcHJvY2VzcyBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyB3YWl0Rm9yT3V0cHV0LCBzYWZlS2lsbFByb2Nlc3MgfSBmcm9tICcuL3dhdGNoLWhlbHBlcnMnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUsIHNsZWVwIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDUgKiA2MCAqIDEwMDApOyAvLyA1IG1pbnV0ZXMgZm9yIHdhdGNoIHRlc3RzXG5cbmludGVnVGVzdChcbiAgJ2NkayB3YXRjaCBkb2VzIE5PVCBkZXRlY3QgZmlsZSBjaGFuZ2VzIGZvciBleGNsdWRlZCBwYXR0ZXJucycsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIC8vIENyZWF0ZSBhIHRlc3QgZmlsZSB0aGF0IHdpbGwgYmUgd2F0Y2hlZCAoZm9yIGluaXRpYWwgZGVwbG95KVxuICAgIGNvbnN0IHdhdGNoZWRGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnd2F0Y2hlZC1maWxlLnRzJyk7XG4gICAgZnMud3JpdGVGaWxlU3luYyh3YXRjaGVkRmlsZSwgJ2V4cG9ydCBjb25zdCBpbml0aWFsID0gdHJ1ZTsnKTtcblxuICAgIC8vIFVwZGF0ZSBjZGsuanNvbiB0byBpbmNsdWRlIHdhdGNoIGNvbmZpZ3VyYXRpb24gd2l0aCBzcGVjaWZpYyBleGNsdWRlXG4gICAgY29uc3QgY2RrSnNvblBhdGggPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICdjZGsuanNvbicpO1xuICAgIGNvbnN0IGNka0pzb24gPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhjZGtKc29uUGF0aCwgJ3V0Zi04JykpO1xuICAgIGNka0pzb24ud2F0Y2ggPSB7XG4gICAgICBpbmNsdWRlOiBbJyoqLyoudHMnXSxcbiAgICAgIGV4Y2x1ZGU6IFsnKiovKi5leGNsdWRlZC50cyddLFxuICAgIH07XG4gICAgZnMud3JpdGVGaWxlU3luYyhjZGtKc29uUGF0aCwgSlNPTi5zdHJpbmdpZnkoY2RrSnNvbiwgbnVsbCwgMikpO1xuXG4gICAgYXdhaXQgZml4dHVyZS5jbGkubWFrZUNsaUF2YWlsYWJsZSgpO1xuXG4gICAgbGV0IG91dHB1dCA9ICcnO1xuXG4gICAgLy8gU3RhcnQgY2RrIHdhdGNoXG4gICAgY29uc3Qgd2F0Y2hQcm9jZXNzID0gY2hpbGRfcHJvY2Vzcy5zcGF3bignY2RrJywgW1xuICAgICAgJ3dhdGNoJywgJy0taG90c3dhcCcsICctdicsIGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgndGVzdC0xJyksXG4gICAgXSwge1xuICAgICAgY3dkOiBmaXh0dXJlLmludGVnVGVzdERpcixcbiAgICAgIHN0ZGlvOiAncGlwZScsXG4gICAgICBlbnY6IHsgLi4ucHJvY2Vzcy5lbnYsIC4uLmZpeHR1cmUuY2RrU2hlbGxFbnYoKSB9LFxuICAgIH0pO1xuXG4gICAgdHJ5IHtcbiAgICAgIHdhdGNoUHJvY2Vzcy5zdGRvdXQ/Lm9uKCdkYXRhJywgKGRhdGEpID0+IHtcbiAgICAgICAgb3V0cHV0ICs9IGRhdGEudG9TdHJpbmcoKTtcbiAgICAgICAgZml4dHVyZS5sb2coZGF0YS50b1N0cmluZygpKTtcbiAgICAgIH0pO1xuICAgICAgd2F0Y2hQcm9jZXNzLnN0ZGVycj8ub24oJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgICBvdXRwdXQgKz0gZGF0YS50b1N0cmluZygpO1xuICAgICAgICBmaXh0dXJlLmxvZyhkYXRhLnRvU3RyaW5nKCkpO1xuICAgICAgfSk7XG5cbiAgICAgIGF3YWl0IHdhaXRGb3JPdXRwdXQoKCkgPT4gb3V0cHV0LCBcIlRyaWdnZXJpbmcgaW5pdGlhbCAnY2RrIGRlcGxveSdcIik7XG4gICAgICBmaXh0dXJlLmxvZygn4pyTIFdhdGNoIHN0YXJ0IGRldGVjdGVkJyk7XG5cbiAgICAgIGF3YWl0IHdhaXRGb3JPdXRwdXQoKCkgPT4gb3V0cHV0LCAnZGVwbG95bWVudCB0aW1lJyk7XG4gICAgICBmaXh0dXJlLmxvZygn4pyTIEluaXRpYWwgZGVwbG95bWVudCBjb21wbGV0ZWQnKTtcblxuICAgICAgLy8gQ291bnQgZGVwbG95bWVudHMgYmVmb3JlIGNyZWF0aW5nIGV4Y2x1ZGVkIGZpbGVcbiAgICAgIGNvbnN0IGRlcGxveW1lbnRzQmVmb3JlID0gKG91dHB1dC5tYXRjaCgvZGVwbG95bWVudCB0aW1lL2cpIHx8IFtdKS5sZW5ndGg7XG5cbiAgICAgIC8vIENyZWF0ZSBhbiBleGNsdWRlZCBmaWxlIC0gdGhpcyBzaG91bGQgTk9UIHRyaWdnZXIgYSB3YXRjaCBldmVudFxuICAgICAgY29uc3QgZXhjbHVkZWRGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnc2hvdWxkLWJlLWlnbm9yZWQuZXhjbHVkZWQudHMnKTtcbiAgICAgIGZzLndyaXRlRmlsZVN5bmMoZXhjbHVkZWRGaWxlLCAnZXhwb3J0IGNvbnN0IGV4Y2x1ZGVkID0gdHJ1ZTsnKTtcbiAgICAgIGZpeHR1cmUubG9nKCdDcmVhdGVkIGV4Y2x1ZGVkIGZpbGU6IHNob3VsZC1iZS1pZ25vcmVkLmV4Y2x1ZGVkLnRzJyk7XG5cbiAgICAgIC8vIFdhaXQgYSByZWFzb25hYmxlIHRpbWUgZm9yIGFueSBwb3RlbnRpYWwgKHVud2FudGVkKSBkZXRlY3Rpb25cbiAgICAgIGF3YWl0IHNsZWVwKDUwMDApO1xuXG4gICAgICAvLyBWZXJpZnkgbm8gXCJEZXRlY3RlZCBjaGFuZ2VcIiBtZXNzYWdlIGZvciB0aGUgZXhjbHVkZWQgZmlsZVxuICAgICAgY29uc3QgZGV0ZWN0ZWRFeGNsdWRlZCA9IG91dHB1dC5pbmNsdWRlcygnRGV0ZWN0ZWQgY2hhbmdlIHRvJykgJiYgb3V0cHV0LmluY2x1ZGVzKCdleGNsdWRlZCcpO1xuICAgICAgZXhwZWN0KGRldGVjdGVkRXhjbHVkZWQpLnRvQmUoZmFsc2UpO1xuXG4gICAgICAvLyBWZXJpZnkgZGVwbG95bWVudCBjb3VudCBoYXNuJ3QgaW5jcmVhc2VkXG4gICAgICBjb25zdCBkZXBsb3ltZW50c0FmdGVyID0gKG91dHB1dC5tYXRjaCgvZGVwbG95bWVudCB0aW1lL2cpIHx8IFtdKS5sZW5ndGg7XG4gICAgICBleHBlY3QoZGVwbG95bWVudHNBZnRlcikudG9CZShkZXBsb3ltZW50c0JlZm9yZSk7XG5cbiAgICAgIGZpeHR1cmUubG9nKCfinJMgV2F0Y2ggY29ycmVjdGx5IGlnbm9yZWQgZXhjbHVkZWQgZmlsZScpO1xuXG4gICAgICAvLyBOb3cgbW9kaWZ5IGEgd2F0Y2hlZCBmaWxlIHRvIGNvbmZpcm0gd2F0Y2ggaXMgc3RpbGwgd29ya2luZ1xuICAgICAgZnMud3JpdGVGaWxlU3luYyh3YXRjaGVkRmlsZSwgJ2V4cG9ydCBjb25zdCBtb2RpZmllZCA9IHRydWU7Jyk7XG5cbiAgICAgIGF3YWl0IHdhaXRGb3JPdXRwdXQoKCkgPT4gb3V0cHV0LCAnRGV0ZWN0ZWQgY2hhbmdlIHRvJyk7XG4gICAgICBmaXh0dXJlLmxvZygn4pyTIFdhdGNoIHN0aWxsIGRldGVjdHMgY2hhbmdlcyB0byBpbmNsdWRlZCBmaWxlcycpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBzYWZlS2lsbFByb2Nlc3Mod2F0Y2hQcm9jZXNzKTtcbiAgICB9XG5cbiAgICBleHBlY3QuYXNzZXJ0aW9ucyg1KTtcbiAgfSksXG4pO1xuIl19
@@ -5,7 +5,7 @@ const fs = require("fs");
5
5
  const path = require("path");
6
6
  const watch_helpers_1 = require("./watch-helpers");
7
7
  const lib_1 = require("../../../lib");
8
- jest.setTimeout(3 * 60 * 1000); // 3 minutes for watch tests
8
+ jest.setTimeout(5 * 60 * 1000); // 5 minutes for watch tests
9
9
  (0, lib_1.integTest)('cdk watch detects file changes with glob patterns', (0, lib_1.withDefaultFixture)(async (fixture) => {
10
10
  // Create a test file that will be watched
11
11
  const testFile = path.join(fixture.integTestDir, 'watch-test-file.ts');
@@ -19,12 +19,11 @@ jest.setTimeout(3 * 60 * 1000); // 3 minutes for watch tests
19
19
  fs.writeFileSync(cdkJsonPath, JSON.stringify(cdkJson, null, 2));
20
20
  await fixture.cli.makeCliAvailable();
21
21
  let output = '';
22
- // Start cdk watch with detached process group for clean termination
22
+ // Start cdk watch
23
23
  const watchProcess = child_process.spawn('cdk', [
24
24
  'watch', '--hotswap', '-v', fixture.fullStackName('test-1'),
25
25
  ], {
26
26
  cwd: fixture.integTestDir,
27
- shell: true,
28
27
  stdio: 'pipe',
29
28
  env: { ...process.env, ...fixture.cdkShellEnv() },
30
29
  });
@@ -42,7 +41,7 @@ jest.setTimeout(3 * 60 * 1000); // 3 minutes for watch tests
42
41
  await (0, watch_helpers_1.waitForOutput)(() => output, 'deployment time');
43
42
  fixture.log('✓ Initial deployment completed');
44
43
  // Update the test file timestamp to trigger a watch event
45
- child_process.spawn('touch', [testFile]);
44
+ child_process.spawnSync('touch', [testFile]);
46
45
  await (0, watch_helpers_1.waitForOutput)(() => output, 'Detected change to');
47
46
  fixture.log('✓ Watch detected file change');
48
47
  // Wait for the second deployment to complete (2 occurrences of 'deployment time')
@@ -50,12 +49,8 @@ jest.setTimeout(3 * 60 * 1000); // 3 minutes for watch tests
50
49
  fixture.log('✓ Second deployment completed');
51
50
  }
52
51
  finally {
53
- try {
54
- watchProcess.kill('SIGTERM');
55
- }
56
- catch (e) {
57
- // process may have already exited
58
- }
52
+ (0, watch_helpers_1.safeKillProcess)(watchProcess);
59
53
  }
54
+ expect.assertions(4);
60
55
  }));
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXdhdGNoLWRldGVjdHMtZmlsZS1jaGFuZ2VzLXdpdGgtZ2xvYi1wYXR0ZXJucy5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstd2F0Y2gtZGV0ZWN0cy1maWxlLWNoYW5nZXMtd2l0aC1nbG9iLXBhdHRlcm5zLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUErQztBQUMvQyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG1EQUFrRTtBQUNsRSxzQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsNEJBQTRCO0FBRTVELElBQUEsZUFBUyxFQUNQLG1EQUFtRCxFQUNuRCxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQywwQ0FBMEM7SUFDMUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDdkUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsOEJBQThCLENBQUMsQ0FBQztJQUUzRCxpREFBaUQ7SUFDakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsS0FBSyxHQUFHO1FBQ2QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO0tBQ3JCLENBQUM7SUFDRixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUVyQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFFaEIsb0VBQW9FO0lBQ3BFLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0tBQzVELEVBQUU7UUFDRCxHQUFHLEVBQUUsT0FBTyxDQUFDLFlBQVk7UUFDekIsS0FBSyxFQUFFLElBQUk7UUFDWCxLQUFLLEVBQUUsTUFBTTtRQUNiLEdBQUcsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRTtLQUNsRCxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUM7UUFDSCxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2QyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2QyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUEsNkJBQWEsRUFBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztRQUNyRSxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFdEMsTUFBTSxJQUFBLDZCQUFhLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDckQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBRTlDLDBEQUEwRDtRQUMxRCxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFekMsTUFBTSxJQUFBLDZCQUFhLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRTVDLGtGQUFrRjtRQUNsRixNQUFNLElBQUEsZ0NBQWdCLEVBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUMvQyxDQUFDO1lBQVMsQ0FBQztRQUNULElBQUksQ0FBQztZQUNILFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxrQ0FBa0M7UUFDcEMsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2hpbGRfcHJvY2VzcyBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyB3YWl0Rm9yT3V0cHV0LCB3YWl0Rm9yQ29uZGl0aW9uIH0gZnJvbSAnLi93YXRjaC1oZWxwZXJzJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDMgKiA2MCAqIDEwMDApOyAvLyAzIG1pbnV0ZXMgZm9yIHdhdGNoIHRlc3RzXG5cbmludGVnVGVzdChcbiAgJ2NkayB3YXRjaCBkZXRlY3RzIGZpbGUgY2hhbmdlcyB3aXRoIGdsb2IgcGF0dGVybnMnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBDcmVhdGUgYSB0ZXN0IGZpbGUgdGhhdCB3aWxsIGJlIHdhdGNoZWRcbiAgICBjb25zdCB0ZXN0RmlsZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ3dhdGNoLXRlc3QtZmlsZS50cycpO1xuICAgIGZzLndyaXRlRmlsZVN5bmModGVzdEZpbGUsICdleHBvcnQgY29uc3QgaW5pdGlhbCA9IHRydWU7Jyk7XG5cbiAgICAvLyBVcGRhdGUgY2RrLmpzb24gdG8gaW5jbHVkZSB3YXRjaCBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY2RrSnNvblBhdGggPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICdjZGsuanNvbicpO1xuICAgIGNvbnN0IGNka0pzb24gPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhjZGtKc29uUGF0aCwgJ3V0Zi04JykpO1xuICAgIGNka0pzb24ud2F0Y2ggPSB7XG4gICAgICBpbmNsdWRlOiBbJyoqLyoudHMnXSxcbiAgICB9O1xuICAgIGZzLndyaXRlRmlsZVN5bmMoY2RrSnNvblBhdGgsIEpTT04uc3RyaW5naWZ5KGNka0pzb24sIG51bGwsIDIpKTtcblxuICAgIGF3YWl0IGZpeHR1cmUuY2xpLm1ha2VDbGlBdmFpbGFibGUoKTtcblxuICAgIGxldCBvdXRwdXQgPSAnJztcblxuICAgIC8vIFN0YXJ0IGNkayB3YXRjaCB3aXRoIGRldGFjaGVkIHByb2Nlc3MgZ3JvdXAgZm9yIGNsZWFuIHRlcm1pbmF0aW9uXG4gICAgY29uc3Qgd2F0Y2hQcm9jZXNzID0gY2hpbGRfcHJvY2Vzcy5zcGF3bignY2RrJywgW1xuICAgICAgJ3dhdGNoJywgJy0taG90c3dhcCcsICctdicsIGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgndGVzdC0xJyksXG4gICAgXSwge1xuICAgICAgY3dkOiBmaXh0dXJlLmludGVnVGVzdERpcixcbiAgICAgIHNoZWxsOiB0cnVlLFxuICAgICAgc3RkaW86ICdwaXBlJyxcbiAgICAgIGVudjogeyAuLi5wcm9jZXNzLmVudiwgLi4uZml4dHVyZS5jZGtTaGVsbEVudigpIH0sXG4gICAgfSk7XG5cbiAgICB0cnkge1xuICAgICAgd2F0Y2hQcm9jZXNzLnN0ZG91dD8ub24oJ2RhdGEnLCAoZGF0YSkgPT4ge1xuICAgICAgICBvdXRwdXQgKz0gZGF0YS50b1N0cmluZygpO1xuICAgICAgICBmaXh0dXJlLmxvZyhkYXRhLnRvU3RyaW5nKCkpO1xuICAgICAgfSk7XG4gICAgICB3YXRjaFByb2Nlc3Muc3RkZXJyPy5vbignZGF0YScsIChkYXRhKSA9PiB7XG4gICAgICAgIG91dHB1dCArPSBkYXRhLnRvU3RyaW5nKCk7XG4gICAgICAgIGZpeHR1cmUubG9nKGRhdGEudG9TdHJpbmcoKSk7XG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgd2FpdEZvck91dHB1dCgoKSA9PiBvdXRwdXQsIFwiVHJpZ2dlcmluZyBpbml0aWFsICdjZGsgZGVwbG95J1wiKTtcbiAgICAgIGZpeHR1cmUubG9nKCfinJMgV2F0Y2ggc3RhcnQgZGV0ZWN0ZWQnKTtcblxuICAgICAgYXdhaXQgd2FpdEZvck91dHB1dCgoKSA9PiBvdXRwdXQsICdkZXBsb3ltZW50IHRpbWUnKTtcbiAgICAgIGZpeHR1cmUubG9nKCfinJMgSW5pdGlhbCBkZXBsb3ltZW50IGNvbXBsZXRlZCcpO1xuXG4gICAgICAvLyBVcGRhdGUgdGhlIHRlc3QgZmlsZSB0aW1lc3RhbXAgdG8gdHJpZ2dlciBhIHdhdGNoIGV2ZW50XG4gICAgICBjaGlsZF9wcm9jZXNzLnNwYXduKCd0b3VjaCcsIFt0ZXN0RmlsZV0pO1xuXG4gICAgICBhd2FpdCB3YWl0Rm9yT3V0cHV0KCgpID0+IG91dHB1dCwgJ0RldGVjdGVkIGNoYW5nZSB0bycpO1xuICAgICAgZml4dHVyZS5sb2coJ+KckyBXYXRjaCBkZXRlY3RlZCBmaWxlIGNoYW5nZScpO1xuXG4gICAgICAvLyBXYWl0IGZvciB0aGUgc2Vjb25kIGRlcGxveW1lbnQgdG8gY29tcGxldGUgKDIgb2NjdXJyZW5jZXMgb2YgJ2RlcGxveW1lbnQgdGltZScpXG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKCgpID0+IChvdXRwdXQubWF0Y2goL2RlcGxveW1lbnQgdGltZS9nKSB8fCBbXSkubGVuZ3RoID49IDIpO1xuICAgICAgZml4dHVyZS5sb2coJ+KckyBTZWNvbmQgZGVwbG95bWVudCBjb21wbGV0ZWQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgd2F0Y2hQcm9jZXNzLmtpbGwoJ1NJR1RFUk0nKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gcHJvY2VzcyBtYXkgaGF2ZSBhbHJlYWR5IGV4aXRlZFxuICAgICAgfVxuICAgIH1cbiAgfSksXG4pO1xuIl19
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXdhdGNoLWRldGVjdHMtZmlsZS1jaGFuZ2VzLXdpdGgtZ2xvYi1wYXR0ZXJucy5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstd2F0Y2gtZGV0ZWN0cy1maWxlLWNoYW5nZXMtd2l0aC1nbG9iLXBhdHRlcm5zLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtDQUErQztBQUMvQyx5QkFBeUI7QUFDekIsNkJBQTZCO0FBQzdCLG1EQUFtRjtBQUNuRixzQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsNEJBQTRCO0FBRTVELElBQUEsZUFBUyxFQUNQLG1EQUFtRCxFQUNuRCxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQywwQ0FBMEM7SUFDMUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDdkUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsOEJBQThCLENBQUMsQ0FBQztJQUUzRCxpREFBaUQ7SUFDakQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRSxPQUFPLENBQUMsS0FBSyxHQUFHO1FBQ2QsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO0tBQ3JCLENBQUM7SUFDRixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoRSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUVyQyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFFaEIsa0JBQWtCO0lBQ2xCLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0tBQzVELEVBQUU7UUFDRCxHQUFHLEVBQUUsT0FBTyxDQUFDLFlBQVk7UUFDekIsS0FBSyxFQUFFLE1BQU07UUFDYixHQUFHLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUU7S0FDbEQsQ0FBQyxDQUFDO0lBRUgsSUFBSSxDQUFDO1FBQ0gsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdkMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFBLDZCQUFhLEVBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLGlDQUFpQyxDQUFDLENBQUM7UUFDckUsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sSUFBQSw2QkFBYSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUU5QywwREFBMEQ7UUFDMUQsYUFBYSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTdDLE1BQU0sSUFBQSw2QkFBYSxFQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztRQUU1QyxrRkFBa0Y7UUFDbEYsTUFBTSxJQUFBLGdDQUFnQixFQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNuRixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDL0MsQ0FBQztZQUFTLENBQUM7UUFDVCxJQUFBLCtCQUFlLEVBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNoaWxkX3Byb2Nlc3MgZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgd2FpdEZvck91dHB1dCwgd2FpdEZvckNvbmRpdGlvbiwgc2FmZUtpbGxQcm9jZXNzIH0gZnJvbSAnLi93YXRjaC1oZWxwZXJzJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDUgKiA2MCAqIDEwMDApOyAvLyA1IG1pbnV0ZXMgZm9yIHdhdGNoIHRlc3RzXG5cbmludGVnVGVzdChcbiAgJ2NkayB3YXRjaCBkZXRlY3RzIGZpbGUgY2hhbmdlcyB3aXRoIGdsb2IgcGF0dGVybnMnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBDcmVhdGUgYSB0ZXN0IGZpbGUgdGhhdCB3aWxsIGJlIHdhdGNoZWRcbiAgICBjb25zdCB0ZXN0RmlsZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ3dhdGNoLXRlc3QtZmlsZS50cycpO1xuICAgIGZzLndyaXRlRmlsZVN5bmModGVzdEZpbGUsICdleHBvcnQgY29uc3QgaW5pdGlhbCA9IHRydWU7Jyk7XG5cbiAgICAvLyBVcGRhdGUgY2RrLmpzb24gdG8gaW5jbHVkZSB3YXRjaCBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY2RrSnNvblBhdGggPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICdjZGsuanNvbicpO1xuICAgIGNvbnN0IGNka0pzb24gPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhjZGtKc29uUGF0aCwgJ3V0Zi04JykpO1xuICAgIGNka0pzb24ud2F0Y2ggPSB7XG4gICAgICBpbmNsdWRlOiBbJyoqLyoudHMnXSxcbiAgICB9O1xuICAgIGZzLndyaXRlRmlsZVN5bmMoY2RrSnNvblBhdGgsIEpTT04uc3RyaW5naWZ5KGNka0pzb24sIG51bGwsIDIpKTtcblxuICAgIGF3YWl0IGZpeHR1cmUuY2xpLm1ha2VDbGlBdmFpbGFibGUoKTtcblxuICAgIGxldCBvdXRwdXQgPSAnJztcblxuICAgIC8vIFN0YXJ0IGNkayB3YXRjaFxuICAgIGNvbnN0IHdhdGNoUHJvY2VzcyA9IGNoaWxkX3Byb2Nlc3Muc3Bhd24oJ2NkaycsIFtcbiAgICAgICd3YXRjaCcsICctLWhvdHN3YXAnLCAnLXYnLCBmaXh0dXJlLmZ1bGxTdGFja05hbWUoJ3Rlc3QtMScpLFxuICAgIF0sIHtcbiAgICAgIGN3ZDogZml4dHVyZS5pbnRlZ1Rlc3REaXIsXG4gICAgICBzdGRpbzogJ3BpcGUnLFxuICAgICAgZW52OiB7IC4uLnByb2Nlc3MuZW52LCAuLi5maXh0dXJlLmNka1NoZWxsRW52KCkgfSxcbiAgICB9KTtcblxuICAgIHRyeSB7XG4gICAgICB3YXRjaFByb2Nlc3Muc3Rkb3V0Py5vbignZGF0YScsIChkYXRhKSA9PiB7XG4gICAgICAgIG91dHB1dCArPSBkYXRhLnRvU3RyaW5nKCk7XG4gICAgICAgIGZpeHR1cmUubG9nKGRhdGEudG9TdHJpbmcoKSk7XG4gICAgICB9KTtcbiAgICAgIHdhdGNoUHJvY2Vzcy5zdGRlcnI/Lm9uKCdkYXRhJywgKGRhdGEpID0+IHtcbiAgICAgICAgb3V0cHV0ICs9IGRhdGEudG9TdHJpbmcoKTtcbiAgICAgICAgZml4dHVyZS5sb2coZGF0YS50b1N0cmluZygpKTtcbiAgICAgIH0pO1xuXG4gICAgICBhd2FpdCB3YWl0Rm9yT3V0cHV0KCgpID0+IG91dHB1dCwgXCJUcmlnZ2VyaW5nIGluaXRpYWwgJ2NkayBkZXBsb3knXCIpO1xuICAgICAgZml4dHVyZS5sb2coJ+KckyBXYXRjaCBzdGFydCBkZXRlY3RlZCcpO1xuXG4gICAgICBhd2FpdCB3YWl0Rm9yT3V0cHV0KCgpID0+IG91dHB1dCwgJ2RlcGxveW1lbnQgdGltZScpO1xuICAgICAgZml4dHVyZS5sb2coJ+KckyBJbml0aWFsIGRlcGxveW1lbnQgY29tcGxldGVkJyk7XG5cbiAgICAgIC8vIFVwZGF0ZSB0aGUgdGVzdCBmaWxlIHRpbWVzdGFtcCB0byB0cmlnZ2VyIGEgd2F0Y2ggZXZlbnRcbiAgICAgIGNoaWxkX3Byb2Nlc3Muc3Bhd25TeW5jKCd0b3VjaCcsIFt0ZXN0RmlsZV0pO1xuXG4gICAgICBhd2FpdCB3YWl0Rm9yT3V0cHV0KCgpID0+IG91dHB1dCwgJ0RldGVjdGVkIGNoYW5nZSB0bycpO1xuICAgICAgZml4dHVyZS5sb2coJ+KckyBXYXRjaCBkZXRlY3RlZCBmaWxlIGNoYW5nZScpO1xuXG4gICAgICAvLyBXYWl0IGZvciB0aGUgc2Vjb25kIGRlcGxveW1lbnQgdG8gY29tcGxldGUgKDIgb2NjdXJyZW5jZXMgb2YgJ2RlcGxveW1lbnQgdGltZScpXG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKCgpID0+IChvdXRwdXQubWF0Y2goL2RlcGxveW1lbnQgdGltZS9nKSB8fCBbXSkubGVuZ3RoID49IDIpO1xuICAgICAgZml4dHVyZS5sb2coJ+KckyBTZWNvbmQgZGVwbG95bWVudCBjb21wbGV0ZWQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgc2FmZUtpbGxQcm9jZXNzKHdhdGNoUHJvY2Vzcyk7XG4gICAgfVxuXG4gICAgZXhwZWN0LmFzc2VydGlvbnMoNCk7XG4gIH0pLFxuKTtcbiJdfQ==
@@ -1,6 +1,4 @@
1
- /**
2
- * Shared helper functions for watch integration tests.
3
- */
1
+ import type { ChildProcess } from 'node:child_process';
4
2
  /**
5
3
  * Wait for a specific string to appear in the output.
6
4
  */
@@ -9,3 +7,7 @@ export declare function waitForOutput(getOutput: () => string, searchString: str
9
7
  * Wait for a condition to become true.
10
8
  */
11
9
  export declare function waitForCondition(condition: () => boolean): Promise<void>;
10
+ /**
11
+ * Kill a spawned process.
12
+ */
13
+ export declare function safeKillProcess(proc: ChildProcess): void;
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
- /**
3
- * Shared helper functions for watch integration tests.
4
- */
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.waitForOutput = waitForOutput;
7
4
  exports.waitForCondition = waitForCondition;
5
+ exports.safeKillProcess = safeKillProcess;
6
+ const DEFAULT_POLL_TIMEOUT = 120_000; // 2 minutes
8
7
  /**
9
- * Poll a condition until we see it.
8
+ * Poll a condition until we see it, with a timeout.
10
9
  */
11
- async function poll(condition) {
12
- return new Promise((resolve) => {
10
+ async function poll(condition, timeoutMs = DEFAULT_POLL_TIMEOUT) {
11
+ return new Promise((resolve, reject) => {
12
+ const deadline = Date.now() + timeoutMs;
13
13
  const check = () => {
14
14
  if (condition())
15
15
  return resolve();
16
+ if (Date.now() >= deadline)
17
+ return reject(new Error(`poll timed out after ${timeoutMs}ms`));
16
18
  setTimeout(check, 1000);
17
19
  };
18
20
  check();
@@ -22,12 +24,25 @@ async function poll(condition) {
22
24
  * Wait for a specific string to appear in the output.
23
25
  */
24
26
  async function waitForOutput(getOutput, searchString) {
25
- return poll(() => getOutput().includes(searchString));
27
+ await poll(() => getOutput().includes(searchString));
28
+ expect(getOutput()).toContain(searchString);
26
29
  }
27
30
  /**
28
31
  * Wait for a condition to become true.
29
32
  */
30
33
  async function waitForCondition(condition) {
31
- return poll(condition);
34
+ await poll(condition);
35
+ expect(condition()).toBe(true);
36
+ }
37
+ /**
38
+ * Kill a spawned process.
39
+ */
40
+ function safeKillProcess(proc) {
41
+ try {
42
+ proc.kill('SIGKILL');
43
+ }
44
+ catch {
45
+ // process may have already exited
46
+ }
32
47
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2gtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndhdGNoLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOztHQUVHOztBQWtCSCxzQ0FFQztBQUtELDRDQUVDO0FBekJEOztHQUVHO0FBQ0gsS0FBSyxVQUFVLElBQUksQ0FBQyxTQUF3QjtJQUMxQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDN0IsTUFBTSxLQUFLLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLElBQUksU0FBUyxFQUFFO2dCQUFFLE9BQU8sT0FBTyxFQUFFLENBQUM7WUFDbEMsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUM7UUFDRixLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLGFBQWEsQ0FBQyxTQUF1QixFQUFFLFlBQW9CO0lBQy9FLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRDs7R0FFRztBQUNJLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxTQUF3QjtJQUM3RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaGFyZWQgaGVscGVyIGZ1bmN0aW9ucyBmb3Igd2F0Y2ggaW50ZWdyYXRpb24gdGVzdHMuXG4gKi9cblxuLyoqXG4gKiBQb2xsIGEgY29uZGl0aW9uIHVudGlsIHdlIHNlZSBpdC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcG9sbChjb25kaXRpb246ICgpID0+IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgY29uc3QgY2hlY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoY29uZGl0aW9uKCkpIHJldHVybiByZXNvbHZlKCk7XG4gICAgICBzZXRUaW1lb3V0KGNoZWNrLCAxMDAwKTtcbiAgICB9O1xuICAgIGNoZWNrKCk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFdhaXQgZm9yIGEgc3BlY2lmaWMgc3RyaW5nIHRvIGFwcGVhciBpbiB0aGUgb3V0cHV0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvck91dHB1dChnZXRPdXRwdXQ6ICgpID0+IHN0cmluZywgc2VhcmNoU3RyaW5nOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIHBvbGwoKCkgPT4gZ2V0T3V0cHV0KCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSk7XG59XG5cbi8qKlxuICogV2FpdCBmb3IgYSBjb25kaXRpb24gdG8gYmVjb21lIHRydWUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yQ29uZGl0aW9uKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gcG9sbChjb25kaXRpb24pO1xufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0Y2gtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndhdGNoLWhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFzQkEsc0NBR0M7QUFLRCw0Q0FHQztBQUtELDBDQU1DO0FBMUNELE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDLENBQUMsWUFBWTtBQUVsRDs7R0FFRztBQUNILEtBQUssVUFBVSxJQUFJLENBQUMsU0FBd0IsRUFBRSxTQUFTLEdBQUcsb0JBQW9CO0lBQzVFLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDckMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUN4QyxNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUU7WUFDakIsSUFBSSxTQUFTLEVBQUU7Z0JBQUUsT0FBTyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxRQUFRO2dCQUFFLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLHdCQUF3QixTQUFTLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDNUYsVUFBVSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUM7UUFDRixLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLGFBQWEsQ0FBQyxTQUF1QixFQUFFLFlBQW9CO0lBQy9FLE1BQU0sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsU0FBd0I7SUFDN0QsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEIsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxJQUFrQjtJQUNoRCxJQUFJLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxrQ0FBa0M7SUFDcEMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENoaWxkUHJvY2VzcyB9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5cbmNvbnN0IERFRkFVTFRfUE9MTF9USU1FT1VUID0gMTIwXzAwMDsgLy8gMiBtaW51dGVzXG5cbi8qKlxuICogUG9sbCBhIGNvbmRpdGlvbiB1bnRpbCB3ZSBzZWUgaXQsIHdpdGggYSB0aW1lb3V0LlxuICovXG5hc3luYyBmdW5jdGlvbiBwb2xsKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbiwgdGltZW91dE1zID0gREVGQVVMVF9QT0xMX1RJTUVPVVQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBkZWFkbGluZSA9IERhdGUubm93KCkgKyB0aW1lb3V0TXM7XG4gICAgY29uc3QgY2hlY2sgPSAoKSA9PiB7XG4gICAgICBpZiAoY29uZGl0aW9uKCkpIHJldHVybiByZXNvbHZlKCk7XG4gICAgICBpZiAoRGF0ZS5ub3coKSA+PSBkZWFkbGluZSkgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoYHBvbGwgdGltZWQgb3V0IGFmdGVyICR7dGltZW91dE1zfW1zYCkpO1xuICAgICAgc2V0VGltZW91dChjaGVjaywgMTAwMCk7XG4gICAgfTtcbiAgICBjaGVjaygpO1xuICB9KTtcbn1cblxuLyoqXG4gKiBXYWl0IGZvciBhIHNwZWNpZmljIHN0cmluZyB0byBhcHBlYXIgaW4gdGhlIG91dHB1dC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JPdXRwdXQoZ2V0T3V0cHV0OiAoKSA9PiBzdHJpbmcsIHNlYXJjaFN0cmluZzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGF3YWl0IHBvbGwoKCkgPT4gZ2V0T3V0cHV0KCkuaW5jbHVkZXMoc2VhcmNoU3RyaW5nKSk7XG4gIGV4cGVjdChnZXRPdXRwdXQoKSkudG9Db250YWluKHNlYXJjaFN0cmluZyk7XG59XG5cbi8qKlxuICogV2FpdCBmb3IgYSBjb25kaXRpb24gdG8gYmVjb21lIHRydWUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3YWl0Rm9yQ29uZGl0aW9uKGNvbmRpdGlvbjogKCkgPT4gYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBwb2xsKGNvbmRpdGlvbik7XG4gIGV4cGVjdChjb25kaXRpb24oKSkudG9CZSh0cnVlKTtcbn1cblxuLyoqXG4gKiBLaWxsIGEgc3Bhd25lZCBwcm9jZXNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FmZUtpbGxQcm9jZXNzKHByb2M6IENoaWxkUHJvY2Vzcyk6IHZvaWQge1xuICB0cnkge1xuICAgIHByb2Mua2lsbCgnU0lHS0lMTCcpO1xuICB9IGNhdGNoIHtcbiAgICAvLyBwcm9jZXNzIG1heSBoYXZlIGFscmVhZHkgZXhpdGVkXG4gIH1cbn1cbiJdfQ==