construct-hub 0.3.274 → 0.3.275

Sign up to get free protection for your applications and to get access to all the features.
package/.jsii CHANGED
@@ -14540,6 +14540,6 @@
14540
14540
  "symbolId": "src/package-sources/npmjs:NpmJsProps"
14541
14541
  }
14542
14542
  },
14543
- "version": "0.3.274",
14544
- "fingerprint": "p4BU3gsVpiWVR3BT5QPh/zvw0RUKHUa1K1ANOjEOI8s="
14543
+ "version": "0.3.275",
14544
+ "fingerprint": "61ipjh2Rs2qxaJlMHcIQ6A5ZXmqKyIPsjTRunohsDCI="
14545
14545
  }
package/changelog.md CHANGED
@@ -1,2 +1,7 @@
1
1
 
2
- ### [0.3.274](https://github.com/cdklabs/construct-hub/compare/v0.3.273...v0.3.274) (2022-03-14)
2
+ ### [0.3.275](https://github.com/cdklabs/construct-hub/compare/v0.3.274...v0.3.275) (2022-03-15)
3
+
4
+
5
+ ### Features
6
+
7
+ * tag packages with multiple construct frameworks ([#794](https://github.com/cdklabs/construct-hub/issues/794)) ([78ea2dd](https://github.com/cdklabs/construct-hub/commit/78ea2dd76aef0556fea83b07c85d50039d199301)), closes [#717](https://github.com/cdklabs/construct-hub/issues/717)
@@ -23,4 +23,4 @@ export interface ConstructFramework {
23
23
  *
24
24
  * @returns a construct framework if one could be identified.
25
25
  */
26
- export declare function detectConstructFramework(assembly: Assembly): ConstructFramework | undefined;
26
+ export declare function detectConstructFrameworks(assembly: Assembly): ConstructFramework[];
@@ -1,7 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.detectConstructFramework = void 0;
3
+ exports.detectConstructFrameworks = void 0;
4
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
5
+ const assert = require("assert");
4
6
  const semver_1 = require("semver");
7
+ /**
8
+ * Predicates that determine whether a package is indicative of the CDK
9
+ * framework someone is using.
10
+ */
11
+ const FRAMEWORK_MATCHERS = {
12
+ ["aws-cdk" /* AWS_CDK */]: (name) => name.startsWith('@aws-cdk/') || name === 'aws-cdk-lib' || name === 'monocdk',
13
+ ["cdk8s" /* CDK8S */]: (name) => name === 'cdk8s' || /^cdk8s-plus(?:-(?:17|20|21|22))?$/.test(name),
14
+ // cdktf providers dependencies ("@cdktf/provider-xxx") are major versioned
15
+ // differently than the core library, so do not take them into account
16
+ ["cdktf" /* CDKTF */]: (name) => name === 'cdktf',
17
+ };
5
18
  /**
6
19
  * Determines the Construct framework used by the provided assembly.
7
20
  *
@@ -10,69 +23,75 @@ const semver_1 = require("semver");
10
23
  *
11
24
  * @returns a construct framework if one could be identified.
12
25
  */
13
- function detectConstructFramework(assembly) {
14
- var _a, _b;
15
- let name;
16
- let nameAmbiguous = false;
17
- let majorVersion;
18
- let majorVersionAmbiguous = false;
19
- // exception: we assume all @cdktf/ libraries are cdktf, even if they
20
- // also take other CDK types as dependencies
21
- if (assembly.name.startsWith('@cdktf/')) {
22
- name = "cdktf" /* CDKTF */;
23
- if ('cdktf' in ((_a = assembly.dependencyClosure) !== null && _a !== void 0 ? _a : {})) {
24
- detectConstructFrameworkPackage('cdktf');
25
- }
26
- return { name, majorVersion };
27
- }
26
+ function detectConstructFrameworks(assembly) {
27
+ var _a;
28
+ // "not-sure" means we haven't seen a major version for the framework yet,
29
+ // e.g. in the case of a transitive dependency where the info isn't provided
30
+ // "ambiguous" means we have seen multiple major versions so it's impossible
31
+ // to resolve a single number
32
+ const detectedFrameworks = {};
28
33
  detectConstructFrameworkPackage(assembly.name, assembly.version);
29
- for (const depName of Object.keys((_b = assembly.dependencyClosure) !== null && _b !== void 0 ? _b : {})) {
34
+ for (const depName of Object.keys((_a = assembly.dependencyClosure) !== null && _a !== void 0 ? _a : {})) {
30
35
  detectConstructFrameworkPackage(depName);
31
- if (nameAmbiguous) {
32
- return undefined;
33
- }
34
36
  }
35
- return name && { name, majorVersion: majorVersionAmbiguous ? undefined : majorVersion };
36
- function detectConstructFrameworkPackage(packageName, versionRange) {
37
- var _a, _b;
38
- if (versionRange === void 0) { versionRange = (_a = assembly.dependencies) === null || _a === void 0 ? void 0 : _a[packageName]; }
39
- if (packageName.startsWith('@aws-cdk/') || packageName === 'aws-cdk-lib' || packageName === 'monocdk') {
40
- if (name && name !== "aws-cdk" /* AWS_CDK */) {
41
- // Identified multiple candidates, so returning ambiguous...
42
- nameAmbiguous = true;
43
- return;
44
- }
45
- name = "aws-cdk" /* AWS_CDK */;
46
- }
47
- else if (packageName === 'cdktf') {
48
- if (name && name !== "cdktf" /* CDKTF */) {
49
- // Identified multiple candidates, so returning ambiguous...
50
- nameAmbiguous = true;
51
- return;
52
- }
53
- name = "cdktf" /* CDKTF */;
37
+ const frameworks = new Array();
38
+ for (const [frameworkName, majorVersion] of Object.entries(detectedFrameworks)) {
39
+ const name = frameworkName;
40
+ if (majorVersion === undefined) {
41
+ continue;
54
42
  }
55
- else if (packageName === 'cdk8s' || /^cdk8s-plus(?:-(?:17|20|21|22))?$/.test(packageName)) {
56
- if (name && name !== "cdk8s" /* CDK8S */) {
57
- // Identified multiple candidates, so returning ambiguous...
58
- nameAmbiguous = true;
59
- return;
60
- }
61
- name = "cdk8s" /* CDK8S */;
43
+ else if (majorVersion === 'ambiguous' || majorVersion === 'no-data') {
44
+ frameworks.push({ name });
62
45
  }
63
- else {
64
- return;
46
+ else if (typeof majorVersion === 'number') {
47
+ frameworks.push({ name, majorVersion });
65
48
  }
66
- if (versionRange) {
67
- const major = (_b = semver_1.minVersion(versionRange)) === null || _b === void 0 ? void 0 : _b.major;
68
- if (majorVersion != null && majorVersion !== major) {
69
- // Identified multiple candidates, so this is ambiguous...
70
- majorVersionAmbiguous = true;
49
+ }
50
+ return frameworks;
51
+ /**
52
+ * Analyses the package name and version range, and updates
53
+ * `detectedFrameworks` from the parent scope appropriately
54
+ */
55
+ function detectConstructFrameworkPackage(packageName, versionRange) {
56
+ var _a, _b, _c;
57
+ if (versionRange === void 0) { versionRange = (_a = assembly.dependencies) === null || _a === void 0 ? void 0 : _a[packageName]; }
58
+ for (const frameworkName of ["aws-cdk" /* AWS_CDK */, "cdk8s" /* CDK8S */, "cdktf" /* CDKTF */]) {
59
+ const matchesFramework = FRAMEWORK_MATCHERS[frameworkName];
60
+ if (matchesFramework(packageName)) {
61
+ const frameworkVersion = detectedFrameworks[frameworkName];
62
+ if (frameworkVersion === 'ambiguous') {
63
+ // We have already seen multiple major versions and have determined
64
+ // the major version is ambiguous, so this package won't give
65
+ // us any new information.
66
+ return;
67
+ }
68
+ const packageMajor = (_c = (versionRange ? (_b = semver_1.minVersion(versionRange)) === null || _b === void 0 ? void 0 : _b.major : undefined)) !== null && _c !== void 0 ? _c : 'no-data';
69
+ if (frameworkVersion === undefined) {
70
+ // It's the first time seeing this major version, so we record
71
+ // whatever new information we found ("no-data" or number).
72
+ detectedFrameworks[frameworkName] = packageMajor;
73
+ return;
74
+ }
75
+ else if (frameworkVersion === 'no-data') {
76
+ // We've seen this framework before but haven't seen a major version,
77
+ // so record whatever new information we found ("no-data" or number).
78
+ detectedFrameworks[frameworkName] = packageMajor;
79
+ return;
80
+ }
81
+ else {
82
+ // At this point, frameworkVersion can only be a MV number
83
+ assert(typeof frameworkVersion === 'number');
84
+ // We've seen evidence of a particular major version for this
85
+ // framework, so only update if this package conflicts with what
86
+ // we're expecting.
87
+ if (packageMajor !== 'no-data' && frameworkVersion !== packageMajor) {
88
+ detectedFrameworks[frameworkName] = 'ambiguous';
89
+ }
90
+ return;
91
+ }
71
92
  }
72
- majorVersion = major;
73
93
  }
74
- return;
75
94
  }
76
95
  }
77
- exports.detectConstructFramework = detectConstructFramework;
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrLWRldGVjdGlvbi5sYW1iZGEtc2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmQvaW5nZXN0aW9uL2ZyYW1ld29yay1kZXRlY3Rpb24ubGFtYmRhLXNoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtQ0FBb0M7QUFxQnBDOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxRQUFrQjs7SUFDekQsSUFBSSxJQUE0QyxDQUFDO0lBQ2pELElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQztJQUMxQixJQUFJLFlBQWdDLENBQUM7SUFDckMsSUFBSSxxQkFBcUIsR0FBRyxLQUFLLENBQUM7SUFFbEMscUVBQXFFO0lBQ3JFLDRDQUE0QztJQUM1QyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQ3ZDLElBQUksc0JBQStCLENBQUM7UUFDcEMsSUFBSSxPQUFPLElBQUksT0FBQyxRQUFRLENBQUMsaUJBQWlCLG1DQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ2pELCtCQUErQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzFDO1FBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQztLQUMvQjtJQUVELCtCQUErQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLEtBQUssTUFBTSxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksT0FBQyxRQUFRLENBQUMsaUJBQWlCLG1DQUFJLEVBQUUsQ0FBQyxFQUFFO1FBQ25FLCtCQUErQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pDLElBQUksYUFBYSxFQUFFO1lBQ2pCLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO0tBQ0Y7SUFFRCxPQUFPLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFeEYsU0FBUywrQkFBK0IsQ0FBQyxXQUFtQixFQUFFLFlBQW1EOztxQ0FBbkQsRUFBQSxxQkFBZSxRQUFRLENBQUMsWUFBWSwwQ0FBRyxXQUFXLENBQUM7UUFDL0csSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsS0FBSyxhQUFhLElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRTtZQUNyRyxJQUFJLElBQUksSUFBSSxJQUFJLDRCQUFtQyxFQUFFO2dCQUNuRCw0REFBNEQ7Z0JBQzVELGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLE9BQU87YUFDUjtZQUNELElBQUksMEJBQWlDLENBQUM7U0FDdkM7YUFBTSxJQUFJLFdBQVcsS0FBSyxPQUFPLEVBQUU7WUFDbEMsSUFBSSxJQUFJLElBQUksSUFBSSx3QkFBaUMsRUFBRTtnQkFDakQsNERBQTREO2dCQUM1RCxhQUFhLEdBQUcsSUFBSSxDQUFDO2dCQUNyQixPQUFPO2FBQ1I7WUFDRCxJQUFJLHNCQUErQixDQUFDO1NBQ3JDO2FBQU0sSUFBSSxXQUFXLEtBQUssT0FBTyxJQUFJLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMzRixJQUFJLElBQUksSUFBSSxJQUFJLHdCQUFpQyxFQUFFO2dCQUNqRCw0REFBNEQ7Z0JBQzVELGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLE9BQU87YUFDUjtZQUNELElBQUksc0JBQStCLENBQUM7U0FDckM7YUFBTTtZQUNMLE9BQU87U0FDUjtRQUNELElBQUksWUFBWSxFQUFFO1lBQ2hCLE1BQU0sS0FBSyxTQUFHLG1CQUFVLENBQUMsWUFBWSxDQUFDLDBDQUFFLEtBQUssQ0FBQztZQUM5QyxJQUFJLFlBQVksSUFBSSxJQUFJLElBQUksWUFBWSxLQUFLLEtBQUssRUFBRTtnQkFDbEQsMERBQTBEO2dCQUMxRCxxQkFBcUIsR0FBRyxJQUFJLENBQUM7YUFDOUI7WUFDRCxZQUFZLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTztJQUNULENBQUM7QUFDSCxDQUFDO0FBN0RELDREQTZEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzc2VtYmx5IH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgeyBtaW5WZXJzaW9uIH0gZnJvbSAnc2VtdmVyJztcblxuZXhwb3J0IGNvbnN0IGVudW0gQ29uc3RydWN0RnJhbWV3b3JrTmFtZSB7XG4gIEFXU19DREsgPSAnYXdzLWNkaycsXG4gIENESzhTID0gJ2NkazhzJyxcbiAgQ0RLVEYgPSAnY2RrdGYnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdEZyYW1ld29yayB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgY29uc3RydWN0IGZyYW1ld29yay5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IENvbnN0cnVjdEZyYW1ld29ya05hbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBtYWpvciB2ZXJzaW9uIG9mIHRoZSBjb25zdHJ1Y3QgZnJhbWV3b3JrIHRoYXQgaXMgdXNlZCwgaWYgaXQgY291bGQgYmVcbiAgICogaWRlbnRpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IG1ham9yVmVyc2lvbj86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBDb25zdHJ1Y3QgZnJhbWV3b3JrIHVzZWQgYnkgdGhlIHByb3ZpZGVkIGFzc2VtYmx5LlxuICpcbiAqIEBwYXJhbSBhc3NlbWJseSB0aGUgYXNzZW1ibHkgZm9yIHdoaWNoIGEgY29uc3RydWN0IGZyYW1ld29yayBzaG91bGQgYmVcbiAqICAgICAgICAgICAgICAgICBpZGVudGlmaWVkLlxuICpcbiAqIEByZXR1cm5zIGEgY29uc3RydWN0IGZyYW1ld29yayBpZiBvbmUgY291bGQgYmUgaWRlbnRpZmllZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdENvbnN0cnVjdEZyYW1ld29yayhhc3NlbWJseTogQXNzZW1ibHkpOiBDb25zdHJ1Y3RGcmFtZXdvcmsgfCB1bmRlZmluZWQge1xuICBsZXQgbmFtZTogQ29uc3RydWN0RnJhbWV3b3JrWyduYW1lJ10gfCB1bmRlZmluZWQ7XG4gIGxldCBuYW1lQW1iaWd1b3VzID0gZmFsc2U7XG4gIGxldCBtYWpvclZlcnNpb246IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgbGV0IG1ham9yVmVyc2lvbkFtYmlndW91cyA9IGZhbHNlO1xuXG4gIC8vIGV4Y2VwdGlvbjogd2UgYXNzdW1lIGFsbCBAY2RrdGYvIGxpYnJhcmllcyBhcmUgY2RrdGYsIGV2ZW4gaWYgdGhleVxuICAvLyBhbHNvIHRha2Ugb3RoZXIgQ0RLIHR5cGVzIGFzIGRlcGVuZGVuY2llc1xuICBpZiAoYXNzZW1ibHkubmFtZS5zdGFydHNXaXRoKCdAY2RrdGYvJykpIHtcbiAgICBuYW1lID0gQ29uc3RydWN0RnJhbWV3b3JrTmFtZS5DREtURjtcbiAgICBpZiAoJ2Nka3RmJyBpbiAoYXNzZW1ibHkuZGVwZW5kZW5jeUNsb3N1cmUgPz8ge30pKSB7XG4gICAgICBkZXRlY3RDb25zdHJ1Y3RGcmFtZXdvcmtQYWNrYWdlKCdjZGt0ZicpO1xuICAgIH1cbiAgICByZXR1cm4geyBuYW1lLCBtYWpvclZlcnNpb24gfTtcbiAgfVxuXG4gIGRldGVjdENvbnN0cnVjdEZyYW1ld29ya1BhY2thZ2UoYXNzZW1ibHkubmFtZSwgYXNzZW1ibHkudmVyc2lvbik7XG4gIGZvciAoY29uc3QgZGVwTmFtZSBvZiBPYmplY3Qua2V5cyhhc3NlbWJseS5kZXBlbmRlbmN5Q2xvc3VyZSA/PyB7fSkpIHtcbiAgICBkZXRlY3RDb25zdHJ1Y3RGcmFtZXdvcmtQYWNrYWdlKGRlcE5hbWUpO1xuICAgIGlmIChuYW1lQW1iaWd1b3VzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuYW1lICYmIHsgbmFtZSwgbWFqb3JWZXJzaW9uOiBtYWpvclZlcnNpb25BbWJpZ3VvdXMgPyB1bmRlZmluZWQgOiBtYWpvclZlcnNpb24gfTtcblxuICBmdW5jdGlvbiBkZXRlY3RDb25zdHJ1Y3RGcmFtZXdvcmtQYWNrYWdlKHBhY2thZ2VOYW1lOiBzdHJpbmcsIHZlcnNpb25SYW5nZSA9IGFzc2VtYmx5LmRlcGVuZGVuY2llcz8uW3BhY2thZ2VOYW1lXSk6IHZvaWQge1xuICAgIGlmIChwYWNrYWdlTmFtZS5zdGFydHNXaXRoKCdAYXdzLWNkay8nKSB8fCBwYWNrYWdlTmFtZSA9PT0gJ2F3cy1jZGstbGliJyB8fCBwYWNrYWdlTmFtZSA9PT0gJ21vbm9jZGsnKSB7XG4gICAgICBpZiAobmFtZSAmJiBuYW1lICE9PSBDb25zdHJ1Y3RGcmFtZXdvcmtOYW1lLkFXU19DREspIHtcbiAgICAgICAgLy8gSWRlbnRpZmllZCBtdWx0aXBsZSBjYW5kaWRhdGVzLCBzbyByZXR1cm5pbmcgYW1iaWd1b3VzLi4uXG4gICAgICAgIG5hbWVBbWJpZ3VvdXMgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBuYW1lID0gQ29uc3RydWN0RnJhbWV3b3JrTmFtZS5BV1NfQ0RLO1xuICAgIH0gZWxzZSBpZiAocGFja2FnZU5hbWUgPT09ICdjZGt0ZicpIHtcbiAgICAgIGlmIChuYW1lICYmIG5hbWUgIT09IENvbnN0cnVjdEZyYW1ld29ya05hbWUuQ0RLVEYpIHtcbiAgICAgICAgLy8gSWRlbnRpZmllZCBtdWx0aXBsZSBjYW5kaWRhdGVzLCBzbyByZXR1cm5pbmcgYW1iaWd1b3VzLi4uXG4gICAgICAgIG5hbWVBbWJpZ3VvdXMgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBuYW1lID0gQ29uc3RydWN0RnJhbWV3b3JrTmFtZS5DREtURjtcbiAgICB9IGVsc2UgaWYgKHBhY2thZ2VOYW1lID09PSAnY2RrOHMnIHx8IC9eY2RrOHMtcGx1cyg/Oi0oPzoxN3wyMHwyMXwyMikpPyQvLnRlc3QocGFja2FnZU5hbWUpKSB7XG4gICAgICBpZiAobmFtZSAmJiBuYW1lICE9PSBDb25zdHJ1Y3RGcmFtZXdvcmtOYW1lLkNESzhTKSB7XG4gICAgICAgIC8vIElkZW50aWZpZWQgbXVsdGlwbGUgY2FuZGlkYXRlcywgc28gcmV0dXJuaW5nIGFtYmlndW91cy4uLlxuICAgICAgICBuYW1lQW1iaWd1b3VzID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgbmFtZSA9IENvbnN0cnVjdEZyYW1ld29ya05hbWUuQ0RLOFM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHZlcnNpb25SYW5nZSkge1xuICAgICAgY29uc3QgbWFqb3IgPSBtaW5WZXJzaW9uKHZlcnNpb25SYW5nZSk/Lm1ham9yO1xuICAgICAgaWYgKG1ham9yVmVyc2lvbiAhPSBudWxsICYmIG1ham9yVmVyc2lvbiAhPT0gbWFqb3IpIHtcbiAgICAgICAgLy8gSWRlbnRpZmllZCBtdWx0aXBsZSBjYW5kaWRhdGVzLCBzbyB0aGlzIGlzIGFtYmlndW91cy4uLlxuICAgICAgICBtYWpvclZlcnNpb25BbWJpZ3VvdXMgPSB0cnVlO1xuICAgICAgfVxuICAgICAgbWFqb3JWZXJzaW9uID0gbWFqb3I7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxufVxuIl19
96
+ exports.detectConstructFrameworks = detectConstructFrameworks;
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWV3b3JrLWRldGVjdGlvbi5sYW1iZGEtc2hhcmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tlbmQvaW5nZXN0aW9uL2ZyYW1ld29yay1kZXRlY3Rpb24ubGFtYmRhLXNoYXJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpRUFBaUU7QUFDakUsaUNBQWtDO0FBR2xDLG1DQUFvQztBQXNCcEM7OztHQUdHO0FBQ0gsTUFBTSxrQkFBa0IsR0FBOEQ7SUFDcEYseUJBQWdDLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxLQUFLLGFBQWEsSUFBSSxJQUFJLEtBQUssU0FBUztJQUNoSSxxQkFBOEIsRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxtQ0FBbUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3BILDJFQUEyRTtJQUMzRSxzRUFBc0U7SUFDdEUscUJBQThCLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxPQUFPO0NBQ25FLENBQUM7QUFFRjs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IseUJBQXlCLENBQUMsUUFBa0I7O0lBQzFELDBFQUEwRTtJQUMxRSw0RUFBNEU7SUFDNUUsNEVBQTRFO0lBQzVFLDZCQUE2QjtJQUM3QixNQUFNLGtCQUFrQixHQUF5RSxFQUFFLENBQUM7SUFFcEcsK0JBQStCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakUsS0FBSyxNQUFNLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxPQUFDLFFBQVEsQ0FBQyxpQkFBaUIsbUNBQUksRUFBRSxDQUFDLEVBQUU7UUFDbkUsK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDMUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLEtBQUssRUFBc0IsQ0FBQztJQUNuRCxLQUFLLE1BQU0sQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1FBQzlFLE1BQU0sSUFBSSxHQUFHLGFBQXVDLENBQUM7UUFDckQsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQzlCLFNBQVM7U0FDVjthQUFNLElBQUksWUFBWSxLQUFLLFdBQVcsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQ3JFLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzNCO2FBQU0sSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLEVBQUU7WUFDM0MsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1NBQ3pDO0tBQ0Y7SUFFRCxPQUFPLFVBQVUsQ0FBQztJQUVsQjs7O09BR0c7SUFDSCxTQUFTLCtCQUErQixDQUFDLFdBQW1CLEVBQUUsWUFBbUQ7O3FDQUFuRCxFQUFBLHFCQUFlLFFBQVEsQ0FBQyxZQUFZLDBDQUFHLFdBQVcsQ0FBQztRQUMvRyxLQUFLLE1BQU0sYUFBYSxJQUFJLG1FQUE0RixFQUFFO1lBQ3hILE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDM0QsSUFBSSxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDakMsTUFBTSxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxnQkFBZ0IsS0FBSyxXQUFXLEVBQUU7b0JBQ3BDLG1FQUFtRTtvQkFDbkUsNkRBQTZEO29CQUM3RCwwQkFBMEI7b0JBQzFCLE9BQU87aUJBQ1I7Z0JBRUQsTUFBTSxZQUFZLFNBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFDLG1CQUFVLENBQUMsWUFBWSxDQUFDLDBDQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLG1DQUFJLFNBQVMsQ0FBQztnQkFFL0YsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7b0JBQ2xDLDhEQUE4RDtvQkFDOUQsMkRBQTJEO29CQUMzRCxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxZQUFZLENBQUM7b0JBQ2pELE9BQU87aUJBQ1I7cUJBQU0sSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUU7b0JBQ3pDLHFFQUFxRTtvQkFDckUscUVBQXFFO29CQUNyRSxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxZQUFZLENBQUM7b0JBQ2pELE9BQU87aUJBQ1I7cUJBQU07b0JBQ0wsMERBQTBEO29CQUMxRCxNQUFNLENBQUMsT0FBTyxnQkFBZ0IsS0FBSyxRQUFRLENBQUMsQ0FBQztvQkFFN0MsNkRBQTZEO29CQUM3RCxnRUFBZ0U7b0JBQ2hFLG1CQUFtQjtvQkFDbkIsSUFBSSxZQUFZLEtBQUssU0FBUyxJQUFJLGdCQUFnQixLQUFLLFlBQVksRUFBRTt3QkFDbkUsa0JBQWtCLENBQUMsYUFBYSxDQUFDLEdBQUcsV0FBVyxDQUFDO3FCQUNqRDtvQkFDRCxPQUFPO2lCQUNSO2FBQ0Y7U0FDRjtJQUNILENBQUM7QUFDSCxDQUFDO0FBckVELDhEQXFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5pbXBvcnQgYXNzZXJ0ID0gcmVxdWlyZSgnYXNzZXJ0Jyk7XG5cbmltcG9ydCB7IEFzc2VtYmx5IH0gZnJvbSAnQGpzaWkvc3BlYyc7XG5pbXBvcnQgeyBtaW5WZXJzaW9uIH0gZnJvbSAnc2VtdmVyJztcblxuXG5leHBvcnQgY29uc3QgZW51bSBDb25zdHJ1Y3RGcmFtZXdvcmtOYW1lIHtcbiAgQVdTX0NESyA9ICdhd3MtY2RrJyxcbiAgQ0RLOFMgPSAnY2RrOHMnLFxuICBDREtURiA9ICdjZGt0ZicsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uc3RydWN0RnJhbWV3b3JrIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjb25zdHJ1Y3QgZnJhbWV3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogQ29uc3RydWN0RnJhbWV3b3JrTmFtZTtcblxuICAvKipcbiAgICogVGhlIG1ham9yIHZlcnNpb24gb2YgdGhlIGNvbnN0cnVjdCBmcmFtZXdvcmsgdGhhdCBpcyB1c2VkLCBpZiBpdCBjb3VsZCBiZVxuICAgKiBpZGVudGlmaWVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbWFqb3JWZXJzaW9uPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByZWRpY2F0ZXMgdGhhdCBkZXRlcm1pbmUgd2hldGhlciBhIHBhY2thZ2UgaXMgaW5kaWNhdGl2ZSBvZiB0aGUgQ0RLXG4gKiBmcmFtZXdvcmsgc29tZW9uZSBpcyB1c2luZy5cbiAqL1xuY29uc3QgRlJBTUVXT1JLX01BVENIRVJTOiBSZWNvcmQ8Q29uc3RydWN0RnJhbWV3b3JrTmFtZSwgKG5hbWU6IHN0cmluZykgPT4gYm9vbGVhbj4gPSB7XG4gIFtDb25zdHJ1Y3RGcmFtZXdvcmtOYW1lLkFXU19DREtdOiAobmFtZTogc3RyaW5nKSA9PiBuYW1lLnN0YXJ0c1dpdGgoJ0Bhd3MtY2RrLycpIHx8IG5hbWUgPT09ICdhd3MtY2RrLWxpYicgfHwgbmFtZSA9PT0gJ21vbm9jZGsnLFxuICBbQ29uc3RydWN0RnJhbWV3b3JrTmFtZS5DREs4U106IChuYW1lOiBzdHJpbmcpID0+IG5hbWUgPT09ICdjZGs4cycgfHwgL15jZGs4cy1wbHVzKD86LSg/OjE3fDIwfDIxfDIyKSk/JC8udGVzdChuYW1lKSxcbiAgLy8gY2RrdGYgcHJvdmlkZXJzIGRlcGVuZGVuY2llcyAoXCJAY2RrdGYvcHJvdmlkZXIteHh4XCIpIGFyZSBtYWpvciB2ZXJzaW9uZWRcbiAgLy8gZGlmZmVyZW50bHkgdGhhbiB0aGUgY29yZSBsaWJyYXJ5LCBzbyBkbyBub3QgdGFrZSB0aGVtIGludG8gYWNjb3VudFxuICBbQ29uc3RydWN0RnJhbWV3b3JrTmFtZS5DREtURl06IChuYW1lOiBzdHJpbmcpID0+IG5hbWUgPT09ICdjZGt0ZicsXG59O1xuXG4vKipcbiAqIERldGVybWluZXMgdGhlIENvbnN0cnVjdCBmcmFtZXdvcmsgdXNlZCBieSB0aGUgcHJvdmlkZWQgYXNzZW1ibHkuXG4gKlxuICogQHBhcmFtIGFzc2VtYmx5IHRoZSBhc3NlbWJseSBmb3Igd2hpY2ggYSBjb25zdHJ1Y3QgZnJhbWV3b3JrIHNob3VsZCBiZVxuICogICAgICAgICAgICAgICAgIGlkZW50aWZpZWQuXG4gKlxuICogQHJldHVybnMgYSBjb25zdHJ1Y3QgZnJhbWV3b3JrIGlmIG9uZSBjb3VsZCBiZSBpZGVudGlmaWVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0Q29uc3RydWN0RnJhbWV3b3Jrcyhhc3NlbWJseTogQXNzZW1ibHkpOiBDb25zdHJ1Y3RGcmFtZXdvcmtbXSB7XG4gIC8vIFwibm90LXN1cmVcIiBtZWFucyB3ZSBoYXZlbid0IHNlZW4gYSBtYWpvciB2ZXJzaW9uIGZvciB0aGUgZnJhbWV3b3JrIHlldCxcbiAgLy8gZS5nLiBpbiB0aGUgY2FzZSBvZiBhIHRyYW5zaXRpdmUgZGVwZW5kZW5jeSB3aGVyZSB0aGUgaW5mbyBpc24ndCBwcm92aWRlZFxuICAvLyBcImFtYmlndW91c1wiIG1lYW5zIHdlIGhhdmUgc2VlbiBtdWx0aXBsZSBtYWpvciB2ZXJzaW9ucyBzbyBpdCdzIGltcG9zc2libGVcbiAgLy8gdG8gcmVzb2x2ZSBhIHNpbmdsZSBudW1iZXJcbiAgY29uc3QgZGV0ZWN0ZWRGcmFtZXdvcmtzOiB7IFtQIGluIENvbnN0cnVjdEZyYW1ld29ya05hbWVdPzogbnVtYmVyIHwgJ25vLWRhdGEnIHwgJ2FtYmlndW91cycgfSA9IHt9O1xuXG4gIGRldGVjdENvbnN0cnVjdEZyYW1ld29ya1BhY2thZ2UoYXNzZW1ibHkubmFtZSwgYXNzZW1ibHkudmVyc2lvbik7XG4gIGZvciAoY29uc3QgZGVwTmFtZSBvZiBPYmplY3Qua2V5cyhhc3NlbWJseS5kZXBlbmRlbmN5Q2xvc3VyZSA/PyB7fSkpIHtcbiAgICBkZXRlY3RDb25zdHJ1Y3RGcmFtZXdvcmtQYWNrYWdlKGRlcE5hbWUpO1xuICB9XG5cbiAgY29uc3QgZnJhbWV3b3JrcyA9IG5ldyBBcnJheTxDb25zdHJ1Y3RGcmFtZXdvcms+KCk7XG4gIGZvciAoY29uc3QgW2ZyYW1ld29ya05hbWUsIG1ham9yVmVyc2lvbl0gb2YgT2JqZWN0LmVudHJpZXMoZGV0ZWN0ZWRGcmFtZXdvcmtzKSkge1xuICAgIGNvbnN0IG5hbWUgPSBmcmFtZXdvcmtOYW1lIGFzIENvbnN0cnVjdEZyYW1ld29ya05hbWU7XG4gICAgaWYgKG1ham9yVmVyc2lvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9IGVsc2UgaWYgKG1ham9yVmVyc2lvbiA9PT0gJ2FtYmlndW91cycgfHwgbWFqb3JWZXJzaW9uID09PSAnbm8tZGF0YScpIHtcbiAgICAgIGZyYW1ld29ya3MucHVzaCh7IG5hbWUgfSk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbWFqb3JWZXJzaW9uID09PSAnbnVtYmVyJykge1xuICAgICAgZnJhbWV3b3Jrcy5wdXNoKHsgbmFtZSwgbWFqb3JWZXJzaW9uIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmcmFtZXdvcmtzO1xuXG4gIC8qKlxuICAgKiBBbmFseXNlcyB0aGUgcGFja2FnZSBuYW1lIGFuZCB2ZXJzaW9uIHJhbmdlLCBhbmQgdXBkYXRlc1xuICAgKiBgZGV0ZWN0ZWRGcmFtZXdvcmtzYCBmcm9tIHRoZSBwYXJlbnQgc2NvcGUgYXBwcm9wcmlhdGVseVxuICAgKi9cbiAgZnVuY3Rpb24gZGV0ZWN0Q29uc3RydWN0RnJhbWV3b3JrUGFja2FnZShwYWNrYWdlTmFtZTogc3RyaW5nLCB2ZXJzaW9uUmFuZ2UgPSBhc3NlbWJseS5kZXBlbmRlbmNpZXM/LltwYWNrYWdlTmFtZV0pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGZyYW1ld29ya05hbWUgb2YgW0NvbnN0cnVjdEZyYW1ld29ya05hbWUuQVdTX0NESywgQ29uc3RydWN0RnJhbWV3b3JrTmFtZS5DREs4UywgQ29uc3RydWN0RnJhbWV3b3JrTmFtZS5DREtURl0pIHtcbiAgICAgIGNvbnN0IG1hdGNoZXNGcmFtZXdvcmsgPSBGUkFNRVdPUktfTUFUQ0hFUlNbZnJhbWV3b3JrTmFtZV07XG4gICAgICBpZiAobWF0Y2hlc0ZyYW1ld29yayhwYWNrYWdlTmFtZSkpIHtcbiAgICAgICAgY29uc3QgZnJhbWV3b3JrVmVyc2lvbiA9IGRldGVjdGVkRnJhbWV3b3Jrc1tmcmFtZXdvcmtOYW1lXTtcbiAgICAgICAgaWYgKGZyYW1ld29ya1ZlcnNpb24gPT09ICdhbWJpZ3VvdXMnKSB7XG4gICAgICAgICAgLy8gV2UgaGF2ZSBhbHJlYWR5IHNlZW4gbXVsdGlwbGUgbWFqb3IgdmVyc2lvbnMgYW5kIGhhdmUgZGV0ZXJtaW5lZFxuICAgICAgICAgIC8vIHRoZSBtYWpvciB2ZXJzaW9uIGlzIGFtYmlndW91cywgc28gdGhpcyBwYWNrYWdlIHdvbid0IGdpdmVcbiAgICAgICAgICAvLyB1cyBhbnkgbmV3IGluZm9ybWF0aW9uLlxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhY2thZ2VNYWpvciA9ICh2ZXJzaW9uUmFuZ2UgPyBtaW5WZXJzaW9uKHZlcnNpb25SYW5nZSk/Lm1ham9yIDogdW5kZWZpbmVkKSA/PyAnbm8tZGF0YSc7XG5cbiAgICAgICAgaWYgKGZyYW1ld29ya1ZlcnNpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIEl0J3MgdGhlIGZpcnN0IHRpbWUgc2VlaW5nIHRoaXMgbWFqb3IgdmVyc2lvbiwgc28gd2UgcmVjb3JkXG4gICAgICAgICAgLy8gd2hhdGV2ZXIgbmV3IGluZm9ybWF0aW9uIHdlIGZvdW5kIChcIm5vLWRhdGFcIiBvciBudW1iZXIpLlxuICAgICAgICAgIGRldGVjdGVkRnJhbWV3b3Jrc1tmcmFtZXdvcmtOYW1lXSA9IHBhY2thZ2VNYWpvcjtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSBpZiAoZnJhbWV3b3JrVmVyc2lvbiA9PT0gJ25vLWRhdGEnKSB7XG4gICAgICAgICAgLy8gV2UndmUgc2VlbiB0aGlzIGZyYW1ld29yayBiZWZvcmUgYnV0IGhhdmVuJ3Qgc2VlbiBhIG1ham9yIHZlcnNpb24sXG4gICAgICAgICAgLy8gc28gcmVjb3JkIHdoYXRldmVyIG5ldyBpbmZvcm1hdGlvbiB3ZSBmb3VuZCAoXCJuby1kYXRhXCIgb3IgbnVtYmVyKS5cbiAgICAgICAgICBkZXRlY3RlZEZyYW1ld29ya3NbZnJhbWV3b3JrTmFtZV0gPSBwYWNrYWdlTWFqb3I7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIGZyYW1ld29ya1ZlcnNpb24gY2FuIG9ubHkgYmUgYSBNViBudW1iZXJcbiAgICAgICAgICBhc3NlcnQodHlwZW9mIGZyYW1ld29ya1ZlcnNpb24gPT09ICdudW1iZXInKTtcblxuICAgICAgICAgIC8vIFdlJ3ZlIHNlZW4gZXZpZGVuY2Ugb2YgYSBwYXJ0aWN1bGFyIG1ham9yIHZlcnNpb24gZm9yIHRoaXNcbiAgICAgICAgICAvLyBmcmFtZXdvcmssIHNvIG9ubHkgdXBkYXRlIGlmIHRoaXMgcGFja2FnZSBjb25mbGljdHMgd2l0aCB3aGF0XG4gICAgICAgICAgLy8gd2UncmUgZXhwZWN0aW5nLlxuICAgICAgICAgIGlmIChwYWNrYWdlTWFqb3IgIT09ICduby1kYXRhJyAmJiBmcmFtZXdvcmtWZXJzaW9uICE9PSBwYWNrYWdlTWFqb3IpIHtcbiAgICAgICAgICAgIGRldGVjdGVkRnJhbWV3b3Jrc1tmcmFtZXdvcmtOYW1lXSA9ICdhbWJpZ3VvdXMnO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==