@dbx-tools/appkit-generator 0.9.153 → 0.9.157
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/index.ts +16 -6
- package/lib/index.d.ts +16 -6
- package/lib/index.js +17 -7
- package/lib/src/assets.d.ts +1 -1
- package/lib/src/assets.js +4 -4
- package/lib/src/config.js +9 -12
- package/lib/src/dashboard.d.ts +2 -2
- package/lib/src/dashboard.js +6 -6
- package/lib/src/data.d.ts +1 -1
- package/lib/src/data.js +6 -6
- package/lib/src/defaults.d.ts +1 -1
- package/lib/src/defaults.js +1 -1
- package/lib/src/generate.d.ts +2 -1
- package/lib/src/generate.js +5 -4
- package/lib/src/genie.d.ts +1 -1
- package/lib/src/genie.js +5 -5
- package/lib/src/kpi.d.ts +1 -1
- package/lib/src/kpi.js +4 -4
- package/lib/src/namespace.d.ts +1 -1
- package/lib/src/namespace.js +12 -12
- package/lib/src/operations.d.ts +1 -3
- package/lib/src/operations.js +1 -1
- package/lib/src/plan.d.ts +1 -3
- package/lib/src/plan.js +2 -2
- package/lib/src/plugin.d.ts +8 -8
- package/lib/src/plugin.js +8 -12
- package/lib/src/research.d.ts +2 -3
- package/lib/src/research.js +8 -8
- package/lib/src/schema.d.ts +2 -4
- package/lib/src/schema.js +3 -4
- package/lib/src/structured.js +2 -2
- package/lib/src/workflow.js +3 -4
- package/package.json +10 -154
- package/src/assets.ts +4 -4
- package/src/config.ts +10 -21
- package/src/dashboard.ts +6 -6
- package/src/data.ts +7 -7
- package/src/defaults.ts +2 -1
- package/src/generate.ts +9 -10
- package/src/genie.ts +4 -4
- package/src/kpi.ts +3 -3
- package/src/namespace.ts +11 -11
- package/src/operations.ts +5 -3
- package/src/plan.ts +3 -3
- package/src/plugin.ts +9 -11
- package/src/research.ts +14 -16
- package/src/schema.ts +4 -29
- package/src/structured.ts +1 -1
- package/src/workflow.ts +3 -3
package/lib/src/operations.js
CHANGED
|
@@ -93,4 +93,4 @@ export class GeneratorOperations {
|
|
|
93
93
|
return this.config.warehouseId;
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWV4RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVc5QyxxRUFBcUU7QUFDckUsTUFBTSxPQUFPLG1CQUFtQjtJQUNiLE1BQU0sQ0FBMEI7SUFDaEMsY0FBYyxDQUFzQjtJQUVyRCwwREFBMEQ7SUFDMUQsWUFBWSxPQUFtQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO0lBQy9DLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsYUFBYSxDQUNYLE9BQStCLEVBQy9CLE1BQW9CLEVBQ3BCLFVBQWtDO1FBRWxDLE9BQU8sb0JBQW9CLENBQ3pCLE9BQU8sRUFDUDtZQUNFLE1BQU0sRUFBRSxJQUFJLENBQUMsY0FBYztZQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENB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QUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixNQUFNLElBQUksa0JBQWtCLENBQUMsdURBQXVELENBQUMsQ0FBQztRQUN4RixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUM3QixDQUFDO0lBRUQseUVBQXlFO0lBQ2pFLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksa0JBQWtCLENBQUMsNkRBQTZELENBQUMsQ0FBQztRQUM5RixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJldXNhYmxlIGdlbmVyYXRvciBvcGVyYXRpb25zIHNoYXJlZCBieSB0b29scyBhbmQgd29ya2Zsb3cgc3RlcHMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IENvbmZpZ3VyYXRpb25FcnJvciB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXRcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRHZW5lcmF0aW9uUmVxdWVzdCwgQnJhbmRQYWNrYWdlIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvci9icmFuZFwiO1xuaW1wb3J0IHR5cGUgeyBLcGlSZXNlYXJjaFJlcXVlc3QsIEtwaVJlc2VhcmNoUmVzdWx0IH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvci9rcGlcIjtcbmltcG9ydCB0eXBlIHtcbiAgQ3JlYXRlR2VuZXJhdG9yUHJlc2VudGF0aW9uUmVxdWVzdCxcbiAgR2VuZXJhdGVkRGFzaGJvYXJkLFxuICBHZW5lcmF0ZWRHZW5pZVNwYWNlLFxuICBHZW5lcmF0ZWRTY2hlbWEsXG4gIEdlbmVyYXRvclBsYW4sXG4gIE1hdGVyaWFsaXplR2VuZXJhdG9yRGF0YVJlcXVlc3QsXG4gIE1hdGVyaWFsaXplZEdlbmVyYXRvckRhdGEsXG4gIFBsYW5HZW5lcmF0b3JEYXRhUmVxdWVzdCxcbiAgUHJvdmlzaW9uR2VuZXJhdG9yU2NoZW1hUmVxdWVzdCxcbn0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvci93b3JrZmxvd1wiO1xuaW1wb3J0IHR5cGUgeyBSZXNvbHZlZEdlbmVyYXRvckNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy50c1wiO1xuaW1wb3J0IHsgY3JlYXRlR2VuZXJhdG9yRGFzaGJvYXJkIH0gZnJvbSBcIi4vZGFzaGJvYXJkLnRzXCI7XG5pbXBvcnQgeyBtYXRlcmlhbGl6ZUdlbmVyYXRvckRhdGEgfSBmcm9tIFwiLi9kYXRhLnRzXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUJyYW5kUGFja2FnZSB9IGZyb20gXCIuL2dlbmVyYXRlLnRzXCI7XG5pbXBvcnQgeyBjcmVhdGVHZW5lcmF0b3JHZW5pZVNwYWNlIH0gZnJvbSBcIi4vZ2VuaWUudHNcIjtcbmltcG9ydCB7IHJlc2VhcmNoS3BpcyB9IGZyb20gXCIuL2twaS50c1wiO1xuaW1wb3J0IHsgcHJvdmlzaW9uR2VuZXJhdG9yU2NoZW1hIH0gZnJvbSBcIi4vbmFtZXNwYWNlLnRzXCI7XG5pbXBvcnQgeyBwbGFuR2VuZXJhdG9yRGF0YSB9IGZyb20gXCIuL3BsYW4udHNcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRQcm9ncmVzc1JlcG9ydGVyLCBCcmFuZFJlc2VhcmNoQ2xpZW50IH0gZnJvbSBcIi4vcmVzZWFyY2gudHNcIjtcblxuLyoqIFJ1bnRpbWUgZGVwZW5kZW5jaWVzIGNhcHR1cmVkIGJ5IG9uZSBnZW5lcmF0b3IgcGx1Z2luIGluc3RhbmNlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0b3JPcGVyYXRpb25zT3B0aW9ucyB7XG4gIC8qKiBSZXNvbHZlZCBnZW5lcmF0b3IgY29uZmlndXJhdGlvbi4gKi9cbiAgY29uZmlnOiBSZXNvbHZlZEdlbmVyYXRvckNvbmZpZztcbiAgLyoqIFJlZ2lzdGVyZWQgd2ViLXNlYXJjaCBwbHVnaW4gb3BlcmF0aW9ucy4gKi9cbiAgcmVzZWFyY2hDbGllbnQ6IEJyYW5kUmVzZWFyY2hDbGllbnQ7XG59XG5cbi8qKiBPbmUgYmVoYXZpb3Igb3duZXIgZm9yIGV2ZXJ5IGdlbmVyYXRvciB0b29sIGFuZCB3b3JrZmxvdyBzdGVwLiAqL1xuZXhwb3J0IGNsYXNzIEdlbmVyYXRvck9wZXJhdGlvbnMge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogUmVzb2x2ZWRHZW5lcmF0b3JDb25maWc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzZWFyY2hDbGllbnQ6IEJyYW5kUmVzZWFyY2hDbGllbnQ7XG5cbiAgLyoqIENyZWF0ZSBvcGVyYXRpb25zIG92ZXIgb25lIGlzb2xhdGVkIHBsdWdpbiBydW50aW1lLiAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBHZW5lcmF0b3JPcGVyYXRpb25zT3B0aW9ucykge1xuICAgIHRoaXMuY29uZmlnID0gb3B0aW9ucy5jb25maWc7XG4gICAgdGhpcy5yZXNlYXJjaENsaWVudCA9IG9wdGlvbnMucmVzZWFyY2hDbGllbnQ7XG4gIH1cblxuICAvKiogR2VuZXJhdGUgcG9ydGFibGUgYnJhbmQgYXNzZXRzIHdpdGhvdXQgS1BJIHJlc2VhcmNoIG9yIERhdGFicmlja3Mgd3JpdGVzLiAqL1xuICBnZW5lcmF0ZUJyYW5kKFxuICAgIHJlcXVlc3Q6IEJyYW5kR2VuZXJhdGlvblJlcXVlc3QsXG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4gICAgb25Qcm9ncmVzcz86IEJyYW5kUHJvZ3Jlc3NSZXBvcnRlcixcbiAgKTogUHJvbWlzZTxCcmFuZFBhY2thZ2U+IHtcbiAgICByZXR1cm4gZ2VuZXJhdGVCcmFuZFBhY2thZ2UoXG4gICAgICByZXF1ZXN0LFxuICAgICAge1xuICAgICAgICBjbGllbnQ6IHRoaXMucmVzZWFyY2hDbGllbnQsXG4gICAgICAgIC4uLih0aGlzLmNvbmZpZy5tb2RlbCA/IHsgbW9kZWw6IHRoaXMuY29uZmlnLm1vZGVsIH0gOiB7fSksXG4gICAgICAgIG1heFNvdXJjZXM6IHRoaXMuY29uZmlnLm1heFNvdXJjZXMsXG4gICAgICAgIHNvdXJjZU1heExlbmd0aDogdGhpcy5jb25maWcuc291cmNlTWF4TGVuZ3RoLFxuICAgICAgICAuLi4ob25Qcm9ncmVzcyA/IHsgb25Qcm9ncmVzcyB9IDoge30pLFxuICAgICAgfSxcbiAgICAgIHNpZ25hbCxcbiAgICApO1xuICB9XG5cbiAgLyoqIFJlc2VhcmNoIEtQSXMgaW5kZXBlbmRlbnRseSBvZiBhbnkgbXV0YXRpb24gd29ya2Zsb3cuICovXG4gIHJlc2VhcmNoS3BpcyhyZXF1ZXN0OiBLcGlSZXNlYXJjaFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxLcGlSZXNlYXJjaFJlc3VsdD4ge1xuICAgIHJldHVybiByZXNlYXJjaEtwaXMoXG4gICAgICByZXF1ZXN0LFxuICAgICAge1xuICAgICAgICBjbGllbnQ6IHRoaXMucmVzZWFyY2hDbGllbnQsXG4gICAgICAgIG1heFNvdXJjZXM6IHRoaXMuY29uZmlnLm1heFNvdXJjZXMsXG4gICAgICAgIHNvdXJjZU1heExlbmd0aDogdGhpcy5jb25maWcuc291cmNlTWF4TGVuZ3RoLFxuICAgICAgICAuLi4odGhpcy5jb25maWcubW9kZWwgPyB7IG1vZGVsOiB0aGlzLmNvbmZpZy5tb2RlbCB9IDoge30pLFxuICAgICAgfSxcbiAgICAgIHNpZ25hbCxcbiAgICApO1xuICB9XG5cbiAgLyoqIEJ1aWxkIGEgdHlwZWQgZGV0ZXJtaW5pc3RpYyBkYXRhIHBsYW4uICovXG4gIHBsYW5EYXRhKHJlcXVlc3Q6IFBsYW5HZW5lcmF0b3JEYXRhUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPEdlbmVyYXRvclBsYW4+IHtcbiAgICByZXR1cm4gcGxhbkdlbmVyYXRvckRhdGEoXG4gICAgICB7XG4gICAgICAgIC4uLnJlcXVlc3QsXG4gICAgICAgIC4uLih0aGlzLmNvbmZpZy5tb2RlbCA/IHsgbW9kZWw6IHRoaXMuY29uZmlnLm1vZGVsIH0gOiB7fSksXG4gICAgICB9LFxuICAgICAgc2lnbmFsLFxuICAgICk7XG4gIH1cblxuICAvKiogUHJvdmlzaW9uIHRoZSBhY3RpdmUgT0JPIHVzZXIncyBkZXRlcm1pbmlzdGljIHNjaGVtYS4gKi9cbiAgcHJvdmlzaW9uU2NoZW1hKFxuICAgIHJlcXVlc3Q6IFByb3Zpc2lvbkdlbmVyYXRvclNjaGVtYVJlcXVlc3QsXG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4gICk6IFByb21pc2U8R2VuZXJhdGVkU2NoZW1hPiB7XG4gICAgcmV0dXJuIHByb3Zpc2lvbkdlbmVyYXRvclNjaGVtYShcbiAgICAgIHtcbiAgICAgICAgY2F0YWxvZzogdGhpcy5yZXF1aXJlZENhdGFsb2coKSxcbiAgICAgICAgcmVxdWVzdDogcmVxdWVzdC5yZXF1ZXN0LFxuICAgICAgfSxcbiAgICAgIHNpZ25hbCxcbiAgICApO1xuICB9XG5cbiAgLyoqIE1hdGVyaWFsaXplIGdlbmVyYXRlZCBkYXRhIGFuZCB2YWxpZGF0ZSBpdHMgS1BJIGFnZ3JlZ2F0ZXMuICovXG4gIG1hdGVyaWFsaXplRGF0YShcbiAgICByZXF1ZXN0OiBNYXRlcmlhbGl6ZUdlbmVyYXRvckRhdGFSZXF1ZXN0LFxuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuICApOiBQcm9taXNlPE1hdGVyaWFsaXplZEdlbmVyYXRvckRhdGE+IHtcbiAgICByZXR1cm4gbWF0ZXJpYWxpemVHZW5lcmF0b3JEYXRhKFxuICAgICAgcmVxdWVzdC5sb2NhdGlvbixcbiAgICAgIHJlcXVlc3QucGxhbixcbiAgICAgIHRoaXMucmVxdWlyZWRXYXJlaG91c2VJZCgpLFxuICAgICAgc2lnbmFsLFxuICAgICk7XG4gIH1cblxuICAvKiogQ3JlYXRlIGFuZCBwdWJsaXNoIGEgZGFzaGJvYXJkIHdpdGggYXV0b21hdGljIGNvbXBhbmlvbiBHZW5pZS4gKi9cbiAgY3JlYXRlRGFzaGJvYXJkKFxuICAgIHJlcXVlc3Q6IENyZWF0ZUdlbmVyYXRvclByZXNlbnRhdGlvblJlcXVlc3QsXG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4gICk6IFByb21pc2U8R2VuZXJhdGVkRGFzaGJvYXJkPiB7XG4gICAgcmV0dXJuIGNyZWF0ZUdlbmVyYXRvckRhc2hib2FyZChcbiAgICAgIHtcbiAgICAgICAgbG9jYXRpb246IHJlcXVlc3QubG9jYXRpb24sXG4gICAgICAgIHBsYW46IHJlcXVlc3QucGxhbixcbiAgICAgICAgYnJhbmQ6IHJlcXVlc3QuYnJhbmQuYnJhbmQsXG4gICAgICAgIGNvbXBhbnk6IHJlcXVlc3QucmVxdWVzdC5jb21wYW55LFxuICAgICAgICBwdXJwb3NlOiByZXF1ZXN0LnJlcXVlc3QucHVycG9zZSxcbiAgICAgICAgd2FyZWhvdXNlSWQ6IHRoaXMucmVxdWlyZWRXYXJlaG91c2VJZCgpLFxuICAgICAgfSxcbiAgICAgIHNpZ25hbCxcbiAgICApO1xuICB9XG5cbiAgLyoqIENyZWF0ZSBhIHN0YW5kYWxvbmUgR2VuaWUgc3BhY2UgZm9yIG5vLWRhc2hib2FyZCBydW5zLiAqL1xuICBjcmVhdGVHZW5pZShcbiAgICByZXF1ZXN0OiBDcmVhdGVHZW5lcmF0b3JQcmVzZW50YXRpb25SZXF1ZXN0LFxuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuICApOiBQcm9taXNlPEdlbmVyYXRlZEdlbmllU3BhY2U+IHtcbiAgICByZXR1cm4gY3JlYXRlR2VuZXJhdG9yR2VuaWVTcGFjZShcbiAgICAgIHtcbiAgICAgICAgbG9jYXRpb246IHJlcXVlc3QubG9jYXRpb24sXG4gICAgICAgIHBsYW46IHJlcXVlc3QucGxhbixcbiAgICAgICAgY29tcGFueTogcmVxdWVzdC5yZXF1ZXN0LmNvbXBhbnksXG4gICAgICAgIHB1cnBvc2U6IHJlcXVlc3QucmVxdWVzdC5wdXJwb3NlLFxuICAgICAgICB3YXJlaG91c2VJZDogdGhpcy5yZXF1aXJlZFdhcmVob3VzZUlkKCksXG4gICAgICB9LFxuICAgICAgc2lnbmFsLFxuICAgICk7XG4gIH1cblxuICAvKiogQ29uZmlndXJlZCBjYXRhbG9nIG9yIGEgZGVwbG95bWVudC10aW1lIGNvbmZpZ3VyYXRpb24gZXJyb3IuICovXG4gIHByaXZhdGUgcmVxdWlyZWRDYXRhbG9nKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5jYXRhbG9nKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmlndXJhdGlvbkVycm9yKFwiR0VORVJBVE9SX0NBVEFMT0cgaXMgcmVxdWlyZWQgZm9yIGdlbmVyYXRvciBtdXRhdGlvbnNcIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5jYXRhbG9nO1xuICB9XG5cbiAgLyoqIENvbmZpZ3VyZWQgU1FMIHdhcmVob3VzZSBvciBhIGRlcGxveW1lbnQtdGltZSBjb25maWd1cmF0aW9uIGVycm9yLiAqL1xuICBwcml2YXRlIHJlcXVpcmVkV2FyZWhvdXNlSWQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLndhcmVob3VzZUlkKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmlndXJhdGlvbkVycm9yKFwiREFUQUJSSUNLU19XQVJFSE9VU0VfSUQgaXMgcmVxdWlyZWQgZm9yIGdlbmVyYXRvciBtdXRhdGlvbnNcIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpZy53YXJlaG91c2VJZDtcbiAgfVxufVxuIl19
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQWlCeEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFXOUMscUVBQXFFO0FBQ3JFLE1BQU0sT0FBTyxtQkFBbUI7SUFDYixNQUFNLENBQTBCO0lBQ2hDLGNBQWMsQ0FBc0I7SUFFckQsMERBQTBEO0lBQzFELFlBQVksT0FBbUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLGFBQWEsQ0FDWCxPQUErQixFQUMvQixNQUFvQixFQUNwQixVQUFrQztRQUVsQyxPQUFPLG9CQUFvQixDQUN6QixPQUFPLEVBQ1A7WUFDRSxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDM0IsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxD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QUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLGtCQUFrQixDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFDeEYsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7SUFDN0IsQ0FBQztJQUVELHlFQUF5RTtJQUNqRSxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDN0IsTUFBTSxJQUFJLGtCQUFrQixDQUFDLDZEQUE2RCxDQUFDLENBQUM7UUFDOUYsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDakMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXVzYWJsZSBnZW5lcmF0b3Igb3BlcmF0aW9ucyBzaGFyZWQgYnkgdG9vbHMgYW5kIHdvcmtmbG93IHN0ZXBzLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQgeyBDb25maWd1cmF0aW9uRXJyb3IgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgdHlwZSB7XG4gIEJyYW5kR2VuZXJhdGlvblJlcXVlc3QsXG4gIEJyYW5kUGFja2FnZSxcbiAgS3BpUmVzZWFyY2hSZXF1ZXN0LFxuICBLcGlSZXNlYXJjaFJlc3VsdCxcbiAgQ3JlYXRlR2VuZXJhdG9yUHJlc2VudGF0aW9uUmVxdWVzdCxcbiAgR2VuZXJhdGVkRGFzaGJvYXJkLFxuICBHZW5lcmF0ZWRHZW5pZVNwYWNlLFxuICBHZW5lcmF0ZWRTY2hlbWEsXG4gIEdlbmVyYXRvclBsYW4sXG4gIE1hdGVyaWFsaXplR2VuZXJhdG9yRGF0YVJlcXVlc3QsXG4gIE1hdGVyaWFsaXplZEdlbmVyYXRvckRhdGEsXG4gIFBsYW5HZW5lcmF0b3JEYXRhUmVxdWVzdCxcbiAgUHJvdmlzaW9uR2VuZXJhdG9yU2NoZW1hUmVxdWVzdCxcbn0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvclwiO1xuaW1wb3J0IHR5cGUgeyBSZXNvbHZlZEdlbmVyYXRvckNvbmZpZyB9IGZyb20gXCIuL2NvbmZpZy50c1wiO1xuaW1wb3J0IHsgY3JlYXRlR2VuZXJhdG9yRGFzaGJvYXJkIH0gZnJvbSBcIi4vZGFzaGJvYXJkLnRzXCI7XG5pbXBvcnQgeyBtYXRlcmlhbGl6ZUdlbmVyYXRvckRhdGEgfSBmcm9tIFwiLi9kYXRhLnRzXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUJyYW5kUGFja2FnZSB9IGZyb20gXCIuL2dlbmVyYXRlLnRzXCI7XG5pbXBvcnQgeyBjcmVhdGVHZW5lcmF0b3JHZW5pZVNwYWNlIH0gZnJvbSBcIi4vZ2VuaWUudHNcIjtcbmltcG9ydCB7IHJlc2VhcmNoS3BpcyB9IGZyb20gXCIuL2twaS50c1wiO1xuaW1wb3J0IHsgcHJvdmlzaW9uR2VuZXJhdG9yU2NoZW1hIH0gZnJvbSBcIi4vbmFtZXNwYWNlLnRzXCI7XG5pbXBvcnQgeyBwbGFuR2VuZXJhdG9yRGF0YSB9IGZyb20gXCIuL3BsYW4udHNcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRQcm9ncmVzc1JlcG9ydGVyLCBCcmFuZFJlc2VhcmNoQ2xpZW50IH0gZnJvbSBcIi4vcmVzZWFyY2gudHNcIjtcblxuLyoqIFJ1bnRpbWUgZGVwZW5kZW5jaWVzIGNhcHR1cmVkIGJ5IG9uZSBnZW5lcmF0b3IgcGx1Z2luIGluc3RhbmNlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW5lcmF0b3JPcGVyYXRpb25zT3B0aW9ucyB7XG4gIC8qKiBSZXNvbHZlZCBnZW5lcmF0b3IgY29uZmlndXJhdGlvbi4gKi9cbiAgY29uZmlnOiBSZXNvbHZlZEdlbmVyYXRvckNvbmZpZztcbiAgLyoqIFJlZ2lzdGVyZWQgd2ViLXNlYXJjaCBwbHVnaW4gb3BlcmF0aW9ucy4gKi9cbiAgcmVzZWFyY2hDbGllbnQ6IEJyYW5kUmVzZWFyY2hDbGllbnQ7XG59XG5cbi8qKiBPbmUgYmVoYXZpb3Igb3duZXIgZm9yIGV2ZXJ5IGdlbmVyYXRvciB0b29sIGFuZCB3b3JrZmxvdyBzdGVwLiAqL1xuZXhwb3J0IGNsYXNzIEdlbmVyYXRvck9wZXJhdGlvbnMge1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogUmVzb2x2ZWRHZW5lcmF0b3JDb25maWc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzZWFyY2hDbGllbnQ6IEJyYW5kUmVzZWFyY2hDbGllbnQ7XG5cbiAgLyoqIENyZWF0ZSBvcGVyYXRpb25zIG92ZXIgb25lIGlzb2xhdGVkIHBsdWdpbiBydW50aW1lLiAqL1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBHZW5lcmF0b3JPcGVyYXRpb25zT3B0aW9ucykge1xuICAgIHRoaXMuY29uZmlnID0gb3B0aW9ucy5jb25maWc7XG4gICAgdGhpcy5yZXNlYXJjaENsaWVudCA9IG9wdGlvbnMucmVzZWFyY2hDbGllbnQ7XG4gIH1cblxuICAvKiogR2VuZXJhdGUgcG9ydGFibGUgYnJhbmQgYXNzZXRzIHdpdGhvdXQgS1BJIHJlc2VhcmNoIG9yIERhdGFicmlja3Mgd3JpdGVzLiAqL1xuICBnZW5lcmF0ZUJyYW5kKFxuICAgIHJlcXVlc3Q6IEJyYW5kR2VuZXJhdGlvblJlcXVlc3QsXG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4gICAgb25Qcm9ncmVzcz86IEJyYW5kUHJvZ3Jlc3NSZXBvcnRlcixcbiAgKTogUHJvbWlzZTxCcmFuZFBhY2thZ2U+IHtcbiAgICByZXR1cm4gZ2VuZXJhdGVCcmFuZFBhY2thZ2UoXG4gICAgICByZXF1ZXN0LFxuICAgICAge1xuICAgICAgICBjbGllbnQ6IHRoaXMucmVzZWFyY2hDbGllbnQsXG4gICAgICAgIC4uLih0aGlzLmNvbmZpZy5tb2RlbCA/IHsgbW9kZWw6IHRoaXMuY29uZmlnLm1vZGVsIH0gOiB7fSksXG4gICAgICAgIG1heFNvdXJjZXM6IHRoaXMuY29uZmlnLm1heFNvdXJjZXMsXG4gICAgICAgIHNvdXJjZU1heExlbmd0aDogdGhpcy5jb25maWcuc291cmNlTWF4TGVuZ3RoLFxuICAgICAgICAuLi4ob25Qcm9ncmVzcyA/IHsgb25Qcm9ncmVzcyB9IDoge30pLFxuICAgICAgfSxcbiAgICAgIHNpZ25hbCxcbiAgICApO1xuICB9XG5cbiAgLyoqIFJlc2VhcmNoIEtQSXMgaW5kZXBlbmRlbnRseSBvZiBhbnkgbXV0YXRpb24gd29ya2Zsb3cuICovXG4gIHJlc2VhcmNoS3BpcyhyZXF1ZXN0OiBLcGlSZXNlYXJjaFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxLcGlSZXNlYXJjaFJlc3VsdD4ge1xuICAgIHJldHVybiByZXNlYXJjaEtwaXMoXG4gICAgICByZXF1ZXN0LFxuICAgICAge1xuICAgICAgICBjbGllbnQ6IHRoaXMucmVzZWFyY2hDbGllbnQsXG4gICAgICAgIG1heFNvdXJjZXM6IHRoaXMuY29uZmlnLm1heFNvdXJjZXMsXG4gICAgICAgIHNvdXJjZU1heExlbmd0aDogdGhpcy5jb25maWcuc291cmNlTWF4TGVuZ3RoLFxuICAgICAgICAuLi4odGhpcy5jb25maWcubW9kZWwgPyB7IG1vZGVsOiB0aGlzLmNvbmZpZy5tb2RlbCB9IDoge30pLFxuICAgICAgfSxcbiAgICAgIHNpZ25hbCxcbiAgICApO1xuICB9XG5cbiAgLyoqIEJ1aWxkIGEgdHlwZWQgZGV0ZXJtaW5pc3RpYyBkYXRhIHBsYW4uICovXG4gIHBsYW5EYXRhKHJlcXVlc3Q6IFBsYW5HZW5lcmF0b3JEYXRhUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPEdlbmVyYXRvclBsYW4+IHtcbiAgICByZXR1cm4gcGxhbkdlbmVyYXRvckRhdGEoXG4gICAgICB7XG4gICAgICAgIC4uLnJlcXVlc3QsXG4gICAgICAgIC4uLih0aGlzLmNvbmZpZy5tb2RlbCA/IHsgbW9kZWw6IHRoaXMuY29uZmlnLm1vZGVsIH0gOiB7fSksXG4gICAgICB9LFxuICAgICAgc2lnbmFsLFxuICAgICk7XG4gIH1cblxuICAvKiogUHJvdmlzaW9uIHRoZSBhY3RpdmUgT0JPIHVzZXIncyBkZXRlcm1pbmlzdGljIHNjaGVtYS4gKi9cbiAgcHJvdmlzaW9uU2NoZW1hKFxuICAgIHJlcXVlc3Q6IFByb3Zpc2lvbkdlbmVyYXRvclNjaGVtYVJlcXVlc3QsXG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4gICk6IFByb21pc2U8R2VuZXJhdGVkU2NoZW1hPiB7XG4gICAgcmV0dXJuIHByb3Zpc2lvbkdlbmVyYXRvclNjaGVtYShcbiAgICAgIHtcbiAgICAgICAgY2F0YWxvZzogdGhpcy5yZXF1aXJlZENhdGFsb2coKSxcbiAgICAgICAgcmVxdWVzdDogcmVxdWVzdC5yZXF1ZXN0LFxuICAgICAgfSxcbiAgICAgIHNpZ25hbCxcbiAgICApO1xuICB9XG5cbiAgLyoqIE1hdGVyaWFsaXplIGdlbmVyYXRlZCBkYXRhIGFuZCB2YWxpZGF0ZSBpdHMgS1BJIGFnZ3JlZ2F0ZXMuICovXG4gIG1hdGVyaWFsaXplRGF0YShcbiAgICByZXF1ZXN0OiBNYXRlcmlhbGl6ZUdlbmVyYXRvckRhdGFSZXF1ZXN0LFxuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuICApOiBQcm9taXNlPE1hdGVyaWFsaXplZEdlbmVyYXRvckRhdGE+IHtcbiAgICByZXR1cm4gbWF0ZXJpYWxpemVHZW5lcmF0b3JEYXRhKFxuICAgICAgcmVxdWVzdC5sb2NhdGlvbixcbiAgICAgIHJlcXVlc3QucGxhbixcbiAgICAgIHRoaXMucmVxdWlyZWRXYXJlaG91c2VJZCgpLFxuICAgICAgc2lnbmFsLFxuICAgICk7XG4gIH1cblxuICAvKiogQ3JlYXRlIGFuZCBwdWJsaXNoIGEgZGFzaGJvYXJkIHdpdGggYXV0b21hdGljIGNvbXBhbmlvbiBHZW5pZS4gKi9cbiAgY3JlYXRlRGFzaGJvYXJkKFxuICAgIHJlcXVlc3Q6IENyZWF0ZUdlbmVyYXRvclByZXNlbnRhdGlvblJlcXVlc3QsXG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4gICk6IFByb21pc2U8R2VuZXJhdGVkRGFzaGJvYXJkPiB7XG4gICAgcmV0dXJuIGNyZWF0ZUdlbmVyYXRvckRhc2hib2FyZChcbiAgICAgIHtcbiAgICAgICAgbG9jYXRpb246IHJlcXVlc3QubG9jYXRpb24sXG4gICAgICAgIHBsYW46IHJlcXVlc3QucGxhbixcbiAgICAgICAgYnJhbmQ6IHJlcXVlc3QuYnJhbmQuYnJhbmQsXG4gICAgICAgIGNvbXBhbnk6IHJlcXVlc3QucmVxdWVzdC5jb21wYW55LFxuICAgICAgICBwdXJwb3NlOiByZXF1ZXN0LnJlcXVlc3QucHVycG9zZSxcbiAgICAgICAgd2FyZWhvdXNlSWQ6IHRoaXMucmVxdWlyZWRXYXJlaG91c2VJZCgpLFxuICAgICAgfSxcbiAgICAgIHNpZ25hbCxcbiAgICApO1xuICB9XG5cbiAgLyoqIENyZWF0ZSBhIHN0YW5kYWxvbmUgR2VuaWUgc3BhY2UgZm9yIG5vLWRhc2hib2FyZCBydW5zLiAqL1xuICBjcmVhdGVHZW5pZShcbiAgICByZXF1ZXN0OiBDcmVhdGVHZW5lcmF0b3JQcmVzZW50YXRpb25SZXF1ZXN0LFxuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuICApOiBQcm9taXNlPEdlbmVyYXRlZEdlbmllU3BhY2U+IHtcbiAgICByZXR1cm4gY3JlYXRlR2VuZXJhdG9yR2VuaWVTcGFjZShcbiAgICAgIHtcbiAgICAgICAgbG9jYXRpb246IHJlcXVlc3QubG9jYXRpb24sXG4gICAgICAgIHBsYW46IHJlcXVlc3QucGxhbixcbiAgICAgICAgY29tcGFueTogcmVxdWVzdC5yZXF1ZXN0LmNvbXBhbnksXG4gICAgICAgIHB1cnBvc2U6IHJlcXVlc3QucmVxdWVzdC5wdXJwb3NlLFxuICAgICAgICB3YXJlaG91c2VJZDogdGhpcy5yZXF1aXJlZFdhcmVob3VzZUlkKCksXG4gICAgICB9LFxuICAgICAgc2lnbmFsLFxuICAgICk7XG4gIH1cblxuICAvKiogQ29uZmlndXJlZCBjYXRhbG9nIG9yIGEgZGVwbG95bWVudC10aW1lIGNvbmZpZ3VyYXRpb24gZXJyb3IuICovXG4gIHByaXZhdGUgcmVxdWlyZWRDYXRhbG9nKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZy5jYXRhbG9nKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmlndXJhdGlvbkVycm9yKFwiR0VORVJBVE9SX0NBVEFMT0cgaXMgcmVxdWlyZWQgZm9yIGdlbmVyYXRvciBtdXRhdGlvbnNcIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpZy5jYXRhbG9nO1xuICB9XG5cbiAgLyoqIENvbmZpZ3VyZWQgU1FMIHdhcmVob3VzZSBvciBhIGRlcGxveW1lbnQtdGltZSBjb25maWd1cmF0aW9uIGVycm9yLiAqL1xuICBwcml2YXRlIHJlcXVpcmVkV2FyZWhvdXNlSWQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLndhcmVob3VzZUlkKSB7XG4gICAgICB0aHJvdyBuZXcgQ29uZmlndXJhdGlvbkVycm9yKFwiREFUQUJSSUNLU19XQVJFSE9VU0VfSUQgaXMgcmVxdWlyZWQgZm9yIGdlbmVyYXRvciBtdXRhdGlvbnNcIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbmZpZy53YXJlaG91c2VJZDtcbiAgfVxufVxuIl19
|
package/lib/src/plan.d.ts
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import type
|
|
7
|
-
import type { KpiResearchResult } from "@dbx-tools/shared-generator/kpi";
|
|
8
|
-
import { type GeneratorPlan, type GeneratorRequest } from "@dbx-tools/shared-generator/workflow";
|
|
6
|
+
import { type BrandPackage, type KpiResearchResult, type GeneratorPlan, type GeneratorRequest } from "@dbx-tools/shared-generator";
|
|
9
7
|
/** Inputs for deterministic demo-data planning. */
|
|
10
8
|
export interface PlanGeneratorDataInput {
|
|
11
9
|
/** Validated workflow request. */
|
package/lib/src/plan.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module
|
|
5
5
|
*/
|
|
6
|
-
import { GeneratorPlanSchema, } from "@dbx-tools/shared-generator
|
|
6
|
+
import { GeneratorPlanSchema, } from "@dbx-tools/shared-generator";
|
|
7
7
|
import { generateStructured } from "./structured.js";
|
|
8
8
|
/** Build a constrained plan that can be compiled without model-authored SQL. */
|
|
9
9
|
export async function planGeneratorData(input, signal) {
|
|
@@ -30,4 +30,4 @@ export async function planGeneratorData(input, signal) {
|
|
|
30
30
|
rowCount: input.request.rowCount,
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbGFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQ0wsbUJBQW1CLEdBS3BCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFjckQsZ0ZBQWdGO0FBQ2hGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQ3JDLEtBQTZCLEVBQzdCLE1BQW9CO0lBRXBCLE1BQU0sU0FBUyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7UUFDekMsRUFBRSxFQUFFLG1CQUFtQjtRQUN2QixZQUFZLEVBQUU7WUFDWix1RUFBdUU7WUFDdkUsNkRBQTZEO1lBQzdELG9FQUFvRTtZQUNwRSxnRUFBZ0U7WUFDaEUsK0RBQStEO1NBQ2hFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNYLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUNwQjtZQUNFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQ3hCLElBQUksRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUk7U0FDN0IsRUFDRCxJQUFJLEVBQ0osQ0FBQyxDQUNGO1FBQ0QsTUFBTSxFQUFFLG1CQUFtQjtRQUMzQixHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQzlCLENBQUMsQ0FBQztJQUNILE9BQU8sbUJBQW1CLENBQUMsS0FBSyxDQUFDO1FBQy9CLEdBQUcsU0FBUztRQUNaLFFBQVEsRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVE7S0FDakMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU3RydWN0dXJlZCBkZW1vLWRhdGEgcGxhbm5pbmcgZnJvbSBicmFuZCBhbmQgS1BJIHJlc2VhcmNoLlxuICpcbiAqIEBtb2R1bGVcbiAqL1xuXG5pbXBvcnQge1xuICBHZW5lcmF0b3JQbGFuU2NoZW1hLFxuICB0eXBlIEJyYW5kUGFja2FnZSxcbiAgdHlwZSBLcGlSZXNlYXJjaFJlc3VsdCxcbiAgdHlwZSBHZW5lcmF0b3JQbGFuLFxuICB0eXBlIEdlbmVyYXRvclJlcXVlc3QsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IGdlbmVyYXRlU3RydWN0dXJlZCB9IGZyb20gXCIuL3N0cnVjdHVyZWQudHNcIjtcblxuLyoqIElucHV0cyBmb3IgZGV0ZXJtaW5pc3RpYyBkZW1vLWRhdGEgcGxhbm5pbmcuICovXG5leHBvcnQgaW50ZXJmYWNlIFBsYW5HZW5lcmF0b3JEYXRhSW5wdXQge1xuICAvKiogVmFsaWRhdGVkIHdvcmtmbG93IHJlcXVlc3QuICovXG4gIHJlcXVlc3Q6IEdlbmVyYXRvclJlcXVlc3Q7XG4gIC8qKiBSZXNlYXJjaGVkIGJyYW5kIHBhY2thZ2UuICovXG4gIGJyYW5kOiBCcmFuZFBhY2thZ2U7XG4gIC8qKiBFdmlkZW5jZS1iYWNrZWQgS1BJIHJlc2VhcmNoLiAqL1xuICBrcGlSZXNlYXJjaDogS3BpUmVzZWFyY2hSZXN1bHQ7XG4gIC8qKiBPcHRpb25hbCBtb2RlbCBwcmVmZXJlbmNlLiAqL1xuICBtb2RlbD86IHN0cmluZztcbn1cblxuLyoqIEJ1aWxkIGEgY29uc3RyYWluZWQgcGxhbiB0aGF0IGNhbiBiZSBjb21waWxlZCB3aXRob3V0IG1vZGVsLWF1dGhvcmVkIFNRTC4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwbGFuR2VuZXJhdG9yRGF0YShcbiAgaW5wdXQ6IFBsYW5HZW5lcmF0b3JEYXRhSW5wdXQsXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuKTogUHJvbWlzZTxHZW5lcmF0b3JQbGFuPiB7XG4gIGNvbnN0IGdlbmVyYXRlZCA9IGF3YWl0IGdlbmVyYXRlU3RydWN0dXJlZCh7XG4gICAgaWQ6IFwiZGVtby1kYXRhLXBsYW5uZXJcIixcbiAgICBpbnN0cnVjdGlvbnM6IFtcbiAgICAgIFwiUGxhbiBvbmUgZGVub3JtYWxpemVkIERlbHRhIGZhY3QgdGFibGUgZm9yIGEgcmVhbGlzdGljIGJ1c2luZXNzIGRlbW8uXCIsXG4gICAgICBcIlVzZSBvbmx5IHRoZSBzdXBwbGllZCBnZW5lcmF0b3Iga2luZHMgYW5kIEtQSSBhZ2dyZWdhdGlvbnMuXCIsXG4gICAgICBcIkluY2x1ZGUgYW4gaWQgY29sdW1uLCBhIGRhdGUgY29sdW1uLCB0d28gdG8gc2l4IHVzZWZ1bCBjYXRlZ29yaWVzLFwiLFxuICAgICAgXCJudW1lcmljIGNvbHVtbnMgbmVlZGVkIGJ5IGV2ZXJ5IEtQSSwgYW5kIGEgbWVhc3VyYWJsZSBhbm9tYWx5LlwiLFxuICAgICAgXCJEbyBub3Qgd3JpdGUgU1FMLiBEbyBub3QgaW52ZW50IHVuc3VwcG9ydGVkIGdlbmVyYXRvciBmaWVsZHMuXCIsXG4gICAgXS5qb2luKFwiIFwiKSxcbiAgICBwcm9tcHQ6IEpTT04uc3RyaW5naWZ5KFxuICAgICAge1xuICAgICAgICByZXF1ZXN0OiBpbnB1dC5yZXF1ZXN0LFxuICAgICAgICBicmFuZDogaW5wdXQuYnJhbmQuYnJhbmQsXG4gICAgICAgIGtwaXM6IGlucHV0LmtwaVJlc2VhcmNoLmtwaXMsXG4gICAgICB9LFxuICAgICAgbnVsbCxcbiAgICAgIDIsXG4gICAgKSxcbiAgICBzY2hlbWE6IEdlbmVyYXRvclBsYW5TY2hlbWEsXG4gICAgLi4uKGlucHV0Lm1vZGVsID8geyBtb2RlbDogaW5wdXQubW9kZWwgfSA6IHt9KSxcbiAgICAuLi4oc2lnbmFsID8geyBzaWduYWwgfSA6IHt9KSxcbiAgfSk7XG4gIHJldHVybiBHZW5lcmF0b3JQbGFuU2NoZW1hLnBhcnNlKHtcbiAgICAuLi5nZW5lcmF0ZWQsXG4gICAgcm93Q291bnQ6IGlucHV0LnJlcXVlc3Qucm93Q291bnQsXG4gIH0pO1xufVxuIl19
|
package/lib/src/plugin.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { type IAppRouter } from "@databricks/appkit";
|
|
7
7
|
import { type ToolRegistry } from "@databricks/appkit/beta";
|
|
8
8
|
import { ToolRegistryPlugin } from "@dbx-tools/appkit";
|
|
9
|
-
import { GeneratorPluginClient } from "@dbx-tools/shared-generator
|
|
9
|
+
import { GeneratorPluginClient } from "@dbx-tools/shared-generator";
|
|
10
10
|
import { type GeneratorPluginConfig } from "./config.ts";
|
|
11
11
|
/** AppKit plugin exposing reusable generator tools and a hosted Mastra workflow. */
|
|
12
12
|
export declare class GeneratorPlugin extends ToolRegistryPlugin<GeneratorPluginConfig> {
|
|
@@ -28,13 +28,13 @@ export declare class GeneratorPlugin extends ToolRegistryPlugin<GeneratorPluginC
|
|
|
28
28
|
injectRoutes(router: IAppRouter): void;
|
|
29
29
|
/** Programmatic operations and workflow for trusted application code. */
|
|
30
30
|
exports(): {
|
|
31
|
-
generateBrand: (request: import("@dbx-tools/shared-generator
|
|
32
|
-
researchKpis: (request: import("@dbx-tools/shared-generator
|
|
33
|
-
planData: (request: import("@dbx-tools/shared-generator
|
|
34
|
-
provisionSchema: (request: import("@dbx-tools/shared-generator
|
|
35
|
-
materializeData: (request: import("@dbx-tools/shared-generator
|
|
36
|
-
createDashboard: (request: import("@dbx-tools/shared-generator
|
|
37
|
-
createGenie: (request: import("@dbx-tools/shared-generator
|
|
31
|
+
generateBrand: (request: import("@dbx-tools/shared-generator").BrandGenerationRequest, signal?: AbortSignal, onProgress?: import("./research.ts").BrandProgressReporter) => Promise<import("@dbx-tools/shared-generator").BrandPackage>;
|
|
32
|
+
researchKpis: (request: import("@dbx-tools/shared-generator").KpiResearchRequest, signal?: AbortSignal) => Promise<import("@dbx-tools/shared-generator").KpiResearchResult>;
|
|
33
|
+
planData: (request: import("@dbx-tools/shared-generator").PlanGeneratorDataRequest, signal?: AbortSignal) => Promise<import("@dbx-tools/shared-generator").GeneratorPlan>;
|
|
34
|
+
provisionSchema: (request: import("@dbx-tools/shared-generator").ProvisionGeneratorSchemaRequest, signal?: AbortSignal) => Promise<import("@dbx-tools/shared-generator").GeneratedSchema>;
|
|
35
|
+
materializeData: (request: import("@dbx-tools/shared-generator").MaterializeGeneratorDataRequest, signal?: AbortSignal) => Promise<import("@dbx-tools/shared-generator").MaterializedGeneratorData>;
|
|
36
|
+
createDashboard: (request: import("@dbx-tools/shared-generator").CreateGeneratorPresentationRequest, signal?: AbortSignal) => Promise<import("@dbx-tools/shared-generator").GeneratedDashboard>;
|
|
37
|
+
createGenie: (request: import("@dbx-tools/shared-generator").CreateGeneratorPresentationRequest, signal?: AbortSignal) => Promise<import("@dbx-tools/shared-generator").GeneratedGenieSpace>;
|
|
38
38
|
workflow: import("@mastra/core/workflows").Workflow<import("@mastra/core/workflows").DefaultEngineType, import("@mastra/core/workflows").Step<string, unknown, unknown, unknown, unknown, unknown, any, unknown>[], "generator-demo-assets", unknown, {
|
|
39
39
|
company: string;
|
|
40
40
|
purpose: string;
|
package/lib/src/plugin.js
CHANGED
|
@@ -5,13 +5,12 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { defineManifest, toPlugin } from "@databricks/appkit";
|
|
7
7
|
import { defineTool } from "@databricks/appkit/beta";
|
|
8
|
-
import {
|
|
8
|
+
import { ToolRegistryPlugin, require } from "@dbx-tools/appkit";
|
|
9
9
|
import { mastra } from "@dbx-tools/appkit-mastra";
|
|
10
10
|
import { webSearch } from "@dbx-tools/appkit-web-search";
|
|
11
|
-
import {
|
|
12
|
-
import { GENERATOR_ROUTES, GeneratorClientConfigSchema, GeneratorPluginClient, BrandGenerationEventSchema, BrandGenerationRequestSchema, } from "@dbx-tools/shared-generator
|
|
13
|
-
import { KpiResearchRequestSchema, KpiResearchResultSchema } from "@dbx-tools/shared-generator
|
|
14
|
-
import { CreateGeneratorPresentationRequestSchema, GeneratedAssetsSchema, GeneratedDashboardSchema, GeneratedGenieSpaceSchema, GeneratedSchemaSchema, GeneratorPlanSchema, MaterializeGeneratorDataRequestSchema, MaterializedGeneratorDataSchema, PlanGeneratorDataRequestSchema, ProvisionGeneratorSchemaRequestSchema, } from "@dbx-tools/shared-generator/workflow";
|
|
11
|
+
import { log, toError } from "@dbx-tools/shared-core";
|
|
12
|
+
import { GENERATOR_ROUTES, GeneratorClientConfigSchema, GeneratorPluginClient, BrandGenerationEventSchema, BrandGenerationRequestSchema, } from "@dbx-tools/shared-generator";
|
|
13
|
+
import { KpiResearchRequestSchema, KpiResearchResultSchema, CreateGeneratorPresentationRequestSchema, GeneratedAssetsSchema, GeneratedDashboardSchema, GeneratedGenieSpaceSchema, GeneratedSchemaSchema, GeneratorPlanSchema, MaterializeGeneratorDataRequestSchema, MaterializedGeneratorDataSchema, PlanGeneratorDataRequestSchema, ProvisionGeneratorSchemaRequestSchema, } from "@dbx-tools/shared-generator";
|
|
15
14
|
import { resolveGeneratorConfig, } from "./config.js";
|
|
16
15
|
import manifest from "./manifest.json" with { type: "json" };
|
|
17
16
|
import { GeneratorOperations } from "./operations.js";
|
|
@@ -92,10 +91,7 @@ export class GeneratorPlugin extends ToolRegistryPlugin {
|
|
|
92
91
|
researchClient: this.researchClient(),
|
|
93
92
|
});
|
|
94
93
|
this.workflow = createGeneratorWorkflow(this.operations);
|
|
95
|
-
|
|
96
|
-
.require(this.context, mastra, this)
|
|
97
|
-
.exports()
|
|
98
|
-
.registerWorkflow(WORKFLOW_KEY, this.workflow);
|
|
94
|
+
require(this.context, mastra, this).exports().registerWorkflow(WORKFLOW_KEY, this.workflow);
|
|
99
95
|
logger.info("ready", {
|
|
100
96
|
model: this.resolved.model ?? "automatic",
|
|
101
97
|
catalog: this.resolved.catalog ?? "brand-only",
|
|
@@ -147,7 +143,7 @@ export class GeneratorPlugin extends ToolRegistryPlugin {
|
|
|
147
143
|
send({ type: "result", package: generated });
|
|
148
144
|
}
|
|
149
145
|
catch (cause) {
|
|
150
|
-
logger.warn("brand-route-failed", { error:
|
|
146
|
+
logger.warn("brand-route-failed", { error: toError(cause) });
|
|
151
147
|
send({
|
|
152
148
|
type: "error",
|
|
153
149
|
message: "Brand generation failed. Retry the request; if it fails again, check the server logs.",
|
|
@@ -185,7 +181,7 @@ export class GeneratorPlugin extends ToolRegistryPlugin {
|
|
|
185
181
|
}
|
|
186
182
|
/** Resolve the sibling web-search plugin without recreating its policy. */
|
|
187
183
|
researchClient() {
|
|
188
|
-
const sibling =
|
|
184
|
+
const sibling = require(this.context, webSearch, this).exports();
|
|
189
185
|
return {
|
|
190
186
|
search: sibling.search,
|
|
191
187
|
fetch: sibling.fetch,
|
|
@@ -202,4 +198,4 @@ export class GeneratorPlugin extends ToolRegistryPlugin {
|
|
|
202
198
|
}
|
|
203
199
|
/** Register AppKit generator tools and workflow integration. */
|
|
204
200
|
export const generator = toPlugin(GeneratorPlugin);
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQW1CLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsNEJBQTRCLEdBRTdCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEcsT0FBTyxFQUNMLHdDQUF3QyxFQUN4QyxxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHFDQUFxQyxFQUNyQywrQkFBK0IsRUFDL0IsOEJBQThCLEVBQzlCLHFDQUFxQyxHQUN0QyxNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFDTCxzQkFBc0IsR0FHdkIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxRQUFRLE1BQU0saUJBQWlCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEQsT0FBTyxFQUFFLCtCQUEr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SUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNoRixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsT0FBTyxFQUFFO2dCQUNQLFdBQVcsRUFBRSx1QkFBdUI7Z0JBQ3BDLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFlBQVksRUFBRSwrQkFBK0I7Z0JBQzdDLFNBQVMsRUFBRSx3QkFBd0I7Z0JBQ25DLEtBQUssRUFBRSx5QkFBeUI7Z0JBQ2hDLE1BQU0sRUFBRSxxQkFBcUI7YUFDOUI7WUFDRCxNQUFNLEVBQUUscUJBQXFCO1NBQzlCLENBQUM7SUFDSixDQUFDO0lBRUQsMkVBQTJFO0lBQ25FLGNBQWM7UUFDcEIsTUFBTSxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRixPQUFPO1lBQ0wsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztZQUNwQixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7WUFDdEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1NBQy9CLENBQUM7SUFDSixDQUFDO0lBRUQseURBQXlEO0lBQ2pELGlCQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDbEYsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7O0FBR0gsZ0VBQWdFO0FBQ2hFLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFwcEtpdCBUb29sUHJvdmlkZXIgcGx1Z2luIGZvciBnb3Zlcm5lZCBEYXRhYnJpY2tzIGRlbW8gZ2VuZXJhdGlvbi5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgZGVmaW5lTWFuaWZlc3QsIHRvUGx1Z2luLCB0eXBlIElBcHBSb3V0ZXIgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0XCI7XG5pbXBvcnQgeyBkZWZpbmVUb29sLCB0eXBlIFRvb2xSZWdpc3RyeSB9IGZyb20gXCJAZGF0YWJyaWNrcy9hcHBraXQvYmV0YVwiO1xuaW1wb3J0IHsgcGx1Z2luUmVnaXN0cnksIFRvb2xSZWdpc3RyeVBsdWdpbiB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdFwiO1xuaW1wb3J0IHsgbWFzdHJhIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LW1hc3RyYVwiO1xuaW1wb3J0IHsgd2ViU2VhcmNoIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LXdlYi1zZWFyY2hcIjtcbmltcG9ydCB7IGVycm9yVXRpbHMsIGxvZyB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICBHRU5FUkFUT1JfUk9VVEVTLFxuICBHZW5lcmF0b3JDbGllbnRDb25maWdTY2hlbWEsXG4gIEdlbmVyYXRvclBsdWdpbkNsaWVudCxcbiAgQnJhbmRHZW5lcmF0aW9uRXZlbnRTY2hlbWEsXG4gIEJyYW5kR2VuZXJhdGlvblJlcXVlc3RTY2hlbWEsXG4gIHR5cGUgQnJhbmRHZW5lcmF0aW9uRXZlbnQsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5lcmF0b3IvYnJhbmRcIjtcbmltcG9ydCB7IEtwaVJlc2VhcmNoUmVxdWVzdFNjaGVtYSwgS3BpUmVzZWFyY2hSZXN1bHRTY2hlbWEgfSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuZXJhdG9yL2twaVwiO1xuaW1wb3J0IHtcbiAgQ3JlYXRlR2VuZXJhdG9yUHJlc2VudGF0aW9uUmVxdWVzdFNjaGVtYSxcbiAgR2VuZXJhdGVkQXNzZXRzU2NoZW1hLFxuICBHZW5lcmF0ZWREYXNoYm9hcmRTY2hlbWEsXG4gIEdlbmVyYXRlZEdlbmllU3BhY2VTY2hlbWEsXG4gIEdlbmVyYXRlZFNjaGVtYVNjaGVtYSxcbiAgR2VuZXJhdG9yUGxhblNjaGVtYSxcbiAgTWF0ZXJpYWxpemVHZW5lcmF0b3JEYXRhUmVxdWVzdFNjaGVtYSxcbiAgTWF0ZXJpYWxpemVkR2VuZXJhdG9yRGF0YVNjaGVtYSxcbiAgUGxhbkdlbmVyYXRvckRhdGFSZXF1ZXN0U2NoZW1hLFxuICBQcm92aXNpb25HZW5lcmF0b3JTY2hlbWFSZXF1ZXN0U2NoZW1hLFxufSBmcm9tIFwiQGRieC10b29scy9zaGFyZWQtZ2VuZXJhdG9yL3dvcmtmbG93XCI7XG5pbXBvcnQge1xuICByZXNvbHZlR2VuZXJhdG9yQ29uZmlnLFxuICB0eXBlIEdlbmVyYXRvclBsdWdpbkNvbmZpZyxcbiAgdHlwZSBSZXNvbHZlZEdlbmVyYXRvckNvbmZpZyxcbn0gZnJvbSBcIi4vY29uZmlnLnRzXCI7XG5pbXBvcnQgbWFuaWZlc3QgZnJvbSBcIi4vbWFuaWZlc3QuanNvblwiIHdpdGggeyB0eXBlOiBcImpzb25cIiB9O1xuaW1wb3J0IHsgR2VuZXJhdG9yT3BlcmF0aW9ucyB9IGZyb20gXCIuL29wZXJhdGlvbnMudHNcIjtcbmltcG9ydCB0eXBlIHsgQnJhbmRSZXNlYXJjaENsaWVudCB9IGZyb20gXCIuL3Jlc2VhcmNoLnRzXCI7XG5pbXBvcnQgeyBHRU5FUkFURV9CUkFORF9UT09MX0RFU0NSSVBUSU9OIH0gZnJvbSBcIi4vc2NoZW1hLnRzXCI7XG5pbXBvcnQgeyBjcmVhdGVHZW5lcmF0b3JXb3JrZmxvdywgdHlwZSBHZW5lcmF0b3JXb3JrZmxvdyB9IGZyb20gXCIuL3dvcmtmbG93LnRzXCI7XG5cbmNvbnN0IGxvZ2dlciA9IGxvZy5sb2dnZXIoXCJnZW5lcmF0b3JcIik7XG5jb25zdCBXT1JLRkxPV19LRVkgPSBcImdlbmVyYXRvckRlbW9Bc3NldHNcIjtcblxuLyoqIEFwcEtpdCBwbHVnaW4gZXhwb3NpbmcgcmV1c2FibGUgZ2VuZXJhdG9yIHRvb2xzIGFuZCBhIGhvc3RlZCBNYXN0cmEgd29ya2Zsb3cuICovXG5leHBvcnQgY2xhc3MgR2VuZXJhdG9yUGx1Z2luIGV4dGVuZHMgVG9vbFJlZ2lzdHJ5UGx1Z2luPEdlbmVyYXRvclBsdWdpbkNvbmZpZz4ge1xuICBzdGF0aWMgbWFuaWZlc3QgPSBkZWZpbmVNYW5pZmVzdDxcImdlbmVyYXRvclwiPihtYW5pZmVzdCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSByZXNvbHZlZDogUmVzb2x2ZWRHZW5lcmF0b3JDb25maWcgPSByZXNvbHZlR2VuZXJhdG9yQ29uZmlnKHRoaXMuY29uZmlnKTtcbiAgcHJpdmF0ZSBvcGVyYXRpb25zOiBHZW5lcmF0b3JPcGVyYXRpb25zIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHdvcmtmbG93OiBHZW5lcmF0b3JXb3JrZmxvdyB8IHVuZGVmaW5lZDtcblxuICAvKiogQXBwS2l0IG1vdW50IHByZWZpeCB1c2VkIGJ5IGJyb3dzZXIgY2xpZW50cy4gKi9cbiAgcHJpdmF0ZSBnZXQgYmFzZVBhdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYC9hcGkvJHt0aGlzLm5hbWV9YDtcbiAgfVxuXG4gIC8qKiBOYXRpdmUgdG9vbHMgZXhwb3NlZCBpbmRlcGVuZGVudGx5IG9mIHRoZSBjb21wb3NlZCB3b3JrZmxvdy4gKi9cbiAgcHJvdGVjdGVkIGdldCB0b29sUmVnaXN0cnkoKTogVG9vbFJlZ2lzdHJ5IHtcbiAgICBjb25zdCBvcGVyYXRpb25zID0gdGhpcy5yZXF1aXJlT3BlcmF0aW9ucygpO1xuICAgIGNvbnN0IG11dGF0aW9uID0geyBlZmZlY3Q6IFwid3JpdGVcIiBhcyBjb25zdCwgZGVzdHJ1Y3RpdmU6IHRydWUsIHJlcXVpcmVzVXNlckNvbnRleHQ6IHRydWUgfTtcbiAgICByZXR1cm4ge1xuICAgICAgZ2VuZXJhdGVfYnJhbmQ6IGRlZmluZVRvb2woe1xuICAgICAgICBkZXNjcmlwdGlvbjogR0VORVJBVEVfQlJBTkRfVE9PTF9ERVNDUklQVElPTixcbiAgICAgICAgc2NoZW1hOiBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0U2NoZW1hLFxuICAgICAgICBhbm5vdGF0aW9uczogeyBlZmZlY3Q6IFwicmVhZFwiLCByZXF1aXJlc1VzZXJDb250ZXh0OiB0cnVlIH0sXG4gICAgICAgIGF1dG9Jbmhlcml0YWJsZTogZmFsc2UsXG4gICAgICAgIGV4ZWN1dGU6IChpbnB1dCwgc2lnbmFsKSA9PlxuICAgICAgICAgIG9wZXJhdGlvbnMuZ2VuZXJhdGVCcmFuZChCcmFuZEdlbmVyYXRpb25SZXF1ZXN0U2NoZW1hLnBhcnNlKGlucHV0KSwgc2lnbmFsKSxcbiAgICAgIH0pLFxuICAgICAgcmVzZWFyY2hfa3BpczogZGVmaW5lVG9vbCh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlJlc2VhcmNoIGV2aWRlbmNlLWJhY2tlZCBLUElzIGZvciBjb21wYW55IGRlbW8gcXVlc3Rpb25zLlwiLFxuICAgICAgICBzY2hlbWE6IEtwaVJlc2VhcmNoUmVxdWVzdFNjaGVtYSxcbiAgICAgICAgYW5ub3RhdGlvbnM6IHsgZWZmZWN0OiBcInJlYWRcIiwgcmVxdWlyZXNVc2VyQ29udGV4dDogdHJ1ZSB9LFxuICAgICAgICBhdXRvSW5oZXJpdGFibGU6IGZhbHNlLFxuICAgICAgICBleGVjdXRlOiAoaW5wdXQsIHNpZ25hbCkgPT5cbiAgICAgICAgICBvcGVyYXRpb25zLnJlc2VhcmNoS3BpcyhLcGlSZXNlYXJjaFJlcXVlc3RTY2hlbWEucGFyc2UoaW5wdXQpLCBzaWduYWwpLFxuICAgICAgfSksXG4gICAgICBwbGFuX2RlbW9fZGF0YTogZGVmaW5lVG9vbCh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkJ1aWxkIGEgdHlwZWQgZGV0ZXJtaW5pc3RpYyBkYXRhIHBsYW4gZnJvbSBicmFuZCBhbmQgS1BJIHJlc2VhcmNoLlwiLFxuICAgICAgICBzY2hlbWE6IFBsYW5HZW5lcmF0b3JEYXRhUmVxdWVzdFNjaGVtYSxcbiAgICAgICAgYW5ub3RhdGlvbnM6IHsgZWZmZWN0OiBcInJlYWRcIiwgcmVxdWlyZXNVc2VyQ29udGV4dDogdHJ1ZSB9LFxuICAgICAgICBhdXRvSW5oZXJpdGFibGU6IGZhbHNlLFxuICAgICAgICBleGVjdXRlOiAoaW5wdXQsIHNpZ25hbCkgPT5cbiAgICAgICAgICBvcGVyYXRpb25zLnBsYW5EYXRhKFBsYW5HZW5lcmF0b3JEYXRhUmVxdWVzdFNjaGVtYS5wYXJzZShpbnB1dCksIHNpZ25hbCksXG4gICAgICB9KSxcbiAgICAgIHByb3Zpc2lvbl9zY2hlbWE6IGRlZmluZVRvb2woe1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJQcm92aXNpb24gYW5kIGdyYW50IHRoZSBhY3RpdmUgdXNlcidzIGRldGVybWluaXN0aWMgVW5pdHkgQ2F0YWxvZyBzY2hlbWEuXCIsXG4gICAgICAgIHNjaGVtYTogUHJvdmlzaW9uR2VuZXJhdG9yU2NoZW1hUmVxdWVzdFNjaGVtYSxcbiAgICAgICAgYW5ub3RhdGlvbnM6IG11dGF0aW9uLFxuICAgICAgICBhdXRvSW5oZXJpdGFibGU6IGZhbHNlLFxuICAgICAgICBleGVjdXRlOiAoaW5wdXQsIHNpZ25hbCkgPT5cbiAgICAgICAgICBvcGVyYXRpb25zLnByb3Zpc2lvblNjaGVtYShQcm92aXNpb25HZW5lcmF0b3JTY2hlbWFSZXF1ZXN0U2NoZW1hLnBhcnNlKGlucHV0KSwgc2lnbmFsKSxcbiAgICAgIH0pLFxuICAgICAgbWF0ZXJpYWxpemVfZGF0YTogZGVmaW5lVG9vbCh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkNyZWF0ZSBnZW5lcmF0ZWQgRGVsdGEgZGF0YSBhbmQgdmFsaWRhdGUgZXZlcnkgcGxhbm5lZCBLUEkuXCIsXG4gICAgICAgIHNjaGVtYTogTWF0ZXJpYWxpemVHZW5lcmF0b3JEYXRhUmVxdWVzdFNjaGVtYSxcbiAgICAgICAgYW5ub3RhdGlvbnM6IG11dGF0aW9uLFxuICAgICAgICBhdXRvSW5oZXJpdGFibGU6IGZhbHNlLFxuICAgICAgICBleGVjdXRlOiAoaW5wdXQsIHNpZ25hbCkgPT5cbiAgICAgICAgICBvcGVyYXRpb25zLm1hdGVyaWFsaXplRGF0YShNYXRlcmlhbGl6ZUdlbmVyYXRvckRhdGFSZXF1ZXN0U2NoZW1hLnBhcnNlKGlucHV0KSwgc2lnbmFsKSxcbiAgICAgIH0pLFxuICAgICAgY3JlYXRlX2Rhc2hib2FyZDogZGVmaW5lVG9vbCh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkNyZWF0ZSBhbmQgcHVibGlzaCBhbiBBSS9CSSBkYXNoYm9hcmQgd2l0aCBhdXRvbWF0aWMgY29tcGFuaW9uIEdlbmllLlwiLFxuICAgICAgICBzY2hlbWE6IENyZWF0ZUdlbmVyYXRvclByZXNlbnRhdGlvblJlcXVlc3RTY2hlbWEsXG4gICAgICAgIGFubm90YXRpb25zOiBtdXRhdGlvbixcbiAgICAgICAgYXV0b0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgZXhlY3V0ZTogKGlucHV0LCBzaWduYWwpID0+XG4gICAgICAgICAgb3BlcmF0aW9ucy5jcmVhdGVEYXNoYm9hcmQoQ3JlYXRlR2VuZXJhdG9yUHJlc2VudGF0aW9uUmVxdWVzdFNjaGVtYS5wYXJzZShpbnB1dCksIHNpZ25hbCksXG4gICAgICB9KSxcbiAgICAgIGNyZWF0ZV9nZW5pZV9zcGFjZTogZGVmaW5lVG9vbCh7XG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkNyZWF0ZSBhIHN0YW5kYWxvbmUgR2VuaWUgc3BhY2Ugd2hlbiBubyBkYXNoYm9hcmQgaXMgcmVxdWVzdGVkLlwiLFxuICAgICAgICBzY2hlbWE6IENyZWF0ZUdlbmVyYXRvclByZXNlbnRhdGlvblJlcXVlc3RTY2hlbWEsXG4gICAgICAgIGFubm90YXRpb25zOiBtdXRhdGlvbixcbiAgICAgICAgYXV0b0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgZXhlY3V0ZTogKGlucHV0LCBzaWduYWwpID0+XG4gICAgICAgICAgb3BlcmF0aW9ucy5jcmVhdGVHZW5pZShDcmVhdGVHZW5lcmF0b3JQcmVzZW50YXRpb25SZXF1ZXN0U2NoZW1hLnBhcnNlKGlucHV0KSwgc2lnbmFsKSxcbiAgICAgIH0pLFxuICAgIH07XG4gIH1cblxuICAvKiogQ2FwdHVyZSBzaWJsaW5nIGNhcGFiaWxpdGllcyBhbmQgcmVnaXN0ZXIgdGhlIHdvcmtmbG93IGJlZm9yZSBNYXN0cmEgYm9vdHMuICovXG4gIG92ZXJyaWRlIGFzeW5jIHNldHVwKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMub3BlcmF0aW9ucyA9IG5ldyBHZW5lcmF0b3JPcGVyYXRpb25zKHtcbiAgICAgIGNvbmZpZzogdGhpcy5yZXNvbHZlZCxcbiAgICAgIHJlc2VhcmNoQ2xpZW50OiB0aGlzLnJlc2VhcmNoQ2xpZW50KCksXG4gICAgfSk7XG4gICAgdGhpcy53b3JrZmxvdyA9IGNyZWF0ZUdlbmVyYXRvcldvcmtmbG93KHRoaXMub3BlcmF0aW9ucyk7XG4gICAgcGx1Z2luUmVnaXN0cnlcbiAgICAgIC5yZXF1aXJlKHRoaXMuY29udGV4dCwgbWFzdHJhLCB0aGlzKVxuICAgICAgLmV4cG9ydHMoKVxuICAgICAgLnJlZ2lzdGVyV29ya2Zsb3coV09SS0ZMT1dfS0VZLCB0aGlzLndvcmtmbG93KTtcbiAgICBsb2dnZXIuaW5mbyhcInJlYWR5XCIsIHtcbiAgICAgIG1vZGVsOiB0aGlzLnJlc29sdmVkLm1vZGVsID8/IFwiYXV0b21hdGljXCIsXG4gICAgICBjYXRhbG9nOiB0aGlzLnJlc29sdmVkLmNhdGFsb2cgPz8gXCJicmFuZC1vbmx5XCIsXG4gICAgICB3YXJlaG91c2U6IHRoaXMucmVzb2x2ZWQud2FyZWhvdXNlSWQgPz8gXCJicmFuZC1vbmx5XCIsXG4gICAgICB3b3JrZmxvdzogV09SS0ZMT1dfS0VZLFxuICAgIH0pO1xuICB9XG5cbiAgc2h1dGRvd24oKTogdm9pZCB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2xpZW50Q29uZmlnKCkge1xuICAgIHJldHVybiBHZW5lcmF0b3JDbGllbnRDb25maWdTY2hlbWEucGFyc2UoeyBiYXNlUGF0aDogdGhpcy5iYXNlUGF0aCB9KTtcbiAgfVxuXG4gIC8qKiBTdHJlYW0gc3RhbmRhbG9uZSBicmFuZCBnZW5lcmF0aW9uIHRvIHRoZSBleGlzdGluZyBCcmFuZCBwYWdlLiAqL1xuICBvdmVycmlkZSBpbmplY3RSb3V0ZXMocm91dGVyOiBJQXBwUm91dGVyKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZShyb3V0ZXIsIHtcbiAgICAgIG5hbWU6IFwiZ2VuZXJhdGVCcmFuZFwiLFxuICAgICAgbWV0aG9kOiBcInBvc3RcIixcbiAgICAgIHBhdGg6IEdFTkVSQVRPUl9ST1VURVMuZ2VuZXJhdGVCcmFuZCxcbiAgICAgIGhhbmRsZXI6IGFzeW5jIChyZXEsIHJlcykgPT4ge1xuICAgICAgICBjb25zdCBwYXJzZWQgPSBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0U2NoZW1hLnNhZmVQYXJzZShyZXEuYm9keSk7XG4gICAgICAgIGlmICghcGFyc2VkLnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXMuc3RhdHVzKDQwMCkuanNvbih7IGVycm9yOiBcIkVudGVyIGEgYnJhbmQgbmFtZSBhbmQgYW4gb3B0aW9uYWwgSFRUUFMgd2Vic2l0ZS5cIiB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnNldCh7XG4gICAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGUsIG5vLXRyYW5zZm9ybVwiLFxuICAgICAgICAgIENvbm5lY3Rpb246IFwia2VlcC1hbGl2ZVwiLFxuICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwidGV4dC9ldmVudC1zdHJlYW1cIixcbiAgICAgICAgICBcIlgtQWNjZWwtQnVmZmVyaW5nXCI6IFwibm9cIixcbiAgICAgICAgfSk7XG4gICAgICAgIHJlcy5mbHVzaEhlYWRlcnMoKTtcbiAgICAgICAgbGV0IGNsb3NlZCA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgICByZXMub24oXCJjbG9zZVwiLCAoKSA9PiB7XG4gICAgICAgICAgY2xvc2VkID0gdHJ1ZTtcbiAgICAgICAgICBjb250cm9sbGVyLmFib3J0KCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZW5kID0gKGV2ZW50OiBCcmFuZEdlbmVyYXRpb25FdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChjbG9zZWQpIHJldHVybjtcbiAgICAgICAgICBjb25zdCB2YWxpZGF0ZWQgPSBCcmFuZEdlbmVyYXRpb25FdmVudFNjaGVtYS5wYXJzZShldmVudCk7XG4gICAgICAgICAgcmVzLndyaXRlKGBldmVudDogJHt2YWxpZGF0ZWQudHlwZX1cXG5kYXRhOiAke0pTT04uc3RyaW5naWZ5KHZhbGlkYXRlZCl9XFxuXFxuYCk7XG4gICAgICAgIH07XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZ2VuZXJhdGVkID0gYXdhaXQgdGhpcy5hc1VzZXIocmVxKVxuICAgICAgICAgICAgLnJlcXVpcmVPcGVyYXRpb25zKClcbiAgICAgICAgICAgIC5nZW5lcmF0ZUJyYW5kKHBhcnNlZC5kYXRhLCBjb250cm9sbGVyLnNpZ25hbCwgc2VuZCk7XG4gICAgICAgICAgc2VuZCh7IHR5cGU6IFwicmVzdWx0XCIsIHBhY2thZ2U6IGdlbmVyYXRlZCB9KTtcbiAgICAgICAgfSBjYXRjaCAoY2F1c2UpIHtcbiAgICAgICAgICBsb2dnZXIud2FybihcImJyYW5kLXJvdXRlLWZhaWxlZFwiLCB7IGVycm9yOiBlcnJvclV0aWxzLnRvRXJyb3IoY2F1c2UpIH0pO1xuICAgICAgICAgIHNlbmQoe1xuICAgICAgICAgICAgdHlwZTogXCJlcnJvclwiLFxuICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgXCJCcmFuZCBnZW5lcmF0aW9uIGZhaWxlZC4gUmV0cnkgdGhlIHJlcXVlc3Q7IGlmIGl0IGZhaWxzIGFnYWluLCBjaGVjayB0aGUgc2VydmVyIGxvZ3MuXCIsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgaWYgKCFjbG9zZWQpIHJlcy5lbmQoKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBQcm9ncmFtbWF0aWMgb3BlcmF0aW9ucyBhbmQgd29ya2Zsb3cgZm9yIHRydXN0ZWQgYXBwbGljYXRpb24gY29kZS4gKi9cbiAgb3ZlcnJpZGUgZXhwb3J0cygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZ2VuZXJhdGVCcmFuZDogdGhpcy5yZXF1aXJlT3BlcmF0aW9ucygpLmdlbmVyYXRlQnJhbmQuYmluZCh0aGlzLnJlcXVpcmVPcGVyYXRpb25zKCkpLFxuICAgICAgcmVzZWFyY2hLcGlzOiB0aGlzLnJlcXVpcmVPcGVyYXRpb25zKCkucmVzZWFyY2hLcGlzLmJpbmQodGhpcy5yZXF1aXJlT3BlcmF0aW9ucygpKSxcbiAgICAgIHBsYW5EYXRhOiB0aGlzLnJlcXVpcmVPcGVyYXRpb25zKCkucGxhbkRhdGEuYmluZCh0aGlzLnJlcXVpcmVPcGVyYXRpb25zKCkpLFxuICAgICAgcHJvdmlzaW9uU2NoZW1hOiB0aGlzLnJlcXVpcmVPcGVyYXRpb25zKCkucHJvdmlzaW9uU2NoZW1hLmJpbmQodGhpcy5yZXF1aXJlT3BlcmF0aW9ucygpKSxcbiAgICAgIG1hdGVyaWFsaXplRGF0YTogdGhpcy5yZXF1aXJlT3BlcmF0aW9ucygpLm1hdGVyaWFsaXplRGF0YS5iaW5kKHRoaXMucmVxdWlyZU9wZXJhdGlvbnMoKSksXG4gICAgICBjcmVhdGVEYXNoYm9hcmQ6IHRoaXMucmVxdWlyZU9wZXJhdGlvbnMoKS5jcmVhdGVEYXNoYm9hcmQuYmluZCh0aGlzLnJlcXVpcmVPcGVyYXRpb25zKCkpLFxuICAgICAgY3JlYXRlR2VuaWU6IHRoaXMucmVxdWlyZU9wZXJhdGlvbnMoKS5jcmVhdGVHZW5pZS5iaW5kKHRoaXMucmVxdWlyZU9wZXJhdGlvbnMoKSksXG4gICAgICB3b3JrZmxvdzogdGhpcy53b3JrZmxvdyxcbiAgICAgIHNjaGVtYXM6IHtcbiAgICAgICAga3BpUmVzZWFyY2g6IEtwaVJlc2VhcmNoUmVzdWx0U2NoZW1hLFxuICAgICAgICBwbGFuOiBHZW5lcmF0b3JQbGFuU2NoZW1hLFxuICAgICAgICBsb2NhdGlvbjogR2VuZXJhdGVkU2NoZW1hU2NoZW1hLFxuICAgICAgICBtYXRlcmlhbGl6ZWQ6IE1hdGVyaWFsaXplZEdlbmVyYXRvckRhdGFTY2hlbWEsXG4gICAgICAgIGRhc2hib2FyZDogR2VuZXJhdGVkRGFzaGJvYXJkU2NoZW1hLFxuICAgICAgICBnZW5pZTogR2VuZXJhdGVkR2VuaWVTcGFjZVNjaGVtYSxcbiAgICAgICAgYXNzZXRzOiBHZW5lcmF0ZWRBc3NldHNTY2hlbWEsXG4gICAgICB9LFxuICAgICAgY2xpZW50OiBHZW5lcmF0b3JQbHVnaW5DbGllbnQsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBSZXNvbHZlIHRoZSBzaWJsaW5nIHdlYi1zZWFyY2ggcGx1Z2luIHdpdGhvdXQgcmVjcmVhdGluZyBpdHMgcG9saWN5LiAqL1xuICBwcml2YXRlIHJlc2VhcmNoQ2xpZW50KCk6IEJyYW5kUmVzZWFyY2hDbGllbnQge1xuICAgIGNvbnN0IHNpYmxpbmcgPSBwbHVnaW5SZWdpc3RyeS5yZXF1aXJlKHRoaXMuY29udGV4dCwgd2ViU2VhcmNoLCB0aGlzKS5leHBvcnRzKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlYXJjaDogc2libGluZy5zZWFyY2gsXG4gICAgICBmZXRjaDogc2libGluZy5mZXRjaCxcbiAgICAgIGZldGNoQXNzZXRQYWdlOiBzaWJsaW5nLmZldGNoQXNzZXRQYWdlLFxuICAgICAgZmV0Y2hJbWFnZTogc2libGluZy5mZXRjaEltYWdlLFxuICAgIH07XG4gIH1cblxuICAvKiogSW5pdGlhbGl6ZWQgb3BlcmF0aW9ucyBvciBhIGNsZWFyIGxpZmVjeWNsZSBlcnJvci4gKi9cbiAgcHJpdmF0ZSByZXF1aXJlT3BlcmF0aW9ucygpOiBHZW5lcmF0b3JPcGVyYXRpb25zIHtcbiAgICBpZiAoIXRoaXMub3BlcmF0aW9ucykgdGhyb3cgbmV3IEVycm9yKFwiR2VuZXJhdG9yIHBsdWdpbiBzZXR1cCBoYXMgbm90IGNvbXBsZXRlZFwiKTtcbiAgICByZXR1cm4gdGhpcy5vcGVyYXRpb25zO1xuICB9XG59XG5cbi8qKiBSZWdpc3RlciBBcHBLaXQgZ2VuZXJhdG9yIHRvb2xzIGFuZCB3b3JrZmxvdyBpbnRlZ3JhdGlvbi4gKi9cbmV4cG9ydCBjb25zdCBnZW5lcmF0b3IgPSB0b1BsdWdpbihHZW5lcmF0b3JQbHVnaW4pO1xuIl19
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQW1CLE1BQU0sb0JBQW9CLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsMkJBQTJCLEVBQzNCLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsNEJBQTRCLEdBRTdCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qix1QkFBdUIsRUFDdkIsd0NBQXdDLEVBQ3hDLHFCQUFxQixFQUNyQix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIscUNBQXFDLEVBQ3JDLCtCQUErQixFQUMvQiw4QkFBOEIsRUFDOUIscUNBQXFDLEdBQ3RDLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUNMLHNCQUFzQixHQUd2QixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLFFBQVEsTUFBTSxpQkFBaUIsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUQsT0FB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Q0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2hGLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixPQUFPLEVBQUU7Z0JBQ1AsV0FBVyxFQUFFLHVCQUF1QjtnQkFDcEMsSUFBSSxFQUFFLG1CQUFtQjtnQkFDekIsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsWUFBWSxFQUFFLCtCQUErQjtnQkFDN0MsU0FBUyxFQUFFLHdCQUF3QjtnQkFDbkMsS0FBSyxFQUFFLHlCQUF5QjtnQkFDaEMsTUFBTSxFQUFFLHFCQUFxQjthQUM5QjtZQUNELE1BQU0sRUFBRSxxQkFBcUI7U0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFRCwyRUFBMkU7SUFDbkUsY0FBYztRQUNwQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakUsT0FBTztZQUNMLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtZQUN0QixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1lBQ3RDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtTQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVELHlEQUF5RDtJQUNqRCxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDOztBQUdILGdFQUFnRTtBQUNoRSxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBcHBLaXQgVG9vbFByb3ZpZGVyIHBsdWdpbiBmb3IgZ292ZXJuZWQgRGF0YWJyaWNrcyBkZW1vIGdlbmVyYXRpb24uXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGRlZmluZU1hbmlmZXN0LCB0b1BsdWdpbiwgdHlwZSBJQXBwUm91dGVyIH0gZnJvbSBcIkBkYXRhYnJpY2tzL2FwcGtpdFwiO1xuaW1wb3J0IHsgZGVmaW5lVG9vbCwgdHlwZSBUb29sUmVnaXN0cnkgfSBmcm9tIFwiQGRhdGFicmlja3MvYXBwa2l0L2JldGFcIjtcbmltcG9ydCB7IFRvb2xSZWdpc3RyeVBsdWdpbiwgcmVxdWlyZSB9IGZyb20gXCJAZGJ4LXRvb2xzL2FwcGtpdFwiO1xuaW1wb3J0IHsgbWFzdHJhIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LW1hc3RyYVwiO1xuaW1wb3J0IHsgd2ViU2VhcmNoIH0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LXdlYi1zZWFyY2hcIjtcbmltcG9ydCB7IGxvZywgdG9FcnJvciB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQge1xuICBHRU5FUkFUT1JfUk9VVEVTLFxuICBHZW5lcmF0b3JDbGllbnRDb25maWdTY2hlbWEsXG4gIEdlbmVyYXRvclBsdWdpbkNsaWVudCxcbiAgQnJhbmRHZW5lcmF0aW9uRXZlbnRTY2hlbWEsXG4gIEJyYW5kR2VuZXJhdGlvblJlcXVlc3RTY2hlbWEsXG4gIHR5cGUgQnJhbmRHZW5lcmF0aW9uRXZlbnQsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5lcmF0b3JcIjtcbmltcG9ydCB7XG4gIEtwaVJlc2VhcmNoUmVxdWVzdFNjaGVtYSxcbiAgS3BpUmVzZWFyY2hSZXN1bHRTY2hlbWEsXG4gIENyZWF0ZUdlbmVyYXRvclByZXNlbnRhdGlvblJlcXVlc3RTY2hlbWEsXG4gIEdlbmVyYXRlZEFzc2V0c1NjaGVtYSxcbiAgR2VuZXJhdGVkRGFzaGJvYXJkU2NoZW1hLFxuICBHZW5lcmF0ZWRHZW5pZVNwYWNlU2NoZW1hLFxuICBHZW5lcmF0ZWRTY2hlbWFTY2hlbWEsXG4gIEdlbmVyYXRvclBsYW5TY2hlbWEsXG4gIE1hdGVyaWFsaXplR2VuZXJhdG9yRGF0YVJlcXVlc3RTY2hlbWEsXG4gIE1hdGVyaWFsaXplZEdlbmVyYXRvckRhdGFTY2hlbWEsXG4gIFBsYW5HZW5lcmF0b3JEYXRhUmVxdWVzdFNjaGVtYSxcbiAgUHJvdmlzaW9uR2VuZXJhdG9yU2NoZW1hUmVxdWVzdFNjaGVtYSxcbn0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWdlbmVyYXRvclwiO1xuaW1wb3J0IHtcbiAgcmVzb2x2ZUdlbmVyYXRvckNvbmZpZyxcbiAgdHlwZSBHZW5lcmF0b3JQbHVnaW5Db25maWcsXG4gIHR5cGUgUmVzb2x2ZWRHZW5lcmF0b3JDb25maWcsXG59IGZyb20gXCIuL2NvbmZpZy50c1wiO1xuaW1wb3J0IG1hbmlmZXN0IGZyb20gXCIuL21hbmlmZXN0Lmpzb25cIiB3aXRoIHsgdHlwZTogXCJqc29uXCIgfTtcbmltcG9ydCB7IEdlbmVyYXRvck9wZXJhdGlvbnMgfSBmcm9tIFwiLi9vcGVyYXRpb25zLnRzXCI7XG5pbXBvcnQgdHlwZSB7IEJyYW5kUmVzZWFyY2hDbGllbnQgfSBmcm9tIFwiLi9yZXNlYXJjaC50c1wiO1xuaW1wb3J0IHsgR0VORVJBVEVfQlJBTkRfVE9PTF9ERVNDUklQVElPTiB9IGZyb20gXCIuL3NjaGVtYS50c1wiO1xuaW1wb3J0IHsgY3JlYXRlR2VuZXJhdG9yV29ya2Zsb3csIHR5cGUgR2VuZXJhdG9yV29ya2Zsb3cgfSBmcm9tIFwiLi93b3JrZmxvdy50c1wiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwiZ2VuZXJhdG9yXCIpO1xuY29uc3QgV09SS0ZMT1dfS0VZID0gXCJnZW5lcmF0b3JEZW1vQXNzZXRzXCI7XG5cbi8qKiBBcHBLaXQgcGx1Z2luIGV4cG9zaW5nIHJldXNhYmxlIGdlbmVyYXRvciB0b29scyBhbmQgYSBob3N0ZWQgTWFzdHJhIHdvcmtmbG93LiAqL1xuZXhwb3J0IGNsYXNzIEdlbmVyYXRvclBsdWdpbiBleHRlbmRzIFRvb2xSZWdpc3RyeVBsdWdpbjxHZW5lcmF0b3JQbHVnaW5Db25maWc+IHtcbiAgc3RhdGljIG1hbmlmZXN0ID0gZGVmaW5lTWFuaWZlc3Q8XCJnZW5lcmF0b3JcIj4obWFuaWZlc3QpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb2x2ZWQ6IFJlc29sdmVkR2VuZXJhdG9yQ29uZmlnID0gcmVzb2x2ZUdlbmVyYXRvckNvbmZpZyh0aGlzLmNvbmZpZyk7XG4gIHByaXZhdGUgb3BlcmF0aW9uczogR2VuZXJhdG9yT3BlcmF0aW9ucyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSB3b3JrZmxvdzogR2VuZXJhdG9yV29ya2Zsb3cgfCB1bmRlZmluZWQ7XG5cbiAgLyoqIEFwcEtpdCBtb3VudCBwcmVmaXggdXNlZCBieSBicm93c2VyIGNsaWVudHMuICovXG4gIHByaXZhdGUgZ2V0IGJhc2VQYXRoKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAvYXBpLyR7dGhpcy5uYW1lfWA7XG4gIH1cblxuICAvKiogTmF0aXZlIHRvb2xzIGV4cG9zZWQgaW5kZXBlbmRlbnRseSBvZiB0aGUgY29tcG9zZWQgd29ya2Zsb3cuICovXG4gIHByb3RlY3RlZCBnZXQgdG9vbFJlZ2lzdHJ5KCk6IFRvb2xSZWdpc3RyeSB7XG4gICAgY29uc3Qgb3BlcmF0aW9ucyA9IHRoaXMucmVxdWlyZU9wZXJhdGlvbnMoKTtcbiAgICBjb25zdCBtdXRhdGlvbiA9IHsgZWZmZWN0OiBcIndyaXRlXCIgYXMgY29uc3QsIGRlc3RydWN0aXZlOiB0cnVlLCByZXF1aXJlc1VzZXJDb250ZXh0OiB0cnVlIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIGdlbmVyYXRlX2JyYW5kOiBkZWZpbmVUb29sKHtcbiAgICAgICAgZGVzY3JpcHRpb246IEdFTkVSQVRFX0JSQU5EX1RPT0xfREVTQ1JJUFRJT04sXG4gICAgICAgIHNjaGVtYTogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdFNjaGVtYSxcbiAgICAgICAgYW5ub3RhdGlvbnM6IHsgZWZmZWN0OiBcInJlYWRcIiwgcmVxdWlyZXNVc2VyQ29udGV4dDogdHJ1ZSB9LFxuICAgICAgICBhdXRvSW5oZXJpdGFibGU6IGZhbHNlLFxuICAgICAgICBleGVjdXRlOiAoaW5wdXQsIHNpZ25hbCkgPT5cbiAgICAgICAgICBvcGVyYXRpb25zLmdlbmVyYXRlQnJhbmQoQnJhbmRHZW5lcmF0aW9uUmVxdWVzdFNjaGVtYS5wYXJzZShpbnB1dCksIHNpZ25hbCksXG4gICAgICB9KSxcbiAgICAgIHJlc2VhcmNoX2twaXM6IGRlZmluZVRvb2woe1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJSZXNlYXJjaCBldmlkZW5jZS1iYWNrZWQgS1BJcyBmb3IgY29tcGFueSBkZW1vIHF1ZXN0aW9ucy5cIixcbiAgICAgICAgc2NoZW1hOiBLcGlSZXNlYXJjaFJlcXVlc3RTY2hlbWEsXG4gICAgICAgIGFubm90YXRpb25zOiB7IGVmZmVjdDogXCJyZWFkXCIsIHJlcXVpcmVzVXNlckNvbnRleHQ6IHRydWUgfSxcbiAgICAgICAgYXV0b0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgZXhlY3V0ZTogKGlucHV0LCBzaWduYWwpID0+XG4gICAgICAgICAgb3BlcmF0aW9ucy5yZXNlYXJjaEtwaXMoS3BpUmVzZWFyY2hSZXF1ZXN0U2NoZW1hLnBhcnNlKGlucHV0KSwgc2lnbmFsKSxcbiAgICAgIH0pLFxuICAgICAgcGxhbl9kZW1vX2RhdGE6IGRlZmluZVRvb2woe1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJCdWlsZCBhIHR5cGVkIGRldGVybWluaXN0aWMgZGF0YSBwbGFuIGZyb20gYnJhbmQgYW5kIEtQSSByZXNlYXJjaC5cIixcbiAgICAgICAgc2NoZW1hOiBQbGFuR2VuZXJhdG9yRGF0YVJlcXVlc3RTY2hlbWEsXG4gICAgICAgIGFubm90YXRpb25zOiB7IGVmZmVjdDogXCJyZWFkXCIsIHJlcXVpcmVzVXNlckNvbnRleHQ6IHRydWUgfSxcbiAgICAgICAgYXV0b0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgZXhlY3V0ZTogKGlucHV0LCBzaWduYWwpID0+XG4gICAgICAgICAgb3BlcmF0aW9ucy5wbGFuRGF0YShQbGFuR2VuZXJhdG9yRGF0YVJlcXVlc3RTY2hlbWEucGFyc2UoaW5wdXQpLCBzaWduYWwpLFxuICAgICAgfSksXG4gICAgICBwcm92aXNpb25fc2NoZW1hOiBkZWZpbmVUb29sKHtcbiAgICAgICAgZGVzY3JpcHRpb246IFwiUHJvdmlzaW9uIGFuZCBncmFudCB0aGUgYWN0aXZlIHVzZXIncyBkZXRlcm1pbmlzdGljIFVuaXR5IENhdGFsb2cgc2NoZW1hLlwiLFxuICAgICAgICBzY2hlbWE6IFByb3Zpc2lvbkdlbmVyYXRvclNjaGVtYVJlcXVlc3RTY2hlbWEsXG4gICAgICAgIGFubm90YXRpb25zOiBtdXRhdGlvbixcbiAgICAgICAgYXV0b0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgZXhlY3V0ZTogKGlucHV0LCBzaWduYWwpID0+XG4gICAgICAgICAgb3BlcmF0aW9ucy5wcm92aXNpb25TY2hlbWEoUHJvdmlzaW9uR2VuZXJhdG9yU2NoZW1hUmVxdWVzdFNjaGVtYS5wYXJzZShpbnB1dCksIHNpZ25hbCksXG4gICAgICB9KSxcbiAgICAgIG1hdGVyaWFsaXplX2RhdGE6IGRlZmluZVRvb2woe1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJDcmVhdGUgZ2VuZXJhdGVkIERlbHRhIGRhdGEgYW5kIHZhbGlkYXRlIGV2ZXJ5IHBsYW5uZWQgS1BJLlwiLFxuICAgICAgICBzY2hlbWE6IE1hdGVyaWFsaXplR2VuZXJhdG9yRGF0YVJlcXVlc3RTY2hlbWEsXG4gICAgICAgIGFubm90YXRpb25zOiBtdXRhdGlvbixcbiAgICAgICAgYXV0b0luaGVyaXRhYmxlOiBmYWxzZSxcbiAgICAgICAgZXhlY3V0ZTogKGlucHV0LCBzaWduYWwpID0+XG4gICAgICAgICAgb3BlcmF0aW9ucy5tYXRlcmlhbGl6ZURhdGEoTWF0ZXJpYWxpemVHZW5lcmF0b3JEYXRhUmVxdWVzdFNjaGVtYS5wYXJzZShpbnB1dCksIHNpZ25hbCksXG4gICAgICB9KSxcbiAgICAgIGNyZWF0ZV9kYXNoYm9hcmQ6IGRlZmluZVRvb2woe1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJDcmVhdGUgYW5kIHB1Ymxpc2ggYW4gQUkvQkkgZGFzaGJvYXJkIHdpdGggYXV0b21hdGljIGNvbXBhbmlvbiBHZW5pZS5cIixcbiAgICAgICAgc2NoZW1hOiBDcmVhdGVHZW5lcmF0b3JQcmVzZW50YXRpb25SZXF1ZXN0U2NoZW1hLFxuICAgICAgICBhbm5vdGF0aW9uczogbXV0YXRpb24sXG4gICAgICAgIGF1dG9Jbmhlcml0YWJsZTogZmFsc2UsXG4gICAgICAgIGV4ZWN1dGU6IChpbnB1dCwgc2lnbmFsKSA9PlxuICAgICAgICAgIG9wZXJhdGlvbnMuY3JlYXRlRGFzaGJvYXJkKENyZWF0ZUdlbmVyYXRvclByZXNlbnRhdGlvblJlcXVlc3RTY2hlbWEucGFyc2UoaW5wdXQpLCBzaWduYWwpLFxuICAgICAgfSksXG4gICAgICBjcmVhdGVfZ2VuaWVfc3BhY2U6IGRlZmluZVRvb2woe1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJDcmVhdGUgYSBzdGFuZGFsb25lIEdlbmllIHNwYWNlIHdoZW4gbm8gZGFzaGJvYXJkIGlzIHJlcXVlc3RlZC5cIixcbiAgICAgICAgc2NoZW1hOiBDcmVhdGVHZW5lcmF0b3JQcmVzZW50YXRpb25SZXF1ZXN0U2NoZW1hLFxuICAgICAgICBhbm5vdGF0aW9uczogbXV0YXRpb24sXG4gICAgICAgIGF1dG9Jbmhlcml0YWJsZTogZmFsc2UsXG4gICAgICAgIGV4ZWN1dGU6IChpbnB1dCwgc2lnbmFsKSA9PlxuICAgICAgICAgIG9wZXJhdGlvbnMuY3JlYXRlR2VuaWUoQ3JlYXRlR2VuZXJhdG9yUHJlc2VudGF0aW9uUmVxdWVzdFNjaGVtYS5wYXJzZShpbnB1dCksIHNpZ25hbCksXG4gICAgICB9KSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIENhcHR1cmUgc2libGluZyBjYXBhYmlsaXRpZXMgYW5kIHJlZ2lzdGVyIHRoZSB3b3JrZmxvdyBiZWZvcmUgTWFzdHJhIGJvb3RzLiAqL1xuICBvdmVycmlkZSBhc3luYyBzZXR1cCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLm9wZXJhdGlvbnMgPSBuZXcgR2VuZXJhdG9yT3BlcmF0aW9ucyh7XG4gICAgICBjb25maWc6IHRoaXMucmVzb2x2ZWQsXG4gICAgICByZXNlYXJjaENsaWVudDogdGhpcy5yZXNlYXJjaENsaWVudCgpLFxuICAgIH0pO1xuICAgIHRoaXMud29ya2Zsb3cgPSBjcmVhdGVHZW5lcmF0b3JXb3JrZmxvdyh0aGlzLm9wZXJhdGlvbnMpO1xuICAgIHJlcXVpcmUodGhpcy5jb250ZXh0LCBtYXN0cmEsIHRoaXMpLmV4cG9ydHMoKS5yZWdpc3RlcldvcmtmbG93KFdPUktGTE9XX0tFWSwgdGhpcy53b3JrZmxvdyk7XG4gICAgbG9nZ2VyLmluZm8oXCJyZWFkeVwiLCB7XG4gICAgICBtb2RlbDogdGhpcy5yZXNvbHZlZC5tb2RlbCA/PyBcImF1dG9tYXRpY1wiLFxuICAgICAgY2F0YWxvZzogdGhpcy5yZXNvbHZlZC5jYXRhbG9nID8/IFwiYnJhbmQtb25seVwiLFxuICAgICAgd2FyZWhvdXNlOiB0aGlzLnJlc29sdmVkLndhcmVob3VzZUlkID8/IFwiYnJhbmQtb25seVwiLFxuICAgICAgd29ya2Zsb3c6IFdPUktGTE9XX0tFWSxcbiAgICB9KTtcbiAgfVxuXG4gIHNodXRkb3duKCk6IHZvaWQge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIG92ZXJyaWRlIGNsaWVudENvbmZpZygpIHtcbiAgICByZXR1cm4gR2VuZXJhdG9yQ2xpZW50Q29uZmlnU2NoZW1hLnBhcnNlKHsgYmFzZVBhdGg6IHRoaXMuYmFzZVBhdGggfSk7XG4gIH1cblxuICAvKiogU3RyZWFtIHN0YW5kYWxvbmUgYnJhbmQgZ2VuZXJhdGlvbiB0byB0aGUgZXhpc3RpbmcgQnJhbmQgcGFnZS4gKi9cbiAgb3ZlcnJpZGUgaW5qZWN0Um91dGVzKHJvdXRlcjogSUFwcFJvdXRlcik6IHZvaWQge1xuICAgIHRoaXMucm91dGUocm91dGVyLCB7XG4gICAgICBuYW1lOiBcImdlbmVyYXRlQnJhbmRcIixcbiAgICAgIG1ldGhvZDogXCJwb3N0XCIsXG4gICAgICBwYXRoOiBHRU5FUkFUT1JfUk9VVEVTLmdlbmVyYXRlQnJhbmQsXG4gICAgICBoYW5kbGVyOiBhc3luYyAocmVxLCByZXMpID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gQnJhbmRHZW5lcmF0aW9uUmVxdWVzdFNjaGVtYS5zYWZlUGFyc2UocmVxLmJvZHkpO1xuICAgICAgICBpZiAoIXBhcnNlZC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzLnN0YXR1cyg0MDApLmpzb24oeyBlcnJvcjogXCJFbnRlciBhIGJyYW5kIG5hbWUgYW5kIGFuIG9wdGlvbmFsIEhUVFBTIHdlYnNpdGUuXCIgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHJlcy5zZXQoe1xuICAgICAgICAgIFwiQ2FjaGUtQ29udHJvbFwiOiBcIm5vLWNhY2hlLCBuby10cmFuc2Zvcm1cIixcbiAgICAgICAgICBDb25uZWN0aW9uOiBcImtlZXAtYWxpdmVcIixcbiAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcInRleHQvZXZlbnQtc3RyZWFtXCIsXG4gICAgICAgICAgXCJYLUFjY2VsLUJ1ZmZlcmluZ1wiOiBcIm5vXCIsXG4gICAgICAgIH0pO1xuICAgICAgICByZXMuZmx1c2hIZWFkZXJzKCk7XG4gICAgICAgIGxldCBjbG9zZWQgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgY29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKTtcbiAgICAgICAgcmVzLm9uKFwiY2xvc2VcIiwgKCkgPT4ge1xuICAgICAgICAgIGNsb3NlZCA9IHRydWU7XG4gICAgICAgICAgY29udHJvbGxlci5hYm9ydCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2VuZCA9IChldmVudDogQnJhbmRHZW5lcmF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoY2xvc2VkKSByZXR1cm47XG4gICAgICAgICAgY29uc3QgdmFsaWRhdGVkID0gQnJhbmRHZW5lcmF0aW9uRXZlbnRTY2hlbWEucGFyc2UoZXZlbnQpO1xuICAgICAgICAgIHJlcy53cml0ZShgZXZlbnQ6ICR7dmFsaWRhdGVkLnR5cGV9XFxuZGF0YTogJHtKU09OLnN0cmluZ2lmeSh2YWxpZGF0ZWQpfVxcblxcbmApO1xuICAgICAgICB9O1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGdlbmVyYXRlZCA9IGF3YWl0IHRoaXMuYXNVc2VyKHJlcSlcbiAgICAgICAgICAgIC5yZXF1aXJlT3BlcmF0aW9ucygpXG4gICAgICAgICAgICAuZ2VuZXJhdGVCcmFuZChwYXJzZWQuZGF0YSwgY29udHJvbGxlci5zaWduYWwsIHNlbmQpO1xuICAgICAgICAgIHNlbmQoeyB0eXBlOiBcInJlc3VsdFwiLCBwYWNrYWdlOiBnZW5lcmF0ZWQgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGNhdXNlKSB7XG4gICAgICAgICAgbG9nZ2VyLndhcm4oXCJicmFuZC1yb3V0ZS1mYWlsZWRcIiwgeyBlcnJvcjogdG9FcnJvcihjYXVzZSkgfSk7XG4gICAgICAgICAgc2VuZCh7XG4gICAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXG4gICAgICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgICAgICBcIkJyYW5kIGdlbmVyYXRpb24gZmFpbGVkLiBSZXRyeSB0aGUgcmVxdWVzdDsgaWYgaXQgZmFpbHMgYWdhaW4sIGNoZWNrIHRoZSBzZXJ2ZXIgbG9ncy5cIixcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBpZiAoIWNsb3NlZCkgcmVzLmVuZCgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqIFByb2dyYW1tYXRpYyBvcGVyYXRpb25zIGFuZCB3b3JrZmxvdyBmb3IgdHJ1c3RlZCBhcHBsaWNhdGlvbiBjb2RlLiAqL1xuICBvdmVycmlkZSBleHBvcnRzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBnZW5lcmF0ZUJyYW5kOiB0aGlzLnJlcXVpcmVPcGVyYXRpb25zKCkuZ2VuZXJhdGVCcmFuZC5iaW5kKHRoaXMucmVxdWlyZU9wZXJhdGlvbnMoKSksXG4gICAgICByZXNlYXJjaEtwaXM6IHRoaXMucmVxdWlyZU9wZXJhdGlvbnMoKS5yZXNlYXJjaEtwaXMuYmluZCh0aGlzLnJlcXVpcmVPcGVyYXRpb25zKCkpLFxuICAgICAgcGxhbkRhdGE6IHRoaXMucmVxdWlyZU9wZXJhdGlvbnMoKS5wbGFuRGF0YS5iaW5kKHRoaXMucmVxdWlyZU9wZXJhdGlvbnMoKSksXG4gICAgICBwcm92aXNpb25TY2hlbWE6IHRoaXMucmVxdWlyZU9wZXJhdGlvbnMoKS5wcm92aXNpb25TY2hlbWEuYmluZCh0aGlzLnJlcXVpcmVPcGVyYXRpb25zKCkpLFxuICAgICAgbWF0ZXJpYWxpemVEYXRhOiB0aGlzLnJlcXVpcmVPcGVyYXRpb25zKCkubWF0ZXJpYWxpemVEYXRhLmJpbmQodGhpcy5yZXF1aXJlT3BlcmF0aW9ucygpKSxcbiAgICAgIGNyZWF0ZURhc2hib2FyZDogdGhpcy5yZXF1aXJlT3BlcmF0aW9ucygpLmNyZWF0ZURhc2hib2FyZC5iaW5kKHRoaXMucmVxdWlyZU9wZXJhdGlvbnMoKSksXG4gICAgICBjcmVhdGVHZW5pZTogdGhpcy5yZXF1aXJlT3BlcmF0aW9ucygpLmNyZWF0ZUdlbmllLmJpbmQodGhpcy5yZXF1aXJlT3BlcmF0aW9ucygpKSxcbiAgICAgIHdvcmtmbG93OiB0aGlzLndvcmtmbG93LFxuICAgICAgc2NoZW1hczoge1xuICAgICAgICBrcGlSZXNlYXJjaDogS3BpUmVzZWFyY2hSZXN1bHRTY2hlbWEsXG4gICAgICAgIHBsYW46IEdlbmVyYXRvclBsYW5TY2hlbWEsXG4gICAgICAgIGxvY2F0aW9uOiBHZW5lcmF0ZWRTY2hlbWFTY2hlbWEsXG4gICAgICAgIG1hdGVyaWFsaXplZDogTWF0ZXJpYWxpemVkR2VuZXJhdG9yRGF0YVNjaGVtYSxcbiAgICAgICAgZGFzaGJvYXJkOiBHZW5lcmF0ZWREYXNoYm9hcmRTY2hlbWEsXG4gICAgICAgIGdlbmllOiBHZW5lcmF0ZWRHZW5pZVNwYWNlU2NoZW1hLFxuICAgICAgICBhc3NldHM6IEdlbmVyYXRlZEFzc2V0c1NjaGVtYSxcbiAgICAgIH0sXG4gICAgICBjbGllbnQ6IEdlbmVyYXRvclBsdWdpbkNsaWVudCxcbiAgICB9O1xuICB9XG5cbiAgLyoqIFJlc29sdmUgdGhlIHNpYmxpbmcgd2ViLXNlYXJjaCBwbHVnaW4gd2l0aG91dCByZWNyZWF0aW5nIGl0cyBwb2xpY3kuICovXG4gIHByaXZhdGUgcmVzZWFyY2hDbGllbnQoKTogQnJhbmRSZXNlYXJjaENsaWVudCB7XG4gICAgY29uc3Qgc2libGluZyA9IHJlcXVpcmUodGhpcy5jb250ZXh0LCB3ZWJTZWFyY2gsIHRoaXMpLmV4cG9ydHMoKTtcbiAgICByZXR1cm4ge1xuICAgICAgc2VhcmNoOiBzaWJsaW5nLnNlYXJjaCxcbiAgICAgIGZldGNoOiBzaWJsaW5nLmZldGNoLFxuICAgICAgZmV0Y2hBc3NldFBhZ2U6IHNpYmxpbmcuZmV0Y2hBc3NldFBhZ2UsXG4gICAgICBmZXRjaEltYWdlOiBzaWJsaW5nLmZldGNoSW1hZ2UsXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBJbml0aWFsaXplZCBvcGVyYXRpb25zIG9yIGEgY2xlYXIgbGlmZWN5Y2xlIGVycm9yLiAqL1xuICBwcml2YXRlIHJlcXVpcmVPcGVyYXRpb25zKCk6IEdlbmVyYXRvck9wZXJhdGlvbnMge1xuICAgIGlmICghdGhpcy5vcGVyYXRpb25zKSB0aHJvdyBuZXcgRXJyb3IoXCJHZW5lcmF0b3IgcGx1Z2luIHNldHVwIGhhcyBub3QgY29tcGxldGVkXCIpO1xuICAgIHJldHVybiB0aGlzLm9wZXJhdGlvbnM7XG4gIH1cbn1cblxuLyoqIFJlZ2lzdGVyIEFwcEtpdCBnZW5lcmF0b3IgdG9vbHMgYW5kIHdvcmtmbG93IGludGVncmF0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IGdlbmVyYXRvciA9IHRvUGx1Z2luKEdlbmVyYXRvclBsdWdpbik7XG4iXX0=
|
package/lib/src/research.d.ts
CHANGED
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
7
|
-
import type { WebAssetPageFetchRequest, WebImageFetchRequest, WebImageFetchResult } from "@dbx-tools/appkit-web-search
|
|
8
|
-
import type {
|
|
9
|
-
import { type BrandGenerationProgressEvent, type BrandGenerationRequest, type BrandPackageSource, type BrandVisualReference } from "./schema.ts";
|
|
7
|
+
import type { WebAssetPageFetchRequest, WebImageFetchRequest, WebImageFetchResult, WebFetchRequest, WebFetchResult, WebSearchRequest, WebSearchResult } from "@dbx-tools/appkit-web-search";
|
|
8
|
+
import type { BrandGenerationProgressEvent, BrandGenerationRequest, BrandPackageSource, BrandVisualReference } from "@dbx-tools/shared-generator";
|
|
10
9
|
/** Default number of cited pages fetched for one brand. */
|
|
11
10
|
export declare const DEFAULT_MAX_SOURCES = 4;
|
|
12
11
|
/** Default character cap for each fetched page excerpt. */
|
package/lib/src/research.js
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
*
|
|
5
5
|
* @module
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import { log, toError, toDescription } from "@dbx-tools/shared-core";
|
|
8
8
|
import { discoverMobileAppVisuals } from "./assets.js";
|
|
9
|
-
import { brandRequestSubject
|
|
9
|
+
import { brandRequestSubject } from "./schema.js";
|
|
10
10
|
const logger = log.logger("brand/research");
|
|
11
11
|
/** Default number of cited pages fetched for one brand. */
|
|
12
12
|
export const DEFAULT_MAX_SOURCES = 4;
|
|
@@ -28,7 +28,7 @@ function fetchAssetPage(client, request, signal) {
|
|
|
28
28
|
export function brandResearchQuery(request) {
|
|
29
29
|
const subject = brandRequestSubject(request);
|
|
30
30
|
const website = request.website ? ` The known official website is ${request.website}.` : "";
|
|
31
|
-
return
|
|
31
|
+
return toDescription(`
|
|
32
32
|
Research the official brand identity and design direction for "${subject}".${website}
|
|
33
33
|
The broader brief is: ${request.prompt ?? subject}.
|
|
34
34
|
Prefer first-party sources and cite the official website first. Identify
|
|
@@ -88,7 +88,7 @@ async function researchMobileStore(request, platform, client, onProgress, signal
|
|
|
88
88
|
logger.warn("mobile-image-fetch-failed", {
|
|
89
89
|
platform,
|
|
90
90
|
url,
|
|
91
|
-
error:
|
|
91
|
+
error: toError(error),
|
|
92
92
|
});
|
|
93
93
|
return { url };
|
|
94
94
|
}
|
|
@@ -113,7 +113,7 @@ async function researchMobileStore(request, platform, client, onProgress, signal
|
|
|
113
113
|
catch (error) {
|
|
114
114
|
logger.warn("mobile-store-research-failed", {
|
|
115
115
|
platform,
|
|
116
|
-
error:
|
|
116
|
+
error: toError(error),
|
|
117
117
|
});
|
|
118
118
|
await onProgress?.({
|
|
119
119
|
type: "progress",
|
|
@@ -181,7 +181,7 @@ async function fetchSource(client, citation, sourceMaxLength, onComplete, signal
|
|
|
181
181
|
catch (error) {
|
|
182
182
|
logger.warn("source-fetch-failed", {
|
|
183
183
|
url: citation.url,
|
|
184
|
-
error:
|
|
184
|
+
error: toError(error),
|
|
185
185
|
});
|
|
186
186
|
return { ...citation, fetched: false };
|
|
187
187
|
}
|
|
@@ -255,7 +255,7 @@ export async function researchBrand(request, client, options = {}, signal) {
|
|
|
255
255
|
}, signal).catch((error) => {
|
|
256
256
|
logger.warn("official-page-html-fetch-failed", {
|
|
257
257
|
url: official.url,
|
|
258
|
-
error:
|
|
258
|
+
error: toError(error),
|
|
259
259
|
});
|
|
260
260
|
return undefined;
|
|
261
261
|
}),
|
|
@@ -276,4 +276,4 @@ export async function researchBrand(request, client, options = {}, signal) {
|
|
|
276
276
|
visualReferences,
|
|
277
277
|
};
|
|
278
278
|
}
|
|
279
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVzZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFjSCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUNMLG1CQUFtQixHQUtwQixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFNUMsMkRBQTJEO0FBQzNELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUVyQywyREFBMkQ7QUFDM0QsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDO0FBRS9DLG9GQUFvRjtBQUNwRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBRTdCLHlFQUF5RTtBQUN6RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUM7QUFFNUMsb0VBQW9FO0FBQ3BFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFNBQVMsQ0FBQztBQTZEL0MsNEZBQTRGO0FBQzVGLFNBQVMsY0FBYyxDQUNyQixNQUEyQixFQUMzQixPQUFpQyxFQUNqQyxNQUFvQjtJQUVwQixPQUFPLE1BQU0sQ0FBQyxjQUFjO1FBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7UUFDeEMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELGlFQUFpRTtBQUNqRSxNQUFNLFVBQVUsa0JBQWtCLENB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LENBQUM7UUFDbkUsZ0JBQWdCO0tBQ2pCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcmFuZCByZXNlYXJjaCBjb21wb3NlZCBmcm9tIHRoZSB3ZWItc2VhcmNoIHBsdWdpbidzIHNlYXJjaCBhbmQgZmV0Y2hcbiAqIG9wZXJhdGlvbnMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgV2ViQXNzZXRQYWdlRmV0Y2hSZXF1ZXN0LFxuICBXZWJJbWFnZUZldGNoUmVxdWVzdCxcbiAgV2ViSW1hZ2VGZXRjaFJlc3VsdCxcbn0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LXdlYi1zZWFyY2gvZmV0Y2hcIjtcbmltcG9ydCB0eXBlIHtcbiAgV2ViRmV0Y2hSZXF1ZXN0LFxuICBXZWJGZXRjaFJlc3VsdCxcbiAgV2ViU2VhcmNoQ2l0YXRpb24sXG4gIFdlYlNlYXJjaFJlcXVlc3QsXG4gIFdlYlNlYXJjaFJlc3VsdCxcbn0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LXdlYi1zZWFyY2gvc2NoZW1hXCI7XG5pbXBvcnQgeyBlcnJvclV0aWxzLCBsb2csIHN0cmluZ1V0aWxzIH0gZnJvbSBcIkBkYngtdG9vbHMvc2hhcmVkLWNvcmVcIjtcbmltcG9ydCB7IGRpc2NvdmVyTW9iaWxlQXBwVmlzdWFscyB9IGZyb20gXCIuL2Fzc2V0cy50c1wiO1xuaW1wb3J0IHtcbiAgYnJhbmRSZXF1ZXN0U3ViamVjdCxcbiAgdHlwZSBCcmFuZEdlbmVyYXRpb25Qcm9ncmVzc0V2ZW50LFxuICB0eXBlIEJyYW5kR2VuZXJhdGlvblJlcXVlc3QsXG4gIHR5cGUgQnJhbmRQYWNrYWdlU291cmNlLFxuICB0eXBlIEJyYW5kVmlzdWFsUmVmZXJlbmNlLFxufSBmcm9tIFwiLi9zY2hlbWEudHNcIjtcblxuY29uc3QgbG9nZ2VyID0gbG9nLmxvZ2dlcihcImJyYW5kL3Jlc2VhcmNoXCIpO1xuXG4vKiogRGVmYXVsdCBudW1iZXIgb2YgY2l0ZWQgcGFnZXMgZmV0Y2hlZCBmb3Igb25lIGJyYW5kLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUFYX1NPVVJDRVMgPSA0O1xuXG4vKiogRGVmYXVsdCBjaGFyYWN0ZXIgY2FwIGZvciBlYWNoIGZldGNoZWQgcGFnZSBleGNlcnB0LiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfU09VUkNFX01BWF9MRU5HVEggPSA4XzAwMDtcblxuLyoqIFVwcGVyIGJvdW5kIHRoYXQgcHJldmVudHMgb25lIHJlcXVlc3QgZnJvbSBmYW5uaW5nIG91dCBhY3Jvc3MgdG9vIG1hbnkgc2l0ZXMuICovXG5leHBvcnQgY29uc3QgTUFYX1NPVVJDRVMgPSA4O1xuXG4vKiogVXBwZXIgYm91bmQgb24gcmVhZGFibGUgY2hhcmFjdGVycyByZXRhaW5lZCBmcm9tIG9uZSBmZXRjaGVkIHBhZ2UuICovXG5leHBvcnQgY29uc3QgTUFYX1NPVVJDRV9NQVhfTEVOR1RIID0gMjBfMDAwO1xuXG4vKiogTWFya3VwIGNhcCB1c2VkIGZvciBvZmZpY2lhbCBhbmQgbW9iaWxlIHBhZ2UgYXNzZXQgZGlzY292ZXJ5LiAqL1xuZXhwb3J0IGNvbnN0IEFTU0VUX0hUTUxfTUFYX0xFTkdUSCA9IDFfNTAwXzAwMDtcblxuLyoqIFNlYXJjaCBhbmQgZmV0Y2ggb3BlcmF0aW9ucyBzdXBwbGllZCBieSB0aGUgcmVnaXN0ZXJlZCB3ZWItc2VhcmNoIHBsdWdpbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRSZXNlYXJjaENsaWVudCB7XG4gIC8qKiBTZWFyY2ggdGhlIHdlYiBhbmQgcmV0dXJuIGEgc3ludGhlc2l6ZWQgYW5zd2VyIHdpdGggY2l0YXRpb25zLiAqL1xuICBzZWFyY2gocmVxdWVzdDogV2ViU2VhcmNoUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPFdlYlNlYXJjaFJlc3VsdD47XG4gIC8qKiBGZXRjaCBvbmUgY2l0ZWQgcGFnZSBhcyB0ZXh0IG9yIEhUTUwuICovXG4gIGZldGNoKHJlcXVlc3Q6IFdlYkZldGNoUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPFdlYkZldGNoUmVzdWx0PjtcbiAgLyoqIEZldGNoIGV4cGFuZGVkIG1hcmt1cCBmb3IgZGV0ZXJtaW5pc3RpYyBpbi1wcm9jZXNzIGFzc2V0IGRpc2NvdmVyeS4gKi9cbiAgZmV0Y2hBc3NldFBhZ2U/KHJlcXVlc3Q6IFdlYkFzc2V0UGFnZUZldGNoUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPFdlYkZldGNoUmVzdWx0PjtcbiAgLyoqIEZldGNoIG9uZSBpbWFnZSBmb3IgbXVsdGltb2RhbCByZXNlYXJjaCBhbmQgcGFja2FnZSBleHBvcnQuICovXG4gIGZldGNoSW1hZ2UocmVxdWVzdDogV2ViSW1hZ2VGZXRjaFJlcXVlc3QsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTxXZWJJbWFnZUZldGNoUmVzdWx0Pjtcbn1cblxuLyoqIFJlc2VhcmNoIG9wdGlvbnMgY29udHJvbGxpbmcgYm91bmRlZCBwYWdlIHJlYWRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmFuZFJlc2VhcmNoT3B0aW9ucyB7XG4gIC8qKiBNYXhpbXVtIG51bWJlciBvZiB1bmlxdWUgc291cmNlcyB0byBmZXRjaC4gKi9cbiAgbWF4U291cmNlcz86IG51bWJlcjtcbiAgLyoqIE1heGltdW0gdGV4dCBjaGFyYWN0ZXJzIHJldGFpbmVkIGZyb20gZWFjaCBzb3VyY2UuICovXG4gIHNvdXJjZU1heExlbmd0aD86IG51bWJlcjtcbiAgLyoqIFJlY2VpdmVzIG9ic2VydmFibGUgd29ya2Zsb3cgcHJvZ3Jlc3MuICovXG4gIG9uUHJvZ3Jlc3M/OiBCcmFuZFByb2dyZXNzUmVwb3J0ZXI7XG59XG5cbi8qKiBDYWxsYmFjayByZWNlaXZpbmcgb25lIHZhbGlkYXRlZCB3b3JrZmxvdyBwcm9ncmVzcyBldmVudC4gKi9cbmV4cG9ydCB0eXBlIEJyYW5kUHJvZ3Jlc3NSZXBvcnRlciA9IChldmVudDogQnJhbmRHZW5lcmF0aW9uUHJvZ3Jlc3NFdmVudCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD47XG5cbi8qKiBPbmUgc2VsZWN0ZWQgc291cmNlIGFuZCB0aGUgdGV4dCBtYWRlIGF2YWlsYWJsZSB0byBzeW50aGVzaXMuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5kUmVzZWFyY2hTb3VyY2UgZXh0ZW5kcyBCcmFuZFBhY2thZ2VTb3VyY2Uge1xuICAvKiogUmVhZGFibGUgcGFnZSB0ZXh0LCBvbWl0dGVkIHdoZW4gdGhlIGZldGNoIGZhaWxlZC4gKi9cbiAgY29udGVudD86IHN0cmluZztcbn1cblxuLyoqIFNlYXJjaCBhbnN3ZXIsIGZldGNoZWQgc291cmNlcywgYW5kIG9mZmljaWFsLXBhZ2UgbWFya3VwIHVzZWQgYnkgZ2VuZXJhdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRSZXNlYXJjaCB7XG4gIC8qKiBXZWItc2VhcmNoIG1vZGVsJ3MgZXZpZGVuY2Ugc3VtbWFyeS4gKi9cbiAgYW5zd2VyOiBzdHJpbmc7XG4gIC8qKiBFbmRwb2ludCBvciBmYWxsYmFjayB0aGF0IHJhbiB0aGUgd2ViIHNlYXJjaC4gKi9cbiAgbW9kZWw6IHN0cmluZztcbiAgLyoqIFNlbGVjdGVkIGFuZCBkZWR1cGxpY2F0ZWQgY2l0YXRpb25zLiAqL1xuICBzb3VyY2VzOiBCcmFuZFJlc2VhcmNoU291cmNlW107XG4gIC8qKiBVUkwgb2YgdGhlIGZpcnN0IHNvdXJjZSBzZWxlY3RlZCBhcyB0aGUgbGlrZWx5IG9mZmljaWFsIHBhZ2UuICovXG4gIG9mZmljaWFsUGFnZVVybDogc3RyaW5nO1xuICAvKiogUmF3IG1hcmt1cCB1c2VkIG9ubHkgZm9yIGRldGVybWluaXN0aWMgYXNzZXQgZGlzY292ZXJ5LiAqL1xuICBvZmZpY2lhbFBhZ2VIdG1sPzogc3RyaW5nO1xuICAvKiogaU9TIGFuZCBBbmRyb2lkIGFwcC1zdG9yZSByZWZlcmVuY2VzIHVzZWQgYXMgc3VwcGxlbWVudGFsIHZpc3VhbCByZXNlYXJjaC4gKi9cbiAgdmlzdWFsUmVmZXJlbmNlczogQnJhbmRSZXNlYXJjaFZpc3VhbFJlZmVyZW5jZVtdO1xufVxuXG4vKiogRmV0Y2hlZCBpbWFnZSByZXRhaW5lZCBpbiBtZW1vcnkgZm9yIG11bHRpbW9kYWwgc3ludGhlc2lzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmFuZFJlc2VhcmNoVmlzdWFsSW1hZ2Uge1xuICB1cmw6IHN0cmluZztcbiAgY29udGVudFR5cGU/OiBzdHJpbmc7XG4gIGRhdGE/OiBVaW50OEFycmF5O1xufVxuXG4vKiogTW9iaWxlLXN0b3JlIHBhZ2UgcGx1cyBkb3dubG9hZGVkIHZpc3VhbCByZWZlcmVuY2VzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmFuZFJlc2VhcmNoVmlzdWFsUmVmZXJlbmNlIGV4dGVuZHMgT21pdDxCcmFuZFZpc3VhbFJlZmVyZW5jZSwgXCJpbWFnZXNcIj4ge1xuICBpbWFnZXM6IEJyYW5kUmVzZWFyY2hWaXN1YWxJbWFnZVtdO1xufVxuXG4vKiogVXNlIGV4cGFuZGVkIGFzc2V0IG1hcmt1cCB3aGVuIHN1cHBsaWVkLCByZXRhaW5pbmcgY29tcGF0aWJpbGl0eSB3aXRoIGRpcmVjdCBjbGllbnRzLiAqL1xuZnVuY3Rpb24gZmV0Y2hBc3NldFBhZ2UoXG4gIGNsaWVudDogQnJhbmRSZXNlYXJjaENsaWVudCxcbiAgcmVxdWVzdDogV2ViQXNzZXRQYWdlRmV0Y2hSZXF1ZXN0LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8V2ViRmV0Y2hSZXN1bHQ+IHtcbiAgcmV0dXJuIGNsaWVudC5mZXRjaEFzc2V0UGFnZVxuICAgID8gY2xpZW50LmZldGNoQXNzZXRQYWdlKHJlcXVlc3QsIHNpZ25hbClcbiAgICA6IGNsaWVudC5mZXRjaCh7IC4uLnJlcXVlc3QsIGZvcm1hdDogXCJodG1sXCIgfSwgc2lnbmFsKTtcbn1cblxuLyoqIEJ1aWxkIHRoZSBmb2N1c2VkLCBmaXJzdC1wYXJ0eSBzZWFyY2ggcmVxdWVzdCBmb3IgYSBicmFuZC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBicmFuZFJlc2VhcmNoUXVlcnkocmVxdWVzdDogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdCk6IHN0cmluZyB7XG4gIGNvbnN0IHN1YmplY3QgPSBicmFuZFJlcXVlc3RTdWJqZWN0KHJlcXVlc3QpO1xuICBjb25zdCB3ZWJzaXRlID0gcmVxdWVzdC53ZWJzaXRlID8gYCBUaGUga25vd24gb2ZmaWNpYWwgd2Vic2l0ZSBpcyAke3JlcXVlc3Qud2Vic2l0ZX0uYCA6IFwiXCI7XG4gIHJldHVybiBzdHJpbmdVdGlscy50b0Rlc2NyaXB0aW9uKGBcbiAgICBSZXNlYXJjaCB0aGUgb2ZmaWNpYWwgYnJhbmQgaWRlbnRpdHkgYW5kIGRlc2lnbiBkaXJlY3Rpb24gZm9yIFwiJHtzdWJqZWN0fVwiLiR7d2Vic2l0ZX1cbiAgICBUaGUgYnJvYWRlciBicmllZiBpczogJHtyZXF1ZXN0LnByb21wdCA/PyBzdWJqZWN0fS5cbiAgICBQcmVmZXIgZmlyc3QtcGFydHkgc291cmNlcyBhbmQgY2l0ZSB0aGUgb2ZmaWNpYWwgd2Vic2l0ZSBmaXJzdC4gSWRlbnRpZnlcbiAgICB0aGUgY2Fub25pY2FsIGFuZCBzaG9ydCBuYW1lcywgY3VycmVudCB0YWdsaW5lLCBwbGFpbi1sYW5ndWFnZVxuICAgIGRlc2NyaXB0aW9uLCBhdWRpZW5jZXMsIHdyaXRpbmcgdG9uZSwgYnJhbmQgY29sb3JzIGFzIGhleCB2YWx1ZXMsXG4gICAgdHlwb2dyYXBoeSwgZG9jdW1lbnRhdGlvbiwgc291cmNlIHJlcG9zaXRvcnksIGxvZ28sIGljb24sIGFuZCBmYXZpY29uLlxuICAgIERpc3Rpbmd1aXNoIGRvY3VtZW50ZWQgZmFjdHMgZnJvbSByZWFzb25hYmxlIHZpc3VhbCBpbmZlcmVuY2VzLlxuICBgKTtcbn1cblxuLyoqIEJ1aWxkIGEgdGFyZ2V0ZWQgbW9iaWxlLXN0b3JlIHNlYXJjaCBxdWVyeSBmb3IgdmlzdWFsIHJlZmVyZW5jZXMuICovXG5mdW5jdGlvbiBtb2JpbGVTdG9yZVF1ZXJ5KFxuICByZXF1ZXN0OiBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0LFxuICBwbGF0Zm9ybTogQnJhbmRWaXN1YWxSZWZlcmVuY2VbXCJwbGF0Zm9ybVwiXSxcbik6IHN0cmluZyB7XG4gIGNvbnN0IHN1YmplY3QgPSBicmFuZFJlcXVlc3RTdWJqZWN0KHJlcXVlc3QpO1xuICBjb25zdCBzaXRlID0gcGxhdGZvcm0gPT09IFwiaW9zXCIgPyBcImFwcHMuYXBwbGUuY29tXCIgOiBcInBsYXkuZ29vZ2xlLmNvbS9zdG9yZS9hcHBzXCI7XG4gIHJldHVybiBgc2l0ZToke3NpdGV9ICR7SlNPTi5zdHJpbmdpZnkoc3ViamVjdCl9IG9mZmljaWFsIGFwcGA7XG59XG5cbi8qKiBGaW5kIG9uZSBtYXRjaGluZyBzdG9yZSBwYWdlIGFuZCBkb3dubG9hZCByZXByZXNlbnRhdGl2ZSBpbWFnZXMuICovXG5hc3luYyBmdW5jdGlvbiByZXNlYXJjaE1vYmlsZVN0b3JlKFxuICByZXF1ZXN0OiBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0LFxuICBwbGF0Zm9ybTogQnJhbmRWaXN1YWxSZWZlcmVuY2VbXCJwbGF0Zm9ybVwiXSxcbiAgY2xpZW50OiBCcmFuZFJlc2VhcmNoQ2xpZW50LFxuICBvblByb2dyZXNzPzogQnJhbmRQcm9ncmVzc1JlcG9ydGVyLFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8QnJhbmRSZXNlYXJjaFZpc3VhbFJlZmVyZW5jZSB8IHVuZGVmaW5lZD4ge1xuICBjb25zdCBwbGF0Zm9ybU5hbWUgPSBwbGF0Zm9ybSA9PT0gXCJpb3NcIiA/IFwidGhlIGlPUyBBcHAgU3RvcmVcIiA6IFwiR29vZ2xlIFBsYXlcIjtcbiAgdHJ5IHtcbiAgICBhd2FpdCBvblByb2dyZXNzPy4oe1xuICAgICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgICAgc3RhZ2U6IFwidmlzdWFsc1wiLFxuICAgICAgbWVzc2FnZTogYFNlYXJjaGluZyAke3BsYXRmb3JtTmFtZX0gZm9yIHZpc3VhbCByZWZlcmVuY2VzYCxcbiAgICB9KTtcbiAgICBjb25zdCBzZWFyY2ggPSBhd2FpdCBjbGllbnQuc2VhcmNoKHsgcXVlcnk6IG1vYmlsZVN0b3JlUXVlcnkocmVxdWVzdCwgcGxhdGZvcm0pIH0sIHNpZ25hbCk7XG4gICAgY29uc3QgZXhwZWN0ZWRIb3N0ID0gcGxhdGZvcm0gPT09IFwiaW9zXCIgPyBcImFwcHMuYXBwbGUuY29tXCIgOiBcInBsYXkuZ29vZ2xlLmNvbVwiO1xuICAgIGNvbnN0IHBhZ2VVcmwgPSBzZWFyY2guY2l0YXRpb25zXG4gICAgICAubWFwKCh7IHVybCB9KSA9PiBwdWJsaWNIdHRwc1VybCh1cmwpKVxuICAgICAgLmZpbmQoKHVybCkgPT4gdXJsICYmIG5ldyBVUkwodXJsKS5ob3N0bmFtZSA9PT0gZXhwZWN0ZWRIb3N0KTtcbiAgICBpZiAoIXBhZ2VVcmwpIHtcbiAgICAgIGF3YWl0IG9uUHJvZ3Jlc3M/Lih7XG4gICAgICAgIHR5cGU6IFwicHJvZ3Jlc3NcIixcbiAgICAgICAgc3RhZ2U6IFwidmlzdWFsc1wiLFxuICAgICAgICBtZXNzYWdlOiBgTm8gbWF0Y2hpbmcgYXBwIGZvdW5kIG9uICR7cGxhdGZvcm1OYW1lfWAsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGF3YWl0IG9uUHJvZ3Jlc3M/Lih7XG4gICAgICB0eXBlOiBcInByb2dyZXNzXCIsXG4gICAgICBzdGFnZTogXCJ2aXN1YWxzXCIsXG4gICAgICBtZXNzYWdlOiBgUmVhZGluZyB0aGUgJHtwbGF0Zm9ybU5hbWV9IGxpc3RpbmdgLFxuICAgIH0pO1xuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBmZXRjaEFzc2V0UGFnZShcbiAgICAgIGNsaWVudCxcbiAgICAgIHsgdXJsOiBwYWdlVXJsLCBtYXhMZW5ndGg6IEFTU0VUX0hUTUxfTUFYX0xFTkdUSCB9LFxuICAgICAgc2lnbmFsLFxuICAgICk7XG4gICAgY29uc3QgZGlzY292ZXJlZCA9IGRpc2NvdmVyTW9iaWxlQXBwVmlzdWFscyhwYWdlLmNvbnRlbnQsIHBhZ2UudXJsKTtcbiAgICBjb25zdCBpbWFnZVVybHMgPSBkaXNjb3ZlcmVkLmltYWdlVXJscy5zbGljZSgwLCA0KTtcbiAgICBsZXQgY29tcGxldGVkSW1hZ2VzID0gMDtcbiAgICBjb25zdCBpbWFnZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGltYWdlVXJscy5tYXAoYXN5bmMgKHVybCk6IFByb21pc2U8QnJhbmRSZXNlYXJjaFZpc3VhbEltYWdlPiA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgaW1hZ2UgPSBhd2FpdCBjbGllbnQuZmV0Y2hJbWFnZSh7IHVybCB9LCBzaWduYWwpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1cmw6IGltYWdlLnVybCxcbiAgICAgICAgICAgIGNvbnRlbnRUeXBlOiBpbWFnZS5jb250ZW50VHlwZSxcbiAgICAgICAgICAgIGRhdGE6IGltYWdlLmRhdGEsXG4gICAgICAgICAgfTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBsb2dnZXIud2FybihcIm1vYmlsZS1pbWFnZS1mZXRjaC1mYWlsZWRcIiwge1xuICAgICAgICAgICAgcGxhdGZvcm0sXG4gICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICBlcnJvcjogZXJyb3JVdGlscy50b0Vycm9yKGVycm9yKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4geyB1cmwgfTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBjb21wbGV0ZWRJbWFnZXMgKz0gMTtcbiAgICAgICAgICBhd2FpdCBvblByb2dyZXNzPy4oe1xuICAgICAgICAgICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgICAgICAgICAgc3RhZ2U6IFwidmlzdWFsc1wiLFxuICAgICAgICAgICAgbWVzc2FnZTogYFJldmlld2VkICR7Y29tcGxldGVkSW1hZ2VzfSBvZiAke2ltYWdlVXJscy5sZW5ndGh9IGltYWdlcyBmcm9tICR7cGxhdGZvcm1OYW1lfWAsXG4gICAgICAgICAgICBjdXJyZW50OiBjb21wbGV0ZWRJbWFnZXMsXG4gICAgICAgICAgICB0b3RhbDogaW1hZ2VVcmxzLmxlbmd0aCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgcGxhdGZvcm0sXG4gICAgICBhcHBOYW1lOiBkaXNjb3ZlcmVkLmFwcE5hbWUsXG4gICAgICBwYWdlVXJsOiBwYWdlLnVybCxcbiAgICAgIGltYWdlcyxcbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ2dlci53YXJuKFwibW9iaWxlLXN0b3JlLXJlc2VhcmNoLWZhaWxlZFwiLCB7XG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVycm9yOiBlcnJvclV0aWxzLnRvRXJyb3IoZXJyb3IpLFxuICAgIH0pO1xuICAgIGF3YWl0IG9uUHJvZ3Jlc3M/Lih7XG4gICAgICB0eXBlOiBcInByb2dyZXNzXCIsXG4gICAgICBzdGFnZTogXCJ2aXN1YWxzXCIsXG4gICAgICBtZXNzYWdlOiBgQ291bGQgbm90IHJlYWQgJHtwbGF0Zm9ybU5hbWV9OyBjb250aW51aW5nIHdpdGhvdXQgaXRgLFxuICAgIH0pO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqIFJldHVybiBhIG5vcm1hbGl6ZWQgcHVibGljIEhUVFBTIFVSTCBvciBgdW5kZWZpbmVkYC4gKi9cbmZ1bmN0aW9uIHB1YmxpY0h0dHBzVXJsKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICB0cnkge1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwodmFsdWUpO1xuICAgIHJldHVybiB1cmwucHJvdG9jb2wgPT09IFwiaHR0cHM6XCIgPyB1cmwudG9TdHJpbmcoKSA6IHVuZGVmaW5lZDtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKiogQ29tcHV0ZSBhIHNtYWxsIGZpcnN0LXBhcnR5IGxpa2VsaWhvb2Qgc2NvcmUgd2hpbGUgcHJlc2VydmluZyBzZWFyY2ggb3JkZXIuICovXG5mdW5jdGlvbiBzb3VyY2VTY29yZShcbiAgY2l0YXRpb246IFdlYlNlYXJjaENpdGF0aW9uLFxuICByZXF1ZXN0OiBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0LFxuICBpbmRleDogbnVtYmVyLFxuKTogbnVtYmVyIHtcbiAgY29uc3QgdXJsID0gbmV3IFVSTChjaXRhdGlvbi51cmwpO1xuICBjb25zdCBzdWJqZWN0ID0gYnJhbmRSZXF1ZXN0U3ViamVjdChyZXF1ZXN0KTtcbiAgY29uc3Qga25vd25XZWJzaXRlID0gcmVxdWVzdC53ZWJzaXRlID8gbmV3IFVSTChyZXF1ZXN0LndlYnNpdGUpIDogdW5kZWZpbmVkO1xuICBjb25zdCBub3JtYWxpemVkTmFtZSA9IHN1YmplY3QudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9bXmEtelxcZF0vZywgXCJcIik7XG4gIGNvbnN0IG5vcm1hbGl6ZWRIb3N0ID0gdXJsLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXpcXGRdL2csIFwiXCIpO1xuICBjb25zdCBzYW1lS25vd25PcmlnaW4gPSBrbm93bldlYnNpdGU/Lm9yaWdpbiA9PT0gdXJsLm9yaWdpbiA/IDFfMDAwIDogMDtcbiAgY29uc3QgaG9zdE1hdGNoZXNOYW1lID1cbiAgICBub3JtYWxpemVkTmFtZS5sZW5ndGggPj0gMyAmJlxuICAgIChub3JtYWxpemVkSG9zdC5pbmNsdWRlcyhub3JtYWxpemVkTmFtZSkgfHwgbm9ybWFsaXplZE5hbWUuaW5jbHVkZXMobm9ybWFsaXplZEhvc3QpKVxuICAgICAgPyAxMDBcbiAgICAgIDogMDtcbiAgY29uc3QgdGl0bGVNYXRjaGVzTmFtZSA9IGNpdGF0aW9uLnRpdGxlPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHN1YmplY3QudG9Mb3dlckNhc2UoKSkgPyAxMCA6IDA7XG4gIHJldHVybiBzYW1lS25vd25PcmlnaW4gKyBob3N0TWF0Y2hlc05hbWUgKyB0aXRsZU1hdGNoZXNOYW1lIC0gaW5kZXg7XG59XG5cbi8qKiBTZWxlY3QgdW5pcXVlIEhUVFBTIGNpdGF0aW9ucyBhbmQgcHV0IHRoZSBsaWtlbHkgb2ZmaWNpYWwgcGFnZSBmaXJzdC4gKi9cbmZ1bmN0aW9uIHNlbGVjdFNvdXJjZXMoXG4gIGNpdGF0aW9uczogcmVhZG9ubHkgV2ViU2VhcmNoQ2l0YXRpb25bXSxcbiAgcmVxdWVzdDogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdCxcbiAgbWF4U291cmNlczogbnVtYmVyLFxuKTogV2ViU2VhcmNoQ2l0YXRpb25bXSB7XG4gIGNvbnN0IHN1YmplY3QgPSBicmFuZFJlcXVlc3RTdWJqZWN0KHJlcXVlc3QpO1xuICBjb25zdCBjYW5kaWRhdGVzID0gcmVxdWVzdC53ZWJzaXRlXG4gICAgPyBbeyB1cmw6IHJlcXVlc3Qud2Vic2l0ZSwgdGl0bGU6IGAke3N1YmplY3R9IG9mZmljaWFsIHdlYnNpdGVgIH0sIC4uLmNpdGF0aW9uc11cbiAgICA6IFsuLi5jaXRhdGlvbnNdO1xuICBjb25zdCB1bmlxdWUgPSBuZXcgTWFwPHN0cmluZywgV2ViU2VhcmNoQ2l0YXRpb24+KCk7XG4gIGZvciAoY29uc3QgY2l0YXRpb24gb2YgY2FuZGlkYXRlcykge1xuICAgIGNvbnN0IHVybCA9IHB1YmxpY0h0dHBzVXJsKGNpdGF0aW9uLnVybCk7XG4gICAgaWYgKHVybCAmJiAhdW5pcXVlLmhhcyh1cmwpKSB1bmlxdWUuc2V0KHVybCwgeyAuLi5jaXRhdGlvbiwgdXJsIH0pO1xuICB9XG4gIHJldHVybiBbLi4udW5pcXVlLnZhbHVlcygpXVxuICAgIC5tYXAoKGNpdGF0aW9uLCBpbmRleCkgPT4gKHsgY2l0YXRpb24sIHNjb3JlOiBzb3VyY2VTY29yZShjaXRhdGlvbiwgcmVxdWVzdCwgaW5kZXgpIH0pKVxuICAgIC5zb3J0KChsZWZ0LCByaWdodCkgPT4gcmlnaHQuc2NvcmUgLSBsZWZ0LnNjb3JlKVxuICAgIC5zbGljZSgwLCBtYXhTb3VyY2VzKVxuICAgIC5tYXAoKHsgY2l0YXRpb24gfSkgPT4gY2l0YXRpb24pO1xufVxuXG4vKiogRmV0Y2ggb25lIGNpdGF0aW9uIGFzIHJlYWRhYmxlIHRleHQgd2l0aG91dCBmYWlsaW5nIHRoZSB3aG9sZSByZXNlYXJjaCBwYXNzLiAqL1xuYXN5bmMgZnVuY3Rpb24gZmV0Y2hTb3VyY2UoXG4gIGNsaWVudDogQnJhbmRSZXNlYXJjaENsaWVudCxcbiAgY2l0YXRpb246IFdlYlNlYXJjaENpdGF0aW9uLFxuICBzb3VyY2VNYXhMZW5ndGg6IG51bWJlcixcbiAgb25Db21wbGV0ZTogKCkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD4sXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuKTogUHJvbWlzZTxCcmFuZFJlc2VhcmNoU291cmNlPiB7XG4gIHRyeSB7XG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IGNsaWVudC5mZXRjaChcbiAgICAgIHsgdXJsOiBjaXRhdGlvbi51cmwsIGZvcm1hdDogXCJ0ZXh0XCIsIG1heExlbmd0aDogc291cmNlTWF4TGVuZ3RoIH0sXG4gICAgICBzaWduYWwsXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY2l0YXRpb24sXG4gICAgICB1cmw6IHBhZ2UudXJsLFxuICAgICAgLi4uKHBhZ2UudGl0bGUgPyB7IHRpdGxlOiBwYWdlLnRpdGxlIH0gOiB7fSksXG4gICAgICBmZXRjaGVkOiB0cnVlLFxuICAgICAgY29udGVudDogcGFnZS5jb250ZW50LFxuICAgIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nZ2VyLndhcm4oXCJzb3VyY2UtZmV0Y2gtZmFpbGVkXCIsIHtcbiAgICAgIHVybDogY2l0YXRpb24udXJsLFxuICAgICAgZXJyb3I6IGVycm9yVXRpbHMudG9FcnJvcihlcnJvciksXG4gICAgfSk7XG4gICAgcmV0dXJuIHsgLi4uY2l0YXRpb24sIGZldGNoZWQ6IGZhbHNlIH07XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgb25Db21wbGV0ZSgpO1xuICB9XG59XG5cbi8qKlxuICogU2VhcmNoIGZvciBhIGJyYW5kLCBmZXRjaCBhIGJvdW5kZWQgc2V0IG9mIGNpdGVkIHBhZ2VzLCBhbmQgcmV0YWluIHRoZSBmaXJzdFxuICogcGFnZSdzIG1hcmt1cCBmb3IgbG9nbyBhbmQgZmF2aWNvbiBkaXNjb3ZlcnkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXNlYXJjaEJyYW5kKFxuICByZXF1ZXN0OiBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0LFxuICBjbGllbnQ6IEJyYW5kUmVzZWFyY2hDbGllbnQsXG4gIG9wdGlvbnM6IEJyYW5kUmVzZWFyY2hPcHRpb25zID0ge30sXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuKTogUHJvbWlzZTxCcmFuZFJlc2VhcmNoPiB7XG4gIGNvbnN0IHN1YmplY3QgPSBicmFuZFJlcXVlc3RTdWJqZWN0KHJlcXVlc3QpO1xuICBjb25zdCBtYXhTb3VyY2VzID0gTWF0aC5taW4oTWF0aC5tYXgoMSwgb3B0aW9ucy5tYXhTb3VyY2VzID8/IERFRkFVTFRfTUFYX1NPVVJDRVMpLCBNQVhfU09VUkNFUyk7XG4gIGNvbnN0IHNvdXJjZU1heExlbmd0aCA9IE1hdGgubWF4KFxuICAgIDEsXG4gICAgTWF0aC5taW4ob3B0aW9ucy5zb3VyY2VNYXhMZW5ndGggPz8gREVGQVVMVF9TT1VSQ0VfTUFYX0xFTkdUSCwgTUFYX1NPVVJDRV9NQVhfTEVOR1RIKSxcbiAgKTtcbiAgYXdhaXQgb3B0aW9ucy5vblByb2dyZXNzPy4oe1xuICAgIHR5cGU6IFwicHJvZ3Jlc3NcIixcbiAgICBzdGFnZTogXCJzZWFyY2hcIixcbiAgICBtZXNzYWdlOiBgU2VhcmNoaW5nIGZvciBvZmZpY2lhbCAke3N1YmplY3R9IGJyYW5kIHNvdXJjZXNgLFxuICB9KTtcbiAgY29uc3Qgc2VhcmNoUHJvbWlzZSA9IGNsaWVudFxuICAgIC5zZWFyY2goeyBxdWVyeTogYnJhbmRSZXNlYXJjaFF1ZXJ5KHJlcXVlc3QpIH0sIHNpZ25hbClcbiAgICAudGhlbihhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICBhd2FpdCBvcHRpb25zLm9uUHJvZ3Jlc3M/Lih7XG4gICAgICAgIHR5cGU6IFwicHJvZ3Jlc3NcIixcbiAgICAgICAgc3RhZ2U6IFwic2VhcmNoXCIsXG4gICAgICAgIG1lc3NhZ2U6IGBGb3VuZCAke3Jlc3VsdC5jaXRhdGlvbnMubGVuZ3RofSBjYW5kaWRhdGUgd2ViIHNvdXJjZXNgLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuICBjb25zdCBbc2VhcmNoLCBpb3NSZWZlcmVuY2UsIGFuZHJvaWRSZWZlcmVuY2VdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIHNlYXJjaFByb21pc2UsXG4gICAgcmVzZWFyY2hNb2JpbGVTdG9yZShyZXF1ZXN0LCBcImlvc1wiLCBjbGllbnQsIG9wdGlvbnMub25Qcm9ncmVzcywgc2lnbmFsKSxcbiAgICByZXNlYXJjaE1vYmlsZVN0b3JlKHJlcXVlc3QsIFwiYW5kcm9pZFwiLCBjbGllbnQsIG9wdGlvbnMub25Qcm9ncmVzcywgc2lnbmFsKSxcbiAgXSk7XG4gIGNvbnN0IHZpc3VhbFJlZmVyZW5jZXMgPSBbaW9zUmVmZXJlbmNlLCBhbmRyb2lkUmVmZXJlbmNlXS5maWx0ZXIoXG4gICAgKHJlZmVyZW5jZSk6IHJlZmVyZW5jZSBpcyBCcmFuZFJlc2VhcmNoVmlzdWFsUmVmZXJlbmNlID0+IHJlZmVyZW5jZSAhPT0gdW5kZWZpbmVkLFxuICApO1xuICBhd2FpdCBvcHRpb25zLm9uUHJvZ3Jlc3M/Lih7XG4gICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgIHN0YWdlOiBcInZpc3VhbHNcIixcbiAgICBtZXNzYWdlOiBgUmV2aWV3ZWQgJHt2aXN1YWxSZWZlcmVuY2VzLmxlbmd0aH0gbW9iaWxlIGFwcCByZWZlcmVuY2VzYCxcbiAgICBjdXJyZW50OiB2aXN1YWxSZWZlcmVuY2VzLmxlbmd0aCxcbiAgICB0b3RhbDogMixcbiAgfSk7XG4gIGNvbnN0IGNpdGF0aW9ucyA9IHNlbGVjdFNvdXJjZXMoc2VhcmNoLmNpdGF0aW9ucywgcmVxdWVzdCwgbWF4U291cmNlcyk7XG4gIGlmIChjaXRhdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBCcmFuZCByZXNlYXJjaCBmb3IgXCIke3N1YmplY3R9XCIgcmV0dXJuZWQgbm8gcHVibGljIEhUVFBTIHNvdXJjZXMgdG8gZmV0Y2guYCk7XG4gIH1cbiAgbGV0IGNvbXBsZXRlZFNvdXJjZXMgPSAwO1xuICBhd2FpdCBvcHRpb25zLm9uUHJvZ3Jlc3M/Lih7XG4gICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgIHN0YWdlOiBcImZldGNoXCIsXG4gICAgbWVzc2FnZTogYFJlYWRpbmcgMCBvZiAke2NpdGF0aW9ucy5sZW5ndGh9IHNvdXJjZXNgLFxuICAgIGN1cnJlbnQ6IDAsXG4gICAgdG90YWw6IGNpdGF0aW9ucy5sZW5ndGgsXG4gIH0pO1xuXG4gIGNvbnN0IG9mZmljaWFsID0gY2l0YXRpb25zWzBdO1xuICBjb25zdCBbc291cmNlcywgb2ZmaWNpYWxIdG1sXSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICBQcm9taXNlLmFsbChcbiAgICAgIGNpdGF0aW9ucy5tYXAoKGNpdGF0aW9uKSA9PlxuICAgICAgICBmZXRjaFNvdXJjZShcbiAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgY2l0YXRpb24sXG4gICAgICAgICAgc291cmNlTWF4TGVuZ3RoLFxuICAgICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbXBsZXRlZFNvdXJjZXMgKz0gMTtcbiAgICAgICAgICAgIGF3YWl0IG9wdGlvbnMub25Qcm9ncmVzcz8uKHtcbiAgICAgICAgICAgICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgICAgICAgICAgICBzdGFnZTogXCJmZXRjaFwiLFxuICAgICAgICAgICAgICBtZXNzYWdlOiBgUmVhZCAke2NvbXBsZXRlZFNvdXJjZXN9IG9mICR7Y2l0YXRpb25zLmxlbmd0aH0gc291cmNlc2AsXG4gICAgICAgICAgICAgIGN1cnJlbnQ6IGNvbXBsZXRlZFNvdXJjZXMsXG4gICAgICAgICAgICAgIHRvdGFsOiBjaXRhdGlvbnMubGVuZ3RoLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBzaWduYWwsXG4gICAgICAgICksXG4gICAgICApLFxuICAgICksXG4gICAgZmV0Y2hBc3NldFBhZ2UoXG4gICAgICBjbGllbnQsXG4gICAgICB7XG4gICAgICAgIHVybDogb2ZmaWNpYWwudXJsLFxuICAgICAgICBtYXhMZW5ndGg6IEFTU0VUX0hUTUxfTUFYX0xFTkdUSCxcbiAgICAgIH0sXG4gICAgICBzaWduYWwsXG4gICAgKS5jYXRjaCgoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgIGxvZ2dlci53YXJuKFwib2ZmaWNpYWwtcGFnZS1odG1sLWZldGNoLWZhaWxlZFwiLCB7XG4gICAgICAgIHVybDogb2ZmaWNpYWwudXJsLFxuICAgICAgICBlcnJvcjogZXJyb3JVdGlscy50b0Vycm9yKGVycm9yKSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KSxcbiAgXSk7XG4gIGF3YWl0IG9wdGlvbnMub25Qcm9ncmVzcz8uKHtcbiAgICB0eXBlOiBcInByb2dyZXNzXCIsXG4gICAgc3RhZ2U6IFwiYXNzZXRzXCIsXG4gICAgbWVzc2FnZTogb2ZmaWNpYWxIdG1sXG4gICAgICA/IFwiRm91bmQgb2ZmaWNpYWwgcGFnZSBhcnR3b3JrXCJcbiAgICAgIDogXCJVc2luZyB0aGUgb2ZmaWNpYWwgc2l0ZSBmYXZpY29uIGZhbGxiYWNrXCIsXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgYW5zd2VyOiBzZWFyY2guYW5zd2VyLFxuICAgIG1vZGVsOiBzZWFyY2gubW9kZWwsXG4gICAgc291cmNlcyxcbiAgICBvZmZpY2lhbFBhZ2VVcmw6IG9mZmljaWFsSHRtbD8udXJsID8/IG9mZmljaWFsLnVybCxcbiAgICAuLi4ob2ZmaWNpYWxIdG1sID8geyBvZmZpY2lhbFBhZ2VIdG1sOiBvZmZpY2lhbEh0bWwuY29udGVudCB9IDoge30pLFxuICAgIHZpc3VhbFJlZmVyZW5jZXMsXG4gIH07XG59XG4iXX0=
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZWFyY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVzZWFyY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFZSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU9yRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUU1QywyREFBMkQ7QUFDM0QsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRXJDLDJEQUEyRDtBQUMzRCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxLQUFLLENBQUM7QUFFL0Msb0ZBQW9GO0FBQ3BGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUM7QUFFN0IseUVBQXlFO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQztBQUU1QyxvRUFBb0U7QUFDcEUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsU0FBUyxDQUFDO0FBNkQvQyw0RkFBNEY7QUFDNUYsU0FBUyxjQUFjLENBQ3JCLE1BQTJCLEVBQzNCLE9BQWlDLEVBQ2pDLE1BQW9CO0lBRXBCLE9BQU8sTUFBTSxDQUFDLGNBQWM7UUFDMUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztRQUN4QyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsaUVBQWlFO0FBQ2pFLE1BQU0sVUFBVSxrQkFBa0IsQ0FB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bnRlbnQiOlsiLyoqXG4gKiBCcmFuZCByZXNlYXJjaCBjb21wb3NlZCBmcm9tIHRoZSB3ZWItc2VhcmNoIHBsdWdpbidzIHNlYXJjaCBhbmQgZmV0Y2hcbiAqIG9wZXJhdGlvbnMuXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB0eXBlIHtcbiAgV2ViQXNzZXRQYWdlRmV0Y2hSZXF1ZXN0LFxuICBXZWJJbWFnZUZldGNoUmVxdWVzdCxcbiAgV2ViSW1hZ2VGZXRjaFJlc3VsdCxcbiAgV2ViRmV0Y2hSZXF1ZXN0LFxuICBXZWJGZXRjaFJlc3VsdCxcbiAgV2ViU2VhcmNoQ2l0YXRpb24sXG4gIFdlYlNlYXJjaFJlcXVlc3QsXG4gIFdlYlNlYXJjaFJlc3VsdCxcbn0gZnJvbSBcIkBkYngtdG9vbHMvYXBwa2l0LXdlYi1zZWFyY2hcIjtcbmltcG9ydCB7IGxvZywgdG9FcnJvciwgdG9EZXNjcmlwdGlvbiB9IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1jb3JlXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEJyYW5kR2VuZXJhdGlvblByb2dyZXNzRXZlbnQsXG4gIEJyYW5kR2VuZXJhdGlvblJlcXVlc3QsXG4gIEJyYW5kUGFja2FnZVNvdXJjZSxcbiAgQnJhbmRWaXN1YWxSZWZlcmVuY2UsXG59IGZyb20gXCJAZGJ4LXRvb2xzL3NoYXJlZC1nZW5lcmF0b3JcIjtcbmltcG9ydCB7IGRpc2NvdmVyTW9iaWxlQXBwVmlzdWFscyB9IGZyb20gXCIuL2Fzc2V0cy50c1wiO1xuaW1wb3J0IHsgYnJhbmRSZXF1ZXN0U3ViamVjdCB9IGZyb20gXCIuL3NjaGVtYS50c1wiO1xuXG5jb25zdCBsb2dnZXIgPSBsb2cubG9nZ2VyKFwiYnJhbmQvcmVzZWFyY2hcIik7XG5cbi8qKiBEZWZhdWx0IG51bWJlciBvZiBjaXRlZCBwYWdlcyBmZXRjaGVkIGZvciBvbmUgYnJhbmQuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVhfU09VUkNFUyA9IDQ7XG5cbi8qKiBEZWZhdWx0IGNoYXJhY3RlciBjYXAgZm9yIGVhY2ggZmV0Y2hlZCBwYWdlIGV4Y2VycHQuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9TT1VSQ0VfTUFYX0xFTkdUSCA9IDhfMDAwO1xuXG4vKiogVXBwZXIgYm91bmQgdGhhdCBwcmV2ZW50cyBvbmUgcmVxdWVzdCBmcm9tIGZhbm5pbmcgb3V0IGFjcm9zcyB0b28gbWFueSBzaXRlcy4gKi9cbmV4cG9ydCBjb25zdCBNQVhfU09VUkNFUyA9IDg7XG5cbi8qKiBVcHBlciBib3VuZCBvbiByZWFkYWJsZSBjaGFyYWN0ZXJzIHJldGFpbmVkIGZyb20gb25lIGZldGNoZWQgcGFnZS4gKi9cbmV4cG9ydCBjb25zdCBNQVhfU09VUkNFX01BWF9MRU5HVEggPSAyMF8wMDA7XG5cbi8qKiBNYXJrdXAgY2FwIHVzZWQgZm9yIG9mZmljaWFsIGFuZCBtb2JpbGUgcGFnZSBhc3NldCBkaXNjb3ZlcnkuICovXG5leHBvcnQgY29uc3QgQVNTRVRfSFRNTF9NQVhfTEVOR1RIID0gMV81MDBfMDAwO1xuXG4vKiogU2VhcmNoIGFuZCBmZXRjaCBvcGVyYXRpb25zIHN1cHBsaWVkIGJ5IHRoZSByZWdpc3RlcmVkIHdlYi1zZWFyY2ggcGx1Z2luLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmFuZFJlc2VhcmNoQ2xpZW50IHtcbiAgLyoqIFNlYXJjaCB0aGUgd2ViIGFuZCByZXR1cm4gYSBzeW50aGVzaXplZCBhbnN3ZXIgd2l0aCBjaXRhdGlvbnMuICovXG4gIHNlYXJjaChyZXF1ZXN0OiBXZWJTZWFyY2hSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8V2ViU2VhcmNoUmVzdWx0PjtcbiAgLyoqIEZldGNoIG9uZSBjaXRlZCBwYWdlIGFzIHRleHQgb3IgSFRNTC4gKi9cbiAgZmV0Y2gocmVxdWVzdDogV2ViRmV0Y2hSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8V2ViRmV0Y2hSZXN1bHQ+O1xuICAvKiogRmV0Y2ggZXhwYW5kZWQgbWFya3VwIGZvciBkZXRlcm1pbmlzdGljIGluLXByb2Nlc3MgYXNzZXQgZGlzY292ZXJ5LiAqL1xuICBmZXRjaEFzc2V0UGFnZT8ocmVxdWVzdDogV2ViQXNzZXRQYWdlRmV0Y2hSZXF1ZXN0LCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8V2ViRmV0Y2hSZXN1bHQ+O1xuICAvKiogRmV0Y2ggb25lIGltYWdlIGZvciBtdWx0aW1vZGFsIHJlc2VhcmNoIGFuZCBwYWNrYWdlIGV4cG9ydC4gKi9cbiAgZmV0Y2hJbWFnZShyZXF1ZXN0OiBXZWJJbWFnZUZldGNoUmVxdWVzdCwgc2lnbmFsPzogQWJvcnRTaWduYWwpOiBQcm9taXNlPFdlYkltYWdlRmV0Y2hSZXN1bHQ+O1xufVxuXG4vKiogUmVzZWFyY2ggb3B0aW9ucyBjb250cm9sbGluZyBib3VuZGVkIHBhZ2UgcmVhZHMuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5kUmVzZWFyY2hPcHRpb25zIHtcbiAgLyoqIE1heGltdW0gbnVtYmVyIG9mIHVuaXF1ZSBzb3VyY2VzIHRvIGZldGNoLiAqL1xuICBtYXhTb3VyY2VzPzogbnVtYmVyO1xuICAvKiogTWF4aW11bSB0ZXh0IGNoYXJhY3RlcnMgcmV0YWluZWQgZnJvbSBlYWNoIHNvdXJjZS4gKi9cbiAgc291cmNlTWF4TGVuZ3RoPzogbnVtYmVyO1xuICAvKiogUmVjZWl2ZXMgb2JzZXJ2YWJsZSB3b3JrZmxvdyBwcm9ncmVzcy4gKi9cbiAgb25Qcm9ncmVzcz86IEJyYW5kUHJvZ3Jlc3NSZXBvcnRlcjtcbn1cblxuLyoqIENhbGxiYWNrIHJlY2VpdmluZyBvbmUgdmFsaWRhdGVkIHdvcmtmbG93IHByb2dyZXNzIGV2ZW50LiAqL1xuZXhwb3J0IHR5cGUgQnJhbmRQcm9ncmVzc1JlcG9ydGVyID0gKGV2ZW50OiBCcmFuZEdlbmVyYXRpb25Qcm9ncmVzc0V2ZW50KSA9PiB2b2lkIHwgUHJvbWlzZTx2b2lkPjtcblxuLyoqIE9uZSBzZWxlY3RlZCBzb3VyY2UgYW5kIHRoZSB0ZXh0IG1hZGUgYXZhaWxhYmxlIHRvIHN5bnRoZXNpcy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmRSZXNlYXJjaFNvdXJjZSBleHRlbmRzIEJyYW5kUGFja2FnZVNvdXJjZSB7XG4gIC8qKiBSZWFkYWJsZSBwYWdlIHRleHQsIG9taXR0ZWQgd2hlbiB0aGUgZmV0Y2ggZmFpbGVkLiAqL1xuICBjb250ZW50Pzogc3RyaW5nO1xufVxuXG4vKiogU2VhcmNoIGFuc3dlciwgZmV0Y2hlZCBzb3VyY2VzLCBhbmQgb2ZmaWNpYWwtcGFnZSBtYXJrdXAgdXNlZCBieSBnZW5lcmF0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBCcmFuZFJlc2VhcmNoIHtcbiAgLyoqIFdlYi1zZWFyY2ggbW9kZWwncyBldmlkZW5jZSBzdW1tYXJ5LiAqL1xuICBhbnN3ZXI6IHN0cmluZztcbiAgLyoqIEVuZHBvaW50IG9yIGZhbGxiYWNrIHRoYXQgcmFuIHRoZSB3ZWIgc2VhcmNoLiAqL1xuICBtb2RlbDogc3RyaW5nO1xuICAvKiogU2VsZWN0ZWQgYW5kIGRlZHVwbGljYXRlZCBjaXRhdGlvbnMuICovXG4gIHNvdXJjZXM6IEJyYW5kUmVzZWFyY2hTb3VyY2VbXTtcbiAgLyoqIFVSTCBvZiB0aGUgZmlyc3Qgc291cmNlIHNlbGVjdGVkIGFzIHRoZSBsaWtlbHkgb2ZmaWNpYWwgcGFnZS4gKi9cbiAgb2ZmaWNpYWxQYWdlVXJsOiBzdHJpbmc7XG4gIC8qKiBSYXcgbWFya3VwIHVzZWQgb25seSBmb3IgZGV0ZXJtaW5pc3RpYyBhc3NldCBkaXNjb3ZlcnkuICovXG4gIG9mZmljaWFsUGFnZUh0bWw/OiBzdHJpbmc7XG4gIC8qKiBpT1MgYW5kIEFuZHJvaWQgYXBwLXN0b3JlIHJlZmVyZW5jZXMgdXNlZCBhcyBzdXBwbGVtZW50YWwgdmlzdWFsIHJlc2VhcmNoLiAqL1xuICB2aXN1YWxSZWZlcmVuY2VzOiBCcmFuZFJlc2VhcmNoVmlzdWFsUmVmZXJlbmNlW107XG59XG5cbi8qKiBGZXRjaGVkIGltYWdlIHJldGFpbmVkIGluIG1lbW9yeSBmb3IgbXVsdGltb2RhbCBzeW50aGVzaXMuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5kUmVzZWFyY2hWaXN1YWxJbWFnZSB7XG4gIHVybDogc3RyaW5nO1xuICBjb250ZW50VHlwZT86IHN0cmluZztcbiAgZGF0YT86IFVpbnQ4QXJyYXk7XG59XG5cbi8qKiBNb2JpbGUtc3RvcmUgcGFnZSBwbHVzIGRvd25sb2FkZWQgdmlzdWFsIHJlZmVyZW5jZXMuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5kUmVzZWFyY2hWaXN1YWxSZWZlcmVuY2UgZXh0ZW5kcyBPbWl0PEJyYW5kVmlzdWFsUmVmZXJlbmNlLCBcImltYWdlc1wiPiB7XG4gIGltYWdlczogQnJhbmRSZXNlYXJjaFZpc3VhbEltYWdlW107XG59XG5cbi8qKiBVc2UgZXhwYW5kZWQgYXNzZXQgbWFya3VwIHdoZW4gc3VwcGxpZWQsIHJldGFpbmluZyBjb21wYXRpYmlsaXR5IHdpdGggZGlyZWN0IGNsaWVudHMuICovXG5mdW5jdGlvbiBmZXRjaEFzc2V0UGFnZShcbiAgY2xpZW50OiBCcmFuZFJlc2VhcmNoQ2xpZW50LFxuICByZXF1ZXN0OiBXZWJBc3NldFBhZ2VGZXRjaFJlcXVlc3QsXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuKTogUHJvbWlzZTxXZWJGZXRjaFJlc3VsdD4ge1xuICByZXR1cm4gY2xpZW50LmZldGNoQXNzZXRQYWdlXG4gICAgPyBjbGllbnQuZmV0Y2hBc3NldFBhZ2UocmVxdWVzdCwgc2lnbmFsKVxuICAgIDogY2xpZW50LmZldGNoKHsgLi4ucmVxdWVzdCwgZm9ybWF0OiBcImh0bWxcIiB9LCBzaWduYWwpO1xufVxuXG4vKiogQnVpbGQgdGhlIGZvY3VzZWQsIGZpcnN0LXBhcnR5IHNlYXJjaCByZXF1ZXN0IGZvciBhIGJyYW5kLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyYW5kUmVzZWFyY2hRdWVyeShyZXF1ZXN0OiBCcmFuZEdlbmVyYXRpb25SZXF1ZXN0KTogc3RyaW5nIHtcbiAgY29uc3Qgc3ViamVjdCA9IGJyYW5kUmVxdWVzdFN1YmplY3QocmVxdWVzdCk7XG4gIGNvbnN0IHdlYnNpdGUgPSByZXF1ZXN0LndlYnNpdGUgPyBgIFRoZSBrbm93biBvZmZpY2lhbCB3ZWJzaXRlIGlzICR7cmVxdWVzdC53ZWJzaXRlfS5gIDogXCJcIjtcbiAgcmV0dXJuIHRvRGVzY3JpcHRpb24oYFxuICAgIFJlc2VhcmNoIHRoZSBvZmZpY2lhbCBicmFuZCBpZGVudGl0eSBhbmQgZGVzaWduIGRpcmVjdGlvbiBmb3IgXCIke3N1YmplY3R9XCIuJHt3ZWJzaXRlfVxuICAgIFRoZSBicm9hZGVyIGJyaWVmIGlzOiAke3JlcXVlc3QucHJvbXB0ID8/IHN1YmplY3R9LlxuICAgIFByZWZlciBmaXJzdC1wYXJ0eSBzb3VyY2VzIGFuZCBjaXRlIHRoZSBvZmZpY2lhbCB3ZWJzaXRlIGZpcnN0LiBJZGVudGlmeVxuICAgIHRoZSBjYW5vbmljYWwgYW5kIHNob3J0IG5hbWVzLCBjdXJyZW50IHRhZ2xpbmUsIHBsYWluLWxhbmd1YWdlXG4gICAgZGVzY3JpcHRpb24sIGF1ZGllbmNlcywgd3JpdGluZyB0b25lLCBicmFuZCBjb2xvcnMgYXMgaGV4IHZhbHVlcyxcbiAgICB0eXBvZ3JhcGh5LCBkb2N1bWVudGF0aW9uLCBzb3VyY2UgcmVwb3NpdG9yeSwgbG9nbywgaWNvbiwgYW5kIGZhdmljb24uXG4gICAgRGlzdGluZ3Vpc2ggZG9jdW1lbnRlZCBmYWN0cyBmcm9tIHJlYXNvbmFibGUgdmlzdWFsIGluZmVyZW5jZXMuXG4gIGApO1xufVxuXG4vKiogQnVpbGQgYSB0YXJnZXRlZCBtb2JpbGUtc3RvcmUgc2VhcmNoIHF1ZXJ5IGZvciB2aXN1YWwgcmVmZXJlbmNlcy4gKi9cbmZ1bmN0aW9uIG1vYmlsZVN0b3JlUXVlcnkoXG4gIHJlcXVlc3Q6IEJyYW5kR2VuZXJhdGlvblJlcXVlc3QsXG4gIHBsYXRmb3JtOiBCcmFuZFZpc3VhbFJlZmVyZW5jZVtcInBsYXRmb3JtXCJdLFxuKTogc3RyaW5nIHtcbiAgY29uc3Qgc3ViamVjdCA9IGJyYW5kUmVxdWVzdFN1YmplY3QocmVxdWVzdCk7XG4gIGNvbnN0IHNpdGUgPSBwbGF0Zm9ybSA9PT0gXCJpb3NcIiA/IFwiYXBwcy5hcHBsZS5jb21cIiA6IFwicGxheS5nb29nbGUuY29tL3N0b3JlL2FwcHNcIjtcbiAgcmV0dXJuIGBzaXRlOiR7c2l0ZX0gJHtKU09OLnN0cmluZ2lmeShzdWJqZWN0KX0gb2ZmaWNpYWwgYXBwYDtcbn1cblxuLyoqIEZpbmQgb25lIG1hdGNoaW5nIHN0b3JlIHBhZ2UgYW5kIGRvd25sb2FkIHJlcHJlc2VudGF0aXZlIGltYWdlcy4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlc2VhcmNoTW9iaWxlU3RvcmUoXG4gIHJlcXVlc3Q6IEJyYW5kR2VuZXJhdGlvblJlcXVlc3QsXG4gIHBsYXRmb3JtOiBCcmFuZFZpc3VhbFJlZmVyZW5jZVtcInBsYXRmb3JtXCJdLFxuICBjbGllbnQ6IEJyYW5kUmVzZWFyY2hDbGllbnQsXG4gIG9uUHJvZ3Jlc3M/OiBCcmFuZFByb2dyZXNzUmVwb3J0ZXIsXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsLFxuKTogUHJvbWlzZTxCcmFuZFJlc2VhcmNoVmlzdWFsUmVmZXJlbmNlIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IHBsYXRmb3JtTmFtZSA9IHBsYXRmb3JtID09PSBcImlvc1wiID8gXCJ0aGUgaU9TIEFwcCBTdG9yZVwiIDogXCJHb29nbGUgUGxheVwiO1xuICB0cnkge1xuICAgIGF3YWl0IG9uUHJvZ3Jlc3M/Lih7XG4gICAgICB0eXBlOiBcInByb2dyZXNzXCIsXG4gICAgICBzdGFnZTogXCJ2aXN1YWxzXCIsXG4gICAgICBtZXNzYWdlOiBgU2VhcmNoaW5nICR7cGxhdGZvcm1OYW1lfSBmb3IgdmlzdWFsIHJlZmVyZW5jZXNgLFxuICAgIH0pO1xuICAgIGNvbnN0IHNlYXJjaCA9IGF3YWl0IGNsaWVudC5zZWFyY2goeyBxdWVyeTogbW9iaWxlU3RvcmVRdWVyeShyZXF1ZXN0LCBwbGF0Zm9ybSkgfSwgc2lnbmFsKTtcbiAgICBjb25zdCBleHBlY3RlZEhvc3QgPSBwbGF0Zm9ybSA9PT0gXCJpb3NcIiA/IFwiYXBwcy5hcHBsZS5jb21cIiA6IFwicGxheS5nb29nbGUuY29tXCI7XG4gICAgY29uc3QgcGFnZVVybCA9IHNlYXJjaC5jaXRhdGlvbnNcbiAgICAgIC5tYXAoKHsgdXJsIH0pID0+IHB1YmxpY0h0dHBzVXJsKHVybCkpXG4gICAgICAuZmluZCgodXJsKSA9PiB1cmwgJiYgbmV3IFVSTCh1cmwpLmhvc3RuYW1lID09PSBleHBlY3RlZEhvc3QpO1xuICAgIGlmICghcGFnZVVybCkge1xuICAgICAgYXdhaXQgb25Qcm9ncmVzcz8uKHtcbiAgICAgICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgICAgICBzdGFnZTogXCJ2aXN1YWxzXCIsXG4gICAgICAgIG1lc3NhZ2U6IGBObyBtYXRjaGluZyBhcHAgZm91bmQgb24gJHtwbGF0Zm9ybU5hbWV9YCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgYXdhaXQgb25Qcm9ncmVzcz8uKHtcbiAgICAgIHR5cGU6IFwicHJvZ3Jlc3NcIixcbiAgICAgIHN0YWdlOiBcInZpc3VhbHNcIixcbiAgICAgIG1lc3NhZ2U6IGBSZWFkaW5nIHRoZSAke3BsYXRmb3JtTmFtZX0gbGlzdGluZ2AsXG4gICAgfSk7XG4gICAgY29uc3QgcGFnZSA9IGF3YWl0IGZldGNoQXNzZXRQYWdlKFxuICAgICAgY2xpZW50LFxuICAgICAgeyB1cmw6IHBhZ2VVcmwsIG1heExlbmd0aDogQVNTRVRfSFRNTF9NQVhfTEVOR1RIIH0sXG4gICAgICBzaWduYWwsXG4gICAgKTtcbiAgICBjb25zdCBkaXNjb3ZlcmVkID0gZGlzY292ZXJNb2JpbGVBcHBWaXN1YWxzKHBhZ2UuY29udGVudCwgcGFnZS51cmwpO1xuICAgIGNvbnN0IGltYWdlVXJscyA9IGRpc2NvdmVyZWQuaW1hZ2VVcmxzLnNsaWNlKDAsIDQpO1xuICAgIGxldCBjb21wbGV0ZWRJbWFnZXMgPSAwO1xuICAgIGNvbnN0IGltYWdlcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgaW1hZ2VVcmxzLm1hcChhc3luYyAodXJsKTogUHJvbWlzZTxCcmFuZFJlc2VhcmNoVmlzdWFsSW1hZ2U+ID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBpbWFnZSA9IGF3YWl0IGNsaWVudC5mZXRjaEltYWdlKHsgdXJsIH0sIHNpZ25hbCk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHVybDogaW1hZ2UudXJsLFxuICAgICAgICAgICAgY29udGVudFR5cGU6IGltYWdlLmNvbnRlbnRUeXBlLFxuICAgICAgICAgICAgZGF0YTogaW1hZ2UuZGF0YSxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGxvZ2dlci53YXJuKFwibW9iaWxlLWltYWdlLWZldGNoLWZhaWxlZFwiLCB7XG4gICAgICAgICAgICBwbGF0Zm9ybSxcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIGVycm9yOiB0b0Vycm9yKGVycm9yKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4geyB1cmwgfTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICBjb21wbGV0ZWRJbWFnZXMgKz0gMTtcbiAgICAgICAgICBhd2FpdCBvblByb2dyZXNzPy4oe1xuICAgICAgICAgICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgICAgICAgICAgc3RhZ2U6IFwidmlzdWFsc1wiLFxuICAgICAgICAgICAgbWVzc2FnZTogYFJldmlld2VkICR7Y29tcGxldGVkSW1hZ2VzfSBvZiAke2ltYWdlVXJscy5sZW5ndGh9IGltYWdlcyBmcm9tICR7cGxhdGZvcm1OYW1lfWAsXG4gICAgICAgICAgICBjdXJyZW50OiBjb21wbGV0ZWRJbWFnZXMsXG4gICAgICAgICAgICB0b3RhbDogaW1hZ2VVcmxzLmxlbmd0aCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgcGxhdGZvcm0sXG4gICAgICBhcHBOYW1lOiBkaXNjb3ZlcmVkLmFwcE5hbWUsXG4gICAgICBwYWdlVXJsOiBwYWdlLnVybCxcbiAgICAgIGltYWdlcyxcbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ2dlci53YXJuKFwibW9iaWxlLXN0b3JlLXJlc2VhcmNoLWZhaWxlZFwiLCB7XG4gICAgICBwbGF0Zm9ybSxcbiAgICAgIGVycm9yOiB0b0Vycm9yKGVycm9yKSxcbiAgICB9KTtcbiAgICBhd2FpdCBvblByb2dyZXNzPy4oe1xuICAgICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgICAgc3RhZ2U6IFwidmlzdWFsc1wiLFxuICAgICAgbWVzc2FnZTogYENvdWxkIG5vdCByZWFkICR7cGxhdGZvcm1OYW1lfTsgY29udGludWluZyB3aXRob3V0IGl0YCxcbiAgICB9KTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKiBSZXR1cm4gYSBub3JtYWxpemVkIHB1YmxpYyBIVFRQUyBVUkwgb3IgYHVuZGVmaW5lZGAuICovXG5mdW5jdGlvbiBwdWJsaWNIdHRwc1VybCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHZhbHVlKTtcbiAgICByZXR1cm4gdXJsLnByb3RvY29sID09PSBcImh0dHBzOlwiID8gdXJsLnRvU3RyaW5nKCkgOiB1bmRlZmluZWQ7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqIENvbXB1dGUgYSBzbWFsbCBmaXJzdC1wYXJ0eSBsaWtlbGlob29kIHNjb3JlIHdoaWxlIHByZXNlcnZpbmcgc2VhcmNoIG9yZGVyLiAqL1xuZnVuY3Rpb24gc291cmNlU2NvcmUoXG4gIGNpdGF0aW9uOiBXZWJTZWFyY2hDaXRhdGlvbixcbiAgcmVxdWVzdDogQnJhbmRHZW5lcmF0aW9uUmVxdWVzdCxcbiAgaW5kZXg6IG51bWJlcixcbik6IG51bWJlciB7XG4gIGNvbnN0IHVybCA9IG5ldyBVUkwoY2l0YXRpb24udXJsKTtcbiAgY29uc3Qgc3ViamVjdCA9IGJyYW5kUmVxdWVzdFN1YmplY3QocmVxdWVzdCk7XG4gIGNvbnN0IGtub3duV2Vic2l0ZSA9IHJlcXVlc3Qud2Vic2l0ZSA/IG5ldyBVUkwocmVxdWVzdC53ZWJzaXRlKSA6IHVuZGVmaW5lZDtcbiAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBzdWJqZWN0LnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXpcXGRdL2csIFwiXCIpO1xuICBjb25zdCBub3JtYWxpemVkSG9zdCA9IHVybC5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16XFxkXS9nLCBcIlwiKTtcbiAgY29uc3Qgc2FtZUtub3duT3JpZ2luID0ga25vd25XZWJzaXRlPy5vcmlnaW4gPT09IHVybC5vcmlnaW4gPyAxXzAwMCA6IDA7XG4gIGNvbnN0IGhvc3RNYXRjaGVzTmFtZSA9XG4gICAgbm9ybWFsaXplZE5hbWUubGVuZ3RoID49IDMgJiZcbiAgICAobm9ybWFsaXplZEhvc3QuaW5jbHVkZXMobm9ybWFsaXplZE5hbWUpIHx8IG5vcm1hbGl6ZWROYW1lLmluY2x1ZGVzKG5vcm1hbGl6ZWRIb3N0KSlcbiAgICAgID8gMTAwXG4gICAgICA6IDA7XG4gIGNvbnN0IHRpdGxlTWF0Y2hlc05hbWUgPSBjaXRhdGlvbi50aXRsZT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzdWJqZWN0LnRvTG93ZXJDYXNlKCkpID8gMTAgOiAwO1xuICByZXR1cm4gc2FtZUtub3duT3JpZ2luICsgaG9zdE1hdGNoZXNOYW1lICsgdGl0bGVNYXRjaGVzTmFtZSAtIGluZGV4O1xufVxuXG4vKiogU2VsZWN0IHVuaXF1ZSBIVFRQUyBjaXRhdGlvbnMgYW5kIHB1dCB0aGUgbGlrZWx5IG9mZmljaWFsIHBhZ2UgZmlyc3QuICovXG5mdW5jdGlvbiBzZWxlY3RTb3VyY2VzKFxuICBjaXRhdGlvbnM6IHJlYWRvbmx5IFdlYlNlYXJjaENpdGF0aW9uW10sXG4gIHJlcXVlc3Q6IEJyYW5kR2VuZXJhdGlvblJlcXVlc3QsXG4gIG1heFNvdXJjZXM6IG51bWJlcixcbik6IFdlYlNlYXJjaENpdGF0aW9uW10ge1xuICBjb25zdCBzdWJqZWN0ID0gYnJhbmRSZXF1ZXN0U3ViamVjdChyZXF1ZXN0KTtcbiAgY29uc3QgY2FuZGlkYXRlcyA9IHJlcXVlc3Qud2Vic2l0ZVxuICAgID8gW3sgdXJsOiByZXF1ZXN0LndlYnNpdGUsIHRpdGxlOiBgJHtzdWJqZWN0fSBvZmZpY2lhbCB3ZWJzaXRlYCB9LCAuLi5jaXRhdGlvbnNdXG4gICAgOiBbLi4uY2l0YXRpb25zXTtcbiAgY29uc3QgdW5pcXVlID0gbmV3IE1hcDxzdHJpbmcsIFdlYlNlYXJjaENpdGF0aW9uPigpO1xuICBmb3IgKGNvbnN0IGNpdGF0aW9uIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICBjb25zdCB1cmwgPSBwdWJsaWNIdHRwc1VybChjaXRhdGlvbi51cmwpO1xuICAgIGlmICh1cmwgJiYgIXVuaXF1ZS5oYXModXJsKSkgdW5pcXVlLnNldCh1cmwsIHsgLi4uY2l0YXRpb24sIHVybCB9KTtcbiAgfVxuICByZXR1cm4gWy4uLnVuaXF1ZS52YWx1ZXMoKV1cbiAgICAubWFwKChjaXRhdGlvbiwgaW5kZXgpID0+ICh7IGNpdGF0aW9uLCBzY29yZTogc291cmNlU2NvcmUoY2l0YXRpb24sIHJlcXVlc3QsIGluZGV4KSB9KSlcbiAgICAuc29ydCgobGVmdCwgcmlnaHQpID0+IHJpZ2h0LnNjb3JlIC0gbGVmdC5zY29yZSlcbiAgICAuc2xpY2UoMCwgbWF4U291cmNlcylcbiAgICAubWFwKCh7IGNpdGF0aW9uIH0pID0+IGNpdGF0aW9uKTtcbn1cblxuLyoqIEZldGNoIG9uZSBjaXRhdGlvbiBhcyByZWFkYWJsZSB0ZXh0IHdpdGhvdXQgZmFpbGluZyB0aGUgd2hvbGUgcmVzZWFyY2ggcGFzcy4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZldGNoU291cmNlKFxuICBjbGllbnQ6IEJyYW5kUmVzZWFyY2hDbGllbnQsXG4gIGNpdGF0aW9uOiBXZWJTZWFyY2hDaXRhdGlvbixcbiAgc291cmNlTWF4TGVuZ3RoOiBudW1iZXIsXG4gIG9uQ29tcGxldGU6ICgpID0+IHZvaWQgfCBQcm9taXNlPHZvaWQ+LFxuICBzaWduYWw/OiBBYm9ydFNpZ25hbCxcbik6IFByb21pc2U8QnJhbmRSZXNlYXJjaFNvdXJjZT4ge1xuICB0cnkge1xuICAgIGNvbnN0IHBhZ2UgPSBhd2FpdCBjbGllbnQuZmV0Y2goXG4gICAgICB7IHVybDogY2l0YXRpb24udXJsLCBmb3JtYXQ6IFwidGV4dFwiLCBtYXhMZW5ndGg6IHNvdXJjZU1heExlbmd0aCB9LFxuICAgICAgc2lnbmFsLFxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmNpdGF0aW9uLFxuICAgICAgdXJsOiBwYWdlLnVybCxcbiAgICAgIC4uLihwYWdlLnRpdGxlID8geyB0aXRsZTogcGFnZS50aXRsZSB9IDoge30pLFxuICAgICAgZmV0Y2hlZDogdHJ1ZSxcbiAgICAgIGNvbnRlbnQ6IHBhZ2UuY29udGVudCxcbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZ2dlci53YXJuKFwic291cmNlLWZldGNoLWZhaWxlZFwiLCB7XG4gICAgICB1cmw6IGNpdGF0aW9uLnVybCxcbiAgICAgIGVycm9yOiB0b0Vycm9yKGVycm9yKSxcbiAgICB9KTtcbiAgICByZXR1cm4geyAuLi5jaXRhdGlvbiwgZmV0Y2hlZDogZmFsc2UgfTtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBvbkNvbXBsZXRlKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBTZWFyY2ggZm9yIGEgYnJhbmQsIGZldGNoIGEgYm91bmRlZCBzZXQgb2YgY2l0ZWQgcGFnZXMsIGFuZCByZXRhaW4gdGhlIGZpcnN0XG4gKiBwYWdlJ3MgbWFya3VwIGZvciBsb2dvIGFuZCBmYXZpY29uIGRpc2NvdmVyeS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc2VhcmNoQnJhbmQoXG4gIHJlcXVlc3Q6IEJyYW5kR2VuZXJhdGlvblJlcXVlc3QsXG4gIGNsaWVudDogQnJhbmRSZXNlYXJjaENsaWVudCxcbiAgb3B0aW9uczogQnJhbmRSZXNlYXJjaE9wdGlvbnMgPSB7fSxcbiAgc2lnbmFsPzogQWJvcnRTaWduYWwsXG4pOiBQcm9taXNlPEJyYW5kUmVzZWFyY2g+IHtcbiAgY29uc3Qgc3ViamVjdCA9IGJyYW5kUmVxdWVzdFN1YmplY3QocmVxdWVzdCk7XG4gIGNvbnN0IG1heFNvdXJjZXMgPSBNYXRoLm1pbihNYXRoLm1heCgxLCBvcHRpb25zLm1heFNvdXJjZXMgPz8gREVGQVVMVF9NQVhfU09VUkNFUyksIE1BWF9TT1VSQ0VTKTtcbiAgY29uc3Qgc291cmNlTWF4TGVuZ3RoID0gTWF0aC5tYXgoXG4gICAgMSxcbiAgICBNYXRoLm1pbihvcHRpb25zLnNvdXJjZU1heExlbmd0aCA/PyBERUZBVUxUX1NPVVJDRV9NQVhfTEVOR1RILCBNQVhfU09VUkNFX01BWF9MRU5HVEgpLFxuICApO1xuICBhd2FpdCBvcHRpb25zLm9uUHJvZ3Jlc3M/Lih7XG4gICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgIHN0YWdlOiBcInNlYXJjaFwiLFxuICAgIG1lc3NhZ2U6IGBTZWFyY2hpbmcgZm9yIG9mZmljaWFsICR7c3ViamVjdH0gYnJhbmQgc291cmNlc2AsXG4gIH0pO1xuICBjb25zdCBzZWFyY2hQcm9taXNlID0gY2xpZW50XG4gICAgLnNlYXJjaCh7IHF1ZXJ5OiBicmFuZFJlc2VhcmNoUXVlcnkocmVxdWVzdCkgfSwgc2lnbmFsKVxuICAgIC50aGVuKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgIGF3YWl0IG9wdGlvbnMub25Qcm9ncmVzcz8uKHtcbiAgICAgICAgdHlwZTogXCJwcm9ncmVzc1wiLFxuICAgICAgICBzdGFnZTogXCJzZWFyY2hcIixcbiAgICAgICAgbWVzc2FnZTogYEZvdW5kICR7cmVzdWx0LmNpdGF0aW9ucy5sZW5ndGh9IGNhbmRpZGF0ZSB3ZWIgc291cmNlc2AsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gIGNvbnN0IFtzZWFyY2gsIGlvc1JlZmVyZW5jZSwgYW5kcm9pZFJlZmVyZW5jZV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgc2VhcmNoUHJvbWlzZSxcbiAgICByZXNlYXJjaE1vYmlsZVN0b3JlKHJlcXVlc3QsIFwiaW9zXCIsIGNsaWVudCwgb3B0aW9ucy5vblByb2dyZXNzLCBzaWduYWwpLFxuICAgIHJlc2VhcmNoTW9iaWxlU3RvcmUocmVxdWVzdCwgXCJhbmRyb2lkXCIsIGNsaWVudCwgb3B0aW9ucy5vblByb2dyZXNzLCBzaWduYWwpLFxuICBdKTtcbiAgY29uc3QgdmlzdWFsUmVmZXJlbmNlcyA9IFtpb3NSZWZlcmVuY2UsIGFuZHJvaWRSZWZlcmVuY2VdLmZpbHRlcihcbiAgICAocmVmZXJlbmNlKTogcmVmZXJlbmNlIGlzIEJyYW5kUmVzZWFyY2hWaXN1YWxSZWZlcmVuY2UgPT4gcmVmZXJlbmNlICE9PSB1bmRlZmluZWQsXG4gICk7XG4gIGF3YWl0IG9wdGlvbnMub25Qcm9ncmVzcz8uKHtcbiAgICB0eXBlOiBcInByb2dyZXNzXCIsXG4gICAgc3RhZ2U6IFwidmlzdWFsc1wiLFxuICAgIG1lc3NhZ2U6IGBSZXZpZXdlZCAke3Zpc3VhbFJlZmVyZW5jZXMubGVuZ3RofSBtb2JpbGUgYXBwIHJlZmVyZW5jZXNgLFxuICAgIGN1cnJlbnQ6IHZpc3VhbFJlZmVyZW5jZXMubGVuZ3RoLFxuICAgIHRvdGFsOiAyLFxuICB9KTtcbiAgY29uc3QgY2l0YXRpb25zID0gc2VsZWN0U291cmNlcyhzZWFyY2guY2l0YXRpb25zLCByZXF1ZXN0LCBtYXhTb3VyY2VzKTtcbiAgaWYgKGNpdGF0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEJyYW5kIHJlc2VhcmNoIGZvciBcIiR7c3ViamVjdH1cIiByZXR1cm5lZCBubyBwdWJsaWMgSFRUUFMgc291cmNlcyB0byBmZXRjaC5gKTtcbiAgfVxuICBsZXQgY29tcGxldGVkU291cmNlcyA9IDA7XG4gIGF3YWl0IG9wdGlvbnMub25Qcm9ncmVzcz8uKHtcbiAgICB0eXBlOiBcInByb2dyZXNzXCIsXG4gICAgc3RhZ2U6IFwiZmV0Y2hcIixcbiAgICBtZXNzYWdlOiBgUmVhZGluZyAwIG9mICR7Y2l0YXRpb25zLmxlbmd0aH0gc291cmNlc2AsXG4gICAgY3VycmVudDogMCxcbiAgICB0b3RhbDogY2l0YXRpb25zLmxlbmd0aCxcbiAgfSk7XG5cbiAgY29uc3Qgb2ZmaWNpYWwgPSBjaXRhdGlvbnNbMF07XG4gIGNvbnN0IFtzb3VyY2VzLCBvZmZpY2lhbEh0bWxdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgIFByb21pc2UuYWxsKFxuICAgICAgY2l0YXRpb25zLm1hcCgoY2l0YXRpb24pID0+XG4gICAgICAgIGZldGNoU291cmNlKFxuICAgICAgICAgIGNsaWVudCxcbiAgICAgICAgICBjaXRhdGlvbixcbiAgICAgICAgICBzb3VyY2VNYXhMZW5ndGgsXG4gICAgICAgICAgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29tcGxldGVkU291cmNlcyArPSAxO1xuICAgICAgICAgICAgYXdhaXQgb3B0aW9ucy5vblByb2dyZXNzPy4oe1xuICAgICAgICAgICAgICB0eXBlOiBcInByb2dyZXNzXCIsXG4gICAgICAgICAgICAgIHN0YWdlOiBcImZldGNoXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGBSZWFkICR7Y29tcGxldGVkU291cmNlc30gb2YgJHtjaXRhdGlvbnMubGVuZ3RofSBzb3VyY2VzYCxcbiAgICAgICAgICAgICAgY3VycmVudDogY29tcGxldGVkU291cmNlcyxcbiAgICAgICAgICAgICAgdG90YWw6IGNpdGF0aW9ucy5sZW5ndGgsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHNpZ25hbCxcbiAgICAgICAgKSxcbiAgICAgICksXG4gICAgKSxcbiAgICBmZXRjaEFzc2V0UGFnZShcbiAgICAgIGNsaWVudCxcbiAgICAgIHtcbiAgICAgICAgdXJsOiBvZmZpY2lhbC51cmwsXG4gICAgICAgIG1heExlbmd0aDogQVNTRVRfSFRNTF9NQVhfTEVOR1RILFxuICAgICAgfSxcbiAgICAgIHNpZ25hbCxcbiAgICApLmNhdGNoKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgbG9nZ2VyLndhcm4oXCJvZmZpY2lhbC1wYWdlLWh0bWwtZmV0Y2gtZmFpbGVkXCIsIHtcbiAgICAgICAgdXJsOiBvZmZpY2lhbC51cmwsXG4gICAgICAgIGVycm9yOiB0b0Vycm9yKGVycm9yKSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9KSxcbiAgXSk7XG4gIGF3YWl0IG9wdGlvbnMub25Qcm9ncmVzcz8uKHtcbiAgICB0eXBlOiBcInByb2dyZXNzXCIsXG4gICAgc3RhZ2U6IFwiYXNzZXRzXCIsXG4gICAgbWVzc2FnZTogb2ZmaWNpYWxIdG1sXG4gICAgICA/IFwiRm91bmQgb2ZmaWNpYWwgcGFnZSBhcnR3b3JrXCJcbiAgICAgIDogXCJVc2luZyB0aGUgb2ZmaWNpYWwgc2l0ZSBmYXZpY29uIGZhbGxiYWNrXCIsXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgYW5zd2VyOiBzZWFyY2guYW5zd2VyLFxuICAgIG1vZGVsOiBzZWFyY2gubW9kZWwsXG4gICAgc291cmNlcyxcbiAgICBvZmZpY2lhbFBhZ2VVcmw6IG9mZmljaWFsSHRtbD8udXJsID8/IG9mZmljaWFsLnVybCxcbiAgICAuLi4ob2ZmaWNpYWxIdG1sID8geyBvZmZpY2lhbFBhZ2VIdG1sOiBvZmZpY2lhbEh0bWwuY29udGVudCB9IDoge30pLFxuICAgIHZpc3VhbFJlZmVyZW5jZXMsXG4gIH07XG59XG4iXX0=
|
package/lib/src/schema.d.ts
CHANGED
|
@@ -5,12 +5,10 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @module
|
|
7
7
|
*/
|
|
8
|
-
import type
|
|
8
|
+
import { type BrandGenerationRequest } from "@dbx-tools/shared-generator";
|
|
9
9
|
import { z } from "zod";
|
|
10
|
-
export { BrandGenerationErrorEventSchema, BrandGenerationEventSchema, BrandGenerationProgressEventSchema, BrandGenerationRequestSchema, BrandGenerationResultEventSchema, BrandGenerationStageSchema, BrandPackageSchema, BrandPackageSourceSchema, BrandVisualImageSchema, BrandVisualReferenceSchema, } from "@dbx-tools/shared-generator/brand";
|
|
11
|
-
export type { BrandGenerationErrorEvent, BrandGenerationEvent, BrandGenerationProgressEvent, BrandGenerationRequest, BrandGenerationResultEvent, BrandGenerationStage, BrandPackage, BrandPackageSource, BrandVisualImage, BrandVisualReference, } from "@dbx-tools/shared-generator/brand";
|
|
12
10
|
/** Resolve the human-readable subject from a validated brand request. */
|
|
13
|
-
export declare function brandRequestSubject(request:
|
|
11
|
+
export declare function brandRequestSubject(request: BrandGenerationRequest): string;
|
|
14
12
|
/** Description shared by the native AppKit brand-generation tool. */
|
|
15
13
|
export declare const GENERATE_BRAND_TOOL_DESCRIPTION: string;
|
|
16
14
|
/**
|