@workflow/builders 4.0.8 → 4.0.10
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/dist/apply-swc-transform.js +1 -1
- package/dist/base-builder.js +1 -1
- package/dist/build-queue.js +1 -1
- package/dist/config-helpers.js +1 -1
- package/dist/constants.js +1 -1
- package/dist/discover-entries-esbuild-plugin.js +1 -1
- package/dist/discover-entries-esbuild-plugin.test.js +1 -1
- package/dist/esbuild-tsconfig.js +1 -1
- package/dist/esbuild-tsconfig.test.js +1 -1
- package/dist/external-package-warning.test.js +1 -1
- package/dist/get-input-files.test.js +1 -1
- package/dist/index.js +1 -1
- package/dist/module-specifier.js +1 -1
- package/dist/module-specifier.test.js +1 -1
- package/dist/node-module-esbuild-plugin.js +1 -1
- package/dist/node-module-esbuild-plugin.test.js +1 -1
- package/dist/pseudo-package-esbuild-plugin.js +1 -1
- package/dist/pseudo-package-esbuild-plugin.test.js +1 -1
- package/dist/request-converter.js +1 -1
- package/dist/request-converter.test.js +1 -1
- package/dist/serde-checker.js +1 -1
- package/dist/standalone.js +1 -1
- package/dist/swc-esbuild-plugin.js +1 -1
- package/dist/swc-esbuild-plugin.test.js +1 -1
- package/dist/transform-utils.js +1 -1
- package/dist/transform-utils.test.js +1 -1
- package/dist/types.js +1 -1
- package/dist/vercel-build-output-api.js +1 -1
- package/dist/workflow-alias.js +1 -1
- package/dist/workflow-alias.test.js +1 -1
- package/dist/workflows-extractor.js +1 -1
- package/package.json +5 -5
- package/dist/apply-swc-transform.js.map +0 -1
- package/dist/base-builder.js.map +0 -1
- package/dist/build-queue.js.map +0 -1
- package/dist/config-helpers.js.map +0 -1
- package/dist/constants.js.map +0 -1
- package/dist/discover-entries-esbuild-plugin.js.map +0 -1
- package/dist/discover-entries-esbuild-plugin.test.js.map +0 -1
- package/dist/esbuild-tsconfig.js.map +0 -1
- package/dist/esbuild-tsconfig.test.js.map +0 -1
- package/dist/external-package-warning.test.js.map +0 -1
- package/dist/get-input-files.test.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/module-specifier.js.map +0 -1
- package/dist/module-specifier.test.js.map +0 -1
- package/dist/node-module-esbuild-plugin.js.map +0 -1
- package/dist/node-module-esbuild-plugin.test.js.map +0 -1
- package/dist/pseudo-package-esbuild-plugin.js.map +0 -1
- package/dist/pseudo-package-esbuild-plugin.test.js.map +0 -1
- package/dist/request-converter.js.map +0 -1
- package/dist/request-converter.test.js.map +0 -1
- package/dist/serde-checker.js.map +0 -1
- package/dist/standalone.js.map +0 -1
- package/dist/swc-esbuild-plugin.js.map +0 -1
- package/dist/swc-esbuild-plugin.test.js.map +0 -1
- package/dist/transform-utils.js.map +0 -1
- package/dist/transform-utils.test.js.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/vercel-build-output-api.js.map +0 -1
- package/dist/workflow-alias.js.map +0 -1
- package/dist/workflow-alias.test.js.map +0 -1
- package/dist/workflows-extractor.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -15,4 +15,4 @@ export { detectWorkflowPatterns, generatedWorkflowPathPattern, isGeneratedWorkfl
|
|
|
15
15
|
export { isValidBuildTarget, validBuildTargets } from './types.js';
|
|
16
16
|
export { VercelBuildOutputAPIBuilder } from './vercel-build-output-api.js';
|
|
17
17
|
export { resolveWorkflowAliasRelativePath } from './workflow-alias.js';
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFDTCx1QkFBdUIsRUFHdkIsK0JBQStCLEVBQy9CLDZDQUE2QyxHQUM5QyxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25GLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsYUFBYSxFQUdiLHNCQUFzQixHQUN2QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlFLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsZUFBZSxHQUNoQixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsMkJBQTJCLEdBQzVCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixtQkFBbUIsR0FHcEIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLGNBQWMsRUFDZCxrQkFBa0IsRUFFbEIsc0JBQXNCLEVBQ3RCLDBCQUEwQixFQUMxQiwwQkFBMEIsR0FDM0IsTUFBTSxzQkFBc0IsQ0FBQztBQVU5QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0scUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSB7IFdvcmtmbG93TWFuaWZlc3QgfSBmcm9tICcuL2FwcGx5LXN3Yy10cmFuc2Zvcm0uanMnO1xuZXhwb3J0IHsgYXBwbHlTd2NUcmFuc2Zvcm0gfSBmcm9tICcuL2FwcGx5LXN3Yy10cmFuc2Zvcm0uanMnO1xuZXhwb3J0IHsgQmFzZUJ1aWxkZXIgfSBmcm9tICcuL2Jhc2UtYnVpbGRlci5qcyc7XG5leHBvcnQgeyBjcmVhdGVCdWlsZFF1ZXVlIH0gZnJvbSAnLi9idWlsZC1xdWV1ZS5qcyc7XG5leHBvcnQge1xuICBjcmVhdGVCYXNlQnVpbGRlckNvbmZpZyxcbiAgdHlwZSBEZWNvcmF0b3JPcHRpb25zLFxuICB0eXBlIERlY29yYXRvck9wdGlvbnNXaXRoQ29uZmlnUGF0aCxcbiAgZ2V0RGVjb3JhdG9yT3B0aW9uc0ZvckRpcmVjdG9yeSxcbiAgZ2V0RGVjb3JhdG9yT3B0aW9uc0ZvckRpcmVjdG9yeVdpdGhDb25maWdQYXRoLFxufSBmcm9tICcuL2NvbmZpZy1oZWxwZXJzLmpzJztcbmV4cG9ydCB7IFNURVBfUVVFVUVfVFJJR0dFUiwgV09SS0ZMT1dfUVVFVUVfVFJJR0dFUiB9IGZyb20gJy4vY29uc3RhbnRzLmpzJztcbmV4cG9ydCB7IGNyZWF0ZURpc2NvdmVyRW50cmllc1BsdWdpbiB9IGZyb20gJy4vZGlzY292ZXItZW50cmllcy1lc2J1aWxkLXBsdWdpbi5qcyc7XG5leHBvcnQge1xuICBjbGVhck1vZHVsZVNwZWNpZmllckNhY2hlLFxuICBnZXRJbXBvcnRQYXRoLFxuICB0eXBlIEltcG9ydFBhdGhSZXN1bHQsXG4gIHR5cGUgTW9kdWxlU3BlY2lmaWVyUmVzdWx0LFxuICByZXNvbHZlTW9kdWxlU3BlY2lmaWVyLFxufSBmcm9tICcuL21vZHVsZS1zcGVjaWZpZXIuanMnO1xuZXhwb3J0IHsgY3JlYXRlTm9kZU1vZHVsZUVycm9yUGx1Z2luIH0gZnJvbSAnLi9ub2RlLW1vZHVsZS1lc2J1aWxkLXBsdWdpbi5qcyc7XG5leHBvcnQge1xuICBjcmVhdGVQc2V1ZG9QYWNrYWdlUGx1Z2luLFxuICBQU0VVRE9fUEFDS0FHRVMsXG59IGZyb20gJy4vcHNldWRvLXBhY2thZ2UtZXNidWlsZC1wbHVnaW4uanMnO1xuZXhwb3J0IHtcbiAgTk9STUFMSVpFX1JFUVVFU1RfQ09ERSxcbiAgcmVwbGFjZUdlbmVyYXRlZFJvdXRlRXhwb3J0LFxufSBmcm9tICcuL3JlcXVlc3QtY29udmVydGVyLmpzJztcbmV4cG9ydCB7XG4gIGFuYWx5emVTZXJkZUNvbXBsaWFuY2UsXG4gIGV4dHJhY3RDbGFzc0VudHJpZXMsXG4gIHR5cGUgU2VyZGVDaGVja1Jlc3VsdCxcbiAgdHlwZSBTZXJkZUNsYXNzQ2hlY2tSZXN1bHQsXG59IGZyb20gJy4vc2VyZGUtY2hlY2tlci5qcyc7XG5leHBvcnQgeyBTdGFuZGFsb25lQnVpbGRlciB9IGZyb20gJy4vc3RhbmRhbG9uZS5qcyc7XG5leHBvcnQgeyBjcmVhdGVTd2NQbHVnaW4gfSBmcm9tICcuL3N3Yy1lc2J1aWxkLXBsdWdpbi5qcyc7XG5leHBvcnQge1xuICBkZXRlY3RXb3JrZmxvd1BhdHRlcm5zLFxuICBnZW5lcmF0ZWRXb3JrZmxvd1BhdGhQYXR0ZXJuLFxuICBpc0dlbmVyYXRlZFdvcmtmbG93RmlsZSxcbiAgaXNXb3JrZmxvd1Nka0ZpbGUsXG4gIHNob3VsZFRyYW5zZm9ybUZpbGUsXG4gIHR1cmJvcGFja0NvbnRlbnRQYXR0ZXJuLFxuICB1c2VTdGVwUGF0dGVybixcbiAgdXNlV29ya2Zsb3dQYXR0ZXJuLFxuICB0eXBlIFdvcmtmbG93UGF0dGVybk1hdGNoLFxuICB3b3JrZmxvd1Nka1BhdGhQYXR0ZXJuLFxuICB3b3JrZmxvd1NlcmRlSW1wb3J0UGF0dGVybixcbiAgd29ya2Zsb3dTZXJkZVN5bWJvbFBhdHRlcm4sXG59IGZyb20gJy4vdHJhbnNmb3JtLXV0aWxzLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgQXN0cm9Db25maWcsXG4gIEJ1aWxkVGFyZ2V0LFxuICBOZXh0Q29uZmlnLFxuICBTdGFuZGFsb25lQ29uZmlnLFxuICBTdmVsdGVLaXRDb25maWcsXG4gIFZlcmNlbEJ1aWxkT3V0cHV0Q29uZmlnLFxuICBXb3JrZmxvd0NvbmZpZyxcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5leHBvcnQgeyBpc1ZhbGlkQnVpbGRUYXJnZXQsIHZhbGlkQnVpbGRUYXJnZXRzIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5leHBvcnQgeyBWZXJjZWxCdWlsZE91dHB1dEFQSUJ1aWxkZXIgfSBmcm9tICcuL3ZlcmNlbC1idWlsZC1vdXRwdXQtYXBpLmpzJztcbmV4cG9ydCB7IHJlc29sdmVXb3JrZmxvd0FsaWFzUmVsYXRpdmVQYXRoIH0gZnJvbSAnLi93b3JrZmxvdy1hbGlhcy5qcyc7XG4iXX0=
|
package/dist/module-specifier.js
CHANGED
|
@@ -445,4 +445,4 @@ export function getImportPath(filePath, projectRoot) {
|
|
|
445
445
|
isPackage: false,
|
|
446
446
|
};
|
|
447
447
|
}
|
|
448
|
-
//# sourceMappingURL=module-specifier.js.map
|
|
448
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXNwZWNpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9tb2R1bGUtc3BlY2lmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBMkJsRTs7O0dBR0c7QUFDSCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUE4QixDQUFDO0FBRS9EOzs7R0FHRztBQUNILFNBQVMsZUFBZSxDQUFDLFFBQWdCO0lBQ3ZDLElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU1QixnRUFBZ0U7SUFDaEUsTUFBTSxXQUFXLEdBQWEsRUFBRSxDQUFDO0lBRWpDLG1EQUFtRDtJQUNuRCxPQUFPLEdBQUcsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1QixvQkFBb0I7UUFDcEIsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLG1FQUFtRTtZQUNuRSxLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUNyQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV0QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELElBQUksVUFBVSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFD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LHNFQUFzRTtZQUN0RSxpRUFBaUU7WUFDakUsMEJBQTBCO1lBQzFCLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNwRCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE9BQU87b0JBQ0wsVUFBVSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksR0FBRyxPQUFPLEVBQUU7b0JBQ25DLFNBQVMsRUFBRSxJQUFJO2lCQUNoQixDQUFDO1lBQ0osQ0FBQztZQUVELGtFQUFrRTtZQUNsRSxzRUFBc0U7WUFDdEUsZ0VBQWdFO1lBQ2hFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDekMsT0FBTztvQkFDTCxVQUFVLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQztvQkFDdkQsU0FBUyxFQUFFLEtBQUs7aUJBQ2pCLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTztnQkFDTCxVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ3BCLFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELHFDQUFxQztJQUNyQyxPQUFPO1FBQ0wsVUFBVSxFQUFFLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7UUFDdkQsU0FBUyxFQUFFLEtBQUs7S0FDakIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCByZWFkRmlsZVN5bmMgfSBmcm9tICdub2RlOmZzJztcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4sIHJlbGF0aXZlLCByZXNvbHZlLCBzZXAgfSBmcm9tICdub2RlOnBhdGgnO1xuXG4vKipcbiAqIFJlc3VsdCBvZiByZXNvbHZpbmcgYSBtb2R1bGUgc3BlY2lmaWVyIGZvciBhIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9kdWxlU3BlY2lmaWVyUmVzdWx0IHtcbiAgLyoqXG4gICAqIFRoZSBtb2R1bGUgc3BlY2lmaWVyIHRvIHVzZSBmb3IgSUQgZ2VuZXJhdGlvbi5cbiAgICogLSBGb3IgcGFja2FnZXM6IFwie25hbWV9QHt2ZXJzaW9ufVwiIG9yIFwie25hbWV9L3tzdWJwYXRofUB7dmVyc2lvbn1cIlxuICAgKiAgIChlLmcuLCBcInBvaW50QDEuMC4wXCIsIFwiQG15b3JnL3NoYXJlZEAyLjAuMFwiLCBcIndvcmtmbG93L2ludGVybmFsL2J1aWx0aW5zQDQuMC4wXCIpXG4gICAqIC0gRm9yIGxvY2FsIGZpbGVzOiB1bmRlZmluZWQgKHBsdWdpbiB3aWxsIHVzZSBkZWZhdWx0IFwiLi9yZWxhdGl2ZS9wYXRoXCIgZm9ybWF0KVxuICAgKi9cbiAgbW9kdWxlU3BlY2lmaWVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUGFyc2VkIHBhY2thZ2UuanNvbiBkYXRhIHdpdGggZGlyZWN0b3J5IGluZm9ybWF0aW9uLlxuICovXG5pbnRlcmZhY2UgUGFja2FnZUluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgZGlyOiBzdHJpbmc7XG4gIGV4cG9ydHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbWFpbj86IHN0cmluZztcbiAgbW9kdWxlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENhY2hlIGZvciBwYWNrYWdlLmpzb24gbG9va3VwcyB0byBhdm9pZCByZXBlYXRlZCBmaWxlc3lzdGVtIHJlYWRzLlxuICogTWFwcyBkaXJlY3RvcnkgcGF0aCB0byBwYXJzZWQgcGFja2FnZS5qc29uIGluZm8gb3IgbnVsbCBpZiBub3QgZm91bmQuXG4gKi9cbmNvbnN0IHBhY2thZ2VKc29uQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgUGFja2FnZUluZm8gfCBudWxsPigpO1xuXG4vKipcbiAqIEZpbmQgYW5kIHJlYWQgdGhlIG5lYXJlc3QgcGFja2FnZS5qc29uIGZvciBhIGdpdmVuIGZpbGUgcGF0aC5cbiAqIFJlc3VsdHMgYXJlIGNhY2hlZCBmb3IgcGVyZm9ybWFuY2UuXG4gKi9cbmZ1bmN0aW9uIGZpbmRQYWNrYWdlSnNvbihmaWxlUGF0aDogc3RyaW5nKTogUGFja2FnZUluZm8gfCBudWxsIHtcbiAgbGV0IGRpciA9IGRpcm5hbWUoZmlsZVBhdGgpO1xuXG4gIC8vIFRyYWNrIGRpcmVjdG9yaWVzIHdlJ3ZlIHZpc2l0ZWQgc28gd2UgY2FuIGJhY2stZmlsbCB0aGUgY2FjaGVcbiAgY29uc3QgdmlzaXRlZERpcnM6IHN0cmluZ1tdID0gW107XG5cbiAgLy8gV2FsayB1cCB0aGUgZGlyZWN0b3J5IHRyZWUgdW50aWwgd2UgaGl0IHRoZSByb290XG4gIHdoaWxlIChkaXIgIT09IGRpcm5hbWUoZGlyKSkge1xuICAgIC8vIENoZWNrIGNhY2hlIGZpcnN0XG4gICAgY29uc3QgY2FjaGVkID0gcGFja2FnZUpzb25DYWNoZS5nZXQoZGlyKTtcbiAgICBpZiAoY2FjaGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIEJhY2stZmlsbCBjYWNoZSBmb3IgYWxsIHZpc2l0ZWQgZGlyZWN0b3JpZXMgd2l0aCB0aGUgc2FtZSByZXN1bHRcbiAgICAgIGZvciAoY29uc3QgdmlzaXRlZERpciBvZiB2aXNpdGVkRGlycykge1xuICAgICAgICBwYWNrYWdlSnNvbkNhY2hlLnNldCh2aXNpdGVkRGlyLCBjYWNoZWQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNhY2hlZDtcbiAgICB9XG5cbiAgICB2aXNpdGVkRGlycy5wdXNoKGRpcik7XG5cbiAgICBjb25zdCBwYWNrYWdlSnNvblBhdGggPSBqb2luKGRpciwgJ3BhY2thZ2UuanNvbicpO1xuICAgIGlmIChleGlzdHNTeW5jKHBhY2thZ2VKc29uUGF0aCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSByZWFkRmlsZVN5bmMocGFja2FnZUpzb25QYXRoLCAndXRmLTgnKTtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZShjb250ZW50KTtcbiAgICAgICAgaWYgKHBhcnNlZC5uYW1lICYmIHBhcnNlZC52ZXJzaW9uKSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBQYWNrYWdlSW5mbyA9IHtcbiAgICAgICAgICAgIG5hbWU6IHBhcnNlZC5uYW1lLFxuICAgICAgICAgICAgdmVyc2lvbjogcGFyc2VkLnZlcnNpb24sXG4gICAgICAgICAgICBkaXIsXG4gICAgICAgICAgICBleHBvcnRzOiBwYXJzZWQuZXhwb3J0cyxcbiAgICAgICAgICAgIG1haW46IHBhcnNlZC5tYWluLFxuICAgICAgICAgICAgbW9kdWxlOiBwYXJzZWQubW9kdWxlLFxuICAgICAgICAgIH07XG4gICAgICAgICAgLy8gQ2FjaGUgdGhlIHJlc3VsdCBmb3IgdGhpcyBkaXJlY3RvcnkgYW5kIGFsbCB2aXNpdGVkIGRpcmVjdG9yaWVzXG4gICAgICAgICAgcGFja2FnZUpzb25DYWNoZS5zZXQoZGlyLCByZXN1bHQpO1xuICAgICAgICAgIGZvciAoY29uc3QgdmlzaXRlZERpciBvZiB2aXNpdGVkRGlycykge1xuICAgICAgICAgICAgcGFja2FnZUpzb25DYWNoZS5zZXQodmlzaXRlZERpciwgcmVzdWx0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIEludmFsaWQgSlNPTiBvciBtaXNzaW5nIGZpZWxkcywgY29udGludWUgc2VhcmNoaW5nXG4gICAgICB9XG4gICAgfVxuXG4gICAgZGlyID0gZGlybmFtZShkaXIpO1xuICB9XG5cbiAgLy8gTm8gcGFja2FnZS5qc29uIGZvdW5kIC0gY2FjaGUgbnVsbCBmb3IgYWxsIHZpc2l0ZWQgZGlyZWN0b3JpZXNcbiAgZm9yIChjb25zdCB2aXNpdGVkRGlyIG9mIHZpc2l0ZWREaXJzKSB7XG4gICAgcGFja2FnZUpzb25DYWNoZS5zZXQodmlzaXRlZERpciwgbnVsbCk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBleHBvcnQgc3VicGF0aCBmb3IgYSBmaWxlIHdpdGhpbiBhIHBhY2thZ2UuXG4gKiBMb29rcyB1cCB0aGUgcGFja2FnZS5qc29uIGV4cG9ydHMgZmllbGQgdG8gZmluZCB3aGljaCBzdWJwYXRoIG1hcHMgdG8gdGhlIGZpbGUuXG4gKlxuICogQHBhcmFtIGZpbGVQYXRoIC0gQWJzb2x1dGUgcGF0aCB0byB0aGUgZmlsZVxuICogQHBhcmFtIHBrZyAtIFBhY2thZ2UgaW5mbyBmcm9tIGZpbmRQYWNrYWdlSnNvblxuICogQHJldHVybnMgVGhlIHN1YnBhdGggKGUuZy4sIFwiL2ludGVybmFsL2J1aWx0aW5zXCIpIG9yIGVtcHR5IHN0cmluZyBmb3Igcm9vdCBleHBvcnRcbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUV4cG9ydFN1YnBhdGgoZmlsZVBhdGg6IHN0cmluZywgcGtnOiBQYWNrYWdlSW5mbyk6IHN0cmluZyB7XG4gIGlmICghcGtnLmV4cG9ydHMgfHwgdHlwZW9mIHBrZy5leHBvcnRzICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIC8vIEdldCB0aGUgcmVsYXRpdmUgcGF0aCBmcm9tIHBhY2thZ2Ugcm9vdCB0byB0aGUgZmlsZVxuICBjb25zdCBub3JtYWxpemVkRmlsZVBhdGggPSBmaWxlUGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQa2dEaXIgPSBwa2cuZGlyLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgY29uc3QgcmVsYXRpdmVQYXRoID0gbm9ybWFsaXplZEZpbGVQYXRoLnN0YXJ0c1dpdGgobm9ybWFsaXplZFBrZ0RpciArICcvJylcbiAgICA/ICcuLycgKyBub3JtYWxpemVkRmlsZVBhdGguc3Vic3RyaW5nKG5vcm1hbGl6ZWRQa2dEaXIubGVuZ3RoICsgMSlcbiAgICA6IG51bGw7XG5cbiAgaWYgKCFyZWxhdGl2ZVBhdGgpIHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICAvLyBTZWFyY2ggdGhyb3VnaCBleHBvcnRzIHRvIGZpbmQgYSBtYXRjaGluZyBzdWJwYXRoXG4gIGZvciAoY29uc3QgW3N1YnBhdGgsIHRhcmdldF0gb2YgT2JqZWN0LmVudHJpZXMocGtnLmV4cG9ydHMpKSB7XG4gICAgY29uc3QgcmVzb2x2ZWRUYXJnZXQgPSByZXNvbHZlRXhwb3J0VGFyZ2V0KHRhcmdldCk7XG4gICAgaWYgKFxuICAgICAgcmVzb2x2ZWRUYXJnZXQgJiZcbiAgICAgIG5vcm1hbGl6ZUV4cG9ydFBhdGgocmVzb2x2ZWRUYXJnZXQpID09PSByZWxhdGl2ZVBhdGhcbiAgICApIHtcbiAgICAgIC8vIEZvdW5kIGEgbWF0Y2ggLSByZXR1cm4gdGhlIHN1YnBhdGggd2l0aG91dCB0aGUgbGVhZGluZyBcIi5cIlxuICAgICAgLy8gZS5nLiwgXCIuL2ludGVybmFsL2J1aWx0aW5zXCIgLT4gXCIvaW50ZXJuYWwvYnVpbHRpbnNcIlxuICAgICAgcmV0dXJuIHN1YnBhdGggPT09ICcuJyA/ICcnIDogc3VicGF0aC5zdWJzdHJpbmcoMSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG4vKipcbiAqIFJlc29sdmUgYW4gZXhwb3J0IHRhcmdldCB0byBhIGZpbGUgcGF0aCwgaGFuZGxpbmcgY29uZGl0aW9uYWwgZXhwb3J0cyBhbmQgYXJyYXlzLlxuICovXG5mdW5jdGlvbiByZXNvbHZlRXhwb3J0VGFyZ2V0KHRhcmdldDogdW5rbm93bik6IHN0cmluZyB8IG51bGwge1xuICBpZiAodHlwZW9mIHRhcmdldCA9PT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgLy8gSGFuZGxlIGFycmF5IGV4cG9ydHMgKGZhbGxiYWNrIGNoYWlucylcbiAgaWYgKEFycmF5LmlzQXJyYXkodGFyZ2V0KSkge1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiB0YXJnZXQpIHtcbiAgICAgIGNvbnN0IHJlc29sdmVkID0gcmVzb2x2ZUV4cG9ydFRhcmdldChpdGVtKTtcbiAgICAgIGlmIChyZXNvbHZlZCkgcmV0dXJuIHJlc29sdmVkO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICh0YXJnZXQgJiYgdHlwZW9mIHRhcmdldCA9PT0gJ29iamVjdCcpIHtcbiAgICAvLyBDb25kaXRpb25hbCBleHBvcnQgLSB0cnkgY29tbW9uIGNvbmRpdGlvbnMgaW4gb3JkZXIgb2YgcHJlZmVyZW5jZVxuICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBbJ3dvcmtmbG93JywgJ2RlZmF1bHQnLCAncmVxdWlyZScsICdpbXBvcnQnLCAnbm9kZSddO1xuICAgIGZvciAoY29uc3QgY29uZGl0aW9uIG9mIGNvbmRpdGlvbnMpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gKHRhcmdldCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbY29uZGl0aW9uXTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIC8vIEhhbmRsZSBuZXN0ZWQgY29uZGl0aW9uYWxzIG9yIGFycmF5c1xuICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgbmVzdGVkID0gcmVzb2x2ZUV4cG9ydFRhcmdldCh2YWx1ZSk7XG4gICAgICAgIGlmIChuZXN0ZWQpIHJldHVybiBuZXN0ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGFuIGV4cG9ydCBwYXRoIGZvciBjb21wYXJpc29uLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVFeHBvcnRQYXRoKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIEVuc3VyZSBpdCBzdGFydHMgd2l0aCAuL1xuICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnLi8nKSkge1xuICAgIHJldHVybiAnLi8nICsgcGF0aDtcbiAgfVxuICByZXR1cm4gcGF0aDtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBhIGZpbGUgcGF0aCBpcyBpbnNpZGUgbm9kZV9tb2R1bGVzLlxuICovXG5mdW5jdGlvbiBpc0luTm9kZU1vZHVsZXMoZmlsZVBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBub3JtYWxpemVkUGF0aCA9IGZpbGVQYXRoLnNwbGl0KHNlcCkuam9pbignLycpO1xuICByZXR1cm4gbm9ybWFsaXplZFBhdGguaW5jbHVkZXMoJy9ub2RlX21vZHVsZXMvJyk7XG59XG5cbi8qKlxuICogQ2FjaGUgZm9yIHByb2plY3QgZGVwZW5kZW5jaWVzIHRvIGF2b2lkIHJlcGVhdGVkIGZpbGVzeXN0ZW0gcmVhZHMuXG4gKiBNYXBzIHByb2plY3Qgcm9vdCB0byBzZXQgb2YgZGVwZW5kZW5jeSBwYWNrYWdlIG5hbWVzLlxuICovXG5jb25zdCBwcm9qZWN0RGVwc0NhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PigpO1xuXG4vKipcbiAqIEdldCBhbGwgZGVwZW5kZW5jaWVzIChpbmNsdWRpbmcgZGV2RGVwZW5kZW5jaWVzKSBmb3IgYSBwcm9qZWN0LlxuICovXG5mdW5jdGlvbiBnZXRQcm9qZWN0RGVwZW5kZW5jaWVzKHByb2plY3RSb290OiBzdHJpbmcpOiBTZXQ8c3RyaW5nPiB7XG4gIGNvbnN0IGNhY2hlZCA9IHByb2plY3REZXBzQ2FjaGUuZ2V0KHByb2plY3RSb290KTtcbiAgaWYgKGNhY2hlZCkge1xuICAgIHJldHVybiBjYWNoZWQ7XG4gIH1cblxuICBjb25zdCBkZXBzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIGNvbnN0IHBrZ1BhdGggPSBqb2luKHByb2plY3RSb290LCAncGFja2FnZS5qc29uJyk7XG5cbiAgaWYgKGV4aXN0c1N5bmMocGtnUGF0aCkpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY29udGVudCA9IHJlYWRGaWxlU3luYyhwa2dQYXRoLCAndXRmLTgnKTtcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoY29udGVudCk7XG5cbiAgICAgIC8vIENvbGxlY3QgYWxsIGRlcGVuZGVuY3kgdHlwZXNcbiAgICAgIGZvciAoY29uc3QgZGVwVHlwZSBvZiBbXG4gICAgICAgICdkZXBlbmRlbmNpZXMnLFxuICAgICAgICAnZGV2RGVwZW5kZW5jaWVzJyxcbiAgICAgICAgJ3BlZXJEZXBlbmRlbmNpZXMnLFxuICAgICAgICAnb3B0aW9uYWxEZXBlbmRlbmNpZXMnLFxuICAgICAgXSkge1xuICAgICAgICBjb25zdCBkZXBPYmogPSBwYXJzZWRbZGVwVHlwZV07XG4gICAgICAgIGlmIChkZXBPYmogJiYgdHlwZW9mIGRlcE9iaiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IG5hbWUgb2YgT2JqZWN0LmtleXMoZGVwT2JqKSkge1xuICAgICAgICAgICAgZGVwcy5hZGQobmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBJbnZhbGlkIEpTT04gb3IgZmlsZSBub3QgcmVhZGFibGVcbiAgICB9XG4gIH1cblxuICBwcm9qZWN0RGVwc0NhY2hlLnNldChwcm9qZWN0Um9vdCwgZGVwcyk7XG4gIHJldHVybiBkZXBzO1xufVxuXG4vKipcbiAqIENoZWNrIGlmIGEgZmlsZSBwYXRoIGlzIGluc2lkZSBhIHdvcmtzcGFjZSBwYWNrYWdlIHRoYXQgaXMgYSBkZXBlbmRlbmN5IG9mIHRoZSBwcm9qZWN0LlxuICogVGhpcyBpcyBhIGhldXJpc3RpYyAtIHdlIGNoZWNrIGlmIHRoZSBmaWxlIGlzIGluIGEgZGlyZWN0b3J5IHdpdGggYSBwYWNrYWdlLmpzb25cbiAqIHRoYXQgaGFzIGEgXCJuYW1lXCIgZmllbGQsIGlzIE5PVCBpbiBub2RlX21vZHVsZXMsIGFuZCBpcyBsaXN0ZWQgYXMgYSBkZXBlbmRlbmN5XG4gKiBvZiB0aGUgcHJvamVjdC5cbiAqL1xuZnVuY3Rpb24gaXNXb3Jrc3BhY2VQYWNrYWdlKGZpbGVQYXRoOiBzdHJpbmcsIHByb2plY3RSb290OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKGlzSW5Ob2RlTW9kdWxlcyhmaWxlUGF0aCkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBwa2cgPSBmaW5kUGFja2FnZUpzb24oZmlsZVBhdGgpO1xuICBpZiAoIXBrZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHRoZSBwYWNrYWdlLmpzb24gaXMgbm90IHRoZSByb290IHBhY2thZ2UuanNvblxuICAvLyBVc2UgcmVzb2x2ZSgpIHRvIG5vcm1hbGl6ZSBwYXRocyBmb3IgY3Jvc3MtcGxhdGZvcm0gY29tcGFyaXNvblxuICBjb25zdCByb290UGtnRGlyID0gcmVzb2x2ZShwcm9qZWN0Um9vdCk7XG4gIGNvbnN0IHBrZ0RpciA9IHJlc29sdmUocGtnLmRpcik7XG5cbiAgLy8gSWYgdGhlIHBhY2thZ2UgZGlyZWN0b3J5IGlzIHRoZSBwcm9qZWN0IHJvb3QsIGl0J3Mgbm90IGEgd29ya3NwYWNlIHBhY2thZ2VcbiAgaWYgKHBrZ0RpciA9PT0gcm9vdFBrZ0Rpcikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIEZvdW5kIGEgcGFja2FnZS5qc29uIHRoYXQncyBub3QgdGhlIHJvb3QuXG4gIC8vIE9ubHkgdHJlYXQgaXQgYXMgYSB3b3Jrc3BhY2UgcGFja2FnZSBpZiBpdCdzIGFjdHVhbGx5IGEgZGVwZW5kZW5jeVxuICAvLyBvZiB0aGUgY3VycmVudCBwcm9qZWN0LiBUaGlzIHByZXZlbnRzIHNpYmxpbmcgYXBwcyBpbiBhIG1vbm9yZXBvXG4gIC8vIGZyb20gYmVpbmcgaW5jb3JyZWN0bHkgdHJlYXRlZCBhcyBpbXBvcnRhYmxlIHBhY2thZ2VzLlxuICBjb25zdCBwcm9qZWN0RGVwcyA9IGdldFByb2plY3REZXBlbmRlbmNpZXMocHJvamVjdFJvb3QpO1xuICByZXR1cm4gcHJvamVjdERlcHMuaGFzKHBrZy5uYW1lKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIHRoZSBtb2R1bGUgc3BlY2lmaWVyIGZvciBhIGZpbGUuXG4gKlxuICogQHBhcmFtIGZpbGVQYXRoIC0gQWJzb2x1dGUgcGF0aCB0byB0aGUgZmlsZSBiZWluZyB0cmFuc2Zvcm1lZFxuICogQHBhcmFtIHByb2plY3RSb290IC0gQWJzb2x1dGUgcGF0aCB0byB0aGUgcHJvamVjdCByb290ICh1c3VhbGx5IHByb2Nlc3MuY3dkKCkpXG4gKiBAcmV0dXJucyBUaGUgbW9kdWxlIHNwZWNpZmllciByZXN1bHRcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRmlsZSBpbiBub2RlX21vZHVsZXMgKHJvb3QgZXhwb3J0KVxuICogcmVzb2x2ZU1vZHVsZVNwZWNpZmllcignL3Byb2plY3Qvbm9kZV9tb2R1bGVzL3BvaW50L2Rpc3QvaW5kZXguanMnLCAnL3Byb2plY3QnKVxuICogLy8gPT4geyBtb2R1bGVTcGVjaWZpZXI6ICdwb2ludEAxLjAuMCcgfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGaWxlIGluIG5vZGVfbW9kdWxlcyAoc3VicGF0aCBleHBvcnQpXG4gKiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKCcvcHJvamVjdC9ub2RlX21vZHVsZXMvd29ya2Zsb3cvZGlzdC9pbnRlcm5hbC9idWlsdGlucy5qcycsICcvcHJvamVjdCcpXG4gKiAvLyA9PiB7IG1vZHVsZVNwZWNpZmllcjogJ3dvcmtmbG93L2ludGVybmFsL2J1aWx0aW5zQDQuMC4wJyB9XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEZpbGUgaW4gd29ya3NwYWNlIHBhY2thZ2VcbiAqIHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoJy9wcm9qZWN0L3BhY2thZ2VzL3NoYXJlZC9zcmMvdXRpbHMudHMnLCAnL3Byb2plY3QnKVxuICogLy8gPT4geyBtb2R1bGVTcGVjaWZpZXI6ICdAbXlvcmcvc2hhcmVkQDAuMC4wJyB9XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIExvY2FsIGFwcCBmaWxlXG4gKiByZXNvbHZlTW9kdWxlU3BlY2lmaWVyKCcvcHJvamVjdC9zcmMvd29ya2Zsb3dzL29yZGVyLnRzJywgJy9wcm9qZWN0JylcbiAqIC8vID0+IHsgbW9kdWxlU3BlY2lmaWVyOiB1bmRlZmluZWQgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1vZHVsZVNwZWNpZmllcihcbiAgZmlsZVBhdGg6IHN0cmluZyxcbiAgcHJvamVjdFJvb3Q6IHN0cmluZ1xuKTogTW9kdWxlU3BlY2lmaWVyUmVzdWx0IHtcbiAgLy8gQ2hlY2sgaWYgZmlsZSBpcyBpbiBub2RlX21vZHVsZXMgb3IgYSB3b3Jrc3BhY2UgcGFja2FnZVxuICBjb25zdCBpbk5vZGVNb2R1bGVzID0gaXNJbk5vZGVNb2R1bGVzKGZpbGVQYXRoKTtcbiAgY29uc3QgaW5Xb3Jrc3BhY2UgPVxuICAgICFpbk5vZGVNb2R1bGVzICYmIGlzV29ya3NwYWNlUGFja2FnZShmaWxlUGF0aCwgcHJvamVjdFJvb3QpO1xuXG4gIGlmICghaW5Ob2RlTW9kdWxlcyAmJiAhaW5Xb3Jrc3BhY2UpIHtcbiAgICAvLyBMb2NhbCBhcHAgZmlsZSAtIHVzZSBkZWZhdWx0IHJlbGF0aXZlIHBhdGggZm9ybWF0XG4gICAgcmV0dXJuIHsgbW9kdWxlU3BlY2lmaWVyOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIC8vIEZpbmQgdGhlIHBhY2thZ2UuanNvbiBmb3IgdGhpcyBmaWxlXG4gIGNvbnN0IHBrZyA9IGZpbmRQYWNrYWdlSnNvbihmaWxlUGF0aCk7XG4gIGlmICghcGtnKSB7XG4gICAgLy8gQ291bGRuJ3QgZmluZCBwYWNrYWdlLmpzb24gLSBmYWxsIGJhY2sgdG8gZGVmYXVsdFxuICAgIHJldHVybiB7IG1vZHVsZVNwZWNpZmllcjogdW5kZWZpbmVkIH07XG4gIH1cblxuICAvLyBSZXNvbHZlIHRoZSBleHBvcnQgc3VicGF0aCAoZS5nLiwgXCIvaW50ZXJuYWwvYnVpbHRpbnNcIiBmb3IgXCJ3b3JrZmxvdy9pbnRlcm5hbC9idWlsdGluc1wiKVxuICBjb25zdCBzdWJwYXRoID0gcmVzb2x2ZUV4cG9ydFN1YnBhdGgoZmlsZVBhdGgsIHBrZyk7XG5cbiAgLy8gUmV0dXJuIHRoZSBtb2R1bGUgc3BlY2lmaWVyIGFzIFwibmFtZS9zdWJwYXRoQHZlcnNpb25cIiBvciBcIm5hbWVAdmVyc2lvblwiXG4gIGNvbnN0IHNwZWNpZmllciA9IHN1YnBhdGhcbiAgICA/IGAke3BrZy5uYW1lfSR7c3VicGF0aH1AJHtwa2cudmVyc2lvbn1gXG4gICAgOiBgJHtwa2cubmFtZX1AJHtwa2cudmVyc2lvbn1gO1xuXG4gIHJldHVybiB7XG4gICAgbW9kdWxlU3BlY2lmaWVyOiBzcGVjaWZpZXIsXG4gIH07XG59XG5cbi8qKlxuICogQ2xlYXIgdGhlIHBhY2thZ2UuanNvbiBjYWNoZS4gVXNlZnVsIGZvciB0ZXN0aW5nIG9yIHdoZW4gcGFja2FnZS5qc29uIGZpbGVzIG1heSBoYXZlIGNoYW5nZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhck1vZHVsZVNwZWNpZmllckNhY2hlKCk6IHZvaWQge1xuICBwYWNrYWdlSnNvbkNhY2hlLmNsZWFyKCk7XG4gIHByb2plY3REZXBzQ2FjaGUuY2xlYXIoKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IGEgZmlsZSBwYXRoIHRvIGEgcmVsYXRpdmUgaW1wb3J0IHBhdGggZnJvbSBwcm9qZWN0IHJvb3QuXG4gKi9cbmZ1bmN0aW9uIHRvUmVsYXRpdmVJbXBvcnRQYXRoKGZpbGVQYXRoOiBzdHJpbmcsIHByb2plY3RSb290OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBub3JtYWxpemVkUHJvamVjdFJvb3QgPSBwcm9qZWN0Um9vdC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRGaWxlUGF0aCA9IGZpbGVQYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICBsZXQgcmVsYXRpdmVQYXRoOiBzdHJpbmc7XG4gIGlmIChub3JtYWxpemVkRmlsZVBhdGguc3RhcnRzV2l0aChub3JtYWxpemVkUHJvamVjdFJvb3QgKyAnLycpKSB7XG4gICAgcmVsYXRpdmVQYXRoID0gbm9ybWFsaXplZEZpbGVQYXRoLnN1YnN0cmluZyhcbiAgICAgIG5vcm1hbGl6ZWRQcm9qZWN0Um9vdC5sZW5ndGggKyAxXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBGaWxlIGlzIG91dHNpZGUgcHJvamVjdCByb290LCB1c2UgdGhlIGZ1bGwgcGF0aCBzZWdtZW50cyBhZnRlciBjb21tb24gYW5jZXN0b3JcbiAgICByZWxhdGl2ZVBhdGggPSByZWxhdGl2ZShwcm9qZWN0Um9vdCwgZmlsZVBhdGgpLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgfVxuXG4gIC8vIEVuc3VyZSByZWxhdGl2ZSBwYXRocyBzdGFydCB3aXRoIC4vXG4gIGlmICghcmVsYXRpdmVQYXRoLnN0YXJ0c1dpdGgoJy4nKSkge1xuICAgIHJlbGF0aXZlUGF0aCA9IGAuLyR7cmVsYXRpdmVQYXRofWA7XG4gIH1cblxuICByZXR1cm4gcmVsYXRpdmVQYXRoO1xufVxuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSB3aGVuIHBhY2thZ2UgZXhwb3J0cyBpbmNsdWRlIGEgcm9vdCBlbnRyeSAoXCIuXCIpLlxuICogU3RyaW5nL2FycmF5L2NvbmRpdGlvbmFsIG9iamVjdCBleHBvcnRzIGFyZSBhbGwgY29uc2lkZXJlZCByb290IGV4cG9ydHMuXG4gKi9cbmZ1bmN0aW9uIGhhc1Jvb3RFeHBvcnQoZXhwb3J0c0ZpZWxkOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgZXhwb3J0c0ZpZWxkID09PSAnc3RyaW5nJyB8fCBBcnJheS5pc0FycmF5KGV4cG9ydHNGaWVsZCkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGlmICghZXhwb3J0c0ZpZWxkIHx8IHR5cGVvZiBleHBvcnRzRmllbGQgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKGV4cG9ydHNGaWVsZCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG4gIC8vIENvbmRpdGlvbmFsIGV4cG9ydHMgb2JqZWN0IChlLmcuIHsgXCJpbXBvcnRcIjogXCIuLi5cIiwgXCJkZWZhdWx0XCI6IFwiLi4uXCIgfSlcbiAgLy8gcmVwcmVzZW50cyB0aGUgcm9vdCBleHBvcnQuXG4gIGlmIChrZXlzLmxlbmd0aCA+IDAgJiYga2V5cy5ldmVyeSgoa2V5KSA9PiAha2V5LnN0YXJ0c1dpdGgoJy4nKSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiAnLicgaW4gKGV4cG9ydHNGaWVsZCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik7XG59XG5cbi8qKlxuICogTm9ybWFsaXplIGEgcGFja2FnZSB0YXJnZXQgcGF0aCB0byBhIGNvbXBhcmFibGUgcGFja2FnZS1yZWxhdGl2ZSBwYXRoLlxuICogUmV0dXJucyBudWxsIGZvciBpbnZhbGlkL3Vuc3VwcG9ydGVkIHBhdGhzLlxuICovXG5mdW5jdGlvbiBub3JtYWxpemVQYWNrYWdlVGFyZ2V0UGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IHBhdGgucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICBpZiAobm9ybWFsaXplZC5zdGFydHNXaXRoKCcuLycpKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWQuc3Vic3RyaW5nKDIpO1xuICB9XG4gIGlmIChub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgIHJldHVybiBub3JtYWxpemVkLnN1YnN0cmluZygxKTtcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgZmlsZVBhdGggaXMgdGhlIHBhY2thZ2Ugcm9vdCBlbnRyeXBvaW50LlxuICogVGhpcyBjaGVja3Mgcm9vdCBleHBvcnRzIGZpcnN0LCB0aGVuIG1haW4vbW9kdWxlL2luZGV4IGZhbGxiYWNrcyB3aGVuIGV4cG9ydHMgYXJlIGFic2VudC5cbiAqL1xuZnVuY3Rpb24gaXNSb290RW50cnlwb2ludEZpbGUoZmlsZVBhdGg6IHN0cmluZywgcGtnOiBQYWNrYWdlSW5mbyk6IGJvb2xlYW4ge1xuICBjb25zdCBub3JtYWxpemVkRmlsZVBhdGggPSBmaWxlUGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRQa2dEaXIgPSBwa2cuZGlyLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcblxuICBpZiAoIW5vcm1hbGl6ZWRGaWxlUGF0aC5zdGFydHNXaXRoKG5vcm1hbGl6ZWRQa2dEaXIgKyAnLycpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgcmVsYXRpdmVGaWxlUGF0aCA9IG5vcm1hbGl6ZWRGaWxlUGF0aC5zdWJzdHJpbmcoXG4gICAgbm9ybWFsaXplZFBrZ0Rpci5sZW5ndGggKyAxXG4gICk7XG5cbiAgaWYgKHBrZy5leHBvcnRzKSB7XG4gICAgbGV0IHJvb3RUYXJnZXQ6IHVua25vd247XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgcGtnLmV4cG9ydHMgPT09ICdvYmplY3QnICYmXG4gICAgICAhQXJyYXkuaXNBcnJheShwa2cuZXhwb3J0cykgJiZcbiAgICAgICcuJyBpbiBwa2cuZXhwb3J0c1xuICAgICkge1xuICAgICAgcm9vdFRhcmdldCA9IChwa2cuZXhwb3J0cyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbJy4nXTtcbiAgICB9IGVsc2UgaWYgKGhhc1Jvb3RFeHBvcnQocGtnLmV4cG9ydHMpKSB7XG4gICAgICByb290VGFyZ2V0ID0gcGtnLmV4cG9ydHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvbHZlZFRhcmdldCA9IHJlc29sdmVFeHBvcnRUYXJnZXQocm9vdFRhcmdldCk7XG4gICAgaWYgKCFyZXNvbHZlZFRhcmdldCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IG5vcm1hbGl6ZWRUYXJnZXQgPSBub3JtYWxpemVQYWNrYWdlVGFyZ2V0UGF0aChyZXNvbHZlZFRhcmdldCk7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZWRUYXJnZXQgPT09IHJlbGF0aXZlRmlsZVBhdGg7XG4gIH1cblxuICBjb25zdCByb290Q2FuZGlkYXRlcyA9IFtcbiAgICBwa2cubW9kdWxlLFxuICAgIHBrZy5tYWluLFxuICAgICdpbmRleC5qcycsXG4gICAgJ2luZGV4Lm1qcycsXG4gICAgJ2luZGV4LmNqcycsXG4gICAgJ2luZGV4LnRzJyxcbiAgICAnaW5kZXgubXRzJyxcbiAgICAnaW5kZXguY3RzJyxcbiAgXVxuICAgIC5maWx0ZXIoKGNhbmRpZGF0ZSk6IGNhbmRpZGF0ZSBpcyBzdHJpbmcgPT4gdHlwZW9mIGNhbmRpZGF0ZSA9PT0gJ3N0cmluZycpXG4gICAgLm1hcCgoY2FuZGlkYXRlKSA9PiBub3JtYWxpemVQYWNrYWdlVGFyZ2V0UGF0aChjYW5kaWRhdGUpKVxuICAgIC5maWx0ZXIoKGNhbmRpZGF0ZSk6IGNhbmRpZGF0ZSBpcyBzdHJpbmcgPT4gY2FuZGlkYXRlICE9PSBudWxsKTtcblxuICByZXR1cm4gcm9vdENhbmRpZGF0ZXMuaW5jbHVkZXMocmVsYXRpdmVGaWxlUGF0aCk7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIHJlc29sdmluZyBhbiBpbXBvcnQgcGF0aCBmb3IgYSBmaWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydFBhdGhSZXN1bHQge1xuICAvKipcbiAgICogVGhlIGltcG9ydCBwYXRoIHRvIHVzZS5cbiAgICogLSBGb3Igd29ya3NwYWNlIHBhY2thZ2VzOiB0aGUgcGFja2FnZSBuYW1lIChlLmcuLCBcIkBteW9yZy9zaGFyZWRcIilcbiAgICogLSBGb3Igbm9kZV9tb2R1bGVzIHBhY2thZ2VzOiB0aGUgcGFja2FnZSBuYW1lXG4gICAqIC0gRm9yIGxvY2FsIGZpbGVzOiBhIHJlbGF0aXZlIHBhdGggKGUuZy4sIFwiLi9zcmMvd29ya2Zsb3dzL29yZGVyLnRzXCIpXG4gICAqL1xuICBpbXBvcnRQYXRoOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhpcyBmaWxlIGlzIGZyb20gYSBwYWNrYWdlICh3b3Jrc3BhY2Ugb3Igbm9kZV9tb2R1bGVzKS5cbiAgICogV2hlbiB0cnVlLCB0aGUgaW1wb3J0IHNob3VsZCBnbyB0aHJvdWdoIHBhY2thZ2UgcmVzb2x1dGlvbiB3aGljaCByZXNwZWN0cyBleHBvcnQgY29uZGl0aW9ucy5cbiAgICovXG4gIGlzUGFja2FnZTogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGltcG9ydCBwYXRoIHRvIHVzZSBmb3IgYSBmaWxlIGluIGEgYnVuZGxlJ3MgdmlydHVhbCBlbnRyeS5cbiAqXG4gKiBGb3Igd29ya3NwYWNlIHBhY2thZ2VzIGFuZCBub2RlX21vZHVsZXMgcGFja2FnZXMsIHJldHVybnMgdGhlIHBhY2thZ2UgbmFtZVxuICogc28gdGhhdCBidW5kbGVyIHJlc29sdXRpb24gd2lsbCByZXNwZWN0IHBhY2thZ2UuanNvbiBleHBvcnRzIGFuZCBjb25kaXRpb25zLlxuICpcbiAqIEZvciBsb2NhbCBhcHAgZmlsZXMsIHJldHVybnMgYSByZWxhdGl2ZSBwYXRoLlxuICpcbiAqIEBwYXJhbSBmaWxlUGF0aCAtIEFic29sdXRlIHBhdGggdG8gdGhlIGZpbGVcbiAqIEBwYXJhbSBwcm9qZWN0Um9vdCAtIEFic29sdXRlIHBhdGggdG8gdGhlIHByb2plY3Qgcm9vdFxuICogQHJldHVybnMgVGhlIGltcG9ydCBwYXRoIGFuZCB3aGV0aGVyIGl0J3MgYSBwYWNrYWdlXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdvcmtzcGFjZSBwYWNrYWdlXG4gKiBnZXRJbXBvcnRQYXRoKCcvcHJvamVjdC9wYWNrYWdlcy9zaGFyZWQvc3JjL2luZGV4LnRzJywgJy9wcm9qZWN0JylcbiAqIC8vID0+IHsgaW1wb3J0UGF0aDogJ0BteW9yZy9zaGFyZWQnLCBpc1BhY2thZ2U6IHRydWUgfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBMb2NhbCBhcHAgZmlsZVxuICogZ2V0SW1wb3J0UGF0aCgnL3Byb2plY3Qvc3JjL3dvcmtmbG93cy9vcmRlci50cycsICcvcHJvamVjdCcpXG4gKiAvLyA9PiB7IGltcG9ydFBhdGg6ICcuL3NyYy93b3JrZmxvd3Mvb3JkZXIudHMnLCBpc1BhY2thZ2U6IGZhbHNlIH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEltcG9ydFBhdGgoXG4gIGZpbGVQYXRoOiBzdHJpbmcsXG4gIHByb2plY3RSb290OiBzdHJpbmdcbik6IEltcG9ydFBhdGhSZXN1bHQge1xuICAvLyBDaGVjayBpZiBmaWxlIGlzIGluIG5vZGVfbW9kdWxlcyBvciBhIHdvcmtzcGFjZSBwYWNrYWdlXG4gIGNvbnN0IGluTm9kZU1vZHVsZXMgPSBpc0luTm9kZU1vZHVsZXMoZmlsZVBhdGgpO1xuICBjb25zdCBpbldvcmtzcGFjZSA9XG4gICAgIWluTm9kZU1vZHVsZXMgJiYgaXNXb3Jrc3BhY2VQYWNrYWdlKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCk7XG5cbiAgaWYgKGluTm9kZU1vZHVsZXMgfHwgaW5Xb3Jrc3BhY2UpIHtcbiAgICAvLyBGaW5kIHRoZSBwYWNrYWdlLmpzb24gZm9yIHRoaXMgZmlsZVxuICAgIGNvbnN0IHBrZyA9IGZpbmRQYWNrYWdlSnNvbihmaWxlUGF0aCk7XG4gICAgaWYgKHBrZykge1xuICAgICAgY29uc3QgaXNEaXJlY3RQcm9qZWN0RGVwZW5kZW5jeSA9IGdldFByb2plY3REZXBlbmRlbmNpZXMocHJvamVjdFJvb3QpLmhhcyhcbiAgICAgICAgcGtnLm5hbWVcbiAgICAgICk7XG4gICAgICBjb25zdCBjYW5Vc2VQYWNrYWdlU3BlY2lmaWVyID0gaW5Xb3Jrc3BhY2UgfHwgaXNEaXJlY3RQcm9qZWN0RGVwZW5kZW5jeTtcblxuICAgICAgLy8gRm9yIHRyYW5zaXRpdmUgbm9kZV9tb2R1bGVzIGRlcGVuZGVuY2llcyB1bmRlciBzdHJpY3QgcGFja2FnZSBtYW5hZ2Vyc1xuICAgICAgLy8gKGZvciBleGFtcGxlLCBwbnBtKSwgaW1wb3J0aW5nIGJ5IHBhY2thZ2UgbmFtZSBjYW4gZmFpbC4gVXNlIGEgZGlyZWN0XG4gICAgICAvLyBmaWxlIHBhdGggaW1wb3J0IGluIHRob3NlIGNhc2VzLlxuICAgICAgaWYgKCFjYW5Vc2VQYWNrYWdlU3BlY2lmaWVyKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1wb3J0UGF0aDogdG9SZWxhdGl2ZUltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSxcbiAgICAgICAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICAvLyBQcmVmZXIgYSBwYWNrYWdlIHN1YnBhdGggaW1wb3J0IHdoZW4gdGhpcyBmaWxlIG1hcHMgdG8gYW4gZXhwb3J0LlxuICAgICAgLy8gVGhpcyBwcmVzZXJ2ZXMgdGhlIGV4YWN0IG1vZHVsZSBiZWluZyBidW5kbGVkIHdoaWxlIHN0aWxsIHJlc3BlY3RpbmdcbiAgICAgIC8vIHBhY2thZ2UgZXhwb3J0IGNvbmRpdGlvbnMuXG4gICAgICAvLyBOb3RlOiByZXNvbHZlRXhwb3J0U3VicGF0aCByZXR1cm5zIFwiXCIgZm9yIGJvdGggcm9vdCBcIi5cIiBtYXRjaGVzIGFuZFxuICAgICAgLy8gbm8gbWF0Y2g7IHJvb3QgZW50cnlwb2ludHMgYXJlIGludGVudGlvbmFsbHkgaGFuZGxlZCBiZWxvdyB2aWFcbiAgICAgIC8vIGlzUm9vdEVudHJ5cG9pbnRGaWxlKCkuXG4gICAgICBjb25zdCBzdWJwYXRoID0gcmVzb2x2ZUV4cG9ydFN1YnBhdGgoZmlsZVBhdGgsIHBrZyk7XG4gICAgICBpZiAoc3VicGF0aCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGltcG9ydFBhdGg6IGAke3BrZy5uYW1lfSR7c3VicGF0aH1gLFxuICAgICAgICAgIGlzUGFja2FnZTogdHJ1ZSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgLy8gT25seSBpbXBvcnQgcGFja2FnZSByb290IHdoZW4gdGhpcyBmaWxlIGlzIHRoZSByb290IGVudHJ5cG9pbnQuXG4gICAgICAvLyBGb3IgZGVlcC9pbnRlcm5hbCBmaWxlcywgZmFsbCBiYWNrIHRvIGRpcmVjdCByZWxhdGl2ZSBpbXBvcnRzIHNvIHdlXG4gICAgICAvLyBkb24ndCBhY2NpZGVudGFsbHkgaW1wb3J0IGEgbm9uLWV4aXN0ZW50IG9yIGRpZmZlcmVudCBtb2R1bGUuXG4gICAgICBpZiAoIWlzUm9vdEVudHJ5cG9pbnRGaWxlKGZpbGVQYXRoLCBwa2cpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW1wb3J0UGF0aDogdG9SZWxhdGl2ZUltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSxcbiAgICAgICAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbXBvcnRQYXRoOiBwa2cubmFtZSxcbiAgICAgICAgaXNQYWNrYWdlOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICAvLyBMb2NhbCBhcHAgZmlsZSAtIHVzZSByZWxhdGl2ZSBwYXRoXG4gIHJldHVybiB7XG4gICAgaW1wb3J0UGF0aDogdG9SZWxhdGl2ZUltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSxcbiAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICB9O1xufVxuIl19
|
|
@@ -237,4 +237,4 @@ describe('getImportPath', () => {
|
|
|
237
237
|
});
|
|
238
238
|
});
|
|
239
239
|
});
|
|
240
|
-
//# sourceMappingURL=module-specifier.test.js.map
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXNwZWNpZmllci50ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21vZHVsZS1zcGVjaWZpZXIudGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDckUsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixhQUFhLEVBQ2Isc0JBQXNCLEdBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsU0FBUyxTQUFTLENBQUMsSUFBWSxFQUFFLEtBQWM7SUFDN0MsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQy9ELENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxJQUFZLEVBQUUsUUFBUSxHQUFHLEVBQUU7SUFDNUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUM3QixJQUFJLFFBQWdCLENB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QUU7WUFDMUMsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsT0FBTztTQUNqQixDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsUUFBUSxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFekMsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUM1RCxlQUFlLEVBQUUsWUFBWTtTQUM5QixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWtkaXJTeW5jLCBta2R0ZW1wU3luYywgcm1TeW5jLCB3cml0ZUZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyB0bXBkaXIgfSBmcm9tICdub2RlOm9zJztcbmltcG9ydCB7IGRpcm5hbWUsIGpvaW4gfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgYWZ0ZXJFYWNoLCBiZWZvcmVFYWNoLCBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gJ3ZpdGVzdCc7XG5pbXBvcnQge1xuICBjbGVhck1vZHVsZVNwZWNpZmllckNhY2hlLFxuICBnZXRJbXBvcnRQYXRoLFxuICByZXNvbHZlTW9kdWxlU3BlY2lmaWVyLFxufSBmcm9tICcuL21vZHVsZS1zcGVjaWZpZXIuanMnO1xuXG5mdW5jdGlvbiB3cml0ZUpzb24ocGF0aDogc3RyaW5nLCB2YWx1ZTogdW5rbm93bik6IHZvaWQge1xuICBta2RpclN5bmMoZGlybmFtZShwYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIHdyaXRlRmlsZVN5bmMocGF0aCwgSlNPTi5zdHJpbmdpZnkodmFsdWUsIG51bGwsIDIpLCAndXRmLTgnKTtcbn1cblxuZnVuY3Rpb24gd3JpdGVGaWxlKHBhdGg6IHN0cmluZywgY29udGVudHMgPSAnJyk6IHZvaWQge1xuICBta2RpclN5bmMoZGlybmFtZShwYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIHdyaXRlRmlsZVN5bmMocGF0aCwgY29udGVudHMsICd1dGYtOCcpO1xufVxuXG5kZXNjcmliZSgnZ2V0SW1wb3J0UGF0aCcsICgpID0+IHtcbiAgbGV0IHRlc3RSb290OiBzdHJpbmc7XG5cbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgY2xlYXJNb2R1bGVTcGVjaWZpZXJDYWNoZSgpO1xuICAgIHRlc3RSb290ID0gbWtkdGVtcFN5bmMoam9pbih0bXBkaXIoKSwgJ3dvcmtmbG93LW1vZHVsZS1zcGVjaWZpZXItJykpO1xuICB9KTtcblxuICBhZnRlckVhY2goKCkgPT4ge1xuICAgIGNsZWFyTW9kdWxlU3BlY2lmaWVyQ2FjaGUoKTtcbiAgICBybVN5bmModGVzdFJvb3QsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgfSk7XG5cbiAgaXQoJ3VzZXMgcGFja2FnZSBzdWJwYXRoIGltcG9ydCB3aGVuIGZpbGUgbWF0Y2hlcyBhbiBleHBvcnQgc3VicGF0aCcsICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0Um9vdCA9IGpvaW4odGVzdFJvb3QsICdhcHBzL2NoYXQnKTtcbiAgICBjb25zdCB3b3Jrc3BhY2VQa2dEaXIgPSBqb2luKHRlc3RSb290LCAncGFja2FnZXMvYWdlbnQnKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGpvaW4od29ya3NwYWNlUGtnRGlyLCAnc3JjL3NlcnZlci50cycpO1xuXG4gICAgd3JpdGVKc29uKGpvaW4ocHJvamVjdFJvb3QsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ2NoYXQnLFxuICAgICAgZGVwZW5kZW5jaWVzOiB7ICdAaW50ZXJuYWwvYWdlbnQnOiAnd29ya3NwYWNlOionIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUpzb24oam9pbih3b3Jrc3BhY2VQa2dEaXIsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ0BpbnRlcm5hbC9hZ2VudCcsXG4gICAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICAgICAgZXhwb3J0czoge1xuICAgICAgICAnLi9zZXJ2ZXInOiAnLi9zcmMvc2VydmVyLnRzJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGAndXNlIHN0ZXAnO1xcbmApO1xuXG4gICAgZXhwZWN0KGdldEltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSkudG9FcXVhbCh7XG4gICAgICBpbXBvcnRQYXRoOiAnQGludGVybmFsL2FnZW50L3NlcnZlcicsXG4gICAgICBpc1BhY2thZ2U6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdmYWxscyBiYWNrIHRvIHJlbGF0aXZlIGltcG9ydCB3aGVuIHBhY2thZ2UgaGFzIG5vIHJvb3QgZXhwb3J0JywgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3RSb290ID0gam9pbih0ZXN0Um9vdCwgJ2FwcHMvY2hhdCcpO1xuICAgIGNvbnN0IHdvcmtzcGFjZVBrZ0RpciA9IGpvaW4odGVzdFJvb3QsICdwYWNrYWdlcy9hZ2VudCcpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gam9pbih3b3Jrc3BhY2VQa2dEaXIsICdzcmMvc2VydmVyLnRzJyk7XG5cbiAgICB3cml0ZUpzb24oam9pbihwcm9qZWN0Um9vdCwgJ3BhY2thZ2UuanNvbicpLCB7XG4gICAgICBuYW1lOiAnY2hhdCcsXG4gICAgICBkZXBlbmRlbmNpZXM6IHsgJ0BpbnRlcm5hbC9hZ2VudCc6ICd3b3Jrc3BhY2U6KicgfSxcbiAgICB9KTtcblxuICAgIHdyaXRlSnNvbihqb2luKHdvcmtzcGFjZVBrZ0RpciwgJ3BhY2thZ2UuanNvbicpLCB7XG4gICAgICBuYW1lOiAnQGludGVybmFsL2FnZW50JyxcbiAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICBleHBvcnRzOiB7XG4gICAgICAgICcuL3NlcnZlcic6ICcuL2Rpc3Qvc2VydmVyLmpzJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGAndXNlIHN0ZXAnO1xcbmApO1xuXG4gICAgZXhwZWN0KGdldEltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSkudG9FcXVhbCh7XG4gICAgICBpbXBvcnRQYXRoOiAnLi4vLi4vcGFja2FnZXMvYWdlbnQvc3JjL3NlcnZlci50cycsXG4gICAgICBpc1BhY2thZ2U6IGZhbHNlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgndXNlcyBwYWNrYWdlIHJvb3QgaW1wb3J0IGZvciByb290IGV4cG9ydHMnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdFJvb3QgPSBqb2luKHRlc3RSb290LCAnYXBwcy9jaGF0Jyk7XG4gICAgY29uc3Qgd29ya3NwYWNlUGtnRGlyID0gam9pbih0ZXN0Um9vdCwgJ3BhY2thZ2VzL2FnZW50Jyk7XG4gICAgY29uc3QgZmlsZVBhdGggPSBqb2luKHdvcmtzcGFjZVBrZ0RpciwgJ3NyYy9pbmRleC50cycpO1xuXG4gICAgd3JpdGVKc29uKGpvaW4ocHJvamVjdFJvb3QsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ2NoYXQnLFxuICAgICAgZGVwZW5kZW5jaWVzOiB7ICdAaW50ZXJuYWwvYWdlbnQnOiAnd29ya3NwYWNlOionIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUpzb24oam9pbih3b3Jrc3BhY2VQa2dEaXIsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ0BpbnRlcm5hbC9hZ2VudCcsXG4gICAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICAgICAgZXhwb3J0czoge1xuICAgICAgICAnLic6ICcuL3NyYy9pbmRleC50cycsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgd3JpdGVGaWxlKGZpbGVQYXRoLCBgJ3VzZSB3b3JrZmxvdyc7XFxuYCk7XG5cbiAgICBleHBlY3QoZ2V0SW1wb3J0UGF0aChmaWxlUGF0aCwgcHJvamVjdFJvb3QpKS50b0VxdWFsKHtcbiAgICAgIGltcG9ydFBhdGg6ICdAaW50ZXJuYWwvYWdlbnQnLFxuICAgICAgaXNQYWNrYWdlOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgndXNlcyBwYWNrYWdlIHJvb3QgaW1wb3J0IHdoZW4gcGFja2FnZSBtb2R1bGUgcG9pbnRzIHRvIGZpbGUnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdFJvb3QgPSBqb2luKHRlc3RSb290LCAnYXBwcy9jaGF0Jyk7XG4gICAgY29uc3Qgd29ya3NwYWNlUGtnRGlyID0gam9pbih0ZXN0Um9vdCwgJ3BhY2thZ2VzL2FnZW50Jyk7XG4gICAgY29uc3QgZmlsZVBhdGggPSBqb2luKHdvcmtzcGFjZVBrZ0RpciwgJ3NyYy9pbmRleC5tanMnKTtcblxuICAgIHdyaXRlSnNvbihqb2luKHByb2plY3RSb290LCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIG5hbWU6ICdjaGF0JyxcbiAgICAgIGRlcGVuZGVuY2llczogeyAnQGludGVybmFsL2FnZW50JzogJ3dvcmtzcGFjZToqJyB9LFxuICAgIH0pO1xuXG4gICAgd3JpdGVKc29uKGpvaW4od29ya3NwYWNlUGtnRGlyLCAncGFja2FnZS5qc29uJyksIHtcbiAgICAgIG5hbWU6ICdAaW50ZXJuYWwvYWdlbnQnLFxuICAgICAgdmVyc2lvbjogJzEuMC4wJyxcbiAgICAgIG1vZHVsZTogJy4vc3JjL2luZGV4Lm1qcycsXG4gICAgICBtYWluOiAnLi9kaXN0L2luZGV4LmNqcycsXG4gICAgfSk7XG5cbiAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGAndXNlIHdvcmtmbG93JztcXG5gKTtcblxuICAgIGV4cGVjdChnZXRJbXBvcnRQYXRoKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCkpLnRvRXF1YWwoe1xuICAgICAgaW1wb3J0UGF0aDogJ0BpbnRlcm5hbC9hZ2VudCcsXG4gICAgICBpc1BhY2thZ2U6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCd1c2VzIHBhY2thZ2Ugcm9vdCBpbXBvcnQgZm9yIGNvbmRpdGlvbmFsIHJvb3QgZXhwb3J0cycsICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0Um9vdCA9IGpvaW4odGVzdFJvb3QsICdhcHBzL2NoYXQnKTtcbiAgICBjb25zdCB3b3Jrc3BhY2VQa2dEaXIgPSBqb2luKHRlc3RSb290LCAncGFja2FnZXMvYWdlbnQnKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGpvaW4od29ya3NwYWNlUGtnRGlyLCAnc3JjL2luZGV4LmpzJyk7XG5cbiAgICB3cml0ZUpzb24oam9pbihwcm9qZWN0Um9vdCwgJ3BhY2thZ2UuanNvbicpLCB7XG4gICAgICBuYW1lOiAnY2hhdCcsXG4gICAgICBkZXBlbmRlbmNpZXM6IHsgJ0BpbnRlcm5hbC9hZ2VudCc6ICd3b3Jrc3BhY2U6KicgfSxcbiAgICB9KTtcblxuICAgIHdyaXRlSnNvbihqb2luKHdvcmtzcGFjZVBrZ0RpciwgJ3BhY2thZ2UuanNvbicpLCB7XG4gICAgICBuYW1lOiAnQGludGVybmFsL2FnZW50JyxcbiAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICBleHBvcnRzOiB7XG4gICAgICAgICcuJzoge1xuICAgICAgICAgIGltcG9ydDogJy4vc3JjL2luZGV4Lm1qcycsXG4gICAgICAgICAgZGVmYXVsdDogJy4vc3JjL2luZGV4LmpzJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGAndXNlIHdvcmtmbG93JztcXG5gKTtcblxuICAgIGV4cGVjdChnZXRJbXBvcnRQYXRoKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCkpLnRvRXF1YWwoe1xuICAgICAgaW1wb3J0UGF0aDogJ0BpbnRlcm5hbC9hZ2VudCcsXG4gICAgICBpc1BhY2thZ2U6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdmYWxscyBiYWNrIHRvIHJlbGF0aXZlIGltcG9ydCBmb3IgZGVlcCBmaWxlcyBpbiBwYWNrYWdlcyB3aXRob3V0IGV4cG9ydHMnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdFJvb3QgPSBqb2luKHRlc3RSb290LCAnYXBwcy9jaGF0Jyk7XG4gICAgY29uc3Qgd29ya3NwYWNlUGtnRGlyID0gam9pbih0ZXN0Um9vdCwgJ3BhY2thZ2VzL2FnZW50Jyk7XG4gICAgY29uc3QgZmlsZVBhdGggPSBqb2luKHdvcmtzcGFjZVBrZ0RpciwgJ2xpYi90b29scy9keW5hbWljL3dvcmtmbG93LnRzJyk7XG5cbiAgICB3cml0ZUpzb24oam9pbihwcm9qZWN0Um9vdCwgJ3BhY2thZ2UuanNvbicpLCB7XG4gICAgICBuYW1lOiAnY2hhdCcsXG4gICAgICBkZXBlbmRlbmNpZXM6IHsgJ0BpbnRlcm5hbC9hZ2VudCc6ICd3b3Jrc3BhY2U6KicgfSxcbiAgICB9KTtcblxuICAgIHdyaXRlSnNvbihqb2luKHdvcmtzcGFjZVBrZ0RpciwgJ3BhY2thZ2UuanNvbicpLCB7XG4gICAgICBuYW1lOiAnQGludGVybmFsL2FnZW50JyxcbiAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgfSk7XG5cbiAgICB3cml0ZUZpbGUoZmlsZVBhdGgsIGAndXNlIHdvcmtmbG93JztcXG5gKTtcblxuICAgIGV4cGVjdChnZXRJbXBvcnRQYXRoKGZpbGVQYXRoLCBwcm9qZWN0Um9vdCkpLnRvRXF1YWwoe1xuICAgICAgaW1wb3J0UGF0aDogJy4uLy4uL3BhY2thZ2VzL2FnZW50L2xpYi90b29scy9keW5hbWljL3dvcmtmbG93LnRzJyxcbiAgICAgIGlzUGFja2FnZTogZmFsc2UsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCd1c2VzIHBhY2thZ2Ugcm9vdCBpbXBvcnQgd2hlbiBwYWNrYWdlIG1haW4gcG9pbnRzIHRvIGZpbGUnLCAoKSA9PiB7XG4gICAgY29uc3QgcHJvamVjdFJvb3QgPSBqb2luKHRlc3RSb290LCAnYXBwcy9jaGF0Jyk7XG4gICAgY29uc3Qgd29ya3NwYWNlUGtnRGlyID0gam9pbih0ZXN0Um9vdCwgJ3BhY2thZ2VzL2FnZW50Jyk7XG4gICAgY29uc3QgZmlsZVBhdGggPSBqb2luKHdvcmtzcGFjZVBrZ0RpciwgJ3NyYy9pbmRleC50cycpO1xuXG4gICAgd3JpdGVKc29uKGpvaW4ocHJvamVjdFJvb3QsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ2NoYXQnLFxuICAgICAgZGVwZW5kZW5jaWVzOiB7ICdAaW50ZXJuYWwvYWdlbnQnOiAnd29ya3NwYWNlOionIH0sXG4gICAgfSk7XG5cbiAgICB3cml0ZUpzb24oam9pbih3b3Jrc3BhY2VQa2dEaXIsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ0BpbnRlcm5hbC9hZ2VudCcsXG4gICAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICAgICAgbWFpbjogJy4vc3JjL2luZGV4LnRzJyxcbiAgICB9KTtcblxuICAgIHdyaXRlRmlsZShmaWxlUGF0aCwgYCd1c2Ugc3RlcCc7XFxuYCk7XG5cbiAgICBleHBlY3QoZ2V0SW1wb3J0UGF0aChmaWxlUGF0aCwgcHJvamVjdFJvb3QpKS50b0VxdWFsKHtcbiAgICAgIGltcG9ydFBhdGg6ICdAaW50ZXJuYWwvYWdlbnQnLFxuICAgICAgaXNQYWNrYWdlOiB0cnVlLFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgndXNlcyBwYWNrYWdlIHN1YnBhdGggaW1wb3J0IGZvciBkaXJlY3Qgbm9kZV9tb2R1bGVzIGRlcGVuZGVuY2llcycsICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0Um9vdCA9IGpvaW4odGVzdFJvb3QsICdhcHBzL2NoYXQnKTtcbiAgICBjb25zdCBwYWNrYWdlRGlyID0gam9pbih0ZXN0Um9vdCwgJ2FwcHMvY2hhdC9ub2RlX21vZHVsZXMvQHdvcmtmbG93L2NvcmUnKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGpvaW4ocGFja2FnZURpciwgJ2Rpc3Qvc2VyaWFsaXphdGlvbi5qcycpO1xuXG4gICAgd3JpdGVKc29uKGpvaW4ocHJvamVjdFJvb3QsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ2NoYXQnLFxuICAgICAgZGVwZW5kZW5jaWVzOiB7ICdAd29ya2Zsb3cvY29yZSc6ICcxLjAuMCcgfSxcbiAgICB9KTtcblxuICAgIHdyaXRlSnNvbihqb2luKHBhY2thZ2VEaXIsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ0B3b3JrZmxvdy9jb3JlJyxcbiAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICBleHBvcnRzOiB7XG4gICAgICAgICcuL3NlcmlhbGl6YXRpb24nOiAnLi9kaXN0L3NlcmlhbGl6YXRpb24uanMnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHdyaXRlRmlsZShmaWxlUGF0aCwgYCd1c2Ugd29ya2Zsb3cnO1xcbmApO1xuXG4gICAgZXhwZWN0KGdldEltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSkudG9FcXVhbCh7XG4gICAgICBpbXBvcnRQYXRoOiAnQHdvcmtmbG93L2NvcmUvc2VyaWFsaXphdGlvbicsXG4gICAgICBpc1BhY2thZ2U6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdmYWxscyBiYWNrIHRvIHJlbGF0aXZlIGltcG9ydCBmb3IgdHJhbnNpdGl2ZSBub2RlX21vZHVsZXMgZGVwZW5kZW5jaWVzJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3RSb290ID0gam9pbih0ZXN0Um9vdCwgJ2FwcHMvY2hhdCcpO1xuICAgIGNvbnN0IHBhY2thZ2VEaXIgPSBqb2luKHRlc3RSb290LCAnYXBwcy9jaGF0L25vZGVfbW9kdWxlcy9Ad29ya2Zsb3cvY29yZScpO1xuICAgIGNvbnN0IGZpbGVQYXRoID0gam9pbihwYWNrYWdlRGlyLCAnZGlzdC9zZXJpYWxpemF0aW9uLmpzJyk7XG5cbiAgICB3cml0ZUpzb24oam9pbihwcm9qZWN0Um9vdCwgJ3BhY2thZ2UuanNvbicpLCB7XG4gICAgICBuYW1lOiAnY2hhdCcsXG4gICAgICBkZXBlbmRlbmNpZXM6IHsgd29ya2Zsb3c6ICcxLjAuMCcgfSxcbiAgICB9KTtcblxuICAgIHdyaXRlSnNvbihqb2luKHBhY2thZ2VEaXIsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ0B3b3JrZmxvdy9jb3JlJyxcbiAgICAgIHZlcnNpb246ICcxLjAuMCcsXG4gICAgICBleHBvcnRzOiB7XG4gICAgICAgICcuL3NlcmlhbGl6YXRpb24nOiAnLi9kaXN0L3NlcmlhbGl6YXRpb24uanMnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIHdyaXRlRmlsZShmaWxlUGF0aCwgYCd1c2Ugd29ya2Zsb3cnO1xcbmApO1xuXG4gICAgZXhwZWN0KGdldEltcG9ydFBhdGgoZmlsZVBhdGgsIHByb2plY3RSb290KSkudG9FcXVhbCh7XG4gICAgICBpbXBvcnRQYXRoOiAnLi9ub2RlX21vZHVsZXMvQHdvcmtmbG93L2NvcmUvZGlzdC9zZXJpYWxpemF0aW9uLmpzJyxcbiAgICAgIGlzUGFja2FnZTogZmFsc2UsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCd0cmVhdHMgYSB3b3Jrc3BhY2UgcGFja2FnZSBmaWxlIGFzIGxvY2FsIHdoZW4gcHJvamVjdFJvb3QgaXMgdGhlIHBhY2thZ2UgaXRzZWxmJywgKCkgPT4ge1xuICAgIGNvbnN0IHByb2plY3RSb290ID0gam9pbih0ZXN0Um9vdCwgJ3BhY2thZ2VzL3ZhZGUnKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGpvaW4oXG4gICAgICBwcm9qZWN0Um9vdCxcbiAgICAgICdzcmMvaW50ZXJuYWwvbWVzc2FnZS93b3JrZmxvdy9oYW5kbGUtbWVzc2FnZS50cydcbiAgICApO1xuXG4gICAgd3JpdGVKc29uKGpvaW4ocHJvamVjdFJvb3QsICdwYWNrYWdlLmpzb24nKSwge1xuICAgICAgbmFtZTogJ3ZhZGUnLFxuICAgICAgdmVyc2lvbjogJzAuMC4wJyxcbiAgICB9KTtcblxuICAgIHdyaXRlRmlsZShmaWxlUGF0aCwgYCd1c2Ugd29ya2Zsb3cnO1xcbmApO1xuXG4gICAgZXhwZWN0KHJlc29sdmVNb2R1bGVTcGVjaWZpZXIoZmlsZVBhdGgsIHByb2plY3RSb290KSkudG9FcXVhbCh7XG4gICAgICBtb2R1bGVTcGVjaWZpZXI6IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgfSk7XG5cbiAgaXQoJ3VzZXMgdGhlIGNvbnN1bWluZyBhcHAgcm9vdCB0byByZXNvbHZlIHdvcmtzcGFjZSBwYWNrYWdlIHdvcmtmbG93IGlkcycsICgpID0+IHtcbiAgICBjb25zdCBwcm9qZWN0Um9vdCA9IGpvaW4odGVzdFJvb3QsICdhcHBzL2NoYXQnKTtcbiAgICBjb25zdCBwYWNrYWdlRGlyID0gam9pbih0ZXN0Um9vdCwgJ3BhY2thZ2VzL3ZhZGUnKTtcbiAgICBjb25zdCBmaWxlUGF0aCA9IGpvaW4oXG4gICAgICBwYWNrYWdlRGlyLFxuICAgICAgJ3NyYy9pbnRlcm5hbC9tZXNzYWdlL3dvcmtmbG93L2hhbmRsZS1tZXNzYWdlLnRzJ1xuICAgICk7XG5cbiAgICB3cml0ZUpzb24oam9pbihwcm9qZWN0Um9vdCwgJ3BhY2thZ2UuanNvbicpLCB7XG4gICAgICBuYW1lOiAnY2hhdCcsXG4gICAgICBkZXBlbmRlbmNpZXM6IHsgdmFkZTogJ3dvcmtzcGFjZToqJyB9LFxuICAgIH0pO1xuXG4gICAgd3JpdGVKc29uKGpvaW4ocGFja2FnZURpciwgJ3BhY2thZ2UuanNvbicpLCB7XG4gICAgICBuYW1lOiAndmFkZScsXG4gICAgICB2ZXJzaW9uOiAnMC4wLjAnLFxuICAgIH0pO1xuXG4gICAgd3JpdGVGaWxlKGZpbGVQYXRoLCBgJ3VzZSB3b3JrZmxvdyc7XFxuYCk7XG5cbiAgICBleHBlY3QocmVzb2x2ZU1vZHVsZVNwZWNpZmllcihmaWxlUGF0aCwgcHJvamVjdFJvb3QpKS50b0VxdWFsKHtcbiAgICAgIG1vZHVsZVNwZWNpZmllcjogJ3ZhZGVAMC4wLjAnLFxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -379,4 +379,4 @@ export function createNodeModuleErrorPlugin() {
|
|
|
379
379
|
},
|
|
380
380
|
};
|
|
381
381
|
}
|
|
382
|
-
//# sourceMappingURL=node-module-esbuild-plugin.js.map
|
|
382
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1tb2R1bGUtZXNidWlsZC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbm9kZS1tb2R1bGUtZXNidWlsZC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLGNBQWMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLHVCQUF1QixNQUFNLGtCQUFrQixDQUFDO0FBR3ZELE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0FBRTNELDZDQUE2QztBQUM3Qyw4Q0FBOEM7QUFDOUMsb0RBQW9EO0FBQ3BELCtEQUErRDtBQUMvRCxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0FBRTNELHFCQUFxQjtBQUNyQix3QkFBd0I7QUFDeEIsb0RBQW9EO0FBQ3BELE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQztBQUVwQyxrREFBa0Q7QUFDbEQsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE1BQU0sQ0FDcEMsYUFBYSxrQkFBa0IsY0FBYyxDQUM5QyxDQUFDO0FBU0Y7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBZ0I7SUFDN0MsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDaEQsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUM7SUFDaEMsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQyxN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QUFTLENBQUMsV0FBVyxDQUN0QixDQUFDOzRCQUNGLE1BQU0sVUFBVSxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQzs0QkFFdEQsd0VBQXdFOzRCQUN4RSxNQUFNLElBQUksR0FBRyxlQUFlO2dDQUMxQixDQUFDLENBQUMsOEJBQThCLFNBQVMsQ0FBQyxXQUFXLGdCQUFnQixVQUFVLFlBQVksVUFBVSxnR0FBZ0csV0FBVyxDQUFDLDBCQUEwQixFQUFFO2dDQUM3TyxDQUFDLENBQUMsOEJBQThCLFNBQVMsQ0FBQyxXQUFXLHNCQUFzQixVQUFVLHFDQUFxQyxVQUFVLGdHQUFnRyxXQUFXLENBQUMsMEJBQTBCLEVBQUUsQ0FBQzs0QkFFL1EsT0FBTztnQ0FDTCxJQUFJO2dDQUNKLFFBQVEsRUFBRSxTQUFTLENBQUMsUUFBUTtvQ0FDMUIsQ0FBQyxDQUFDO3dDQUNFLEdBQUcsU0FBUyxDQUFDLFFBQVE7d0NBQ3JCLFVBQVUsRUFBRSwwQ0FBMEM7cUNBQ3ZEO29DQUNILENBQUMsQ0FBQyxTQUFTOzZCQUNkLENBQUM7d0JBQ0osQ0FBQyxDQUFDO3FCQUNILENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tICdub2RlOmZzL3Byb21pc2VzJztcbmltcG9ydCB7IG5vcm1hbGl6ZSwgcmVsYXRpdmUsIHJlc29sdmUgfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB7IEVSUk9SX1NMVUdTIH0gZnJvbSAnQHdvcmtmbG93L2Vycm9ycyc7XG5pbXBvcnQgYnVpbHRpbk1vZHVsZXMgZnJvbSAnYnVpbHRpbi1tb2R1bGVzJztcbmltcG9ydCBlbmhhbmNlZFJlc29sdmVPcmlnaW5hbCBmcm9tICdlbmhhbmNlZC1yZXNvbHZlJztcbmltcG9ydCB0eXBlICogYXMgZXNidWlsZCBmcm9tICdlc2J1aWxkJztcblxuY29uc3QgZW5oYW5jZWRSZXNvbHZlID0gcHJvbWlzaWZ5KGVuaGFuY2VkUmVzb2x2ZU9yaWdpbmFsKTtcblxuLy8gTWF0Y2ggZXhhY3QgTm9kZS5qcyBidWlsdC1pbiBtb2R1bGUgbmFtZXM6XG4vLyAtIFwiZnNcIiwgXCJwYXRoXCIsIFwic3RyZWFtXCIgZXRjLiAoZXhhY3QgbWF0Y2gpXG4vLyAtIFwibm9kZTpmc1wiLCBcIm5vZGU6cGF0aFwiIGV0Yy4gKHdpdGggbm9kZTogcHJlZml4KVxuLy8gQnV0IE5PVCBcInNvbWUtcGFja2FnZS9zdHJlYW1cIiBvciBcImV2ZW50c291cmNlLXBhcnNlci9zdHJlYW1cIlxuY29uc3Qgbm9kZU1vZHVsZXNQYXR0ZXJuID0gYCgke2J1aWx0aW5Nb2R1bGVzLmpvaW4oJ3wnKX0pYDtcblxuLy8gTWF0Y2ggQnVuIG1vZHVsZXM6XG4vLyAtIFwiYnVuXCIgKGV4YWN0IG1hdGNoKVxuLy8gLSBcImJ1bjpzcWxpdGVcIiwgXCJidW46ZmZpXCIgZXRjLiAod2l0aCBidW46IHByZWZpeClcbmNvbnN0IGJ1bk1vZHVsZXNSZWdleCA9IC9eYnVuKDp8JCkvO1xuXG4vLyBDb21iaW5lZCByZWdleCBmb3IgYm90aCBOb2RlLmpzIGFuZCBCdW4gbW9kdWxlc1xuY29uc3QgcnVudGltZU1vZHVsZXNSZWdleCA9IG5ldyBSZWdFeHAoXG4gIGBeKChub2RlOik/JHtub2RlTW9kdWxlc1BhdHRlcm59fGJ1big6LiopPykkYFxuKTtcblxudHlwZSBQYWNrYWdlVmlvbGF0aW9uID0ge1xuICBwYWNrYWdlTmFtZTogc3RyaW5nO1xuICBpbXBvcnRlcjogc3RyaW5nO1xuICBwYXRoOiBzdHJpbmc7XG4gIGxvY2F0aW9uOiBQYXJ0aWFsPGVzYnVpbGQuTG9jYXRpb24+O1xufTtcblxuLyoqXG4gKiBHZXQgdGhlIHBhY2thZ2UgbmFtZSBmcm9tIGEgZmlsZSBwYXRoLlxuICogQHBhcmFtIGZpbGVQYXRoIC0gVGhlIGZpbGUgcGF0aCB0byBnZXQgdGhlIHBhY2thZ2UgbmFtZSBmcm9tLlxuICogQHJldHVybnMgVGhlIHBhY2thZ2UgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhY2thZ2VOYW1lKGZpbGVQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3Qgbm9ybWFsaXplZCA9IGZpbGVQYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgY29uc3QgbWFya2VyID0gJy9ub2RlX21vZHVsZXMvJztcbiAgY29uc3QgaWR4ID0gbm9ybWFsaXplZC5sYXN0SW5kZXhPZihtYXJrZXIpO1xuICBpZiAoaWR4ID09PSAtMSkgcmV0dXJuIG51bGw7XG5cbiAgY29uc3QgYWZ0ZXIgPSBub3JtYWxpemVkLnNsaWNlKGlkeCArIG1hcmtlci5sZW5ndGgpOyAvLyBlLmcuIFwiLnBucG0vbm9kZS1mZXRjaEAzLjMuMi9ub2RlX21vZHVsZXMvbm9kZS1mZXRjaC9zcmMvaW5kZXguanNcIlxuICBjb25zdCBzZWdtZW50cyA9IGFmdGVyLnNwbGl0KCcvJyk7XG4gIGlmICghc2VnbWVudHMubGVuZ3RoKSByZXR1cm4gbnVsbDtcblxuICBsZXQgcGFja2FnZU5hbWUgPSBzZWdtZW50c1swXTtcblxuICAvLyBwbnBtIG5lc3RzOiBcIi5wbnBtLzxwa2c+QDx2ZXJzaW9uPi9ub2RlX21vZHVsZXMvPHBrZz4vLi4uXCJcbiAgaWYgKHBhY2thZ2VOYW1lID09PSAnLnBucG0nICYmIHNlZ21lbnRzLmxlbmd0aCA+PSAzKSB7XG4gICAgcGFja2FnZU5hbWUgPSBzZWdtZW50c1syXTtcbiAgfSBlbHNlIGlmIChwYWNrYWdlTmFtZS5zdGFydHNXaXRoKCdAJykgJiYgc2VnbWVudHMubGVuZ3RoID49IDIpIHtcbiAgICBwYWNrYWdlTmFtZSA9IGAke3NlZ21lbnRzWzBdfS8ke3NlZ21lbnRzWzFdfWA7XG4gIH1cblxuICByZXR1cm4gcGFja2FnZU5hbWU7XG59XG5cbi8qKlxuICogR2V0IHRoZSBwYWNrYWdlIG5hbWUgZnJvbSBhbiBpbXBvcnQgc3BlY2lmaWVyLlxuICogQHBhcmFtIHNwZWNpZmllciAtIFRoZSBpbXBvcnQgc3BlY2lmaWVyIHRvIHBhcnNlLlxuICogQHJldHVybnMgVGhlIHBhY2thZ2UgbmFtZSAoZm9yIGJhcmUgcGFja2FnZSBpbXBvcnRzKSwgb3RoZXJ3aXNlIG51bGwuXG4gKi9cbmZ1bmN0aW9uIGdldFBhY2thZ2VOYW1lRnJvbVNwZWNpZmllcihzcGVjaWZpZXI6IHN0cmluZykge1xuICAvLyBOb3QgYSBiYXJlIHBhY2thZ2Ugc3BlY2lmaWVyIChyZWxhdGl2ZSwgYWJzb2x1dGUsIG9yIFVSTC1saWtlKVxuICBpZiAoXG4gICAgIXNwZWNpZmllciB8fFxuICAgIHNwZWNpZmllci5zdGFydHNXaXRoKCcuJykgfHxcbiAgICBzcGVjaWZpZXIuc3RhcnRzV2l0aCgnLycpIHx8XG4gICAgL15bQS1aYS16XTpbXFxcXC9dLy50ZXN0KHNwZWNpZmllcilcbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBJZ25vcmUgcnVudGltZSBidWlsdC1pbnMgYW5kIFVSTC1saWtlIHNwZWNpZmllcnNcbiAgaWYgKFxuICAgIHJ1bnRpbWVNb2R1bGVzUmVnZXgudGVzdChzcGVjaWZpZXIpIHx8XG4gICAgc3BlY2lmaWVyLmluY2x1ZGVzKCc6Ly8nKSB8fFxuICAgIHNwZWNpZmllci5zdGFydHNXaXRoKCcjJylcbiAgKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkID0gc3BlY2lmaWVyLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgaWYgKG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnQCcpKSB7XG4gICAgY29uc3QgW3Njb3BlLCBuYW1lXSA9IG5vcm1hbGl6ZWQuc3BsaXQoJy8nKTtcbiAgICBpZiAoIXNjb3BlIHx8ICFuYW1lKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3Njb3BlfS8ke25hbWV9YDtcbiAgfVxuXG4gIGNvbnN0IFtuYW1lXSA9IG5vcm1hbGl6ZWQuc3BsaXQoJy8nKTtcbiAgcmV0dXJuIG5hbWUgPz8gbnVsbDtcbn1cblxuLyoqXG4gKiBFc2NhcGUgYSByZWd1bGFyIGV4cHJlc3Npb24gc3RyaW5nLlxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHN0cmluZyB0byBlc2NhcGUuXG4gKiBAcmV0dXJucyBUaGUgZXNjYXBlZCBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVSZWdFeHAodmFsdWU6IHN0cmluZykge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIGltcG9ydGVkIGlkZW50aWZpZXIgZnJvbSBhIHNwZWNpZmllci5cbiAqIEBwYXJhbSBzcGVjaWZpZXIgLSBUaGUgc3BlY2lmaWVyIHRvIGdldCB0aGUgaW1wb3J0ZWQgaWRlbnRpZmllciBmcm9tLlxuICogQHJldHVybnMgVGhlIGltcG9ydGVkIGlkZW50aWZpZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbXBvcnRlZElkZW50aWZpZXIoc3BlY2lmaWVyOiBzdHJpbmcpIHtcbiAgY29uc3QgbmFtZXNwYWNlTWF0Y2ggPSBzcGVjaWZpZXIubWF0Y2goL1xcKlxccythc1xccysoW0EtWmEtejAtOV8kXSspLyk7XG4gIGlmIChuYW1lc3BhY2VNYXRjaCkge1xuICAgIHJldHVybiBuYW1lc3BhY2VNYXRjaFsxXTtcbiAgfVxuXG4gIGlmIChzcGVjaWZpZXIuaW5jbHVkZXMoJ3snKSkge1xuICAgIGNvbnN0IGluc2lkZSA9IHNwZWNpZmllci5yZXBsYWNlKC9eW157XSpcXHsvLCAnJykucmVwbGFjZSgvXFx9LiokLywgJycpO1xuICAgIGNvbnN0IGZpcnN0TmFtZWQgPSBpbnNpZGVcbiAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAubWFwKCh0b2tlbikgPT4gdG9rZW4udHJpbSgpKVxuICAgICAgLmZpbmQoQm9vbGVhbik7XG5cbiAgICBpZiAoZmlyc3ROYW1lZCkge1xuICAgICAgY29uc3QgYWxpYXNNYXRjaCA9IGZpcnN0TmFtZWQubWF0Y2goXG4gICAgICAgIC8oW0EtWmEtejAtOV8kXSspXFxzK2FzXFxzKyhbQS1aYS16MC05XyRdKykvXG4gICAgICApO1xuICAgICAgaWYgKGFsaWFzTWF0Y2gpIHtcbiAgICAgICAgcmV0dXJuIGFsaWFzTWF0Y2hbMl07XG4gICAgICB9XG4gICAgICAvLyBWYWxpZGF0ZSB0aGF0IGZpcnN0TmFtZWQgaXMgYSB2YWxpZCBpZGVudGlmaWVyIChub3QgZW1wdHkgYnJhY2VzIG9yIHdoaXRlc3BhY2UpXG4gICAgICBjb25zdCBpZGVudGlmaWVyTWF0Y2ggPSBmaXJzdE5hbWVkLm1hdGNoKC9eW0EtWmEtel8kXVtBLVphLXowLTlfJF0qLyk7XG4gICAgICBpZiAoaWRlbnRpZmllck1hdGNoKSB7XG4gICAgICAgIHJldHVybiBpZGVudGlmaWVyTWF0Y2hbMF07XG4gICAgICB9XG4gICAgfVxuICAgIC8vIEVtcHR5IGJyYWNlcyBvciBubyB2YWxpZCBpZGVudGlmaWVyIGZvdW5kIC0gcmV0dXJuIHVuZGVmaW5lZFxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBkZWZhdWx0UGFydCA9IHNwZWNpZmllci5zcGxpdCgnLCcpWzBdPy50cmltKCk7XG4gIGlmIChkZWZhdWx0UGFydCAmJiBkZWZhdWx0UGFydCAhPT0gJyonKSB7XG4gICAgcmV0dXJuIGRlZmF1bHRQYXJ0O1xuICB9XG59XG5cbi8qKlxuICogRmluZCB0aGUgdXNhZ2Ugb2YgYW4gaWRlbnRpZmllciBpbiBhIGxpc3Qgb2YgbGluZXMuXG4gKiBAcGFyYW0gbGluZXMgLSBUaGUgbGlzdCBvZiBsaW5lcyB0byBzZWFyY2ggaW4uXG4gKiBAcGFyYW0gc3RhcnRJbmRleCAtIFRoZSBpbmRleCB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS5cbiAqIEBwYXJhbSBpZGVudGlmaWVyIC0gVGhlIGlkZW50aWZpZXIgdG8gc2VhcmNoIGZvci5cbiAqIEByZXR1cm5zIFRoZSB1c2FnZSBvZiB0aGUgaWRlbnRpZmllci5cbiAqL1xuZnVuY3Rpb24gZmluZElkZW50aWZpZXJVc2FnZShcbiAgbGluZXM6IHN0cmluZ1tdLFxuICBzdGFydEluZGV4OiBudW1iZXIsXG4gIGlkZW50aWZpZXI6IHN0cmluZ1xuKSB7XG4gIGNvbnN0IHVzYWdlUmVnZXggPSBuZXcgUmVnRXhwKGBcXFxcYiR7ZXNjYXBlUmVnRXhwKGlkZW50aWZpZXIpfVxcXFxiYCk7XG4gIGxldCBpbkJsb2NrQ29tbWVudCA9IGZhbHNlO1xuXG4gIGZvciAobGV0IGkgPSBzdGFydEluZGV4OyBpIDwgbGluZXMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAvLyBTdHJpcCBzdHJpbmcgbGl0ZXJhbHMgZmlyc3Qgc28gdGhhdCBjb21tZW50IGRlbGltaXRlcnMgaW5zaWRlIHN0cmluZ3NcbiAgICAvLyAoZS5nLiBgY29uc3QgcyA9IFwiLypcIjtgKSBkb24ndCBjb25mdXNlIHRoZSBjb21tZW50IHNjYW5uZXIuXG4gICAgY29uc3Qgc3RyaW5nc1N0cmlwcGVkID0gbGluZXNbaV1cbiAgICAgIC5yZXBsYWNlKC8nKD86W14nXFxcXF18XFxcXC4pKicvZywgKHMpID0+ICcgJy5yZXBlYXQocy5sZW5ndGgpKVxuICAgICAgLnJlcGxhY2UoL1wiKD86W15cIlxcXFxdfFxcXFwuKSpcIi9nLCAocykgPT4gJyAnLnJlcGVhdChzLmxlbmd0aCkpXG4gICAgICAucmVwbGFjZSgvYCg/OlteYFxcXFxdfFxcXFwuKSpgL2csIChzKSA9PiAnICcucmVwZWF0KHMubGVuZ3RoKSk7XG5cbiAgICBsZXQgbGluZSA9IHN0cmluZ3NTdHJpcHBlZDtcblxuICAgIC8vIEhhbmRsZSBtdWx0aS1saW5lIGJsb2NrIGNvbW1lbnRzIChpbmNsdWRpbmcgSlNEb2MpXG4gICAgaWYgKGluQmxvY2tDb21tZW50KSB7XG4gICAgICBjb25zdCBlbmRJZHggPSBsaW5lLmluZGV4T2YoJyovJyk7XG4gICAgICBpZiAoZW5kSWR4ID09PSAtMSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGxpbmUgPSAnICcucmVwZWF0KGVuZElkeCArIDIpICsgbGluZS5zbGljZShlbmRJZHggKyAyKTtcbiAgICAgIGluQmxvY2tDb21tZW50ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gU2NhbiBmb3IgY29tbWVudHMsIHJlcGxhY2luZyB0aGVtIHdpdGggc3BhY2VzXG4gICAgbGV0IHByb2Nlc3NlZCA9ICcnO1xuICAgIGxldCBqID0gMDtcbiAgICB3aGlsZSAoaiA8IGxpbmUubGVuZ3RoKSB7XG4gICAgICBpZiAobGluZVtqXSA9PT0gJy8nICYmIGxpbmVbaiArIDFdID09PSAnLycpIHtcbiAgICAgICAgcHJvY2Vzc2VkICs9ICcgJy5yZXBlYXQobGluZS5sZW5ndGggLSBqKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBpZiAobGluZVtqXSA9PT0gJy8nICYmIGxpbmVbaiArIDFdID09PSAnKicpIHtcbiAgICAgICAgY29uc3QgZW5kSWR4ID0gbGluZS5pbmRleE9mKCcqLycsIGogKyAyKTtcbiAgICAgICAgaWYgKGVuZElkeCAhPT0gLTEpIHtcbiAgICAgICAgICBjb25zdCBsZW4gPSBlbmRJZHggKyAyIC0gajtcbiAgICAgICAgICBwcm9jZXNzZWQgKz0gJyAnLnJlcGVhdChsZW4pO1xuICAgICAgICAgIGogPSBlbmRJZHggKyAyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHByb2Nlc3NlZCArPSAnICcucmVwZWF0KGxpbmUubGVuZ3RoIC0gaik7XG4gICAgICAgICAgaW5CbG9ja0NvbW1lbnQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwcm9jZXNzZWQgKz0gbGluZVtqXTtcbiAgICAgICAgaiArPSAxO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoID0gcHJvY2Vzc2VkLm1hdGNoKHVzYWdlUmVnZXgpO1xuICAgIGlmIChtYXRjaCAmJiBtYXRjaC5pbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBsaW5lOiBpLFxuICAgICAgICBjb2x1bW46IG1hdGNoLmluZGV4LFxuICAgICAgICBsaW5lVGV4dDogbGluZXNbaV0sXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEdldCB0aGUgbG9jYXRpb24gb2YgYSB2aW9sYXRpb24uXG4gKiBAcGFyYW0gY3dkIC0gVGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gKiBAcGFyYW0gcmVsYXRpdmVQYXRoIC0gVGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIGZpbGUuXG4gKiBAcGFyYW0gcGFja2FnZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcGFja2FnZS5cbiAqIEByZXR1cm5zIFRoZSBsb2NhdGlvbiBvZiB0aGUgdmlvbGF0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VmlvbGF0aW9uTG9jYXRpb24oXG4gIGN3ZDogc3RyaW5nLFxuICByZWxhdGl2ZVBhdGg6IHN0cmluZyxcbiAgcGFja2FnZU5hbWU6IHN0cmluZ1xuKSB7XG4gIHRyeSB7XG4gICAgY29uc3QgYWJzb2x1dGVQYXRoID0gcmVzb2x2ZShjd2QsIHJlbGF0aXZlUGF0aCk7XG4gICAgY29uc3QgY29udGVudHMgPSBhd2FpdCByZWFkRmlsZShhYnNvbHV0ZVBhdGgsICd1dGY4Jyk7XG4gICAgY29uc3QgbGluZXMgPSBjb250ZW50cy5zcGxpdCgvXFxyP1xcbi8pO1xuXG4gICAgY29uc3QgaW1wb3J0UmVnZXggPSBuZXcgUmVnRXhwKFxuICAgICAgYGltcG9ydFxcXFxzKyguKz8pXFxcXHMrZnJvbVxcXFxzK1snXCJdJHtlc2NhcGVSZWdFeHAocGFja2FnZU5hbWUpfSg/Oi9bXidcIl0qKT9bJ1wiXWBcbiAgICApO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgY29uc3QgbGluZSA9IGxpbmVzW2ldO1xuICAgICAgY29uc3QgaW1wb3J0TWF0Y2ggPSBsaW5lLm1hdGNoKGltcG9ydFJlZ2V4KTtcblxuICAgICAgaWYgKGltcG9ydE1hdGNoICYmIGltcG9ydE1hdGNoLmluZGV4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3Qgc3BlY2lmaWVyID0gaW1wb3J0TWF0Y2hbMV0udHJpbSgpO1xuICAgICAgICBjb25zdCBpZGVudGlmaWVyID0gZ2V0SW1wb3J0ZWRJZGVudGlmaWVyKHNwZWNpZmllcik7XG4gICAgICAgIGlmIChpZGVudGlmaWVyKSB7XG4gICAgICAgICAgY29uc3QgdXNhZ2UgPSBmaW5kSWRlbnRpZmllclVzYWdlKGxpbmVzLCBpICsgMSwgaWRlbnRpZmllcik7XG4gICAgICAgICAgaWYgKHVzYWdlKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBmaWxlOiByZWxhdGl2ZVBhdGgsXG4gICAgICAgICAgICAgIGxpbmU6IHVzYWdlLmxpbmUgKyAxLFxuICAgICAgICAgICAgICBjb2x1bW46IHVzYWdlLmNvbHVtbixcbiAgICAgICAgICAgICAgbGluZVRleHQ6IHVzYWdlLmxpbmVUZXh0LFxuICAgICAgICAgICAgICBsZW5ndGg6IGlkZW50aWZpZXIubGVuZ3RoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBJZGVudGlmaWVyIGV4aXN0cyBidXQgaXMgbmV2ZXIgcmVmZXJlbmNlZDsgc3VyZmFjZSBubyBsb2NhdGlvblxuICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGYWxsYmFjazogaWYgd2UgY2FuJ3QgZXh0cmFjdCBpZGVudGlmaWVyLCBwb2ludCB0byBwYWNrYWdlIG5hbWVcbiAgICAgICAgY29uc3QgY29sdW1uSW5kZXggPSBsaW5lLmluZGV4T2YocGFja2FnZU5hbWUpO1xuICAgICAgICBpZiAoY29sdW1uSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGZpbGU6IHJlbGF0aXZlUGF0aCxcbiAgICAgICAgICAgIGxpbmU6IGkgKyAxLFxuICAgICAgICAgICAgY29sdW1uOiBjb2x1bW5JbmRleCxcbiAgICAgICAgICAgIGxpbmVUZXh0OiBsaW5lLFxuICAgICAgICAgICAgbGVuZ3RoOiBwYWNrYWdlTmFtZS5sZW5ndGgsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgLy8gaWdub3JlIGZpbGUgcmVhZCBmYWlsdXJlcywgZmFsbGJhY2sgdG8gbm8gbG9jYXRpb24gaW5mb1xuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBtb2R1bGUgdHlwZSBsYWJlbCBmb3IgZXJyb3IgbWVzc2FnZXMuXG4gKiBAcGFyYW0gbW9kdWxlUGF0aCAtIFRoZSBtb2R1bGUgcGF0aCB0byBjaGVjay5cbiAqIEByZXR1cm5zIFRoZSBtb2R1bGUgdHlwZSBsYWJlbC5cbiAqL1xuZnVuY3Rpb24gZ2V0TW9kdWxlVHlwZUxhYmVsKG1vZHVsZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChidW5Nb2R1bGVzUmVnZXgudGVzdChtb2R1bGVQYXRoKSkge1xuICAgIHJldHVybiAnQnVuJztcbiAgfVxuICByZXR1cm4gJ05vZGUuanMnO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBlc2J1aWxkIHBsdWdpbiB0byBkZXRlY3QgdmlvbGF0aW9ucyBvZiB0aGUgTm9kZS5qcyBtb2R1bGUgdXNhZ2UgcnVsZS5cbiAqIFRoaXMgcGx1Z2luIHByZXZlbnRzIHdvcmtmbG93IGZ1bmN0aW9ucyBmcm9tIGltcG9ydGluZyBOb2RlLmpzIG9yIEJ1biBidWlsdC1pblxuICogbW9kdWxlcywgd2hpY2ggYXJlIG5vdCBhdmFpbGFibGUgaW4gdGhlIHNhbmRib3hlZCB3b3JrZmxvdyBydW50aW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTm9kZU1vZHVsZUVycm9yUGx1Z2luKCk6IGVzYnVpbGQuUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnd29ya2Zsb3ctbm9kZS1tb2R1bGUtZXJyb3InLFxuICAgIHNldHVwKGJ1aWxkKSB7XG4gICAgICBjb25zdCBjd2QgPSBwcm9jZXNzLmN3ZCgpO1xuICAgICAgY29uc3QgaW1wb3J0UGFyZW50cyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgICBjb25zdCBwYWNrYWdlVmlvbGF0aW9uczogUGFja2FnZVZpb2xhdGlvbltdID0gW107XG4gICAgICBjb25zdCBzZWVuVmlvbGF0aW9ucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgICAvLyBUcmFjayBBTEwgaW1wb3J0IHJlbGF0aW9uc2hpcHMgdG8gYnVpbGQgdGhlIGRlcGVuZGVuY3kgZ3JhcGguXG4gICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSB0byB0cmFjZSB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcyBiYWNrIHRvIHVzZXIgY29kZS5cbiAgICAgIC8vIFBlcmZvcm1hbmNlIGltcGFjdCBpcyBtaW5pbWFsIGFzIHdlIG9ubHkgc3RvcmUgcGF0aCBtYXBwaW5ncy5cbiAgICAgIGJ1aWxkLm9uUmVzb2x2ZSh7IGZpbHRlcjogLy4qLyB9LCBhc3luYyAoYXJncykgPT4ge1xuICAgICAgICBpZiAoIWFyZ3MuaW1wb3J0ZXIpIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IHBhcmVudFZhbHVlID0gbm9ybWFsaXplKGFyZ3MuaW1wb3J0ZXIpO1xuICAgICAgICBjb25zdCBzcGVjaWZpZXJQYWNrYWdlTmFtZSA9IGdldFBhY2thZ2VOYW1lRnJvbVNwZWNpZmllcihhcmdzLnBhdGgpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzb2x2ZWRDaGlsZCA9IGF3YWl0IGVuaGFuY2VkUmVzb2x2ZShcbiAgICAgICAgICAgIGFyZ3MucmVzb2x2ZURpcixcbiAgICAgICAgICAgIGFyZ3MucGF0aFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAocmVzb2x2ZWRDaGlsZCkge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBub3JtYWxpemUocmVzb2x2ZWRDaGlsZCk7XG4gICAgICAgICAgICBpbXBvcnRQYXJlbnRzLnNldChjaGlsZEtleSwgcGFyZW50VmFsdWUpO1xuXG4gICAgICAgICAgICAvLyBSZWNvcmQgdGhlIHJlc29sdmVkIHBhY2thZ2UgZWRnZSBzbyB0cmFuc2l0aXZlIGJ1aWx0aW4gdXNhZ2UgY2FuXG4gICAgICAgICAgICAvLyBzdGlsbCB0cmFjZSBiYWNrIGV2ZW4gd2hlbiBlc2J1aWxkIGFuZCBlbmhhbmNlZC1yZXNvbHZlIHBpY2tcbiAgICAgICAgICAgIC8vIGRpZmZlcmVudCBlbnRyeSBmaWxlcyAoZS5nLiBgbW9kdWxlYCB2cyBgbWFpbmApLlxuICAgICAgICAgICAgY29uc3QgcmVzb2x2ZWRQYWNrYWdlTmFtZSA9IGdldFBhY2thZ2VOYW1lKGNoaWxkS2V5KTtcbiAgICAgICAgICAgIGlmIChyZXNvbHZlZFBhY2thZ2VOYW1lKSB7XG4gICAgICAgICAgICAgIGltcG9ydFBhcmVudHMuc2V0KHJlc29sdmVkUGFja2FnZU5hbWUsIHBhcmVudFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBBbHNvIHByZXNlcnZlIHRoZSBiYXJlIHBhY2thZ2Utc3BlY2lmaWVyIGVkZ2UgKGUuZy4gXCJwb3N0Z3Jlc1wiKSxcbiAgICAgICAgICAvLyB3aGljaCBpcyB0aGUgZmFsbGJhY2sga2V5IHVzZWQgd2hlbiB0cmFjaW5nIGZyb20gZmlsZXMgaW5cbiAgICAgICAgICAvLyBub2RlX21vZHVsZXMgYmFjayB0byB1c2VyIGNvZGUuXG4gICAgICAgICAgaWYgKHNwZWNpZmllclBhY2thZ2VOYW1lKSB7XG4gICAgICAgICAgICBpbXBvcnRQYXJlbnRzLnNldChzcGVjaWZpZXJQYWNrYWdlTmFtZSwgcGFyZW50VmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gRm9yIGJ1aWx0LWluIG1vZHVsZXMgdGhhdCBjYW4ndCBiZSByZXNvbHZlZCwgc3RpbGwgdHJhY2sgdXNpbmcgdGhlIGltcG9ydCBwYXRoXG4gICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBhcmdzLnBhdGg7XG4gICAgICAgICAgaW1wb3J0UGFyZW50cy5zZXQoY2hpbGRLZXksIHBhcmVudFZhbHVlKTtcblxuICAgICAgICAgIGlmIChzcGVjaWZpZXJQYWNrYWdlTmFtZSkge1xuICAgICAgICAgICAgaW1wb3J0UGFyZW50cy5zZXQoc3BlY2lmaWVyUGFja2FnZU5hbWUsIHBhcmVudFZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9KTtcblxuICAgICAgLy8gRGV0ZWN0IE5vZGUuanMgYW5kIEJ1biBtb2R1bGUgaW1wb3J0c1xuICAgICAgYnVpbGQub25SZXNvbHZlKHsgZmlsdGVyOiBydW50aW1lTW9kdWxlc1JlZ2V4IH0sIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICAgIGNvbnN0IGltcG9ydGVyUGF0aCA9IHJlc29sdmUoY3dkLCBhcmdzLmltcG9ydGVyKTtcbiAgICAgICAgbGV0IGN1cnJlbnQgPSBpbXBvcnRlclBhdGg7XG4gICAgICAgIGNvbnN0IGNoYWluOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBjb25zdCB2aXNpdGVkID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICAgIHdoaWxlIChjdXJyZW50KSB7XG4gICAgICAgICAgaWYgKHZpc2l0ZWQuaGFzKGN1cnJlbnQpKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdmlzaXRlZC5hZGQoY3VycmVudCk7XG4gICAgICAgICAgY2hhaW4ucHVzaChjdXJyZW50KTtcbiAgICAgICAgICBsZXQgbmV4dCA9IGltcG9ydFBhcmVudHMuZ2V0KGN1cnJlbnQpO1xuXG4gICAgICAgICAgLy8gSWYgd2UgY2FuJ3QgZmluZCB0aGUgcGFyZW50IGFuZCBjdXJyZW50IGlzIGluIG5vZGVfbW9kdWxlcyxcbiAgICAgICAgICAvLyB0cnkgbG9va2luZyB1cCBieSBwb3RlbnRpYWwgcGFja2FnZSBpbXBvcnQgc3RyaW5nc1xuICAgICAgICAgIGlmICghbmV4dCAmJiBjdXJyZW50LmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSkge1xuICAgICAgICAgICAgY29uc3QgcGFja2FnZU5hbWUgPSBnZXRQYWNrYWdlTmFtZShjdXJyZW50KTtcbiAgICAgICAgICAgIGlmIChwYWNrYWdlTmFtZSkge1xuICAgICAgICAgICAgICAvLyBUcnkgdGhlIHBhY2thZ2UgbmFtZSBkaXJlY3RseVxuICAgICAgICAgICAgICBuZXh0ID0gaW1wb3J0UGFyZW50cy5nZXQocGFja2FnZU5hbWUpO1xuICAgICAgICAgICAgICBpZiAoIW5leHQpIHtcbiAgICAgICAgICAgICAgICAvLyBUcnkgd2l0aCBub2RlOiBwcmVmaXhcbiAgICAgICAgICAgICAgICBuZXh0ID0gaW1wb3J0UGFyZW50cy5nZXQoYG5vZGU6JHtwYWNrYWdlTmFtZX1gKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGN1cnJlbnQgPSBuZXh0ID8/ICcnO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZpbHRlcmVkQ2hhaW4gPSBjaGFpbi5maWx0ZXIoXG4gICAgICAgICAgKHBhdGgpID0+ICFwYXRoLmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHdvcmtmbG93RmlsZSA9IGZpbHRlcmVkQ2hhaW5bMF0gPz8gaW1wb3J0ZXJQYXRoO1xuXG4gICAgICAgIGlmICghd29ya2Zsb3dGaWxlIHx8IHdvcmtmbG93RmlsZS5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcGF0aDogYXJncy5wYXRoLFxuICAgICAgICAgICAgZXh0ZXJuYWw6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gaW1wb3J0ZXJQYXRoLmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKVxuICAgICAgICAgID8gKGdldFBhY2thZ2VOYW1lKGltcG9ydGVyUGF0aCkgPz8gYXJncy5wYXRoKVxuICAgICAgICAgIDogYXJncy5wYXRoO1xuXG4gICAgICAgIGNvbnN0IHJlbGF0aXZlV29ya2Zsb3dGaWxlID0gcmVsYXRpdmUoY3dkLCB3b3JrZmxvd0ZpbGUpO1xuICAgICAgICBjb25zdCB2aW9sYXRpb25LZXkgPSBgJHtwYWNrYWdlTmFtZX06JHtyZWxhdGl2ZVdvcmtmbG93RmlsZX1gO1xuXG4gICAgICAgIGlmICghc2VlblZpb2xhdGlvbnMuaGFzKHZpb2xhdGlvbktleSkpIHtcbiAgICAgICAgICBzZWVuVmlvbGF0aW9ucy5hZGQodmlvbGF0aW9uS2V5KTtcbiAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IGF3YWl0IGdldFZpb2xhdGlvbkxvY2F0aW9uKFxuICAgICAgICAgICAgY3dkLFxuICAgICAgICAgICAgcmVsYXRpdmVXb3JrZmxvd0ZpbGUsXG4gICAgICAgICAgICBwYWNrYWdlTmFtZVxuICAgICAgICAgICk7XG4gICAgICAgICAgLy8gT25seSByZXBvcnQgdmlvbGF0aW9ucyB3aGVyZSB3ZSBjYW4gZmluZCB0aGUgaW1wb3J0IGxvY2F0aW9uLlxuICAgICAgICAgIC8vIElmIHdlIGNhbid0IGZpbmQgaXQsIHRoZSBwYWNrYWdlIGlzIGxpa2VseSBhIHRyYW5zaXRpdmUgZGVwZW5kZW5jeVxuICAgICAgICAgIC8vIHRoYXQgdGhlIHVzZXIgZGlkbid0IGRpcmVjdGx5IGltcG9ydCAtIHdlJ2xsIHJlcG9ydCB0aGUgdG9wLWxldmVsXG4gICAgICAgICAgLy8gcGFja2FnZSB0aGV5IGRpZCBpbXBvcnQgaW5zdGVhZC5cbiAgICAgICAgICBpZiAobG9jYXRpb24pIHtcbiAgICAgICAgICAgIHBhY2thZ2VWaW9sYXRpb25zLnB1c2goe1xuICAgICAgICAgICAgICBwYXRoOiBhcmdzLnBhdGgsXG4gICAgICAgICAgICAgIGltcG9ydGVyOiByZWxhdGl2ZVdvcmtmbG93RmlsZSxcbiAgICAgICAgICAgICAgcGFja2FnZU5hbWUsXG4gICAgICAgICAgICAgIGxvY2F0aW9uLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBwYXRoOiBhcmdzLnBhdGgsXG4gICAgICAgICAgZXh0ZXJuYWw6IHRydWUsXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgLy8gUmVwb3J0IGFsbCB2aW9sYXRpb25zIGF0IHRoZSBlbmQgb2YgdGhlIGJ1aWxkXG4gICAgICBidWlsZC5vbkVuZCgoKSA9PiB7XG4gICAgICAgIGlmIChwYWNrYWdlVmlvbGF0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVycm9yczogcGFja2FnZVZpb2xhdGlvbnMubWFwKCh2aW9sYXRpb24pID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaXNCdWlsdGluTW9kdWxlID0gcnVudGltZU1vZHVsZXNSZWdleC50ZXN0KFxuICAgICAgICAgICAgICAgIHZpb2xhdGlvbi5wYWNrYWdlTmFtZVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBjb25zdCBtb2R1bGVUeXBlID0gZ2V0TW9kdWxlVHlwZUxhYmVsKHZpb2xhdGlvbi5wYXRoKTtcblxuICAgICAgICAgICAgICAvLyBEaWZmZXJlbnQgbWVzc2FnZXMgZm9yIGJ1aWx0LWluIG1vZHVsZXMgdnMgbnBtIHBhY2thZ2VzIHRoYXQgdXNlIHRoZW1cbiAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IGlzQnVpbHRpbk1vZHVsZVxuICAgICAgICAgICAgICAgID8gYFlvdSBhcmUgYXR0ZW1wdGluZyB0byB1c2UgXCIke3Zpb2xhdGlvbi5wYWNrYWdlTmFtZX1cIiB3aGljaCBpcyBhICR7bW9kdWxlVHlwZX0gbW9kdWxlLiAke21vZHVsZVR5cGV9IG1vZHVsZXMgYXJlIG5vdCBhdmFpbGFibGUgaW4gd29ya2Zsb3cgZnVuY3Rpb25zLlxcblxcbkxlYXJuIG1vcmU6IGh0dHBzOi8vdXNld29ya2Zsb3cuZGV2L2Vyci8ke0VSUk9SX1NMVUdTLk5PREVfSlNfTU9EVUxFX0lOX1dPUktGTE9XfWBcbiAgICAgICAgICAgICAgICA6IGBZb3UgYXJlIGF0dGVtcHRpbmcgdG8gdXNlIFwiJHt2aW9sYXRpb24ucGFja2FnZU5hbWV9XCIgd2hpY2ggZGVwZW5kcyBvbiAke21vZHVsZVR5cGV9IG1vZHVsZXMuIFBhY2thZ2VzIHRoYXQgZGVwZW5kIG9uICR7bW9kdWxlVHlwZX0gbW9kdWxlcyBhcmUgbm90IGF2YWlsYWJsZSBpbiB3b3JrZmxvdyBmdW5jdGlvbnMuXFxuXFxuTGVhcm4gbW9yZTogaHR0cHM6Ly91c2V3b3JrZmxvdy5kZXYvZXJyLyR7RVJST1JfU0xVR1MuTk9ERV9KU19NT0RVTEVfSU5fV09SS0ZMT1d9YDtcblxuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHRleHQsXG4gICAgICAgICAgICAgICAgbG9jYXRpb246IHZpb2xhdGlvbi5sb2NhdGlvblxuICAgICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgLi4udmlvbGF0aW9uLmxvY2F0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgIHN1Z2dlc3Rpb246ICdNb3ZlIHRoaXMgZnVuY3Rpb24gaW50byBhIHN0ZXAgZnVuY3Rpb24uJyxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9O1xufVxuIl19
|
|
@@ -510,4 +510,4 @@ describe('workflow-node-module-error helper functions', () => {
|
|
|
510
510
|
});
|
|
511
511
|
});
|
|
512
512
|
});
|
|
513
|
-
//# sourceMappingURL=node-module-esbuild-plugin.test.js.map
|
|
513
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1tb2R1bGUtZXNidWlsZC1wbHVnaW4udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlLW1vZHVsZS1lc2J1aWxkLXBsdWdpbi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLEVBQ1gsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sYUFBYSxHQUNkLE1BQU0sU0FBUyxDQUFDO0FBSWpCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXBELHdFQUF3RTtBQUN4RSxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztBQUUxQyxPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUMsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLGNBQWMsRUFDZCxvQkFBb0IsR0FDckIsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6QyxLQUFLLFVBQVUsMEJBQTBCLENBQ3ZDLE1BQWMsRUFDZCxZQUEyQyxFQUFFO0lBRTdDLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLDBCQUEwQixDQUFDLENBQUMsQ0FBQztJQUMxRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQy9DLGFBQWEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDakMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUV6RCxJQUFJLENBQUM7UUFDSCxN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RTtZQUN0RixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDMUIsTUFBTSxRQUFRLEdBQUcsd0NBQXdDLENBQUM7WUFFMUQsc0VBQXNFO1lBQ3RFLE1BQU0sUUFBUSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUV4RSxzRUFBc0U7WUFDdEUsa0NBQWtDO1lBQ2xDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBta2R0ZW1wU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICByZWFscGF0aFN5bmMsXG4gIHJtU3luYyxcbiAgd3JpdGVGaWxlU3luYyxcbn0gZnJvbSAnbm9kZTpmcyc7XG4vLyBAdHMtZXhwZWN0LWVycm9yIC0gSW50ZW50aW9uYWxseSB1bnVzZWQgaW1wb3J0IGZvciB0ZXN0aW5nIGdldFZpb2xhdGlvbkxvY2F0aW9uXG4vLyB3aXRoIGFuIGltcG9ydCB0aGF0IGV4aXN0cyBidXQgaXMgbmV2ZXIgcmVmZXJlbmNlZCBpbiBjb2RlXG5pbXBvcnQgaHR0cCBmcm9tICdub2RlOmh0dHAnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyBqb2luLCByZWxhdGl2ZSwgcmVzb2x2ZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbi8vIFJlc29sdmUgc3ltbGlua3MgaW4gdG1wZGlyIHRvIGF2b2lkIG1hY09TIC92YXIgLT4gL3ByaXZhdGUvdmFyIGlzc3Vlc1xuY29uc3QgcmVhbFRtcGRpciA9IHJlYWxwYXRoU3luYyh0bXBkaXIoKSk7XG5cbmltcG9ydCAqIGFzIGVzYnVpbGQgZnJvbSAnZXNidWlsZCc7XG5pbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gJ3ZpdGVzdCc7XG5pbXBvcnQge1xuICBjcmVhdGVOb2RlTW9kdWxlRXJyb3JQbHVnaW4sXG4gIGVzY2FwZVJlZ0V4cCxcbiAgZ2V0SW1wb3J0ZWRJZGVudGlmaWVyLFxuICBnZXRQYWNrYWdlTmFtZSxcbiAgZ2V0VmlvbGF0aW9uTG9jYXRpb24sXG59IGZyb20gJy4vbm9kZS1tb2R1bGUtZXNidWlsZC1wbHVnaW4uanMnO1xuXG5hc3luYyBmdW5jdGlvbiBidWlsZFdvcmtmbG93V2l0aFZpb2xhdGlvbihcbiAgc291cmNlOiBzdHJpbmcsXG4gIG92ZXJyaWRlczogUGFydGlhbDxlc2J1aWxkLkJ1aWxkT3B0aW9ucz4gPSB7fVxuKSB7XG4gIGNvbnN0IHRlbXBEaXIgPSBta2R0ZW1wU3luYyhqb2luKHJlYWxUbXBkaXIsICdub2RlLW1vZHVsZS1wbHVnaW4tdGVzdC0nKSk7XG4gIGNvbnN0IGVudHJ5RmlsZSA9IGpvaW4odGVtcERpciwgJ3dvcmtmbG93LnRzJyk7XG4gIHdyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCBzb3VyY2UpO1xuICBjb25zdCByZWxhdGl2ZUVudHJ5ID0gcmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgZW50cnlGaWxlKTtcblxuICB0cnkge1xuICAgIGF3YWl0IGVzYnVpbGQuYnVpbGQoe1xuICAgICAgZW50cnlQb2ludHM6IFtlbnRyeUZpbGVdLFxuICAgICAgYnVuZGxlOiB0cnVlLFxuICAgICAgd3JpdGU6IGZhbHNlLFxuICAgICAgcGxhdGZvcm06ICduZXV0cmFsJyxcbiAgICAgIGxvZ0xldmVsOiAnc2lsZW50JyxcbiAgICAgIHBsdWdpbnM6IFtjcmVhdGVOb2RlTW9kdWxlRXJyb3JQbHVnaW4oKSwgLi4uKG92ZXJyaWRlcy5wbHVnaW5zID8/IFtdKV0sXG4gICAgICAuLi5vdmVycmlkZXMsXG4gICAgfSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBidWlsZCB0byBmYWlsJyk7XG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICBpZiAoZXJyb3IgJiYgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0JyAmJiAnZXJyb3JzJyBpbiBlcnJvcikge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZmFpbHVyZTogZXJyb3IgYXMgZXNidWlsZC5CdWlsZEZhaWx1cmUsXG4gICAgICAgIHJlbGF0aXZlRW50cnksXG4gICAgICB9O1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfSBmaW5hbGx5IHtcbiAgICBybVN5bmModGVtcERpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICB9XG59XG5cbmRlc2NyaWJlKCd3b3JrZmxvdy1ub2RlLW1vZHVsZS1lcnJvciBwbHVnaW4nLCAoKSA9PiB7XG4gIGl0KCdzaG91bGQgZXJyb3Igb24gZnMgaW1wb3J0JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tIFwiZnNcIjtcbiAgICAgIGV4cG9ydCBmdW5jdGlvbiB3b3JrZmxvdygpIHtcbiAgICAgICAgcmV0dXJuIHJlYWRGaWxlKFwidGVzdC50eHRcIik7XG4gICAgICB9XG4gICAgYDtcblxuICAgIGNvbnN0IHsgZmFpbHVyZSwgcmVsYXRpdmVFbnRyeSB9ID1cbiAgICAgIGF3YWl0IGJ1aWxkV29ya2Zsb3dXaXRoVmlvbGF0aW9uKHRlc3RDb2RlKTtcblxuICAgIGV4cGVjdChmYWlsdXJlLmVycm9ycykudG9IYXZlTGVuZ3RoKDEpO1xuICAgIGNvbnN0IHZpb2xhdGlvbiA9IGZhaWx1cmUuZXJyb3JzWzBdO1xuICAgIGV4cGVjdCh2aW9sYXRpb24udGV4dCkudG9Db250YWluKFxuICAgICAgJ1lvdSBhcmUgYXR0ZW1wdGluZyB0byB1c2UgXCJmc1wiIHdoaWNoIGlzIGEgTm9kZS5qcyBtb2R1bGUnXG4gICAgKTtcbiAgICBleHBlY3QodmlvbGF0aW9uLmxvY2F0aW9uKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIGZpbGU6IHJlbGF0aXZlRW50cnksXG4gICAgICBzdWdnZXN0aW9uOiAnTW92ZSB0aGlzIGZ1bmN0aW9uIGludG8gYSBzdGVwIGZ1bmN0aW9uLicsXG4gICAgfSk7XG4gICAgZXhwZWN0KHZpb2xhdGlvbi5sb2NhdGlvbj8ubGluZSkudG9CZUdyZWF0ZXJUaGFuKDApO1xuICAgIGV4cGVjdCh2aW9sYXRpb24ubG9jYXRpb24/LmNvbHVtbikudG9CZUdyZWF0ZXJUaGFuT3JFcXVhbCgwKTtcbiAgICBleHBlY3QodmlvbGF0aW9uLmxvY2F0aW9uPy5saW5lVGV4dCkudG9Db250YWluKCdyZWFkRmlsZScpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGVycm9yIG9uIG5vZGU6IHByZWZpeGVkIGltcG9ydHMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdGVzdENvZGUgPSBgXG4gICAgICBpbXBvcnQgeyByZWFkRmlsZSB9IGZyb20gXCJub2RlOmZzXCI7XG4gICAgICBleHBvcnQgZnVuY3Rpb24gd29ya2Zsb3coKSB7XG4gICAgICAgIHJldHVybiByZWFkRmlsZTtcbiAgICAgIH1cbiAgICBgO1xuXG4gICAgY29uc3QgeyBmYWlsdXJlLCByZWxhdGl2ZUVudHJ5IH0gPSBhd2FpdCBidWlsZFdvcmtmbG93V2l0aFZpb2xhdGlvbihcbiAgICAgIHRlc3RDb2RlLFxuICAgICAgeyBmb3JtYXQ6ICdjanMnIH1cbiAgICApO1xuXG4gICAgZXhwZWN0KGZhaWx1cmUuZXJyb3JzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgY29uc3QgdmlvbGF0aW9uID0gZmFpbHVyZS5lcnJvcnNbMF07XG4gICAgZXhwZWN0KHZpb2xhdGlvbi50ZXh0KS50b0NvbnRhaW4oXG4gICAgICAnWW91IGFyZSBhdHRlbXB0aW5nIHRvIHVzZSBcIm5vZGU6ZnNcIiB3aGljaCBpcyBhIE5vZGUuanMgbW9kdWxlJ1xuICAgICk7XG4gICAgZXhwZWN0KHZpb2xhdGlvbi5sb2NhdGlvbikudG9NYXRjaE9iamVjdCh7XG4gICAgICBmaWxlOiByZWxhdGl2ZUVudHJ5LFxuICAgICAgc3VnZ2VzdGlvbjogJ01vdmUgdGhpcyBmdW5jdGlvbiBpbnRvIGEgc3RlcCBmdW5jdGlvbi4nLFxuICAgIH0pO1xuICAgIGV4cGVjdCh2aW9sYXRpb24ubG9jYXRpb24/LmxpbmVUZXh0KS50b0NvbnRhaW4oJ3JlYWRGaWxlJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZXJyb3Igb24gbXVsdGlwbGUgTm9kZS5qcyBpbXBvcnRzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tIFwiZnNcIjtcbiAgICAgIGltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuICAgICAgZXhwb3J0IGZ1bmN0aW9uIHdvcmtmbG93KCkge1xuICAgICAgICByZXR1cm4gcmVhZEZpbGUoam9pbihcImFcIiwgXCJiXCIpKTtcbiAgICAgIH1cbiAgICBgO1xuXG4gICAgY29uc3QgeyBmYWlsdXJlLCByZWxhdGl2ZUVudHJ5IH0gPSBhd2FpdCBidWlsZFdvcmtmbG93V2l0aFZpb2xhdGlvbihcbiAgICAgIHRlc3RDb2RlLFxuICAgICAgeyBmb3JtYXQ6ICdjanMnIH1cbiAgICApO1xuXG4gICAgZXhwZWN0KGZhaWx1cmUuZXJyb3JzKS50b0hhdmVMZW5ndGgoMik7XG5cbiAgICBjb25zdCBwYWNrYWdlcyA9IGZhaWx1cmUuZXJyb3JzLm1hcCgoZXJyb3IpID0+ICh7XG4gICAgICB0ZXh0OiBlcnJvci50ZXh0LFxuICAgICAgbG9jYXRpb246IGVycm9yLmxvY2F0aW9uLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGZzVmlvbGF0aW9uID0gcGFja2FnZXMuZmluZCgocGtnKSA9PiBwa2cudGV4dC5pbmNsdWRlcygnXCJmc1wiJykpO1xuICAgIGNvbnN0IHBhdGhWaW9sYXRpb24gPSBwYWNrYWdlcy5maW5kKChwa2cpID0+IHBrZy50ZXh0LmluY2x1ZGVzKCdcInBhdGhcIicpKTtcblxuICAgIGV4cGVjdChmc1Zpb2xhdGlvbj8udGV4dCkudG9Db250YWluKCd3aGljaCBpcyBhIE5vZGUuanMgbW9kdWxlJyk7XG4gICAgZXhwZWN0KHBhdGhWaW9sYXRpb24/LnRleHQpLnRvQ29udGFpbignd2hpY2ggaXMgYSBOb2RlLmpzIG1vZHVsZScpO1xuXG4gICAgZXhwZWN0KGZzVmlvbGF0aW9uPy5sb2NhdGlvbikudG9NYXRjaE9iamVjdCh7XG4gICAgICBmaWxlOiByZWxhdGl2ZUVudHJ5LFxuICAgICAgc3VnZ2VzdGlvbjogJ01vdmUgdGhpcyBmdW5jdGlvbiBpbnRvIGEgc3RlcCBmdW5jdGlvbi4nLFxuICAgIH0pO1xuICAgIGV4cGVjdChmc1Zpb2xhdGlvbj8ubG9jYXRpb24/LmxpbmVUZXh0KS50b0NvbnRhaW4oJ3JlYWRGaWxlJyk7XG4gICAgZXhwZWN0KHBhdGhWaW9sYXRpb24/LmxvY2F0aW9uKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIGZpbGU6IHJlbGF0aXZlRW50cnksXG4gICAgICBzdWdnZXN0aW9uOiAnTW92ZSB0aGlzIGZ1bmN0aW9uIGludG8gYSBzdGVwIGZ1bmN0aW9uLicsXG4gICAgfSk7XG4gICAgZXhwZWN0KHBhdGhWaW9sYXRpb24/LmxvY2F0aW9uPy5saW5lVGV4dCkudG9Db250YWluKCdqb2luJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2hvdyB0b3AtbGV2ZWwgcGFja2FnZSBuYW1lIGZvciBuZXN0ZWQgTm9kZS5qcyBpbXBvcnRzJywgYXN5bmMgKCkgPT4ge1xuICAgIC8vIFRoaXMgdGVzdCB2YWxpZGF0ZXMgdGhhdCB3aGVuIGEgcGFja2FnZSBpbiBub2RlX21vZHVsZXMgaW50ZXJuYWxseSB1c2VzXG4gICAgLy8gTm9kZS5qcyBidWlsdC1pbiBtb2R1bGVzLCB0aGUgZXJyb3IgbWVzc2FnZSBzaG93cyB0aGUgdG9wLWxldmVsIHBhY2thZ2UgbmFtZVxuICAgIC8vIChlLmcuLCBcImZha2UtcGFja2FnZVwiKSBpbnN0ZWFkIG9mIHRoZSBpbnRlcm5hbCBidWlsdC1pbiAoZS5nLiwgXCJzdHJlYW1cIikuXG4gICAgLy9cbiAgICAvLyBXZSBjcmVhdGUgYSByZWFsIG5vZGVfbW9kdWxlcyBkaXJlY3Rvcnkgc3RydWN0dXJlIHRvIHNpbXVsYXRlIHRoaXMgc2NlbmFyaW8uXG4gICAgY29uc3QgdGVtcERpciA9IG1rZHRlbXBTeW5jKGpvaW4ocmVhbFRtcGRpciwgJ25vZGUtbW9kdWxlLXBsdWdpbi10ZXN0LScpKTtcbiAgICBjb25zdCBub2RlTW9kdWxlc0RpciA9IGpvaW4odGVtcERpciwgJ25vZGVfbW9kdWxlcycsICdmYWtlLXBhY2thZ2UnKTtcbiAgICBjb25zdCB7IG1rZGlyU3luYyB9ID0gYXdhaXQgaW1wb3J0KCdub2RlOmZzJyk7XG4gICAgbWtkaXJTeW5jKG5vZGVNb2R1bGVzRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIGNvbnN0IGZha2VQYWNrYWdlQ29kZSA9IGBcbiAgICAgIGltcG9ydCB7IFN0cmVhbSB9IGZyb20gXCJzdHJlYW1cIjtcbiAgICAgIGV4cG9ydCBmdW5jdGlvbiBmYWtlUGFja2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdHJlYW0oKTtcbiAgICAgIH1cbiAgICBgO1xuICAgIHdyaXRlRmlsZVN5bmMoam9pbihub2RlTW9kdWxlc0RpciwgJ2luZGV4LmpzJyksIGZha2VQYWNrYWdlQ29kZSk7XG4gICAgd3JpdGVGaWxlU3luYyhcbiAgICAgIGpvaW4obm9kZU1vZHVsZXNEaXIsICdwYWNrYWdlLmpzb24nKSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHsgbmFtZTogJ2Zha2UtcGFja2FnZScsIG1haW46ICdpbmRleC5qcycgfSlcbiAgICApO1xuXG4gICAgY29uc3QgdGVzdENvZGUgPSBgXG4gICAgICBpbXBvcnQgeyBmYWtlUGFja2FnZSB9IGZyb20gXCJmYWtlLXBhY2thZ2VcIjtcbiAgICAgIGV4cG9ydCBmdW5jdGlvbiB3b3JrZmxvdygpIHtcbiAgICAgICAgcmV0dXJuIGZha2VQYWNrYWdlKCk7XG4gICAgICB9XG4gICAgYDtcbiAgICBjb25zdCBlbnRyeUZpbGUgPSBqb2luKHRlbXBEaXIsICd3b3JrZmxvdy50cycpO1xuICAgIHdyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCB0ZXN0Q29kZSk7XG4gICAgY29uc3QgcmVsYXRpdmVFbnRyeSA9IHJlbGF0aXZlKHByb2Nlc3MuY3dkKCksIGVudHJ5RmlsZSk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZXNidWlsZC5idWlsZCh7XG4gICAgICAgIGVudHJ5UG9pbnRzOiBbZW50cnlGaWxlXSxcbiAgICAgICAgYnVuZGxlOiB0cnVlLFxuICAgICAgICB3cml0ZTogZmFsc2UsXG4gICAgICAgIHBsYXRmb3JtOiAnbmV1dHJhbCcsXG4gICAgICAgIGxvZ0xldmVsOiAnc2lsZW50JyxcbiAgICAgICAgcGx1Z2luczogW2NyZWF0ZU5vZGVNb2R1bGVFcnJvclBsdWdpbigpXSxcbiAgICAgIH0pO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBidWlsZCB0byBmYWlsJyk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgaWYgKGVycm9yICYmIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgJ2Vycm9ycycgaW4gZXJyb3IpIHtcbiAgICAgICAgY29uc3QgZmFpbHVyZSA9IGVycm9yIGFzIGVzYnVpbGQuQnVpbGRGYWlsdXJlO1xuICAgICAgICBleHBlY3QoZmFpbHVyZS5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICAgICAgY29uc3QgdmlvbGF0aW9uID0gZmFpbHVyZS5lcnJvcnNbMF07XG4gICAgICAgIC8vIFNob3VsZCBtZW50aW9uIHRoZSB0b3AtbGV2ZWwgcGFja2FnZSBcImZha2UtcGFja2FnZVwiLCBub3QgdGhlIGludGVybmFsIFwic3RyZWFtXCIgbW9kdWxlXG4gICAgICAgIGV4cGVjdCh2aW9sYXRpb24udGV4dCkudG9Db250YWluKCdcImZha2UtcGFja2FnZVwiJyk7XG4gICAgICAgIGV4cGVjdCh2aW9sYXRpb24udGV4dCkudG9Db250YWluKCd3aGljaCBkZXBlbmRzIG9uIE5vZGUuanMgbW9kdWxlcycpO1xuICAgICAgICBleHBlY3QodmlvbGF0aW9uLnRleHQpLm5vdC50b0NvbnRhaW4oJ1wic3RyZWFtXCInKTtcbiAgICAgICAgZXhwZWN0KHZpb2xhdGlvbi5sb2NhdGlvbikudG9NYXRjaE9iamVjdCh7XG4gICAgICAgICAgZmlsZTogcmVsYXRpdmVFbnRyeSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgcm1TeW5jKHRlbXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZGV0ZWN0IHBhY2thZ2VzIHdoZW4gZXNidWlsZCBhbmQgcmVzb2x2ZXIgY2hvb3NlIGRpZmZlcmVudCBlbnRyeSBmaWVsZHMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdGVtcERpciA9IG1rZHRlbXBTeW5jKGpvaW4ocmVhbFRtcGRpciwgJ25vZGUtbW9kdWxlLXBsdWdpbi10ZXN0LScpKTtcbiAgICBjb25zdCBub2RlTW9kdWxlc0RpciA9IGpvaW4odGVtcERpciwgJ25vZGVfbW9kdWxlcycsICdkdWFsLWVudHJ5LXBhY2thZ2UnKTtcbiAgICBjb25zdCBlc21EaXIgPSBqb2luKG5vZGVNb2R1bGVzRGlyLCAnZXNtJyk7XG4gICAgY29uc3QgY2pzRGlyID0gam9pbihub2RlTW9kdWxlc0RpciwgJ2NqcycpO1xuICAgIGNvbnN0IHsgbWtkaXJTeW5jIH0gPSBhd2FpdCBpbXBvcnQoJ25vZGU6ZnMnKTtcbiAgICBta2RpclN5bmMoZXNtRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBta2RpclN5bmMoY2pzRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIHdyaXRlRmlsZVN5bmMoXG4gICAgICBqb2luKGVzbURpciwgJ2luZGV4LmpzJyksXG4gICAgICBgXG4gICAgICBpbXBvcnQgb3MgZnJvbSBcIm9zXCI7XG4gICAgICBleHBvcnQgZnVuY3Rpb24gZ2V0UGxhdGZvcm0oKSB7XG4gICAgICAgIHJldHVybiBvcy5wbGF0Zm9ybSgpO1xuICAgICAgfVxuICAgIGBcbiAgICApO1xuICAgIHdyaXRlRmlsZVN5bmMoXG4gICAgICBqb2luKGNqc0RpciwgJ2luZGV4LmNqcycpLFxuICAgICAgYFxuICAgICAgbW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgICAgIGdldFBsYXRmb3JtKCkge1xuICAgICAgICAgIHJldHVybiBcImNqc1wiO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIGBcbiAgICApO1xuICAgIHdyaXRlRmlsZVN5bmMoXG4gICAgICBqb2luKG5vZGVNb2R1bGVzRGlyLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIG5hbWU6ICdkdWFsLWVudHJ5LXBhY2thZ2UnLFxuICAgICAgICBtYWluOiAnY2pzL2luZGV4LmNqcycsXG4gICAgICAgIG1vZHVsZTogJ2VzbS9pbmRleC5qcycsXG4gICAgICB9KVxuICAgICk7XG5cbiAgICBjb25zdCB0ZXN0Q29kZSA9IGBcbiAgICAgIGltcG9ydCB7IGdldFBsYXRmb3JtIH0gZnJvbSBcImR1YWwtZW50cnktcGFja2FnZVwiO1xuICAgICAgZXhwb3J0IGZ1bmN0aW9uIHdvcmtmbG93KCkge1xuICAgICAgICByZXR1cm4gZ2V0UGxhdGZvcm0oKTtcbiAgICAgIH1cbiAgICBgO1xuICAgIGNvbnN0IGVudHJ5RmlsZSA9IGpvaW4odGVtcERpciwgJ3dvcmtmbG93LnRzJyk7XG4gICAgd3JpdGVGaWxlU3luYyhlbnRyeUZpbGUsIHRlc3RDb2RlKTtcbiAgICBjb25zdCByZWxhdGl2ZUVudHJ5ID0gcmVsYXRpdmUocHJvY2Vzcy5jd2QoKSwgZW50cnlGaWxlKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBlc2J1aWxkLmJ1aWxkKHtcbiAgICAgICAgZW50cnlQb2ludHM6IFtlbnRyeUZpbGVdLFxuICAgICAgICBidW5kbGU6IHRydWUsXG4gICAgICAgIHdyaXRlOiBmYWxzZSxcbiAgICAgICAgcGxhdGZvcm06ICduZXV0cmFsJyxcbiAgICAgICAgZm9ybWF0OiAnY2pzJyxcbiAgICAgICAgbWFpbkZpZWxkczogWydtb2R1bGUnLCAnbWFpbiddLFxuICAgICAgICBsb2dMZXZlbDogJ3NpbGVudCcsXG4gICAgICAgIHBsdWdpbnM6IFtjcmVhdGVOb2RlTW9kdWxlRXJyb3JQbHVnaW4oKV0sXG4gICAgICB9KTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgYnVpbGQgdG8gZmFpbCcpO1xuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGlmIChlcnJvciAmJiB0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmICdlcnJvcnMnIGluIGVycm9yKSB7XG4gICAgICAgIGNvbnN0IGZhaWx1cmUgPSBlcnJvciBhcyBlc2J1aWxkLkJ1aWxkRmFpbHVyZTtcbiAgICAgICAgZXhwZWN0KGZhaWx1cmUuZXJyb3JzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgICAgIGNvbnN0IHZpb2xhdGlvbiA9IGZhaWx1cmUuZXJyb3JzWzBdO1xuICAgICAgICBleHBlY3QodmlvbGF0aW9uLnRleHQpLnRvQ29udGFpbignXCJkdWFsLWVudHJ5LXBhY2thZ2VcIicpO1xuICAgICAgICBleHBlY3QodmlvbGF0aW9uLnRleHQpLnRvQ29udGFpbignZGVwZW5kcyBvbiBOb2RlLmpzIG1vZHVsZXMnKTtcbiAgICAgICAgZXhwZWN0KHZpb2xhdGlvbi5sb2NhdGlvbikudG9NYXRjaE9iamVjdCh7XG4gICAgICAgICAgZmlsZTogcmVsYXRpdmVFbnRyeSxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgcm1TeW5jKHRlbXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICB9XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZmluZCB1c2FnZSBvZiBuYW1lc3BhY2UgaW1wb3J0cycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB0ZXN0Q29kZSA9IGBcbiAgICAgIGltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuICAgICAgZXhwb3J0IGZ1bmN0aW9uIHdvcmtmbG93KCkge1xuICAgICAgICByZXR1cm4gZnMucmVhZEZpbGUoXCJ0ZXN0LnR4dFwiKTtcbiAgICAgIH1cbiAgICBgO1xuXG4gICAgY29uc3QgeyBmYWlsdXJlLCByZWxhdGl2ZUVudHJ5IH0gPVxuICAgICAgYXdhaXQgYnVpbGRXb3JrZmxvd1dpdGhWaW9sYXRpb24odGVzdENvZGUpO1xuXG4gICAgZXhwZWN0KGZhaWx1cmUuZXJyb3JzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgY29uc3QgdmlvbGF0aW9uID0gZmFpbHVyZS5lcnJvcnNbMF07XG4gICAgZXhwZWN0KHZpb2xhdGlvbi50ZXh0KS50b0NvbnRhaW4oJ1wiZnNcIiB3aGljaCBpcyBhIE5vZGUuanMgbW9kdWxlJyk7XG4gICAgZXhwZWN0KHZpb2xhdGlvbi5sb2NhdGlvbikudG9NYXRjaE9iamVjdCh7XG4gICAgICBmaWxlOiByZWxhdGl2ZUVudHJ5LFxuICAgIH0pO1xuICAgIGV4cGVjdCh2aW9sYXRpb24ubG9jYXRpb24/LmxpbmVUZXh0KS50b0NvbnRhaW4oJ2ZzLnJlYWRGaWxlJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZmluZCB1c2FnZSBvZiBkZWZhdWx0IGltcG9ydHMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdGVzdENvZGUgPSBgXG4gICAgICBpbXBvcnQgZnMgZnJvbSBcImZzXCI7XG4gICAgICBleHBvcnQgZnVuY3Rpb24gd29ya2Zsb3coKSB7XG4gICAgICAgIHJldHVybiBmcy5yZWFkRmlsZShcInRlc3QudHh0XCIpO1xuICAgICAgfVxuICAgIGA7XG5cbiAgICBjb25zdCB7IGZhaWx1cmUsIHJlbGF0aXZlRW50cnkgfSA9XG4gICAgICBhd2FpdCBidWlsZFdvcmtmbG93V2l0aFZpb2xhdGlvbih0ZXN0Q29kZSk7XG5cbiAgICBleHBlY3QoZmFpbHVyZS5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICBjb25zdCB2aW9sYXRpb24gPSBmYWlsdXJlLmVycm9yc1swXTtcbiAgICBleHBlY3QodmlvbGF0aW9uLnRleHQpLnRvQ29udGFpbignXCJmc1wiIHdoaWNoIGlzIGEgTm9kZS5qcyBtb2R1bGUnKTtcbiAgICBleHBlY3QodmlvbGF0aW9uLmxvY2F0aW9uKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIGZpbGU6IHJlbGF0aXZlRW50cnksXG4gICAgfSk7XG4gICAgZXhwZWN0KHZpb2xhdGlvbi5sb2NhdGlvbj8ubGluZVRleHQpLnRvQ29udGFpbignZnMucmVhZEZpbGUnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBmaW5kIHVzYWdlIG9mIGFsaWFzZWQgaW1wb3J0cycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB0ZXN0Q29kZSA9IGBcbiAgICAgIGltcG9ydCB7IHJlYWRGaWxlIGFzIHJlYWQgfSBmcm9tIFwiZnNcIjtcbiAgICAgIGV4cG9ydCBmdW5jdGlvbiB3b3JrZmxvdygpIHtcbiAgICAgICAgcmV0dXJuIHJlYWQoXCJ0ZXN0LnR4dFwiKTtcbiAgICAgIH1cbiAgICBgO1xuXG4gICAgY29uc3QgeyBmYWlsdXJlLCByZWxhdGl2ZUVudHJ5IH0gPVxuICAgICAgYXdhaXQgYnVpbGRXb3JrZmxvd1dpdGhWaW9sYXRpb24odGVzdENvZGUpO1xuXG4gICAgZXhwZWN0KGZhaWx1cmUuZXJyb3JzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgY29uc3QgdmlvbGF0aW9uID0gZmFpbHVyZS5lcnJvcnNbMF07XG4gICAgZXhwZWN0KHZpb2xhdGlvbi50ZXh0KS50b0NvbnRhaW4oJ1wiZnNcIiB3aGljaCBpcyBhIE5vZGUuanMgbW9kdWxlJyk7XG4gICAgZXhwZWN0KHZpb2xhdGlvbi5sb2NhdGlvbikudG9NYXRjaE9iamVjdCh7XG4gICAgICBmaWxlOiByZWxhdGl2ZUVudHJ5LFxuICAgIH0pO1xuICAgIC8vIFNob3VsZCBwb2ludCB0byB0aGUgYWxpYXNlZCBpZGVudGlmaWVyIFwicmVhZFwiLCBub3QgXCJyZWFkRmlsZVwiXG4gICAgZXhwZWN0KHZpb2xhdGlvbi5sb2NhdGlvbj8ubGluZVRleHQpLnRvQ29udGFpbigncmVhZCgnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBub3QgZXJyb3Igd2hlbiBpbXBvcnQgaXMgdW51c2VkICh0cmVlLXNoYWtlbiknLCBhc3luYyAoKSA9PiB7XG4gICAgLy8gTm90ZTogZXNidWlsZCB0cmVlLXNoYWtlcyB1bnVzZWQgaW1wb3J0cywgc28gdGhleSBuZXZlciB0cmlnZ2VyIHJlc29sdXRpb24uXG4gICAgLy8gVGhpcyBpcyBleHBlY3RlZCBiZWhhdmlvciAtIGlmIHRoZSBpbXBvcnQgaXNuJ3QgdXNlZCwgdGhlIG1vZHVsZSB3b24ndCBiZSBidW5kbGVkLlxuICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgaW1wb3J0IHsgcmVhZEZpbGUgfSBmcm9tIFwiZnNcIjtcbiAgICAgIGV4cG9ydCBmdW5jdGlvbiB3b3JrZmxvdygpIHtcbiAgICAgICAgcmV0dXJuIFwibm8gZnMgdXNhZ2VcIjtcbiAgICAgIH1cbiAgICBgO1xuXG4gICAgY29uc3QgdGVtcERpciA9IG1rZHRlbXBTeW5jKGpvaW4ocmVhbFRtcGRpciwgJ25vZGUtbW9kdWxlLXBsdWdpbi10ZXN0LScpKTtcbiAgICBjb25zdCBlbnRyeUZpbGUgPSBqb2luKHRlbXBEaXIsICd3b3JrZmxvdy50cycpO1xuICAgIHdyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCB0ZXN0Q29kZSk7XG5cbiAgICB0cnkge1xuICAgICAgLy8gQnVpbGQgc2hvdWxkIHN1Y2NlZWQgYmVjYXVzZSB1bnVzZWQgaW1wb3J0cyBhcmUgdHJlZS1zaGFrZW5cbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGVzYnVpbGQuYnVpbGQoe1xuICAgICAgICBlbnRyeVBvaW50czogW2VudHJ5RmlsZV0sXG4gICAgICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGU6IGZhbHNlLFxuICAgICAgICBwbGF0Zm9ybTogJ25ldXRyYWwnLFxuICAgICAgICBsb2dMZXZlbDogJ3NpbGVudCcsXG4gICAgICAgIHBsdWdpbnM6IFtjcmVhdGVOb2RlTW9kdWxlRXJyb3JQbHVnaW4oKV0sXG4gICAgICB9KTtcbiAgICAgIGV4cGVjdChyZXN1bHQuZXJyb3JzKS50b0hhdmVMZW5ndGgoMCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcblxuICBpdCgnc2hvdWxkIG5vdCBwb2ludCB0byBKU0RvYyBjb21tZW50cyB3aGVuIGZpbmRpbmcgdXNhZ2UnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdGVzdENvZGUgPSBgXG4gICAgICBpbXBvcnQgeyBXcml0YWJsZSB9IGZyb20gXCJzdHJlYW1cIjtcbiAgICAgIC8qKlxuICAgICAgICogQ29udmVydCBhIFdlYiBXcml0YWJsZVN0cmVhbTxzdHJpbmc+IGludG8gYSBOb2RlLmpzIFdyaXRhYmxlIHN0cmVhbVxuICAgICAgICovXG4gICAgICBleHBvcnQgZnVuY3Rpb24gd29ya2Zsb3coKSB7XG4gICAgICAgIHJldHVybiBuZXcgV3JpdGFibGUoKTtcbiAgICAgIH1cbiAgICBgO1xuXG4gICAgY29uc3QgeyBmYWlsdXJlIH0gPSBhd2FpdCBidWlsZFdvcmtmbG93V2l0aFZpb2xhdGlvbih0ZXN0Q29kZSk7XG5cbiAgICBleHBlY3QoZmFpbHVyZS5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICBjb25zdCB2aW9sYXRpb24gPSBmYWlsdXJlLmVycm9yc1swXTtcbiAgICBleHBlY3QodmlvbGF0aW9uLnRleHQpLnRvQ29udGFpbignXCJzdHJlYW1cIiB3aGljaCBpcyBhIE5vZGUuanMgbW9kdWxlJyk7XG4gICAgLy8gU2hvdWxkIHBvaW50IHRvIHRoZSBhY3R1YWwgY29kZSB1c2FnZSwgbm90IHRoZSBKU0RvYyBjb21tZW50XG4gICAgZXhwZWN0KHZpb2xhdGlvbi5sb2NhdGlvbj8ubGluZVRleHQpLnRvQ29udGFpbignbmV3IFdyaXRhYmxlKCknKTtcbiAgICBleHBlY3QodmlvbGF0aW9uLmxvY2F0aW9uPy5saW5lVGV4dCkubm90LnRvQ29udGFpbignKicpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIG5vdCBwb2ludCB0byBzaW5nbGUtbGluZSBibG9jayBjb21tZW50cyB3aGVuIGZpbmRpbmcgdXNhZ2UnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdGVzdENvZGUgPSBgXG4gICAgICBpbXBvcnQgeyBXcml0YWJsZSB9IGZyb20gXCJzdHJlYW1cIjtcbiAgICAgIC8qIFdyaXRhYmxlIGlzIHVzZWQgYmVsb3cgKi9cbiAgICAgIGV4cG9ydCBmdW5jdGlvbiB3b3JrZmxvdygpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBXcml0YWJsZSgpO1xuICAgICAgfVxuICAgIGA7XG5cbiAgICBjb25zdCB7IGZhaWx1cmUgfSA9IGF3YWl0IGJ1aWxkV29ya2Zsb3dXaXRoVmlvbGF0aW9uKHRlc3RDb2RlKTtcblxuICAgIGV4cGVjdChmYWlsdXJlLmVycm9ycykudG9IYXZlTGVuZ3RoKDEpO1xuICAgIGNvbnN0IHZpb2xhdGlvbiA9IGZhaWx1cmUuZXJyb3JzWzBdO1xuICAgIC8vIFNob3VsZCBwb2ludCB0byB0aGUgYWN0dWFsIGNvZGUgdXNhZ2UsIG5vdCB0aGUgY29tbWVudFxuICAgIGV4cGVjdCh2aW9sYXRpb24ubG9jYXRpb24/LmxpbmVUZXh0KS50b0NvbnRhaW4oJ25ldyBXcml0YWJsZSgpJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbm90IHRyZWF0IGNvbW1lbnQgZGVsaW1pdGVycyBpbnNpZGUgc3RyaW5ncyBhcyBjb21tZW50cycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB0ZXN0Q29kZSA9IGBcbiAgICAgIGltcG9ydCB7IFdyaXRhYmxlIH0gZnJvbSBcInN0cmVhbVwiO1xuICAgICAgY29uc3QgcGF0dGVybiA9IFwiLyogV3JpdGFibGUgKi9cIjtcbiAgICAgIGV4cG9ydCBmdW5jdGlvbiB3b3JrZmxvdygpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBXcml0YWJsZSgpO1xuICAgICAgfVxuICAgIGA7XG5cbiAgICBjb25zdCB7IGZhaWx1cmUgfSA9IGF3YWl0IGJ1aWxkV29ya2Zsb3dXaXRoVmlvbGF0aW9uKHRlc3RDb2RlKTtcblxuICAgIGV4cGVjdChmYWlsdXJlLmVycm9ycykudG9IYXZlTGVuZ3RoKDEpO1xuICAgIGNvbnN0IHZpb2xhdGlvbiA9IGZhaWx1cmUuZXJyb3JzWzBdO1xuICAgIGV4cGVjdCh2aW9sYXRpb24udGV4dCkudG9Db250YWluKCdcInN0cmVhbVwiIHdoaWNoIGlzIGEgTm9kZS5qcyBtb2R1bGUnKTtcbiAgICAvLyBTaG91bGQgcG9pbnQgdG8gYWN0dWFsIGNvZGUsIG5vdCB0aGUgc3RyaW5nIGNvbnRhaW5pbmcgXCJXcml0YWJsZVwiXG4gICAgZXhwZWN0KHZpb2xhdGlvbi5sb2NhdGlvbj8ubGluZVRleHQpLnRvQ29udGFpbignbmV3IFdyaXRhYmxlKCknKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBlcnJvciBvbiBCdW4gbW9kdWxlIGltcG9ydHMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdGVzdENvZGUgPSBgXG4gICAgICBpbXBvcnQgeyBzZXJ2ZSB9IGZyb20gXCJidW5cIjtcbiAgICAgIGV4cG9ydCBmdW5jdGlvbiB3b3JrZmxvdygpIHtcbiAgICAgICAgcmV0dXJuIHNlcnZlKHsgcG9ydDogMzAwMCB9KTtcbiAgICAgIH1cbiAgICBgO1xuXG4gICAgY29uc3QgeyBmYWlsdXJlLCByZWxhdGl2ZUVudHJ5IH0gPVxuICAgICAgYXdhaXQgYnVpbGRXb3JrZmxvd1dpdGhWaW9sYXRpb24odGVzdENvZGUpO1xuXG4gICAgZXhwZWN0KGZhaWx1cmUuZXJyb3JzKS50b0hhdmVMZW5ndGgoMSk7XG4gICAgY29uc3QgdmlvbGF0aW9uID0gZmFpbHVyZS5lcnJvcnNbMF07XG4gICAgZXhwZWN0KHZpb2xhdGlvbi50ZXh0KS50b0NvbnRhaW4oJ1wiYnVuXCIgd2hpY2ggaXMgYSBCdW4gbW9kdWxlJyk7XG4gICAgZXhwZWN0KHZpb2xhdGlvbi50ZXh0KS50b0NvbnRhaW4oJ0J1biBtb2R1bGVzIGFyZSBub3QgYXZhaWxhYmxlJyk7XG4gICAgZXhwZWN0KHZpb2xhdGlvbi5sb2NhdGlvbikudG9NYXRjaE9iamVjdCh7XG4gICAgICBmaWxlOiByZWxhdGl2ZUVudHJ5LFxuICAgIH0pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGVycm9yIG9uIEJ1biBzdWJwYXRoIGltcG9ydHMnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdGVzdENvZGUgPSBgXG4gICAgICBpbXBvcnQgeyBEYXRhYmFzZSB9IGZyb20gXCJidW46c3FsaXRlXCI7XG4gICAgICBleHBvcnQgZnVuY3Rpb24gd29ya2Zsb3coKSB7XG4gICAgICAgIHJldHVybiBuZXcgRGF0YWJhc2UoXCJ0ZXN0LmRiXCIpO1xuICAgICAgfVxuICAgIGA7XG5cbiAgICBjb25zdCB7IGZhaWx1cmUsIHJlbGF0aXZlRW50cnkgfSA9XG4gICAgICBhd2FpdCBidWlsZFdvcmtmbG93V2l0aFZpb2xhdGlvbih0ZXN0Q29kZSk7XG5cbiAgICBleHBlY3QoZmFpbHVyZS5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgxKTtcbiAgICBjb25zdCB2aW9sYXRpb24gPSBmYWlsdXJlLmVycm9yc1swXTtcbiAgICBleHBlY3QodmlvbGF0aW9uLnRleHQpLnRvQ29udGFpbignXCJidW46c3FsaXRlXCIgd2hpY2ggaXMgYSBCdW4gbW9kdWxlJyk7XG4gICAgZXhwZWN0KHZpb2xhdGlvbi50ZXh0KS50b0NvbnRhaW4oJ0J1biBtb2R1bGVzIGFyZSBub3QgYXZhaWxhYmxlJyk7XG4gICAgZXhwZWN0KHZpb2xhdGlvbi5sb2NhdGlvbikudG9NYXRjaE9iamVjdCh7XG4gICAgICBmaWxlOiByZWxhdGl2ZUVudHJ5LFxuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnd29ya2Zsb3ctbm9kZS1tb2R1bGUtZXJyb3IgaGVscGVyIGZ1bmN0aW9ucycsICgpID0+IHtcbiAgZGVzY3JpYmUoJ2dldFBhY2thZ2VOYW1lJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZ2V0IHRoZSBwYWNrYWdlIG5hbWUgZnJvbSBzaW1wbGUgbm9kZV9tb2R1bGVzIHBhdGgnLCAoKSA9PiB7XG4gICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IGdldFBhY2thZ2VOYW1lKFxuICAgICAgICAnL1VzZXJzL2FkcmlhbmxhbS9HaXRIdWIvd29ya2Zsb3cvbm9kZV9tb2R1bGVzL25vZGUtZmV0Y2gvc3JjL2luZGV4LmpzJ1xuICAgICAgKTtcbiAgICAgIGV4cGVjdChwYWNrYWdlTmFtZSkudG9CZSgnbm9kZS1mZXRjaCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBnZXQgdGhlIHBhY2thZ2UgbmFtZSBmcm9tIHBucG0gbmVzdGVkIHBhdGgnLCAoKSA9PiB7XG4gICAgICBjb25zdCBwYWNrYWdlTmFtZSA9IGdldFBhY2thZ2VOYW1lKFxuICAgICAgICAnL1VzZXJzL2FkcmlhbmxhbS9HaXRIdWIvd29ya2Zsb3cvbm9kZV9tb2R1bGVzLy5wbnBtL25vZGUtZmV0Y2hAMy4zLjIvbm9kZV9tb2R1bGVzL25vZGUtZmV0Y2gvc3JjL2luZGV4LmpzJ1xuICAgICAgKTtcbiAgICAgIGV4cGVjdChwYWNrYWdlTmFtZSkudG9CZSgnbm9kZS1mZXRjaCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBnZXQgc2NvcGVkIHBhY2thZ2UgbmFtZScsICgpID0+IHtcbiAgICAgIGNvbnN0IHBhY2thZ2VOYW1lID0gZ2V0UGFja2FnZU5hbWUoXG4gICAgICAgICcvcHJvamVjdC9ub2RlX21vZHVsZXMvQHN1cGFiYXNlL3N1cGFiYXNlLWpzL2Rpc3QvaW5kZXguanMnXG4gICAgICApO1xuICAgICAgZXhwZWN0KHBhY2thZ2VOYW1lKS50b0JlKCdAc3VwYWJhc2Uvc3VwYWJhc2UtanMnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIG51bGwgZm9yIHBhdGhzIHdpdGhvdXQgbm9kZV9tb2R1bGVzJywgKCkgPT4ge1xuICAgICAgY29uc3QgcGFja2FnZU5hbWUgPSBnZXRQYWNrYWdlTmFtZShcbiAgICAgICAgJy9Vc2Vycy9hZHJpYW5sYW0vR2l0SHViL3dvcmtmbG93L3NyYy9pbmRleC5qcydcbiAgICAgICk7XG4gICAgICBleHBlY3QocGFja2FnZU5hbWUpLnRvQmVOdWxsKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdlc2NhcGVSZWdFeHAnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBlc2NhcGUgcmVnZXggc3BlY2lhbCBjaGFyYWN0ZXJzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGVzY2FwZVJlZ0V4cCgndGVzdC5maWxlJykpLnRvQmUoJ3Rlc3RcXFxcLmZpbGUnKTtcbiAgICAgIGV4cGVjdChlc2NhcGVSZWdFeHAoJ3Rlc3QqZmlsZScpKS50b0JlKCd0ZXN0XFxcXCpmaWxlJyk7XG4gICAgICBleHBlY3QoZXNjYXBlUmVnRXhwKCd0ZXN0K2ZpbGUnKSkudG9CZSgndGVzdFxcXFwrZmlsZScpO1xuICAgICAgZXhwZWN0KGVzY2FwZVJlZ0V4cCgndGVzdD9maWxlJykpLnRvQmUoJ3Rlc3RcXFxcP2ZpbGUnKTtcbiAgICAgIGV4cGVjdChlc2NhcGVSZWdFeHAoJ3Rlc3ReZmlsZScpKS50b0JlKCd0ZXN0XFxcXF5maWxlJyk7XG4gICAgICBleHBlY3QoZXNjYXBlUmVnRXhwKCd0ZXN0JGZpbGUnKSkudG9CZSgndGVzdFxcXFwkZmlsZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBlc2NhcGUgYnJhY2tldHMgYW5kIGJyYWNlcycsICgpID0+IHtcbiAgICAgIGV4cGVjdChlc2NhcGVSZWdFeHAoJ3Rlc3R7ZmlsZX0nKSkudG9CZSgndGVzdFxcXFx7ZmlsZVxcXFx9Jyk7XG4gICAgICBleHBlY3QoZXNjYXBlUmVnRXhwKCd0ZXN0W2ZpbGVdJykpLnRvQmUoJ3Rlc3RcXFxcW2ZpbGVcXFxcXScpO1xuICAgICAgZXhwZWN0KGVzY2FwZVJlZ0V4cCgndGVzdChmaWxlKScpKS50b0JlKCd0ZXN0XFxcXChmaWxlXFxcXCknKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZXNjYXBlIHBpcGVzIGFuZCBiYWNrc2xhc2hlcycsICgpID0+IHtcbiAgICAgIGV4cGVjdChlc2NhcGVSZWdFeHAoJ3Rlc3R8ZmlsZScpKS50b0JlKCd0ZXN0XFxcXHxmaWxlJyk7XG4gICAgICBleHBlY3QoZXNjYXBlUmVnRXhwKCd0ZXN0XFxcXGZpbGUnKSkudG9CZSgndGVzdFxcXFxcXFxcZmlsZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgc3RyaW5ncyB3aXRob3V0IHNwZWNpYWwgY2hhcmFjdGVycycsICgpID0+IHtcbiAgICAgIGV4cGVjdChlc2NhcGVSZWdFeHAoJ3Rlc3RmaWxlJykpLnRvQmUoJ3Rlc3RmaWxlJyk7XG4gICAgICBleHBlY3QoZXNjYXBlUmVnRXhwKCd0ZXN0LWZpbGUnKSkudG9CZSgndGVzdC1maWxlJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBwYWNrYWdlIG5hbWVzIHdpdGggc3BlY2lhbCBjaGFyYWN0ZXJzJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGVzY2FwZVJlZ0V4cCgnQHN1cGFiYXNlL3N1cGFiYXNlLWpzJykpLnRvQmUoXG4gICAgICAgICdAc3VwYWJhc2Uvc3VwYWJhc2UtanMnXG4gICAgICApO1xuICAgICAgZXhwZWN0KGVzY2FwZVJlZ0V4cCgncGFja2FnZS5uYW1lJykpLnRvQmUoJ3BhY2thZ2VcXFxcLm5hbWUnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldEltcG9ydGVkSWRlbnRpZmllcicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGV4dHJhY3QgbmFtZXNwYWNlIGltcG9ydCBpZGVudGlmaWVyJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGdldEltcG9ydGVkSWRlbnRpZmllcignKiBhcyBmcycpKS50b0JlKCdmcycpO1xuICAgICAgZXhwZWN0KGdldEltcG9ydGVkSWRlbnRpZmllcignKiAgIGFzICAgcGF0aCcpKS50b0JlKCdwYXRoJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGV4dHJhY3QgZmlyc3QgbmFtZWQgaW1wb3J0JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGdldEltcG9ydGVkSWRlbnRpZmllcigneyByZWFkRmlsZSB9JykpLnRvQmUoJ3JlYWRGaWxlJyk7XG4gICAgICBleHBlY3QoZ2V0SW1wb3J0ZWRJZGVudGlmaWVyKCd7IHJlYWRGaWxlLCB3cml0ZUZpbGUgfScpKS50b0JlKCdyZWFkRmlsZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBleHRyYWN0IGFsaWFzZWQgbmFtZWQgaW1wb3J0JywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGdldEltcG9ydGVkSWRlbnRpZmllcigneyByZWFkRmlsZSBhcyByZWFkIH0nKSkudG9CZSgncmVhZCcpO1xuICAgICAgZXhwZWN0KGdldEltcG9ydGVkSWRlbnRpZmllcigneyByZWFkRmlsZSBhcyByZWFkLCB3cml0ZUZpbGUgfScpKS50b0JlKFxuICAgICAgICAncmVhZCdcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGV4dHJhY3QgZGVmYXVsdCBpbXBvcnQnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoZ2V0SW1wb3J0ZWRJZGVudGlmaWVyKCdmcycpKS50b0JlKCdmcycpO1xuICAgICAgZXhwZWN0KGdldEltcG9ydGVkSWRlbnRpZmllcignbXlEZWZhdWx0JykpLnRvQmUoJ215RGVmYXVsdCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBleHRyYWN0IGZpcnN0IGlkZW50aWZpZXIgZnJvbSBtaXhlZCBpbXBvcnRzJywgKCkgPT4ge1xuICAgICAgLy8gVGhlIGZ1bmN0aW9uIGNoZWNrcyBmb3IgYnJhY2VzIGZpcnN0LCBzbyBpdCBleHRyYWN0cyBmcm9tIG5hbWVkIGltcG9ydHNcbiAgICAgIGV4cGVjdChnZXRJbXBvcnRlZElkZW50aWZpZXIoJ2ZzLCB7IHJlYWRGaWxlIH0nKSkudG9CZSgncmVhZEZpbGUnKTtcbiAgICAgIGV4cGVjdChnZXRJbXBvcnRlZElkZW50aWZpZXIoJ2RlZmF1bHRFeHBvcnQsIHsgbmFtZWQgfScpKS50b0JlKCduYW1lZCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgd2hpdGVzcGFjZSB2YXJpYXRpb25zJywgKCkgPT4ge1xuICAgICAgZXhwZWN0KGdldEltcG9ydGVkSWRlbnRpZmllcignICB7IHJlYWRGaWxlIH0gICcpKS50b0JlKCdyZWFkRmlsZScpO1xuICAgICAgZXhwZWN0KGdldEltcG9ydGVkSWRlbnRpZmllcigne3JlYWRGaWxlfScpKS50b0JlKCdyZWFkRmlsZScpO1xuICAgICAgZXhwZWN0KGdldEltcG9ydGVkSWRlbnRpZmllcigneyByZWFkRmlsZSAsIHdyaXRlRmlsZSB9JykpLnRvQmUoXG4gICAgICAgICdyZWFkRmlsZSdcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBjb21wbGV4IG5hbWVkIGltcG9ydHMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoZ2V0SW1wb3J0ZWRJZGVudGlmaWVyKCd0eXBlIHsgUmVhZFN0cmVhbSB9JykpLnRvQmUoJ1JlYWRTdHJlYW0nKTtcbiAgICAgIGV4cGVjdChnZXRJbXBvcnRlZElkZW50aWZpZXIoJ3sgZGVmYXVsdCBhcyBmcyB9JykpLnRvQmUoJ2ZzJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiB1bmRlZmluZWQgZm9yIGVkZ2UgY2FzZXMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoZ2V0SW1wb3J0ZWRJZGVudGlmaWVyKCcqJykpLnRvQmVVbmRlZmluZWQoKTtcbiAgICAgIGV4cGVjdChnZXRJbXBvcnRlZElkZW50aWZpZXIoJycpKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgICAvLyBFbXB0eSBicmFjZXMgc2hvdWxkIHJldHVybiB1bmRlZmluZWQgc2luY2UgdGhlcmUncyBubyB2YWxpZCBpZGVudGlmaWVyXG4gICAgICBleHBlY3QoZ2V0SW1wb3J0ZWRJZGVudGlmaWVyKCd7fScpKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRWaW9sYXRpb25Mb2NhdGlvbicsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGZpbmQgdmlvbGF0aW9uIGxvY2F0aW9uIGZvciBwYWNrYWdlIG5hbWUgdGhhdCBhcHBlYXJzIGluIGZpbGUnLCBhc3luYyAoKSA9PiB7XG4gICAgICAvLyBVc2UgdGhlIGFjdHVhbCBtb25vcmVwbyByb290IGFzIGN3ZFxuICAgICAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgICAgIGNvbnN0IHRlc3RGaWxlID0gJ3NyYy9ub2RlLW1vZHVsZS1lc2J1aWxkLXBsdWdpbi50ZXN0LnRzJztcblxuICAgICAgLy8gVGVzdCB3aXRoICd2aXRlc3QnIHdoaWNoIGlzIGFjdHVhbGx5IGltcG9ydGVkIGluIHRoaXMgZmlsZVxuICAgICAgY29uc3QgbG9jYXRpb24gPSBhd2FpdCBnZXRWaW9sYXRpb25Mb2NhdGlvbihjd2QsIHRlc3RGaWxlLCAndml0ZXN0Jyk7XG5cbiAgICAgIC8vIFRoZSBmdW5jdGlvbiBzaG91bGQgZmluZCAndml0ZXN0JyBpbiB0aGUgaW1wb3J0IHN0YXRlbWVudFxuICAgICAgZXhwZWN0KGxvY2F0aW9uKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGxvY2F0aW9uPy5maWxlKS50b0JlKHRlc3RGaWxlKTtcblxuICAgICAgY29uc3QgY29udGVudHMgPSByZWFkRmlsZVN5bmMocmVzb2x2ZShjd2QsIHRlc3RGaWxlKSwgJ3V0ZjgnKTtcbiAgICAgIGNvbnN0IGxpbmVzID0gY29udGVudHMuc3BsaXQoL1xccj9cXG4vKTtcbiAgICAgIGNvbnN0IGV4cGVjdGVkTGluZSA9XG4gICAgICAgIGxpbmVzLmZpbmRJbmRleCgobGluZSkgPT4gbGluZS5pbmNsdWRlcyhgZGVzY3JpYmUoYCkpICsgMTtcblxuICAgICAgZXhwZWN0KGxvY2F0aW9uPy5saW5lKS50b0JlKGV4cGVjdGVkTGluZSk7XG4gICAgICBleHBlY3QobG9jYXRpb24/LmNvbHVtbikudG9CZSgwKTtcbiAgICAgIGV4cGVjdChsb2NhdGlvbj8ubGluZVRleHQpLnRvQ29udGFpbihgZGVzY3JpYmUoYCk7XG4gICAgICBleHBlY3QobG9jYXRpb24/Lmxlbmd0aCkudG9CZSg4KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIHVuZGVmaW5lZCBmb3Igbm9uLWV4aXN0ZW50IGZpbGVzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgICAgIGNvbnN0IGxvY2F0aW9uID0gYXdhaXQgZ2V0VmlvbGF0aW9uTG9jYXRpb24oXG4gICAgICAgIGN3ZCxcbiAgICAgICAgJ25vbi1leGlzdGVudC1maWxlLnRzJyxcbiAgICAgICAgJ3NvbWUtcGFja2FnZSdcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChsb2NhdGlvbikudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdW5kZWZpbmVkIGZvciBmaWxlcyB3aXRob3V0IHRoZSBwYWNrYWdlIGltcG9ydCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKCk7XG4gICAgICBjb25zdCB0ZXN0RmlsZSA9ICdzcmMvbm9kZS1tb2R1bGUtZXNidWlsZC1wbHVnaW4udGVzdC50cyc7XG5cbiAgICAgIC8vIFRoaXMgcGFja2FnZSBpcyBub3QgaW1wb3J0ZWQgaW4gdGhlIHRlc3QgZmlsZVxuICAgICAgY29uc3QgbG9jYXRpb24gPSBhd2FpdCBnZXRWaW9sYXRpb25Mb2NhdGlvbihcbiAgICAgICAgY3dkLFxuICAgICAgICB0ZXN0RmlsZSxcbiAgICAgICAgJ25vbi1leGlzdGVudC1wYWNrYWdlJ1xuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGxvY2F0aW9uKS50b0JlVW5kZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiB1bmRlZmluZWQgd2hlbiBpbXBvcnQgaXMgdW51c2VkIGV2ZW4gaWYgaXQgY2FuIGJlIHBhcnNlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKCk7XG4gICAgICBjb25zdCB0ZXN0RmlsZSA9ICdzcmMvbm9kZS1tb2R1bGUtZXNidWlsZC1wbHVnaW4udGVzdC50cyc7XG5cbiAgICAgIC8vIFRlc3Qgd2l0aCAnbm9kZTpodHRwJyB3aGljaCBpcyBpbXBvcnRlZCBpbiB0aGlzIGZpbGUgYnV0IG5ldmVyIHVzZWRcbiAgICAgIGNvbnN0IGxvY2F0aW9uID0gYXdhaXQgZ2V0VmlvbGF0aW9uTG9jYXRpb24oY3dkLCB0ZXN0RmlsZSwgJ25vZGU6aHR0cCcpO1xuXG4gICAgICAvLyBTaW5jZSB0aGUgaWRlbnRpZmllciBpcyBuZXZlciByZWZlcmVuY2VkIChvbmx5IGltcG9ydGVkKSwgd2Ugc2hvdWxkXG4gICAgICAvLyBub3QgcHJvZHVjZSBhIGxvY2F0aW9uIHByZXZpZXcuXG4gICAgICBleHBlY3QobG9jYXRpb24pLnRvQmVVbmRlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -44,4 +44,4 @@ export function createPseudoPackagePlugin() {
|
|
|
44
44
|
},
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
|
-
//# sourceMappingURL=
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNldWRvLXBhY2thZ2UtZXNidWlsZC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHNldWRvLXBhY2thZ2UtZXNidWlsZC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQztJQUNyQyxhQUFhO0lBQ2IsYUFBYTtJQUNiLGdDQUFnQztJQUNoQyxnQ0FBZ0M7Q0FDakMsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSx5QkFBeUI7SUFDdkMsT0FBTztRQUNMLElBQUksRUFBRSwwQkFBMEI7UUFDaEMsS0FBSyxDQUFDLEtBQTBCO1lBQzlCLHFFQUFxRTtZQUNyRSxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsSUFBMkIsRUFBRSxFQUFFO2dCQUNoRSxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ25DLE9BQU87d0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3dCQUNmLFNBQVMsRUFBRSxnQkFBZ0I7cUJBQzVCLENBQUM7Z0JBQ0osQ0FBQztnQkFDRCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUMsQ0FBQyxDQUFDO1lBRUgsbURBQW1EO1lBQ25ELEtBQUssQ0FBQyxNQUFNLENBQ1YsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxFQUM3QyxDQUFDLElBQXdCLEVBQUUsRUFBRTtnQkFDM0IsT0FBTztvQkFDTCxRQUFRLEVBQUUsc0JBQXNCLElBQUksQ0FBQyxJQUFJLGlDQUFpQztvQkFDMUUsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FBQztZQUNKLENBQUMsQ0FDRixDQUFDO1FBQ0osQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBlc2J1aWxkIGZyb20gJ2VzYnVpbGQnO1xuXG4vKipcbiAqIFBzZXVkby1wYWNrYWdlcyBhcmUgbWFya2VyIHBhY2thZ2VzIHdpdGggbm8gYWN0dWFsIGZ1bmN0aW9uYWxpdHkgLSB0aGV5IG9ubHlcbiAqIHRocm93IGVycm9ycyB3aGVuIGltcG9ydGVkIGluIHRoZSB3cm9uZyBjb250ZXh0IChlLmcuLCBjbGllbnQtc2lkZSB2cyBzZXJ2ZXItc2lkZSkuXG4gKiBJbiB0aGUgd29ya2Zsb3cgVk0gY29udGV4dCwgd2UgZG9uJ3QgbmVlZCB0aGVpciBiZWhhdmlvciwgc28gd2UgcHJvdmlkZSBlbXB0eSBtb2R1bGVzLlxuICovXG5leHBvcnQgY29uc3QgUFNFVURPX1BBQ0tBR0VTID0gbmV3IFNldChbXG4gICdzZXJ2ZXItb25seScsXG4gICdjbGllbnQtb25seScsXG4gICduZXh0L2Rpc3QvY29tcGlsZWQvc2VydmVyLW9ubHknLFxuICAnbmV4dC9kaXN0L2NvbXBpbGVkL2NsaWVudC1vbmx5Jyxcbl0pO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gZXNidWlsZCBwbHVnaW4gdGhhdCBoYW5kbGVzIHBzZXVkby1wYWNrYWdlcyBsaWtlICdzZXJ2ZXItb25seScgYW5kICdjbGllbnQtb25seScuXG4gKlxuICogVGhlc2UgcGFja2FnZXMgbmVlZCBzcGVjaWFsIGhhbmRsaW5nIGJlY2F1c2U6XG4gKiAxLiBUaGV5IGhhdmUgZXhwb3J0cyBkZWZpbmVkIGluIHBhY2thZ2UuanNvbiB0aGF0IGVzYnVpbGQgbmVlZHMgdG8gcmVzb2x2ZVxuICogMi4gV2l0aG91dCB0aGlzIHBsdWdpbiwgZXNidWlsZCBtYXkgZmFpbCB0byByZXNvbHZlIHRoZW0gZHVyaW5nIGJ1bmRsaW5nXG4gKiAzLiBNYXJraW5nIHRoZW0gYXMgZXh0ZXJuYWwgd291bGQgZ2VuZXJhdGUgcmVxdWlyZSgpIGNhbGxzIHRoYXQgZG9uJ3Qgd29yayBpbiB0aGUgd29ya2Zsb3cgVk1cbiAqXG4gKiBUaGlzIHBsdWdpbiBpbnRlcmNlcHRzIGltcG9ydHMgb2YgdGhlc2UgcGFja2FnZXMgYW5kIHByb3ZpZGVzIGVtcHR5IG1vZHVsZXMsXG4gKiB3aGljaCBpcyBzYWZlIGJlY2F1c2UgdGhleSBhcmUgbWFya2VyIHBhY2thZ2VzIHdpdGggbm8gYWN0dWFsIGZ1bmN0aW9uYWxpdHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQc2V1ZG9QYWNrYWdlUGx1Z2luKCk6IGVzYnVpbGQuUGx1Z2luIHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiAnd29ya2Zsb3ctcHNldWRvLXBhY2thZ2VzJyxcbiAgICBzZXR1cChidWlsZDogZXNidWlsZC5QbHVnaW5CdWlsZCkge1xuICAgICAgLy8gSW50ZXJjZXB0IGltcG9ydHMgb2YgcHNldWRvIHBhY2thZ2VzIGFuZCByZWRpcmVjdCB0byBvdXIgbmFtZXNwYWNlXG4gICAgICBidWlsZC5vblJlc29sdmUoeyBmaWx0ZXI6IC8uKi8gfSwgKGFyZ3M6IGVzYnVpbGQuT25SZXNvbHZlQXJncykgPT4ge1xuICAgICAgICBpZiAoUFNFVURPX1BBQ0tBR0VTLmhhcyhhcmdzLnBhdGgpKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhdGg6IGFyZ3MucGF0aCxcbiAgICAgICAgICAgIG5hbWVzcGFjZTogJ3BzZXVkby1wYWNrYWdlJyxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFByb3ZpZGUgZW1wdHkgbW9kdWxlIGNvbnRlbnQgZm9yIHBzZXVkbyBwYWNrYWdlc1xuICAgICAgYnVpbGQub25Mb2FkKFxuICAgICAgICB7IGZpbHRlcjogLy4qLywgbmFtZXNwYWNlOiAncHNldWRvLXBhY2thZ2UnIH0sXG4gICAgICAgIChhcmdzOiBlc2J1aWxkLk9uTG9hZEFyZ3MpID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGVudHM6IGAvKiBQc2V1ZG8tcGFja2FnZTogJHthcmdzLnBhdGh9IC0gbm8tb3AgaW4gd29ya2Zsb3cgY29udGV4dCAqL2AsXG4gICAgICAgICAgICBsb2FkZXI6ICdqcycsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9LFxuICB9O1xufVxuIl19
|
|
@@ -312,4 +312,4 @@ describe('workflow bundle dynamic imports', () => {
|
|
|
312
312
|
}
|
|
313
313
|
});
|
|
314
314
|
});
|
|
315
|
-
//# sourceMappingURL=pseudo-package-esbuild-plugin.test.js.map
|
|
315
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHNldWRvLXBhY2thZ2UtZXNidWlsZC1wbHVnaW4udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wc2V1ZG8tcGFja2FnZS1lc2J1aWxkLXBsdWdpbi50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sYUFBYSxHQUNkLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVqQyxPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixlQUFlLEdBQ2hCLE1BQU0sb0NBQW9DLENBQUM7QUFFNUMsd0VBQXdFO0FBQ3hFLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBRTFDLEtBQUssVUFBVSxlQUFlLENBQzVCLE1BQWMsRUFDZCxVQUE0QixDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFFekQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsNkJBQTZCLENBQUMsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDL0MsYUFBYSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVqQyxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDakMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3hCLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLEtBQUs7UUFDWixRQUFR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QUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFscGF0aFN5bmMsXG4gIHJtU3luYyxcbiAgd3JpdGVGaWxlU3luYyxcbn0gZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyB0bXBkaXIgfSBmcm9tICdub2RlOm9zJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdub2RlOnBhdGgnO1xuXG5pbXBvcnQgKiBhcyBlc2J1aWxkIGZyb20gJ2VzYnVpbGQnO1xuaW1wb3J0IHsgZGVzY3JpYmUsIGV4cGVjdCwgaXQgfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHtcbiAgY3JlYXRlUHNldWRvUGFja2FnZVBsdWdpbixcbiAgUFNFVURPX1BBQ0tBR0VTLFxufSBmcm9tICcuL3BzZXVkby1wYWNrYWdlLWVzYnVpbGQtcGx1Z2luLmpzJztcblxuLy8gUmVzb2x2ZSBzeW1saW5rcyBpbiB0bXBkaXIgdG8gYXZvaWQgbWFjT1MgL3ZhciAtPiAvcHJpdmF0ZS92YXIgaXNzdWVzXG5jb25zdCByZWFsVG1wZGlyID0gcmVhbHBhdGhTeW5jKHRtcGRpcigpKTtcblxuYXN5bmMgZnVuY3Rpb24gYnVpbGRXaXRoUGx1Z2luKFxuICBzb3VyY2U6IHN0cmluZyxcbiAgcGx1Z2luczogZXNidWlsZC5QbHVnaW5bXSA9IFtjcmVhdGVQc2V1ZG9QYWNrYWdlUGx1Z2luKCldXG4pOiBQcm9taXNlPHsgcmVzdWx0OiBlc2J1aWxkLkJ1aWxkUmVzdWx0OyB0ZW1wRGlyOiBzdHJpbmcgfT4ge1xuICBjb25zdCB0ZW1wRGlyID0gbWtkdGVtcFN5bmMoam9pbihyZWFsVG1wZGlyLCAncHNldWRvLXBhY2thZ2UtcGx1Z2luLXRlc3QtJykpO1xuICBjb25zdCBlbnRyeUZpbGUgPSBqb2luKHRlbXBEaXIsICd3b3JrZmxvdy50cycpO1xuICB3cml0ZUZpbGVTeW5jKGVudHJ5RmlsZSwgc291cmNlKTtcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBlc2J1aWxkLmJ1aWxkKHtcbiAgICBlbnRyeVBvaW50czogW2VudHJ5RmlsZV0sXG4gICAgYnVuZGxlOiB0cnVlLFxuICAgIHdyaXRlOiBmYWxzZSxcbiAgICBwbGF0Zm9ybTogJ25ldXRyYWwnLFxuICAgIGZvcm1hdDogJ2NqcycsXG4gICAgbG9nTGV2ZWw6ICdzaWxlbnQnLFxuICAgIHBsdWdpbnMsXG4gIH0pO1xuXG4gIHJldHVybiB7IHJlc3VsdCwgdGVtcERpciB9O1xufVxuXG5kZXNjcmliZSgnY3JlYXRlUHNldWRvUGFja2FnZVBsdWdpbicsICgpID0+IHtcbiAgZGVzY3JpYmUoJ3NlcnZlci1vbmx5IHBhY2thZ2UnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXBsYWNlIHNlcnZlci1vbmx5IGltcG9ydCB3aXRoIGVtcHR5IG1vZHVsZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgICBpbXBvcnQgJ3NlcnZlci1vbmx5JztcbiAgICAgICAgZXhwb3J0IGZ1bmN0aW9uIHdvcmtmbG93KCkge1xuICAgICAgICAgIHJldHVybiBcImhlbGxvXCI7XG4gICAgICAgIH1cbiAgICAgIGA7XG5cbiAgICAgIGNvbnN0IHsgcmVzdWx0LCB0ZW1wRGlyIH0gPSBhd2FpdCBidWlsZFdpdGhQbHVnaW4odGVzdENvZGUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSByZXN1bHQub3V0cHV0RmlsZXM/LlswXS50ZXh0O1xuICAgICAgICBleHBlY3Qob3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgICAvLyBTaG91bGQgbm90IGNvbnRhaW4gcmVxdWlyZSgnc2VydmVyLW9ubHknKSBzaW5jZSBpdCdzIHJlcGxhY2VkIHdpdGggZW1wdHkgbW9kdWxlXG4gICAgICAgIC8vIChlc2J1aWxkIHRyZWUtc2hha2VzIHVudXNlZCBpbXBvcnRzLCBzbyB0aGUgbW9kdWxlIGNvbnRlbnQgbWF5IG5vdCBhcHBlYXIsXG4gICAgICAgIC8vIGJ1dCBpbXBvcnRhbnRseSBubyByZXF1aXJlKCkgY2FsbCBpcyBnZW5lcmF0ZWQpXG4gICAgICAgIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oXCJyZXF1aXJlKCdzZXJ2ZXItb25seScpXCIpO1xuICAgICAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKCdyZXF1aXJlKFwic2VydmVyLW9ubHlcIiknKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBzZXJ2ZXItb25seSBhbG9uZ3NpZGUgb3RoZXIgaW1wb3J0cycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgICBpbXBvcnQgJ3NlcnZlci1vbmx5JztcbiAgICAgICAgY29uc3QgeCA9IDQyO1xuICAgICAgICBleHBvcnQgZnVuY3Rpb24gd29ya2Zsb3coKSB7XG4gICAgICAgICAgcmV0dXJuIHg7XG4gICAgICAgIH1cbiAgICAgIGA7XG5cbiAgICAgIGNvbnN0IHsgcmVzdWx0LCB0ZW1wRGlyIH0gPSBhd2FpdCBidWlsZFdpdGhQbHVnaW4odGVzdENvZGUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSByZXN1bHQub3V0cHV0RmlsZXM/LlswXS50ZXh0O1xuICAgICAgICBleHBlY3Qob3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgICAvLyBObyByZXF1aXJlKCkgY2FsbCBzaG91bGQgYmUgZ2VuZXJhdGVkXG4gICAgICAgIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oXCJyZXF1aXJlKCdzZXJ2ZXItb25seScpXCIpO1xuICAgICAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKCdyZXF1aXJlKFwic2VydmVyLW9ubHlcIiknKTtcbiAgICAgICAgLy8gVGhlIGFjdHVhbCBjb2RlIHNob3VsZCBzdGlsbCB3b3JrXG4gICAgICAgIGV4cGVjdChvdXRwdXQpLnRvQ29udGFpbignNDInKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjbGllbnQtb25seSBwYWNrYWdlJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgcmVwbGFjZSBjbGllbnQtb25seSBpbXBvcnQgd2l0aCBlbXB0eSBtb2R1bGUnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0ZXN0Q29kZSA9IGBcbiAgICAgICAgaW1wb3J0ICdjbGllbnQtb25seSc7XG4gICAgICAgIGV4cG9ydCBjb25zdCB4ID0gMTtcbiAgICAgIGA7XG5cbiAgICAgIGNvbnN0IHsgcmVzdWx0LCB0ZW1wRGlyIH0gPSBhd2FpdCBidWlsZFdpdGhQbHVnaW4odGVzdENvZGUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSByZXN1bHQub3V0cHV0RmlsZXM/LlswXS50ZXh0O1xuICAgICAgICBleHBlY3Qob3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgICAvLyBObyByZXF1aXJlKCkgY2FsbCBzaG91bGQgYmUgZ2VuZXJhdGVkXG4gICAgICAgIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oXCJyZXF1aXJlKCdjbGllbnQtb25seScpXCIpO1xuICAgICAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKCdyZXF1aXJlKFwiY2xpZW50LW9ubHlcIiknKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdjb21waWxlZCBwc2V1ZG8tcGFja2FnZXMnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCByZXBsYWNlIG5leHQvZGlzdC9jb21waWxlZC9zZXJ2ZXItb25seSBpbXBvcnQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0ZXN0Q29kZSA9IGBcbiAgICAgICAgaW1wb3J0ICduZXh0L2Rpc3QvY29tcGlsZWQvc2VydmVyLW9ubHknO1xuICAgICAgICBleHBvcnQgY29uc3QgeCA9IDE7XG4gICAgICBgO1xuXG4gICAgICBjb25zdCB7IHJlc3VsdCwgdGVtcERpciB9ID0gYXdhaXQgYnVpbGRXaXRoUGx1Z2luKHRlc3RDb2RlKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gcmVzdWx0Lm91dHB1dEZpbGVzPy5bMF0udGV4dDtcbiAgICAgICAgZXhwZWN0KG91dHB1dCkudG9CZURlZmluZWQoKTtcbiAgICAgICAgZXhwZWN0KG91dHB1dCkubm90LnRvQ29udGFpbihcbiAgICAgICAgICBcInJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9zZXJ2ZXItb25seScpXCJcbiAgICAgICAgKTtcbiAgICAgICAgZXhwZWN0KG91dHB1dCkubm90LnRvQ29udGFpbihcbiAgICAgICAgICAncmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9zZXJ2ZXItb25seVwiKSdcbiAgICAgICAgKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlcGxhY2UgbmV4dC9kaXN0L2NvbXBpbGVkL2NsaWVudC1vbmx5IGltcG9ydCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgICBpbXBvcnQgJ25leHQvZGlzdC9jb21waWxlZC9jbGllbnQtb25seSc7XG4gICAgICAgIGV4cG9ydCBjb25zdCB4ID0gMTtcbiAgICAgIGA7XG5cbiAgICAgIGNvbnN0IHsgcmVzdWx0LCB0ZW1wRGlyIH0gPSBhd2FpdCBidWlsZFdpdGhQbHVnaW4odGVzdENvZGUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xuICAgICAgICBjb25zdCBvdXRwdXQgPSByZXN1bHQub3V0cHV0RmlsZXM/LlswXS50ZXh0O1xuICAgICAgICBleHBlY3Qob3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKFxuICAgICAgICAgIFwicmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL2NsaWVudC1vbmx5JylcIlxuICAgICAgICApO1xuICAgICAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKFxuICAgICAgICAgICdyZXF1aXJlKFwibmV4dC9kaXN0L2NvbXBpbGVkL2NsaWVudC1vbmx5XCIpJ1xuICAgICAgICApO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgcm1TeW5jKHRlbXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2JvdGggcHNldWRvLXBhY2thZ2VzJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgaGFuZGxlIGJvdGggc2VydmVyLW9ubHkgYW5kIGNsaWVudC1vbmx5IGluIHNhbWUgZmlsZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgICBpbXBvcnQgJ3NlcnZlci1vbmx5JztcbiAgICAgICAgaW1wb3J0ICdjbGllbnQtb25seSc7XG4gICAgICAgIGV4cG9ydCBmdW5jdGlvbiB3b3JrZmxvdygpIHtcbiAgICAgICAgICByZXR1cm4gXCJtaXhlZFwiO1xuICAgICAgICB9XG4gICAgICBgO1xuXG4gICAgICBjb25zdCB7IHJlc3VsdCwgdGVtcERpciB9ID0gYXdhaXQgYnVpbGRXaXRoUGx1Z2luKHRlc3RDb2RlKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gcmVzdWx0Lm91dHB1dEZpbGVzPy5bMF0udGV4dDtcbiAgICAgICAgZXhwZWN0KG91dHB1dCkudG9CZURlZmluZWQoKTtcbiAgICAgICAgLy8gTm8gcmVxdWlyZSgpIGNhbGxzIHNob3VsZCBiZSBnZW5lcmF0ZWQgZm9yIGVpdGhlciBwYWNrYWdlXG4gICAgICAgIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oXCJyZXF1aXJlKCdzZXJ2ZXItb25seScpXCIpO1xuICAgICAgICBleHBlY3Qob3V0cHV0KS5ub3QudG9Db250YWluKCdyZXF1aXJlKFwic2VydmVyLW9ubHlcIiknKTtcbiAgICAgICAgZXhwZWN0KG91dHB1dCkubm90LnRvQ29udGFpbihcInJlcXVpcmUoJ2NsaWVudC1vbmx5JylcIik7XG4gICAgICAgIGV4cGVjdChvdXRwdXQpLm5vdC50b0NvbnRhaW4oJ3JlcXVpcmUoXCJjbGllbnQtb25seVwiKScpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgcm1TeW5jKHRlbXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3dpdGhvdXQgcGx1Z2luJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZmFpbCB0byByZXNvbHZlIHNlcnZlci1vbmx5IHdpdGhvdXQgdGhlIHBsdWdpbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgICBpbXBvcnQgJ3NlcnZlci1vbmx5JztcbiAgICAgICAgZXhwb3J0IGNvbnN0IHggPSAxO1xuICAgICAgYDtcblxuICAgICAgY29uc3QgdGVtcERpciA9IG1rZHRlbXBTeW5jKFxuICAgICAgICBqb2luKHJlYWxUbXBkaXIsICdwc2V1ZG8tcGFja2FnZS1wbHVnaW4tdGVzdC0nKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGVudHJ5RmlsZSA9IGpvaW4odGVtcERpciwgJ3dvcmtmbG93LnRzJyk7XG4gICAgICB3cml0ZUZpbGVTeW5jKGVudHJ5RmlsZSwgdGVzdENvZGUpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBlc2J1aWxkLmJ1aWxkKHtcbiAgICAgICAgICBlbnRyeVBvaW50czogW2VudHJ5RmlsZV0sXG4gICAgICAgICAgYnVuZGxlOiB0cnVlLFxuICAgICAgICAgIHdyaXRlOiBmYWxzZSxcbiAgICAgICAgICBwbGF0Zm9ybTogJ25ldXRyYWwnLFxuICAgICAgICAgIGZvcm1hdDogJ2NqcycsXG4gICAgICAgICAgbG9nTGV2ZWw6ICdzaWxlbnQnLFxuICAgICAgICAgIC8vIE5vIHBsdWdpbnMgLSBzaG91bGQgZmFpbCB0byByZXNvbHZlXG4gICAgICAgIH0pO1xuICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgdGhlIGJ1aWxkIHN1Y2NlZWRlZCAoc2VydmVyLW9ubHkgbWlnaHQgYmUgaW5zdGFsbGVkKVxuICAgICAgICAvLyBUaGlzIGlzIG9rYXkgLSB3ZSBqdXN0IHdhbnQgdG8gdmVyaWZ5IHRoZSBwbHVnaW4gd29ya3Mgd2hlbiB0aGUgcGFja2FnZSBpc24ndCB0aGVyZVxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICAvLyBFeHBlY3RlZDogZXNidWlsZCBjYW4ndCByZXNvbHZlIHNlcnZlci1vbmx5XG4gICAgICAgIGV4cGVjdChlcnJvci5lcnJvcnM/LlswXT8udGV4dCkudG9NYXRjaChcbiAgICAgICAgICAvQ291bGQgbm90IHJlc29sdmUgXCJzZXJ2ZXItb25seVwiL1xuICAgICAgICApO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgcm1TeW5jKHRlbXBEaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1BTRVVET19QQUNLQUdFUyBjb25zdGFudCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGNvbnRhaW4gbmV4dCBtYXJrZXIgcGFja2FnZXMnLCAoKSA9PiB7XG4gICAgICBleHBlY3QoUFNFVURPX1BBQ0tBR0VTLmhhcygnc2VydmVyLW9ubHknKSkudG9CZSh0cnVlKTtcbiAgICAgIGV4cGVjdChQU0VVRE9fUEFDS0FHRVMuaGFzKCdjbGllbnQtb25seScpKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KFBTRVVET19QQUNLQUdFUy5oYXMoJ25leHQvZGlzdC9jb21waWxlZC9zZXJ2ZXItb25seScpKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KFBTRVVET19QQUNLQUdFUy5oYXMoJ25leHQvZGlzdC9jb21waWxlZC9jbGllbnQtb25seScpKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KFBTRVVET19QQUNLQUdFUy5zaXplKS50b0JlKDQpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnd29ya2Zsb3cgYnVuZGxlIGR5bmFtaWMgaW1wb3J0cycsICgpID0+IHtcbiAgaXQoJ3Nob3VsZCBpbmxpbmUgZHluYW1pYyBpbXBvcnRzIHdoZW4gYnVuZGxpbmcgd2l0aG91dCBleHRlcm5hbCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB0ZW1wRGlyID0gbWtkdGVtcFN5bmMoam9pbihyZWFsVG1wZGlyLCAnZHluYW1pYy1pbXBvcnQtdGVzdC0nKSk7XG4gICAgY29uc3Qgbm9kZU1vZHVsZXNEaXIgPSBqb2luKHRlbXBEaXIsICdub2RlX21vZHVsZXMnLCAnbXktdGVzdC1wYWNrYWdlJyk7XG4gICAgbWtkaXJTeW5jKG5vZGVNb2R1bGVzRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIC8vIENyZWF0ZSBhIHNpbXBsZSBwYWNrYWdlIHRvIGR5bmFtaWNhbGx5IGltcG9ydFxuICAgIHdyaXRlRmlsZVN5bmMoXG4gICAgICBqb2luKG5vZGVNb2R1bGVzRGlyLCAnaW5kZXguanMnKSxcbiAgICAgICdleHBvcnQgY29uc3QgdGVzdFZhbHVlID0gNDI7J1xuICAgICk7XG4gICAgd3JpdGVGaWxlU3luYyhcbiAgICAgIGpvaW4obm9kZU1vZHVsZXNEaXIsICdwYWNrYWdlLmpzb24nKSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHsgbmFtZTogJ215LXRlc3QtcGFja2FnZScsIG1haW46ICdpbmRleC5qcycgfSlcbiAgICApO1xuXG4gICAgY29uc3QgdGVzdENvZGUgPSBgXG4gICAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gd29ya2Zsb3coKSB7XG4gICAgICAgIGNvbnN0IHBrZyA9IGF3YWl0IGltcG9ydCgnbXktdGVzdC1wYWNrYWdlJyk7XG4gICAgICAgIHJldHVybiBwa2cudGVzdFZhbHVlO1xuICAgICAgfVxuICAgIGA7XG4gICAgY29uc3QgZW50cnlGaWxlID0gam9pbih0ZW1wRGlyLCAnd29ya2Zsb3cudHMnKTtcbiAgICB3cml0ZUZpbGVTeW5jKGVudHJ5RmlsZSwgdGVzdENvZGUpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGVzYnVpbGQuYnVpbGQoe1xuICAgICAgICBlbnRyeVBvaW50czogW2VudHJ5RmlsZV0sXG4gICAgICAgIGJ1bmRsZTogdHJ1ZSxcbiAgICAgICAgd3JpdGU6IGZhbHNlLFxuICAgICAgICBwbGF0Zm9ybTogJ25ldXRyYWwnLFxuICAgICAgICBmb3JtYXQ6ICdjanMnLFxuICAgICAgICBsb2dMZXZlbDogJ3NpbGVudCcsXG4gICAgICAgIC8vIE5vIGV4dGVybmFsIG9wdGlvbiAtIHNob3VsZCBpbmxpbmUgdGhlIGR5bmFtaWMgaW1wb3J0XG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgICAgIGNvbnN0IG91dHB1dCA9IHJlc3VsdC5vdXRwdXRGaWxlcz8uWzBdLnRleHQ7XG4gICAgICBleHBlY3Qob3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICAvLyBUaGUgZHluYW1pYyBpbXBvcnQgc2hvdWxkIGJlIHJlc29sdmVkIGFuZCB0aGUgdmFsdWUgaW5saW5lZFxuICAgICAgLy8gZXNidWlsZCBjb252ZXJ0cyBkeW5hbWljIGltcG9ydHMgdG8gZWl0aGVyIFByb21pc2UucmVzb2x2ZShyZXF1aXJlKC4uLikpXG4gICAgICAvLyBvciBpbmxpbmVzIHRoZSBjb2RlIGRpcmVjdGx5XG4gICAgICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oJzQyJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcblxuICBpdCgnc2hvdWxkIGxlYXZlIGR5bmFtaWMgaW1wb3J0IGFzIGltcG9ydCgpIHdoZW4gbWFya2VkIGV4dGVybmFsJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHRlbXBEaXIgPSBta2R0ZW1wU3luYyhqb2luKHJlYWxUbXBkaXIsICdkeW5hbWljLWltcG9ydC10ZXN0LScpKTtcbiAgICBjb25zdCBub2RlTW9kdWxlc0RpciA9IGpvaW4odGVtcERpciwgJ25vZGVfbW9kdWxlcycsICdleHRlcm5hbC1wYWNrYWdlJyk7XG4gICAgbWtkaXJTeW5jKG5vZGVNb2R1bGVzRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIHdyaXRlRmlsZVN5bmMoXG4gICAgICBqb2luKG5vZGVNb2R1bGVzRGlyLCAnaW5kZXguanMnKSxcbiAgICAgICdleHBvcnQgY29uc3QgdmFsdWUgPSAxMDA7J1xuICAgICk7XG4gICAgd3JpdGVGaWxlU3luYyhcbiAgICAgIGpvaW4obm9kZU1vZHVsZXNEaXIsICdwYWNrYWdlLmpzb24nKSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KHsgbmFtZTogJ2V4dGVybmFsLXBhY2thZ2UnLCBtYWluOiAnaW5kZXguanMnIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHRlc3RDb2RlID0gYFxuICAgICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdvcmtmbG93KCkge1xuICAgICAgICBjb25zdCBwa2cgPSBhd2FpdCBpbXBvcnQoJ2V4dGVybmFsLXBhY2thZ2UnKTtcbiAgICAgICAgcmV0dXJuIHBrZy52YWx1ZTtcbiAgICAgIH1cbiAgICBgO1xuICAgIGNvbnN0IGVudHJ5RmlsZSA9IGpvaW4odGVtcERpciwgJ3dvcmtmbG93LnRzJyk7XG4gICAgd3JpdGVGaWxlU3luYyhlbnRyeUZpbGUsIHRlc3RDb2RlKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBlc2J1aWxkLmJ1aWxkKHtcbiAgICAgICAgZW50cnlQb2ludHM6IFtlbnRyeUZpbGVdLFxuICAgICAgICBidW5kbGU6IHRydWUsXG4gICAgICAgIHdyaXRlOiBmYWxzZSxcbiAgICAgICAgcGxhdGZvcm06ICduZXV0cmFsJyxcbiAgICAgICAgZm9ybWF0OiAnY2pzJyxcbiAgICAgICAgbG9nTGV2ZWw6ICdzaWxlbnQnLFxuICAgICAgICBleHRlcm5hbDogWydleHRlcm5hbC1wYWNrYWdlJ10sIC8vIE1hcmsgYXMgZXh0ZXJuYWxcbiAgICAgIH0pO1xuXG4gICAgICBleHBlY3QocmVzdWx0LmVycm9ycykudG9IYXZlTGVuZ3RoKDApO1xuICAgICAgY29uc3Qgb3V0cHV0ID0gcmVzdWx0Lm91dHB1dEZpbGVzPy5bMF0udGV4dDtcbiAgICAgIGV4cGVjdChvdXRwdXQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIC8vIFdoZW4gZXh0ZXJuYWwsIGVzYnVpbGQgbGVhdmVzIGEgZHluYW1pYyBpbXBvcnQoKSBjYWxsIHRoYXQgd291bGQgZmFpbCBpbiB0aGUgVk1cbiAgICAgIC8vICh0aGUgVk0gZG9lc24ndCBoYXZlIGltcG9ydCgpIGF2YWlsYWJsZSlcbiAgICAgIC8vIFRoaXMgZGVtb25zdHJhdGVzIHdoeSB3ZSBET04nVCB1c2UgZXh0ZXJuYWwgZm9yIHdvcmtmbG93IGJ1bmRsZXNcbiAgICAgIGV4cGVjdChvdXRwdXQpLnRvTWF0Y2goL2ltcG9ydFxcKFtcIiddZXh0ZXJuYWwtcGFja2FnZVtcIiddXFwpLyk7XG4gICAgICAvLyBUaGUgYWN0dWFsIHZhbHVlIHNob3VsZCBOT1QgYmUgaW5saW5lZFxuICAgICAgZXhwZWN0KG91dHB1dCkubm90LnRvQ29udGFpbignMTAwJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHJtU3luYyh0ZW1wRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSk7XG4gICAgfVxuICB9KTtcblxuICBpdCgnc2hvdWxkIGlubGluZSBuZXN0ZWQgZHluYW1pYyBpbXBvcnRzIGZyb20gZGVwZW5kZW5jaWVzJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHRlbXBEaXIgPSBta2R0ZW1wU3luYyhqb2luKHJlYWxUbXBkaXIsICdkeW5hbWljLWltcG9ydC10ZXN0LScpKTtcblxuICAgIC8vIENyZWF0ZSBhIHBhY2thZ2UgdGhhdCBpdHNlbGYgdXNlcyBkeW5hbWljIGltcG9ydFxuICAgIGNvbnN0IG91dGVyUGFja2FnZURpciA9IGpvaW4odGVtcERpciwgJ25vZGVfbW9kdWxlcycsICdvdXRlci1wYWNrYWdlJyk7XG4gICAgY29uc3QgaW5uZXJQYWNrYWdlRGlyID0gam9pbih0ZW1wRGlyLCAnbm9kZV9tb2R1bGVzJywgJ2lubmVyLXBhY2thZ2UnKTtcbiAgICBta2RpclN5bmMob3V0ZXJQYWNrYWdlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBta2RpclN5bmMoaW5uZXJQYWNrYWdlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICAgIHdyaXRlRmlsZVN5bmMoXG4gICAgICBqb2luKGlubmVyUGFja2FnZURpciwgJ2luZGV4LmpzJyksXG4gICAgICAnZXhwb3J0IGNvbnN0IGlubmVyVmFsdWUgPSA5OTk7J1xuICAgICk7XG4gICAgd3JpdGVGaWxlU3luYyhcbiAgICAgIGpvaW4oaW5uZXJQYWNrYWdlRGlyLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7IG5hbWU6ICdpbm5lci1wYWNrYWdlJywgbWFpbjogJ2luZGV4LmpzJyB9KVxuICAgICk7XG5cbiAgICB3cml0ZUZpbGVTeW5jKFxuICAgICAgam9pbihvdXRlclBhY2thZ2VEaXIsICdpbmRleC5qcycpLFxuICAgICAgYFxuICAgICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRJbm5lcigpIHtcbiAgICAgICAgY29uc3QgaW5uZXIgPSBhd2FpdCBpbXBvcnQoJ2lubmVyLXBhY2thZ2UnKTtcbiAgICAgICAgcmV0dXJuIGlubmVyLmlubmVyVmFsdWU7XG4gICAgICB9XG4gICAgYFxuICAgICk7XG4gICAgd3JpdGVGaWxlU3luYyhcbiAgICAgIGpvaW4ob3V0ZXJQYWNrYWdlRGlyLCAncGFja2FnZS5qc29uJyksXG4gICAgICBKU09OLnN0cmluZ2lmeSh7IG5hbWU6ICdvdXRlci1wYWNrYWdlJywgbWFpbjogJ2luZGV4LmpzJyB9KVxuICAgICk7XG5cbiAgICBjb25zdCB0ZXN0Q29kZSA9IGBcbiAgICAgIGltcG9ydCB7IGxvYWRJbm5lciB9IGZyb20gJ291dGVyLXBhY2thZ2UnO1xuICAgICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdvcmtmbG93KCkge1xuICAgICAgICByZXR1cm4gbG9hZElubmVyKCk7XG4gICAgICB9XG4gICAgYDtcbiAgICBjb25zdCBlbnRyeUZpbGUgPSBqb2luKHRlbXBEaXIsICd3b3JrZmxvdy50cycpO1xuICAgIHdyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCB0ZXN0Q29kZSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZXNidWlsZC5idWlsZCh7XG4gICAgICAgIGVudHJ5UG9pbnRzOiBbZW50cnlGaWxlXSxcbiAgICAgICAgYnVuZGxlOiB0cnVlLFxuICAgICAgICB3cml0ZTogZmFsc2UsXG4gICAgICAgIHBsYXRmb3JtOiAnbmV1dHJhbCcsXG4gICAgICAgIGZvcm1hdDogJ2NqcycsXG4gICAgICAgIGxvZ0xldmVsOiAnc2lsZW50JyxcbiAgICAgICAgLy8gTm8gZXh0ZXJuYWwgLSBldmVyeXRoaW5nIHNob3VsZCBiZSBpbmxpbmVkXG4gICAgICB9KTtcblxuICAgICAgZXhwZWN0KHJlc3VsdC5lcnJvcnMpLnRvSGF2ZUxlbmd0aCgwKTtcbiAgICAgIGNvbnN0IG91dHB1dCA9IHJlc3VsdC5vdXRwdXRGaWxlcz8uWzBdLnRleHQ7XG4gICAgICBleHBlY3Qob3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICAvLyBCb3RoIHRoZSBvdXRlciBhbmQgaW5uZXIgcGFja2FnZSBjb2RlIHNob3VsZCBiZSBpbmxpbmVkXG4gICAgICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oJzk5OScpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBybVN5bmModGVtcERpciwgeyByZWN1cnNpdmU6IHRydWUsIGZvcmNlOiB0cnVlIH0pO1xuICAgIH1cbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -29,4 +29,4 @@ function replaceGeneratedRouteExport(content, pattern, replacement, errorMessage
|
|
|
29
29
|
return wrappedRouteCode + sourceMap;
|
|
30
30
|
}
|
|
31
31
|
export { NORMALIZE_REQUEST_CODE, replaceGeneratedRouteExport };
|
|
32
|
-
//# sourceMappingURL=
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jb252ZXJ0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcmVxdWVzdC1jb252ZXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxzQkFBc0IsR0FBRzs7Ozs7Ozs7Ozs7Q0FXOUIsQ0FBQztBQUVGLFNBQVMsMkJBQTJCLENBQ2xDLE9BQWUsRUFDZixPQUFlLEVBQ2YsV0FBbUIsRUFDbkIsWUFBb0I7SUFFcEIsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDOUQsSUFBSSxlQUFlLEtBQUssT0FBTyxFQUFFLENBQUM7UUFDaEMsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLHlCQUF5QixDQUFDO0lBQ2xELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDNUQsSUFBSSxjQUFjLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNuRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakUsSUFBSSxnQkFBZ0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDRCxPQUFPLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztBQUN0QyxDQUFDO0FBRUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDJCQUEyQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBOT1JNQUxJWkVfUkVRVUVTVF9DT0RFID0gYFxuYXN5bmMgZnVuY3Rpb24gbm9ybWFsaXplUmVxdWVzdChyZXF1ZXN0KSB7XG4gIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgbWV0aG9kOiByZXF1ZXN0Lm1ldGhvZCxcbiAgICBoZWFkZXJzOiBuZXcgSGVhZGVycyhyZXF1ZXN0LmhlYWRlcnMpXG4gIH07XG4gIGlmICghWydHRVQnLCAnSEVBRCcsICdPUFRJT05TJywgJ1RSQUNFJywgJ0NPTk5FQ1QnXS5pbmNsdWRlcyhyZXF1ZXN0Lm1ldGhvZCkpIHtcbiAgICBvcHRpb25zLmJvZHkgPSBhd2FpdCByZXF1ZXN0LmFycmF5QnVmZmVyKCk7XG4gIH1cbiAgcmV0dXJuIG5ldyBSZXF1ZXN0KHJlcXVlc3QudXJsLCBvcHRpb25zKTtcbn1cbmA7XG5cbmZ1bmN0aW9uIHJlcGxhY2VHZW5lcmF0ZWRSb3V0ZUV4cG9ydChcbiAgY29udGVudDogc3RyaW5nLFxuICBwYXR0ZXJuOiBSZWdFeHAsXG4gIHJlcGxhY2VtZW50OiBzdHJpbmcsXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nXG4pIHtcbiAgY29uc3QgcmVwbGFjZWRDb250ZW50ID0gY29udGVudC5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2VtZW50KTtcbiAgaWYgKHJlcGxhY2VkQ29udGVudCAhPT0gY29udGVudCkge1xuICAgIHJldHVybiByZXBsYWNlZENvbnRlbnQ7XG4gIH1cblxuICBjb25zdCBzb3VyY2VNYXBNYXJrZXIgPSAnXFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9JztcbiAgY29uc3Qgc291cmNlTWFwSW5kZXggPSBjb250ZW50Lmxhc3RJbmRleE9mKHNvdXJjZU1hcE1hcmtlcik7XG4gIGlmIChzb3VyY2VNYXBJbmRleCA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIGNvbnN0IHJvdXRlQ29kZSA9IGNvbnRlbnQuc2xpY2UoMCwgc291cmNlTWFwSW5kZXgpO1xuICBjb25zdCBzb3VyY2VNYXAgPSBjb250ZW50LnNsaWNlKHNvdXJjZU1hcEluZGV4KTtcbiAgY29uc3Qgd3JhcHBlZFJvdXRlQ29kZSA9IHJvdXRlQ29kZS5yZXBsYWNlKHBhdHRlcm4sIHJlcGxhY2VtZW50KTtcbiAgaWYgKHdyYXBwZWRSb3V0ZUNvZGUgPT09IHJvdXRlQ29kZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICB9XG4gIHJldHVybiB3cmFwcGVkUm91dGVDb2RlICsgc291cmNlTWFwO1xufVxuXG5leHBvcnQgeyBOT1JNQUxJWkVfUkVRVUVTVF9DT0RFLCByZXBsYWNlR2VuZXJhdGVkUm91dGVFeHBvcnQgfTtcbiJdfQ==
|
|
@@ -25,4 +25,4 @@ describe('replaceGeneratedRouteExport', () => {
|
|
|
25
25
|
expect(() => replaceGeneratedRouteExport('export const GET = handler;', /export const POST = handler;$/, 'export const POST = wrappedHandler;', 'missing route export')).toThrow('missing route export');
|
|
26
26
|
});
|
|
27
27
|
});
|
|
28
|
-
//# sourceMappingURL=
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1jb252ZXJ0ZXIudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXF1ZXN0LWNvbnZlcnRlci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRSxRQUFRLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO0lBQzNDLEVBQUUsQ0FBQyxpREFBaUQsRUFBRSxHQUFHLEVBQUU7UUFDekQsTUFBTSxNQUFNLEdBQUcsMkJBQTJCLENBQ3hDLHFGQUFxRixFQUNyRiwrQkFBK0IsRUFDL0IscUNBQXFDLEVBQ3JDLFdBQVcsQ0FDWixDQUFDO1FBRUYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDakIsNEZBQTRGLENBQzdGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywyREFBMkQsRUFBRSxHQUFHLEVBQUU7UUFDbkUsTUFBTSxNQUFNLEdBQUcsMkJBQTJCLENBQ3hDO1lBQ0Usd0JBQXdCO1lBQ3hCLHlEQUF5RDtZQUN6RCxJQUFJO1lBQ0osbURBQW1EO1lBQ25ELDhCQUE4QjtZQUM5Qiw4QkFBOEI7U0FDL0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQ1oseUhBQXlILEVBQ3pILHFDQUFxQyxFQUNyQyxXQUFXLENBQ1osQ0FBQztRQUVGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQ2pCO1lBQ0Usd0JBQXdCO1lBQ3hCLHlEQUF5RDtZQUN6RCxJQUFJO1lBQ0oscUNBQXFDO1NBQ3RDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUNiLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxtREFBbUQsRUFBRSxHQUFHLEVBQUU7UUFDM0QsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUNWLDJCQUEyQixDQUN6Qiw2QkFBNkIsRUFDN0IsK0JBQStCLEVBQy9CLHFDQUFxQyxFQUNyQyxzQkFBc0IsQ0FDdkIsQ0FDRixDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZXNjcmliZSwgZXhwZWN0LCBpdCB9IGZyb20gJ3ZpdGVzdCc7XG5pbXBvcnQgeyByZXBsYWNlR2VuZXJhdGVkUm91dGVFeHBvcnQgfSBmcm9tICcuL3JlcXVlc3QtY29udmVydGVyLmpzJztcblxuZGVzY3JpYmUoJ3JlcGxhY2VHZW5lcmF0ZWRSb3V0ZUV4cG9ydCcsICgpID0+IHtcbiAgaXQoJ3JlcGxhY2VzIHJvdXRlIGNvZGUgYmVmb3JlIGFuIGlubGluZSBzb3VyY2UgbWFwJywgKCkgPT4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHJlcGxhY2VHZW5lcmF0ZWRSb3V0ZUV4cG9ydChcbiAgICAgICdleHBvcnQgY29uc3QgUE9TVCA9IGhhbmRsZXI7XFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxhYmMnLFxuICAgICAgL2V4cG9ydCBjb25zdCBQT1NUID0gaGFuZGxlcjskLyxcbiAgICAgICdleHBvcnQgY29uc3QgUE9TVCA9IHdyYXBwZWRIYW5kbGVyOycsXG4gICAgICAnbm90IGZvdW5kJ1xuICAgICk7XG5cbiAgICBleHBlY3QocmVzdWx0KS50b0JlKFxuICAgICAgJ2V4cG9ydCBjb25zdCBQT1NUID0gd3JhcHBlZEhhbmRsZXI7XFxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxhYmMnXG4gICAgKTtcbiAgfSk7XG5cbiAgaXQoJ2lnbm9yZXMgc291cmNlIG1hcCBjb21tZW50cyBlbWJlZGRlZCBiZWZvcmUgcm91dGUgZXhwb3J0cycsICgpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSByZXBsYWNlR2VuZXJhdGVkUm91dGVFeHBvcnQoXG4gICAgICBbXG4gICAgICAgICdjb25zdCB3b3JrZmxvd0NvZGUgPSBgJyxcbiAgICAgICAgJy8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsaW5uZXInLFxuICAgICAgICAnYDsnLFxuICAgICAgICAnY29uc3QgaGFuZGxlciA9IHdvcmtmbG93RW50cnlwb2ludCh3b3JrZmxvd0NvZGUpOycsXG4gICAgICAgICdleHBvcnQgY29uc3QgSEVBRCA9IGhhbmRsZXI7JyxcbiAgICAgICAgJ2V4cG9ydCBjb25zdCBQT1NUID0gaGFuZGxlcjsnLFxuICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgIC9jb25zdCBoYW5kbGVyID0gd29ya2Zsb3dFbnRyeXBvaW50XFwod29ya2Zsb3dDb2RlXFwpO1xccypleHBvcnQgY29uc3QgSEVBRCA9IGhhbmRsZXI7XFxzKmV4cG9ydCBjb25zdCBQT1NUID0gaGFuZGxlcjs/XFxzKiQvbSxcbiAgICAgICdleHBvcnQgY29uc3QgUE9TVCA9IHdyYXBwZWRIYW5kbGVyOycsXG4gICAgICAnbm90IGZvdW5kJ1xuICAgICk7XG5cbiAgICBleHBlY3QocmVzdWx0KS50b0JlKFxuICAgICAgW1xuICAgICAgICAnY29uc3Qgd29ya2Zsb3dDb2RlID0gYCcsXG4gICAgICAgICcvLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGlubmVyJyxcbiAgICAgICAgJ2A7JyxcbiAgICAgICAgJ2V4cG9ydCBjb25zdCBQT1NUID0gd3JhcHBlZEhhbmRsZXI7JyxcbiAgICAgIF0uam9pbignXFxuJylcbiAgICApO1xuICB9KTtcblxuICBpdCgndGhyb3dzIHdoZW4gdGhlIHJvdXRlIGV4cG9ydCBwYXR0ZXJuIGlzIG5vdCBmb3VuZCcsICgpID0+IHtcbiAgICBleHBlY3QoKCkgPT5cbiAgICAgIHJlcGxhY2VHZW5lcmF0ZWRSb3V0ZUV4cG9ydChcbiAgICAgICAgJ2V4cG9ydCBjb25zdCBHRVQgPSBoYW5kbGVyOycsXG4gICAgICAgIC9leHBvcnQgY29uc3QgUE9TVCA9IGhhbmRsZXI7JC8sXG4gICAgICAgICdleHBvcnQgY29uc3QgUE9TVCA9IHdyYXBwZWRIYW5kbGVyOycsXG4gICAgICAgICdtaXNzaW5nIHJvdXRlIGV4cG9ydCdcbiAgICAgIClcbiAgICApLnRvVGhyb3coJ21pc3Npbmcgcm91dGUgZXhwb3J0Jyk7XG4gIH0pO1xufSk7XG4iXX0=
|
package/dist/serde-checker.js
CHANGED
|
@@ -115,4 +115,4 @@ export function extractClassEntries(manifest) {
|
|
|
115
115
|
}
|
|
116
116
|
return entries;
|
|
117
117
|
}
|
|
118
|
-
//# sourceMappingURL=serde-checker.js.map
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyZGUtY2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXJkZS1jaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztHQVdHO0FBRUgsT0FBTyxjQUFjLE1BQU0saUJBQWlCLENBQUM7QUFHN0Msa0ZBQWtGO0FBQ2xGLDZFQUE2RTtBQUM3RSxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRTlDLHdFQUF3RTtBQUN4RSxNQUFNLHNCQUFzQixHQUFHLElBQUksTUFBTSxDQUN2QyxnQ0FBZ0MsWUFBWSxvQkFBb0I7SUFDOUQsd0NBQXdDLFlBQVksNEJBQTRCLEVBQ2xGLEdBQUcsQ0FDSixDQUFDO0FBRUYsdUVBQXVFO0FBQ3ZFLE1BQU0scUJBQXFCLEdBQ3pCLHlEQUF5RCxDQUFDO0FBdUM1RDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE9BT3RDO0lBQ0MsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBRXZELG1FQUFtRTtJQUNuRSxNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTNELGlFQUFpRTtJQUNqRSxNQUFNLFlBQVksR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRCxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUVoRCw4REFBOEQ7SUFDOUQsTUFBTSxlQUFlLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRWpFLHdCQUF3QjtJQUN4QixNQUFNLE9BQU8sR0FBNEIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2xFLE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztRQUU1QixzRUFBc0U7UUFDdEUsSUFBSSxp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QVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQy9ELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTZXJkZSBjb21wbGlhbmNlIGNoZWNrZXIgZm9yIHdvcmtmbG93IGN1c3RvbSBjbGFzcyBzZXJpYWxpemF0aW9uLlxuICpcbiAqIEFuYWx5emVzIHNvdXJjZSBjb2RlIHRvIGRldGVybWluZSBpZiBjbGFzc2VzIHdpdGggV09SS0ZMT1dfU0VSSUFMSVpFIC9cbiAqIFdPUktGTE9XX0RFU0VSSUFMSVpFIGFyZSBjb3JyZWN0bHkgc2V0IHVwIGZvciB0aGUgd29ya2Zsb3cgc2FuZGJveC5cbiAqXG4gKiBVc2VkIGJ5OlxuICogLSBDTEkgYHZhbGlkYXRlYCBjb21tYW5kXG4gKiAtIENMSSBgdHJhbnNmb3JtYCBjb21tYW5kICgtLWNoZWNrLXNlcmRlKVxuICogLSBTV0MgcGxheWdyb3VuZCBzZXJkZSBhbmFseXNpcyBwYW5lbFxuICogLSBCdWlsZC10aW1lIHdhcm5pbmdzIGluIEJhc2VCdWlsZGVyXG4gKi9cblxuaW1wb3J0IGJ1aWx0aW5Nb2R1bGVzIGZyb20gJ2J1aWx0aW4tbW9kdWxlcyc7XG5pbXBvcnQgdHlwZSB7IFdvcmtmbG93TWFuaWZlc3QgfSBmcm9tICcuL2FwcGx5LXN3Yy10cmFuc2Zvcm0uanMnO1xuXG4vLyBCdWlsZCBhIHJlZ2V4IHRoYXQgbWF0Y2hlcyBOb2RlLmpzIGJ1aWx0LWluIG1vZHVsZSBpbXBvcnRzIGluIHRyYW5zZm9ybWVkIGNvZGUuXG4vLyBIYW5kbGVzIGJvdGggRVNNIChgZnJvbSAnZnMnYCwgYGZyb20gJ25vZGU6ZnMnYCkgYW5kIENKUyAoYHJlcXVpcmUoJ2ZzJylgKVxuY29uc3Qgbm9kZUJ1aWx0aW5zID0gYnVpbHRpbk1vZHVsZXMuam9pbignfCcpO1xuXG4vLyBSZWdleCB0byBleHRyYWN0IHNwZWNpZmljIG1vZHVsZSBuYW1lcyBmcm9tIGltcG9ydC9yZXF1aXJlIHN0YXRlbWVudHNcbmNvbnN0IG5vZGVJbXBvcnRFeHRyYWN0UmVnZXggPSBuZXcgUmVnRXhwKFxuICBgKD86ZnJvbVxcXFxzK1snXCJdKD86bm9kZTopPygoPzoke25vZGVCdWlsdGluc30pKD86L1teJ1wiXSopPylbJ1wiXWAgK1xuICAgIGB8cmVxdWlyZVxcXFxzKlxcXFwoXFxcXHMqWydcIl0oPzpub2RlOik/KCg/OiR7bm9kZUJ1aWx0aW5zfSkoPzovW14nXCJdKik/KVsnXCJdXFxcXHMqXFxcXCkpYCxcbiAgJ2cnXG4pO1xuXG4vLyBSZWdleCB0byBkZXRlY3QgY2xhc3MgcmVnaXN0cmF0aW9uIElJRkVzIGdlbmVyYXRlZCBieSB0aGUgU1dDIHBsdWdpblxuY29uc3QgcmVnaXN0cmF0aW9uSWlmZVJlZ2V4ID1cbiAgL1N5bWJvbFxcLmZvclxccypcXChcXHMqW1wiJ113b3JrZmxvdy1jbGFzcy1yZWdpc3RyeVtcIiddXFxzKlxcKS87XG5cbi8qKlxuICogUmVzdWx0IG9mIGNoZWNraW5nIGEgc2luZ2xlIGNsYXNzIGZvciBzZXJkZSBjb21wbGlhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlcmRlQ2xhc3NDaGVja1Jlc3VsdCB7XG4gIC8qKiBUaGUgY2xhc3MgbmFtZSBhcyBkZXRlY3RlZCBpbiB0aGUgc291cmNlICovXG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICAvKiogVGhlIGNsYXNzSWQgYXNzaWduZWQgYnkgdGhlIFNXQyBwbHVnaW4gKGZyb20gdGhlIG1hbmlmZXN0KSAqL1xuICBjbGFzc0lkOiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBTV0MgcGx1Z2luIGRldGVjdGVkIHNlcmRlIHN5bWJvbHMgb24gdGhpcyBjbGFzcyAqL1xuICBkZXRlY3RlZDogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgYSByZWdpc3RyYXRpb24gSUlGRSB3YXMgZ2VuZXJhdGVkIGluIHRoZSBvdXRwdXQgKi9cbiAgcmVnaXN0ZXJlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE5vZGUuanMgYnVpbHQtaW4gbW9kdWxlIGltcG9ydHMgcmVtYWluaW5nIGluIHRoZSB3b3JrZmxvdy1tb2RlIG91dHB1dC5cbiAgICogSWYgbm9uLWVtcHR5LCB0aGUgY2xhc3MgaXMgTk9UIHdvcmtmbG93LXNhbmRib3ggY29tcGxpYW50LlxuICAgKi9cbiAgbm9kZUltcG9ydHM6IHN0cmluZ1tdO1xuICAvKiogV2hldGhlciB0aGUgY2xhc3MgcGFzc2VzIGFsbCBjb21wbGlhbmNlIGNoZWNrcyAqL1xuICBjb21wbGlhbnQ6IGJvb2xlYW47XG4gIC8qKiBIdW1hbi1yZWFkYWJsZSBkZXNjcmlwdGlvbnMgb2YgYW55IGlzc3VlcyBmb3VuZCAqL1xuICBpc3N1ZXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEZ1bGwgcmVzdWx0IG9mIHNlcmRlIGNvbXBsaWFuY2UgYW5hbHlzaXMgZm9yIGEgc291cmNlIGZpbGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VyZGVDaGVja1Jlc3VsdCB7XG4gIC8qKiBQZXItY2xhc3MgYW5hbHlzaXMgcmVzdWx0cyAqL1xuICBjbGFzc2VzOiBTZXJkZUNsYXNzQ2hlY2tSZXN1bHRbXTtcbiAgLyoqIEFsbCBOb2RlLmpzIGJ1aWx0LWluIGltcG9ydHMgZm91bmQgaW4gdGhlIHdvcmtmbG93LW1vZGUgb3V0cHV0ICovXG4gIGdsb2JhbE5vZGVJbXBvcnRzOiBzdHJpbmdbXTtcbiAgLyoqIFdoZXRoZXIgdGhlIHdvcmtmbG93LW1vZGUgb3V0cHV0IGNvbnRhaW5zIGFueSBzZXJkZS1yZWxhdGVkIGNsYXNzZXMgKi9cbiAgaGFzU2VyZGVDbGFzc2VzOiBib29sZWFuO1xuICAvKiogVGhlIHJhdyB3b3JrZmxvdyBtYW5pZmVzdCBleHRyYWN0ZWQgZnJvbSB0aGUgU1dDIHRyYW5zZm9ybSAqL1xuICBtYW5pZmVzdDogV29ya2Zsb3dNYW5pZmVzdDtcbn1cblxuLyoqXG4gKiBMaWdodHdlaWdodCBzZXJkZSBjb21wbGlhbmNlIGNoZWNrZXIgdGhhdCB3b3JrcyB3aXRoIHByZS1jb21wdXRlZFxuICogU1dDIHRyYW5zZm9ybSByZXN1bHRzLiBUaGlzIGF2b2lkcyByZS1ydW5uaW5nIHRoZSBTV0MgdHJhbnNmb3JtXG4gKiB3aGVuIHRoZSBjYWxsZXIgYWxyZWFkeSBoYXMgdGhlIG91dHB1dHMgKGUuZy4sIHRoZSBwbGF5Z3JvdW5kIG9yIGJ1aWxkZXIpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYW5hbHl6ZVNlcmRlQ29tcGxpYW5jZShvcHRpb25zOiB7XG4gIC8qKiBTb3VyY2UgY29kZSAodXNlZCBmb3IgcGF0dGVybiBkZXRlY3Rpb24pICovXG4gIHNvdXJjZUNvZGU6IHN0cmluZztcbiAgLyoqIFdvcmtmbG93LW1vZGUgdHJhbnNmb3JtZWQgb3V0cHV0ICovXG4gIHdvcmtmbG93Q29kZTogc3RyaW5nO1xuICAvKiogTWFuaWZlc3QgZXh0cmFjdGVkIGZyb20gdGhlIFNXQyB0cmFuc2Zvcm0gKi9cbiAgbWFuaWZlc3Q6IFdvcmtmbG93TWFuaWZlc3Q7XG59KTogU2VyZGVDaGVja1Jlc3VsdCB7XG4gIGNvbnN0IHsgc291cmNlQ29kZSwgd29ya2Zsb3dDb2RlLCBtYW5pZmVzdCB9ID0gb3B0aW9ucztcblxuICAvLyAxLiBFeHRyYWN0IGFsbCBOb2RlLmpzIGJ1aWx0LWluIGltcG9ydHMgZnJvbSB0aGUgd29ya2Zsb3cgb3V0cHV0XG4gIGNvbnN0IGdsb2JhbE5vZGVJbXBvcnRzID0gZXh0cmFjdE5vZGVJbXBvcnRzKHdvcmtmbG93Q29kZSk7XG5cbiAgLy8gMi4gQ2hlY2sgaWYgdGhlIG1hbmlmZXN0IGNvbnRhaW5zIGFueSBzZXJkZS1yZWdpc3RlcmVkIGNsYXNzZXNcbiAgY29uc3QgY2xhc3NFbnRyaWVzID0gZXh0cmFjdENsYXNzRW50cmllcyhtYW5pZmVzdCk7XG4gIGNvbnN0IGhhc1NlcmRlQ2xhc3NlcyA9IGNsYXNzRW50cmllcy5sZW5ndGggPiAwO1xuXG4gIC8vIDMuIENoZWNrIGlmIHRoZSB3b3JrZmxvdyBvdXRwdXQgY29udGFpbnMgcmVnaXN0cmF0aW9uIElJRkVzXG4gIGNvbnN0IGhhc1JlZ2lzdHJhdGlvbiA9IHJlZ2lzdHJhdGlvbklpZmVSZWdleC50ZXN0KHdvcmtmbG93Q29kZSk7XG5cbiAgLy8gNC4gQW5hbHl6ZSBlYWNoIGNsYXNzXG4gIGNvbnN0IGNsYXNzZXM6IFNlcmRlQ2xhc3NDaGVja1Jlc3VsdFtdID0gY2xhc3NFbnRyaWVzLm1hcCgoZW50cnkpID0+IHtcbiAgICBjb25zdCBpc3N1ZXM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvLyBDaGVjayBmb3IgTm9kZS5qcyBpbXBvcnRzICh0aGVzZSB3aWxsIGZhaWwgaW4gdGhlIHdvcmtmbG93IHNhbmRib3gpXG4gICAgaWYgKGdsb2JhbE5vZGVJbXBvcnRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGlzc3Vlcy5wdXNoKFxuICAgICAgICBgV29ya2Zsb3cgYnVuZGxlIGNvbnRhaW5zIE5vZGUuanMgYnVpbHQtaW4gaW1wb3J0czogJHtnbG9iYWxOb2RlSW1wb3J0cy5qb2luKCcsICcpfS4gYCArXG4gICAgICAgICAgYFRoZXNlIHdpbGwgZmFpbCBhdCBydW50aW1lIGluIHRoZSB3b3JrZmxvdyBzYW5kYm94LiBgICtcbiAgICAgICAgICBgQWRkIFwidXNlIHN0ZXBcIiB0byBtZXRob2RzIHRoYXQgZGVwZW5kIG9uIE5vZGUuanMgQVBJcyBzbyB0aGV5IGFyZSBzdHJpcHBlZCBmcm9tIHRoZSB3b3JrZmxvdyBidW5kbGUuYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBmb3IgcmVnaXN0cmF0aW9uXG4gICAgaWYgKCFoYXNSZWdpc3RyYXRpb24pIHtcbiAgICAgIGlzc3Vlcy5wdXNoKFxuICAgICAgICBgTm8gY2xhc3MgcmVnaXN0cmF0aW9uIElJRkUgd2FzIGdlbmVyYXRlZC4gYCArXG4gICAgICAgICAgYEVuc3VyZSBXT1JLRkxPV19TRVJJQUxJWkUgYW5kIFdPUktGTE9XX0RFU0VSSUFMSVpFIGFyZSBkZWZpbmVkIGFzIHN0YXRpYyBtZXRob2RzIGAgK1xuICAgICAgICAgIGBpbnNpZGUgdGhlIGNsYXNzIGJvZHkgdXNpbmcgY29tcHV0ZWQgcHJvcGVydHkgc3ludGF4OiBzdGF0aWMgW1dPUktGTE9XX1NFUklBTElaRV0oLi4uKSB7IC4uLiB9YFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgY2xhc3NOYW1lOiBlbnRyeS5jbGFzc05hbWUsXG4gICAgICBjbGFzc0lkOiBlbnRyeS5jbGFzc0lkLFxuICAgICAgZGV0ZWN0ZWQ6IHRydWUsXG4gICAgICByZWdpc3RlcmVkOiBoYXNSZWdpc3RyYXRpb24sXG4gICAgICBub2RlSW1wb3J0czogZ2xvYmFsTm9kZUltcG9ydHMsXG4gICAgICBjb21wbGlhbnQ6IGdsb2JhbE5vZGVJbXBvcnRzLmxlbmd0aCA9PT0gMCAmJiBoYXNSZWdpc3RyYXRpb24sXG4gICAgICBpc3N1ZXMsXG4gICAgfTtcbiAgfSk7XG5cbiAgLy8gNS4gQ2hlY2sgZm9yIGNsYXNzZXMgdGhhdCBoYXZlIHNlcmRlIHBhdHRlcm5zIGluIHNvdXJjZSBidXQgd2VyZW4ndCBkZXRlY3RlZCBieSBTV0NcbiAgY29uc3Qgc291cmNlSGFzU2VyZGVQYXR0ZXJucyA9XG4gICAgL1xcW1xccypXT1JLRkxPV18oPzpTRVJJQUxJWkV8REVTRVJJQUxJWkUpXFxzKlxcXS8udGVzdChzb3VyY2VDb2RlKSB8fFxuICAgIC9TeW1ib2xcXC5mb3JcXHMqXFwoXFxzKlsnXCJdd29ya2Zsb3ctKD86c2VyaWFsaXplfGRlc2VyaWFsaXplKVsnXCJdXFxzKlxcKS8udGVzdChcbiAgICAgIHNvdXJjZUNvZGVcbiAgICApO1xuXG4gIGlmIChzb3VyY2VIYXNTZXJkZVBhdHRlcm5zICYmIGNsYXNzRW50cmllcy5sZW5ndGggPT09IDApIHtcbiAgICBjbGFzc2VzLnB1c2goe1xuICAgICAgY2xhc3NOYW1lOiAnPHVua25vd24+JyxcbiAgICAgIGNsYXNzSWQ6ICcnLFxuICAgICAgZGV0ZWN0ZWQ6IGZhbHNlLFxuICAgICAgcmVnaXN0ZXJlZDogZmFsc2UsXG4gICAgICBub2RlSW1wb3J0czogZ2xvYmFsTm9kZUltcG9ydHMsXG4gICAgICBjb21wbGlhbnQ6IGZhbHNlLFxuICAgICAgaXNzdWVzOiBbXG4gICAgICAgIGBTb3VyY2UgY29kZSBjb250YWlucyBXT1JLRkxPV19TRVJJQUxJWkUvV09SS0ZMT1dfREVTRVJJQUxJWkUgcGF0dGVybnMgYnV0IGAgK1xuICAgICAgICAgIGB0aGUgU1dDIHBsdWdpbiBkaWQgbm90IGRldGVjdCBhbnkgc2VyZGUtZW5hYmxlZCBjbGFzc2VzLiBgICtcbiAgICAgICAgICBgRW5zdXJlIHRoZSBzeW1ib2xzIGFyZSBkZWZpbmVkIGFzIHN0YXRpYyBtZXRob2RzIElOU0lERSB0aGUgY2xhc3MgYm9keSwgYCArXG4gICAgICAgICAgYG5vdCBhc3NpZ25lZCBleHRlcm5hbGx5IChlLmcuLCAoTXlDbGFzcyBhcyBhbnkpW1dPUktGTE9XX1NFUklBTElaRV0gPSAuLi4pLmAsXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBjbGFzc2VzLFxuICAgIGdsb2JhbE5vZGVJbXBvcnRzLFxuICAgIGhhc1NlcmRlQ2xhc3NlcyxcbiAgICBtYW5pZmVzdCxcbiAgfTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0IE5vZGUuanMgYnVpbHQtaW4gbW9kdWxlIG5hbWVzIGZyb20gdHJhbnNmb3JtZWQgY29kZS5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdE5vZGVJbXBvcnRzKGNvZGU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgY29uc3QgaW1wb3J0cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAvLyBSZXNldCByZWdleCBzdGF0ZVxuICBub2RlSW1wb3J0RXh0cmFjdFJlZ2V4Lmxhc3RJbmRleCA9IDA7XG4gIGZvciAoXG4gICAgbGV0IG1hdGNoID0gbm9kZUltcG9ydEV4dHJhY3RSZWdleC5leGVjKGNvZGUpO1xuICAgIG1hdGNoICE9PSBudWxsO1xuICAgIG1hdGNoID0gbm9kZUltcG9ydEV4dHJhY3RSZWdleC5leGVjKGNvZGUpXG4gICkge1xuICAgIC8vIG1hdGNoWzFdIGlzIGZyb20gdGhlIEVTTSBwYXR0ZXJuLCBtYXRjaFsyXSBpcyBmcm9tIHRoZSBDSlMgcGF0dGVyblxuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBtYXRjaFsxXSB8fCBtYXRjaFsyXTtcbiAgICBpZiAobW9kdWxlTmFtZSkge1xuICAgICAgLy8gTm9ybWFsaXplIHRvIGJhc2UgbW9kdWxlIG5hbWUgKGUuZy4sICdmcy9wcm9taXNlcycgLT4gJ2ZzJylcbiAgICAgIGltcG9ydHMuYWRkKG1vZHVsZU5hbWUuc3BsaXQoJy8nKVswXSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBbLi4uaW1wb3J0c10uc29ydCgpO1xufVxuXG4vKipcbiAqIEV4dHJhY3QgY2xhc3MgZW50cmllcyBmcm9tIGEgV29ya2Zsb3dNYW5pZmVzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RDbGFzc0VudHJpZXMoXG4gIG1hbmlmZXN0OiBXb3JrZmxvd01hbmlmZXN0XG4pOiBBcnJheTx7IGNsYXNzTmFtZTogc3RyaW5nOyBjbGFzc0lkOiBzdHJpbmc7IGZpbGVOYW1lOiBzdHJpbmcgfT4ge1xuICBjb25zdCBlbnRyaWVzOiBBcnJheTx7XG4gICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgY2xhc3NJZDogc3RyaW5nO1xuICAgIGZpbGVOYW1lOiBzdHJpbmc7XG4gIH0+ID0gW107XG4gIGlmICghbWFuaWZlc3QuY2xhc3NlcykgcmV0dXJuIGVudHJpZXM7XG5cbiAgZm9yIChjb25zdCBbZmlsZU5hbWUsIGNsYXNzZXNdIG9mIE9iamVjdC5lbnRyaWVzKG1hbmlmZXN0LmNsYXNzZXMpKSB7XG4gICAgZm9yIChjb25zdCBbY2xhc3NOYW1lLCB7IGNsYXNzSWQgfV0gb2YgT2JqZWN0LmVudHJpZXMoY2xhc3NlcykpIHtcbiAgICAgIGVudHJpZXMucHVzaCh7IGNsYXNzTmFtZSwgY2xhc3NJZCwgZmlsZU5hbWUgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBlbnRyaWVzO1xufVxuIl19
|
package/dist/standalone.js
CHANGED
|
@@ -68,4 +68,4 @@ export class StandaloneBuilder extends BaseBuilder {
|
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
//# sourceMappingURL=
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhbG9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdGFuZGFsb25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdoRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsV0FBVztJQUNoRCxZQUFZLE1BQXNCO1FBQ2hDLEtBQUssQ0FBQztZQUNKLEdBQUcsTUFBTTtZQUNULElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzlDLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFFbkQsTUFBTSxPQUFPLEdBQUc7WUFDZCxVQUFVO1lBQ1YsWUFBWTtTQUNiLENBQUM7UUFDRixNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRCxNQUFNLGlCQUFpQixHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25FLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFbEMsb0NBQW9DO1FBQ3BDLGdFQUFnRTtRQUNoRSxzRUFBc0U7UUFDdEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUV2RSw4Q0FBOEM7UUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUNoQyxDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQztZQUN4QixrQkFBa0I7WUFDbEIsV0FBVztZQUNYLFFBQVE7U0FDVCxDQUFDLENBQUM7UUFFSCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTyxjQUFjLENBQ3BCLGFBSUMsRUFDRCxpQkFJQztRQU1ELE9BQU87WUFDTCxLQUFLLEVBQUUsRUFBRSxHQUFHLGFBQWEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7WUFDN0QsU0FBUyxFQUFFLEVBQUUsR0FBRyxhQUFhLENBQUMsU0FBUyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxFQUFFO1lBQ3pFLE9BQU8sRUFBRSxFQUFFLEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtTQUNwRSxDQUFDO0lBQ0osQ0FBQztJQUVPLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUM3QixVQUFVLEVBQ1YsWUFBWSxHQUliO1FBQ0MsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXJFLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN0RSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFNUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDO1lBQ2hELE9BQU8sRUFBRSxlQUFlO1lBQ3hCLFVBQVU7WUFDVixZQUFZO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUNqQyxVQUFVLEVBQ1YsWUFBWSxHQUliO1FBQ0MsT0FBTyxDQUFDLEdBQUcsQ0FDVCw4QkFBOEIsRUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDaEMsQ0FBQztRQUVGLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FDaEMsQ0FBQztRQUNGLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRS9DLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztZQUNwRCxPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFVBQVU7WUFDVixZQUFZO1NBQ2IsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVPLEtBQUssQ0FBQyxvQkFBb0I7UUFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFekUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMxRSxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUU5QyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUM3QixPQUFPLEVBQUUsaUJBQWlCO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VCdWlsZGVyIH0gZnJvbSAnLi9iYXNlLWJ1aWxkZXIuanMnO1xuaW1wb3J0IHR5cGUgeyBXb3JrZmxvd0NvbmZpZyB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgY2xhc3MgU3RhbmRhbG9uZUJ1aWxkZXIgZXh0ZW5kcyBCYXNlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogV29ya2Zsb3dDb25maWcpIHtcbiAgICBzdXBlcih7XG4gICAgICAuLi5jb25maWcsXG4gICAgICBkaXJzOiBbJy4nXSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGlucHV0RmlsZXMgPSBhd2FpdCB0aGlzLmdldElucHV0RmlsZXMoKTtcbiAgICBjb25zdCB0c2NvbmZpZ1BhdGggPSBhd2FpdCB0aGlzLmZpbmRUc0NvbmZpZ1BhdGgoKTtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICBpbnB1dEZpbGVzLFxuICAgICAgdHNjb25maWdQYXRoLFxuICAgIH07XG4gICAgY29uc3Qgc3RlcHNNYW5pZmVzdCA9IGF3YWl0IHRoaXMuYnVpbGRTdGVwc0J1bmRsZShvcHRpb25zKTtcbiAgICBjb25zdCB3b3JrZmxvd3NNYW5pZmVzdCA9IGF3YWl0IHRoaXMuYnVpbGRXb3JrZmxvd3NCdW5kbGUob3B0aW9ucyk7XG4gICAgYXdhaXQgdGhpcy5idWlsZFdlYmhvb2tGdW5jdGlvbigpO1xuXG4gICAgLy8gTWVyZ2UgbWFuaWZlc3RzIGZyb20gYm90aCBidW5kbGVzXG4gICAgLy8gU3RlcHMgYnVuZGxlIGRpc2NvdmVycyBjbGFzc2VzIGZyb20gZGVmYXVsdCBleHBvcnQgY29uZGl0aW9uc1xuICAgIC8vIFdvcmtmbG93IGJ1bmRsZSBkaXNjb3ZlcnMgY2xhc3NlcyBmcm9tICd3b3JrZmxvdycgZXhwb3J0IGNvbmRpdGlvbnNcbiAgICBjb25zdCBtYW5pZmVzdCA9IHRoaXMubWVyZ2VNYW5pZmVzdHMoc3RlcHNNYW5pZmVzdCwgd29ya2Zsb3dzTWFuaWZlc3QpO1xuXG4gICAgLy8gQnVpbGQgdW5pZmllZCBtYW5pZmVzdCBmcm9tIHdvcmtmbG93IGJ1bmRsZVxuICAgIGNvbnN0IHdvcmtmbG93QnVuZGxlUGF0aCA9IHRoaXMucmVzb2x2ZVBhdGgoXG4gICAgICB0aGlzLmNvbmZpZy53b3JrZmxvd3NCdW5kbGVQYXRoXG4gICAgKTtcbiAgICBjb25zdCBtYW5pZmVzdERpciA9IHRoaXMucmVzb2x2ZVBhdGgoJy53ZWxsLWtub3duL3dvcmtmbG93L3YxJyk7XG4gICAgYXdhaXQgdGhpcy5jcmVhdGVNYW5pZmVzdCh7XG4gICAgICB3b3JrZmxvd0J1bmRsZVBhdGgsXG4gICAgICBtYW5pZmVzdERpcixcbiAgICAgIG1hbmlmZXN0LFxuICAgIH0pO1xuXG4gICAgYXdhaXQgdGhpcy5jcmVhdGVDbGllbnRMaWJyYXJ5KCk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlTWFuaWZlc3RzKFxuICAgIHN0ZXBzTWFuaWZlc3Q6IHtcbiAgICAgIHN0ZXBzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICAgIHdvcmtmbG93cz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICBjbGFzc2VzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgICB9LFxuICAgIHdvcmtmbG93c01hbmlmZXN0OiB7XG4gICAgICBzdGVwcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgICB3b3JrZmxvd3M/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgICAgY2xhc3Nlcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgfVxuICApOiB7XG4gICAgc3RlcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICAgIHdvcmtmbG93cz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgY2xhc3Nlcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIH0ge1xuICAgIHJldHVybiB7XG4gICAgICBzdGVwczogeyAuLi5zdGVwc01hbmlmZXN0LnN0ZXBzLCAuLi53b3JrZmxvd3NNYW5pZmVzdC5zdGVwcyB9LFxuICAgICAgd29ya2Zsb3dzOiB7IC4uLnN0ZXBzTWFuaWZlc3Qud29ya2Zsb3dzLCAuLi53b3JrZmxvd3NNYW5pZmVzdC53b3JrZmxvd3MgfSxcbiAgICAgIGNsYXNzZXM6IHsgLi4uc3RlcHNNYW5pZmVzdC5jbGFzc2VzLCAuLi53b3JrZmxvd3NNYW5pZmVzdC5jbGFzc2VzIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgYnVpbGRTdGVwc0J1bmRsZSh7XG4gICAgaW5wdXRGaWxlcyxcbiAgICB0c2NvbmZpZ1BhdGgsXG4gIH06IHtcbiAgICBpbnB1dEZpbGVzOiBzdHJpbmdbXTtcbiAgICB0c2NvbmZpZ1BhdGg/OiBzdHJpbmc7XG4gIH0pIHtcbiAgICBjb25zb2xlLmxvZygnQ3JlYXRpbmcgc3RlcHMgYnVuZGxlIGF0JywgdGhpcy5jb25maWcuc3RlcHNCdW5kbGVQYXRoKTtcblxuICAgIGNvbnN0IHN0ZXBzQnVuZGxlUGF0aCA9IHRoaXMucmVzb2x2ZVBhdGgodGhpcy5jb25maWcuc3RlcHNCdW5kbGVQYXRoKTtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZURpcmVjdG9yeShzdGVwc0J1bmRsZVBhdGgpO1xuXG4gICAgY29uc3QgeyBtYW5pZmVzdCB9ID0gYXdhaXQgdGhpcy5jcmVhdGVTdGVwc0J1bmRsZSh7XG4gICAgICBvdXRmaWxlOiBzdGVwc0J1bmRsZVBhdGgsXG4gICAgICBpbnB1dEZpbGVzLFxuICAgICAgdHNjb25maWdQYXRoLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hbmlmZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBidWlsZFdvcmtmbG93c0J1bmRsZSh7XG4gICAgaW5wdXRGaWxlcyxcbiAgICB0c2NvbmZpZ1BhdGgsXG4gIH06IHtcbiAgICBpbnB1dEZpbGVzOiBzdHJpbmdbXTtcbiAgICB0c2NvbmZpZ1BhdGg/OiBzdHJpbmc7XG4gIH0pIHtcbiAgICBjb25zb2xlLmxvZyhcbiAgICAgICdDcmVhdGluZyB3b3JrZmxvd3MgYnVuZGxlIGF0JyxcbiAgICAgIHRoaXMuY29uZmlnLndvcmtmbG93c0J1bmRsZVBhdGhcbiAgICApO1xuXG4gICAgY29uc3Qgd29ya2Zsb3dCdW5kbGVQYXRoID0gdGhpcy5yZXNvbHZlUGF0aChcbiAgICAgIHRoaXMuY29uZmlnLndvcmtmbG93c0J1bmRsZVBhdGhcbiAgICApO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlRGlyZWN0b3J5KHdvcmtmbG93QnVuZGxlUGF0aCk7XG5cbiAgICBjb25zdCB7IG1hbmlmZXN0IH0gPSBhd2FpdCB0aGlzLmNyZWF0ZVdvcmtmbG93c0J1bmRsZSh7XG4gICAgICBvdXRmaWxlOiB3b3JrZmxvd0J1bmRsZVBhdGgsXG4gICAgICBpbnB1dEZpbGVzLFxuICAgICAgdHNjb25maWdQYXRoLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hbmlmZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBidWlsZFdlYmhvb2tGdW5jdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zb2xlLmxvZygnQ3JlYXRpbmcgd2ViaG9vayBidW5kbGUgYXQnLCB0aGlzLmNvbmZpZy53ZWJob29rQnVuZGxlUGF0aCk7XG5cbiAgICBjb25zdCB3ZWJob29rQnVuZGxlUGF0aCA9IHRoaXMucmVzb2x2ZVBhdGgodGhpcy5jb25maWcud2ViaG9va0J1bmRsZVBhdGgpO1xuICAgIGF3YWl0IHRoaXMuZW5zdXJlRGlyZWN0b3J5KHdlYmhvb2tCdW5kbGVQYXRoKTtcblxuICAgIGF3YWl0IHRoaXMuY3JlYXRlV2ViaG9va0J1bmRsZSh7XG4gICAgICBvdXRmaWxlOiB3ZWJob29rQnVuZGxlUGF0aCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|