bways-report 0.1.7 → 0.1.9
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/esm2022/lib/core/config/bways-report-config.mjs +3 -1
- package/esm2022/lib/core/models/index.mjs +1 -1
- package/esm2022/lib/core/models/report-api-endpoint.model.mjs +8 -0
- package/esm2022/lib/core/models/report-component.model.mjs +1 -1
- package/esm2022/lib/core/models/report-datasource.model.mjs +1 -1
- package/esm2022/lib/core/services/index.mjs +2 -1
- package/esm2022/lib/core/services/report-api-execution.service.mjs +188 -0
- package/esm2022/lib/core/services/report-data-discovery.service.mjs +76 -4
- package/esm2022/lib/data-access/adapters/endpoint-datasource.adapter.mjs +24 -1
- package/esm2022/lib/data-access/adapters/endpoint-lookup.adapter.mjs +24 -2
- package/esm2022/lib/data-access/adapters/endpoint-tokens.mjs +1 -1
- package/esm2022/lib/data-access/adapters/http-lookup.adapter.mjs +26 -3
- package/esm2022/lib/data-access/contracts/lookup.contract.mjs +1 -1
- package/esm2022/lib/features/designer/components/component-palette/component-palette.component.mjs +536 -6
- package/esm2022/lib/features/designer/components/design-canvas/design-canvas.component.mjs +31 -3
- package/esm2022/lib/features/designer/components/dialogs/report-saved-dialog.component.mjs +2 -2
- package/esm2022/lib/features/designer/components/property-editor/parameter-binding-editor.component.mjs +3 -3
- package/esm2022/lib/features/designer/components/property-editor/property-editor-action.component.mjs +3 -3
- package/esm2022/lib/features/designer/components/property-editor/property-editor-datasource.component.mjs +131 -3
- package/esm2022/lib/features/designer/components/property-editor/property-editor-general.component.mjs +3 -3
- package/esm2022/lib/features/designer/components/property-editor/property-editor-grid.component.mjs +128 -28
- package/esm2022/lib/features/designer/components/property-editor/property-editor-layout.component.mjs +3 -3
- package/esm2022/lib/features/designer/components/property-editor/property-editor-report.component.mjs +3 -3
- package/esm2022/lib/features/designer/components/property-editor/property-editor-validation.component.mjs +3 -3
- package/esm2022/lib/features/designer/components/property-editor/property-editor.component.mjs +19 -10
- package/esm2022/lib/features/designer/designer.component.mjs +248 -33
- package/esm2022/lib/features/designer/utilities/canvas-layout.util.mjs +2 -1
- package/esm2022/lib/features/routing/components/routed-report-runtime.component.mjs +2 -2
- package/esm2022/lib/features/runtime/dynamic-renderer.component.mjs +23 -4
- package/esm2022/lib/features/runtime/report-execution.service.mjs +21 -4
- package/esm2022/lib/features/runtime/report-grid-bridge.component.mjs +51 -10
- package/esm2022/lib/features/runtime/report-runtime.component.mjs +16 -2
- package/esm2022/lib/features/runtime/rpt-report.component.mjs +2 -2
- package/esm2022/lib/primitives/components/dropdown/rpt-dropdown.component.mjs +16 -7
- package/esm2022/lib/primitives/components/icon/rpt-icon.component.mjs +41 -1
- package/esm2022/lib/primitives/components/index.mjs +2 -1
- package/esm2022/lib/primitives/components/radio/rpt-radio.component.mjs +428 -0
- package/esm2022/lib/primitives/register-builtins.mjs +51 -2
- package/esm2022/lib/provide-reporting.mjs +3 -1
- package/fesm2022/bways-report.mjs +2171 -241
- package/fesm2022/bways-report.mjs.map +1 -1
- package/lib/core/config/bways-report-config.d.ts +13 -0
- package/lib/core/models/index.d.ts +2 -1
- package/lib/core/models/report-api-endpoint.model.d.ts +30 -0
- package/lib/core/models/report-component.model.d.ts +16 -4
- package/lib/core/models/report-datasource.model.d.ts +16 -2
- package/lib/core/services/index.d.ts +1 -0
- package/lib/core/services/report-api-execution.service.d.ts +41 -0
- package/lib/core/services/report-data-discovery.service.d.ts +23 -1
- package/lib/data-access/adapters/endpoint-datasource.adapter.d.ts +2 -0
- package/lib/data-access/adapters/endpoint-lookup.adapter.d.ts +1 -0
- package/lib/data-access/adapters/endpoint-tokens.d.ts +3 -0
- package/lib/data-access/adapters/http-lookup.adapter.d.ts +2 -1
- package/lib/data-access/contracts/lookup.contract.d.ts +3 -0
- package/lib/features/designer/components/component-palette/component-palette.component.d.ts +16 -0
- package/lib/features/designer/components/property-editor/property-editor-datasource.component.d.ts +17 -0
- package/lib/features/designer/components/property-editor/property-editor-grid.component.d.ts +19 -7
- package/lib/features/designer/components/property-editor/property-editor.component.d.ts +1 -1
- package/lib/features/designer/designer.component.d.ts +12 -0
- package/lib/features/runtime/report-execution.service.d.ts +1 -0
- package/lib/features/runtime/report-grid-bridge.component.d.ts +3 -1
- package/lib/features/runtime/report-runtime.component.d.ts +13 -1
- package/lib/primitives/components/index.d.ts +2 -0
- package/lib/primitives/components/radio/rpt-radio.component.d.ts +77 -0
- package/package.json +1 -1
|
@@ -64,6 +64,8 @@ export function normalizeBwaysConfig(config) {
|
|
|
64
64
|
executeEndpoint: cleanUrl(config.executeEndpoint),
|
|
65
65
|
lookupEndpoint,
|
|
66
66
|
reportsEndpoint: reportsEndpoint ? cleanUrl(reportsEndpoint) : null,
|
|
67
|
+
apisEndpoint: config.apisEndpoint?.trim() ? cleanUrl(config.apisEndpoint) : null,
|
|
68
|
+
apiEndpoints: Array.isArray(config.apiEndpoints) ? config.apiEndpoints : [],
|
|
67
69
|
allowedCategories,
|
|
68
70
|
autoParameter: config.autoParameter !== false, // default true
|
|
69
71
|
routeBase: config.routeBase?.trim() || 'reports',
|
|
@@ -80,4 +82,4 @@ export function normalizeBwaysConfig(config) {
|
|
|
80
82
|
function cleanUrl(url) {
|
|
81
83
|
return url.trim().replace(/\/+$/, '');
|
|
82
84
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYndheXMtcmVwb3J0LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvY29uZmlnL2J3YXlzLXJlcG9ydC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQXVCSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFvQztJQUNuRSxVQUFVLEVBQUUsT0FBTztJQUNuQixhQUFhLEVBQUUsUUFBUTtJQUN2QixhQUFhLEVBQUUsU0FBUztJQUN4QixXQUFXLEVBQUUsTUFBTTtJQUNuQixNQUFNLEVBQUUsUUFBUTtDQUNqQixDQUFDO0FBbUtGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUF5QjtJQUM1RCw4QkFBOEI7SUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksT0FBTyxNQUFNLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ25HLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0VBQWdFO1lBQ2hFLDBGQUEwRixDQUMzRixDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLE9BQU8sTUFBTSxDQUFDLGNBQWMsS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvRyxNQUFNLElBQUksS0FBSyxDQUNiLG9FQUFvRTtZQUNwRSxpRkFBaUYsQ0FDbEYsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxPQUFPLE1BQU0sQ0FBQyxlQUFlLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssRUFB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bnRlbnQiOlsiLyoqXG4gKiBTaW1wbGlmaWVkIGNvbmZpZ3VyYXRpb24gZm9yIGJ3YXlzLXJlcG9ydC5cbiAqXG4gKiBUaGlzIGlzIHRoZSBkZXZlbG9wZXItZmFjaW5nIGNvbmZpZyBvYmplY3QgdGhhdCBtYWtlcyBpbnRlZ3JhdGlvblxuICogYXMgc2ltcGxlIGFzIDPigJM0IGVuZHBvaW50IFVSTHMgKyBvcHRpb25hbCBvdmVycmlkZXMuXG4gKiBUaGUgbm9ybWFsaXplciBjb252ZXJ0cyB0aGlzIGludG8gdGhlIGludGVybmFsIGBSZXBvcnRpbmdDb25maWdgXG4gKiBwbHVzIGFkYXB0ZXIgd2lyaW5nIGRlY2lzaW9ucy5cbiAqL1xuXG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZXNzaW9uQ29udGV4dFByb3ZpZGVyLCBTZXNzaW9uQ29udGV4dFNvdXJjZSB9IGZyb20gJy4uL3Rva2Vucy9zZXNzaW9uLWNvbnRleHQudG9rZW4nO1xuXG4vKipcbiAqIFBhbGV0dGUgY29tcG9uZW50IGNhdGVnb3J5IG5hbWVzIHRoZSBkZXZlbG9wZXIgY2FuIHVzZVxuICogd2hlbiByZXN0cmljdGluZyB0aGUgZGVzaWduZXIgY29tcG9uZW50IHBhbGV0dGUuXG4gKlxuICogTWFwcyB0byBpbnRlcm5hbCByZWdpc3RyeSBjYXRlZ29yeSBJRHM6XG4gKiAtIGBmb3JtSW5wdXRzYCAgICDihpIgYGlucHV0YFxuICogLSBgYWN0aW9uQnV0dG9uc2Ag4oaSIGBhY3Rpb25gXG4gKiAtIGBkaXNwbGF5TGFiZWxzYCDihpIgYGRpc3BsYXlgXG4gKiAtIGBkYXRhTG9va3Vwc2AgICDihpIgYGRhdGFgXG4gKiAtIGBsYXlvdXRgICAgICAgICDihpIgYGxheW91dGBcbiAqL1xuZXhwb3J0IHR5cGUgUGFsZXR0ZUNhdGVnb3J5ID1cbiAgfCAnZm9ybUlucHV0cydcbiAgfCAnYWN0aW9uQnV0dG9ucydcbiAgfCAnZGlzcGxheUxhYmVscydcbiAgfCAnZGF0YUxvb2t1cHMnXG4gIHwgJ2xheW91dCc7XG5cbi8qKlxuICogTWFwcGluZyBmcm9tIGZyaWVuZGx5IHBhbGV0dGUgY2F0ZWdvcnkgbmFtZXMgdG8gaW50ZXJuYWwgY2F0ZWdvcnkgSURzLlxuICovXG5leHBvcnQgY29uc3QgUEFMRVRURV9DQVRFR09SWV9NQVA6IFJlY29yZDxQYWxldHRlQ2F0ZWdvcnksIHN0cmluZz4gPSB7XG4gIGZvcm1JbnB1dHM6ICdpbnB1dCcsXG4gIGFjdGlvbkJ1dHRvbnM6ICdhY3Rpb24nLFxuICBkaXNwbGF5TGFiZWxzOiAnZGlzcGxheScsXG4gIGRhdGFMb29rdXBzOiAnZGF0YScsXG4gIGxheW91dDogJ2xheW91dCcsXG59O1xuXG4vKipcbiAqIFNpbXBsaWZpZWQsIGRldmVsb3Blci1mYWNpbmcgY29uZmlndXJhdGlvbiBmb3IgYndheXMtcmVwb3J0LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCByZXBvcnRDb25maWc6IEJ3YXlzUmVwb3J0Q29uZmlnID0ge1xuICogICBzcEVuZHBvaW50OiAgICAgICcvYXBpL3JlcG9ydGluZy9wcm9jZWR1cmVzJyxcbiAqICAgdGFibGVzRW5kcG9pbnQ6ICAnL2FwaS9yZXBvcnRpbmcvdGFibGVzJyxcbiAqICAgZXhlY3V0ZUVuZHBvaW50OiAnL2FwaS9yZXBvcnRpbmcvZXhlY3V0ZScsXG4gKiAgIHJlcG9ydHNFbmRwb2ludDogJy9hcGkvcmVwb3J0aW5nL3JlcG9ydHMnLFxuICogICBjb21wb25lbnRzOiBbJ2Zvcm1JbnB1dHMnLCAnYWN0aW9uQnV0dG9ucycsICdkaXNwbGF5TGFiZWxzJ10sXG4gKiAgIGF1dG9QYXJhbWV0ZXI6IHRydWUsXG4gKiAgIHNlc3Npb246ICgpID0+IGluamVjdChBdXRoU2VydmljZSkuc2Vzc2lvbigpLFxuICogICByb3V0ZUJhc2U6ICdyZXBvcnRzJyxcbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCd2F5c1JlcG9ydENvbmZpZyB7XG4gIC8vIOKUgOKUgOKUgCBCYWNrZW5kIGVuZHBvaW50cyAodGhlIDPigJM0IGVuZHBvaW50IGNvbnRyYWN0KSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKipcbiAgICogR0VUIGVuZHBvaW50IHJldHVybmluZyB0aGUgbGlzdCBvZiBzdG9yZWQgcHJvY2VkdXJlcyB3aXRoIHRoZWlyIHBhcmFtZXRlcnMuXG4gICAqIFJlc3BvbnNlOiBgW3sgbmFtZSwgc2NoZW1hLCBwYXJhbWV0ZXJzOiBbeyBuYW1lLCBzcWxUeXBlLCByZXF1aXJlZCwgZGVmYXVsdFZhbHVlPyB9XSB9XWBcbiAgICovXG4gIHNwRW5kcG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogR0VUIGVuZHBvaW50IHJldHVybmluZyB0aGUgbGlzdCBvZiB0YWJsZXMvdmlld3Mgd2l0aCB0aGVpciBjb2x1bW5zLlxuICAgKiBSZXNwb25zZTogYFt7IG5hbWUsIHNjaGVtYSwgdHlwZTogJ3RhYmxlJ3wndmlldycsIGNvbHVtbnM6IFt7IG5hbWUsIHNxbFR5cGUgfV0gfV1gXG4gICAqL1xuICB0YWJsZXNFbmRwb2ludDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQT1NUIGVuZHBvaW50IHRoYXQgcnVucyBhIHN0b3JlZCBwcm9jZWR1cmUgb3IgdGFibGUgcXVlcnkgYW5kIHJldHVybnMgcm93cy5cbiAgICogQm9keTogYHsga2luZDogJ3Byb2NlZHVyZSd8J3RhYmxlJywgbmFtZSwgc2NoZW1hLCBwYXJhbWV0ZXJzLCBjb2x1bW5zPywgdG9wPyB9YFxuICAgKiBSZXNwb25zZTogYHJvd3NbXWBcbiAgICovXG4gIGV4ZWN1dGVFbmRwb2ludDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBQT1NUIGVuZHBvaW50IGZvciBmZXRjaGluZyBkcm9wZG93biBtYXN0ZXIgZGF0YSBhbmQgbG9va3VwIG9wdGlvbnMuXG4gICAqIERlZmF1bHRzIHRvIHJlcGxhY2luZyBgL2V4ZWN1dGVgIHdpdGggYC9sb29rdXBgIGlmIG9taXR0ZWQuXG4gICAqL1xuICBsb29rdXBFbmRwb2ludD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgQ1JVRCBlbmRwb2ludCBmb3Igc2F2aW5nL2xvYWRpbmcgcmVwb3J0IHBhZ2UgZGVmaW5pdGlvbnMuXG4gICAqIFdoZW4gb21pdHRlZCwgcmVwb3J0cyBhcmUgc2F2ZWQgdG8gYnJvd3NlciBsb2NhbFN0b3JhZ2Ugd2l0aCBhIGNvbnNvbGUgd2FybmluZy5cbiAgICogLSBHRVQgICAg4oaSIGxpc3Qgc2F2ZWQgcmVwb3J0c1xuICAgKiAtIEdFVCAvOmlkIOKGkiBsb2FkIGEgc3BlY2lmaWMgcmVwb3J0XG4gICAqIC0gUE9TVCAgIOKGkiBzYXZlIGEgbmV3IG9yIHVwZGF0ZWQgcmVwb3J0XG4gICAqIC0gREVMRVRFIC86aWQg4oaSIGRlbGV0ZSBhIHJlcG9ydFxuICAgKi9cbiAgcmVwb3J0c0VuZHBvaW50Pzogc3RyaW5nO1xuXG4gIC8vIOKUgOKUgOKUgCBEZXNpZ25lciBvcHRpb25zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBDb21wb25lbnQgcGFsZXR0ZSBncm91cHMgdG8gc2hvdyBpbiB0aGUgZGVzaWduZXIuXG4gICAqIERlZmF1bHRzIHRvIGFsbCBncm91cHMgd2hlbiBub3Qgc3BlY2lmaWVkLlxuICAgKlxuICAgKiBAZXhhbXBsZSBbJ2Zvcm1JbnB1dHMnLCAnYWN0aW9uQnV0dG9ucycsICdkaXNwbGF5TGFiZWxzJ11cbiAgICovXG4gIGNvbXBvbmVudHM/OiBQYWxldHRlQ2F0ZWdvcnlbXTtcblxuICAvKipcbiAgICogV2hlbiB0cnVlLCBzdG9yZWQgcHJvY2VkdXJlIHBhcmFtZXRlcnMgbGlrZSBgQEJyYW5jaElkYCwgYEBDb21wYW55SWRgXG4gICAqIGFyZSBhdXRvbWF0aWNhbGx5IGJvdW5kIGZyb20gdGhlIHNlc3Npb24gY29udGV4dC5cbiAgICogUmVxdWlyZXMgYHNlc3Npb25gIHRvIGJlIHByb3ZpZGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhdXRvUGFyYW1ldGVyPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2Vzc2lvbiBjb250ZXh0IHByb3ZpZGVyIGZvciBhdXRvLXBhcmFtZXRlciBiaW5kaW5nLlxuICAgKiBDYW4gYmUgYSBzZXJ2aWNlIGNsYXNzIGltcGxlbWVudGluZyBgU2Vzc2lvbkNvbnRleHRQcm92aWRlcmAsXG4gICAqIGEgcGxhaW4gb2JqZWN0LCBhIGZhY3RvcnkgZnVuY3Rpb24sIGFuIE9ic2VydmFibGUsIG9yIGEgU2lnbmFsLlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBzZXNzaW9uOiBQbGF5Z3JvdW5kU2Vzc2lvblNlcnZpY2VcbiAgICogc2Vzc2lvbjogKCkgPT4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5zZXNzaW9uKClcbiAgICogc2Vzc2lvbjogeyBicmFuY2hJZDogMSwgY29tcGFueUlkOiAxMCB9XG4gICAqL1xuICBzZXNzaW9uPzogVHlwZTxTZXNzaW9uQ29udGV4dFByb3ZpZGVyPiB8IFNlc3Npb25Db250ZXh0U291cmNlIHwgKCgpID0+IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTtcblxuICAvKipcbiAgICogT3B0aW9uYWwgc2VydmljZSBjbGFzcyBpbXBsZW1lbnRpbmcgYFNlc3Npb25Db250ZXh0UHJvdmlkZXJgLlxuICAgKiBFcXVpdmFsZW50IHRvIGBzZXNzaW9uOiBNeVNlc3Npb25TZXJ2aWNlYC5cbiAgICovXG4gIHNlc3Npb25Qcm92aWRlcj86IFR5cGU8U2Vzc2lvbkNvbnRleHRQcm92aWRlcj47XG5cbiAgLy8g4pSA4pSA4pSAIExpdmUgcGFnZSBvcHRpb25zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKlxuICAgKiBCYXNlIHBhdGggZm9yIGxpdmUgcmVwb3J0IHBhZ2VzLlxuICAgKiBHZW5lcmF0ZWQgcmVwb3J0IHBhZ2VzIG9wZW4gYXQgYC88cm91dGVCYXNlPi88c2x1Zz5gLlxuICAgKlxuICAgKiBAZGVmYXVsdCAncmVwb3J0cydcbiAgICovXG4gIHJvdXRlQmFzZT86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgQW5ndWxhciBjb21wb25lbnQgZm9yIHJlbmRlcmluZyBkYXRhIGdyaWRzLlxuICAgKiBQYXNzIHlvdXIgZ3JpZCBjb21wb25lbnQgKEJXYXlzLWdyaWQsIEFHIEdyaWQgd3JhcHBlciwgZXRjLikuXG4gICAqL1xuICBncmlkPzogVHlwZTx1bmtub3duPjtcblxuICAvKipcbiAgICogT3B0aW9uYWwgQW5ndWxhciBjb21wb25lbnQgZm9yIHJlbmRlcmluZyBjaGFydHMuXG4gICAqL1xuICBjaGFydD86IFR5cGU8dW5rbm93bj47XG5cbiAgLy8g4pSA4pSA4pSAIEdlbmVyYWwgb3B0aW9ucyDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcblxuICAvKiogRGVmYXVsdCBwYWdlIHNpemUgZm9yIGdyaWQgcmVzdWx0cy4gQGRlZmF1bHQgMjUgKi9cbiAgZGVmYXVsdFBhZ2VTaXplPzogbnVtYmVyO1xuXG4gIC8qKiBEYXRlIGZvcm1hdCBzdHJpbmcgdXNlZCBhY3Jvc3MgdGhlIGxpYnJhcnkuIEBkZWZhdWx0ICdkZC9NTS95eXl5JyAqL1xuICBkYXRlRm9ybWF0Pzogc3RyaW5nO1xuXG4gIC8qKiBUaW1lb3V0IGluIG1zIGZvciBsb29rdXAvZXhlY3V0ZSBxdWVyaWVzLiBAZGVmYXVsdCAzMDAwMDAgKi9cbiAgbG9va3VwVGltZW91dE1zPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBub3JtYWxpemluZyBhIGBCd2F5c1JlcG9ydENvbmZpZ2AgZm9yIGludGVybmFsIHVzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb3JtYWxpemVkQndheXNDb25maWcge1xuICAvKiogRW5kcG9pbnQgVVJMcyAqL1xuICBzcEVuZHBvaW50OiBzdHJpbmc7XG4gIHRhYmxlc0VuZHBvaW50OiBzdHJpbmc7XG4gIGV4ZWN1dGVFbmRwb2ludDogc3RyaW5nO1xuICBsb29rdXBFbmRwb2ludDogc3RyaW5nIHwgbnVsbDtcbiAgcmVwb3J0c0VuZHBvaW50OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKiBSZXNvbHZlZCBpbnRlcm5hbCBjYXRlZ29yeSBJRHMgKGUuZy4gWydpbnB1dCcsICdhY3Rpb24nLCAnZGlzcGxheSddKSAqL1xuICBhbGxvd2VkQ2F0ZWdvcmllczogc3RyaW5nW10gfCBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIGF1dG8tcGFyYW1ldGVyIGJpbmRpbmcgaXMgZW5hYmxlZCAqL1xuICBhdXRvUGFyYW1ldGVyOiBib29sZWFuO1xuXG4gIC8qKiBSb3V0ZSBiYXNlIHBhdGggKi9cbiAgcm91dGVCYXNlOiBzdHJpbmc7XG5cbiAgLyoqIFNlc3Npb24gc291cmNlICovXG4gIHNlc3Npb246IFR5cGU8U2Vzc2lvbkNvbnRleHRQcm92aWRlcj4gfCBTZXNzaW9uQ29udGV4dFNvdXJjZSB8ICgoKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgfCBudWxsO1xuICBzZXNzaW9uUHJvdmlkZXI6IFR5cGU8U2Vzc2lvbkNvbnRleHRQcm92aWRlcj4gfCBudWxsO1xuXG4gIC8qKiBHcmlkIGNvbXBvbmVudCAqL1xuICBncmlkQ29tcG9uZW50OiBUeXBlPHVua25vd24+IHwgbnVsbDtcblxuICAvKiogQ2hhcnQgY29tcG9uZW50ICovXG4gIGNoYXJ0Q29tcG9uZW50OiBUeXBlPHVua25vd24+IHwgbnVsbDtcblxuICAvKiogR2VuZXJhbCBjb25maWcgdmFsdWVzICovXG4gIGRlZmF1bHRQYWdlU2l6ZTogbnVtYmVyO1xuICBkYXRlRm9ybWF0OiBzdHJpbmc7XG4gIGxvb2t1cFRpbWVvdXRNczogbnVtYmVyO1xufVxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgYSBgQndheXNSZXBvcnRDb25maWdgIGludG8gdGhlIGludGVybmFsIGZvcm1hdC5cbiAqIFZhbGlkYXRlcyByZXF1aXJlZCBmaWVsZHMgYW5kIG1hcHMgZnJpZW5kbHkgbmFtZXMgdG8gaW50ZXJuYWwgSURzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplQndheXNDb25maWcoY29uZmlnOiBCd2F5c1JlcG9ydENvbmZpZyk6IE5vcm1hbGl6ZWRCd2F5c0NvbmZpZyB7XG4gIC8vIFZhbGlkYXRlIHJlcXVpcmVkIGVuZHBvaW50c1xuICBpZiAoIWNvbmZpZy5zcEVuZHBvaW50IHx8IHR5cGVvZiBjb25maWcuc3BFbmRwb2ludCAhPT0gJ3N0cmluZycgfHwgY29uZmlnLnNwRW5kcG9pbnQudHJpbSgpID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBbYndheXMtcmVwb3J0XSBcInNwRW5kcG9pbnRcIiBpcyByZXF1aXJlZCBpbiBCd2F5c1JlcG9ydENvbmZpZy4gYCArXG4gICAgICBgUGxlYXNlIHByb3ZpZGUgdGhlIFVSTCBmb3IgZmV0Y2hpbmcgc3RvcmVkIHByb2NlZHVyZXMsIGUuZy4gJy9hcGkvcmVwb3J0aW5nL3Byb2NlZHVyZXMnLmBcbiAgICApO1xuICB9XG4gIGlmICghY29uZmlnLnRhYmxlc0VuZHBvaW50IHx8IHR5cGVvZiBjb25maWcudGFibGVzRW5kcG9pbnQgIT09ICdzdHJpbmcnIHx8IGNvbmZpZy50YWJsZXNFbmRwb2ludC50cmltKCkgPT09ICcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFtid2F5cy1yZXBvcnRdIFwidGFibGVzRW5kcG9pbnRcIiBpcyByZXF1aXJlZCBpbiBCd2F5c1JlcG9ydENvbmZpZy4gYCArXG4gICAgICBgUGxlYXNlIHByb3ZpZGUgdGhlIFVSTCBmb3IgZmV0Y2hpbmcgdGFibGVzL3ZpZXdzLCBlLmcuICcvYXBpL3JlcG9ydGluZy90YWJsZXMnLmBcbiAgICApO1xuICB9XG4gIGlmICghY29uZmlnLmV4ZWN1dGVFbmRwb2ludCB8fCB0eXBlb2YgY29uZmlnLmV4ZWN1dGVFbmRwb2ludCAhPT0gJ3N0cmluZycgfHwgY29uZmlnLmV4ZWN1dGVFbmRwb2ludC50cmltKCkgPT09ICcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFtid2F5cy1yZXBvcnRdIFwiZXhlY3V0ZUVuZHBvaW50XCIgaXMgcmVxdWlyZWQgaW4gQndheXNSZXBvcnRDb25maWcuIGAgK1xuICAgICAgYFBsZWFzZSBwcm92aWRlIHRoZSBVUkwgZm9yIGV4ZWN1dGluZyBxdWVyaWVzLCBlLmcuICcvYXBpL3JlcG9ydGluZy9leGVjdXRlJy5gXG4gICAgKTtcbiAgfVxuXG4gIC8vIE1hcCBjb21wb25lbnQgcGFsZXR0ZSBjYXRlZ29yaWVzXG4gIGxldCBhbGxvd2VkQ2F0ZWdvcmllczogc3RyaW5nW10gfCBudWxsID0gbnVsbDtcbiAgaWYgKGNvbmZpZy5jb21wb25lbnRzICYmIGNvbmZpZy5jb21wb25lbnRzLmxlbmd0aCA+IDApIHtcbiAgICBhbGxvd2VkQ2F0ZWdvcmllcyA9IGNvbmZpZy5jb21wb25lbnRzLm1hcCgoZnJpZW5kbHkpID0+IHtcbiAgICAgIGNvbnN0IGludGVybmFsID0gUEFMRVRURV9DQVRFR09SWV9NQVBbZnJpZW5kbHldO1xuICAgICAgaWYgKCFpbnRlcm5hbCkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFtid2F5cy1yZXBvcnRdIFVua25vd24gY29tcG9uZW50IGNhdGVnb3J5IFwiJHtmcmllbmRseX1cIi4gYCArXG4gICAgICAgICAgYFZhbGlkIG9wdGlvbnM6ICR7T2JqZWN0LmtleXMoUEFMRVRURV9DQVRFR09SWV9NQVApLmpvaW4oJywgJyl9LmBcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGZyaWVuZGx5OyAvLyBQYXNzIHRocm91Z2ggdW5rbm93biBjYXRlZ29yaWVzIGFzLWlzXG4gICAgICB9XG4gICAgICByZXR1cm4gaW50ZXJuYWw7XG4gICAgfSk7XG4gIH1cblxuICAvLyBXYXJuIGlmIHJlcG9ydHNFbmRwb2ludCBpcyBtaXNzaW5nXG4gIGNvbnN0IHJlcG9ydHNFbmRwb2ludCA9IGNvbmZpZy5yZXBvcnRzRW5kcG9pbnQ/LnRyaW0oKSB8fCBudWxsO1xuICBpZiAoIXJlcG9ydHNFbmRwb2ludCkge1xuICAgIGNvbnNvbGUud2FybihcbiAgICAgIGBbYndheXMtcmVwb3J0XSBObyBcInJlcG9ydHNFbmRwb2ludFwiIHByb3ZpZGVkLiBSZXBvcnRzIHdpbGwgYmUgc2F2ZWQgdG8gYnJvd3NlciBsb2NhbFN0b3JhZ2UuIGAgK1xuICAgICAgYEZvciBzaGFyZWQgcmVwb3J0IG1lbnVzIGFjcm9zcyB1c2VycywgcHJvdmlkZSBhIHJlcG9ydHNFbmRwb2ludCwgZS5nLiAnL2FwaS9yZXBvcnRpbmcvcmVwb3J0cycuYFxuICAgICk7XG4gIH1cblxuICBjb25zdCBsb29rdXBFbmRwb2ludCA9IGNvbmZpZy5sb29rdXBFbmRwb2ludD8udHJpbSgpXG4gICAgPyBjbGVhblVybChjb25maWcubG9va3VwRW5kcG9pbnQpXG4gICAgOiBjb25maWcuZXhlY3V0ZUVuZHBvaW50LmluY2x1ZGVzKCcvZXhlY3V0ZScpXG4gICAgPyBjbGVhblVybChjb25maWcuZXhlY3V0ZUVuZHBvaW50LnJlcGxhY2UoL1xcL2V4ZWN1dGVcXC8/JC8sICcvbG9va3VwJykpXG4gICAgOiBudWxsO1xuXG4gIHJldHVybiB7XG4gICAgc3BFbmRwb2ludDogY2xlYW5VcmwoY29uZmlnLnNwRW5kcG9pbnQpLFxuICAgIHRhYmxlc0VuZHBvaW50OiBjbGVhblVybChjb25maWcudGFibGVzRW5kcG9pbnQpLFxuICAgIGV4ZWN1dGVFbmRwb2ludDogY2xlYW5VcmwoY29uZmlnLmV4ZWN1dGVFbmRwb2ludCksXG4gICAgbG9va3VwRW5kcG9pbnQsXG4gICAgcmVwb3J0c0VuZHBvaW50OiByZXBvcnRzRW5kcG9pbnQgPyBjbGVhblVybChyZXBvcnRzRW5kcG9pbnQpIDogbnVsbCxcblxuICAgIGFsbG93ZWRDYXRlZ29yaWVzLFxuICAgIGF1dG9QYXJhbWV0ZXI6IGNvbmZpZy5hdXRvUGFyYW1ldGVyICE9PSBmYWxzZSwgLy8gZGVmYXVsdCB0cnVlXG4gICAgcm91dGVCYXNlOiBjb25maWcucm91dGVCYXNlPy50cmltKCkgfHwgJ3JlcG9ydHMnLFxuICAgIHNlc3Npb246IGNvbmZpZy5zZXNzaW9uID8/IG51bGwsXG4gICAgc2Vzc2lvblByb3ZpZGVyOiBjb25maWcuc2Vzc2lvblByb3ZpZGVyID8/IG51bGwsXG5cbiAgICBncmlkQ29tcG9uZW50OiBjb25maWcuZ3JpZCA/PyBudWxsLFxuICAgIGNoYXJ0Q29tcG9uZW50OiBjb25maWcuY2hhcnQgPz8gbnVsbCxcblxuICAgIGRlZmF1bHRQYWdlU2l6ZTogY29uZmlnLmRlZmF1bHRQYWdlU2l6ZSA/PyAyNSxcbiAgICBkYXRlRm9ybWF0OiBjb25maWcuZGF0ZUZvcm1hdCA/PyAnZGQvTU0veXl5eScsXG4gICAgbG9va3VwVGltZW91dE1zOiBjb25maWcubG9va3VwVGltZW91dE1zID8/IDMwMDAwMCxcbiAgfTtcbn1cblxuLyoqIFJlbW92ZSB0cmFpbGluZyBzbGFzaGVzIGZyb20gYSBVUkwgKi9cbmZ1bmN0aW9uIGNsZWFuVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHVybC50cmltKCkucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG59XG4iXX0=
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYndheXMtcmVwb3J0LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvY29uZmlnL2J3YXlzLXJlcG9ydC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQXdCSDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFvQztJQUNuRSxVQUFVLEVBQUUsT0FBTztJQUNuQixhQUFhLEVBQUUsUUFBUTtJQUN2QixhQUFhLEVBQUUsU0FBUztJQUN4QixXQUFXLEVBQUUsTUFBTTtJQUNuQixNQUFNLEVBQUUsUUFBUTtDQUNqQixDQUFDO0FBaUxGOzs7R0FHRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUF5QjtJQUM1RCw4QkFBOEI7SUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLElBQUksT0FBTyxNQUFNLENBQUMsVUFBVSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ25HLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0VBQWdFO1lBQ2hFLDBGQUEwRixDQUMzRixDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxJQUFJLE9BQU8sTUFBTSxDQUFDLGNBQWMsS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUMvRyxNQUFNLElBQUksS0FBSyxDQUNiLG9FQUFvRTtZQUNwRSxpRkFBaUYsQ0FDbEYsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxPQUFPLE1BQU0sQ0FBQyxlQUFlLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLEtBQUssRUFB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QUFNLENBQUMsVUFBVSxJQUFJLFlBQVk7UUFDN0MsZUFBZSxFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksTUFBTTtLQUNsRCxDQUFDO0FBQ0osQ0FBQztBQUVELHlDQUF5QztBQUN6QyxTQUFTLFFBQVEsQ0FBQyxHQUFXO0lBQzNCLE9BQU8sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2ltcGxpZmllZCBjb25maWd1cmF0aW9uIGZvciBid2F5cy1yZXBvcnQuXG4gKlxuICogVGhpcyBpcyB0aGUgZGV2ZWxvcGVyLWZhY2luZyBjb25maWcgb2JqZWN0IHRoYXQgbWFrZXMgaW50ZWdyYXRpb25cbiAqIGFzIHNpbXBsZSBhcyAz4oCTNCBlbmRwb2ludCBVUkxzICsgb3B0aW9uYWwgb3ZlcnJpZGVzLlxuICogVGhlIG5vcm1hbGl6ZXIgY29udmVydHMgdGhpcyBpbnRvIHRoZSBpbnRlcm5hbCBgUmVwb3J0aW5nQ29uZmlnYFxuICogcGx1cyBhZGFwdGVyIHdpcmluZyBkZWNpc2lvbnMuXG4gKi9cblxuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2Vzc2lvbkNvbnRleHRQcm92aWRlciwgU2Vzc2lvbkNvbnRleHRTb3VyY2UgfSBmcm9tICcuLi90b2tlbnMvc2Vzc2lvbi1jb250ZXh0LnRva2VuJztcbmltcG9ydCB7IFJlcG9ydEFwaUVuZHBvaW50RGVmaW5pdGlvbiB9IGZyb20gJy4uL21vZGVscy9yZXBvcnQtYXBpLWVuZHBvaW50Lm1vZGVsJztcblxuLyoqXG4gKiBQYWxldHRlIGNvbXBvbmVudCBjYXRlZ29yeSBuYW1lcyB0aGUgZGV2ZWxvcGVyIGNhbiB1c2VcbiAqIHdoZW4gcmVzdHJpY3RpbmcgdGhlIGRlc2lnbmVyIGNvbXBvbmVudCBwYWxldHRlLlxuICpcbiAqIE1hcHMgdG8gaW50ZXJuYWwgcmVnaXN0cnkgY2F0ZWdvcnkgSURzOlxuICogLSBgZm9ybUlucHV0c2AgICAg4oaSIGBpbnB1dGBcbiAqIC0gYGFjdGlvbkJ1dHRvbnNgIOKGkiBgYWN0aW9uYFxuICogLSBgZGlzcGxheUxhYmVsc2Ag4oaSIGBkaXNwbGF5YFxuICogLSBgZGF0YUxvb2t1cHNgICAg4oaSIGBkYXRhYFxuICogLSBgbGF5b3V0YCAgICAgICAg4oaSIGBsYXlvdXRgXG4gKi9cbmV4cG9ydCB0eXBlIFBhbGV0dGVDYXRlZ29yeSA9XG4gIHwgJ2Zvcm1JbnB1dHMnXG4gIHwgJ2FjdGlvbkJ1dHRvbnMnXG4gIHwgJ2Rpc3BsYXlMYWJlbHMnXG4gIHwgJ2RhdGFMb29rdXBzJ1xuICB8ICdsYXlvdXQnO1xuXG4vKipcbiAqIE1hcHBpbmcgZnJvbSBmcmllbmRseSBwYWxldHRlIGNhdGVnb3J5IG5hbWVzIHRvIGludGVybmFsIGNhdGVnb3J5IElEcy5cbiAqL1xuZXhwb3J0IGNvbnN0IFBBTEVUVEVfQ0FURUdPUllfTUFQOiBSZWNvcmQ8UGFsZXR0ZUNhdGVnb3J5LCBzdHJpbmc+ID0ge1xuICBmb3JtSW5wdXRzOiAnaW5wdXQnLFxuICBhY3Rpb25CdXR0b25zOiAnYWN0aW9uJyxcbiAgZGlzcGxheUxhYmVsczogJ2Rpc3BsYXknLFxuICBkYXRhTG9va3VwczogJ2RhdGEnLFxuICBsYXlvdXQ6ICdsYXlvdXQnLFxufTtcblxuLyoqXG4gKiBTaW1wbGlmaWVkLCBkZXZlbG9wZXItZmFjaW5nIGNvbmZpZ3VyYXRpb24gZm9yIGJ3YXlzLXJlcG9ydC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgcmVwb3J0Q29uZmlnOiBCd2F5c1JlcG9ydENvbmZpZyA9IHtcbiAqICAgc3BFbmRwb2ludDogICAgICAnL2FwaS9yZXBvcnRpbmcvcHJvY2VkdXJlcycsXG4gKiAgIHRhYmxlc0VuZHBvaW50OiAgJy9hcGkvcmVwb3J0aW5nL3RhYmxlcycsXG4gKiAgIGV4ZWN1dGVFbmRwb2ludDogJy9hcGkvcmVwb3J0aW5nL2V4ZWN1dGUnLFxuICogICByZXBvcnRzRW5kcG9pbnQ6ICcvYXBpL3JlcG9ydGluZy9yZXBvcnRzJyxcbiAqICAgY29tcG9uZW50czogWydmb3JtSW5wdXRzJywgJ2FjdGlvbkJ1dHRvbnMnLCAnZGlzcGxheUxhYmVscyddLFxuICogICBhdXRvUGFyYW1ldGVyOiB0cnVlLFxuICogICBzZXNzaW9uOiAoKSA9PiBpbmplY3QoQXV0aFNlcnZpY2UpLnNlc3Npb24oKSxcbiAqICAgcm91dGVCYXNlOiAncmVwb3J0cycsXG4gKiB9O1xuICogYGBgXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQndheXNSZXBvcnRDb25maWcge1xuICAvLyDilIDilIDilIAgQmFja2VuZCBlbmRwb2ludHMgKHRoZSAz4oCTNCBlbmRwb2ludCBjb250cmFjdCkg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqXG4gICAqIEdFVCBlbmRwb2ludCByZXR1cm5pbmcgdGhlIGxpc3Qgb2Ygc3RvcmVkIHByb2NlZHVyZXMgd2l0aCB0aGVpciBwYXJhbWV0ZXJzLlxuICAgKiBSZXNwb25zZTogYFt7IG5hbWUsIHNjaGVtYSwgcGFyYW1ldGVyczogW3sgbmFtZSwgc3FsVHlwZSwgcmVxdWlyZWQsIGRlZmF1bHRWYWx1ZT8gfV0gfV1gXG4gICAqL1xuICBzcEVuZHBvaW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdFVCBlbmRwb2ludCByZXR1cm5pbmcgdGhlIGxpc3Qgb2YgdGFibGVzL3ZpZXdzIHdpdGggdGhlaXIgY29sdW1ucy5cbiAgICogUmVzcG9uc2U6IGBbeyBuYW1lLCBzY2hlbWEsIHR5cGU6ICd0YWJsZSd8J3ZpZXcnLCBjb2x1bW5zOiBbeyBuYW1lLCBzcWxUeXBlIH1dIH1dYFxuICAgKi9cbiAgdGFibGVzRW5kcG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogUE9TVCBlbmRwb2ludCB0aGF0IHJ1bnMgYSBzdG9yZWQgcHJvY2VkdXJlIG9yIHRhYmxlIHF1ZXJ5IGFuZCByZXR1cm5zIHJvd3MuXG4gICAqIEJvZHk6IGB7IGtpbmQ6ICdwcm9jZWR1cmUnfCd0YWJsZScsIG5hbWUsIHNjaGVtYSwgcGFyYW1ldGVycywgY29sdW1ucz8sIHRvcD8gfWBcbiAgICogUmVzcG9uc2U6IGByb3dzW11gXG4gICAqL1xuICBleGVjdXRlRW5kcG9pbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgUE9TVCBlbmRwb2ludCBmb3IgZmV0Y2hpbmcgZHJvcGRvd24gbWFzdGVyIGRhdGEgYW5kIGxvb2t1cCBvcHRpb25zLlxuICAgKiBEZWZhdWx0cyB0byByZXBsYWNpbmcgYC9leGVjdXRlYCB3aXRoIGAvbG9va3VwYCBpZiBvbWl0dGVkLlxuICAgKi9cbiAgbG9va3VwRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIENSVUQgZW5kcG9pbnQgZm9yIHNhdmluZy9sb2FkaW5nIHJlcG9ydCBwYWdlIGRlZmluaXRpb25zLlxuICAgKiBXaGVuIG9taXR0ZWQsIHJlcG9ydHMgYXJlIHNhdmVkIHRvIGJyb3dzZXIgbG9jYWxTdG9yYWdlIHdpdGggYSBjb25zb2xlIHdhcm5pbmcuXG4gICAqIC0gR0VUICAgIOKGkiBsaXN0IHNhdmVkIHJlcG9ydHNcbiAgICogLSBHRVQgLzppZCDihpIgbG9hZCBhIHNwZWNpZmljIHJlcG9ydFxuICAgKiAtIFBPU1QgICDihpIgc2F2ZSBhIG5ldyBvciB1cGRhdGVkIHJlcG9ydFxuICAgKiAtIERFTEVURSAvOmlkIOKGkiBkZWxldGUgYSByZXBvcnRcbiAgICovXG4gIHJlcG9ydHNFbmRwb2ludD86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgR0VUIGVuZHBvaW50IHJldHVybmluZyB0aGUgY2F0YWxvZyBvZiByZWdpc3RlcmVkIFJFU1QgQVBJcy5cbiAgICogUmVzcG9uc2U6IFJlcG9ydEFwaUVuZHBvaW50RGVmaW5pdGlvbltdXG4gICAqL1xuICBhcGlzRW5kcG9pbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIHN0YXRpYy9pbi1tZW1vcnkgQVBJIGVuZHBvaW50cyByZWdpc3RlcmVkIGRpcmVjdGx5IGluIHRoZSBob3N0IGFwcGxpY2F0aW9uLlxuICAgKiBNZXJnZWQgd2l0aCBiYWNrZW5kLWRpc2NvdmVyZWQgQVBJcyBpbiB0aGUgVmlzdWFsIERlc2lnbmVyLlxuICAgKi9cbiAgYXBpRW5kcG9pbnRzPzogUmVwb3J0QXBpRW5kcG9pbnREZWZpbml0aW9uW107XG5cbiAgLy8g4pSA4pSA4pSAIERlc2lnbmVyIG9wdGlvbnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqXG4gICAqIENvbXBvbmVudCBwYWxldHRlIGdyb3VwcyB0byBzaG93IGluIHRoZSBkZXNpZ25lci5cbiAgICogRGVmYXVsdHMgdG8gYWxsIGdyb3VwcyB3aGVuIG5vdCBzcGVjaWZpZWQuXG4gICAqXG4gICAqIEBleGFtcGxlIFsnZm9ybUlucHV0cycsICdhY3Rpb25CdXR0b25zJywgJ2Rpc3BsYXlMYWJlbHMnXVxuICAgKi9cbiAgY29tcG9uZW50cz86IFBhbGV0dGVDYXRlZ29yeVtdO1xuXG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIHN0b3JlZCBwcm9jZWR1cmUgcGFyYW1ldGVycyBsaWtlIGBAQnJhbmNoSWRgLCBgQENvbXBhbnlJZGBcbiAgICogYXJlIGF1dG9tYXRpY2FsbHkgYm91bmQgZnJvbSB0aGUgc2Vzc2lvbiBjb250ZXh0LlxuICAgKiBSZXF1aXJlcyBgc2Vzc2lvbmAgdG8gYmUgcHJvdmlkZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGF1dG9QYXJhbWV0ZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTZXNzaW9uIGNvbnRleHQgcHJvdmlkZXIgZm9yIGF1dG8tcGFyYW1ldGVyIGJpbmRpbmcuXG4gICAqIENhbiBiZSBhIHNlcnZpY2UgY2xhc3MgaW1wbGVtZW50aW5nIGBTZXNzaW9uQ29udGV4dFByb3ZpZGVyYCxcbiAgICogYSBwbGFpbiBvYmplY3QsIGEgZmFjdG9yeSBmdW5jdGlvbiwgYW4gT2JzZXJ2YWJsZSwgb3IgYSBTaWduYWwuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHNlc3Npb246IFBsYXlncm91bmRTZXNzaW9uU2VydmljZVxuICAgKiBzZXNzaW9uOiAoKSA9PiBpbmplY3QoQXV0aFNlcnZpY2UpLnNlc3Npb24oKVxuICAgKiBzZXNzaW9uOiB7IGJyYW5jaElkOiAxLCBjb21wYW55SWQ6IDEwIH1cbiAgICovXG4gIHNlc3Npb24/OiBUeXBlPFNlc3Npb25Db250ZXh0UHJvdmlkZXI+IHwgU2Vzc2lvbkNvbnRleHRTb3VyY2UgfCAoKCkgPT4gUmVjb3JkPHN0cmluZywgdW5rbm93bj4pO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzZXJ2aWNlIGNsYXNzIGltcGxlbWVudGluZyBgU2Vzc2lvbkNvbnRleHRQcm92aWRlcmAuXG4gICAqIEVxdWl2YWxlbnQgdG8gYHNlc3Npb246IE15U2Vzc2lvblNlcnZpY2VgLlxuICAgKi9cbiAgc2Vzc2lvblByb3ZpZGVyPzogVHlwZTxTZXNzaW9uQ29udGV4dFByb3ZpZGVyPjtcblxuICAvLyDilIDilIDilIAgTGl2ZSBwYWdlIG9wdGlvbnMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG5cbiAgLyoqXG4gICAqIEJhc2UgcGF0aCBmb3IgbGl2ZSByZXBvcnQgcGFnZXMuXG4gICAqIEdlbmVyYXRlZCByZXBvcnQgcGFnZXMgb3BlbiBhdCBgLzxyb3V0ZUJhc2U+LzxzbHVnPmAuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdyZXBvcnRzJ1xuICAgKi9cbiAgcm91dGVCYXNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBBbmd1bGFyIGNvbXBvbmVudCBmb3IgcmVuZGVyaW5nIGRhdGEgZ3JpZHMuXG4gICAqIFBhc3MgeW91ciBncmlkIGNvbXBvbmVudCAoQldheXMtZ3JpZCwgQUcgR3JpZCB3cmFwcGVyLCBldGMuKS5cbiAgICovXG4gIGdyaWQ/OiBUeXBlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBBbmd1bGFyIGNvbXBvbmVudCBmb3IgcmVuZGVyaW5nIGNoYXJ0cy5cbiAgICovXG4gIGNoYXJ0PzogVHlwZTx1bmtub3duPjtcblxuICAvLyDilIDilIDilIAgR2VuZXJhbCBvcHRpb25zIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuXG4gIC8qKiBEZWZhdWx0IHBhZ2Ugc2l6ZSBmb3IgZ3JpZCByZXN1bHRzLiBAZGVmYXVsdCAyNSAqL1xuICBkZWZhdWx0UGFnZVNpemU/OiBudW1iZXI7XG5cbiAgLyoqIERhdGUgZm9ybWF0IHN0cmluZyB1c2VkIGFjcm9zcyB0aGUgbGlicmFyeS4gQGRlZmF1bHQgJ2RkL01NL3l5eXknICovXG4gIGRhdGVGb3JtYXQ/OiBzdHJpbmc7XG5cbiAgLyoqIFRpbWVvdXQgaW4gbXMgZm9yIGxvb2t1cC9leGVjdXRlIHF1ZXJpZXMuIEBkZWZhdWx0IDMwMDAwMCAqL1xuICBsb29rdXBUaW1lb3V0TXM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIG5vcm1hbGl6aW5nIGEgYEJ3YXlzUmVwb3J0Q29uZmlnYCBmb3IgaW50ZXJuYWwgdXNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vcm1hbGl6ZWRCd2F5c0NvbmZpZyB7XG4gIC8qKiBFbmRwb2ludCBVUkxzICovXG4gIHNwRW5kcG9pbnQ6IHN0cmluZztcbiAgdGFibGVzRW5kcG9pbnQ6IHN0cmluZztcbiAgZXhlY3V0ZUVuZHBvaW50OiBzdHJpbmc7XG4gIGxvb2t1cEVuZHBvaW50OiBzdHJpbmcgfCBudWxsO1xuICByZXBvcnRzRW5kcG9pbnQ6IHN0cmluZyB8IG51bGw7XG4gIGFwaXNFbmRwb2ludDogc3RyaW5nIHwgbnVsbDtcbiAgYXBpRW5kcG9pbnRzOiBSZXBvcnRBcGlFbmRwb2ludERlZmluaXRpb25bXTtcblxuICAvKiogUmVzb2x2ZWQgaW50ZXJuYWwgY2F0ZWdvcnkgSURzIChlLmcuIFsnaW5wdXQnLCAnYWN0aW9uJywgJ2Rpc3BsYXknXSkgKi9cbiAgYWxsb3dlZENhdGVnb3JpZXM6IHN0cmluZ1tdIHwgbnVsbDtcblxuICAvKiogV2hldGhlciBhdXRvLXBhcmFtZXRlciBiaW5kaW5nIGlzIGVuYWJsZWQgKi9cbiAgYXV0b1BhcmFtZXRlcjogYm9vbGVhbjtcblxuICAvKiogUm91dGUgYmFzZSBwYXRoICovXG4gIHJvdXRlQmFzZTogc3RyaW5nO1xuXG4gIC8qKiBTZXNzaW9uIHNvdXJjZSAqL1xuICBzZXNzaW9uOiBUeXBlPFNlc3Npb25Db250ZXh0UHJvdmlkZXI+IHwgU2Vzc2lvbkNvbnRleHRTb3VyY2UgfCAoKCkgPT4gUmVjb3JkPHN0cmluZywgdW5rbm93bj4pIHwgbnVsbDtcbiAgc2Vzc2lvblByb3ZpZGVyOiBUeXBlPFNlc3Npb25Db250ZXh0UHJvdmlkZXI+IHwgbnVsbDtcblxuICAvKiogR3JpZCBjb21wb25lbnQgKi9cbiAgZ3JpZENvbXBvbmVudDogVHlwZTx1bmtub3duPiB8IG51bGw7XG5cbiAgLyoqIENoYXJ0IGNvbXBvbmVudCAqL1xuICBjaGFydENvbXBvbmVudDogVHlwZTx1bmtub3duPiB8IG51bGw7XG5cbiAgLyoqIEdlbmVyYWwgY29uZmlnIHZhbHVlcyAqL1xuICBkZWZhdWx0UGFnZVNpemU6IG51bWJlcjtcbiAgZGF0ZUZvcm1hdDogc3RyaW5nO1xuICBsb29rdXBUaW1lb3V0TXM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBOb3JtYWxpemVzIGEgYEJ3YXlzUmVwb3J0Q29uZmlnYCBpbnRvIHRoZSBpbnRlcm5hbCBmb3JtYXQuXG4gKiBWYWxpZGF0ZXMgcmVxdWlyZWQgZmllbGRzIGFuZCBtYXBzIGZyaWVuZGx5IG5hbWVzIHRvIGludGVybmFsIElEcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUJ3YXlzQ29uZmlnKGNvbmZpZzogQndheXNSZXBvcnRDb25maWcpOiBOb3JtYWxpemVkQndheXNDb25maWcge1xuICAvLyBWYWxpZGF0ZSByZXF1aXJlZCBlbmRwb2ludHNcbiAgaWYgKCFjb25maWcuc3BFbmRwb2ludCB8fCB0eXBlb2YgY29uZmlnLnNwRW5kcG9pbnQgIT09ICdzdHJpbmcnIHx8IGNvbmZpZy5zcEVuZHBvaW50LnRyaW0oKSA9PT0gJycpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgW2J3YXlzLXJlcG9ydF0gXCJzcEVuZHBvaW50XCIgaXMgcmVxdWlyZWQgaW4gQndheXNSZXBvcnRDb25maWcuIGAgK1xuICAgICAgYFBsZWFzZSBwcm92aWRlIHRoZSBVUkwgZm9yIGZldGNoaW5nIHN0b3JlZCBwcm9jZWR1cmVzLCBlLmcuICcvYXBpL3JlcG9ydGluZy9wcm9jZWR1cmVzJy5gXG4gICAgKTtcbiAgfVxuICBpZiAoIWNvbmZpZy50YWJsZXNFbmRwb2ludCB8fCB0eXBlb2YgY29uZmlnLnRhYmxlc0VuZHBvaW50ICE9PSAnc3RyaW5nJyB8fCBjb25maWcudGFibGVzRW5kcG9pbnQudHJpbSgpID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBbYndheXMtcmVwb3J0XSBcInRhYmxlc0VuZHBvaW50XCIgaXMgcmVxdWlyZWQgaW4gQndheXNSZXBvcnRDb25maWcuIGAgK1xuICAgICAgYFBsZWFzZSBwcm92aWRlIHRoZSBVUkwgZm9yIGZldGNoaW5nIHRhYmxlcy92aWV3cywgZS5nLiAnL2FwaS9yZXBvcnRpbmcvdGFibGVzJy5gXG4gICAgKTtcbiAgfVxuICBpZiAoIWNvbmZpZy5leGVjdXRlRW5kcG9pbnQgfHwgdHlwZW9mIGNvbmZpZy5leGVjdXRlRW5kcG9pbnQgIT09ICdzdHJpbmcnIHx8IGNvbmZpZy5leGVjdXRlRW5kcG9pbnQudHJpbSgpID09PSAnJykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBbYndheXMtcmVwb3J0XSBcImV4ZWN1dGVFbmRwb2ludFwiIGlzIHJlcXVpcmVkIGluIEJ3YXlzUmVwb3J0Q29uZmlnLiBgICtcbiAgICAgIGBQbGVhc2UgcHJvdmlkZSB0aGUgVVJMIGZvciBleGVjdXRpbmcgcXVlcmllcywgZS5nLiAnL2FwaS9yZXBvcnRpbmcvZXhlY3V0ZScuYFxuICAgICk7XG4gIH1cblxuICAvLyBNYXAgY29tcG9uZW50IHBhbGV0dGUgY2F0ZWdvcmllc1xuICBsZXQgYWxsb3dlZENhdGVnb3JpZXM6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGw7XG4gIGlmIChjb25maWcuY29tcG9uZW50cyAmJiBjb25maWcuY29tcG9uZW50cy5sZW5ndGggPiAwKSB7XG4gICAgYWxsb3dlZENhdGVnb3JpZXMgPSBjb25maWcuY29tcG9uZW50cy5tYXAoKGZyaWVuZGx5KSA9PiB7XG4gICAgICBjb25zdCBpbnRlcm5hbCA9IFBBTEVUVEVfQ0FURUdPUllfTUFQW2ZyaWVuZGx5XTtcbiAgICAgIGlmICghaW50ZXJuYWwpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBbYndheXMtcmVwb3J0XSBVbmtub3duIGNvbXBvbmVudCBjYXRlZ29yeSBcIiR7ZnJpZW5kbHl9XCIuIGAgK1xuICAgICAgICAgIGBWYWxpZCBvcHRpb25zOiAke09iamVjdC5rZXlzKFBBTEVUVEVfQ0FURUdPUllfTUFQKS5qb2luKCcsICcpfS5gXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBmcmllbmRseTsgLy8gUGFzcyB0aHJvdWdoIHVua25vd24gY2F0ZWdvcmllcyBhcy1pc1xuICAgICAgfVxuICAgICAgcmV0dXJuIGludGVybmFsO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gV2FybiBpZiByZXBvcnRzRW5kcG9pbnQgaXMgbWlzc2luZ1xuICBjb25zdCByZXBvcnRzRW5kcG9pbnQgPSBjb25maWcucmVwb3J0c0VuZHBvaW50Py50cmltKCkgfHwgbnVsbDtcbiAgaWYgKCFyZXBvcnRzRW5kcG9pbnQpIHtcbiAgICBjb25zb2xlLndhcm4oXG4gICAgICBgW2J3YXlzLXJlcG9ydF0gTm8gXCJyZXBvcnRzRW5kcG9pbnRcIiBwcm92aWRlZC4gUmVwb3J0cyB3aWxsIGJlIHNhdmVkIHRvIGJyb3dzZXIgbG9jYWxTdG9yYWdlLiBgICtcbiAgICAgIGBGb3Igc2hhcmVkIHJlcG9ydCBtZW51cyBhY3Jvc3MgdXNlcnMsIHByb3ZpZGUgYSByZXBvcnRzRW5kcG9pbnQsIGUuZy4gJy9hcGkvcmVwb3J0aW5nL3JlcG9ydHMnLmBcbiAgICApO1xuICB9XG5cbiAgY29uc3QgbG9va3VwRW5kcG9pbnQgPSBjb25maWcubG9va3VwRW5kcG9pbnQ/LnRyaW0oKVxuICAgID8gY2xlYW5VcmwoY29uZmlnLmxvb2t1cEVuZHBvaW50KVxuICAgIDogY29uZmlnLmV4ZWN1dGVFbmRwb2ludC5pbmNsdWRlcygnL2V4ZWN1dGUnKVxuICAgID8gY2xlYW5VcmwoY29uZmlnLmV4ZWN1dGVFbmRwb2ludC5yZXBsYWNlKC9cXC9leGVjdXRlXFwvPyQvLCAnL2xvb2t1cCcpKVxuICAgIDogbnVsbDtcblxuICByZXR1cm4ge1xuICAgIHNwRW5kcG9pbnQ6IGNsZWFuVXJsKGNvbmZpZy5zcEVuZHBvaW50KSxcbiAgICB0YWJsZXNFbmRwb2ludDogY2xlYW5VcmwoY29uZmlnLnRhYmxlc0VuZHBvaW50KSxcbiAgICBleGVjdXRlRW5kcG9pbnQ6IGNsZWFuVXJsKGNvbmZpZy5leGVjdXRlRW5kcG9pbnQpLFxuICAgIGxvb2t1cEVuZHBvaW50LFxuICAgIHJlcG9ydHNFbmRwb2ludDogcmVwb3J0c0VuZHBvaW50ID8gY2xlYW5VcmwocmVwb3J0c0VuZHBvaW50KSA6IG51bGwsXG4gICAgYXBpc0VuZHBvaW50OiBjb25maWcuYXBpc0VuZHBvaW50Py50cmltKCkgPyBjbGVhblVybChjb25maWcuYXBpc0VuZHBvaW50KSA6IG51bGwsXG4gICAgYXBpRW5kcG9pbnRzOiBBcnJheS5pc0FycmF5KGNvbmZpZy5hcGlFbmRwb2ludHMpID8gY29uZmlnLmFwaUVuZHBvaW50cyA6IFtdLFxuXG4gICAgYWxsb3dlZENhdGVnb3JpZXMsXG4gICAgYXV0b1BhcmFtZXRlcjogY29uZmlnLmF1dG9QYXJhbWV0ZXIgIT09IGZhbHNlLCAvLyBkZWZhdWx0IHRydWVcbiAgICByb3V0ZUJhc2U6IGNvbmZpZy5yb3V0ZUJhc2U/LnRyaW0oKSB8fCAncmVwb3J0cycsXG4gICAgc2Vzc2lvbjogY29uZmlnLnNlc3Npb24gPz8gbnVsbCxcbiAgICBzZXNzaW9uUHJvdmlkZXI6IGNvbmZpZy5zZXNzaW9uUHJvdmlkZXIgPz8gbnVsbCxcblxuICAgIGdyaWRDb21wb25lbnQ6IGNvbmZpZy5ncmlkID8/IG51bGwsXG4gICAgY2hhcnRDb21wb25lbnQ6IGNvbmZpZy5jaGFydCA/PyBudWxsLFxuXG4gICAgZGVmYXVsdFBhZ2VTaXplOiBjb25maWcuZGVmYXVsdFBhZ2VTaXplID8/IDI1LFxuICAgIGRhdGVGb3JtYXQ6IGNvbmZpZy5kYXRlRm9ybWF0ID8/ICdkZC9NTS95eXl5JyxcbiAgICBsb29rdXBUaW1lb3V0TXM6IGNvbmZpZy5sb29rdXBUaW1lb3V0TXMgPz8gMzAwMDAwLFxuICB9O1xufVxuXG4vKiogUmVtb3ZlIHRyYWlsaW5nIHNsYXNoZXMgZnJvbSBhIFVSTCAqL1xuZnVuY3Rpb24gY2xlYW5VcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdXJsLnRyaW0oKS5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbn1cbiJdfQ==
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
* Barrel export for all core domain models.
|
|
3
3
|
*/
|
|
4
4
|
export {};
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQmFycmVsIGV4cG9ydCBmb3IgYWxsIGNvcmUgZG9tYWluIG1vZGVscy5cbiAqL1xuXG5leHBvcnQgdHlwZSB7XG4gIFJlcG9ydERlZmluaXRpb24sXG4gIFJlcG9ydFN1bW1hcnksXG4gIFJlcG9ydFBlcm1pc3Npb25EZWZpbml0aW9uLFxufSBmcm9tICcuL3JlcG9ydC1kZWZpbml0aW9uLm1vZGVsJztcblxuZXhwb3J0IHR5cGUge1xuICBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uLFxuICBDb21wb25lbnRCaW5kaW5nRGVmaW5pdGlvbixcbiAgQ29tcG9uZW50RGF0YVNvdXJjZURlZmluaXRpb24sXG4gIERyb3Bkb3duU291cmNlVHlwZSxcbiAgVmlzaWJpbGl0eURlZmluaXRpb24sXG59IGZyb20gJy4vcmVwb3J0LWNvbXBvbmVudC5tb2RlbCc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgUmVwb3J0QXBpRW5kcG9pbnREZWZpbml0aW9uLFxuICBSZXBvcnRBcGlQYXJhbWV0ZXJEZWZpbml0aW9uLFxufSBmcm9tICcuL3JlcG9ydC1hcGktZW5kcG9pbnQubW9kZWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIFJlcG9ydFBhcmFtZXRlckRlZmluaXRpb24sXG59IGZyb20gJy4vcmVwb3J0LXBhcmFtZXRlci5tb2RlbCc7XG5cbmV4cG9ydCB0eXBlIHtcbiAgUmVwb3J0RGF0YVNvdXJjZURlZmluaXRpb24sXG4gIERhdGFTb3VyY2VDYWNoZURlZmluaXRpb24sXG59IGZyb20gJy4vcmVwb3J0LWRhdGFzb3VyY2UubW9kZWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIFJlcG9ydEdyaWREZWZpbml0aW9uLFxuICBHcmlkQ29sdW1uRGVmaW5pdGlvbixcbiAgR3JpZE9wdGlvbnNEZWZpbml0aW9uLFxufSBmcm9tICcuL3JlcG9ydC1ncmlkLm1vZGVsJztcblxuZXhwb3J0IHR5cGUge1xuICBSZXBvcnRMYXlvdXREZWZpbml0aW9uLFxuICBDb21wb25lbnRMYXlvdXREZWZpbml0aW9uLFxufSBmcm9tICcuL3JlcG9ydC1sYXlvdXQubW9kZWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIFZhbGlkYXRpb25EZWZpbml0aW9uLFxufSBmcm9tICcuL3ZhbGlkYXRpb24ubW9kZWwnO1xuXG5leHBvcnQgdHlwZSB7XG4gIENvbXBvbmVudEV2ZW50RGVmaW5pdGlvbixcbiAgQ29tcG9uZW50QWN0aW9uRGVmaW5pdGlvbixcbn0gZnJvbSAnLi9jb21wb25lbnQtZXZlbnQubW9kZWwnO1xuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Definitions for API-based data retrieval endpoints.
|
|
3
|
+
*
|
|
4
|
+
* Enables reports and form components to consume REST / HTTP APIs
|
|
5
|
+
* with parameter interpolation, custom headers, and data path resolution.
|
|
6
|
+
*/
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWFwaS1lbmRwb2ludC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvbW9kZWxzL3JlcG9ydC1hcGktZW5kcG9pbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERlZmluaXRpb25zIGZvciBBUEktYmFzZWQgZGF0YSByZXRyaWV2YWwgZW5kcG9pbnRzLlxuICpcbiAqIEVuYWJsZXMgcmVwb3J0cyBhbmQgZm9ybSBjb21wb25lbnRzIHRvIGNvbnN1bWUgUkVTVCAvIEhUVFAgQVBJc1xuICogd2l0aCBwYXJhbWV0ZXIgaW50ZXJwb2xhdGlvbiwgY3VzdG9tIGhlYWRlcnMsIGFuZCBkYXRhIHBhdGggcmVzb2x1dGlvbi5cbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcG9ydEFwaVBhcmFtZXRlckRlZmluaXRpb24ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICB0eXBlOiAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2Jvb2xlYW4nIHwgJ2RhdGUnIHwgJ2FycmF5JztcbiAgaW46ICdxdWVyeScgfCAncGF0aCcgfCAnYm9keScgfCAnaGVhZGVyJztcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICBkZWZhdWx0VmFsdWU/OiB1bmtub3duO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRBcGlFbmRwb2ludERlZmluaXRpb24ge1xuICBpZDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHVybD86IHN0cmluZztcbiAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIG1ldGhvZD86ICdHRVQnIHwgJ1BPU1QnIHwgJ1BVVCc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjYXRlZ29yeT86IHN0cmluZztcbiAgZGF0YVBhdGg/OiBzdHJpbmc7XG4gIHRvdGFsUGF0aD86IHN0cmluZztcbiAgcGFyYW1ldGVycz86IFJlcG9ydEFwaVBhcmFtZXRlckRlZmluaXRpb25bXTtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHJlc3BvbnNlU2FtcGxlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5bXTtcbiAgdXNlUHJveHk/OiBib29sZWFuO1xufVxuIl19
|
|
@@ -7,4 +7,4 @@
|
|
|
7
7
|
* in the renderer.
|
|
8
8
|
*/
|
|
9
9
|
export {};
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWNvbXBvbmVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvbW9kZWxzL3JlcG9ydC1jb21wb25lbnQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVwb3J0IGNvbXBvbmVudCBkZWZpbml0aW9uIOKAlCB0aGUgbWV0YWRhdGEgZm9yIGEgc2luZ2xlIFVJIGVsZW1lbnRcbiAqIHRoYXQgYXBwZWFycyBvbiBhIHJlcG9ydCBwYWdlLlxuICpcbiAqIFRoZSBgdHlwZWAgZmllbGQgaXMgdGhlIHJlZ2lzdHJ5IGtleSB1c2VkIHRvIHJlc29sdmUgdGhlIEFuZ3VsYXIgY29tcG9uZW50XG4gKiBhdCBydW50aW1lIHZpYSBgQ29tcG9uZW50UmVnaXN0cnlgLiBUaGlzIGF2b2lkcyBoYXJkLWNvZGluZyBjb21wb25lbnQgdHlwZXNcbiAqIGluIHRoZSByZW5kZXJlci5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnRMYXlvdXREZWZpbml0aW9uIH0gZnJvbSAnLi9yZXBvcnQtbGF5b3V0Lm1vZGVsJztcbmltcG9ydCB7IFZhbGlkYXRpb25EZWZpbml0aW9uIH0gZnJvbSAnLi92YWxpZGF0aW9uLm1vZGVsJztcbmltcG9ydCB7IENvbXBvbmVudEV2ZW50RGVmaW5pdGlvbiB9IGZyb20gJy4vY29tcG9uZW50LWV2ZW50Lm1vZGVsJztcblxuLyoqXG4gKiBCaW5kaW5nIGNvbmZpZ3VyYXRpb24gZm9yIGNvbm5lY3RpbmcgYSBjb21wb25lbnQgdG8gYSBkYXRhIHNvdXJjZSBvciBwYXJhbWV0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50QmluZGluZ0RlZmluaXRpb24ge1xuICAvKiogVGhlIGRhdGEgc291cmNlIElEIHRoaXMgY29tcG9uZW50IHJlYWRzIGZyb20uICovXG4gIGRhdGFTb3VyY2VJZD86IHN0cmluZztcblxuICAvKiogVGhlIGZpZWxkIHdpdGhpbiB0aGUgZGF0YSBzb3VyY2UgdG8gYmluZCB0byAoZm9yIGRpc3BsYXkgY29tcG9uZW50cykuICovXG4gIGZpZWxkPzogc3RyaW5nO1xuXG4gIC8qKiBUaGUgcGFyYW1ldGVyIGtleSB0aGlzIGNvbXBvbmVudCB3cml0ZXMgdG8gKGZvciBpbnB1dCBjb21wb25lbnRzKS4gKi9cbiAgcGFyYW1ldGVyS2V5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBEcm9wZG93blNvdXJjZVR5cGUgPSAnc3RhdGljJyB8ICd0YWJsZScgfCAncHJvY2VkdXJlJyB8ICdtYXN0ZXInIHwgJ2FwaSc7XG5cbi8qKlxuICogRGF0YSBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgY29tcG9uZW50cyB0aGF0IGxvYWQgdGhlaXIgb3duIGRhdGFcbiAqIChlLmcuLCBkcm9wZG93bnMgbG9hZGluZyBvcHRpb25zIGZyb20gZGF0YWJhc2UgdGFibGVzLCBzdG9yZWQgcHJvY2VkdXJlcywgbWFzdGVyIGRhdGEsIG9yIFJFU1QgQVBJcykuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50RGF0YVNvdXJjZURlZmluaXRpb24ge1xuICAvKiogU291cmNlIHR5cGU6ICdzdGF0aWMnIHwgJ3RhYmxlJyB8ICdwcm9jZWR1cmUnIHwgJ21hc3RlcicgfCAnYXBpJyAqL1xuICBzb3VyY2VUeXBlPzogRHJvcGRvd25Tb3VyY2VUeXBlO1xuXG4gIC8qKiBEYXRhYmFzZSBzY2hlbWEsIGUuZy4gJ2RibycgKGRlZmF1bHRzIHRvICdkYm8nKS4gKi9cbiAgc2NoZW1hPzogc3RyaW5nO1xuXG4gIC8qKiBEYXRhYmFzZSB0YWJsZSwgdmlldywgb3Igc3RvcmVkIHByb2NlZHVyZSBuYW1lIChlLmcuICdDdXN0b21lcnMnIG9yICd1c3BfR2V0QnJhbmNoZXMnKS4gKi9cbiAgZW50aXR5TmFtZT86IHN0cmluZztcblxuICAvKiogTWFzdGVyIGRhdGEgbmFtZSBmb3IgbGVnYWN5IG1hc3RlciBkYXRhIHByb3ZpZGVyIHJlc29sdXRpb24uICovXG4gIG1hc3Rlck5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqIERpc3BsYXkgZmllbGQgbmFtZSBpbiB0aGUgcmV0dXJuZWQgZGF0YSBpdGVtcyAoZS5nLiAnQ3VzdG9tZXJOYW1lJykuICovXG4gIGRpc3BsYXlGaWVsZD86IHN0cmluZztcblxuICAvKiogVmFsdWUgZmllbGQgbmFtZSBpbiB0aGUgcmV0dXJuZWQgZGF0YSBpdGVtcyAoZS5nLiAnQ3VzdG9tZXJJRCcpLiAqL1xuICB2YWx1ZUZpZWxkPzogc3RyaW5nO1xuXG4gIC8qKiBPcHRpb25hbCBzdGF0aWMgZmlsdGVyIHBhcmFtZXRlcnMgKGUuZy4geyBpc0FjdGl2ZTogMSB9KS4gKi9cbiAgZmlsdGVyPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIFBhcmFtZXRlciBtYXBwaW5ncyAoZS5nLiB7ICdAQnJhbmNoSWQnOiAne3ticmFuY2hTZWxlY3R9fScsICdAQWN0aXZlT25seSc6IHRydWUgfSkuICovXG4gIHBhcmFtZXRlck1hcHBpbmdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj47XG5cbiAgLyoqIEtleXMgb2Ygb3RoZXIgZm9ybSBjb21wb25lbnRzIHdob3NlIHZhbHVlcyB0aGlzIGRhdGEgc291cmNlIGRlcGVuZHMgb24gKGZvciBDYXNjYWRpbmcgRHJvcGRvd25zKS4gKi9cbiAgZGVwZW5kc09uPzogc3RyaW5nW107XG5cbiAgLyoqIENhY2hlIHRpbWUtdG8tbGl2ZSBpbiBzZWNvbmRzIChkZWZhdWx0IDMwMHMpLiAqL1xuICBjYWNoZVR0bD86IG51bWJlcjtcblxuICAvLyDilIDilIDilIAgQVBJIERhdGEgU291cmNlIFByb3BlcnRpZXMg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4gIC8qKiBSZWdpc3RlcmVkIEFQSSBlbmRwb2ludCBJRCBvciByYXcgVVJMIHBhdGggKGUuZy4gJ2FwaS1jdXN0b21lcnMnIG9yICcvYXBpL3YxL2N1c3RvbWVycycpICovXG4gIGFwaUVuZHBvaW50Pzogc3RyaW5nO1xuXG4gIC8qKiBIVFRQIG1ldGhvZCB0byB1c2UgKGRlZmF1bHRzIHRvICdHRVQnKSAqL1xuICBhcGlNZXRob2Q/OiAnR0VUJyB8ICdQT1NUJztcblxuICAvKiogRG90LW5vdGF0aW9uIHBhdGggdG8gdGhlIGFycmF5IG9mIGl0ZW1zIGluIHRoZSByZXNwb25zZSBKU09OIChlLmcuICdkYXRhLml0ZW1zJyBvciAncm93cycpICovXG4gIGRhdGFQYXRoPzogc3RyaW5nO1xuXG4gIC8qKiBDdXN0b20gcXVlcnkgcGFyYW1ldGVycyBvciBwYXlsb2FkIG1hcHBpbmdzIGZvciB0aGUgQVBJIHJlcXVlc3QgKi9cbiAgYXBpUGFyYW1zPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIE9wdGlvbmFsIGN1c3RvbSBoZWFkZXJzIChlLmcuIHsgJ1gtQ3VzdG9tLVRlbmFudCc6ICd7e3Nlc3Npb24udGVuYW50SWR9fScgfSkgKi9cbiAgYXBpSGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgLyoqIFdoZXRoZXIgcmVxdWVzdCBzaG91bGQgYmUgcHJveGllZCB2aWEgYmFja2VuZCByZXBvcnRpbmcgZ2F0ZXdheSAqL1xuICB1c2VQcm94eT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQ29udHJvbHMgd2hlbiBhIGNvbXBvbmVudCBpcyB2aXNpYmxlIGJhc2VkIG9uIG90aGVyIGNvbXBvbmVudCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVmlzaWJpbGl0eURlZmluaXRpb24ge1xuICAvKiogVGhlIGNvbXBvbmVudCBrZXkgd2hvc2UgdmFsdWUgZGV0ZXJtaW5lcyB2aXNpYmlsaXR5LiAqL1xuICBkZXBlbmRzT246IHN0cmluZztcblxuICAvKiogVGhlIG9wZXJhdG9yIGZvciB0aGUgY29uZGl0aW9uLiAqL1xuICBvcGVyYXRvcjogJ2VxdWFscycgfCAnbm90RXF1YWxzJyB8ICdjb250YWlucycgfCAnZ3JlYXRlclRoYW4nIHwgJ2xlc3NUaGFuJyB8ICdpc05vdEVtcHR5JyB8ICdpc0VtcHR5JztcblxuICAvKiogVGhlIHZhbHVlIHRvIGNvbXBhcmUgYWdhaW5zdC4gKi9cbiAgdmFsdWU/OiB1bmtub3duO1xufVxuXG4vKipcbiAqIEZ1bGwgbWV0YWRhdGEgZGVmaW5pdGlvbiBmb3IgYSBzaW5nbGUgY29tcG9uZW50IG9uIGEgcmVwb3J0IHBhZ2UuXG4gKlxuICogVGhpcyBpcyB0aGUgY29yZSBidWlsZGluZyBibG9jayBvZiBhIGBSZXBvcnREZWZpbml0aW9uYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnRDb21wb25lbnREZWZpbml0aW9uIHtcbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGNvbXBvbmVudCBpbnN0YW5jZS4gKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKiogUmVnaXN0cnkga2V5IOKAlCBtYXBzIHRvIGFuIEFuZ3VsYXIgY29tcG9uZW50IHZpYSBgQ29tcG9uZW50UmVnaXN0cnlgLiAqL1xuICB0eXBlOiBzdHJpbmc7XG5cbiAgLyoqIEZvcm0gY29udHJvbCBrZXkgLyBwYXJhbWV0ZXIgYmluZGluZyBuYW1lLiAqL1xuICBrZXk/OiBzdHJpbmc7XG5cbiAgLyoqIERpc3BsYXkgbGFiZWwgKG9yIHRyYW5zbGF0aW9uIGtleSkuICovXG4gIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKiBSZW5kZXIgb3JkZXIgKGxvd2VyID0gZmlyc3QpLiAqL1xuICBvcmRlcj86IG51bWJlcjtcblxuICAvKiogUG9zaXRpb24gd2l0aGluIHRoZSByZXBvcnQgbGF5b3V0IGdyaWQuICovXG4gIGxheW91dD86IENvbXBvbmVudExheW91dERlZmluaXRpb247XG5cbiAgLyoqIENvbXBvbmVudC1zcGVjaWZpYyBjb25maWd1cmF0aW9uIChlLmcuLCBwbGFjZWhvbGRlciwgZm9ybWF0LCBvcHRpb25zKS4gKi9cbiAgcHJvcGVydGllcz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG4gIC8qKiBEYXRhIGJpbmRpbmcgY29uZmlndXJhdGlvbi4gKi9cbiAgYmluZGluZz86IENvbXBvbmVudEJpbmRpbmdEZWZpbml0aW9uO1xuXG4gIC8qKiBWYWxpZGF0aW9uIHJ1bGVzLiAqL1xuICB2YWxpZGF0aW9uPzogVmFsaWRhdGlvbkRlZmluaXRpb247XG5cbiAgLyoqIERhdGEgc291cmNlIGZvciB0aGlzIGNvbXBvbmVudCdzIG9wdGlvbnMvZGF0YS4gKi9cbiAgZGF0YVNvdXJjZT86IENvbXBvbmVudERhdGFTb3VyY2VEZWZpbml0aW9uO1xuXG4gIC8qKiBFdmVudCDihpIgYWN0aW9uIGJpbmRpbmdzLiAqL1xuICBldmVudHM/OiBDb21wb25lbnRFdmVudERlZmluaXRpb25bXTtcblxuICAvKiogQ29uZGl0aW9uYWwgdmlzaWJpbGl0eSBydWxlcy4gKi9cbiAgdmlzaWJpbGl0eT86IFZpc2liaWxpdHlEZWZpbml0aW9uO1xuXG4gIC8qKiBXaGV0aGVyIHRoaXMgY29tcG9uZW50IGlzIGVuYWJsZWQuIERlZmF1bHRzIHRvIGB0cnVlYC4gKi9cbiAgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqIENTUyBjbGFzcyBuYW1lcyB0byBhZGQgdG8gdGhlIGNvbXBvbmVudCB3cmFwcGVyLiAqL1xuICBjc3NDbGFzcz86IHN0cmluZztcbn1cbiJdfQ==
|
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* `ReportDataSourceAdapter` contract.
|
|
7
7
|
*/
|
|
8
8
|
export {};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRhdGFzb3VyY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL21vZGVscy9yZXBvcnQtZGF0YXNvdXJjZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcG9ydCBkYXRhIHNvdXJjZSBkZWZpbml0aW9ucy5cbiAqXG4gKiBBIGRhdGEgc291cmNlIGRlc2NyaWJlcyBob3cgdG8gZmV0Y2ggZGF0YSBmb3IgdGhlIHJlcG9ydCdzIHJlc3VsdCBncmlkLlxuICogVGhlIGFjdHVhbCBmZXRjaGluZyBpcyBkb25lIGJ5IHRoZSBob3N0IGFwcGxpY2F0aW9uIHRocm91Z2ggdGhlXG4gKiBgUmVwb3J0RGF0YVNvdXJjZUFkYXB0ZXJgIGNvbnRyYWN0LlxuICovXG5cbi8qKlxuICogRGVmaW5lcyBhIHNpbmdsZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHJlcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbiB7XG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBkYXRhIHNvdXJjZS4gKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKiogSHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIGRhdGEgc291cmNlLiAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIEVuZHBvaW50IGlkZW50aWZpZXIsIHN0b3JlZCBwcm9jZWR1cmUgbmFtZSwgb3IgcXVlcnkgcmVmZXJlbmNlLiAqL1xuICBlbmRwb2ludDogc3RyaW5nO1xuXG4gIC8qKiBIVFRQIG1ldGhvZCBvciBleGVjdXRpb24gbWV0aG9kIGhpbnQuICovXG4gIG1ldGhvZD86ICdHRVQnIHwgJ1BPU1QnIHwgJ1NUT1JFRF9QUk9DRURVUkUnIHwgJ0NVU1RPTSc7XG5cbiAgLyoqIERhdGFiYXNlIHNjaGVtYSAoZGVmYXVsdHMgdG8gJ2RibycpLiAqL1xuICBzY2hlbWE/OiBzdHJpbmc7XG5cbiAgLyoqIEJhY2tlbmQgZXhlY3V0aW9uIHR5cGUuICovXG4gIHR5cGU/
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWRhdGFzb3VyY2UubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL21vZGVscy9yZXBvcnQtZGF0YXNvdXJjZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcG9ydCBkYXRhIHNvdXJjZSBkZWZpbml0aW9ucy5cbiAqXG4gKiBBIGRhdGEgc291cmNlIGRlc2NyaWJlcyBob3cgdG8gZmV0Y2ggZGF0YSBmb3IgdGhlIHJlcG9ydCdzIHJlc3VsdCBncmlkLlxuICogVGhlIGFjdHVhbCBmZXRjaGluZyBpcyBkb25lIGJ5IHRoZSBob3N0IGFwcGxpY2F0aW9uIHRocm91Z2ggdGhlXG4gKiBgUmVwb3J0RGF0YVNvdXJjZUFkYXB0ZXJgIGNvbnRyYWN0LlxuICovXG5cbi8qKlxuICogRGVmaW5lcyBhIHNpbmdsZSBkYXRhIHNvdXJjZSBmb3IgdGhlIHJlcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXBvcnREYXRhU291cmNlRGVmaW5pdGlvbiB7XG4gIC8qKiBVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBkYXRhIHNvdXJjZS4gKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKiogSHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIGRhdGEgc291cmNlLiAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqIEVuZHBvaW50IGlkZW50aWZpZXIsIHN0b3JlZCBwcm9jZWR1cmUgbmFtZSwgb3IgcXVlcnkgcmVmZXJlbmNlLiAqL1xuICBlbmRwb2ludDogc3RyaW5nO1xuXG4gIC8qKiBIVFRQIG1ldGhvZCBvciBleGVjdXRpb24gbWV0aG9kIGhpbnQuICovXG4gIG1ldGhvZD86ICdHRVQnIHwgJ1BPU1QnIHwgJ1NUT1JFRF9QUk9DRURVUkUnIHwgJ0NVU1RPTSc7XG5cbiAgLyoqIERhdGFiYXNlIHNjaGVtYSAoZGVmYXVsdHMgdG8gJ2RibycpLiAqL1xuICBzY2hlbWE/OiBzdHJpbmc7XG5cbiAgLyoqIEJhY2tlbmQgZXhlY3V0aW9uIHR5cGUuICovXG4gIHR5cGU/OiAnc3RvcmVkX3Byb2NlZHVyZScgfCAndGFibGUnIHwgJ3ZpZXcnIHwgJ3NxbCcgfCAnYXBpJyB8IHN0cmluZztcblxuICAvKipcbiAgICogUGFyYW1ldGVyIG1hcHBpbmdzLiBWYWx1ZXMgbWF5IGJlIGZpeGVkLCBvciB0b2tlbnM6XG4gICAqIGB7e3Nlc3Npb24uYnJhbmNoSWR9fWAsIGB7e2NvbnRleHQudG9kYXl9fWAsIGB7e2ZpZWxkS2V5fX1gIChjYW52YXMgZmllbGQpLlxuICAgKi9cbiAgcGFyYW1ldGVyTWFwcGluZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuPjtcblxuICAvKipcbiAgICogUGFyYW1ldGVyIGtleXMgdGhhdCB0aGlzIGRhdGEgc291cmNlIHJlcXVpcmVzLlxuICAgKiBUaGVzZSBhcmUgcmVzb2x2ZWQgZnJvbSB0aGUgcmVwb3J0J3MgY3VycmVudCBwYXJhbWV0ZXIgdmFsdWVzXG4gICAqIGJlZm9yZSBjYWxsaW5nIHRoZSBgUmVwb3J0RGF0YVNvdXJjZUFkYXB0ZXJgLlxuICAgKi9cbiAgcGFyYW1ldGVyS2V5cz86IHN0cmluZ1tdO1xuXG4gIC8qKiBXaGV0aGVyIHRvIGF1dG9tYXRpY2FsbHkgZXhlY3V0ZSB0aGlzIGRhdGEgc291cmNlIG9uIHJlcG9ydCBsb2FkLiAqL1xuICBhdXRvRXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqIENhY2hpbmcgc3RyYXRlZ3kuICovXG4gIGNhY2hlPzogRGF0YVNvdXJjZUNhY2hlRGVmaW5pdGlvbjtcblxuICAvLyDilIDilIDilIAgQVBJIEVuZHBvaW50IEV4ZWN1dGlvbiBNZXRhZGF0YSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbiAgLyoqIEJhc2UgVVJMIG92ZXJyaWRlIChpZiBjYWxsaW5nIGFuIGV4dGVybmFsIHNlcnZpY2Ugb3V0c2lkZSBhcGlCYXNlVXJsKSAqL1xuICBiYXNlVXJsPzogc3RyaW5nO1xuXG4gIC8qKiBEb3Qtbm90YXRpb24gcGF0aCB0byB0aGUgYXJyYXkgb2YgcmVjb3JkcyBpbiB0aGUgcmVzcG9uc2UgKGUuZy4gJ2RhdGEuaXRlbXMnIG9yICdyb3dzJykgKi9cbiAgZGF0YVBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqIERvdC1ub3RhdGlvbiBwYXRoIHRvIHRvdGFsIGNvdW50IGZvciBzZXJ2ZXItc2lkZSBwYWdpbmF0aW9uIChlLmcuICdyZXN1bHQudG90YWwnKSAqL1xuICB0b3RhbFBhdGg/OiBzdHJpbmc7XG5cbiAgLyoqIFBhcmFtZXRlciBwbGFjZW1lbnQ6ICdxdWVyeScgfCAnYm9keScgfCAnYXV0bycgKi9cbiAgcGFyYW1QbGFjZW1lbnQ/OiAncXVlcnknIHwgJ2JvZHknIHwgJ2F1dG8nO1xuXG4gIC8qKiBSZXF1ZXN0IGJvZHkgdGVtcGxhdGUgZm9yIFBPU1QgcmVxdWVzdHMgKi9cbiAgYm9keVRlbXBsYXRlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgLyoqIEN1c3RvbSBIVFRQIGhlYWRlcnMgdG8gaW5jbHVkZSB3aXRoIHRoZSBBUEkgcmVxdWVzdCAqL1xuICBoZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKiogV2hldGhlciB0byByb3V0ZSB0aHJvdWdoIHRoZSBiYWNrZW5kIHByb3h5IGdhdGV3YXkgKi9cbiAgdXNlUHJveHk/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENhY2hpbmcgY29uZmlndXJhdGlvbiBmb3IgYSBkYXRhIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU291cmNlQ2FjaGVEZWZpbml0aW9uIHtcbiAgLyoqIFdoZXRoZXIgY2FjaGluZyBpcyBlbmFibGVkIGZvciB0aGlzIGRhdGEgc291cmNlLiAqL1xuICBlbmFibGVkOiBib29sZWFuO1xuXG4gIC8qKiBDYWNoZSBkdXJhdGlvbiBpbiBzZWNvbmRzLiAqL1xuICB0dGxTZWNvbmRzPzogbnVtYmVyO1xufVxuIl19
|
|
@@ -2,4 +2,5 @@ export { DynamicFormBuilder } from './dynamic-form-builder.service';
|
|
|
2
2
|
export { ReportSessionContextService } from './report-session-context.service';
|
|
3
3
|
export { ReportStorageService } from './report-storage.service';
|
|
4
4
|
export { ReportDataDiscoveryService } from './report-data-discovery.service';
|
|
5
|
-
|
|
5
|
+
export { ReportApiExecutionService } from './report-api-execution.service';
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9id2F5cy1yZXBvcnQvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBSy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgRHluYW1pY0Zvcm1CdWlsZGVyIH0gZnJvbSAnLi9keW5hbWljLWZvcm0tYnVpbGRlci5zZXJ2aWNlJztcbmV4cG9ydCB7IFJlcG9ydFNlc3Npb25Db250ZXh0U2VydmljZSB9IGZyb20gJy4vcmVwb3J0LXNlc3Npb24tY29udGV4dC5zZXJ2aWNlJztcbmV4cG9ydCB0eXBlIHtcbiAgU2Vzc2lvblBhcmFtTWF0Y2gsXG4gIERlcml2ZWRQYXJhbWV0ZXJzUmVzdWx0LFxufSBmcm9tICcuL3JlcG9ydC1zZXNzaW9uLWNvbnRleHQuc2VydmljZSc7XG5leHBvcnQgeyBSZXBvcnRTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vcmVwb3J0LXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgeyBSZXBvcnREYXRhRGlzY292ZXJ5U2VydmljZSB9IGZyb20gJy4vcmVwb3J0LWRhdGEtZGlzY292ZXJ5LnNlcnZpY2UnO1xuZXhwb3J0IHsgUmVwb3J0QXBpRXhlY3V0aW9uU2VydmljZSB9IGZyb20gJy4vcmVwb3J0LWFwaS1leGVjdXRpb24uc2VydmljZSc7XG4iXX0=
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { inject, Injectable } from '@angular/core';
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { throwError } from 'rxjs';
|
|
4
|
+
import { catchError, map } from 'rxjs/operators';
|
|
5
|
+
import { ReportSessionContextService } from './report-session-context.service';
|
|
6
|
+
import { REPORTING_CONFIG } from '../tokens/reporting-config.token';
|
|
7
|
+
import { BWAYS_REPORT_ENDPOINTS } from '../../data-access/adapters/endpoint-tokens';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* Service responsible for executing API-based data retrieval requests.
|
|
11
|
+
*
|
|
12
|
+
* Supports URL path parameter interpolation (:id, {{id}}), query string parameter
|
|
13
|
+
* placement, JSON payload mapping, session header substitution, proxy routing,
|
|
14
|
+
* and dot-path response data extraction.
|
|
15
|
+
*/
|
|
16
|
+
export class ReportApiExecutionService {
|
|
17
|
+
http = inject(HttpClient, { optional: true });
|
|
18
|
+
session = inject(ReportSessionContextService, { optional: true });
|
|
19
|
+
reportingConfig = inject(REPORTING_CONFIG, { optional: true });
|
|
20
|
+
endpoints = inject(BWAYS_REPORT_ENDPOINTS, { optional: true });
|
|
21
|
+
getRegisteredEndpoints() {
|
|
22
|
+
return this.endpoints?.apiEndpoints || [];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Executes a parameterized REST API request and extracts the result array.
|
|
26
|
+
*
|
|
27
|
+
* @param options Target endpoint configuration, URL, method, and data path.
|
|
28
|
+
* @param formValues Active parameter and filter values from the form/context.
|
|
29
|
+
* @param customMappings Additional fixed or mapped parameter values.
|
|
30
|
+
*/
|
|
31
|
+
executeApi(options, formValues = {}, customMappings = {}) {
|
|
32
|
+
if (!this.http) {
|
|
33
|
+
return throwError(() => new Error('[ReportApiExecutionService] HttpClient is not provided in injector.'));
|
|
34
|
+
}
|
|
35
|
+
const rawUrl = options.url || options.endpoint;
|
|
36
|
+
if (!rawUrl || typeof rawUrl !== 'string' || rawUrl.trim() === '') {
|
|
37
|
+
return throwError(() => new Error('[ReportApiExecutionService] No valid URL or endpoint provided for API execution.'));
|
|
38
|
+
}
|
|
39
|
+
const sessionContext = this.session?.getCurrentSessionContext() ?? {};
|
|
40
|
+
const allValuesForPath = {
|
|
41
|
+
...sessionContext,
|
|
42
|
+
...formValues,
|
|
43
|
+
...customMappings,
|
|
44
|
+
};
|
|
45
|
+
// 1. Interpolate Path Variables: /api/orders/:orderId or /api/orders/{{orderId}}
|
|
46
|
+
const pathKeys = new Set();
|
|
47
|
+
let resolvedUrl = rawUrl.replace(/:([a-zA-Z0-9_]+)|\{\{([a-zA-Z0-9_]+)\}\}/g, (_, k1, k2) => {
|
|
48
|
+
const key = k1 || k2;
|
|
49
|
+
pathKeys.add(key);
|
|
50
|
+
const val = allValuesForPath[key];
|
|
51
|
+
return val !== undefined && val !== null ? encodeURIComponent(String(val)) : '';
|
|
52
|
+
});
|
|
53
|
+
const method = (options.method || 'GET').toUpperCase();
|
|
54
|
+
const queryParams = {};
|
|
55
|
+
const bodyPayload = { ...(options.bodyTemplate || {}) };
|
|
56
|
+
const payloadValues = {
|
|
57
|
+
...formValues,
|
|
58
|
+
...customMappings,
|
|
59
|
+
};
|
|
60
|
+
// 2. Separate remaining params into Query params and Body payload
|
|
61
|
+
for (const [k, v] of Object.entries(payloadValues)) {
|
|
62
|
+
if (pathKeys.has(k) || v === undefined || v === null || v === '')
|
|
63
|
+
continue;
|
|
64
|
+
if (method === 'GET') {
|
|
65
|
+
if (typeof v === 'object') {
|
|
66
|
+
queryParams[k] = JSON.stringify(v);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
queryParams[k] = String(v);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
bodyPayload[k] = v;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// 3. Resolve Headers with Token Interpolation & Standard Session Context
|
|
77
|
+
const headers = {};
|
|
78
|
+
if (sessionContext['companyId'] !== undefined && sessionContext['companyId'] !== null) {
|
|
79
|
+
headers['X-Company-Id'] = String(sessionContext['companyId']);
|
|
80
|
+
}
|
|
81
|
+
if (sessionContext['branchId'] !== undefined && sessionContext['branchId'] !== null) {
|
|
82
|
+
headers['X-Branch-Id'] = String(sessionContext['branchId']);
|
|
83
|
+
}
|
|
84
|
+
if (sessionContext['userId'] !== undefined && sessionContext['userId'] !== null) {
|
|
85
|
+
headers['X-User-Id'] = String(sessionContext['userId']);
|
|
86
|
+
}
|
|
87
|
+
if (sessionContext['token'] !== undefined && sessionContext['token'] !== null) {
|
|
88
|
+
headers['Authorization'] = `Bearer ${sessionContext['token']}`;
|
|
89
|
+
}
|
|
90
|
+
if (options.headers) {
|
|
91
|
+
for (const [hk, hv] of Object.entries(options.headers)) {
|
|
92
|
+
if (typeof hv === 'string') {
|
|
93
|
+
headers[hk] = hv.replace(/\{\{session\.([a-zA-Z0-9_]+)\}\}|\{\{([a-zA-Z0-9_]+)\}\}/g, (_, sk1, sk2) => {
|
|
94
|
+
const key = sk1 || sk2;
|
|
95
|
+
return sessionContext[key] !== undefined ? String(sessionContext[key]) : '';
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
headers[hk] = String(hv);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// 4. Determine Request: Direct vs. Backend Proxy Gateway
|
|
104
|
+
const useProxy = options.useProxy === true;
|
|
105
|
+
let request$;
|
|
106
|
+
if (useProxy) {
|
|
107
|
+
const proxyBase = this.endpoints?.apisEndpoint ||
|
|
108
|
+
(this.reportingConfig?.apiBaseUrl ? `${this.reportingConfig.apiBaseUrl}/apis` : '/api/reporting/apis');
|
|
109
|
+
const proxyUrl = `${proxyBase.replace(/\/+$/, '')}/proxy`;
|
|
110
|
+
request$ = this.http.post(proxyUrl, {
|
|
111
|
+
endpoint: resolvedUrl,
|
|
112
|
+
url: resolvedUrl,
|
|
113
|
+
method,
|
|
114
|
+
parameters: queryParams,
|
|
115
|
+
queryParams,
|
|
116
|
+
body: Object.keys(bodyPayload).length > 0 ? bodyPayload : undefined,
|
|
117
|
+
headers,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
if (method === 'GET') {
|
|
122
|
+
request$ = this.http.get(resolvedUrl, { params: queryParams, headers });
|
|
123
|
+
}
|
|
124
|
+
else if (method === 'POST') {
|
|
125
|
+
request$ = this.http.post(resolvedUrl, bodyPayload, { params: queryParams, headers });
|
|
126
|
+
}
|
|
127
|
+
else if (method === 'PUT') {
|
|
128
|
+
request$ = this.http.put(resolvedUrl, bodyPayload, { params: queryParams, headers });
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
request$ = this.http.request(method, resolvedUrl, {
|
|
132
|
+
body: bodyPayload,
|
|
133
|
+
params: queryParams,
|
|
134
|
+
headers,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
// 5. Extract & Normalize Target Data Array
|
|
139
|
+
return request$.pipe(map((response) => this.extractDataArray(response, options.dataPath)), catchError((err) => {
|
|
140
|
+
console.error(`[ReportApiExecutionService] API execution error [${method} ${resolvedUrl}]:`, err);
|
|
141
|
+
const message = err?.error?.message ||
|
|
142
|
+
err?.message ||
|
|
143
|
+
`API request failed with status ${err?.status || 'unknown'}`;
|
|
144
|
+
return throwError(() => new Error(message));
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Dot-notation extractor: 'data.items' -> response.data.items
|
|
149
|
+
*/
|
|
150
|
+
extractDataArray(response, dataPath) {
|
|
151
|
+
if (!response)
|
|
152
|
+
return [];
|
|
153
|
+
if (Array.isArray(response))
|
|
154
|
+
return response;
|
|
155
|
+
if (dataPath && typeof dataPath === 'string' && dataPath.trim() !== '') {
|
|
156
|
+
const parts = dataPath.trim().split('.');
|
|
157
|
+
let current = response;
|
|
158
|
+
for (const part of parts) {
|
|
159
|
+
if (current && typeof current === 'object' && part in current) {
|
|
160
|
+
current = current[part];
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
current = null;
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
if (Array.isArray(current))
|
|
168
|
+
return current;
|
|
169
|
+
}
|
|
170
|
+
// Auto-detect common response collection containers
|
|
171
|
+
for (const key of ['data', 'items', 'rows', 'records', 'results', 'result']) {
|
|
172
|
+
if (Array.isArray(response[key]))
|
|
173
|
+
return response[key];
|
|
174
|
+
}
|
|
175
|
+
// If single object returned, wrap in array for grid display
|
|
176
|
+
if (typeof response === 'object' && response !== null) {
|
|
177
|
+
return [response];
|
|
178
|
+
}
|
|
179
|
+
return [];
|
|
180
|
+
}
|
|
181
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportApiExecutionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
182
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportApiExecutionService, providedIn: 'root' });
|
|
183
|
+
}
|
|
184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ReportApiExecutionService, decorators: [{
|
|
185
|
+
type: Injectable,
|
|
186
|
+
args: [{ providedIn: 'root' }]
|
|
187
|
+
}] });
|
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LWFwaS1leGVjdXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J3YXlzLXJlcG9ydC9zcmMvbGliL2NvcmUvc2VydmljZXMvcmVwb3J0LWFwaS1leGVjdXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBbUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsc0JBQXNCLEVBQXdCLE1BQU0sNENBQTRDLENBQUM7O0FBYzFHOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFDbkIsSUFBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxPQUFPLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEUsZUFBZSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBMkIsQ0FBQztJQUN6RixTQUFTLEdBQUcsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFnQyxDQUFDO0lBRS9HLHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUs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Q0FBQztZQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQUUsT0FBTyxPQUFPLENBQUM7UUFDN0MsQ0FBQztRQUVELG9EQUFvRDtRQUNwRCxLQUFLLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQUUsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsQ0FBQztRQUVELDREQUE0RDtRQUM1RCxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdEQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7d0dBcExVLHlCQUF5Qjs0R0FBekIseUJBQXlCLGNBRFosTUFBTTs7NEZBQ25CLHlCQUF5QjtrQkFEckMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSZXBvcnRTZXNzaW9uQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL3JlcG9ydC1zZXNzaW9uLWNvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBSRVBPUlRJTkdfQ09ORklHLCBSZXBvcnRpbmdDb25maWcgfSBmcm9tICcuLi90b2tlbnMvcmVwb3J0aW5nLWNvbmZpZy50b2tlbic7XG5pbXBvcnQgeyBCV0FZU19SRVBPUlRfRU5EUE9JTlRTLCBCd2F5c1JlcG9ydEVuZHBvaW50cyB9IGZyb20gJy4uLy4uL2RhdGEtYWNjZXNzL2FkYXB0ZXJzL2VuZHBvaW50LXRva2Vucyc7XG5pbXBvcnQgeyBSZXBvcnRBcGlFbmRwb2ludERlZmluaXRpb24gfSBmcm9tICcuLi9tb2RlbHMvcmVwb3J0LWFwaS1lbmRwb2ludC5tb2RlbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBpRXhlY3V0aW9uT3B0aW9ucyB7XG4gIHVybD86IHN0cmluZztcbiAgZW5kcG9pbnQ/OiBzdHJpbmc7XG4gIG1ldGhvZD86IHN0cmluZztcbiAgZGF0YVBhdGg/OiBzdHJpbmc7XG4gIHRvdGFsUGF0aD86IHN0cmluZztcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHVzZVByb3h5PzogYm9vbGVhbjtcbiAgYm9keVRlbXBsYXRlPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogU2VydmljZSByZXNwb25zaWJsZSBmb3IgZXhlY3V0aW5nIEFQSS1iYXNlZCBkYXRhIHJldHJpZXZhbCByZXF1ZXN0cy5cbiAqXG4gKiBTdXBwb3J0cyBVUkwgcGF0aCBwYXJhbWV0ZXIgaW50ZXJwb2xhdGlvbiAoOmlkLCB7e2lkfX0pLCBxdWVyeSBzdHJpbmcgcGFyYW1ldGVyXG4gKiBwbGFjZW1lbnQsIEpTT04gcGF5bG9hZCBtYXBwaW5nLCBzZXNzaW9uIGhlYWRlciBzdWJzdGl0dXRpb24sIHByb3h5IHJvdXRpbmcsXG4gKiBhbmQgZG90LXBhdGggcmVzcG9uc2UgZGF0YSBleHRyYWN0aW9uLlxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlcG9ydEFwaUV4ZWN1dGlvblNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uID0gaW5qZWN0KFJlcG9ydFNlc3Npb25Db250ZXh0U2VydmljZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXBvcnRpbmdDb25maWcgPSBpbmplY3QoUkVQT1JUSU5HX0NPTkZJRywgeyBvcHRpb25hbDogdHJ1ZSB9KSBhcyBSZXBvcnRpbmdDb25maWcgfCBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IGVuZHBvaW50cyA9IGluamVjdChCV0FZU19SRVBPUlRfRU5EUE9JTlRTLCB7IG9wdGlvbmFsOiB0cnVlIH0pIGFzIEJ3YXlzUmVwb3J0RW5kcG9pbnRzIHwgbnVsbDtcblxuICBnZXRSZWdpc3RlcmVkRW5kcG9pbnRzKCk6IFJlcG9ydEFwaUVuZHBvaW50RGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5lbmRwb2ludHM/LmFwaUVuZHBvaW50cyB8fCBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlcyBhIHBhcmFtZXRlcml6ZWQgUkVTVCBBUEkgcmVxdWVzdCBhbmQgZXh0cmFjdHMgdGhlIHJlc3VsdCBhcnJheS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgVGFyZ2V0IGVuZHBvaW50IGNvbmZpZ3VyYXRpb24sIFVSTCwgbWV0aG9kLCBhbmQgZGF0YSBwYXRoLlxuICAgKiBAcGFyYW0gZm9ybVZhbHVlcyBBY3RpdmUgcGFyYW1ldGVyIGFuZCBmaWx0ZXIgdmFsdWVzIGZyb20gdGhlIGZvcm0vY29udGV4dC5cbiAgICogQHBhcmFtIGN1c3RvbU1hcHBpbmdzIEFkZGl0aW9uYWwgZml4ZWQgb3IgbWFwcGVkIHBhcmFtZXRlciB2YWx1ZXMuXG4gICAqL1xuICBleGVjdXRlQXBpKFxuICAgIG9wdGlvbnM6IEFwaUV4ZWN1dGlvbk9wdGlvbnMgfCBQYXJ0aWFsPFJlcG9ydEFwaUVuZHBvaW50RGVmaW5pdGlvbj4sXG4gICAgZm9ybVZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbiAgICBjdXN0b21NYXBwaW5nczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fVxuICApOiBPYnNlcnZhYmxlPHVua25vd25bXT4ge1xuICAgIGlmICghdGhpcy5odHRwKSB7XG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBuZXcgRXJyb3IoJ1tSZXBvcnRBcGlFeGVjdXRpb25TZXJ2aWNlXSBIdHRwQ2xpZW50IGlzIG5vdCBwcm92aWRlZCBpbiBpbmplY3Rvci4nKSk7XG4gICAgfVxuXG4gICAgY29uc3QgcmF3VXJsID0gb3B0aW9ucy51cmwgfHwgb3B0aW9ucy5lbmRwb2ludDtcbiAgICBpZiAoIXJhd1VybCB8fCB0eXBlb2YgcmF3VXJsICE9PSAnc3RyaW5nJyB8fCByYXdVcmwudHJpbSgpID09PSAnJykge1xuICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gbmV3IEVycm9yKCdbUmVwb3J0QXBpRXhlY3V0aW9uU2VydmljZV0gTm8gdmFsaWQgVVJMIG9yIGVuZHBvaW50IHByb3ZpZGVkIGZvciBBUEkgZXhlY3V0aW9uLicpKTtcbiAgICB9XG5cbiAgICBjb25zdCBzZXNzaW9uQ29udGV4dCA9IHRoaXMuc2Vzc2lvbj8uZ2V0Q3VycmVudFNlc3Npb25Db250ZXh0KCkgPz8ge307XG4gICAgY29uc3QgYWxsVmFsdWVzRm9yUGF0aDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgICAuLi5zZXNzaW9uQ29udGV4dCxcbiAgICAgIC4uLmZvcm1WYWx1ZXMsXG4gICAgICAuLi5jdXN0b21NYXBwaW5ncyxcbiAgICB9O1xuXG4gICAgLy8gMS4gSW50ZXJwb2xhdGUgUGF0aCBWYXJpYWJsZXM6IC9hcGkvb3JkZXJzLzpvcmRlcklkIG9yIC9hcGkvb3JkZXJzL3t7b3JkZXJJZH19XG4gICAgY29uc3QgcGF0aEtleXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBsZXQgcmVzb2x2ZWRVcmwgPSByYXdVcmwucmVwbGFjZSgvOihbYS16QS1aMC05X10rKXxcXHtcXHsoW2EtekEtWjAtOV9dKylcXH1cXH0vZywgKF8sIGsxLCBrMikgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gazEgfHwgazI7XG4gICAgICBwYXRoS2V5cy5hZGQoa2V5KTtcbiAgICAgIGNvbnN0IHZhbCA9IGFsbFZhbHVlc0ZvclBhdGhba2V5XTtcbiAgICAgIHJldHVybiB2YWwgIT09IHVuZGVmaW5lZCAmJiB2YWwgIT09IG51bGwgPyBlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKHZhbCkpIDogJyc7XG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXRob2QgPSAob3B0aW9ucy5tZXRob2QgfHwgJ0dFVCcpLnRvVXBwZXJDYXNlKCk7XG4gICAgY29uc3QgcXVlcnlQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBjb25zdCBib2R5UGF5bG9hZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLigob3B0aW9ucyBhcyBhbnkpLmJvZHlUZW1wbGF0ZSB8fCB7fSkgfTtcblxuICAgIGNvbnN0IHBheWxvYWRWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgICAgLi4uZm9ybVZhbHVlcyxcbiAgICAgIC4uLmN1c3RvbU1hcHBpbmdzLFxuICAgIH07XG5cbiAgICAvLyAyLiBTZXBhcmF0ZSByZW1haW5pbmcgcGFyYW1zIGludG8gUXVlcnkgcGFyYW1zIGFuZCBCb2R5IHBheWxvYWRcbiAgICBmb3IgKGNvbnN0IFtrLCB2XSBvZiBPYmplY3QuZW50cmllcyhwYXlsb2FkVmFsdWVzKSkge1xuICAgICAgaWYgKHBhdGhLZXlzLmhhcyhrKSB8fCB2ID09PSB1bmRlZmluZWQgfHwgdiA9PT0gbnVsbCB8fCB2ID09PSAnJykgY29udGludWU7XG5cbiAgICAgIGlmIChtZXRob2QgPT09ICdHRVQnKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdiA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBxdWVyeVBhcmFtc1trXSA9IEpTT04uc3RyaW5naWZ5KHYpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHF1ZXJ5UGFyYW1zW2tdID0gU3RyaW5nKHYpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBib2R5UGF5bG9hZFtrXSA9IHY7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gMy4gUmVzb2x2ZSBIZWFkZXJzIHdpdGggVG9rZW4gSW50ZXJwb2xhdGlvbiAmIFN0YW5kYXJkIFNlc3Npb24gQ29udGV4dFxuICAgIGNvbnN0IGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcbiAgICBpZiAoc2Vzc2lvbkNvbnRleHRbJ2NvbXBhbnlJZCddICE9PSB1bmRlZmluZWQgJiYgc2Vzc2lvbkNvbnRleHRbJ2NvbXBhbnlJZCddICE9PSBudWxsKSB7XG4gICAgICBoZWFkZXJzWydYLUNvbXBhbnktSWQnXSA9IFN0cmluZyhzZXNzaW9uQ29udGV4dFsnY29tcGFueUlkJ10pO1xuICAgIH1cbiAgICBpZiAoc2Vzc2lvbkNvbnRleHRbJ2JyYW5jaElkJ10gIT09IHVuZGVmaW5lZCAmJiBzZXNzaW9uQ29udGV4dFsnYnJhbmNoSWQnXSAhPT0gbnVsbCkge1xuICAgICAgaGVhZGVyc1snWC1CcmFuY2gtSWQnXSA9IFN0cmluZyhzZXNzaW9uQ29udGV4dFsnYnJhbmNoSWQnXSk7XG4gICAgfVxuICAgIGlmIChzZXNzaW9uQ29udGV4dFsndXNlcklkJ10gIT09IHVuZGVmaW5lZCAmJiBzZXNzaW9uQ29udGV4dFsndXNlcklkJ10gIT09IG51bGwpIHtcbiAgICAgIGhlYWRlcnNbJ1gtVXNlci1JZCddID0gU3RyaW5nKHNlc3Npb25Db250ZXh0Wyd1c2VySWQnXSk7XG4gICAgfVxuICAgIGlmIChzZXNzaW9uQ29udGV4dFsndG9rZW4nXSAhPT0gdW5kZWZpbmVkICYmIHNlc3Npb25Db250ZXh0Wyd0b2tlbiddICE9PSBudWxsKSB7XG4gICAgICBoZWFkZXJzWydBdXRob3JpemF0aW9uJ10gPSBgQmVhcmVyICR7c2Vzc2lvbkNvbnRleHRbJ3Rva2VuJ119YDtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5oZWFkZXJzKSB7XG4gICAgICBmb3IgKGNvbnN0IFtoaywgaHZdIG9mIE9iamVjdC5lbnRyaWVzKG9wdGlvbnMuaGVhZGVycykpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBodiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICBoZWFkZXJzW2hrXSA9IGh2LnJlcGxhY2UoL1xce1xce3Nlc3Npb25cXC4oW2EtekEtWjAtOV9dKylcXH1cXH18XFx7XFx7KFthLXpBLVowLTlfXSspXFx9XFx9L2csIChfLCBzazEsIHNrMikgPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gc2sxIHx8IHNrMjtcbiAgICAgICAgICAgIHJldHVybiBzZXNzaW9uQ29udGV4dFtrZXldICE9PSB1bmRlZmluZWQgPyBTdHJpbmcoc2Vzc2lvbkNvbnRleHRba2V5XSkgOiAnJztcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoZWFkZXJzW2hrXSA9IFN0cmluZyhodik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyA0LiBEZXRlcm1pbmUgUmVxdWVzdDogRGlyZWN0IHZzLiBCYWNrZW5kIFByb3h5IEdhdGV3YXlcbiAgICBjb25zdCB1c2VQcm94eSA9IG9wdGlvbnMudXNlUHJveHkgPT09IHRydWU7XG4gICAgbGV0IHJlcXVlc3QkOiBPYnNlcnZhYmxlPHVua25vd24+O1xuXG4gICAgaWYgKHVzZVByb3h5KSB7XG4gICAgICBjb25zdCBwcm94eUJhc2UgPVxuICAgICAgICB0aGlzLmVuZHBvaW50cz8uYXBpc0VuZHBvaW50IHx8XG4gICAgICAgICh0aGlzLnJlcG9ydGluZ0NvbmZpZz8uYXBpQmFzZVVybCA/IGAke3RoaXMucmVwb3J0aW5nQ29uZmlnLmFwaUJhc2VVcmx9L2FwaXNgIDogJy9hcGkvcmVwb3J0aW5nL2FwaXMnKTtcbiAgICAgIGNvbnN0IHByb3h5VXJsID0gYCR7cHJveHlCYXNlLnJlcGxhY2UoL1xcLyskLywgJycpfS9wcm94eWA7XG5cbiAgICAgIHJlcXVlc3QkID0gdGhpcy5odHRwLnBvc3Q8dW5rbm93bj4ocHJveHlVcmwsIHtcbiAgICAgICAgZW5kcG9pbnQ6IHJlc29sdmVkVXJsLFxuICAgICAgICB1cmw6IHJlc29sdmVkVXJsLFxuICAgICAgICBtZXRob2QsXG4gICAgICAgIHBhcmFtZXRlcnM6IHF1ZXJ5UGFyYW1zLFxuICAgICAgICBxdWVyeVBhcmFtcyxcbiAgICAgICAgYm9keTogT2JqZWN0LmtleXMoYm9keVBheWxvYWQpLmxlbmd0aCA+IDAgPyBib2R5UGF5bG9hZCA6IHVuZGVmaW5lZCxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAobWV0aG9kID09PSAnR0VUJykge1xuICAgICAgICByZXF1ZXN0JCA9IHRoaXMuaHR0cC5nZXQ8dW5rbm93bj4ocmVzb2x2ZWRVcmwsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcywgaGVhZGVycyB9KTtcbiAgICAgIH0gZWxzZSBpZiAobWV0aG9kID09PSAnUE9TVCcpIHtcbiAgICAgICAgcmVxdWVzdCQgPSB0aGlzLmh0dHAucG9zdDx1bmtub3duPihyZXNvbHZlZFVybCwgYm9keVBheWxvYWQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcywgaGVhZGVycyB9KTtcbiAgICAgIH0gZWxzZSBpZiAobWV0aG9kID09PSAnUFVUJykge1xuICAgICAgICByZXF1ZXN0JCA9IHRoaXMuaHR0cC5wdXQ8dW5rbm93bj4ocmVzb2x2ZWRVcmwsIGJvZHlQYXlsb2FkLCB7IHBhcmFtczogcXVlcnlQYXJhbXMsIGhlYWRlcnMgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXF1ZXN0JCA9IHRoaXMuaHR0cC5yZXF1ZXN0PHVua25vd24+KG1ldGhvZCwgcmVzb2x2ZWRVcmwsIHtcbiAgICAgICAgICBib2R5OiBib2R5UGF5bG9hZCxcbiAgICAgICAgICBwYXJhbXM6IHF1ZXJ5UGFyYW1zLFxuICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIDUuIEV4dHJhY3QgJiBOb3JtYWxpemUgVGFyZ2V0IERhdGEgQXJyYXlcbiAgICByZXR1cm4gcmVxdWVzdCQucGlwZShcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHRoaXMuZXh0cmFjdERhdGFBcnJheShyZXNwb25zZSwgb3B0aW9ucy5kYXRhUGF0aCkpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFtSZXBvcnRBcGlFeGVjdXRpb25TZXJ2aWNlXSBBUEkgZXhlY3V0aW9uIGVycm9yIFske21ldGhvZH0gJHtyZXNvbHZlZFVybH1dOmAsIGVycik7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPVxuICAgICAgICAgIGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHxcbiAgICAgICAgICBlcnI/Lm1lc3NhZ2UgfHxcbiAgICAgICAgICBgQVBJIHJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzICR7ZXJyPy5zdGF0dXMgfHwgJ3Vua25vd24nfWA7XG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IG5ldyBFcnJvcihtZXNzYWdlKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRG90LW5vdGF0aW9uIGV4dHJhY3RvcjogJ2RhdGEuaXRlbXMnIC0+IHJlc3BvbnNlLmRhdGEuaXRlbXNcbiAgICovXG4gIGV4dHJhY3REYXRhQXJyYXkocmVzcG9uc2U6IGFueSwgZGF0YVBhdGg/OiBzdHJpbmcpOiB1bmtub3duW10ge1xuICAgIGlmICghcmVzcG9uc2UpIHJldHVybiBbXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyZXNwb25zZSkpIHJldHVybiByZXNwb25zZTtcblxuICAgIGlmIChkYXRhUGF0aCAmJiB0eXBlb2YgZGF0YVBhdGggPT09ICdzdHJpbmcnICYmIGRhdGFQYXRoLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gZGF0YVBhdGgudHJpbSgpLnNwbGl0KCcuJyk7XG4gICAgICBsZXQgY3VycmVudDogYW55ID0gcmVzcG9uc2U7XG4gICAgICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICAgICAgaWYgKGN1cnJlbnQgJiYgdHlwZW9mIGN1cnJlbnQgPT09ICdvYmplY3QnICYmIHBhcnQgaW4gY3VycmVudCkge1xuICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W3BhcnRdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50KSkgcmV0dXJuIGN1cnJlbnQ7XG4gICAgfVxuXG4gICAgLy8gQXV0by1kZXRlY3QgY29tbW9uIHJlc3BvbnNlIGNvbGxlY3Rpb24gY29udGFpbmVyc1xuICAgIGZvciAoY29uc3Qga2V5IG9mIFsnZGF0YScsICdpdGVtcycsICdyb3dzJywgJ3JlY29yZHMnLCAncmVzdWx0cycsICdyZXN1bHQnXSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzcG9uc2Vba2V5XSkpIHJldHVybiByZXNwb25zZVtrZXldO1xuICAgIH1cblxuICAgIC8vIElmIHNpbmdsZSBvYmplY3QgcmV0dXJuZWQsIHdyYXAgaW4gYXJyYXkgZm9yIGdyaWQgZGlzcGxheVxuICAgIGlmICh0eXBlb2YgcmVzcG9uc2UgPT09ICdvYmplY3QnICYmIHJlc3BvbnNlICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gW3Jlc3BvbnNlXTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cbn1cbiJdfQ==
|