@mrgrain/cdk-esbuild 4.0.0-alpha.4 → 4.0.0-alpha.5

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/.jsii CHANGED
@@ -7,6 +7,9 @@
7
7
  ],
8
8
  "url": "https://moritzkornher.de"
9
9
  },
10
+ "bundled": {
11
+ "which": "^2.0.2"
12
+ },
10
13
  "dependencies": {
11
14
  "aws-cdk-lib": "^2.0.0",
12
15
  "constructs": "^10.0.5"
@@ -6140,6 +6143,6 @@
6140
6143
  "symbolId": "src/source:TypeScriptSourceProps"
6141
6144
  }
6142
6145
  },
6143
- "version": "4.0.0-alpha.4",
6144
- "fingerprint": "F7RCu82jXsVez/knXhfZPI6zZQT6khrFd75hrqk45p8="
6146
+ "version": "4.0.0-alpha.5",
6147
+ "fingerprint": "CPFlr7DVRE3la6iAuZGACsF90yHD3EkW3cTNGpm8BcM="
6145
6148
  }
package/.projenrc.ts CHANGED
@@ -85,10 +85,14 @@ const project = new awscdk.AwsCdkConstructLibrary({
85
85
  devDeps: [
86
86
  '@aws-cdk/aws-synthetics-alpha@2.0.0-alpha.11',
87
87
  '@types/eslint',
88
+ '@types/which',
88
89
  'esbuild@^0.14.0',
89
90
  'jest-mock',
90
91
  'ts-morph',
91
92
  ],
93
+ bundledDeps: [
94
+ 'which',
95
+ ],
92
96
 
93
97
  // Ignore files
94
98
  gitignore: [
@@ -112,6 +116,7 @@ const project = new awscdk.AwsCdkConstructLibrary({
112
116
  '/examples',
113
117
  'PUBLISHING.md',
114
118
  '.vscode',
119
+ 'projenrc',
115
120
  ],
116
121
  });
117
122
 
package/lib/asset.js CHANGED
@@ -53,7 +53,7 @@ class JavaScriptAsset extends Asset {
53
53
  }
54
54
  exports.JavaScriptAsset = JavaScriptAsset;
55
55
  _a = JSII_RTTI_SYMBOL_1;
56
- JavaScriptAsset[_a] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptAsset", version: "4.0.0-alpha.4" };
56
+ JavaScriptAsset[_a] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptAsset", version: "4.0.0-alpha.5" };
57
57
  /**
58
58
  * Bundles the entry points and creates a CDK asset which is uploaded to the bootstrapped CDK S3 bucket during deployment.
59
59
  *
@@ -65,5 +65,5 @@ class TypeScriptAsset extends Asset {
65
65
  }
66
66
  exports.TypeScriptAsset = TypeScriptAsset;
67
67
  _b = JSII_RTTI_SYMBOL_1;
68
- TypeScriptAsset[_b] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptAsset", version: "4.0.0-alpha.4" };
68
+ TypeScriptAsset[_b] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptAsset", version: "4.0.0-alpha.5" };
69
69
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYXNzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBa0M7QUFDbEMsNkNBQTRDO0FBQzVDLDZEQUE2RDtBQUM3RCwyQ0FBNkM7QUFDN0MsdUNBQXNFO0FBOEJ0RTs7R0FFRztBQUNILE1BQWUsS0FBZ0MsU0FBUSxxQkFBTztJQUM1RDs7T0FFRztJQUNILFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQVk7UUFFWixNQUFNLEVBQ0osU0FBUyxFQUNULE9BQU8sRUFDUCxZQUFZLEVBQUUsT0FBTyxHQUFHLEVBQUUsRUFDMUIsT0FBTyxHQUNSLEdBQUcsS0FBSyxDQUFDO1FBQ1YsTUFBTSxXQUFXLEdBQ2YsT0FBTyxLQUFLLENBQUMsV0FBVyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFFbEYsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsaUJBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWxELE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBa0IsRUFBRSxFQUFFO1lBQ3hELElBQUksaUJBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDMUIsTUFBTSxJQUFJLEtBQUssQ0FDYixHQUFHLElBQUksd0lBQXdJLENBQ2hKLENBQUM7YUFDSDtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFN0QsTUFBTSxZQUFZLEdBQUc7WUFDbkIsTUFBTSxFQUFFLElBQUk7WUFDWixHQUFHLE9BQU87WUFDVixhQUFhO1NBQ2QsQ0FBQztRQUVGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsSUFBSSxFQUFFLGFBQWE7WUFDbkIsU0FBUztZQUNULGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLDJCQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQywyQkFBYSxDQUFDLE1BQU07WUFDdEUsUUFBUSxFQUFFLElBQUksd0JBQWMsQ0FDMUIsV0FBVyxFQUNYO2dCQUNFLFlBQVk7Z0JBQ1osT0FBTztnQkFDUCxPQUFPO2FBQ1IsQ0FDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVEOzs7Ozs7R0FNRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxLQUEyQjs7QUFBaEUsMENBQW1FOzs7QUFFbkU7Ozs7OztHQU1HO0FBQ0gsTUFBYSxlQUFnQixTQUFRLEtBQTJCOztBQUFoRSwwQ0FBbUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0Fic29sdXRlIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBBc3NldEhhc2hUeXBlIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQXNzZXQgYXMgUzNBc3NldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1hc3NldHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0LCBOb2RlIH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBFc2J1aWxkQnVuZGxlciwgQnVuZGxlclByb3BzLCBFbnRyeVBvaW50cyB9IGZyb20gJy4vYnVuZGxlcic7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRCYXNlUHJvcHMgZXh0ZW5kcyBCdW5kbGVyUHJvcHMge1xuICAvKipcbiAgICogQSBoYXNoIG9mIHRoaXMgYXNzZXQsIHdoaWNoIGlzIGF2YWlsYWJsZSBhdCBjb25zdHJ1Y3Rpb24gdGltZS5cbiAgICpcbiAgICogQXMgdGhpcyBpcyBhIHBsYWluIHN0cmluZywgaXQgY2FuIGJlIHVzZWQgaW4gY29uc3RydWN0IElEcyBpbiBvcmRlciB0byBlbmZvcmNlIGNyZWF0aW9uIG9mIGEgbmV3IHJlc291cmNlIHdoZW4gdGhlIGNvbnRlbnQgaGFzaCBoYXMgY2hhbmdlZC5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gYSBoYXNoIG9mIGFsbCBmaWxlcyBpbiB0aGUgcmVzdWx0aW5nIGJ1bmRsZS5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0SGFzaD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBc3NldFByb3BzIGV4dGVuZHMgQXNzZXRCYXNlUHJvcHMge1xuICAvKipcbiAgICogQSByZWxhdGl2ZSBwYXRoIG9yIGxpc3Qgb3IgbWFwIG9mIHJlbGF0aXZlIHBhdGhzIHRvIHRoZSBlbnRyeSBwb2ludHMgb2YgeW91ciBjb2RlIGZyb20gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QuIEUuZy4gYHNyYy9pbmRleC50c2AuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBlbnRyeVBvaW50czogRW50cnlQb2ludHM7XG59XG5cbnR5cGUgSmF2YVNjcmlwdEFzc2V0UHJvcHMgPSBBc3NldFByb3BzO1xudHlwZSBUeXBlU2NyaXB0QXNzZXRQcm9wcyA9IEFzc2V0UHJvcHM7XG5cbi8qKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuYWJzdHJhY3QgY2xhc3MgQXNzZXQ8UHJvcHMgZXh0ZW5kcyBBc3NldFByb3BzPiBleHRlbmRzIFMzQXNzZXQge1xuICAvKipcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFByb3BzLFxuICApIHtcbiAgICBjb25zdCB7XG4gICAgICBhc3NldEhhc2gsXG4gICAgICBjb3B5RGlyLFxuICAgICAgYnVpbGRPcHRpb25zOiBvcHRpb25zID0ge30sXG4gICAgICBidWlsZEZuLFxuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBlbnRyeVBvaW50czogc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID1cbiAgICAgIHR5cGVvZiBwcm9wcy5lbnRyeVBvaW50cyA9PT0gJ3N0cmluZycgPyBbcHJvcHMuZW50cnlQb2ludHNdIDogcHJvcHMuZW50cnlQb2ludHM7XG5cbiAgICBjb25zdCBuYW1lID0gc2NvcGUubm9kZS5wYXRoICsgTm9kZS5QQVRIX1NFUCArIGlkO1xuXG4gICAgT2JqZWN0LnZhbHVlcyhlbnRyeVBvaW50cykuZm9yRWFjaCgoZW50cnlQb2ludDogc3RyaW5nKSA9PiB7XG4gICAgICBpZiAoaXNBYnNvbHV0ZShlbnRyeVBvaW50KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYCR7bmFtZX06IEVudHJ5IHBvaW50cyBtdXN0IGJlIGEgcmVsYXRpdmUgcGF0aC4gSWYgeW91IG5lZWQgdG8gZGVmaW5lIGFuIGFic29sdXRlIHBhdGgsIHBsZWFzZSB1c2UgXFxgYnVpbGRPcHRpb25zLmFic1dvcmtpbmdEaXJcXGAgYWNjb3JkaW5nbHkuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGFic1dvcmtpbmdEaXIgPSBvcHRpb25zLmFic1dvcmtpbmdEaXIgPz8gcHJvY2Vzcy5jd2QoKTtcblxuICAgIGNvbnN0IGJ1aWxkT3B0aW9ucyA9IHtcbiAgICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBhYnNXb3JraW5nRGlyLFxuICAgIH07XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBhdGg6IGFic1dvcmtpbmdEaXIsXG4gICAgICBhc3NldEhhc2gsXG4gICAgICBhc3NldEhhc2hUeXBlOiBhc3NldEhhc2ggPyBBc3NldEhhc2hUeXBlLkNVU1RPTSA6IEFzc2V0SGFzaFR5cGUuT1VUUFVULFxuICAgICAgYnVuZGxpbmc6IG5ldyBFc2J1aWxkQnVuZGxlcihcbiAgICAgICAgZW50cnlQb2ludHMsXG4gICAgICAgIHtcbiAgICAgICAgICBidWlsZE9wdGlvbnMsXG4gICAgICAgICAgY29weURpcixcbiAgICAgICAgICBidWlsZEZuLFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEJ1bmRsZXMgdGhlIGVudHJ5IHBvaW50cyBhbmQgY3JlYXRlcyBhIENESyBhc3NldCB3aGljaCBpcyB1cGxvYWRlZCB0byB0aGUgYm9vdHN0cmFwcGVkIENESyBTMyBidWNrZXQgZHVyaW5nIGRlcGxveW1lbnQuXG4gKlxuICogVGhlIGFzc2V0IGNhbiBiZSB1c2VkIGJ5IG90aGVyIGNvbnN0cnVjdHMuXG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIEphdmFTY3JpcHRBc3NldCBleHRlbmRzIEFzc2V0PEphdmFTY3JpcHRBc3NldFByb3BzPiB7fVxuXG4vKipcbiAqIEJ1bmRsZXMgdGhlIGVudHJ5IHBvaW50cyBhbmQgY3JlYXRlcyBhIENESyBhc3NldCB3aGljaCBpcyB1cGxvYWRlZCB0byB0aGUgYm9vdHN0cmFwcGVkIENESyBTMyBidWNrZXQgZHVyaW5nIGRlcGxveW1lbnQuXG4gKlxuICogVGhlIGFzc2V0IGNhbiBiZSB1c2VkIGJ5IG90aGVyIGNvbnN0cnVjdHMuXG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVTY3JpcHRBc3NldCBleHRlbmRzIEFzc2V0PFR5cGVTY3JpcHRBc3NldFByb3BzPiB7fVxuIl19
package/lib/bundler.js CHANGED
@@ -114,5 +114,5 @@ class EsbuildBundler {
114
114
  }
115
115
  exports.EsbuildBundler = EsbuildBundler;
116
116
  _a = JSII_RTTI_SYMBOL_1;
117
- EsbuildBundler[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildBundler", version: "4.0.0-alpha.4" };
117
+ EsbuildBundler[_a] = { fqn: "@mrgrain/cdk-esbuild.EsbuildBundler", version: "4.0.0-alpha.5" };
118
118
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9idW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkJBQStCO0FBQy9CLCtCQUE2RTtBQUM3RSw2Q0FLcUI7QUFFckIsdURBQThDO0FBQzlDLHFEQUFzRDtBQXVFdEQ7Ozs7O0dBS0c7QUFDSCxNQUFhLGNBQWM7SUFlekI7O09BRUc7SUFDSDtJQUNFOzs7OztPQUtHO0lBQ2EsV0FBd0I7SUFFeEM7Ozs7T0FJRztJQUNhLEtBQW1CO1FBUG5CLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBT3hCLFVBQUssR0FBTCxLQUFLLENBQWM7UUF4QnJDOzs7O1dBSUc7UUFDYSxVQUFLLEdBQUcseUJBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7UUFxQjFELElBQUksS0FBSyxFQUFFLFlBQVksRUFBRSxPQUFPLElBQUksS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUU7WUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1NBQzNEO1FBRUQsTUFBTSxFQUFFLE9BQU8sR0FBRywyQkFBUyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUzQyxJQUFJLENBQUMsS0FBSyxHQUFHO1lBQ1gsU0FBUyxFQUFFLENBQUMsU0FBaUIsRUFBRSxRQUF5QixFQUFXLEVBQUU7Z0JBRW5FLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7b0JBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFFeEQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7d0JBQzlCLE1BQU0sTUFBTSxHQUFHLGNBQU8sQ0FDcEIsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsYUFBYSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFDeEQsR0FBRyxDQUNKLENBQUM7d0JBQ0YsTUFBTSxPQUFPLEdBQUcsY0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBRTt3QkFFMUMsTUFBTSxZQUFZLEdBQUcsZUFBUSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDbEQsSUFBSSxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLGlCQUFVLENBQUMsWUFBWSxDQUFDLEVBQUU7NEJBQzdELE1BQU0sSUFBSSxLQUFLLENBQUMsb0ZBQW9GLENBQUMsQ0FBQzt5QkFDdkc7d0JBRUQsY0FBUyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO3dCQUN4Qyx3QkFBVSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQzVDLENBQUMsQ0FBQyxDQUFDO2lCQUNKO2dCQUVELElBQUk7b0JBQ0YsTUFBTSxXQUFXLEdBQWdCLE9BQU8sQ0FBQzt3QkFDdkMsV0FBVzt3QkFDWCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDO3dCQUNuQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQVQsZ0JBQVMsRUFBRSxJQUFJLEVBQUosV0FBSSxFQUFFLENBQUM7cUJBQ3pELENBQUMsQ0FBQztvQkFFSCxtQ0FBa0IsQ0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDdkQ7Z0JBQUMsT0FBTyxLQUFLLEVBQUU7b0JBQ2QsbUNBQWtCLENBQUMsS0FBcUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2lCQUNqRTtnQkFFRCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxPQUFnQztRQUNyRCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFFRCxrQkFBa0I7UUFDbEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNqRDtRQUVELFFBQVE7UUFDUixJQUNFLE9BQU8sT0FBTyxLQUFLLFFBQVE7WUFDM0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUN2QixPQUFPLEtBQUssSUFBSSxFQUNoQjtZQUNBLE9BQU8sTUFBTTtpQkFDVixPQUFPLENBQUMsT0FBTyxDQUFDO2lCQUNoQixPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO2dCQUMzQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQzFCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQTRCLENBQUM7aUJBQ3JFO2dCQUVELE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxrQkFBa0I7UUFDbEIsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQWlCLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxnQkFBZ0IsQ0FDdEIsWUFBb0IsRUFDcEIsT0FBaUQsWUFBSztRQUV0RCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRTtZQUNyQyxPQUFPO2dCQUNMLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FDckIsSUFBSSxDQUFDLElBQUksQ0FDUCxHQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FDMUQsT0FBTyxDQUNLLENBQ2YsQ0FDRjthQUNGLENBQUM7U0FDSDtRQUVELE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FDcEIsSUFBSSxDQUFDLElBQUksQ0FDUCxHQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FDekQsT0FBTyxDQUNLLENBQ2YsQ0FDRjtZQUNELE9BQU8sRUFBRSxTQUFTO1NBQ25CLENBQUM7SUFDSixDQUFDOztBQTNJSCx3Q0E0SUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBta2RpclN5bmMgfSBmcm9tICdmcyc7XG5pbXBvcnQgeyBqb2luLCBub3JtYWxpemUsIHJlbGF0aXZlLCByZXNvbHZlLCBwb3NpeCwgaXNBYnNvbHV0ZSB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHtcbiAgQnVuZGxpbmdPcHRpb25zLFxuICBEb2NrZXJJbWFnZSxcbiAgRmlsZVN5c3RlbSxcbiAgSUxvY2FsQnVuZGxpbmcsXG59IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEJ1aWxkRmFpbHVyZSwgQnVpbGRPcHRpb25zLCBCdWlsZFJlc3VsdCB9IGZyb20gJy4vZXNidWlsZC10eXBlcyc7XG5pbXBvcnQgeyBidWlsZFN5bmMgfSBmcm9tICcuL2VzYnVpbGQtd3JhcHBlcic7XG5pbXBvcnQgeyBwcmludEJ1aWxkTWVzc2FnZXMgfSBmcm9tICcuL2Zvcm1hdE1lc3NhZ2VzJztcblxuLyoqXG4gKiBBIHJlbGF0aXZlIHBhdGggb3IgbGlzdCBvciBtYXAgb2YgcmVsYXRpdmUgcGF0aHMgdG8gdGhlIGVudHJ5IHBvaW50cyBvZiB5b3VyIGNvZGUgZnJvbSB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdC4gRS5nLiBgc3JjL2luZGV4LnRzYC5cbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgdHlwZSBFbnRyeVBvaW50cyA9IHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuLyoqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBCdWlsZCBvcHRpb25zIHBhc3NlZCBvbiB0byBlc2J1aWxkLiBQbGVhc2UgcmVmZXIgdG8gdGhlIGVzYnVpbGQgQnVpbGQgQVBJIGRvY3MgZm9yIGRldGFpbHMuXG4gICAqXG4gICAqICogYGJ1aWxkT3B0aW9ucy5vdXRkaXI6IHN0cmluZ2BcbiAgICogVGhlIGFjdHVhbCBwYXRoIGZvciB0aGUgb3V0cHV0IGRpcmVjdG9yeSBpcyBkZWZpbmVkIGJ5IENESy4gSG93ZXZlciBzZXR0aW5nIHRoaXMgb3B0aW9uIGFsbG93cyB0byB3cml0ZSBmaWxlcyBpbnRvIGEgc3ViZGlyZWN0b3J5LiBcXFxuICAgKiBGb3IgZXhhbXBsZSBgeyBvdXRkaXI6ICdqcycgfWAgd2lsbCBjcmVhdGUgYW4gYXNzZXQgd2l0aCBhIHNpbmdsZSBkaXJlY3RvcnkgY2FsbGVkIGBqc2AsIHdoaWNoIGNvbnRhaW5zIGFsbCBidWlsdCBmaWxlcy4gVGhpcyBhcHByb2FjaCBjYW4gYmUgdXNlZnVsIGZvciBzdGF0aWMgd2Vic2l0ZSBkZXBsb3ltZW50cywgd2hlcmUgSmF2YVNjcmlwdCBjb2RlIHNob3VsZCBiZSBwbGFjZWQgaW50byBhIHN1YmRpcmVjdG9yeS4gXFxcbiAgICogKkNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIHdpdGggYG91dGZpbGVgKi5cbiAgICogKiBgYnVpbGRPcHRpb25zLm91dGZpbGU6IHN0cmluZ2BcbiAgICogUmVsYXRpdmUgcGF0aCB0byBhIGZpbGUgaW5zaWRlIHRoZSBDREsgYXNzZXQgb3V0cHV0IGRpcmVjdG9yeS5cbiAgICogRm9yIGV4YW1wbGUgYHsgb3V0ZmlsZTogJ2pzL2luZGV4LmpzJyB9YCB3aWxsIGNyZWF0ZSBhbiBhc3NldCB3aXRoIGEgc2luZ2xlIGRpcmVjdG9yeSBjYWxsZWQgYGpzYCwgd2hpY2ggY29udGFpbnMgYSBzaW5nbGUgZmlsZSBgaW5kZXguanNgLiBUaGlzIGNhbiBiZSB1c2VmdWwgdG8gcmVuYW1lIHRoZSBlbnRyeSBwb2ludC4gXFxcbiAgICogKkNhbm5vdCBiZSB1c2VkIHdpdGggbXVsdGlwbGUgZW50cnlQb2ludHMgb3IgdG9nZXRoZXIgd2l0aCBgb3V0ZGlyYC4qXG4gICAqICogYGJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyOiBzdHJpbmdgXG4gICAqIEFic29sdXRlIHBhdGggdG8gdGhlIFtlc2J1aWxkIHdvcmtpbmcgZGlyZWN0b3J5XShodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jd29ya2luZy1kaXJlY3RvcnkpIGFuZCBkZWZhdWx0cyB0byB0aGUgW2N1cnJlbnQgd29ya2luZyBkaXJlY3RvcnldKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dvcmtpbmdfZGlyZWN0b3J5KS4gXFxcbiAgICogSWYgcGF0aHMgY2Fubm90IGJlIGZvdW5kLCBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgaXMgdG8gbG9vayBhdCB0aGUgY29uY2F0ZW5hdGlvbiBvZiBgYWJzV29ya2luZ0RpciArIGVudHJ5UG9pbnRgLiBJdCBtdXN0IGFsd2F5cyBiZSBhIHZhbGlkIGFic29sdXRlIHBhdGggcG9pbnRpbmcgdG8gdGhlIGVudHJ5IHBvaW50LiBXaGVuIG5lZWRlZCwgdGhlIHByb2JhYmx5IGVhc2llc3Qgd2F5IHRvIHNldCBhYnNXb3JraW5nRGlyIGlzIHRvIHVzZSBhIGNvbWJpbmF0aW9uIG9mIGByZXNvbHZlYCBhbmQgYF9fZGlybmFtZWAgKHNlZSBcIkxpYnJhcnkgYXV0aG9yc1wiIHNlY3Rpb24gaW4gdGhlIGRvY3VtZW50YXRpb24pLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyNidWlsZC1hcGlcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkT3B0aW9ucz86IEJ1aWxkT3B0aW9ucztcblxuICAvKipcbiAgICogQ29weSBhZGRpdGlvbmFsIGZpbGVzIHRvIHRoZSBjb2RlIFthc3NldCBzdGFnaW5nIGRpcmVjdG9yeV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nkay9hcGkvdjIvZG9jcy9hd3MtY2RrLWxpYi5Bc3NldFN0YWdpbmcuaHRtbCNhYnNvbHV0ZXN0YWdlZHBhdGgpLCBiZWZvcmUgdGhlIGJ1aWxkIHJ1bnMuXG4gICAqIEZpbGVzIGNvcGllZCBsaWtlIHRoaXMgd2lsbCBiZSBvdmVyd3JpdHRlbiBieSBlc2J1aWxkIGlmIHRoZXkgc2hhcmUgdGhlIHNhbWUgbmFtZSBhcyBhbnkgb2YgdGhlIG91dHB1dHMuXG4gICAqXG4gICAqICogV2hlbiBwcm92aWRlZCB3aXRoIGEgYHN0cmluZ2Agb3IgYGFycmF5YCwgYWxsIGZpbGVzIGFyZSBjb3BpZWQgdG8gdGhlIHJvb3Qgb2YgYXNzZXQgc3RhZ2luZyBkaXJlY3RvcnkuXG4gICAqICogV2hlbiBnaXZlbiBhIGBtYXBgLCB0aGUga2V5IGluZGljYXRlcyB0aGUgZGVzdGluYXRpb24gcmVsYXRpdmUgdG8gdGhlIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5IGFuZCB0aGUgdmFsdWUgaXMgYSBsaXN0IG9mIGFsbCBzb3VyY2VzIHRvIGJlIGNvcGllZC5cbiAgICpcbiAgICogVGhlcmVmb3JlIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGZvciBgY29weURpcmAgYXJlIGFsbCBlcXVpdmFsZW50OlxuICAgKiBgYGB0c1xuICAgKiB7IGNvcHlEaXI6IFwicGF0aC90by9zb3VyY2VcIiB9XG4gICAqIHsgY29weURpcjogW1wicGF0aC90by9zb3VyY2VcIl0gfVxuICAgKiB7IGNvcHlEaXI6IHsgXCIuXCI6IFwicGF0aC90by9zb3VyY2VcIiB9IH1cbiAgICogeyBjb3B5RGlyOiB7IFwiLlwiOiBbXCJwYXRoL3RvL3NvdXJjZVwiXSB9IH1cbiAgICogYGBgXG4gICAqIFRoZSBkZXN0aW5hdGlvbiBjYW5ub3QgYmUgb3V0c2lkZSBvZiB0aGUgYXNzZXQgc3RhZ2luZyBkaXJlY3RvcnkuXG4gICAqIElmIHlvdSBhcmUgcmVjZWl2aW5nIHRoZSBlcnJvciBcIkNhbm5vdCBjb3B5IGZpbGVzIHRvIG91dHNpZGUgb2YgdGhlIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5LlwiXG4gICAqIHlvdSBhcmUgbGlrZWx5IHVzaW5nIGAuLmAgb3IgYW4gYWJzb2x1dGUgcGF0aCBhcyBrZXkgb24gdGhlIGBjb3B5RGlyYCBtYXAuXG4gICAqIEluc3RlYWQgdXNlIG9ubHkgcmVsYXRpdmUgcGF0aHMgYW5kIGF2b2lkIGAuLmAuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBjb3B5RGlyPzogc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmcgW10+O1xuXG5cbiAgLyoqXG4gICAqIEVzY2FwZSBoYXRjaCB0byBwcm92aWRlIHRoZSBidW5kbGVyIHdpdGggYSBjdXN0b20gYnVpbGQgZnVuY3Rpb24uXG4gICAqIFRoZSBmdW5jdGlvbiB3aWxsIHJlY2VpdmUgdGhlIGNvbXB1dGVkIG9wdGlvbnMgZnJvbSB0aGUgYnVuZGxlci4gSXQgY2FuIHVzZSB3aXRoIHRoZXNlIG9wdGlvbnMgYXMgaXQgd2lzaGVzLCBob3dldmVyIGBvdXRkaXJgL2BvdXRmaWxlYCBtdXN0IGJlIHJlc3BlY3RlZCB0byBpbnRlZ3JhdGUgd2l0aCBDREsuXG4gICAqIE11c3QgdGhyb3cgYSBgQnVpbGRGYWlsdXJlYCBvbiBmYWlsdXJlIHRvIGNvcnJlY3RseSBpbmZvcm0gdGhlIGJ1bmRsZXIuXG4gICAqXG4gICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAqIEB0eXBlIGVzYnVpbGQuYnVpbGRTeW5jXG4gICAqIEByZXR1cm5zIGVzYnVpbGQuQnVpbGRSZXN1bHRcbiAgICogQHRocm93cyBlc2J1aWxkLkJ1aWxkRmFpbHVyZVxuICAgKiBAZGVmYXVsdCBlc2J1aWxkLmJ1aWxkU3luY1xuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRGbj86IGFueTtcbn1cblxuLyoqXG4gKiBMb3ctbGV2ZWwgY29uc3RydWN0IHRoYXQgY2FuIGJlIHVzZWQgd2hlcmUgYEJ1bmRsaW5nT3B0aW9uc2AgYXJlIHJlcXVpcmVkLlxuICogVGhpcyBjbGFzcyBkaXJlY3RseSBpbnRlcmZhY2VzIHdpdGggZXNidWlsZCBhbmQgcHJvdmlkZXMgYWxtb3N0IG5vIGNvbmZpZ3VyYXRpb24gc2FmZWd1YXJkcy5cbiAqXG4gKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgY2xhc3MgRXNidWlsZEJ1bmRsZXIge1xuICAvKipcbiAgICogSW1wbGVtZW50YXRpb24gb2YgYElMb2NhbEJ1bmRsaW5nYCBpbnRlcmZhY2UsIHJlc3BvbnNpYmxlIGZvciBjYWxsaW5nIGVzYnVpbGQgZnVuY3Rpb25zLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxvY2FsOiBJTG9jYWxCdW5kbGluZztcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyB2YWx1ZSBpcyBpZ25vcmVkIHNpbmNlIHRoZSBidW5kbGVyIGlzIGFsd2F5cyB1c2luZyBhIGxvY2FsbHkgaW5zdGFsbGVkIHZlcnNpb24gb2YgZXNidWlsZC4gSG93ZXZlciB0aGUgcHJvcGVydHkgaXMgcmVxdWlyZWQgdG8gY29tcGx5IHdpdGggdGhlIGBCdW5kbGluZ09wdGlvbnNgIGludGVyZmFjZS5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBkZXByZWNhdGVkXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW1hZ2UgPSBEb2NrZXJJbWFnZS5mcm9tUmVnaXN0cnkoJ3NjcmF0Y2gnKTtcblxuICAvKipcbiAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBBIHJlbGF0aXZlIHBhdGggb3IgbGlzdCBvciBtYXAgb2YgcmVsYXRpdmUgcGF0aHMgdG8gdGhlIGVudHJ5IHBvaW50cyBvZiB5b3VyIGNvZGUgZnJvbSB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdC5cbiAgICAgKiBFLmcuIGBzcmMvaW5kZXgudHNgLlxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZW50cnlQb2ludHM6IEVudHJ5UG9pbnRzLFxuXG4gICAgLyoqXG4gICAgICogUHJvcHMgdG8gY2hhbmdlIHRoZSBiZWhhdmlvdXIgb2YgdGhlIGJ1bmRsZXIuXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBwcm9wczogQnVuZGxlclByb3BzLFxuICApIHtcbiAgICBpZiAocHJvcHM/LmJ1aWxkT3B0aW9ucz8ub3V0ZmlsZSAmJiBwcm9wcz8uYnVpbGRPcHRpb25zPy5vdXRkaXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZSBib3RoIFwib3V0ZmlsZVwiIGFuZCBcIm91dGRpclwiJyk7XG4gICAgfVxuXG4gICAgY29uc3QgeyBidWlsZEZuID0gYnVpbGRTeW5jIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgdGhpcy5sb2NhbCA9IHtcbiAgICAgIHRyeUJ1bmRsZTogKG91dHB1dERpcjogc3RyaW5nLCBfb3B0aW9uczogQnVuZGxpbmdPcHRpb25zKTogYm9vbGVhbiA9PiB7XG5cbiAgICAgICAgaWYgKHRoaXMucHJvcHMuY29weURpcikge1xuICAgICAgICAgIGNvbnN0IGNvcHlEaXIgPSB0aGlzLmdldENvcHlEaXJMaXN0KHRoaXMucHJvcHMuY29weURpcik7XG5cbiAgICAgICAgICBjb3B5RGlyLmZvckVhY2goKFtkZXN0LCBzcmNdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzcmNEaXIgPSByZXNvbHZlKFxuICAgICAgICAgICAgICB0aGlzLnByb3BzPy5idWlsZE9wdGlvbnM/LmFic1dvcmtpbmdEaXIgPz8gcHJvY2Vzcy5jd2QoKSxcbiAgICAgICAgICAgICAgc3JjLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNvbnN0IGRlc3REaXIgPSByZXNvbHZlKG91dHB1dERpciwgZGVzdCkgO1xuXG4gICAgICAgICAgICBjb25zdCBkZXN0VG9PdXRwdXQgPSByZWxhdGl2ZShvdXRwdXREaXIsIGRlc3REaXIpO1xuICAgICAgICAgICAgaWYgKGRlc3RUb091dHB1dC5zdGFydHNXaXRoKCcuLicpIHx8IGlzQWJzb2x1dGUoZGVzdFRvT3V0cHV0KSkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb3B5IGZpbGVzIHRvIG91dHNpZGUgb2YgdGhlIGFzc2V0IHN0YWdpbmcgZGlyZWN0b3J5LiBTZWUgZG9jcyBmb3IgZGV0YWlscy4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbWtkaXJTeW5jKGRlc3REaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgRmlsZVN5c3RlbS5jb3B5RGlyZWN0b3J5KHNyY0RpciwgZGVzdERpcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGJ1aWxkUmVzdWx0OiBCdWlsZFJlc3VsdCA9IGJ1aWxkRm4oe1xuICAgICAgICAgICAgZW50cnlQb2ludHMsXG4gICAgICAgICAgICAuLi4odGhpcy5wcm9wcz8uYnVpbGRPcHRpb25zIHx8IHt9KSxcbiAgICAgICAgICAgIC4uLnRoaXMuZ2V0T3V0cHV0T3B0aW9ucyhvdXRwdXREaXIsIHsgbm9ybWFsaXplLCBqb2luIH0pLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcHJpbnRCdWlsZE1lc3NhZ2VzKGJ1aWxkUmVzdWx0LCB7IHByZWZpeDogJ0J1aWxkICcgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgcHJpbnRCdWlsZE1lc3NhZ2VzKGVycm9yIGFzIEJ1aWxkRmFpbHVyZSwgeyBwcmVmaXg6ICdCdWlsZCAnIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldENvcHlEaXJMaXN0KGNvcHlEaXI6IEJ1bmRsZXJQcm9wc1snY29weURpciddKTogQXJyYXk8W3N0cmluZywgc3RyaW5nXT4ge1xuICAgIC8vIE5vdGhpbmcgdG8gY29weVxuICAgIGlmICghY29weURpcikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIC8vIExpc3Qgb2Ygc3RyaW5nc1xuICAgIGlmIChBcnJheS5pc0FycmF5KGNvcHlEaXIpKSB7XG4gICAgICByZXR1cm4gY29weURpci5tYXAoKHNyYzogc3RyaW5nKSA9PiBbJy4nLCBzcmNdKTtcbiAgICB9XG5cbiAgICAvLyBBIG1hcFxuICAgIGlmIChcbiAgICAgIHR5cGVvZiBjb3B5RGlyID09PSAnb2JqZWN0JyAmJlxuICAgICAgIUFycmF5LmlzQXJyYXkoY29weURpcikgJiZcbiAgICAgIGNvcHlEaXIgIT09IG51bGxcbiAgICApIHtcbiAgICAgIHJldHVybiBPYmplY3RcbiAgICAgICAgLmVudHJpZXMoY29weURpcilcbiAgICAgICAgLmZsYXRNYXAoKFtkZXN0LCBzb3VyY2VzXSkgPT4ge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZXMpKSB7XG4gICAgICAgICAgICByZXR1cm4gc291cmNlcy5tYXAoKHNyYykgPT4gW2Rlc3QsIHNyY10pIGFzIEFycmF5PFtzdHJpbmcsIHN0cmluZ10+O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBbW2Rlc3QsIHNvdXJjZXNdXTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQSBzaW5nbGUgc3RyaW5nXG4gICAgcmV0dXJuIFtbJy4nLCBjb3B5RGlyIGFzIHN0cmluZ11dO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdXRwdXRPcHRpb25zKFxuICAgIGNka091dHB1dERpcjogc3RyaW5nLFxuICAgIHBhdGg6IFBpY2s8dHlwZW9mIHBvc2l4LCAnbm9ybWFsaXplJyB8ICdqb2luJz4gPSBwb3NpeCxcbiAgKTogQnVpbGRPcHRpb25zIHtcbiAgICBpZiAodGhpcy5wcm9wcz8uYnVpbGRPcHRpb25zPy5vdXRmaWxlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvdXRkaXI6IHVuZGVmaW5lZCxcbiAgICAgICAgb3V0ZmlsZTogcGF0aC5ub3JtYWxpemUoXG4gICAgICAgICAgcGF0aC5qb2luKFxuICAgICAgICAgICAgLi4uKFtjZGtPdXRwdXREaXIsIHRoaXMucHJvcHM/LmJ1aWxkT3B0aW9ucz8ub3V0ZmlsZV0uZmlsdGVyKFxuICAgICAgICAgICAgICBCb29sZWFuLFxuICAgICAgICAgICAgKSBhcyBzdHJpbmdbXSksXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG91dGRpcjogcGF0aC5ub3JtYWxpemUoXG4gICAgICAgIHBhdGguam9pbihcbiAgICAgICAgICAuLi4oW2Nka091dHB1dERpciwgdGhpcy5wcm9wcz8uYnVpbGRPcHRpb25zPy5vdXRkaXJdLmZpbHRlcihcbiAgICAgICAgICAgIEJvb2xlYW4sXG4gICAgICAgICAgKSBhcyBzdHJpbmdbXSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgICAgb3V0ZmlsZTogdW5kZWZpbmVkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
package/lib/code.js CHANGED
@@ -102,7 +102,7 @@ class JavaScriptCode extends Code {
102
102
  }
103
103
  exports.JavaScriptCode = JavaScriptCode;
104
104
  _a = JSII_RTTI_SYMBOL_1;
105
- JavaScriptCode[_a] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptCode", version: "4.0.0-alpha.4" };
105
+ JavaScriptCode[_a] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptCode", version: "4.0.0-alpha.5" };
106
106
  /**
107
107
  * Represents the deployed TypeScript Code.
108
108
  *
@@ -134,5 +134,5 @@ class TypeScriptCode extends Code {
134
134
  }
135
135
  exports.TypeScriptCode = TypeScriptCode;
136
136
  _b = JSII_RTTI_SYMBOL_1;
137
- TypeScriptCode[_b] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptCode", version: "4.0.0-alpha.4" };
137
+ TypeScriptCode[_b] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptCode", version: "4.0.0-alpha.5" };
138
138
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQWlEO0FBSWpELG1DQUtpQjtBQUlqQixTQUFTLGdCQUFnQjtJQUN2QixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQVc2RCxDQUFDO0FBQ0QsQ0FBQztBQUUvRCxNQUFlLElBQUk7SUFxQmpCOzs7O09BSUc7SUFDSCxZQUE0QixXQUF3QixFQUFFLEtBQVk7UUFBdEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFacEQ7Ozs7V0FJRztRQUNJLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFRL0IsTUFBTSxjQUFjLEdBQTBCO1lBQzVDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsUUFBUTtnQkFDakMsS0FBSyxDQUFDLFlBQVksRUFBRSxRQUFRLEtBQUssTUFBTTtnQkFDckMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxHQUFHLGdCQUFnQixFQUFFLEVBQUU7Z0JBQzNELENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDUixDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLEdBQUcsS0FBSztZQUNSLFdBQVc7WUFDWCxZQUFZLEVBQUU7Z0JBQ1osR0FBRyxjQUFjO2dCQUNqQixHQUFHLEtBQUssQ0FBQyxZQUFZO2FBQ3RCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBZ0I7UUFDbkIscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQzlCLEtBQUssRUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFDckIsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO1NBQ0g7YUFBTSxJQUFJLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuRCxNQUFNLElBQUksS0FBSyxDQUNiLG1EQUNFLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUN2QixLQUFLLEdBQUcsOENBQThDLENBQ3ZELENBQUM7U0FDSDtRQUVELE9BQU87WUFDTCxVQUFVLEVBQUU7Z0JBQ1YsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWTtnQkFDbkMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVzthQUNsQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGNBQWMsQ0FBQyxRQUFxQixFQUFFLE9BQTZCO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1NBQ2pFO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLEVBQUUsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDNUUsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDN0QsQ0FBQztDQUNGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsY0FBZSxTQUFRLElBQWtDO0lBR3BFO0lBQ0U7Ozs7O09BS0c7SUFDSCxXQUF3QjtJQUN4Qjs7Ozs7Ozs7O09BU0c7SUFDSCxRQUE2QixFQUFFO1FBRS9CLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUF0QlQsZUFBVSxHQUFHLHVCQUFPLENBQUM7SUF1QnhDLENBQUM7O0FBeEJILHdDQXlCQzs7O0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsY0FBZSxTQUFRLElBQWtDO0lBR3BFO0lBQ0U7Ozs7O09BS0c7SUFDSCxXQUF3QjtJQUN4Qjs7Ozs7Ozs7O09BU0c7SUFDSCxRQUE2QixFQUFFO1FBRS9CLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUF0QlQsZUFBVSxHQUFHLHVCQUFPLENBQUM7SUF1QnhDLENBQUM7O0FBeEJILHdDQXlCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENmblJlc291cmNlLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJlc291cmNlQmluZE9wdGlvbnMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHtcbiAgQXNzZXRCYXNlUHJvcHMsXG4gIEFzc2V0UHJvcHMsXG4gIEphdmFTY3JpcHRBc3NldCBhcyBKU0Fzc2V0LFxuICBUeXBlU2NyaXB0QXNzZXQgYXMgVFNBc3NldCxcbn0gZnJvbSAnLi9hc3NldCc7XG5pbXBvcnQgeyBFbnRyeVBvaW50cyB9IGZyb20gJy4vYnVuZGxlcic7XG5pbXBvcnQgeyBCdWlsZE9wdGlvbnMgfSBmcm9tICcuL2VzYnVpbGQtdHlwZXMnO1xuXG5mdW5jdGlvbiBub2RlTWFqb3JWZXJzaW9uKCk6IG51bWJlciB7XG4gIHJldHVybiBwYXJzZUludChwcm9jZXNzLnZlcnNpb25zLm5vZGUuc3BsaXQoJy4nKVswXSwgMTApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvZGVDb25maWcge1xuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIG9mIHRoZSBjb2RlIGluIFMzLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgczNMb2NhdGlvbjogTG9jYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSmF2YVNjcmlwdENvZGVQcm9wcyBleHRlbmRzIEFzc2V0QmFzZVByb3BzIHt9O1xuZXhwb3J0IGludGVyZmFjZSBUeXBlU2NyaXB0Q29kZVByb3BzIGV4dGVuZHMgQXNzZXRCYXNlUHJvcHMge307XG5cbmFic3RyYWN0IGNsYXNzIENvZGU8XG4gIFByb3BzIGV4dGVuZHMgSmF2YVNjcmlwdENvZGVQcm9wcyB8IFR5cGVTY3JpcHRDb2RlUHJvcHMsXG4gIEFzc2V0IGV4dGVuZHMgSlNBc3NldCB8IFRTQXNzZXRcbj4ge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZG9ubHkgYXNzZXRDbGFzczogbmV3IChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IEFzc2V0UHJvcHNcbiAgKSA9PiBBc3NldDtcblxuICBwcm90ZWN0ZWQgcHJvcHM6IEFzc2V0UHJvcHM7XG5cbiAgcHJvdGVjdGVkIGFzc2V0ITogQXNzZXQ7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGlzIENvZGUgaXMgaW5saW5lIGNvZGUgb3Igbm90LlxuICAgKlxuICAgKiBAZGVwcmVjYXRlZCB0aGlzIHZhbHVlIGlzIGlnbm9yZWQgc2luY2UgaW5saW5lIGlzIG5vdyBkZXRlcm1pbmVkIGJhc2VkIG9uIHRoZSB0aGUgaW5saW5lQ29kZSBmaWVsZCBvZiBDb2RlQ29uZmlnIHJldHVybmVkIGZyb20gYmluZCgpLlxuICAgKi9cbiAgcHVibGljIGlzSW5saW5lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBlbnRyeVBvaW50cyAtIFJlbGF0aXZlIHBhdGggdG8gdGhlIGFzc2V0IGNvZGUuIFVzZSBgcHJvcHMuYnVpbGRPcHRpb25zLmFic1dvcmtpbmdEaXJgIGlmIGFuIGFic29sdXRlIHBhdGggaXMgcmVxdWlyZWQuXG4gICAqIEBwYXJhbSBwcm9wcyAtIEFzc2V0IHByb3BlcnRpZXMuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgZW50cnlQb2ludHM6IEVudHJ5UG9pbnRzLCBwcm9wczogUHJvcHMpIHtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9uczogUGFydGlhbDxCdWlsZE9wdGlvbnM+ID0ge1xuICAgICAgLi4uKCFwcm9wcy5idWlsZE9wdGlvbnM/LnBsYXRmb3JtIHx8XG4gICAgICBwcm9wcy5idWlsZE9wdGlvbnM/LnBsYXRmb3JtID09PSAnbm9kZSdcbiAgICAgICAgPyB7IHBsYXRmb3JtOiAnbm9kZScsIHRhcmdldDogJ25vZGUnICsgbm9kZU1ham9yVmVyc2lvbigpIH1cbiAgICAgICAgOiB7fSksXG4gICAgfTtcblxuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGVudHJ5UG9pbnRzLFxuICAgICAgYnVpbGRPcHRpb25zOiB7XG4gICAgICAgIC4uLmRlZmF1bHRPcHRpb25zLFxuICAgICAgICAuLi5wcm9wcy5idWlsZE9wdGlvbnMsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QpOiBDb2RlQ29uZmlnIHtcbiAgICAvLyBJZiB0aGUgc2FtZSBBc3NldENvZGUgaXMgdXNlZCBtdWx0aXBsZSB0aW1lcywgcmV0YWluIG9ubHkgdGhlIGZpcnN0IGluc3RhbnRpYXRpb24uXG4gICAgaWYgKCF0aGlzLmFzc2V0KSB7XG4gICAgICB0aGlzLmFzc2V0ID0gbmV3IHRoaXMuYXNzZXRDbGFzcyhcbiAgICAgICAgc2NvcGUsXG4gICAgICAgIHRoaXMuY29uc3RydWN0b3IubmFtZSxcbiAgICAgICAgdGhpcy5wcm9wcyxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChTdGFjay5vZih0aGlzLmFzc2V0KSAhPT0gU3RhY2sub2Yoc2NvcGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBc3NldCBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCBhbm90aGVyIHN0YWNrICcke1xuICAgICAgICAgIFN0YWNrLm9mKHRoaXMuYXNzZXQpLnN0YWNrTmFtZVxuICAgICAgICB9Jy4gYCArICdDcmVhdGUgYSBuZXcgQXNzZXQgaW5zdGFuY2UgZm9yIGV2ZXJ5IHN0YWNrLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzM0xvY2F0aW9uOiB7XG4gICAgICAgIGJ1Y2tldE5hbWU6IHRoaXMuYXNzZXQuczNCdWNrZXROYW1lLFxuICAgICAgICBvYmplY3RLZXk6IHRoaXMuYXNzZXQuczNPYmplY3RLZXksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIHRoZSBDRk4gZnVuY3Rpb24gcmVzb3VyY2UgaGFzIGJlZW4gY3JlYXRlZCB0byBhbGxvdyB0aGUgY29kZSBjbGFzcyB0byBiaW5kIHRvIGl0LlxuICAgKlxuICAgKiBTcGVjaWZpY2FsbHkgaXQncyByZXF1aXJlZCB0byBhbGxvdyBhc3NldHMgdG8gYWRkXG4gICAqIG1ldGFkYXRhIGZvciB0b29saW5nIGxpa2UgU0FNIENMSSB0byBiZSBhYmxlIHRvIGZpbmQgdGhlaXIgb3JpZ2lucy5cbiAgICpcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIGJpbmRUb1Jlc291cmNlKHJlc291cmNlOiBDZm5SZXNvdXJjZSwgb3B0aW9ucz86IFJlc291cmNlQmluZE9wdGlvbnMpIHtcbiAgICBpZiAoIXRoaXMuYXNzZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYmluZFRvUmVzb3VyY2UoKSBtdXN0IGJlIGNhbGxlZCBhZnRlciBiaW5kKCknKTtcbiAgICB9XG4gICAgY29uc3QgcmVzb3VyY2VQcm9wZXJ0eSA9IG9wdGlvbnM/LnJlc291cmNlUHJvcGVydHkgfHwgdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvMTQzMlxuICAgIHRoaXMuYXNzZXQuYWRkUmVzb3VyY2VNZXRhZGF0YShyZXNvdXJjZSwgcmVzb3VyY2VQcm9wZXJ0eSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBkZXBsb3llZCBKYXZhU2NyaXB0IENvZGUuXG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIEphdmFTY3JpcHRDb2RlIGV4dGVuZHMgQ29kZTxKYXZhU2NyaXB0Q29kZVByb3BzLCBKU0Fzc2V0PiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBhc3NldENsYXNzID0gSlNBc3NldDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBBIHJlbGF0aXZlIHBhdGggb3IgbGlzdCBvciBtYXAgb2YgcmVsYXRpdmUgcGF0aHMgdG8gdGhlIGVudHJ5IHBvaW50cyBvZiB5b3VyIGNvZGUgZnJvbSB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdC5cbiAgICAgKiBFLmcuIGBzcmMvaW5kZXgudHNgLlxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICAgKi9cbiAgICBlbnRyeVBvaW50czogRW50cnlQb2ludHMsXG4gICAgLyoqXG4gICAgICogUHJvcHMgdG8gY2hhbmdlIHRoZSBiZWhhdmlvciBvZiB0aGUgYnVuZGxlci5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgcHJvcHMuYnVpbGRPcHRpb25zYDpcbiAgICAgKiAtIGBidW5kbGU9dHJ1ZWBcbiAgICAgKiAtIGBwbGF0Zm9ybT1ub2RlYFxuICAgICAqIC0gYHRhcmdldD1ub2RlWGAgd2l0aCBYIGJlaW5nIHRoZSBtYWpvciBub2RlIHZlcnNpb24gcnVubmluZyBsb2NhbGx5XG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgICAqL1xuICAgIHByb3BzOiBKYXZhU2NyaXB0Q29kZVByb3BzID0ge30sXG4gICkge1xuICAgIHN1cGVyKGVudHJ5UG9pbnRzLCBwcm9wcyk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBkZXBsb3llZCBUeXBlU2NyaXB0IENvZGUuXG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVTY3JpcHRDb2RlIGV4dGVuZHMgQ29kZTxUeXBlU2NyaXB0Q29kZVByb3BzLCBUU0Fzc2V0PiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBhc3NldENsYXNzID0gVFNBc3NldDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBBIHJlbGF0aXZlIHBhdGggb3IgbGlzdCBvciBtYXAgb2YgcmVsYXRpdmUgcGF0aHMgdG8gdGhlIGVudHJ5IHBvaW50cyBvZiB5b3VyIGNvZGUgZnJvbSB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdC5cbiAgICAgKiBFLmcuIGBzcmMvaW5kZXgudHNgLlxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICAgKi9cbiAgICBlbnRyeVBvaW50czogRW50cnlQb2ludHMsXG4gICAgLyoqXG4gICAgICogUHJvcHMgdG8gY2hhbmdlIHRoZSBiZWhhdmlvciBvZiB0aGUgYnVuZGxlci5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgcHJvcHMuYnVpbGRPcHRpb25zYDpcbiAgICAgKiAtIGBidW5kbGU9dHJ1ZWBcbiAgICAgKiAtIGBwbGF0Zm9ybT1ub2RlYFxuICAgICAqIC0gYHRhcmdldD1ub2RlWGAgd2l0aCBYIGJlaW5nIHRoZSBtYWpvciBub2RlIHZlcnNpb24gcnVubmluZyBsb2NhbGx5XG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgICAqL1xuICAgIHByb3BzOiBUeXBlU2NyaXB0Q29kZVByb3BzID0ge30sXG4gICkge1xuICAgIHN1cGVyKGVudHJ5UG9pbnRzLCBwcm9wcyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,13 +1,26 @@
1
1
  "use strict";
2
- /* eslint-disable import/no-extraneous-dependencies */
3
2
  Object.defineProperty(exports, "__esModule", { value: true });
4
3
  exports.transformSync = exports.formatMessagesSync = exports.buildSync = void 0;
4
+ const which = require("which");
5
+ /* eslint-disable import/no-extraneous-dependencies */
5
6
  function esbuild() {
6
7
  try {
7
8
  // eslint-disable-next-line @typescript-eslint/no-require-imports
8
9
  return require('esbuild');
9
10
  }
10
- catch (error) {
11
+ catch (_one) {
12
+ /**
13
+ * esbuild is not installed. We fallback to use a (hopefully available)
14
+ * global binary and our bundled polyfill.
15
+ */
16
+ try {
17
+ if (!process.env?.ESBUILD_BINARY_PATH) {
18
+ process.env.ESBUILD_BINARY_PATH = which.sync('esbuild');
19
+ }
20
+ }
21
+ catch (_two) {
22
+ throw new Error('The esbuild binary could not be found in path. Please follow the instructions to ensure esbuild is correctly installed.');
23
+ }
11
24
  // eslint-disable-next-line @typescript-eslint/no-require-imports
12
25
  return require('./esbuild-polyfill');
13
26
  }
@@ -15,4 +28,4 @@ function esbuild() {
15
28
  exports.buildSync = esbuild().buildSync;
16
29
  exports.formatMessagesSync = esbuild().formatMessagesSync;
17
30
  exports.transformSync = esbuild().transformSync;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNidWlsZC13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VzYnVpbGQtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsc0RBQXNEOzs7QUFFdEQsU0FBUyxPQUFPO0lBQ2QsSUFBSTtRQUNGLGlFQUFpRTtRQUNqRSxPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUMzQjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsaUVBQWlFO1FBQ2pFLE9BQU8sT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUM7S0FDdEM7QUFDSCxDQUFDO0FBRVksUUFBQSxTQUFTLEdBQUcsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDO0FBQ2hDLFFBQUEsa0JBQWtCLEdBQUcsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7QUFDbEQsUUFBQSxhQUFhLEdBQUcsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5cbmZ1bmN0aW9uIGVzYnVpbGQoKSB7XG4gIHRyeSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICByZXR1cm4gcmVxdWlyZSgnZXNidWlsZCcpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgcmV0dXJuIHJlcXVpcmUoJy4vZXNidWlsZC1wb2x5ZmlsbCcpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZFN5bmMgPSBlc2J1aWxkKCkuYnVpbGRTeW5jO1xuZXhwb3J0IGNvbnN0IGZvcm1hdE1lc3NhZ2VzU3luYyA9IGVzYnVpbGQoKS5mb3JtYXRNZXNzYWdlc1N5bmM7XG5leHBvcnQgY29uc3QgdHJhbnNmb3JtU3luYyA9IGVzYnVpbGQoKS50cmFuc2Zvcm1TeW5jO1xuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNidWlsZC13cmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VzYnVpbGQtd3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBK0I7QUFFL0Isc0RBQXNEO0FBRXRELFNBQVMsT0FBTztJQUNkLElBQUk7UUFDRixpRUFBaUU7UUFDakUsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDM0I7SUFBQyxPQUFPLElBQUksRUFBRTtRQUNiOzs7V0FHRztRQUNILElBQUk7WUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsRUFBRTtnQkFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3pEO1NBQ0Y7UUFBQyxPQUFPLElBQUksRUFBRTtZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMseUhBQXlILENBQUMsQ0FBQztTQUM1STtRQUVELGlFQUFpRTtRQUNqRSxPQUFPLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0tBQ3RDO0FBQ0gsQ0FBQztBQUVZLFFBQUEsU0FBUyxHQUFHLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQztBQUNoQyxRQUFBLGtCQUFrQixHQUFHLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO0FBQ2xELFFBQUEsYUFBYSxHQUFHLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHdoaWNoIGZyb20gJ3doaWNoJztcblxuLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovXG5cbmZ1bmN0aW9uIGVzYnVpbGQoKSB7XG4gIHRyeSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgICByZXR1cm4gcmVxdWlyZSgnZXNidWlsZCcpO1xuICB9IGNhdGNoIChfb25lKSB7XG4gICAgLyoqXG4gICAgICogZXNidWlsZCBpcyBub3QgaW5zdGFsbGVkLiBXZSBmYWxsYmFjayB0byB1c2UgYSAoaG9wZWZ1bGx5IGF2YWlsYWJsZSlcbiAgICAgKiBnbG9iYWwgYmluYXJ5IGFuZCBvdXIgYnVuZGxlZCBwb2x5ZmlsbC5cbiAgICAgKi9cbiAgICB0cnkge1xuICAgICAgaWYgKCFwcm9jZXNzLmVudj8uRVNCVUlMRF9CSU5BUllfUEFUSCkge1xuICAgICAgICBwcm9jZXNzLmVudi5FU0JVSUxEX0JJTkFSWV9QQVRIID0gd2hpY2guc3luYygnZXNidWlsZCcpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKF90d28pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGVzYnVpbGQgYmluYXJ5IGNvdWxkIG5vdCBiZSBmb3VuZCBpbiBwYXRoLiBQbGVhc2UgZm9sbG93IHRoZSBpbnN0cnVjdGlvbnMgdG8gZW5zdXJlIGVzYnVpbGQgaXMgY29ycmVjdGx5IGluc3RhbGxlZC4nKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICAgIHJldHVybiByZXF1aXJlKCcuL2VzYnVpbGQtcG9seWZpbGwnKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgYnVpbGRTeW5jID0gZXNidWlsZCgpLmJ1aWxkU3luYztcbmV4cG9ydCBjb25zdCBmb3JtYXRNZXNzYWdlc1N5bmMgPSBlc2J1aWxkKCkuZm9ybWF0TWVzc2FnZXNTeW5jO1xuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVN5bmMgPSBlc2J1aWxkKCkudHJhbnNmb3JtU3luYztcbiJdfQ==
@@ -70,7 +70,7 @@ class InlineJavaScriptCode extends BaseInlineCode {
70
70
  }
71
71
  exports.InlineJavaScriptCode = InlineJavaScriptCode;
72
72
  _a = JSII_RTTI_SYMBOL_1;
73
- InlineJavaScriptCode[_a] = { fqn: "@mrgrain/cdk-esbuild.InlineJavaScriptCode", version: "4.0.0-alpha.4" };
73
+ InlineJavaScriptCode[_a] = { fqn: "@mrgrain/cdk-esbuild.InlineJavaScriptCode", version: "4.0.0-alpha.5" };
74
74
  /**
75
75
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
76
76
  *
@@ -101,7 +101,7 @@ class InlineJsxCode extends BaseInlineCode {
101
101
  }
102
102
  exports.InlineJsxCode = InlineJsxCode;
103
103
  _b = JSII_RTTI_SYMBOL_1;
104
- InlineJsxCode[_b] = { fqn: "@mrgrain/cdk-esbuild.InlineJsxCode", version: "4.0.0-alpha.4" };
104
+ InlineJsxCode[_b] = { fqn: "@mrgrain/cdk-esbuild.InlineJsxCode", version: "4.0.0-alpha.5" };
105
105
  /**
106
106
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
107
107
  *
@@ -132,7 +132,7 @@ class InlineTypeScriptCode extends BaseInlineCode {
132
132
  }
133
133
  exports.InlineTypeScriptCode = InlineTypeScriptCode;
134
134
  _c = JSII_RTTI_SYMBOL_1;
135
- InlineTypeScriptCode[_c] = { fqn: "@mrgrain/cdk-esbuild.InlineTypeScriptCode", version: "4.0.0-alpha.4" };
135
+ InlineTypeScriptCode[_c] = { fqn: "@mrgrain/cdk-esbuild.InlineTypeScriptCode", version: "4.0.0-alpha.5" };
136
136
  /**
137
137
  * An implementation of `lambda.InlineCode` using the esbuild Transform API. Inline function code is limited to 4 KiB after transformation.
138
138
  *
@@ -163,5 +163,5 @@ class InlineTsxCode extends BaseInlineCode {
163
163
  }
164
164
  exports.InlineTsxCode = InlineTsxCode;
165
165
  _d = JSII_RTTI_SYMBOL_1;
166
- InlineTsxCode[_d] = { fqn: "@mrgrain/cdk-esbuild.InlineTsxCode", version: "4.0.0-alpha.4" };
166
+ InlineTsxCode[_d] = { fqn: "@mrgrain/cdk-esbuild.InlineTsxCode", version: "4.0.0-alpha.5" };
167
167
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5saW5lLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5saW5lLWNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSx1REFBb0Q7QUFFcEQsdURBQWtEO0FBQ2xELHFEQUFzRDtBQTRCdEQsTUFBZSxjQUFlLFNBQVEsdUJBQVU7SUFDOUMsWUFDRSxJQUFZLEVBQ1osS0FBdUI7UUFHdkIsTUFBTSxFQUFFLFdBQVcsR0FBRywrQkFBYSxFQUFFLGdCQUFnQixHQUFHLEVBQUUsRUFBRSxHQUFHLEtBQUssQ0FBQztRQUVyRSxJQUFJO1lBQ0YsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRTtnQkFDeEMsR0FBRyxnQkFBZ0I7YUFDcEIsQ0FBQyxDQUFDO1lBQ0gsbUNBQWtCLENBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7WUFFOUQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsbUNBQWtCLENBQUMsS0FBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBRXhFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNuRDtJQUNILENBQUM7Q0FDRjtBQUVELFNBQVMsMEJBQTBCLENBQUMsTUFBVztJQUM3QyxPQUFPLGtCQUFrQixJQUFJLE1BQU0sSUFBSSxhQUFhLElBQUksTUFBTSxDQUFDO0FBQ2pFLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLE1BQWMsRUFBRSxLQUEyQztJQUNuRixJQUFJLENBQUMsS0FBSyxFQUFFO1FBQ1YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQztLQUN6QztJQUVELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsRUFBRztRQUN2QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxDQUFDO0tBQ25EO0lBRUQsT0FBTztRQUNMLEdBQUcsS0FBSztRQUNSLGdCQUFnQixFQUFFO1lBQ2hCLE1BQU07WUFDTixHQUFHLEtBQUssQ0FBQyxnQkFBZ0I7U0FDMUI7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUdEOzs7O0dBSUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLGNBQWM7SUFDdEQ7SUFDRTs7OztPQUlHO0lBQ0gsSUFBWTtJQUNaOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUEyQztRQUczQyxLQUFLLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7O0FBdkJILG9EQXdCQzs7O0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsYUFBYyxTQUFRLGNBQWM7SUFDL0M7SUFDRTs7OztPQUlHO0lBQ0gsSUFBWTtJQUNaOzs7Ozs7Ozs7O09BVUc7SUFDSCxLQUEyQztRQUUzQyxLQUFLLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7O0FBdEJILHNDQXVCQzs7O0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsY0FBYztJQUN0RDtJQUNFOzs7O09BSUc7SUFDSCxJQUFZO0lBQ1o7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQTJDO1FBRTNDLEtBQUssQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7QUF0Qkgsb0RBdUJDOzs7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsY0FBYztJQUMvQztJQUNFOzs7O09BSUc7SUFDSCxJQUFZO0lBQ1o7Ozs7Ozs7Ozs7T0FVRztJQUNILEtBQTJDO1FBRTNDLEtBQUssQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7QUF0Qkgsc0NBdUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5saW5lQ29kZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgVHJhbnNmb3JtT3B0aW9ucywgTG9hZGVyLCBUcmFuc2Zvcm1GYWlsdXJlIH0gZnJvbSAnLi9lc2J1aWxkLXR5cGVzJztcbmltcG9ydCB7IHRyYW5zZm9ybVN5bmMgfSBmcm9tICcuL2VzYnVpbGQtd3JhcHBlcic7XG5pbXBvcnQgeyBwcmludEJ1aWxkTWVzc2FnZXMgfSBmcm9tICcuL2Zvcm1hdE1lc3NhZ2VzJztcblxuLyoqXG4gKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zZm9ybWVyUHJvcHMge1xuICAvKipcbiAgICogVHJhbnNmb3JtIG9wdGlvbnMgcGFzc2VkIG9uIHRvIGVzYnVpbGQuIFBsZWFzZSByZWZlciB0byB0aGUgZXNidWlsZCBUcmFuc2Zvcm0gQVBJIGRvY3MgZm9yIGRldGFpbHMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9lc2J1aWxkLmdpdGh1Yi5pby9hcGkvI3RyYW5zZm9ybS1hcGlcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zZm9ybU9wdGlvbnM/OiBUcmFuc2Zvcm1PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBFc2NhcGUgaGF0Y2ggdG8gcHJvdmlkZSB0aGUgYnVuZGxlciB3aXRoIGEgY3VzdG9tIHRyYW5zZm9ybSBmdW5jdGlvbi5cbiAgICogVGhlIGZ1bmN0aW9uIHdpbGwgcmVjZWl2ZSB0aGUgY29tcHV0ZWQgb3B0aW9ucyBmcm9tIHRoZSBidW5kbGVyLiBJdCBjYW4gdXNlIHdpdGggdGhlc2Ugb3B0aW9ucyBhcyBpdCB3aXNoZXMsIGhvd2V2ZXIgYSBUcmFuc2Zvcm1SZXN1bHQgbXVzdCBiZSByZXR1cm5lZCB0byBpbnRlZ3JhdGUgd2l0aCBDREsuXG4gICAqIE11c3QgdGhyb3cgYSBgVHJhbnNmb3JtRmFpbHVyZWAgb24gZmFpbHVyZSB0byBjb3JyZWN0bHkgaW5mb3JtIHRoZSBidW5kbGVyLlxuICAgKlxuICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgKiBAdHlwZSBlc2J1aWxkLnRyYW5zZm9ybVN5bmNcbiAgICogQHJldHVybnMgZXNidWlsZC5UcmFuc2Zvcm1SZXN1bHRcbiAgICogQHRocm93cyBlc2J1aWxkLlRyYW5zZm9ybUZhaWx1cmVcbiAgICogQGRlZmF1bHQgZXNidWlsZC50cmFuc2Zvcm1TeW5jXG4gICAqL1xuICByZWFkb25seSB0cmFuc2Zvcm1Gbj86IGFueTtcbn1cblxuYWJzdHJhY3QgY2xhc3MgQmFzZUlubGluZUNvZGUgZXh0ZW5kcyBJbmxpbmVDb2RlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIGNvZGU6IHN0cmluZyxcbiAgICBwcm9wczogVHJhbnNmb3JtZXJQcm9wcyxcbiAgKSB7XG5cbiAgICBjb25zdCB7IHRyYW5zZm9ybUZuID0gdHJhbnNmb3JtU3luYywgdHJhbnNmb3JtT3B0aW9ucyA9IHt9IH0gPSBwcm9wcztcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0cmFuc2Zvcm1lZENvZGUgPSB0cmFuc2Zvcm1Gbihjb2RlLCB7XG4gICAgICAgIC4uLnRyYW5zZm9ybU9wdGlvbnMsXG4gICAgICB9KTtcbiAgICAgIHByaW50QnVpbGRNZXNzYWdlcyh0cmFuc2Zvcm1lZENvZGUsIHsgcHJlZml4OiAnVHJhbnNmb3JtICcgfSk7XG5cbiAgICAgIHN1cGVyKHRyYW5zZm9ybWVkQ29kZS5jb2RlKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcHJpbnRCdWlsZE1lc3NhZ2VzKGVycm9yIGFzIFRyYW5zZm9ybUZhaWx1cmUsIHsgcHJlZml4OiAnVHJhbnNmb3JtICcgfSk7XG5cbiAgICAgIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIHRyYW5zZm9ybSBJbmxpbmVDb2RlJyk7XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIGluc3RhbmNlT2ZUcmFuc2Zvcm1lclByb3BzKG9iamVjdDogYW55KTogb2JqZWN0IGlzIFRyYW5zZm9ybWVyUHJvcHMge1xuICByZXR1cm4gJ3RyYW5zZm9ybU9wdGlvbnMnIGluIG9iamVjdCB8fCAndHJhbnNmb3JtRm4nIGluIG9iamVjdDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtZXJQcm9wcyhsb2FkZXI6IExvYWRlciwgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzIHwgVHJhbnNmb3JtT3B0aW9ucyk6IFRyYW5zZm9ybWVyUHJvcHMge1xuICBpZiAoIXByb3BzKSB7XG4gICAgcmV0dXJuIHsgdHJhbnNmb3JtT3B0aW9uczogeyBsb2FkZXIgfSB9O1xuICB9XG5cbiAgaWYgKCFpbnN0YW5jZU9mVHJhbnNmb3JtZXJQcm9wcyhwcm9wcykgKSB7XG4gICAgcmV0dXJuIHsgdHJhbnNmb3JtT3B0aW9uczogeyBsb2FkZXIsIC4uLnByb3BzIH0gfTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4ucHJvcHMsXG4gICAgdHJhbnNmb3JtT3B0aW9uczoge1xuICAgICAgbG9hZGVyLFxuICAgICAgLi4ucHJvcHMudHJhbnNmb3JtT3B0aW9ucyxcbiAgICB9LFxuICB9O1xufVxuXG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYGxhbWJkYS5JbmxpbmVDb2RlYCB1c2luZyB0aGUgZXNidWlsZCBUcmFuc2Zvcm0gQVBJLiBJbmxpbmUgZnVuY3Rpb24gY29kZSBpcyBsaW1pdGVkIHRvIDQgS2lCIGFmdGVyIHRyYW5zZm9ybWF0aW9uLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVKYXZhU2NyaXB0Q29kZSBleHRlbmRzIEJhc2VJbmxpbmVDb2RlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBpbmxpbmUgY29kZSB0byBiZSB0cmFuc2Zvcm1lZC5cbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgY29kZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFN1cHBvcnQgZm9yIGBUcmFuc2Zvcm1PcHRpb25zYCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgcHJvdmlkZSBgVHJhbnNmb3JtZXJQcm9wc2AhXG4gICAgICpcbiAgICAgKiBQcm9wcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW91ciBvZiB0aGUgdHJhbnNmb3JtZXIuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgYHByb3BzLnRyYW5zZm9ybU9wdGlvbnNgOlxuICAgICAqIC0gYGxvYWRlcj0nanMnYFxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzIHwgVHJhbnNmb3JtT3B0aW9ucyxcbiAgKSB7XG5cbiAgICBzdXBlcihjb2RlLCB0cmFuc2Zvcm1lclByb3BzKCdqcycsIHByb3BzKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiBgbGFtYmRhLklubGluZUNvZGVgIHVzaW5nIHRoZSBlc2J1aWxkIFRyYW5zZm9ybSBBUEkuIElubGluZSBmdW5jdGlvbiBjb2RlIGlzIGxpbWl0ZWQgdG8gNCBLaUIgYWZ0ZXIgdHJhbnNmb3JtYXRpb24uXG4gKlxuICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGNsYXNzIElubGluZUpzeENvZGUgZXh0ZW5kcyBCYXNlSW5saW5lQ29kZSB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBUaGUgaW5saW5lIGNvZGUgdG8gYmUgdHJhbnNmb3JtZWQuXG4gICAgICpcbiAgICAgKiBAc3RhYmlsaXR5IGV4cGVyaW1lbnRhbFxuICAgICAqL1xuICAgIGNvZGU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBTdXBwb3J0IGZvciBgVHJhbnNmb3JtT3B0aW9uc2AgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHByb3ZpZGUgYFRyYW5zZm9ybWVyUHJvcHNgIVxuICAgICAqXG4gICAgICogUHJvcHMgdG8gY2hhbmdlIHRoZSBiZWhhdmlvdXIgb2YgdGhlIHRyYW5zZm9ybWVyLlxuICAgICAqXG4gICAgICogRGVmYXVsdCB2YWx1ZXMgZm9yIGB0cmFuc2Zvcm1PcHRpb25zYDpcbiAgICAgKiAtIGBsb2FkZXI9J2pzeCdgXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vZXNidWlsZC5naXRodWIuaW8vYXBpLyN0cmFuc2Zvcm0tYXBpXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBwcm9wcz86IFRyYW5zZm9ybWVyUHJvcHMgfCBUcmFuc2Zvcm1PcHRpb25zLFxuICApIHtcbiAgICBzdXBlcihjb2RlLCB0cmFuc2Zvcm1lclByb3BzKCdqc3gnLCBwcm9wcykpO1xuICB9XG59XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYGxhbWJkYS5JbmxpbmVDb2RlYCB1c2luZyB0aGUgZXNidWlsZCBUcmFuc2Zvcm0gQVBJLiBJbmxpbmUgZnVuY3Rpb24gY29kZSBpcyBsaW1pdGVkIHRvIDQgS2lCIGFmdGVyIHRyYW5zZm9ybWF0aW9uLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVUeXBlU2NyaXB0Q29kZSBleHRlbmRzIEJhc2VJbmxpbmVDb2RlIHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBpbmxpbmUgY29kZSB0byBiZSB0cmFuc2Zvcm1lZC5cbiAgICAgKlxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgY29kZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFN1cHBvcnQgZm9yIGBUcmFuc2Zvcm1PcHRpb25zYCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgcHJvdmlkZSBgVHJhbnNmb3JtZXJQcm9wc2AhXG4gICAgICpcbiAgICAgKiBQcm9wcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW91ciBvZiB0aGUgdHJhbnNmb3JtZXIuXG4gICAgICpcbiAgICAgKiBEZWZhdWx0IHZhbHVlcyBmb3IgYHRyYW5zZm9ybU9wdGlvbnNgOlxuICAgICAqIC0gYGxvYWRlcj0ndHMnYFxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzIHwgVHJhbnNmb3JtT3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIoY29kZSwgdHJhbnNmb3JtZXJQcm9wcygndHMnLCBwcm9wcykpO1xuICB9XG59XG5cbi8qKlxuICogQW4gaW1wbGVtZW50YXRpb24gb2YgYGxhbWJkYS5JbmxpbmVDb2RlYCB1c2luZyB0aGUgZXNidWlsZCBUcmFuc2Zvcm0gQVBJLiBJbmxpbmUgZnVuY3Rpb24gY29kZSBpcyBsaW1pdGVkIHRvIDQgS2lCIGFmdGVyIHRyYW5zZm9ybWF0aW9uLlxuICpcbiAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVUc3hDb2RlIGV4dGVuZHMgQmFzZUlubGluZUNvZGUge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogVGhlIGlubGluZSBjb2RlIHRvIGJlIHRyYW5zZm9ybWVkLlxuICAgICAqXG4gICAgICogQHN0YWJpbGl0eSBleHBlcmltZW50YWxcbiAgICAgKi9cbiAgICBjb2RlOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogU3VwcG9ydCBmb3IgYFRyYW5zZm9ybU9wdGlvbnNgIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSBwcm92aWRlIGBUcmFuc2Zvcm1lclByb3BzYCFcbiAgICAgKlxuICAgICAqIFByb3BzIHRvIGNoYW5nZSB0aGUgYmVoYXZpb3VyIG9mIHRoZSB0cmFuc2Zvcm1lci5cbiAgICAgKlxuICAgICAqIERlZmF1bHQgdmFsdWVzIGZvciBgdHJhbnNmb3JtT3B0aW9uc2A6XG4gICAgICogLSBgbG9hZGVyPSd0c3gnYFxuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL2VzYnVpbGQuZ2l0aHViLmlvL2FwaS8jdHJhbnNmb3JtLWFwaVxuICAgICAqIEBzdGFiaWxpdHkgZXhwZXJpbWVudGFsXG4gICAgICovXG4gICAgcHJvcHM/OiBUcmFuc2Zvcm1lclByb3BzIHwgVHJhbnNmb3JtT3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIoY29kZSwgdHJhbnNmb3JtZXJQcm9wcygndHN4JywgcHJvcHMpKTtcbiAgfVxufVxuIl19
package/lib/source.js CHANGED
@@ -55,7 +55,7 @@ class JavaScriptSource extends Source {
55
55
  }
56
56
  exports.JavaScriptSource = JavaScriptSource;
57
57
  _a = JSII_RTTI_SYMBOL_1;
58
- JavaScriptSource[_a] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptSource", version: "4.0.0-alpha.4" };
58
+ JavaScriptSource[_a] = { fqn: "@mrgrain/cdk-esbuild.JavaScriptSource", version: "4.0.0-alpha.5" };
59
59
  class TypeScriptSource extends Source {
60
60
  constructor(entryPoints, props = {}) {
61
61
  super(entryPoints, props);
@@ -64,5 +64,5 @@ class TypeScriptSource extends Source {
64
64
  }
65
65
  exports.TypeScriptSource = TypeScriptSource;
66
66
  _b = JSII_RTTI_SYMBOL_1;
67
- TypeScriptSource[_b] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptSource", version: "4.0.0-alpha.4" };
67
+ TypeScriptSource[_b] = { fqn: "@mrgrain/cdk-esbuild.TypeScriptSource", version: "4.0.0-alpha.5" };
68
68
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFvQztBQU9wQyxtQ0FBdUY7QUFJeEIsQ0FBQztBQUNELENBQUM7QUFFaEUsTUFBZSxNQUFNO0lBY25COzs7O09BSUc7SUFDSCxZQUFZLFdBQXdCLEVBQUUsS0FBWTtRQUNoRCxNQUFNLGNBQWMsR0FBMEI7WUFDNUMsUUFBUSxFQUFFLFNBQVM7U0FDcEIsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUc7WUFDWCxXQUFXO1lBQ1gsR0FBRyxLQUFLO1lBQ1IsWUFBWSxFQUFFO2dCQUNaLEdBQUcsY0FBYztnQkFDakIsR0FBRyxLQUFLLENBQUMsWUFBWTthQUN0QjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDLEtBQWdCLEVBQUUsT0FBaUM7UUFDdEQscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQzlCLEtBQUssRUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFDckIsSUFBSSxDQUFDLEtBQUssQ0FDWCxDQUFDO1NBQ0g7YUFBTSxJQUFJLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuRCxNQUFNLElBQUksS0FBSyxDQUNiLG1EQUNFLG1CQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUN2QixLQUFLLEdBQUcsOENBQThDLENBQ3ZELENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUNiLFlBQVksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLDRCQUE0QixDQUM5RCxDQUFDO1NBQ0g7UUFFRCx3RUFBd0U7UUFDeEUsc0VBQXNFO1FBQ3RFLDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpELE9BQU87WUFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ3pCLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVc7U0FDckMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQUVELE1BQWEsZ0JBQWlCLFNBQVEsTUFHckM7SUFHQyxZQUNFLFdBQXdCLEVBQ3hCLFFBQStCLEVBQUU7UUFFakMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQU41QixlQUFVLEdBQUcsdUJBQWUsQ0FBQztJQU83QixDQUFDOztBQVhILDRDQVlDOzs7QUFFRCxNQUFhLGdCQUFpQixTQUFRLE1BR3JDO0lBR0MsWUFDRSxXQUF3QixFQUN4QixRQUErQixFQUFFO1FBRWpDLEtBQUssQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFONUIsZUFBVSxHQUFHLHVCQUFlLENBQUM7SUFPN0IsQ0FBQzs7QUFYSCw0Q0FZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHtcbiAgRGVwbG95bWVudFNvdXJjZUNvbnRleHQsXG4gIElTb3VyY2UsXG4gIFNvdXJjZUNvbmZpZyxcbn0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzLWRlcGxveW1lbnQnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBBc3NldEJhc2VQcm9wcywgQXNzZXRQcm9wcywgSmF2YVNjcmlwdEFzc2V0LCBUeXBlU2NyaXB0QXNzZXQgfSBmcm9tICcuL2Fzc2V0JztcbmltcG9ydCB7IEVudHJ5UG9pbnRzIH0gZnJvbSAnLi9idW5kbGVyJztcbmltcG9ydCB7IEJ1aWxkT3B0aW9ucyB9IGZyb20gJy4vZXNidWlsZC10eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSmF2YVNjcmlwdFNvdXJjZVByb3BzIGV4dGVuZHMgQXNzZXRCYXNlUHJvcHN7fTtcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZVNjcmlwdFNvdXJjZVByb3BzIGV4dGVuZHMgQXNzZXRCYXNlUHJvcHN7fTtcblxuYWJzdHJhY3QgY2xhc3MgU291cmNlPFxuICBQcm9wcyBleHRlbmRzIEphdmFTY3JpcHRTb3VyY2VQcm9wcyB8IFR5cGVTY3JpcHRTb3VyY2VQcm9wcyxcbiAgQXNzZXQgZXh0ZW5kcyBKYXZhU2NyaXB0QXNzZXQgfCBUeXBlU2NyaXB0QXNzZXQsXG4+IGltcGxlbWVudHMgSVNvdXJjZSB7XG4gIHByb3RlY3RlZCByZWFkb25seSBhYnN0cmFjdCBhc3NldENsYXNzOiBuZXcgKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogQXNzZXRQcm9wcyxcbiAgKSA9PiBBc3NldDtcblxuICBwcm90ZWN0ZWQgcHJvcHM6IEFzc2V0UHJvcHM7XG5cbiAgcHJvdGVjdGVkIGFzc2V0ITogQXNzZXQ7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBlbnRyeVBvaW50cyAtIFJlbGF0aXZlIHBhdGggdG8gdGhlIHNvdXJjZSBjb2RlLiBVc2UgYHByb3BzLmJ1aWxkT3B0aW9ucy5hYnNXb3JraW5nRGlyYCBpZiBhbiBhYnNvbHV0ZSBwYXRoIGlzIHJlcXVpcmVkLlxuICAgKiBAcGFyYW0gcHJvcHMgLSBTb3VyY2UgcHJvcGVydGllcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGVudHJ5UG9pbnRzOiBFbnRyeVBvaW50cywgcHJvcHM6IFByb3BzKSB7XG4gICAgY29uc3QgZGVmYXVsdE9wdGlvbnM6IFBhcnRpYWw8QnVpbGRPcHRpb25zPiA9IHtcbiAgICAgIHBsYXRmb3JtOiAnYnJvd3NlcicsXG4gICAgfTtcblxuICAgIHRoaXMucHJvcHMgPSB7XG4gICAgICBlbnRyeVBvaW50cyxcbiAgICAgIC4uLnByb3BzLFxuICAgICAgYnVpbGRPcHRpb25zOiB7XG4gICAgICAgIC4uLmRlZmF1bHRPcHRpb25zLFxuICAgICAgICAuLi5wcm9wcy5idWlsZE9wdGlvbnMsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIGNvbnRleHQ/OiBEZXBsb3ltZW50U291cmNlQ29udGV4dCk6IFNvdXJjZUNvbmZpZyB7XG4gICAgLy8gSWYgdGhlIHNhbWUgQXNzZXRDb2RlIGlzIHVzZWQgbXVsdGlwbGUgdGltZXMsIHJldGFpbiBvbmx5IHRoZSBmaXJzdCBpbnN0YW50aWF0aW9uLlxuICAgIGlmICghdGhpcy5hc3NldCkge1xuICAgICAgdGhpcy5hc3NldCA9IG5ldyB0aGlzLmFzc2V0Q2xhc3MoXG4gICAgICAgIHNjb3BlLFxuICAgICAgICB0aGlzLmNvbnN0cnVjdG9yLm5hbWUsXG4gICAgICAgIHRoaXMucHJvcHMsXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoU3RhY2sub2YodGhpcy5hc3NldCkgIT09IFN0YWNrLm9mKHNjb3BlKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQXNzZXQgaXMgYWxyZWFkeSBhc3NvY2lhdGVkIHdpdGggYW5vdGhlciBzdGFjayAnJHtcbiAgICAgICAgICBTdGFjay5vZih0aGlzLmFzc2V0KS5zdGFja05hbWVcbiAgICAgICAgfScuIGAgKyAnQ3JlYXRlIGEgbmV3IEFzc2V0IGluc3RhbmNlIGZvciBldmVyeSBzdGFjay4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRvIHVzZSBhICR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfSwgY29udGV4dCBtdXN0IGJlIHByb3ZpZGVkYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gd2UgZ2l2ZSBwZXJtaXNzaW9ucyBvbiBhbGwgZmlsZXMgaW4gdGhlIGJ1Y2tldCBzaW5jZSB3ZSBkb24ndCB3YW50IHRvXG4gICAgLy8gYWNjaWRlbnRhbGx5IHJldm9rZSBwZXJtaXNzaW9uIG9uIG9sZCB2ZXJzaW9ucyB3aGVuIGRlcGxveWluZyBhIG5ld1xuICAgIC8vIHZlcnNpb24gKGZvciBleGFtcGxlLCB3aGVuIHVzaW5nIExhbWJkYSB0cmFmZmljIHNoaWZ0aW5nKS5cbiAgICB0aGlzLmFzc2V0LmJ1Y2tldC5ncmFudFJlYWQoY29udGV4dC5oYW5kbGVyUm9sZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYnVja2V0OiB0aGlzLmFzc2V0LmJ1Y2tldCxcbiAgICAgIHppcE9iamVjdEtleTogdGhpcy5hc3NldC5zM09iamVjdEtleSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBKYXZhU2NyaXB0U291cmNlIGV4dGVuZHMgU291cmNlPFxuSmF2YVNjcmlwdFNvdXJjZVByb3BzLFxuSmF2YVNjcmlwdEFzc2V0XG4+IHtcbiAgYXNzZXRDbGFzcyA9IEphdmFTY3JpcHRBc3NldDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbnRyeVBvaW50czogRW50cnlQb2ludHMsXG4gICAgcHJvcHM6IEphdmFTY3JpcHRTb3VyY2VQcm9wcyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihlbnRyeVBvaW50cywgcHJvcHMpO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUeXBlU2NyaXB0U291cmNlIGV4dGVuZHMgU291cmNlPFxuVHlwZVNjcmlwdFNvdXJjZVByb3BzLFxuVHlwZVNjcmlwdEFzc2V0XG4+IHtcbiAgYXNzZXRDbGFzcyA9IFR5cGVTY3JpcHRBc3NldDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBlbnRyeVBvaW50czogRW50cnlQb2ludHMsXG4gICAgcHJvcHM6IFR5cGVTY3JpcHRTb3VyY2VQcm9wcyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihlbnRyeVBvaW50cywgcHJvcHMpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ .nyc_output/
2
+ coverage/
@@ -0,0 +1,15 @@
1
+ The ISC License
2
+
3
+ Copyright (c) Isaac Z. Schlueter and Contributors
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
15
+ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,51 @@
1
+ # isexe
2
+
3
+ Minimal module to check if a file is executable, and a normal file.
4
+
5
+ Uses `fs.stat` and tests against the `PATHEXT` environment variable on
6
+ Windows.
7
+
8
+ ## USAGE
9
+
10
+ ```javascript
11
+ var isexe = require('isexe')
12
+ isexe('some-file-name', function (err, isExe) {
13
+ if (err) {
14
+ console.error('probably file does not exist or something', err)
15
+ } else if (isExe) {
16
+ console.error('this thing can be run')
17
+ } else {
18
+ console.error('cannot be run')
19
+ }
20
+ })
21
+
22
+ // same thing but synchronous, throws errors
23
+ var isExe = isexe.sync('some-file-name')
24
+
25
+ // treat errors as just "not executable"
26
+ isexe('maybe-missing-file', { ignoreErrors: true }, callback)
27
+ var isExe = isexe.sync('maybe-missing-file', { ignoreErrors: true })
28
+ ```
29
+
30
+ ## API
31
+
32
+ ### `isexe(path, [options], [callback])`
33
+
34
+ Check if the path is executable. If no callback provided, and a
35
+ global `Promise` object is available, then a Promise will be returned.
36
+
37
+ Will raise whatever errors may be raised by `fs.stat`, unless
38
+ `options.ignoreErrors` is set to true.
39
+
40
+ ### `isexe.sync(path, [options])`
41
+
42
+ Same as `isexe` but returns the value and throws any errors raised.
43
+
44
+ ### Options
45
+
46
+ * `ignoreErrors` Treat all errors as "no, this is not executable", but
47
+ don't raise them.
48
+ * `uid` Number to use as the user id
49
+ * `gid` Number to use as the group id
50
+ * `pathExt` List of path extensions to use instead of `PATHEXT`
51
+ environment variable on Windows.
@@ -0,0 +1,57 @@
1
+ var fs = require('fs')
2
+ var core
3
+ if (process.platform === 'win32' || global.TESTING_WINDOWS) {
4
+ core = require('./windows.js')
5
+ } else {
6
+ core = require('./mode.js')
7
+ }
8
+
9
+ module.exports = isexe
10
+ isexe.sync = sync
11
+
12
+ function isexe (path, options, cb) {
13
+ if (typeof options === 'function') {
14
+ cb = options
15
+ options = {}
16
+ }
17
+
18
+ if (!cb) {
19
+ if (typeof Promise !== 'function') {
20
+ throw new TypeError('callback not provided')
21
+ }
22
+
23
+ return new Promise(function (resolve, reject) {
24
+ isexe(path, options || {}, function (er, is) {
25
+ if (er) {
26
+ reject(er)
27
+ } else {
28
+ resolve(is)
29
+ }
30
+ })
31
+ })
32
+ }
33
+
34
+ core(path, options || {}, function (er, is) {
35
+ // ignore EACCES because that just means we aren't allowed to run it
36
+ if (er) {
37
+ if (er.code === 'EACCES' || options && options.ignoreErrors) {
38
+ er = null
39
+ is = false
40
+ }
41
+ }
42
+ cb(er, is)
43
+ })
44
+ }
45
+
46
+ function sync (path, options) {
47
+ // my kingdom for a filtered catch
48
+ try {
49
+ return core.sync(path, options || {})
50
+ } catch (er) {
51
+ if (options && options.ignoreErrors || er.code === 'EACCES') {
52
+ return false
53
+ } else {
54
+ throw er
55
+ }
56
+ }
57
+ }
@@ -0,0 +1,41 @@
1
+ module.exports = isexe
2
+ isexe.sync = sync
3
+
4
+ var fs = require('fs')
5
+
6
+ function isexe (path, options, cb) {
7
+ fs.stat(path, function (er, stat) {
8
+ cb(er, er ? false : checkStat(stat, options))
9
+ })
10
+ }
11
+
12
+ function sync (path, options) {
13
+ return checkStat(fs.statSync(path), options)
14
+ }
15
+
16
+ function checkStat (stat, options) {
17
+ return stat.isFile() && checkMode(stat, options)
18
+ }
19
+
20
+ function checkMode (stat, options) {
21
+ var mod = stat.mode
22
+ var uid = stat.uid
23
+ var gid = stat.gid
24
+
25
+ var myUid = options.uid !== undefined ?
26
+ options.uid : process.getuid && process.getuid()
27
+ var myGid = options.gid !== undefined ?
28
+ options.gid : process.getgid && process.getgid()
29
+
30
+ var u = parseInt('100', 8)
31
+ var g = parseInt('010', 8)
32
+ var o = parseInt('001', 8)
33
+ var ug = u | g
34
+
35
+ var ret = (mod & o) ||
36
+ (mod & g) && gid === myGid ||
37
+ (mod & u) && uid === myUid ||
38
+ (mod & ug) && myUid === 0
39
+
40
+ return ret
41
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "isexe",
3
+ "version": "2.0.0",
4
+ "description": "Minimal module to check if a file is executable.",
5
+ "main": "index.js",
6
+ "directories": {
7
+ "test": "test"
8
+ },
9
+ "devDependencies": {
10
+ "mkdirp": "^0.5.1",
11
+ "rimraf": "^2.5.0",
12
+ "tap": "^10.3.0"
13
+ },
14
+ "scripts": {
15
+ "test": "tap test/*.js --100",
16
+ "preversion": "npm test",
17
+ "postversion": "npm publish",
18
+ "postpublish": "git push origin --all; git push origin --tags"
19
+ },
20
+ "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
21
+ "license": "ISC",
22
+ "repository": {
23
+ "type": "git",
24
+ "url": "git+https://github.com/isaacs/isexe.git"
25
+ },
26
+ "keywords": [],
27
+ "bugs": {
28
+ "url": "https://github.com/isaacs/isexe/issues"
29
+ },
30
+ "homepage": "https://github.com/isaacs/isexe#readme"
31
+
32
+ ,"_resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
33
+ ,"_integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
34
+ ,"_from": "isexe@2.0.0"
35
+ }
@@ -0,0 +1,221 @@
1
+ var t = require('tap')
2
+ var fs = require('fs')
3
+ var path = require('path')
4
+ var fixture = path.resolve(__dirname, 'fixtures')
5
+ var meow = fixture + '/meow.cat'
6
+ var mine = fixture + '/mine.cat'
7
+ var ours = fixture + '/ours.cat'
8
+ var fail = fixture + '/fail.false'
9
+ var noent = fixture + '/enoent.exe'
10
+ var mkdirp = require('mkdirp')
11
+ var rimraf = require('rimraf')
12
+
13
+ var isWindows = process.platform === 'win32'
14
+ var hasAccess = typeof fs.access === 'function'
15
+ var winSkip = isWindows && 'windows'
16
+ var accessSkip = !hasAccess && 'no fs.access function'
17
+ var hasPromise = typeof Promise === 'function'
18
+ var promiseSkip = !hasPromise && 'no global Promise'
19
+
20
+ function reset () {
21
+ delete require.cache[require.resolve('../')]
22
+ return require('../')
23
+ }
24
+
25
+ t.test('setup fixtures', function (t) {
26
+ rimraf.sync(fixture)
27
+ mkdirp.sync(fixture)
28
+ fs.writeFileSync(meow, '#!/usr/bin/env cat\nmeow\n')
29
+ fs.chmodSync(meow, parseInt('0755', 8))
30
+ fs.writeFileSync(fail, '#!/usr/bin/env false\n')
31
+ fs.chmodSync(fail, parseInt('0644', 8))
32
+ fs.writeFileSync(mine, '#!/usr/bin/env cat\nmine\n')
33
+ fs.chmodSync(mine, parseInt('0744', 8))
34
+ fs.writeFileSync(ours, '#!/usr/bin/env cat\nours\n')
35
+ fs.chmodSync(ours, parseInt('0754', 8))
36
+ t.end()
37
+ })
38
+
39
+ t.test('promise', { skip: promiseSkip }, function (t) {
40
+ var isexe = reset()
41
+ t.test('meow async', function (t) {
42
+ isexe(meow).then(function (is) {
43
+ t.ok(is)
44
+ t.end()
45
+ })
46
+ })
47
+ t.test('fail async', function (t) {
48
+ isexe(fail).then(function (is) {
49
+ t.notOk(is)
50
+ t.end()
51
+ })
52
+ })
53
+ t.test('noent async', function (t) {
54
+ isexe(noent).catch(function (er) {
55
+ t.ok(er)
56
+ t.end()
57
+ })
58
+ })
59
+ t.test('noent ignore async', function (t) {
60
+ isexe(noent, { ignoreErrors: true }).then(function (is) {
61
+ t.notOk(is)
62
+ t.end()
63
+ })
64
+ })
65
+ t.end()
66
+ })
67
+
68
+ t.test('no promise', function (t) {
69
+ global.Promise = null
70
+ var isexe = reset()
71
+ t.throws('try to meow a promise', function () {
72
+ isexe(meow)
73
+ })
74
+ t.end()
75
+ })
76
+
77
+ t.test('access', { skip: accessSkip || winSkip }, function (t) {
78
+ runTest(t)
79
+ })
80
+
81
+ t.test('mode', { skip: winSkip }, function (t) {
82
+ delete fs.access
83
+ delete fs.accessSync
84
+ var isexe = reset()
85
+ t.ok(isexe.sync(ours, { uid: 0, gid: 0 }))
86
+ t.ok(isexe.sync(mine, { uid: 0, gid: 0 }))
87
+ runTest(t)
88
+ })
89
+
90
+ t.test('windows', function (t) {
91
+ global.TESTING_WINDOWS = true
92
+ var pathExt = '.EXE;.CAT;.CMD;.COM'
93
+ t.test('pathExt option', function (t) {
94
+ runTest(t, { pathExt: '.EXE;.CAT;.CMD;.COM' })
95
+ })
96
+ t.test('pathExt env', function (t) {
97
+ process.env.PATHEXT = pathExt
98
+ runTest(t)
99
+ })
100
+ t.test('no pathExt', function (t) {
101
+ // with a pathExt of '', any filename is fine.
102
+ // so the "fail" one would still pass.
103
+ runTest(t, { pathExt: '', skipFail: true })
104
+ })
105
+ t.test('pathext with empty entry', function (t) {
106
+ // with a pathExt of '', any filename is fine.
107
+ // so the "fail" one would still pass.
108
+ runTest(t, { pathExt: ';' + pathExt, skipFail: true })
109
+ })
110
+ t.end()
111
+ })
112
+
113
+ t.test('cleanup', function (t) {
114
+ rimraf.sync(fixture)
115
+ t.end()
116
+ })
117
+
118
+ function runTest (t, options) {
119
+ var isexe = reset()
120
+
121
+ var optionsIgnore = Object.create(options || {})
122
+ optionsIgnore.ignoreErrors = true
123
+
124
+ if (!options || !options.skipFail) {
125
+ t.notOk(isexe.sync(fail, options))
126
+ }
127
+ t.notOk(isexe.sync(noent, optionsIgnore))
128
+ if (!options) {
129
+ t.ok(isexe.sync(meow))
130
+ } else {
131
+ t.ok(isexe.sync(meow, options))
132
+ }
133
+
134
+ t.ok(isexe.sync(mine, options))
135
+ t.ok(isexe.sync(ours, options))
136
+ t.throws(function () {
137
+ isexe.sync(noent, options)
138
+ })
139
+
140
+ t.test('meow async', function (t) {
141
+ if (!options) {
142
+ isexe(meow, function (er, is) {
143
+ if (er) {
144
+ throw er
145
+ }
146
+ t.ok(is)
147
+ t.end()
148
+ })
149
+ } else {
150
+ isexe(meow, options, function (er, is) {
151
+ if (er) {
152
+ throw er
153
+ }
154
+ t.ok(is)
155
+ t.end()
156
+ })
157
+ }
158
+ })
159
+
160
+ t.test('mine async', function (t) {
161
+ isexe(mine, options, function (er, is) {
162
+ if (er) {
163
+ throw er
164
+ }
165
+ t.ok(is)
166
+ t.end()
167
+ })
168
+ })
169
+
170
+ t.test('ours async', function (t) {
171
+ isexe(ours, options, function (er, is) {
172
+ if (er) {
173
+ throw er
174
+ }
175
+ t.ok(is)
176
+ t.end()
177
+ })
178
+ })
179
+
180
+ if (!options || !options.skipFail) {
181
+ t.test('fail async', function (t) {
182
+ isexe(fail, options, function (er, is) {
183
+ if (er) {
184
+ throw er
185
+ }
186
+ t.notOk(is)
187
+ t.end()
188
+ })
189
+ })
190
+ }
191
+
192
+ t.test('noent async', function (t) {
193
+ isexe(noent, options, function (er, is) {
194
+ t.ok(er)
195
+ t.notOk(is)
196
+ t.end()
197
+ })
198
+ })
199
+
200
+ t.test('noent ignore async', function (t) {
201
+ isexe(noent, optionsIgnore, function (er, is) {
202
+ if (er) {
203
+ throw er
204
+ }
205
+ t.notOk(is)
206
+ t.end()
207
+ })
208
+ })
209
+
210
+ t.test('directory is not executable', function (t) {
211
+ isexe(__dirname, options, function (er, is) {
212
+ if (er) {
213
+ throw er
214
+ }
215
+ t.notOk(is)
216
+ t.end()
217
+ })
218
+ })
219
+
220
+ t.end()
221
+ }
@@ -0,0 +1,42 @@
1
+ module.exports = isexe
2
+ isexe.sync = sync
3
+
4
+ var fs = require('fs')
5
+
6
+ function checkPathExt (path, options) {
7
+ var pathext = options.pathExt !== undefined ?
8
+ options.pathExt : process.env.PATHEXT
9
+
10
+ if (!pathext) {
11
+ return true
12
+ }
13
+
14
+ pathext = pathext.split(';')
15
+ if (pathext.indexOf('') !== -1) {
16
+ return true
17
+ }
18
+ for (var i = 0; i < pathext.length; i++) {
19
+ var p = pathext[i].toLowerCase()
20
+ if (p && path.substr(-p.length).toLowerCase() === p) {
21
+ return true
22
+ }
23
+ }
24
+ return false
25
+ }
26
+
27
+ function checkStat (stat, path, options) {
28
+ if (!stat.isSymbolicLink() && !stat.isFile()) {
29
+ return false
30
+ }
31
+ return checkPathExt(path, options)
32
+ }
33
+
34
+ function isexe (path, options, cb) {
35
+ fs.stat(path, function (er, stat) {
36
+ cb(er, er ? false : checkStat(stat, path, options))
37
+ })
38
+ }
39
+
40
+ function sync (path, options) {
41
+ return checkStat(fs.statSync(path), path, options)
42
+ }
@@ -0,0 +1,166 @@
1
+ # Changes
2
+
3
+
4
+ ## 2.0.2
5
+
6
+ * Rename bin to `node-which`
7
+
8
+ ## 2.0.1
9
+
10
+ * generate changelog and publish on version bump
11
+ * enforce 100% test coverage
12
+ * Promise interface
13
+
14
+ ## 2.0.0
15
+
16
+ * Parallel tests, modern JavaScript, and drop support for node < 8
17
+
18
+ ## 1.3.1
19
+
20
+ * update deps
21
+ * update travis
22
+
23
+ ## v1.3.0
24
+
25
+ * Add nothrow option to which.sync
26
+ * update tap
27
+
28
+ ## v1.2.14
29
+
30
+ * appveyor: drop node 5 and 0.x
31
+ * travis-ci: add node 6, drop 0.x
32
+
33
+ ## v1.2.13
34
+
35
+ * test: Pass missing option to pass on windows
36
+ * update tap
37
+ * update isexe to 2.0.0
38
+ * neveragain.tech pledge request
39
+
40
+ ## v1.2.12
41
+
42
+ * Removed unused require
43
+
44
+ ## v1.2.11
45
+
46
+ * Prevent changelog script from being included in package
47
+
48
+ ## v1.2.10
49
+
50
+ * Use env.PATH only, not env.Path
51
+
52
+ ## v1.2.9
53
+
54
+ * fix for paths starting with ../
55
+ * Remove unused `is-absolute` module
56
+
57
+ ## v1.2.8
58
+
59
+ * bullet items in changelog that contain (but don't start with) #
60
+
61
+ ## v1.2.7
62
+
63
+ * strip 'update changelog' changelog entries out of changelog
64
+
65
+ ## v1.2.6
66
+
67
+ * make the changelog bulleted
68
+
69
+ ## v1.2.5
70
+
71
+ * make a changelog, and keep it up to date
72
+ * don't include tests in package
73
+ * Properly handle relative-path executables
74
+ * appveyor
75
+ * Attach error code to Not Found error
76
+ * Make tests pass on Windows
77
+
78
+ ## v1.2.4
79
+
80
+ * Fix typo
81
+
82
+ ## v1.2.3
83
+
84
+ * update isexe, fix regression in pathExt handling
85
+
86
+ ## v1.2.2
87
+
88
+ * update deps, use isexe module, test windows
89
+
90
+ ## v1.2.1
91
+
92
+ * Sometimes windows PATH entries are quoted
93
+ * Fixed a bug in the check for group and user mode bits. This bug was introduced during refactoring for supporting strict mode.
94
+ * doc cli
95
+
96
+ ## v1.2.0
97
+
98
+ * Add support for opt.all and -as cli flags
99
+ * test the bin
100
+ * update travis
101
+ * Allow checking for multiple programs in bin/which
102
+ * tap 2
103
+
104
+ ## v1.1.2
105
+
106
+ * travis
107
+ * Refactored and fixed undefined error on Windows
108
+ * Support strict mode
109
+
110
+ ## v1.1.1
111
+
112
+ * test +g exes against secondary groups, if available
113
+ * Use windows exe semantics on cygwin & msys
114
+ * cwd should be first in path on win32, not last
115
+ * Handle lower-case 'env.Path' on Windows
116
+ * Update docs
117
+ * use single-quotes
118
+
119
+ ## v1.1.0
120
+
121
+ * Add tests, depend on is-absolute
122
+
123
+ ## v1.0.9
124
+
125
+ * which.js: root is allowed to execute files owned by anyone
126
+
127
+ ## v1.0.8
128
+
129
+ * don't use graceful-fs
130
+
131
+ ## v1.0.7
132
+
133
+ * add license to package.json
134
+
135
+ ## v1.0.6
136
+
137
+ * isc license
138
+
139
+ ## 1.0.5
140
+
141
+ * Awful typo
142
+
143
+ ## 1.0.4
144
+
145
+ * Test for path absoluteness properly
146
+ * win: Allow '' as a pathext if cmd has a . in it
147
+
148
+ ## 1.0.3
149
+
150
+ * Remove references to execPath
151
+ * Make `which.sync()` work on Windows by honoring the PATHEXT variable.
152
+ * Make `isExe()` always return true on Windows.
153
+ * MIT
154
+
155
+ ## 1.0.2
156
+
157
+ * Only files can be exes
158
+
159
+ ## 1.0.1
160
+
161
+ * Respect the PATHEXT env for win32 support
162
+ * should 0755 the bin
163
+ * binary
164
+ * guts
165
+ * package
166
+ * 1st
@@ -0,0 +1,15 @@
1
+ The ISC License
2
+
3
+ Copyright (c) Isaac Z. Schlueter and Contributors
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any
6
+ purpose with or without fee is hereby granted, provided that the above
7
+ copyright notice and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
15
+ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,54 @@
1
+ # which
2
+
3
+ Like the unix `which` utility.
4
+
5
+ Finds the first instance of a specified executable in the PATH
6
+ environment variable. Does not cache the results, so `hash -r` is not
7
+ needed when the PATH changes.
8
+
9
+ ## USAGE
10
+
11
+ ```javascript
12
+ var which = require('which')
13
+
14
+ // async usage
15
+ which('node', function (er, resolvedPath) {
16
+ // er is returned if no "node" is found on the PATH
17
+ // if it is found, then the absolute path to the exec is returned
18
+ })
19
+
20
+ // or promise
21
+ which('node').then(resolvedPath => { ... }).catch(er => { ... not found ... })
22
+
23
+ // sync usage
24
+ // throws if not found
25
+ var resolved = which.sync('node')
26
+
27
+ // if nothrow option is used, returns null if not found
28
+ resolved = which.sync('node', {nothrow: true})
29
+
30
+ // Pass options to override the PATH and PATHEXT environment vars.
31
+ which('node', { path: someOtherPath }, function (er, resolved) {
32
+ if (er)
33
+ throw er
34
+ console.log('found at %j', resolved)
35
+ })
36
+ ```
37
+
38
+ ## CLI USAGE
39
+
40
+ Same as the BSD `which(1)` binary.
41
+
42
+ ```
43
+ usage: which [-as] program ...
44
+ ```
45
+
46
+ ## OPTIONS
47
+
48
+ You may pass an options object as the second argument.
49
+
50
+ - `path`: Use instead of the `PATH` environment variable.
51
+ - `pathExt`: Use instead of the `PATHEXT` environment variable.
52
+ - `all`: Return all matches, instead of just the first one. Note that
53
+ this means the function returns an array of strings instead of a
54
+ single string.
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env node
2
+ var which = require("../")
3
+ if (process.argv.length < 3)
4
+ usage()
5
+
6
+ function usage () {
7
+ console.error('usage: which [-as] program ...')
8
+ process.exit(1)
9
+ }
10
+
11
+ var all = false
12
+ var silent = false
13
+ var dashdash = false
14
+ var args = process.argv.slice(2).filter(function (arg) {
15
+ if (dashdash || !/^-/.test(arg))
16
+ return true
17
+
18
+ if (arg === '--') {
19
+ dashdash = true
20
+ return false
21
+ }
22
+
23
+ var flags = arg.substr(1).split('')
24
+ for (var f = 0; f < flags.length; f++) {
25
+ var flag = flags[f]
26
+ switch (flag) {
27
+ case 's':
28
+ silent = true
29
+ break
30
+ case 'a':
31
+ all = true
32
+ break
33
+ default:
34
+ console.error('which: illegal option -- ' + flag)
35
+ usage()
36
+ }
37
+ }
38
+ return false
39
+ })
40
+
41
+ process.exit(args.reduce(function (pv, current) {
42
+ try {
43
+ var f = which.sync(current, { all: all })
44
+ if (all)
45
+ f = f.join('\n')
46
+ if (!silent)
47
+ console.log(f)
48
+ return pv;
49
+ } catch (e) {
50
+ return 1;
51
+ }
52
+ }, 0))
@@ -0,0 +1,47 @@
1
+ {
2
+ "author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)",
3
+ "name": "which",
4
+ "description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
5
+ "version": "2.0.2",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git://github.com/isaacs/node-which.git"
9
+ },
10
+ "main": "which.js",
11
+ "bin": {
12
+ "node-which": "./bin/node-which"
13
+ },
14
+ "license": "ISC",
15
+ "dependencies": {
16
+ "isexe": "^2.0.0"
17
+ },
18
+ "devDependencies": {
19
+ "mkdirp": "^0.5.0",
20
+ "rimraf": "^2.6.2",
21
+ "tap": "^14.6.9"
22
+ },
23
+ "scripts": {
24
+ "test": "tap",
25
+ "preversion": "npm test",
26
+ "postversion": "npm publish",
27
+ "prepublish": "npm run changelog",
28
+ "prechangelog": "bash gen-changelog.sh",
29
+ "changelog": "git add CHANGELOG.md",
30
+ "postchangelog": "git commit -m 'update changelog - '${npm_package_version}",
31
+ "postpublish": "git push origin --follow-tags"
32
+ },
33
+ "files": [
34
+ "which.js",
35
+ "bin/node-which"
36
+ ],
37
+ "tap": {
38
+ "check-coverage": true
39
+ },
40
+ "engines": {
41
+ "node": ">= 8"
42
+ }
43
+
44
+ ,"_resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
45
+ ,"_integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="
46
+ ,"_from": "which@2.0.2"
47
+ }
@@ -0,0 +1,125 @@
1
+ const isWindows = process.platform === 'win32' ||
2
+ process.env.OSTYPE === 'cygwin' ||
3
+ process.env.OSTYPE === 'msys'
4
+
5
+ const path = require('path')
6
+ const COLON = isWindows ? ';' : ':'
7
+ const isexe = require('isexe')
8
+
9
+ const getNotFoundError = (cmd) =>
10
+ Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' })
11
+
12
+ const getPathInfo = (cmd, opt) => {
13
+ const colon = opt.colon || COLON
14
+
15
+ // If it has a slash, then we don't bother searching the pathenv.
16
+ // just check the file itself, and that's it.
17
+ const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? ['']
18
+ : (
19
+ [
20
+ // windows always checks the cwd first
21
+ ...(isWindows ? [process.cwd()] : []),
22
+ ...(opt.path || process.env.PATH ||
23
+ /* istanbul ignore next: very unusual */ '').split(colon),
24
+ ]
25
+ )
26
+ const pathExtExe = isWindows
27
+ ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM'
28
+ : ''
29
+ const pathExt = isWindows ? pathExtExe.split(colon) : ['']
30
+
31
+ if (isWindows) {
32
+ if (cmd.indexOf('.') !== -1 && pathExt[0] !== '')
33
+ pathExt.unshift('')
34
+ }
35
+
36
+ return {
37
+ pathEnv,
38
+ pathExt,
39
+ pathExtExe,
40
+ }
41
+ }
42
+
43
+ const which = (cmd, opt, cb) => {
44
+ if (typeof opt === 'function') {
45
+ cb = opt
46
+ opt = {}
47
+ }
48
+ if (!opt)
49
+ opt = {}
50
+
51
+ const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
52
+ const found = []
53
+
54
+ const step = i => new Promise((resolve, reject) => {
55
+ if (i === pathEnv.length)
56
+ return opt.all && found.length ? resolve(found)
57
+ : reject(getNotFoundError(cmd))
58
+
59
+ const ppRaw = pathEnv[i]
60
+ const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
61
+
62
+ const pCmd = path.join(pathPart, cmd)
63
+ const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
64
+ : pCmd
65
+
66
+ resolve(subStep(p, i, 0))
67
+ })
68
+
69
+ const subStep = (p, i, ii) => new Promise((resolve, reject) => {
70
+ if (ii === pathExt.length)
71
+ return resolve(step(i + 1))
72
+ const ext = pathExt[ii]
73
+ isexe(p + ext, { pathExt: pathExtExe }, (er, is) => {
74
+ if (!er && is) {
75
+ if (opt.all)
76
+ found.push(p + ext)
77
+ else
78
+ return resolve(p + ext)
79
+ }
80
+ return resolve(subStep(p, i, ii + 1))
81
+ })
82
+ })
83
+
84
+ return cb ? step(0).then(res => cb(null, res), cb) : step(0)
85
+ }
86
+
87
+ const whichSync = (cmd, opt) => {
88
+ opt = opt || {}
89
+
90
+ const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt)
91
+ const found = []
92
+
93
+ for (let i = 0; i < pathEnv.length; i ++) {
94
+ const ppRaw = pathEnv[i]
95
+ const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw
96
+
97
+ const pCmd = path.join(pathPart, cmd)
98
+ const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd
99
+ : pCmd
100
+
101
+ for (let j = 0; j < pathExt.length; j ++) {
102
+ const cur = p + pathExt[j]
103
+ try {
104
+ const is = isexe.sync(cur, { pathExt: pathExtExe })
105
+ if (is) {
106
+ if (opt.all)
107
+ found.push(cur)
108
+ else
109
+ return cur
110
+ }
111
+ } catch (ex) {}
112
+ }
113
+ }
114
+
115
+ if (opt.all && found.length)
116
+ return found
117
+
118
+ if (opt.nothrow)
119
+ return null
120
+
121
+ throw getNotFoundError(cmd)
122
+ }
123
+
124
+ module.exports = which
125
+ which.sync = whichSync
package/package.json CHANGED
@@ -42,6 +42,7 @@
42
42
  "@types/eslint": "^7.29.0",
43
43
  "@types/jest": "^27.5.2",
44
44
  "@types/node": "^14",
45
+ "@types/which": "^2.0.1",
45
46
  "@typescript-eslint/eslint-plugin": "^5",
46
47
  "@typescript-eslint/parser": "^5",
47
48
  "aws-cdk-lib": "2.0.0",
@@ -71,6 +72,12 @@
71
72
  "aws-cdk-lib": "^2.0.0",
72
73
  "constructs": "^10.0.5"
73
74
  },
75
+ "dependencies": {
76
+ "which": "^2.0.2"
77
+ },
78
+ "bundledDependencies": [
79
+ "which"
80
+ ],
74
81
  "keywords": [
75
82
  "aws-cdk",
76
83
  "bundler",
@@ -85,7 +92,7 @@
85
92
  "main": "lib/index.js",
86
93
  "license": "MIT",
87
94
  "homepage": "https://github.com/mrgrain/cdk-esbuild",
88
- "version": "4.0.0-alpha.4",
95
+ "version": "4.0.0-alpha.5",
89
96
  "jest": {
90
97
  "testPathIgnorePatterns": [
91
98
  "/node_modules/",
@@ -1,50 +0,0 @@
1
- import { FileBase, FileBaseOptions, Project as ProjenProject } from 'projen';
2
- import { execCapture } from 'projen/lib/util';
3
- import { Project, SourceFile } from 'ts-morph';
4
-
5
- interface TypeScriptSourceFileOptions extends Omit<FileBaseOptions, 'readonly'> {
6
- source: string;
7
- transformer?: (sourcefile: SourceFile) => void;
8
- format?: boolean;
9
- marker?: boolean;
10
- }
11
-
12
- export class TypeScriptSourceFile extends FileBase {
13
- public readonly options: TypeScriptSourceFileOptions;
14
-
15
- constructor(project: ProjenProject, filePath: string, options: TypeScriptSourceFileOptions) {
16
- super(project, filePath, { ...options, readonly: false });
17
-
18
- this.options = {
19
- format: true,
20
- marker: true,
21
- ...options,
22
- };
23
- }
24
-
25
- protected synthesizeContent(): string {
26
- const tsProject = new Project({
27
- tsConfigFilePath: 'tsconfig.json',
28
- skipAddingFilesFromTsConfig: true,
29
- });
30
-
31
- const sourceFile = tsProject.addSourceFileAtPath(this.options.source);
32
-
33
- if (this.options.transformer) {
34
- this.options.transformer(sourceFile);
35
- }
36
-
37
- return [
38
- ...(this.options.marker ? [`// ${this.marker}`] : []),
39
- '',
40
- sourceFile.getFullText(),
41
- ].join('\n');
42
- }
43
-
44
- public postSynthesize() {
45
- super.postSynthesize();
46
-
47
- const outdir = this.project.outdir;
48
- execCapture(`npx eslint --ext .ts --fix ${this.absolutePath}`, { cwd: outdir });
49
- }
50
- }
@@ -1,13 +0,0 @@
1
- export function tagOnNpm(packageName: string, tags: string[]) {
2
- return {
3
- name: 'Update tags',
4
- run: [
5
- 'version=`cat dist/version.txt`',
6
- 'echo $version',
7
- ].concat(tags.map(tag => `npm dist-tag add ${packageName}@$version ${tag}`)).join('\n'),
8
- env: {
9
- NPM_REGISTRY: 'registry.npmjs.org',
10
- NPM_TOKEN: '${{ secrets.NPM_TOKEN }}',
11
- },
12
- };
13
- }