@data-client/rest 0.18.1 → 0.18.2
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/CHANGELOG.md +191 -0
- package/dist/index.js +15 -6
- package/dist/index.umd.min.js +1 -1
- package/legacy/RestEndpoint.js +5 -4
- package/legacy/RestEndpointTypes.js +1 -1
- package/legacy/extractCollection.js +3 -1
- package/legacy/paramsToString.js +1 -1
- package/legacy/paramsToString.native.js +1 -1
- package/legacy/pathTypes.js +1 -1
- package/legacy/resource.js +10 -4
- package/legacy/resourceExtendable.js +1 -1
- package/legacy/resourceExtensionTypes.js +1 -1
- package/legacy/resourceTypes.js +1 -1
- package/lib/NetworkError.d.ts.map +1 -1
- package/lib/RestEndpoint.js +5 -4
- package/lib/RestEndpointTypes.d.ts +49 -20
- package/lib/RestEndpointTypes.d.ts.map +1 -1
- package/lib/RestEndpointTypes.js +1 -1
- package/lib/extractCollection.d.ts +8 -1
- package/lib/extractCollection.d.ts.map +1 -1
- package/lib/extractCollection.js +3 -1
- package/lib/paramsToString.d.ts.map +1 -1
- package/lib/paramsToString.js +1 -1
- package/lib/paramsToString.native.d.ts.map +1 -1
- package/lib/paramsToString.native.js +1 -1
- package/lib/pathTypes.d.ts +33 -7
- package/lib/pathTypes.d.ts.map +1 -1
- package/lib/pathTypes.js +1 -1
- package/lib/resource.d.ts +1 -1
- package/lib/resource.d.ts.map +1 -1
- package/lib/resource.js +10 -4
- package/lib/resourceExtendable.d.ts +4 -4
- package/lib/resourceExtendable.d.ts.map +1 -1
- package/lib/resourceExtendable.js +1 -1
- package/lib/resourceExtensionTypes.d.ts +7 -7
- package/lib/resourceExtensionTypes.d.ts.map +1 -1
- package/lib/resourceExtensionTypes.js +1 -1
- package/lib/resourceTypes.d.ts +8 -2
- package/lib/resourceTypes.d.ts.map +1 -1
- package/lib/resourceTypes.js +1 -1
- package/lib/test-fixtures.d.ts +7 -7
- package/lib/test-fixtures.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/RestEndpoint.js +7 -6
- package/src/RestEndpointTypes.ts +116 -53
- package/src/__tests__/RestEndpoint.ts +23 -7
- package/src/__tests__/resource-construction.test.ts +47 -0
- package/src/extractCollection.ts +3 -0
- package/src/paramsToString.native.ts +1 -5
- package/src/paramsToString.ts +1 -5
- package/src/pathTypes.ts +105 -31
- package/src/resource.ts +11 -6
- package/src/resourceExtendable.ts +15 -11
- package/src/resourceExtensionTypes.ts +16 -10
- package/src/resourceTypes.ts +6 -4
- package/ts4.0/RestEndpointTypes.d.ts +57 -22
- package/ts4.0/extractCollection.d.ts +8 -1
- package/ts4.0/mapCollection.d.ts +11 -16
- package/ts4.0/resource.d.ts +1 -1
- package/ts4.0/resourceExtendable.d.ts +4 -4
- package/ts4.0/resourceExtensionTypes.d.ts +7 -7
- package/ts4.0/resourceTypes.d.ts +8 -2
- package/ts4.0/test-fixtures.d.ts +7 -7
- package/ts4.1/RestEndpointTypes.d.ts +57 -22
- package/ts4.1/extractCollection.d.ts +8 -1
- package/ts4.1/mapCollection.d.ts +11 -16
- package/ts4.1/pathTypes.d.ts +33 -7
- package/ts4.1/resource.d.ts +1 -1
- package/ts4.1/resourceExtendable.d.ts +4 -4
- package/ts4.1/resourceExtensionTypes.d.ts +7 -7
- package/ts4.1/resourceTypes.d.ts +8 -2
- package/ts4.1/test-fixtures.d.ts +7 -7
package/legacy/resourceTypes.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uLCBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBTY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBEZW5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHtcbiAgS2V5c1RvQXJncyxcbiAgUGF0aEFyZ3MsXG4gIFJlc291cmNlUGF0aCxcbiAgU2hvcnRlblBhdGgsXG59IGZyb20gJy4vcGF0aFR5cGVzLmpzJztcbmltcG9ydCB7IEV4dGVuZGFibGUgfSBmcm9tICcuL3Jlc291cmNlRXh0ZW5kYWJsZS5qcyc7XG5pbXBvcnQgUmVzdEVuZHBvaW50LCB7XG4gIEdldEVuZHBvaW50LFxuICBNdXRhdGVFbmRwb2ludCxcbiAgUGFyYW1Ub0FyZ3MsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG4gIFJlc3RUeXBlTm9Cb2R5LFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5cbi8qKiBUaGUgdHlwZWQgKGdlbmVyaWMpIG9wdGlvbnMgZm9yIGEgUmVzb3VyY2VcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNmdW5jdGlvbi1pbmhlcml0YW5jZS1wYXR0ZXJuc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlR2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjcGF0aCAqL1xuICByZWFkb25seSBwYXRoOiBSZXNvdXJjZVBhdGg7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNib2R5ICovXG4gIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogYW55O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbn1cbi8qKiBUaGUgdW50eXBlZCBvcHRpb25zIGZvciByZXNvdXJjZSgpICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlT3B0aW9ucyB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNlbmRwb2ludCAqL1xuICBFbmRwb2ludD86IHR5cGVvZiBSZXN0RW5kcG9pbnQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNjb2xsZWN0aW9uICovXG4gIENvbGxlY3Rpb24/OiB0eXBlb2YgQ29sbGVjdGlvbjtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI25vbmZpbHRlcmFyZ3VtZW50a2V5cyAqL1xuICBub25GaWx0ZXJBcmd1bWVudEtleXM/OiAoKGtleTogc3RyaW5nKSA9PiBib29sZWFuKSB8IHN0cmluZ1tdIHwgUmVnRXhwO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2Ujb3B0aW1pc3RpYyAqL1xuICBvcHRpbWlzdGljPzogYm9vbGVhbjtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI3VybHByZWZpeCAqL1xuICB1cmxQcmVmaXg/OiBzdHJpbmc7XG4gIHJlcXVlc3RJbml0PzogUmVxdWVzdEluaXQ7XG4gIGdldEhlYWRlcnM/KGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgZ2V0UmVxdWVzdEluaXQ/KGJvZHk6IGFueSk6IFByb21pc2U8UmVxdWVzdEluaXQ+IHwgUmVxdWVzdEluaXQ7XG4gIGZldGNoUmVzcG9uc2U/KGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPGFueT47XG4gIHBhcnNlUmVzcG9uc2U/KHJlc3BvbnNlOiBSZXNwb25zZSk6IFByb21pc2U8YW55PjtcbiAgLyoqIERlZmF1bHQgZGF0YSBleHBpcnkgbGVuZ3RoLCB3aWxsIGZhbGwgYmFjayB0byBOZXR3b3JrTWFuYWdlciBkZWZhdWx0IGlmIG5vdCBkZWZpbmVkICovXG4gIHJlYWRvbmx5IGRhdGFFeHBpcnlMZW5ndGg/OiBudW1iZXI7XG4gIC8qKiBEZWZhdWx0IGVycm9yIGV4cGlyeSBsZW5ndGgsIHdpbGwgZmFsbCBiYWNrIHRvIE5ldHdvcmtNYW5hZ2VyIGRlZmF1bHQgaWYgbm90IGRlZmluZWQgKi9cbiAgcmVhZG9ubHkgZXJyb3JFeHBpcnlMZW5ndGg/OiBudW1iZXI7XG4gIC8qKiBQb2xsIHdpdGggYXQgbGVhc3QgdGhpcyBmcmVxdWVuY3kgaW4gbWlsaXNlY29uZHMgKi9cbiAgcmVhZG9ubHkgcG9sbEZyZXF1ZW5jeT86IG51bWJlcjtcbiAgLyoqIE1hcmtzIGNhY2hlZCByZXNvdXJjZXMgYXMgaW52YWxpZCBpZiB0aGV5IGFyZSBzdGFsZSAqL1xuICByZWFkb25seSBpbnZhbGlkSWZTdGFsZT86IGJvb2xlYW47XG4gIC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdGhyb3cgb3IgZmFsbGJhY2sgdG8gKi9cbiAgZXJyb3JQb2xpY3k/KGVycm9yOiBhbnkpOiAnaGFyZCcgfCAnc29mdCcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBSZXNvdXJjZXMgYXJlIGEgY29sbGVjdGlvbiBvZiBtZXRob2RzIGZvciBhIGdpdmVuIGRhdGEgbW9kZWwuXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlPFxuICBPIGV4dGVuZHMgUmVzb3VyY2VHZW5lcmljcyA9IHsgcGF0aDogUmVzb3VyY2VQYXRoOyBzY2hlbWE6IGFueSB9LFxuPiBleHRlbmRzIEV4dGVuZGFibGU8Tz4ge1xuICAvKiogR2V0IG9uZSBpdGVtIChHRVQpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI2dldFxuICAgKi9cbiAgZ2V0OiBHZXRFbmRwb2ludDx7IHBhdGg6IE9bJ3BhdGgnXTsgc2NoZW1hOiBPWydzY2hlbWEnXSB9PjtcbiAgLyoqIEdldCBhbiBBcnJheSBvZiBpdGVtcyAoR0VUKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNnZXRsaXN0XG4gICAqL1xuICBnZXRMaXN0OiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIEdldEVuZHBvaW50PFxuICAgICAge1xuICAgICAgICBwYXRoOiBTaG9ydGVuUGF0aDxPWydwYXRoJ10+O1xuICAgICAgICBzY2hlbWE6IHNjaGVtYS5Db2xsZWN0aW9uPFxuICAgICAgICAgIFtPWydzY2hlbWEnXV0sXG4gICAgICAgICAgUGFyYW1Ub0FyZ3M8XG4gICAgICAgICAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgICAgICAgICBLZXlzVG9BcmdzPFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT4+XG4gICAgICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8U2hvcnRlblBhdGg8T1sncGF0aCddPj5cbiAgICAgICAgICA+XG4gICAgICAgID47XG4gICAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J11cbiAgICAgICAgOiBQYXJ0aWFsPERlbm9ybWFsaXplPE9bJ3NjaGVtYSddPj47XG4gICAgICAgIHNlYXJjaFBhcmFtczogT1snc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1vdmVQYXRoOiBPWydwYXRoJ107XG4gICAgICB9ICYgUGljazxPLCAncGFnaW5hdGlvbkZpZWxkJz5cbiAgICA+XG4gIDogR2V0RW5kcG9pbnQ8XG4gICAgICB7XG4gICAgICAgIHBhdGg6IFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT47XG4gICAgICAgIHNjaGVtYTogc2NoZW1hLkNvbGxlY3Rpb248XG4gICAgICAgICAgW09bJ3NjaGVtYSddXSxcbiAgICAgICAgICBQYXJhbVRvQXJnczxcbiAgICAgICAgICAgIChSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZCkgJlxuICAgICAgICAgICAgICBQYXRoQXJnczxTaG9ydGVuUGF0aDxPWydwYXRoJ10+PlxuICAgICAgICAgID5cbiAgICAgICAgPjtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXVxuICAgICAgICA6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PjtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZDtcbiAgICAgICAgbW92ZVBhdGg6IE9bJ3BhdGgnXTtcbiAgICAgIH0gJiBQaWNrPE8sICdwYWdpbmF0aW9uRmllbGQnPlxuICAgID47XG4gIC8qKiBDcmVhdGUgYSBuZXcgaXRlbSAoUE9TVClcbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIFJlc291cmNlLmdldExpc3QucHVzaCBpbnN0ZWFkXG4gICAqL1xuICBjcmVhdGU6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/
|
|
2
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL3Jlc291cmNlVHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uLCBzY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBTY2hlbWEgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHR5cGUgeyBEZW5vcm1hbGl6ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9lbmRwb2ludCc7XG5cbmltcG9ydCB0eXBlIHtcbiAgS2V5c1RvQXJncyxcbiAgUGF0aEFyZ3MsXG4gIFJlc291cmNlUGF0aCxcbiAgU2hvcnRlblBhdGgsXG59IGZyb20gJy4vcGF0aFR5cGVzLmpzJztcbmltcG9ydCB7IEV4dGVuZGFibGUgfSBmcm9tICcuL3Jlc291cmNlRXh0ZW5kYWJsZS5qcyc7XG5pbXBvcnQgUmVzdEVuZHBvaW50LCB7XG4gIEdldEVuZHBvaW50LFxuICBNdXRhdGVFbmRwb2ludCxcbiAgUGFyYW1Ub0FyZ3MsXG4gIFJlc3RJbnN0YW5jZUJhc2UsXG4gIFJlc3RUeXBlTm9Cb2R5LFxufSBmcm9tICcuL1Jlc3RFbmRwb2ludC5qcyc7XG5cbi8qKiBUaGUgdHlwZWQgKGdlbmVyaWMpIG9wdGlvbnMgZm9yIGEgUmVzb3VyY2VcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNmdW5jdGlvbi1pbmhlcml0YW5jZS1wYXR0ZXJuc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlR2VuZXJpY3Mge1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjcGF0aCAqL1xuICByZWFkb25seSBwYXRoOiBSZXNvdXJjZVBhdGg7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNzY2hlbWEgKi9cbiAgcmVhZG9ubHkgc2NoZW1hOiBTY2hlbWE7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNib2R5ICovXG4gIHJlYWRvbmx5IGJvZHk/OiBhbnk7XG4gIC8qKiBPbmx5IHVzZWQgZm9yIHR5cGVzICovXG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNzZWFyY2hQYXJhbXMgKi9cbiAgcmVhZG9ubHkgc2VhcmNoUGFyYW1zPzogYW55O1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjcGFnaW5hdGlvbmZpZWxkICovXG4gIHJlYWRvbmx5IHBhZ2luYXRpb25GaWVsZD86IHN0cmluZztcbn1cbi8qKiBUaGUgdW50eXBlZCBvcHRpb25zIGZvciByZXNvdXJjZSgpICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlT3B0aW9ucyB7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNlbmRwb2ludCAqL1xuICBFbmRwb2ludD86IHR5cGVvZiBSZXN0RW5kcG9pbnQ7XG4gIC8qKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNjb2xsZWN0aW9uICovXG4gIENvbGxlY3Rpb24/OiB0eXBlb2YgQ29sbGVjdGlvbjtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI25vbmZpbHRlcmFyZ3VtZW50a2V5cyAqL1xuICBub25GaWx0ZXJBcmd1bWVudEtleXM/OiAoKGtleTogc3RyaW5nKSA9PiBib29sZWFuKSB8IHN0cmluZ1tdIHwgUmVnRXhwO1xuICAvKiogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2Ujb3B0aW1pc3RpYyAqL1xuICBvcHRpbWlzdGljPzogYm9vbGVhbjtcbiAgLyoqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI3VybHByZWZpeCAqL1xuICB1cmxQcmVmaXg/OiBzdHJpbmc7XG4gIHJlcXVlc3RJbml0PzogUmVxdWVzdEluaXQ7XG4gIGdldEhlYWRlcnM/KGhlYWRlcnM6IEhlYWRlcnNJbml0KTogUHJvbWlzZTxIZWFkZXJzSW5pdD4gfCBIZWFkZXJzSW5pdDtcbiAgZ2V0UmVxdWVzdEluaXQ/KGJvZHk6IGFueSk6IFByb21pc2U8UmVxdWVzdEluaXQ+IHwgUmVxdWVzdEluaXQ7XG4gIGZldGNoUmVzcG9uc2U/KGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQpOiBQcm9taXNlPGFueT47XG4gIHBhcnNlUmVzcG9uc2U/KHJlc3BvbnNlOiBSZXNwb25zZSk6IFByb21pc2U8YW55PjtcbiAgLyoqIERlZmF1bHQgZGF0YSBleHBpcnkgbGVuZ3RoLCB3aWxsIGZhbGwgYmFjayB0byBOZXR3b3JrTWFuYWdlciBkZWZhdWx0IGlmIG5vdCBkZWZpbmVkICovXG4gIHJlYWRvbmx5IGRhdGFFeHBpcnlMZW5ndGg/OiBudW1iZXI7XG4gIC8qKiBEZWZhdWx0IGVycm9yIGV4cGlyeSBsZW5ndGgsIHdpbGwgZmFsbCBiYWNrIHRvIE5ldHdvcmtNYW5hZ2VyIGRlZmF1bHQgaWYgbm90IGRlZmluZWQgKi9cbiAgcmVhZG9ubHkgZXJyb3JFeHBpcnlMZW5ndGg/OiBudW1iZXI7XG4gIC8qKiBQb2xsIHdpdGggYXQgbGVhc3QgdGhpcyBmcmVxdWVuY3kgaW4gbWlsaXNlY29uZHMgKi9cbiAgcmVhZG9ubHkgcG9sbEZyZXF1ZW5jeT86IG51bWJlcjtcbiAgLyoqIE1hcmtzIGNhY2hlZCByZXNvdXJjZXMgYXMgaW52YWxpZCBpZiB0aGV5IGFyZSBzdGFsZSAqL1xuICByZWFkb25seSBpbnZhbGlkSWZTdGFsZT86IGJvb2xlYW47XG4gIC8qKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gdGhyb3cgb3IgZmFsbGJhY2sgdG8gKi9cbiAgZXJyb3JQb2xpY3k/KGVycm9yOiBhbnkpOiAnaGFyZCcgfCAnc29mdCcgfCB1bmRlZmluZWQ7XG59XG5cbi8qKiBSZXNvdXJjZXMgYXJlIGEgY29sbGVjdGlvbiBvZiBtZXRob2RzIGZvciBhIGdpdmVuIGRhdGEgbW9kZWwuXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlPFxuICBPIGV4dGVuZHMgUmVzb3VyY2VHZW5lcmljcyA9IHsgcGF0aDogUmVzb3VyY2VQYXRoOyBzY2hlbWE6IGFueSB9LFxuPiBleHRlbmRzIEV4dGVuZGFibGU8Tz4ge1xuICAvKiogR2V0IG9uZSBpdGVtIChHRVQpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI2dldFxuICAgKi9cbiAgZ2V0OiBHZXRFbmRwb2ludDx7IHBhdGg6IE9bJ3BhdGgnXTsgc2NoZW1hOiBPWydzY2hlbWEnXSB9PjtcbiAgLyoqIEdldCBhbiBBcnJheSBvZiBpdGVtcyAoR0VUKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNnZXRsaXN0XG4gICAqL1xuICBnZXRMaXN0OiAnc2VhcmNoUGFyYW1zJyBleHRlbmRzIGtleW9mIE8gP1xuICAgIEdldEVuZHBvaW50PFxuICAgICAge1xuICAgICAgICBwYXRoOiBTaG9ydGVuUGF0aDxPWydwYXRoJ10+O1xuICAgICAgICBzY2hlbWE6IHNjaGVtYS5Db2xsZWN0aW9uPFxuICAgICAgICAgIFtPWydzY2hlbWEnXV0sXG4gICAgICAgICAgUGFyYW1Ub0FyZ3M8XG4gICAgICAgICAgICBbT1snc2VhcmNoUGFyYW1zJ11dIGV4dGVuZHMgW3VuZGVmaW5lZF0gP1xuICAgICAgICAgICAgICBLZXlzVG9BcmdzPFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT4+XG4gICAgICAgICAgICA6IE9bJ3NlYXJjaFBhcmFtcyddICYgUGF0aEFyZ3M8U2hvcnRlblBhdGg8T1sncGF0aCddPj5cbiAgICAgICAgICA+XG4gICAgICAgID47XG4gICAgICAgIGJvZHk6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gPyBPWydib2R5J11cbiAgICAgICAgOiBQYXJ0aWFsPERlbm9ybWFsaXplPE9bJ3NjaGVtYSddPj47XG4gICAgICAgIHNlYXJjaFBhcmFtczogT1snc2VhcmNoUGFyYW1zJ107XG4gICAgICAgIG1vdmVQYXRoOiBPWydwYXRoJ107XG4gICAgICB9ICYgUGljazxPLCAncGFnaW5hdGlvbkZpZWxkJz5cbiAgICA+XG4gIDogR2V0RW5kcG9pbnQ8XG4gICAgICB7XG4gICAgICAgIHBhdGg6IFNob3J0ZW5QYXRoPE9bJ3BhdGgnXT47XG4gICAgICAgIHNjaGVtYTogc2NoZW1hLkNvbGxlY3Rpb248XG4gICAgICAgICAgW09bJ3NjaGVtYSddXSxcbiAgICAgICAgICBQYXJhbVRvQXJnczxcbiAgICAgICAgICAgIChSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZCkgJlxuICAgICAgICAgICAgICBQYXRoQXJnczxTaG9ydGVuUGF0aDxPWydwYXRoJ10+PlxuICAgICAgICAgID5cbiAgICAgICAgPjtcbiAgICAgICAgYm9keTogJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXVxuICAgICAgICA6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PjtcbiAgICAgICAgc2VhcmNoUGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXIgfCBzdHJpbmcgfCBib29sZWFuPiB8IHVuZGVmaW5lZDtcbiAgICAgICAgbW92ZVBhdGg6IE9bJ3BhdGgnXTtcbiAgICAgIH0gJiBQaWNrPE8sICdwYWdpbmF0aW9uRmllbGQnPlxuICAgID47XG4gIC8qKiBDcmVhdGUgYSBuZXcgaXRlbSAoUE9TVClcbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIFJlc291cmNlLmdldExpc3QucHVzaCBpbnN0ZWFkXG4gICAqL1xuICBjcmVhdGU6ICdzZWFyY2hQYXJhbXMnIGV4dGVuZHMga2V5b2YgTyA/XG4gICAgTXV0YXRlRW5kcG9pbnQ8e1xuICAgICAgcGF0aDogU2hvcnRlblBhdGg8T1sncGF0aCddPjtcbiAgICAgIHNjaGVtYTogc2NoZW1hLkNvbGxlY3Rpb248W09bJ3NjaGVtYSddXT5bJ3B1c2gnXTtcbiAgICAgIGJvZHk6IENyZWF0ZUJvZHk8Tz4gfCBDcmVhdGVCb2R5PE8+W10gfCBGb3JtRGF0YTtcbiAgICAgIHNlYXJjaFBhcmFtczogT1snc2VhcmNoUGFyYW1zJ107XG4gICAgfT5cbiAgOiBNdXRhdGVFbmRwb2ludDx7XG4gICAgICBwYXRoOiBTaG9ydGVuUGF0aDxPWydwYXRoJ10+O1xuICAgICAgc2NoZW1hOiBzY2hlbWEuQ29sbGVjdGlvbjxbT1snc2NoZW1hJ11dPlsncHVzaCddO1xuICAgICAgYm9keTogQ3JlYXRlQm9keTxPPiB8IENyZWF0ZUJvZHk8Tz5bXSB8IEZvcm1EYXRhO1xuICAgIH0+O1xuICAvKiogVXBkYXRlIGFuIGl0ZW0gKFBVVClcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RhdGFjbGllbnQuaW8vcmVzdC9hcGkvcmVzb3VyY2UjdXBkYXRlXG4gICAqL1xuICB1cGRhdGU6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE11dGF0ZUVuZHBvaW50PHtcbiAgICAgIHBhdGg6IE9bJ3BhdGgnXTtcbiAgICAgIGJvZHk6IE9bJ2JvZHknXTtcbiAgICAgIHNjaGVtYTogT1snc2NoZW1hJ107XG4gICAgfT5cbiAgOiBNdXRhdGVFbmRwb2ludDx7XG4gICAgICBwYXRoOiBPWydwYXRoJ107XG4gICAgICBib2R5OiBQYXJ0aWFsPERlbm9ybWFsaXplPE9bJ3NjaGVtYSddPj4gfCBGb3JtRGF0YTtcbiAgICAgIHNjaGVtYTogT1snc2NoZW1hJ107XG4gICAgfT47XG4gIC8qKiBVcGRhdGUgYW4gaXRlbSAoUEFUQ0gpXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL3Jlc291cmNlI3BhcnRpYWx1cGRhdGVcbiAgICovXG4gIHBhcnRpYWxVcGRhdGU6ICdib2R5JyBleHRlbmRzIGtleW9mIE8gP1xuICAgIE11dGF0ZUVuZHBvaW50PHtcbiAgICAgIHBhdGg6IE9bJ3BhdGgnXTtcbiAgICAgIGJvZHk6IFBhcnRpYWw8T1snYm9keSddPjtcbiAgICAgIHNjaGVtYTogT1snc2NoZW1hJ107XG4gICAgfT5cbiAgOiBNdXRhdGVFbmRwb2ludDx7XG4gICAgICBwYXRoOiBPWydwYXRoJ107XG4gICAgICBib2R5OiBQYXJ0aWFsPERlbm9ybWFsaXplPE9bJ3NjaGVtYSddPj4gfCBGb3JtRGF0YTtcbiAgICAgIHNjaGVtYTogT1snc2NoZW1hJ107XG4gICAgfT47XG4gIC8qKiBEZWxldGUgYW4gaXRlbSAoREVMRVRFKVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9yZXNvdXJjZSNkZWxldGVcbiAgICovXG4gIGRlbGV0ZTogUmVzdFR5cGVOb0JvZHk8XG4gICAgUGF0aEFyZ3M8T1sncGF0aCddPixcbiAgICBPWydzY2hlbWEnXSBleHRlbmRzIHNjaGVtYS5FbnRpdHlJbnRlcmZhY2UgJiB7IHByb2Nlc3M6IGFueSB9ID9cbiAgICAgIHNjaGVtYS5JbnZhbGlkYXRlPE9bJ3NjaGVtYSddPlxuICAgIDogT1snc2NoZW1hJ10sXG4gICAgdW5kZWZpbmVkLFxuICAgIFBhcnRpYWw8UGF0aEFyZ3M8T1sncGF0aCddPj4sXG4gICAge1xuICAgICAgcGF0aDogT1sncGF0aCddO1xuICAgIH1cbiAgPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUludGVyZmFjZSB7XG4gIGdldDogUmVzdEluc3RhbmNlQmFzZTtcbiAgZ2V0TGlzdDogUmVzdEluc3RhbmNlQmFzZTtcbiAgdXBkYXRlOiBSZXN0SW5zdGFuY2VCYXNlO1xuICBwYXJ0aWFsVXBkYXRlOiBSZXN0SW5zdGFuY2VCYXNlO1xuICBkZWxldGU6IFJlc3RJbnN0YW5jZUJhc2U7XG59XG5cbi8qKiBNYXRjaGVzIGdldExpc3QucHVzaCdzIGJvZHksIHNpbmNlIGNyZWF0ZSBpcyBnZXRMaXN0LnB1c2ggYXQgcnVudGltZSAqL1xudHlwZSBDcmVhdGVCb2R5PE8gZXh0ZW5kcyB7IGJvZHk/OiBhbnk7IHNjaGVtYTogU2NoZW1hIH0+ID1cbiAgJ2JvZHknIGV4dGVuZHMga2V5b2YgTyA/IE9bJ2JvZHknXSA6IFBhcnRpYWw8RGVub3JtYWxpemU8T1snc2NoZW1hJ10+PjtcbiJdLCJtYXBwaW5ncyI6IiIsImlnbm9yZUxpc3QiOltdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NetworkError.d.ts","sourceRoot":"","sources":["../src/NetworkError.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,KAAK;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IAC3B,IAAI,SAAkB;
|
|
1
|
+
{"version":3,"file":"NetworkError.d.ts","sourceRoot":"","sources":["../src/NetworkError.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,KAAK;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IAC3B,IAAI,SAAkB;IAEtB,YAAY,QAAQ,EAAE,QAAQ,EAM7B;IAED;;;;;OAKG;IACH,MAAM;QAEF,IAAI;QACJ,MAAM;QACN,OAAO;QACP,GAAG;MAEN;CACF"}
|
package/lib/RestEndpoint.js
CHANGED
|
@@ -91,8 +91,9 @@ export default class RestEndpoint extends Endpoint {
|
|
|
91
91
|
|
|
92
92
|
/** Init options for fetch - run at fetch */
|
|
93
93
|
async getRequestInit(body) {
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
// plain objects and arrays are JSON; FormData, Blob, strings, etc pass through to fetch
|
|
95
|
+
const bodyIsJSON = isPojo(body) || Array.isArray(body);
|
|
96
|
+
if (bodyIsJSON) {
|
|
96
97
|
body = JSON.stringify(body);
|
|
97
98
|
}
|
|
98
99
|
const init = {
|
|
@@ -101,7 +102,7 @@ export default class RestEndpoint extends Endpoint {
|
|
|
101
102
|
signal: this.signal,
|
|
102
103
|
body
|
|
103
104
|
};
|
|
104
|
-
if (!body ||
|
|
105
|
+
if (!body || bodyIsJSON) {
|
|
105
106
|
init.headers = {
|
|
106
107
|
// default to application/json but allow user explicit overrides
|
|
107
108
|
'Content-Type': 'application/json',
|
|
@@ -283,4 +284,4 @@ const tryParse = input => {
|
|
|
283
284
|
return undefined;
|
|
284
285
|
}
|
|
285
286
|
};
|
|
286
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsImNyZWF0ZVBhZ2luYXRpb25TY2hlbWEiLCJwYXJhbXNUb1N0cmluZyIsImdldFVybEJhc2UiLCJnZXRVcmxUb2tlbnMiLCJnZXRQYXRoUmVnZXgiLCJpc1Bvam8iLCJ0ZXh0TGlrZVJlIiwianNvblJlc3BvbnNlIiwicmVzcG9uc2UiLCJqc29uIiwiY2F0Y2giLCJlcnJvciIsInN0YXR1cyIsIl9oYXNCb2R5IiwiX2NsYXNzUHJpdmF0ZUZpZWxkTG9vc2VLZXkiLCJSZXN0RW5kcG9pbnQiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJfb3B0aW9ucyRmZXRjaCIsImZldGNoIiwiYXJncyIsInVybFBhcmFtcyIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlQmFzZSIsImxlbmd0aCIsImJvZHkiLCJ1bmRlZmluZWQiLCJmZXRjaFJlc3BvbnNlIiwidXJsIiwiZ2V0UmVxdWVzdEluaXQiLCJ0aGVuIiwicGFyc2VSZXNwb25zZSIsInJlcyIsInByb2Nlc3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIndyaXRhYmxlIiwidmFsdWUiLCJzaWRlRWZmZWN0IiwibWV0aG9kIiwidXJsUHJlZml4IiwiaW5jbHVkZXMiLCJlbnYiLCJOT0RFX0VOViIsImNvbnRlbnQiLCJzY2hlbWEiLCJjb25zb2xlIiwiZ2V0IiwiX19uYW1lIiwicGF0aCIsImtleSIsInRva2VucyIsInBhdGhQYXJhbXMiLCJzZWFyY2hQYXJhbXMiLCJrZXlzIiwiZm9yRWFjaCIsImsiLCJoYXMiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJTdHJpbmciLCJ1cmxCYXNlIiwic2VhcmNoVG9TdHJpbmciLCJnZXRIZWFkZXJzIiwiaGVhZGVycyIsImJvZHlJc1Bvam8iLCJKU09OIiwic3RyaW5naWZ5IiwiaW5pdCIsInJlcXVlc3RJbml0Iiwic2lnbmFsIiwiaW5wdXQiLCJvayIsIlR5cGVFcnJvciIsIlByb21pc2UiLCJyZXNvbHZlIiwibWVzc2FnZSIsImNvbnRlbnRUeXBlIiwiaXNCaW5hcnkiLCJ0ZXN0IiwicHJvdG90eXBlIiwiYmxvYiIsInRleHQiLCJzdGFydHNXaXRoIiwidHJ5UGFyc2UiLCJzdWJzdHJpbmciLCJlcnJvclBvbGljeSIsInBhdGhSZWdleCIsInRlc3RLZXkiLCJwcmVmaXgiLCJsYXN0UXVlc3Rpb24iLCJsYXN0SW5kZXhPZiIsImV4dGVuZCIsIkUiLCJhc3NpZ24iLCJwYWdpbmF0ZWQiLCJyZW1vdmVDdXJzb3IiLCJmaWVsZE5hbWUiLCJwYXJhbXMiLCJmb3VuZCIsImNyZWF0ZVBhZ2luYXRlZFNjaGVtYSIsImNvbGxlY3Rpb24iLCJuZXdTY2hlbWEiLCJFcnJvciIsInN1cCIsImNhbGwiLCJuYW1lIiwiZ2V0UGFnZSIsInBhZ2luYXRpb25GaWVsZCIsInB1c2giLCJzIiwidW5zaGlmdCIsInJlbW92ZSIsIm1vdmUiLCJtb3ZlUGF0aCIsInBhcnNlIiwiZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9SZXN0RW5kcG9pbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5kcG9pbnQgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgZXh0cmFjdENvbGxlY3Rpb24gZnJvbSAnLi9leHRyYWN0Q29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgbWFwQ29sbGVjdGlvbiBmcm9tICcuL21hcENvbGxlY3Rpb24uanMnO1xuaW1wb3J0IE5ldHdvcmtFcnJvciBmcm9tICcuL05ldHdvcmtFcnJvci5qcyc7XG5pbXBvcnQgeyBjcmVhdGVQYWdpbmF0aW9uU2NoZW1hIH0gZnJvbSAnLi9wYWdpbmF0ZWRDb2xsZWN0aW9ucy5qcyc7XG5pbXBvcnQgcGFyYW1zVG9TdHJpbmcgZnJvbSAnLi9wYXJhbXNUb1N0cmluZy5qcyc7XG5pbXBvcnQge1xuICBnZXRVcmxCYXNlLFxuICBnZXRVcmxUb2tlbnMsXG4gIGdldFBhdGhSZWdleCxcbiAgaXNQb2pvLFxufSBmcm9tICcuL1Jlc3RIZWxwZXJzLmpzJztcblxuY29uc3QgdGV4dExpa2VSZSA9XG4gIC9cXGJ0ZXh0XFxifFxcYnhtbFxcYnxcXGJodG1sXFxifFxcYmphdmFzY3JpcHRcXGJ8XFxiY3NzXFxifFxcYmNzdlxcYnxcXGJ1cmxlbmNvZGVkXFxiLztcblxuZnVuY3Rpb24ganNvblJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gIHJldHVybiByZXNwb25zZS5qc29uKCkuY2F0Y2goZXJyb3IgPT4ge1xuICAgIGVycm9yLnN0YXR1cyA9IDQwMDtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfSk7XG59XG5cbi8qKiBTaW1wbGlmaWVzIGVuZHBvaW50IGRlZmluaXRpb25zIHRoYXQgZm9sbG93IFJFU1QgcGF0dGVybnNcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzdEVuZHBvaW50IGV4dGVuZHMgRW5kcG9pbnQge1xuICAjaGFzQm9keTtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKFxuICAgICAgb3B0aW9ucy5mZXRjaCA/P1xuICAgICAgICBhc3luYyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgIGNvbnN0IHVybFBhcmFtcyA9XG4gICAgICAgICAgICB0aGlzLiNoYXNCb2R5ICYmIGFyZ3MubGVuZ3RoIDwgMiA/IHt9IDogYXJnc1swXSB8fCB7fTtcbiAgICAgICAgICBjb25zdCBib2R5ID0gdGhpcy4jaGFzQm9keSA/IGFyZ3NbYXJncy5sZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFJlc3BvbnNlKFxuICAgICAgICAgICAgdGhpcy51cmwodXJsUGFyYW1zKSxcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0UmVxdWVzdEluaXQoYm9keSksXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gdGhpcy5wYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSlcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiB0aGlzLnByb2Nlc3MocmVzLCAuLi5hcmdzKSk7XG4gICAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgLy8gd2Ugd2FudCB0byB1c2UgdGhlIHByb3RvdHlwZSBjaGFpbiBoZXJlXG4gICAgaWYgKFxuICAgICAgISgnc2lkZUVmZmVjdCcgaW4gdGhpcykgfHxcbiAgICAgICgnbWV0aG9kJyBpbiBvcHRpb25zICYmICEoJ3NpZGVFZmZlY3QnIGluIG9wdGlvbnMpKVxuICAgICkge1xuICAgICAgdGhpcy5zaWRlRWZmZWN0ID1cbiAgICAgICAgb3B0aW9ucy5tZXRob2QgPT09ICdHRVQnIHx8IG9wdGlvbnMubWV0aG9kID09PSB1bmRlZmluZWQgP1xuICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICA6IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLm1ldGhvZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm1ldGhvZCA9IHRoaXMuc2lkZUVmZmVjdCA/ICdQT1NUJyA6ICdHRVQnO1xuICAgIH1cbiAgICBpZiAodGhpcy51cmxQcmVmaXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy51cmxQcmVmaXggPSAnJztcbiAgICB9XG4gICAgdGhpcy4jaGFzQm9keSA9XG4gICAgICAoISgnYm9keScgaW4gdGhpcykgfHwgdGhpcy5ib2R5ICE9PSB1bmRlZmluZWQpICYmXG4gICAgICAhWydHRVQnLCAnREVMRVRFJ10uaW5jbHVkZXModGhpcy5tZXRob2QpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmNvbnRlbnQgJiZcbiAgICAgICAgdGhpcy5jb250ZW50ICE9PSAnanNvbicgJiZcbiAgICAgICAgdGhpcy5zY2hlbWEgIT0gbnVsbCAmJlxuICAgICAgICB0eXBlb2YgdGhpcy5zY2hlbWEgIT09ICdzdHJpbmcnICYmXG4gICAgICAgIHR5cGVvZiB0aGlzLnNjaGVtYSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBjb250ZW50ICcke3RoaXMuY29udGVudH0nIGlzIGluY29tcGF0aWJsZSB3aXRoIHNjaGVtYS4gQmluYXJ5L3RleHQgcmVzcG9uc2VzIGNhbm5vdCBiZSBub3JtYWxpemVkLiBVc2Ugc2NoZW1hOiB1bmRlZmluZWQuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ25hbWUnLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIC8vIHVzaW5nICdpbicgdG8gZW5zdXJlIGluaGVyaXRhbmNlIGxvb2t1cFxuICAgICAgICBpZiAoJ19fbmFtZScgaW4gdGhpcykgcmV0dXJuIHRoaXMuX19uYW1lO1xuICAgICAgICByZXR1cm4gdGhpcy51cmxQcmVmaXggKyB0aGlzLnBhdGg7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAga2V5KC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5tZXRob2R9ICR7dGhpcy51cmwoXG4gICAgICB0aGlzLiNoYXNCb2R5ICYmIGFyZ3MubGVuZ3RoIDwgMiA/IHt9IDogYXJnc1swXSB8fCB7fSxcbiAgICApfWA7XG4gIH1cblxuICAvKiogR2V0IHRoZSB1cmwgKi9cbiAgdXJsKHVybFBhcmFtcyA9IHt9KSB7XG4gICAgY29uc3QgdG9rZW5zID0gZ2V0VXJsVG9rZW5zKHRoaXMucGF0aCk7XG4gICAgY29uc3QgcGF0aFBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHVybFBhcmFtcykuZm9yRWFjaChrID0+IHtcbiAgICAgIGlmICh0b2tlbnMuaGFzKGspKSB7XG4gICAgICAgIGlmICh1cmxQYXJhbXNba10gIT09IHVuZGVmaW5lZClcbiAgICAgICAgICBwYXRoUGFyYW1zW2tdID1cbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodXJsUGFyYW1zW2tdKSA/XG4gICAgICAgICAgICAgIHVybFBhcmFtc1trXS5tYXAoU3RyaW5nKVxuICAgICAgICAgICAgOiBTdHJpbmcodXJsUGFyYW1zW2tdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlYXJjaFBhcmFtc1trXSA9IHVybFBhcmFtc1trXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB1cmxCYXNlID0gZ2V0VXJsQmFzZSh0aGlzLnBhdGgpKHBhdGhQYXJhbXMpO1xuICAgIGlmIChPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMudXJsUHJlZml4fSR7dXJsQmFzZX0/JHt0aGlzLnNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtcyl9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMudXJsUHJlZml4fSR7dXJsQmFzZX1gO1xuICB9XG5cbiAgLyoqIEVuY29kZSB0aGUgdXJsIHNlYXJjaFBhcmFtcyAqL1xuICBzZWFyY2hUb1N0cmluZyhzZWFyY2hQYXJhbXMpIHtcbiAgICByZXR1cm4gcGFyYW1zVG9TdHJpbmcoc2VhcmNoUGFyYW1zKTtcbiAgfVxuXG4gIGdldEhlYWRlcnMoaGVhZGVycykge1xuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgLyoqIEluaXQgb3B0aW9ucyBmb3IgZmV0Y2ggLSBydW4gYXQgZmV0Y2ggKi9cbiAgYXN5bmMgZ2V0UmVxdWVzdEluaXQoYm9keSkge1xuICAgIGNvbnN0IGJvZHlJc1Bvam8gPSBpc1Bvam8oYm9keSk7XG4gICAgaWYgKGJvZHlJc1Bvam8pIHtcbiAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICB9XG4gICAgY29uc3QgaW5pdCA9IHtcbiAgICAgIC4uLnRoaXMucmVxdWVzdEluaXQsXG4gICAgICBtZXRob2Q6IHRoaXMubWV0aG9kLFxuICAgICAgc2lnbmFsOiB0aGlzLnNpZ25hbCxcbiAgICAgIGJvZHksXG4gICAgfTtcbiAgICBpZiAoIWJvZHkgfHwgYm9keUlzUG9qbykge1xuICAgICAgaW5pdC5oZWFkZXJzID0ge1xuICAgICAgICAvLyBkZWZhdWx0IHRvIGFwcGxpY2F0aW9uL2pzb24gYnV0IGFsbG93IHVzZXIgZXhwbGljaXQgb3ZlcnJpZGVzXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIC4uLmluaXQuaGVhZGVycyxcbiAgICAgIH07XG4gICAgfVxuICAgIGluaXQuaGVhZGVycyA9IGF3YWl0IHRoaXMuZ2V0SGVhZGVycyhpbml0LmhlYWRlcnMpO1xuICAgIHJldHVybiBpbml0O1xuICB9XG5cbiAgLyoqIFBlcmZvcm0gbmV0d29yayByZXF1ZXN0IGFuZCByZXNvbHZlIHdpdGggSFRUUCBSZXNwb25zZSAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0LCBpbml0KSB7XG4gICAgcmV0dXJuIGZldGNoKGlucHV0LCBpbml0KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IE5ldHdvcmtFcnJvcihyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIC8vIGVuc3VyZSBDT1JTLCBuZXR3b3JrIGRvd24sIGFuZCBwYXJzZSBlcnJvcnMgYXJlIHN0aWxsIGNhdWdodCBieSBOZXR3b3JrRXJyb3JCb3VuZGFyeVxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHtcbiAgICAgICAgICBlcnJvci5zdGF0dXMgPSA1MDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2UpIHtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG5cbiAgICBpZiAodGhpcy5jb250ZW50KSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuY29udGVudCAhPT0gJ2pzb24nICYmXG4gICAgICAgICAgdGhpcy5zY2hlbWEgIT0gbnVsbCAmJlxuICAgICAgICAgIHR5cGVvZiB0aGlzLnNjaGVtYSAhPT0gJ3N0cmluZycgJiZcbiAgICAgICAgICB0eXBlb2YgdGhpcy5zY2hlbWEgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IE5ldHdvcmtFcnJvcihyZXNwb25zZSk7XG4gICAgICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgY29udGVudCAnJHt0aGlzLmNvbnRlbnR9JyBpcyBpbmNvbXBhdGlibGUgd2l0aCBzY2hlbWEuIEJpbmFyeS90ZXh0IHJlc3BvbnNlcyBjYW5ub3QgYmUgbm9ybWFsaXplZC4gVXNlIHNjaGVtYTogdW5kZWZpbmVkLmA7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNvbnRlbnQgPT09ICdzdHJlYW0nKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3BvbnNlLmJvZHkpO1xuICAgICAgcmV0dXJuIHRoaXMuY29udGVudCA9PT0gJ2pzb24nID9cbiAgICAgICAgICBqc29uUmVzcG9uc2UocmVzcG9uc2UpXG4gICAgICAgIDogcmVzcG9uc2VbdGhpcy5jb250ZW50XSgpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpO1xuICAgIGlmIChjb250ZW50VHlwZT8uaW5jbHVkZXMoJ2pzb24nKSkgcmV0dXJuIGpzb25SZXNwb25zZShyZXNwb25zZSk7XG5cbiAgICBjb25zdCBpc0JpbmFyeSA9IGNvbnRlbnRUeXBlICYmICF0ZXh0TGlrZVJlLnRlc3QoY29udGVudFR5cGUpO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHRoaXMuc2NoZW1hID09PSAnc3RyaW5nJyB8fFxuICAgICAgdHlwZW9mIHRoaXMuc2NoZW1hID09PSAndW5kZWZpbmVkJyB8fFxuICAgICAgdGhpcy5zY2hlbWEgPT09IG51bGwgfHxcbiAgICAgIHRoaXMucHJvY2VzcyAhPT0gUmVzdEVuZHBvaW50LnByb3RvdHlwZS5wcm9jZXNzXG4gICAgKVxuICAgICAgcmV0dXJuIGlzQmluYXJ5ID8gcmVzcG9uc2UuYmxvYigpIDogcmVzcG9uc2UudGV4dCgpO1xuXG4gICAgaWYgKGlzQmluYXJ5KSB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIGJpbmFyeSBjb250ZW50LXR5cGUgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfWA7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIGJpbmFyeSBjb250ZW50LXR5cGUgXCIke2NvbnRlbnRUeXBlfVwiIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX0uIEJpbmFyeSByZXNwb25zZXMgY2Fubm90IGJlIG5vcm1hbGl6ZWQuIFVzZSBzY2hlbWE6IHVuZGVmaW5lZCBvciBzZXQgY29udGVudDogJ2Jsb2InLmA7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4odGV4dCA9PiB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDA0O1xuICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIHRleHQgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfWA7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICEoY29udGVudFR5cGU/LmluY2x1ZGVzKCdodG1sJykgfHwgdGV4dC5zdGFydHNXaXRoKCc8IWRvY3R5cGUgaHRtbD4nKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKHRyeVBhcnNlKHRleHQpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgXCJjb250ZW50LXR5cGVcIiBoZWFkZXIgZG9lcyBub3QgaW5jbHVkZSBcImpzb25cIiwgYnV0IEpTT04gcmVzcG9uc2UgZm91bmQuXG5TZWUgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzQ2MjcgZm9yIGluZm9ybWF0aW9uIG9uIEpTT04gcmVzcG9uc2VzXG5cblVzaW5nIHBhcnNlZCBKU09OLlxuSWYgdGV4dCBjb250ZW50IHdhcyBleHBlY3RlZCBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXJzZVJlc3BvbnNlYDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIGh0bWwgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfVxuVGhpcyBsaWtlbHkgbWVhbnMgbm8gQVBJIGVuZHBvaW50IHdhcyBjb25maWd1cmVkIGZvciB0aGlzIHJlcXVlc3QsIHJlc3VsdGluZyBpbiBhbiBIVE1MIGZhbGxiYWNrLlxuXG5SZXNwb25zZSAoZmlyc3QgMzAwIGNoYXJhY3RlcnMpOiAke3RleHQuc3Vic3RyaW5nKDAsIDMwMCl9YDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gIH1cblxuICBwcm9jZXNzKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXJyb3JQb2xpY3koZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzID49IDUwMCA/ICdzb2Z0JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBwYXRoUmVnZXgoKSB7XG4gICAgcmV0dXJuIGdldFBhdGhSZWdleCh0aGlzLnBhdGgpO1xuICB9XG5cbiAgdGVzdEtleShrZXkpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLm1ldGhvZCArICcgJyArIHRoaXMudXJsUHJlZml4O1xuICAgIGlmICgha2V5LnN0YXJ0c1dpdGgocHJlZml4KSkgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBsYXN0UXVlc3Rpb24gPSBrZXkubGFzdEluZGV4T2YoJz8nKTtcbiAgICBpZiAobGFzdFF1ZXN0aW9uID09PSAtMSkgbGFzdFF1ZXN0aW9uID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLnBhdGhSZWdleC50ZXN0KGtleS5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCwgbGFzdFF1ZXN0aW9uKSk7XG4gIH1cblxuICBleHRlbmQob3B0aW9ucykge1xuICAgIC8vIG1ha2UgYSBjb25zdHJ1Y3Rvci9wcm90b3R5cGUgYmFzZWQgb2ZmIHRoaXNcbiAgICAvLyBleHRlbmQgZnJvbSBpdCBhbmQgaW5pdCB3aXRoIG9wdGlvbnMgc2VudFxuICAgIGNsYXNzIEUgZXh0ZW5kcyB0aGlzLmNvbnN0cnVjdG9yIHt9XG5cbiAgICBPYmplY3QuYXNzaWduKEUucHJvdG90eXBlLCB0aGlzKTtcblxuICAgIHJldHVybiBuZXcgRShcbiAgICAgIC8vICBmZXRjaCBnZXQgb3ZlcnJpZGRlbiBieSBmdW5jdGlvbiBwcm90b3R5cGUsIHNvIHdlIG11c3Qgc2V0IGl0IGV4cGxpY2l0bHkgZXZlcnkgdGltZVxuICAgICAgeyBmZXRjaDogdGhpcy5mZXRjaCwgLi4ub3B0aW9ucyB9LFxuICAgICk7XG4gIH1cblxuICBwYWdpbmF0ZWQocmVtb3ZlQ3Vyc29yKSB7XG4gICAgaWYgKHR5cGVvZiByZW1vdmVDdXJzb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSByZW1vdmVDdXJzb3I7XG4gICAgICByZW1vdmVDdXJzb3IgPSAoeyAuLi5wYXJhbXMgfSkgPT4ge1xuICAgICAgICBkZWxldGUgcGFyYW1zW2ZpZWxkTmFtZV07XG4gICAgICAgIHJldHVybiBbcGFyYW1zXTtcbiAgICAgIH07XG4gICAgfVxuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgIGNvbnN0IGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSA9IGNvbGxlY3Rpb24gPT4ge1xuICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgcmV0dXJuIGNyZWF0ZVBhZ2luYXRpb25TY2hlbWEocmVtb3ZlQ3Vyc29yLCBjb2xsZWN0aW9uKTtcbiAgICB9O1xuICAgIGNvbnN0IG5ld1NjaGVtYSA9IG1hcENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSk7XG5cbiAgICBpZiAoIWZvdW5kKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQ29sbGVjdGlvbicpO1xuICAgIGNvbnN0IHN1cCA9IHRoaXM7XG5cbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgc2NoZW1hOiBuZXdTY2hlbWEsXG4gICAgICBrZXkoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gc3VwLmtleS5jYWxsKHRoaXMsIC4uLnJlbW92ZUN1cnNvciguLi5hcmdzKSk7XG4gICAgICB9LFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5nZXRQYWdlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBnZXRQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2luYXRlZCh0aGlzLnBhZ2luYXRpb25GaWVsZCk7XG4gIH1cblxuICBnZXQgcHVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMucHVzaCksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgdW5zaGlmdCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMudW5zaGlmdCksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgYXNzaWduKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5hc3NpZ24pLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5jcmVhdGUnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHJlbW92ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgc2NoZW1hOiBleHRyYWN0Q29sbGVjdGlvbih0aGlzLnNjaGVtYSwgcyA9PiBzLnJlbW92ZSksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLnBhcnRpYWxVcGRhdGUnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IG1vdmUoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5tb3ZlKSxcbiAgICAgIHNlYXJjaFBhcmFtczogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5wYXJ0aWFsVXBkYXRlJyxcbiAgICB9O1xuICAgIGlmICh0aGlzLm1vdmVQYXRoKSBvcHRpb25zLnBhdGggPSB0aGlzLm1vdmVQYXRoO1xuICAgIHJldHVybiB0aGlzLmV4dGVuZChvcHRpb25zKTtcbiAgfVxufVxuXG5jb25zdCB0cnlQYXJzZSA9IGlucHV0ID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShpbnB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLFFBQVEsUUFBUSx1QkFBdUI7QUFFaEQsT0FBT0MsaUJBQWlCLE1BQU0sd0JBQXdCO0FBQ3RELE9BQU9DLGFBQWEsTUFBTSxvQkFBb0I7QUFDOUMsT0FBT0MsWUFBWSxNQUFNLG1CQUFtQjtBQUM1QyxTQUFTQyxzQkFBc0IsUUFBUSwyQkFBMkI7QUFDbEUsT0FBT0MsY0FBYyxNQUFNLHFCQUFxQjtBQUNoRCxTQUNFQyxVQUFVLEVBQ1ZDLFlBQVksRUFDWkMsWUFBWSxFQUNaQyxNQUFNLFFBQ0Qsa0JBQWtCO0FBRXpCLE1BQU1DLFVBQVUsR0FDZCx5RUFBeUU7QUFFM0UsU0FBU0MsWUFBWUEsQ0FBQ0MsUUFBUSxFQUFFO0VBQzlCLE9BQU9BLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDLENBQUMsQ0FBQ0MsS0FBSyxDQUFDQyxLQUFLLElBQUk7SUFDcENBLEtBQUssQ0FBQ0MsTUFBTSxHQUFHLEdBQUc7SUFDbEIsTUFBTUQsS0FBSztFQUNiLENBQUMsQ0FBQztBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBSEEsSUFBQUUsUUFBQSxnQkFBQUMsMEJBQUE7QUFJQSxlQUFlLE1BQU1DLFlBQVksU0FBU25CLFFBQVEsQ0FBQztFQUVqRG9CLFdBQVdBLENBQUNDLE9BQU8sRUFBRTtJQUFBLElBQUFDLGNBQUE7SUFDbkIsS0FBSyxFQUFBQSxjQUFBLEdBQ0hELE9BQU8sQ0FBQ0UsS0FBSyxZQUFBRCxjQUFBLEdBQ1gsZ0JBQWdCLEdBQUdFLElBQUksRUFBRTtNQUN2QixNQUFNQyxTQUFTLEdBQ2JDLDJCQUFBLEtBQUksRUFBQVQsUUFBQSxFQUFBQSxRQUFBLEtBQWFPLElBQUksQ0FBQ0csTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBR0gsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztNQUN2RCxNQUFNSSxJQUFJLEdBQUdGLDJCQUFBLEtBQUksRUFBQVQsUUFBQSxFQUFBQSxRQUFBLElBQVlPLElBQUksQ0FBQ0EsSUFBSSxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUdFLFNBQVM7TUFDOUQsT0FBTyxJQUFJLENBQUNDLGFBQWEsQ0FDdkIsSUFBSSxDQUFDQyxHQUFHLENBQUNOLFNBQVMsQ0FBQyxFQUNuQixNQUFNLElBQUksQ0FBQ08sY0FBYyxDQUFDSixJQUFJLENBQ2hDLENBQUMsQ0FDRUssSUFBSSxDQUFDckIsUUFBUSxJQUFJLElBQUksQ0FBQ3NCLGFBQWEsQ0FBQ3RCLFFBQVEsQ0FBQyxDQUFDLENBQzlDcUIsSUFBSSxDQUFDRSxHQUFHLElBQUksSUFBSSxDQUFDQyxPQUFPLENBQUNELEdBQUcsRUFBRSxHQUFHWCxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDLEVBQ0hILE9BQ0YsQ0FBQztJQUNEO0lBQUFnQixNQUFBLENBQUFDLGNBQUEsT0FBQXJCLFFBQUE7TUFBQXNCLFFBQUE7TUFBQUMsS0FBQTtJQUFBO0lBQ0EsSUFDRSxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsSUFDdEIsUUFBUSxJQUFJbkIsT0FBTyxJQUFJLEVBQUUsWUFBWSxJQUFJQSxPQUFPLENBQUUsRUFDbkQ7TUFDQSxJQUFJLENBQUNvQixVQUFVLEdBQ2JwQixPQUFPLENBQUNxQixNQUFNLEtBQUssS0FBSyxJQUFJckIsT0FBTyxDQUFDcUIsTUFBTSxLQUFLYixTQUFTLEdBQ3REQSxTQUFTLEdBQ1QsSUFBSTtJQUNWO0lBQ0EsSUFBSSxJQUFJLENBQUNhLE1BQU0sS0FBS2IsU0FBUyxFQUFFO01BQzdCLElBQUksQ0FBQ2EsTUFBTSxHQUFHLElBQUksQ0FBQ0QsVUFBVSxHQUFHLE1BQU0sR0FBRyxLQUFLO0lBQ2hEO0lBQ0EsSUFBSSxJQUFJLENBQUNFLFNBQVMsS0FBS2QsU0FBUyxFQUFFO01BQ2hDLElBQUksQ0FBQ2MsU0FBUyxHQUFHLEVBQUU7SUFDckI7SUFDQWpCLDJCQUFBLEtBQUksRUFBQVQsUUFBQSxFQUFBQSxRQUFBLElBQ0YsQ0FBQyxFQUFFLE1BQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUNXLElBQUksS0FBS0MsU0FBUyxLQUM3QyxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDZSxRQUFRLENBQUMsSUFBSSxDQUFDRixNQUFNLENBQUM7O0lBRTFDO0lBQ0EsSUFBSU4sT0FBTyxDQUFDUyxHQUFHLENBQUNDLFFBQVEsS0FBSyxZQUFZLEVBQUU7TUFDekMsSUFDRSxJQUFJLENBQUNDLE9BQU8sSUFDWixJQUFJLENBQUNBLE9BQU8sS0FBSyxNQUFNLElBQ3ZCLElBQUksQ0FBQ0MsTUFBTSxJQUFJLElBQUksSUFDbkIsT0FBTyxJQUFJLENBQUNBLE1BQU0sS0FBSyxRQUFRLElBQy9CLE9BQU8sSUFBSSxDQUFDQSxNQUFNLEtBQUssV0FBVyxFQUNsQztRQUNBQyxPQUFPLENBQUNsQyxLQUFLLENBQ1gsWUFBWSxJQUFJLENBQUNnQyxPQUFPLG1HQUMxQixDQUFDO01BQ0g7SUFDRjtJQUVBVixNQUFNLENBQUNDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO01BQ2xDWSxHQUFHQSxDQUFBLEVBQUc7UUFDSjtRQUNBLElBQUksUUFBUSxJQUFJLElBQUksRUFBRSxPQUFPLElBQUksQ0FBQ0MsTUFBTTtRQUN4QyxPQUFPLElBQUksQ0FBQ1IsU0FBUyxHQUFHLElBQUksQ0FBQ1MsSUFBSTtNQUNuQztJQUNGLENBQUMsQ0FBQztFQUNKO0VBRUFDLEdBQUdBLENBQUMsR0FBRzdCLElBQUksRUFBRTtJQUNYLE9BQU8sR0FBRyxJQUFJLENBQUNrQixNQUFNLElBQUksSUFBSSxDQUFDWCxHQUFHLENBQy9CTCwyQkFBQSxLQUFJLEVBQUFULFFBQUEsRUFBQUEsUUFBQSxLQUFhTyxJQUFJLENBQUNHLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUdILElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ3RELENBQUMsRUFBRTtFQUNMOztFQUVBO0VBQ0FPLEdBQUdBLENBQUNOLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRTtJQUNsQixNQUFNNkIsTUFBTSxHQUFHL0MsWUFBWSxDQUFDLElBQUksQ0FBQzZDLElBQUksQ0FBQztJQUN0QyxNQUFNRyxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLE1BQU1DLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDdkJuQixNQUFNLENBQUNvQixJQUFJLENBQUNoQyxTQUFTLENBQUMsQ0FBQ2lDLE9BQU8sQ0FBQ0MsQ0FBQyxJQUFJO01BQ2xDLElBQUlMLE1BQU0sQ0FBQ00sR0FBRyxDQUFDRCxDQUFDLENBQUMsRUFBRTtRQUNqQixJQUFJbEMsU0FBUyxDQUFDa0MsQ0FBQyxDQUFDLEtBQUs5QixTQUFTLEVBQzVCMEIsVUFBVSxDQUFDSSxDQUFDLENBQUMsR0FDWEUsS0FBSyxDQUFDQyxPQUFPLENBQUNyQyxTQUFTLENBQUNrQyxDQUFDLENBQUMsQ0FBQyxHQUN6QmxDLFNBQVMsQ0FBQ2tDLENBQUMsQ0FBQyxDQUFDSSxHQUFHLENBQUNDLE1BQU0sQ0FBQyxHQUN4QkEsTUFBTSxDQUFDdkMsU0FBUyxDQUFDa0MsQ0FBQyxDQUFDLENBQUM7TUFDNUIsQ0FBQyxNQUFNO1FBQ0xILFlBQVksQ0FBQ0csQ0FBQyxDQUFDLEdBQUdsQyxTQUFTLENBQUNrQyxDQUFDLENBQUM7TUFDaEM7SUFDRixDQUFDLENBQUM7SUFDRixNQUFNTSxPQUFPLEdBQUczRCxVQUFVLENBQUMsSUFBSSxDQUFDOEMsSUFBSSxDQUFDLENBQUNHLFVBQVUsQ0FBQztJQUNqRCxJQUFJbEIsTUFBTSxDQUFDb0IsSUFBSSxDQUFDRCxZQUFZLENBQUMsQ0FBQzdCLE1BQU0sRUFBRTtNQUNwQyxPQUFPLEdBQUcsSUFBSSxDQUFDZ0IsU0FBUyxHQUFHc0IsT0FBTyxJQUFJLElBQUksQ0FBQ0MsY0FBYyxDQUFDVixZQUFZLENBQUMsRUFBRTtJQUMzRTtJQUNBLE9BQU8sR0FBRyxJQUFJLENBQUNiLFNBQVMsR0FBR3NCLE9BQU8sRUFBRTtFQUN0Qzs7RUFFQTtFQUNBQyxjQUFjQSxDQUFDVixZQUFZLEVBQUU7SUFDM0IsT0FBT25ELGNBQWMsQ0FBQ21ELFlBQVksQ0FBQztFQUNyQztFQUVBVyxVQUFVQSxDQUFDQyxPQUFPLEVBQUU7SUFDbEIsT0FBT0EsT0FBTztFQUNoQjs7RUFFQTtFQUNBLE1BQU1wQyxjQUFjQSxDQUFDSixJQUFJLEVBQUU7SUFDekIsTUFBTXlDLFVBQVUsR0FBRzVELE1BQU0sQ0FBQ21CLElBQUksQ0FBQztJQUMvQixJQUFJeUMsVUFBVSxFQUFFO01BQ2R6QyxJQUFJLEdBQUcwQyxJQUFJLENBQUNDLFNBQVMsQ0FBQzNDLElBQUksQ0FBQztJQUM3QjtJQUNBLE1BQU00QyxJQUFJLEdBQUc7TUFDWCxHQUFHLElBQUksQ0FBQ0MsV0FBVztNQUNuQi9CLE1BQU0sRUFBRSxJQUFJLENBQUNBLE1BQU07TUFDbkJnQyxNQUFNLEVBQUUsSUFBSSxDQUFDQSxNQUFNO01BQ25COUM7SUFDRixDQUFDO0lBQ0QsSUFBSSxDQUFDQSxJQUFJLElBQUl5QyxVQUFVLEVBQUU7TUFDdkJHLElBQUksQ0FBQ0osT0FBTyxHQUFHO1FBQ2I7UUFDQSxjQUFjLEVBQUUsa0JBQWtCO1FBQ2xDLEdBQUdJLElBQUksQ0FBQ0o7TUFDVixDQUFDO0lBQ0g7SUFDQUksSUFBSSxDQUFDSixPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUNELFVBQVUsQ0FBQ0ssSUFBSSxDQUFDSixPQUFPLENBQUM7SUFDbEQsT0FBT0ksSUFBSTtFQUNiOztFQUVBO0VBQ0ExQyxhQUFhQSxDQUFDNkMsS0FBSyxFQUFFSCxJQUFJLEVBQUU7SUFDekIsT0FBT2pELEtBQUssQ0FBQ29ELEtBQUssRUFBRUgsSUFBSSxDQUFDLENBQ3RCdkMsSUFBSSxDQUFDckIsUUFBUSxJQUFJO01BQ2hCLElBQUksQ0FBQ0EsUUFBUSxDQUFDZ0UsRUFBRSxFQUFFO1FBQ2hCLE1BQU0sSUFBSXpFLFlBQVksQ0FBQ1MsUUFBUSxDQUFDO01BQ2xDO01BQ0EsT0FBT0EsUUFBUTtJQUNqQixDQUFDLENBQUMsQ0FDREUsS0FBSyxDQUFDQyxLQUFLLElBQUk7TUFDZDtNQUNBLElBQUlBLEtBQUssWUFBWThELFNBQVMsRUFBRTtRQUM5QjlELEtBQUssQ0FBQ0MsTUFBTSxHQUFHLEdBQUc7TUFDcEI7TUFDQSxNQUFNRCxLQUFLO0lBQ2IsQ0FBQyxDQUFDO0VBQ047RUFFQW1CLGFBQWFBLENBQUN0QixRQUFRLEVBQUU7SUFDdEIsSUFBSUEsUUFBUSxDQUFDSSxNQUFNLEtBQUssR0FBRyxFQUFFLE9BQU84RCxPQUFPLENBQUNDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFFekQsSUFBSSxJQUFJLENBQUNoQyxPQUFPLEVBQUU7TUFDaEI7TUFDQSxJQUFJWCxPQUFPLENBQUNTLEdBQUcsQ0FBQ0MsUUFBUSxLQUFLLFlBQVksRUFBRTtRQUN6QyxJQUNFLElBQUksQ0FBQ0MsT0FBTyxLQUFLLE1BQU0sSUFDdkIsSUFBSSxDQUFDQyxNQUFNLElBQUksSUFBSSxJQUNuQixPQUFPLElBQUksQ0FBQ0EsTUFBTSxLQUFLLFFBQVEsSUFDL0IsT0FBTyxJQUFJLENBQUNBLE1BQU0sS0FBSyxXQUFXLEVBQ2xDO1VBQ0EsTUFBTWpDLEtBQUssR0FBRyxJQUFJWixZQUFZLENBQUNTLFFBQVEsQ0FBQztVQUN4Q0csS0FBSyxDQUFDQyxNQUFNLEdBQUcsR0FBRztVQUNsQkQsS0FBSyxDQUFDaUUsT0FBTyxHQUFHLFlBQVksSUFBSSxDQUFDakMsT0FBTyxtR0FBbUc7VUFDM0ksTUFBTWhDLEtBQUs7UUFDYjtNQUNGO01BQ0EsSUFBSSxJQUFJLENBQUNnQyxPQUFPLEtBQUssUUFBUSxFQUFFLE9BQU8rQixPQUFPLENBQUNDLE9BQU8sQ0FBQ25FLFFBQVEsQ0FBQ2dCLElBQUksQ0FBQztNQUNwRSxPQUFPLElBQUksQ0FBQ21CLE9BQU8sS0FBSyxNQUFNLEdBQzFCcEMsWUFBWSxDQUFDQyxRQUFRLENBQUMsR0FDdEJBLFFBQVEsQ0FBQyxJQUFJLENBQUNtQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzlCO0lBRUEsTUFBTWtDLFdBQVcsR0FBR3JFLFFBQVEsQ0FBQ3dELE9BQU8sQ0FBQ2xCLEdBQUcsQ0FBQyxjQUFjLENBQUM7SUFDeEQsSUFBSStCLFdBQVcsWUFBWEEsV0FBVyxDQUFFckMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU9qQyxZQUFZLENBQUNDLFFBQVEsQ0FBQztJQUVoRSxNQUFNc0UsUUFBUSxHQUFHRCxXQUFXLElBQUksQ0FBQ3ZFLFVBQVUsQ0FBQ3lFLElBQUksQ0FBQ0YsV0FBVyxDQUFDO0lBRTdELElBQ0UsT0FBTyxJQUFJLENBQUNqQyxNQUFNLEtBQUssUUFBUSxJQUMvQixPQUFPLElBQUksQ0FBQ0EsTUFBTSxLQUFLLFdBQVcsSUFDbEMsSUFBSSxDQUFDQSxNQUFNLEtBQUssSUFBSSxJQUNwQixJQUFJLENBQUNaLE9BQU8sS0FBS2pCLFlBQVksQ0FBQ2lFLFNBQVMsQ0FBQ2hELE9BQU8sRUFFL0MsT0FBTzhDLFFBQVEsR0FBR3RFLFFBQVEsQ0FBQ3lFLElBQUksQ0FBQyxDQUFDLEdBQUd6RSxRQUFRLENBQUMwRSxJQUFJLENBQUMsQ0FBQztJQUVyRCxJQUFJSixRQUFRLEVBQUU7TUFDWixNQUFNbkUsS0FBSyxHQUFHLElBQUlaLFlBQVksQ0FBQ1MsUUFBUSxDQUFDO01BQ3hDRyxLQUFLLENBQUNDLE1BQU0sR0FBRyxHQUFHO01BQ2xCRCxLQUFLLENBQUNpRSxPQUFPLEdBQUcsNkNBQTZDLElBQUksQ0FBQ2hDLE1BQU0sRUFBRTtNQUMxRTtNQUNBLElBQUlaLE9BQU8sQ0FBQ1MsR0FBRyxDQUFDQyxRQUFRLEtBQUssWUFBWSxFQUFFO1FBQ3pDL0IsS0FBSyxDQUFDaUUsT0FBTyxHQUFHLG1DQUFtQ0MsV0FBVyxnQkFBZ0IsSUFBSSxDQUFDakMsTUFBTSx3RkFBd0Y7TUFDbkw7TUFDQSxNQUFNakMsS0FBSztJQUNiO0lBRUEsT0FBT0gsUUFBUSxDQUFDMEUsSUFBSSxDQUFDLENBQUMsQ0FBQ3JELElBQUksQ0FBQ3FELElBQUksSUFBSTtNQUNsQyxNQUFNdkUsS0FBSyxHQUFHLElBQUlaLFlBQVksQ0FBQ1MsUUFBUSxDQUFDO01BQ3hDRyxLQUFLLENBQUNDLE1BQU0sR0FBRyxHQUFHO01BQ2xCRCxLQUFLLENBQUNpRSxPQUFPLEdBQUcsdUNBQXVDLElBQUksQ0FBQ2hDLE1BQU0sRUFBRTtNQUNwRTtNQUNBLElBQUlaLE9BQU8sQ0FBQ1MsR0FBRyxDQUFDQyxRQUFRLEtBQUssWUFBWSxFQUFFO1FBQ3pDLElBQ0UsRUFBRW1DLFdBQVcsWUFBWEEsV0FBVyxDQUFFckMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJMEMsSUFBSSxDQUFDQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUN0RTtVQUNBLElBQUlDLFFBQVEsQ0FBQ0YsSUFBSSxDQUFDLEtBQUt6RCxTQUFTLEVBQUU7WUFDaENkLEtBQUssQ0FBQ2lFLE9BQU8sR0FBRztBQUM1QjtBQUNBO0FBQ0E7QUFDQSwyRkFBMkY7VUFDakY7UUFDRixDQUFDLE1BQU07VUFDTGpFLEtBQUssQ0FBQ2lFLE9BQU8sR0FBRyx1Q0FBdUMsSUFBSSxDQUFDaEMsTUFBTTtBQUM1RTtBQUNBO0FBQ0EsbUNBQW1Dc0MsSUFBSSxDQUFDRyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1FBQ25EO01BQ0Y7TUFDQSxNQUFNMUUsS0FBSztJQUNiLENBQUMsQ0FBQztFQUNKO0VBRUFxQixPQUFPQSxDQUFDSSxLQUFLLEVBQUU7SUFDYixPQUFPQSxLQUFLO0VBQ2Q7RUFFQWtELFdBQVdBLENBQUMzRSxLQUFLLEVBQUU7SUFDakIsT0FBT0EsS0FBSyxDQUFDQyxNQUFNLElBQUksR0FBRyxHQUFHLE1BQU0sR0FBR2EsU0FBUztFQUNqRDtFQUVBLElBQUk4RCxTQUFTQSxDQUFBLEVBQUc7SUFDZCxPQUFPbkYsWUFBWSxDQUFDLElBQUksQ0FBQzRDLElBQUksQ0FBQztFQUNoQztFQUVBd0MsT0FBT0EsQ0FBQ3ZDLEdBQUcsRUFBRTtJQUNYLE1BQU13QyxNQUFNLEdBQUcsSUFBSSxDQUFDbkQsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUNDLFNBQVM7SUFDakQsSUFBSSxDQUFDVSxHQUFHLENBQUNrQyxVQUFVLENBQUNNLE1BQU0sQ0FBQyxFQUFFLE9BQU8sS0FBSztJQUN6QyxJQUFJQyxZQUFZLEdBQUd6QyxHQUFHLENBQUMwQyxXQUFXLENBQUMsR0FBRyxDQUFDO0lBQ3ZDLElBQUlELFlBQVksS0FBSyxDQUFDLENBQUMsRUFBRUEsWUFBWSxHQUFHakUsU0FBUztJQUNqRCxPQUFPLElBQUksQ0FBQzhELFNBQVMsQ0FBQ1IsSUFBSSxDQUFDOUIsR0FBRyxDQUFDb0MsU0FBUyxDQUFDSSxNQUFNLENBQUNsRSxNQUFNLEVBQUVtRSxZQUFZLENBQUMsQ0FBQztFQUN4RTtFQUVBRSxNQUFNQSxDQUFDM0UsT0FBTyxFQUFFO0lBQ2Q7SUFDQTtJQUNBLE1BQU00RSxDQUFDLFNBQVMsSUFBSSxDQUFDN0UsV0FBVyxDQUFDO0lBRWpDaUIsTUFBTSxDQUFDNkQsTUFBTSxDQUFDRCxDQUFDLENBQUNiLFNBQVMsRUFBRSxJQUFJLENBQUM7SUFFaEMsT0FBTyxJQUFJYSxDQUFDO0lBQ1Y7SUFDQTtNQUFFMUUsS0FBSyxFQUFFLElBQUksQ0FBQ0EsS0FBSztNQUFFLEdBQUdGO0lBQVEsQ0FDbEMsQ0FBQztFQUNIO0VBRUE4RSxTQUFTQSxDQUFDQyxZQUFZLEVBQUU7SUFDdEIsSUFBSSxPQUFPQSxZQUFZLEtBQUssUUFBUSxFQUFFO01BQ3BDLE1BQU1DLFNBQVMsR0FBR0QsWUFBWTtNQUM5QkEsWUFBWSxHQUFHQSxDQUFDO1FBQUUsR0FBR0U7TUFBTyxDQUFDLEtBQUs7UUFDaEMsT0FBT0EsTUFBTSxDQUFDRCxTQUFTLENBQUM7UUFDeEIsT0FBTyxDQUFDQyxNQUFNLENBQUM7TUFDakIsQ0FBQztJQUNIO0lBQ0EsSUFBSUMsS0FBSyxHQUFHLEtBQUs7SUFDakIsTUFBTUMscUJBQXFCLEdBQUdDLFVBQVUsSUFBSTtNQUMxQ0YsS0FBSyxHQUFHLElBQUk7TUFDWixPQUFPbkcsc0JBQXNCLENBQUNnRyxZQUFZLEVBQUVLLFVBQVUsQ0FBQztJQUN6RCxDQUFDO0lBQ0QsTUFBTUMsU0FBUyxHQUFHeEcsYUFBYSxDQUFDLElBQUksQ0FBQzhDLE1BQU0sRUFBRXdELHFCQUFxQixDQUFDO0lBRW5FLElBQUksQ0FBQ0QsS0FBSyxFQUFFLE1BQU0sSUFBSUksS0FBSyxDQUFDLG9CQUFvQixDQUFDO0lBQ2pELE1BQU1DLEdBQUcsR0FBRyxJQUFJO0lBRWhCLE9BQU8sSUFBSSxDQUFDWixNQUFNLENBQUM7TUFDakJoRCxNQUFNLEVBQUUwRCxTQUFTO01BQ2pCckQsR0FBR0EsQ0FBQyxHQUFHN0IsSUFBSSxFQUFFO1FBQ1gsT0FBT29GLEdBQUcsQ0FBQ3ZELEdBQUcsQ0FBQ3dELElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBR1QsWUFBWSxDQUFDLEdBQUc1RSxJQUFJLENBQUMsQ0FBQztNQUNyRCxDQUFDO01BQ0RzRixJQUFJLEVBQUUsSUFBSSxDQUFDQSxJQUFJLEdBQUc7SUFDcEIsQ0FBQyxDQUFDO0VBQ0o7RUFFQSxJQUFJQyxPQUFPQSxDQUFBLEVBQUc7SUFDWixPQUFPLElBQUksQ0FBQ1osU0FBUyxDQUFDLElBQUksQ0FBQ2EsZUFBZSxDQUFDO0VBQzdDO0VBRUEsSUFBSUMsSUFBSUEsQ0FBQSxFQUFHO0lBQ1QsT0FBTyxJQUFJLENBQUNqQixNQUFNLENBQUM7TUFDakJ0RCxNQUFNLEVBQUUsTUFBTTtNQUNkTSxNQUFNLEVBQUUvQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMrQyxNQUFNLEVBQUVrRSxDQUFDLElBQUlBLENBQUMsQ0FBQ0QsSUFBSSxDQUFDO01BQ25ESCxJQUFJLEVBQUUsSUFBSSxDQUFDQSxJQUFJLEdBQUc7SUFDcEIsQ0FBQyxDQUFDO0VBQ0o7RUFFQSxJQUFJSyxPQUFPQSxDQUFBLEVBQUc7SUFDWixPQUFPLElBQUksQ0FBQ25CLE1BQU0sQ0FBQztNQUNqQnRELE1BQU0sRUFBRSxNQUFNO01BQ2RNLE1BQU0sRUFBRS9DLGlCQUFpQixDQUFDLElBQUksQ0FBQytDLE1BQU0sRUFBRWtFLENBQUMsSUFBSUEsQ0FBQyxDQUFDQyxPQUFPLENBQUM7TUFDdERMLElBQUksRUFBRSxJQUFJLENBQUNBLElBQUksR0FBRztJQUNwQixDQUFDLENBQUM7RUFDSjtFQUVBLElBQUlaLE1BQU1BLENBQUEsRUFBRztJQUNYLE9BQU8sSUFBSSxDQUFDRixNQUFNLENBQUM7TUFDakJ0RCxNQUFNLEVBQUUsTUFBTTtNQUNkTSxNQUFNLEVBQUUvQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMrQyxNQUFNLEVBQUVrRSxDQUFDLElBQUlBLENBQUMsQ0FBQ2hCLE1BQU0sQ0FBQztNQUNyRFksSUFBSSxFQUFFLElBQUksQ0FBQ0EsSUFBSSxHQUFHO0lBQ3BCLENBQUMsQ0FBQztFQUNKO0VBRUEsSUFBSU0sTUFBTUEsQ0FBQSxFQUFHO0lBQ1gsT0FBTyxJQUFJLENBQUNwQixNQUFNLENBQUM7TUFDakJ0RCxNQUFNLEVBQUUsT0FBTztNQUNmTSxNQUFNLEVBQUUvQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMrQyxNQUFNLEVBQUVrRSxDQUFDLElBQUlBLENBQUMsQ0FBQ0UsTUFBTSxDQUFDO01BQ3JETixJQUFJLEVBQUUsSUFBSSxDQUFDQSxJQUFJLEdBQUc7SUFDcEIsQ0FBQyxDQUFDO0VBQ0o7RUFFQSxJQUFJTyxJQUFJQSxDQUFBLEVBQUc7SUFDVCxNQUFNaEcsT0FBTyxHQUFHO01BQ2RxQixNQUFNLEVBQUUsT0FBTztNQUNmTSxNQUFNLEVBQUUvQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMrQyxNQUFNLEVBQUVrRSxDQUFDLElBQUlBLENBQUMsQ0FBQ0csSUFBSSxDQUFDO01BQ25EN0QsWUFBWSxFQUFFM0IsU0FBUztNQUN2QmlGLElBQUksRUFBRSxJQUFJLENBQUNBLElBQUksR0FBRztJQUNwQixDQUFDO0lBQ0QsSUFBSSxJQUFJLENBQUNRLFFBQVEsRUFBRWpHLE9BQU8sQ0FBQytCLElBQUksR0FBRyxJQUFJLENBQUNrRSxRQUFRO0lBQy9DLE9BQU8sSUFBSSxDQUFDdEIsTUFBTSxDQUFDM0UsT0FBTyxDQUFDO0VBQzdCO0FBQ0Y7QUFFQSxNQUFNbUUsUUFBUSxHQUFHYixLQUFLLElBQUk7RUFDeEIsSUFBSTtJQUNGLE9BQU9MLElBQUksQ0FBQ2lELEtBQUssQ0FBQzVDLEtBQUssQ0FBQztFQUMxQixDQUFDLENBQUMsT0FBTzZDLENBQUMsRUFBRTtJQUNWLE9BQU8zRixTQUFTO0VBQ2xCO0FBQ0YsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
287
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbmRwb2ludCIsImV4dHJhY3RDb2xsZWN0aW9uIiwibWFwQ29sbGVjdGlvbiIsIk5ldHdvcmtFcnJvciIsImNyZWF0ZVBhZ2luYXRpb25TY2hlbWEiLCJwYXJhbXNUb1N0cmluZyIsImdldFVybEJhc2UiLCJnZXRVcmxUb2tlbnMiLCJnZXRQYXRoUmVnZXgiLCJpc1Bvam8iLCJ0ZXh0TGlrZVJlIiwianNvblJlc3BvbnNlIiwicmVzcG9uc2UiLCJqc29uIiwiY2F0Y2giLCJlcnJvciIsInN0YXR1cyIsIl9oYXNCb2R5IiwiX2NsYXNzUHJpdmF0ZUZpZWxkTG9vc2VLZXkiLCJSZXN0RW5kcG9pbnQiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJfb3B0aW9ucyRmZXRjaCIsImZldGNoIiwiYXJncyIsInVybFBhcmFtcyIsIl9jbGFzc1ByaXZhdGVGaWVsZExvb3NlQmFzZSIsImxlbmd0aCIsImJvZHkiLCJ1bmRlZmluZWQiLCJmZXRjaFJlc3BvbnNlIiwidXJsIiwiZ2V0UmVxdWVzdEluaXQiLCJ0aGVuIiwicGFyc2VSZXNwb25zZSIsInJlcyIsInByb2Nlc3MiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIndyaXRhYmxlIiwidmFsdWUiLCJzaWRlRWZmZWN0IiwibWV0aG9kIiwidXJsUHJlZml4IiwiaW5jbHVkZXMiLCJlbnYiLCJOT0RFX0VOViIsImNvbnRlbnQiLCJzY2hlbWEiLCJjb25zb2xlIiwiZ2V0IiwiX19uYW1lIiwicGF0aCIsImtleSIsInRva2VucyIsInBhdGhQYXJhbXMiLCJzZWFyY2hQYXJhbXMiLCJrZXlzIiwiZm9yRWFjaCIsImsiLCJoYXMiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJTdHJpbmciLCJ1cmxCYXNlIiwic2VhcmNoVG9TdHJpbmciLCJnZXRIZWFkZXJzIiwiaGVhZGVycyIsImJvZHlJc0pTT04iLCJKU09OIiwic3RyaW5naWZ5IiwiaW5pdCIsInJlcXVlc3RJbml0Iiwic2lnbmFsIiwiaW5wdXQiLCJvayIsIlR5cGVFcnJvciIsIlByb21pc2UiLCJyZXNvbHZlIiwibWVzc2FnZSIsImNvbnRlbnRUeXBlIiwiaXNCaW5hcnkiLCJ0ZXN0IiwicHJvdG90eXBlIiwiYmxvYiIsInRleHQiLCJzdGFydHNXaXRoIiwidHJ5UGFyc2UiLCJzdWJzdHJpbmciLCJlcnJvclBvbGljeSIsInBhdGhSZWdleCIsInRlc3RLZXkiLCJwcmVmaXgiLCJsYXN0UXVlc3Rpb24iLCJsYXN0SW5kZXhPZiIsImV4dGVuZCIsIkUiLCJhc3NpZ24iLCJwYWdpbmF0ZWQiLCJyZW1vdmVDdXJzb3IiLCJmaWVsZE5hbWUiLCJwYXJhbXMiLCJmb3VuZCIsImNyZWF0ZVBhZ2luYXRlZFNjaGVtYSIsImNvbGxlY3Rpb24iLCJuZXdTY2hlbWEiLCJFcnJvciIsInN1cCIsImNhbGwiLCJuYW1lIiwiZ2V0UGFnZSIsInBhZ2luYXRpb25GaWVsZCIsInB1c2giLCJzIiwidW5zaGlmdCIsInJlbW92ZSIsIm1vdmUiLCJtb3ZlUGF0aCIsInBhcnNlIiwiZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9SZXN0RW5kcG9pbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5kcG9pbnQgfSBmcm9tICdAZGF0YS1jbGllbnQvZW5kcG9pbnQnO1xuXG5pbXBvcnQgZXh0cmFjdENvbGxlY3Rpb24gZnJvbSAnLi9leHRyYWN0Q29sbGVjdGlvbi5qcyc7XG5pbXBvcnQgbWFwQ29sbGVjdGlvbiBmcm9tICcuL21hcENvbGxlY3Rpb24uanMnO1xuaW1wb3J0IE5ldHdvcmtFcnJvciBmcm9tICcuL05ldHdvcmtFcnJvci5qcyc7XG5pbXBvcnQgeyBjcmVhdGVQYWdpbmF0aW9uU2NoZW1hIH0gZnJvbSAnLi9wYWdpbmF0ZWRDb2xsZWN0aW9ucy5qcyc7XG5pbXBvcnQgcGFyYW1zVG9TdHJpbmcgZnJvbSAnLi9wYXJhbXNUb1N0cmluZy5qcyc7XG5pbXBvcnQge1xuICBnZXRVcmxCYXNlLFxuICBnZXRVcmxUb2tlbnMsXG4gIGdldFBhdGhSZWdleCxcbiAgaXNQb2pvLFxufSBmcm9tICcuL1Jlc3RIZWxwZXJzLmpzJztcblxuY29uc3QgdGV4dExpa2VSZSA9XG4gIC9cXGJ0ZXh0XFxifFxcYnhtbFxcYnxcXGJodG1sXFxifFxcYmphdmFzY3JpcHRcXGJ8XFxiY3NzXFxifFxcYmNzdlxcYnxcXGJ1cmxlbmNvZGVkXFxiLztcblxuZnVuY3Rpb24ganNvblJlc3BvbnNlKHJlc3BvbnNlKSB7XG4gIHJldHVybiByZXNwb25zZS5qc29uKCkuY2F0Y2goZXJyb3IgPT4ge1xuICAgIGVycm9yLnN0YXR1cyA9IDQwMDtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfSk7XG59XG5cbi8qKiBTaW1wbGlmaWVzIGVuZHBvaW50IGRlZmluaXRpb25zIHRoYXQgZm9sbG93IFJFU1QgcGF0dGVybnNcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZGF0YWNsaWVudC5pby9yZXN0L2FwaS9SZXN0RW5kcG9pbnRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzdEVuZHBvaW50IGV4dGVuZHMgRW5kcG9pbnQge1xuICAjaGFzQm9keTtcbiAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgIHN1cGVyKFxuICAgICAgb3B0aW9ucy5mZXRjaCA/P1xuICAgICAgICBhc3luYyBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgICAgIGNvbnN0IHVybFBhcmFtcyA9XG4gICAgICAgICAgICB0aGlzLiNoYXNCb2R5ICYmIGFyZ3MubGVuZ3RoIDwgMiA/IHt9IDogYXJnc1swXSB8fCB7fTtcbiAgICAgICAgICBjb25zdCBib2R5ID0gdGhpcy4jaGFzQm9keSA/IGFyZ3NbYXJncy5sZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICByZXR1cm4gdGhpcy5mZXRjaFJlc3BvbnNlKFxuICAgICAgICAgICAgdGhpcy51cmwodXJsUGFyYW1zKSxcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZ2V0UmVxdWVzdEluaXQoYm9keSksXG4gICAgICAgICAgKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gdGhpcy5wYXJzZVJlc3BvbnNlKHJlc3BvbnNlKSlcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiB0aGlzLnByb2Nlc3MocmVzLCAuLi5hcmdzKSk7XG4gICAgICAgIH0sXG4gICAgICBvcHRpb25zLFxuICAgICk7XG4gICAgLy8gd2Ugd2FudCB0byB1c2UgdGhlIHByb3RvdHlwZSBjaGFpbiBoZXJlXG4gICAgaWYgKFxuICAgICAgISgnc2lkZUVmZmVjdCcgaW4gdGhpcykgfHxcbiAgICAgICgnbWV0aG9kJyBpbiBvcHRpb25zICYmICEoJ3NpZGVFZmZlY3QnIGluIG9wdGlvbnMpKVxuICAgICkge1xuICAgICAgdGhpcy5zaWRlRWZmZWN0ID1cbiAgICAgICAgb3B0aW9ucy5tZXRob2QgPT09ICdHRVQnIHx8IG9wdGlvbnMubWV0aG9kID09PSB1bmRlZmluZWQgP1xuICAgICAgICAgIHVuZGVmaW5lZFxuICAgICAgICA6IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLm1ldGhvZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm1ldGhvZCA9IHRoaXMuc2lkZUVmZmVjdCA/ICdQT1NUJyA6ICdHRVQnO1xuICAgIH1cbiAgICBpZiAodGhpcy51cmxQcmVmaXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy51cmxQcmVmaXggPSAnJztcbiAgICB9XG4gICAgdGhpcy4jaGFzQm9keSA9XG4gICAgICAoISgnYm9keScgaW4gdGhpcykgfHwgdGhpcy5ib2R5ICE9PSB1bmRlZmluZWQpICYmXG4gICAgICAhWydHRVQnLCAnREVMRVRFJ10uaW5jbHVkZXModGhpcy5tZXRob2QpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmNvbnRlbnQgJiZcbiAgICAgICAgdGhpcy5jb250ZW50ICE9PSAnanNvbicgJiZcbiAgICAgICAgdGhpcy5zY2hlbWEgIT0gbnVsbCAmJlxuICAgICAgICB0eXBlb2YgdGhpcy5zY2hlbWEgIT09ICdzdHJpbmcnICYmXG4gICAgICAgIHR5cGVvZiB0aGlzLnNjaGVtYSAhPT0gJ3VuZGVmaW5lZCdcbiAgICAgICkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIGBjb250ZW50ICcke3RoaXMuY29udGVudH0nIGlzIGluY29tcGF0aWJsZSB3aXRoIHNjaGVtYS4gQmluYXJ5L3RleHQgcmVzcG9uc2VzIGNhbm5vdCBiZSBub3JtYWxpemVkLiBVc2Ugc2NoZW1hOiB1bmRlZmluZWQuYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ25hbWUnLCB7XG4gICAgICBnZXQoKSB7XG4gICAgICAgIC8vIHVzaW5nICdpbicgdG8gZW5zdXJlIGluaGVyaXRhbmNlIGxvb2t1cFxuICAgICAgICBpZiAoJ19fbmFtZScgaW4gdGhpcykgcmV0dXJuIHRoaXMuX19uYW1lO1xuICAgICAgICByZXR1cm4gdGhpcy51cmxQcmVmaXggKyB0aGlzLnBhdGg7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAga2V5KC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5tZXRob2R9ICR7dGhpcy51cmwoXG4gICAgICB0aGlzLiNoYXNCb2R5ICYmIGFyZ3MubGVuZ3RoIDwgMiA/IHt9IDogYXJnc1swXSB8fCB7fSxcbiAgICApfWA7XG4gIH1cblxuICAvKiogR2V0IHRoZSB1cmwgKi9cbiAgdXJsKHVybFBhcmFtcyA9IHt9KSB7XG4gICAgY29uc3QgdG9rZW5zID0gZ2V0VXJsVG9rZW5zKHRoaXMucGF0aCk7XG4gICAgY29uc3QgcGF0aFBhcmFtcyA9IHt9O1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHt9O1xuICAgIE9iamVjdC5rZXlzKHVybFBhcmFtcykuZm9yRWFjaChrID0+IHtcbiAgICAgIGlmICh0b2tlbnMuaGFzKGspKSB7XG4gICAgICAgIGlmICh1cmxQYXJhbXNba10gIT09IHVuZGVmaW5lZClcbiAgICAgICAgICBwYXRoUGFyYW1zW2tdID1cbiAgICAgICAgICAgIEFycmF5LmlzQXJyYXkodXJsUGFyYW1zW2tdKSA/XG4gICAgICAgICAgICAgIHVybFBhcmFtc1trXS5tYXAoU3RyaW5nKVxuICAgICAgICAgICAgOiBTdHJpbmcodXJsUGFyYW1zW2tdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlYXJjaFBhcmFtc1trXSA9IHVybFBhcmFtc1trXTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB1cmxCYXNlID0gZ2V0VXJsQmFzZSh0aGlzLnBhdGgpKHBhdGhQYXJhbXMpO1xuICAgIGlmIChPYmplY3Qua2V5cyhzZWFyY2hQYXJhbXMpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMudXJsUHJlZml4fSR7dXJsQmFzZX0/JHt0aGlzLnNlYXJjaFRvU3RyaW5nKHNlYXJjaFBhcmFtcyl9YDtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMudXJsUHJlZml4fSR7dXJsQmFzZX1gO1xuICB9XG5cbiAgLyoqIEVuY29kZSB0aGUgdXJsIHNlYXJjaFBhcmFtcyAqL1xuICBzZWFyY2hUb1N0cmluZyhzZWFyY2hQYXJhbXMpIHtcbiAgICByZXR1cm4gcGFyYW1zVG9TdHJpbmcoc2VhcmNoUGFyYW1zKTtcbiAgfVxuXG4gIGdldEhlYWRlcnMoaGVhZGVycykge1xuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgLyoqIEluaXQgb3B0aW9ucyBmb3IgZmV0Y2ggLSBydW4gYXQgZmV0Y2ggKi9cbiAgYXN5bmMgZ2V0UmVxdWVzdEluaXQoYm9keSkge1xuICAgIC8vIHBsYWluIG9iamVjdHMgYW5kIGFycmF5cyBhcmUgSlNPTjsgRm9ybURhdGEsIEJsb2IsIHN0cmluZ3MsIGV0YyBwYXNzIHRocm91Z2ggdG8gZmV0Y2hcbiAgICBjb25zdCBib2R5SXNKU09OID0gaXNQb2pvKGJvZHkpIHx8IEFycmF5LmlzQXJyYXkoYm9keSk7XG4gICAgaWYgKGJvZHlJc0pTT04pIHtcbiAgICAgIGJvZHkgPSBKU09OLnN0cmluZ2lmeShib2R5KTtcbiAgICB9XG4gICAgY29uc3QgaW5pdCA9IHtcbiAgICAgIC4uLnRoaXMucmVxdWVzdEluaXQsXG4gICAgICBtZXRob2Q6IHRoaXMubWV0aG9kLFxuICAgICAgc2lnbmFsOiB0aGlzLnNpZ25hbCxcbiAgICAgIGJvZHksXG4gICAgfTtcbiAgICBpZiAoIWJvZHkgfHwgYm9keUlzSlNPTikge1xuICAgICAgaW5pdC5oZWFkZXJzID0ge1xuICAgICAgICAvLyBkZWZhdWx0IHRvIGFwcGxpY2F0aW9uL2pzb24gYnV0IGFsbG93IHVzZXIgZXhwbGljaXQgb3ZlcnJpZGVzXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIC4uLmluaXQuaGVhZGVycyxcbiAgICAgIH07XG4gICAgfVxuICAgIGluaXQuaGVhZGVycyA9IGF3YWl0IHRoaXMuZ2V0SGVhZGVycyhpbml0LmhlYWRlcnMpO1xuICAgIHJldHVybiBpbml0O1xuICB9XG5cbiAgLyoqIFBlcmZvcm0gbmV0d29yayByZXF1ZXN0IGFuZCByZXNvbHZlIHdpdGggSFRUUCBSZXNwb25zZSAqL1xuICBmZXRjaFJlc3BvbnNlKGlucHV0LCBpbml0KSB7XG4gICAgcmV0dXJuIGZldGNoKGlucHV0LCBpbml0KVxuICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IE5ldHdvcmtFcnJvcihyZXNwb25zZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIC8vIGVuc3VyZSBDT1JTLCBuZXR3b3JrIGRvd24sIGFuZCBwYXJzZSBlcnJvcnMgYXJlIHN0aWxsIGNhdWdodCBieSBOZXR3b3JrRXJyb3JCb3VuZGFyeVxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHtcbiAgICAgICAgICBlcnJvci5zdGF0dXMgPSA1MDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9KTtcbiAgfVxuXG4gIHBhcnNlUmVzcG9uc2UocmVzcG9uc2UpIHtcbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG5cbiAgICBpZiAodGhpcy5jb250ZW50KSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuY29udGVudCAhPT0gJ2pzb24nICYmXG4gICAgICAgICAgdGhpcy5zY2hlbWEgIT0gbnVsbCAmJlxuICAgICAgICAgIHR5cGVvZiB0aGlzLnNjaGVtYSAhPT0gJ3N0cmluZycgJiZcbiAgICAgICAgICB0eXBlb2YgdGhpcy5zY2hlbWEgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IE5ldHdvcmtFcnJvcihyZXNwb25zZSk7XG4gICAgICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgY29udGVudCAnJHt0aGlzLmNvbnRlbnR9JyBpcyBpbmNvbXBhdGlibGUgd2l0aCBzY2hlbWEuIEJpbmFyeS90ZXh0IHJlc3BvbnNlcyBjYW5ub3QgYmUgbm9ybWFsaXplZC4gVXNlIHNjaGVtYTogdW5kZWZpbmVkLmA7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmNvbnRlbnQgPT09ICdzdHJlYW0nKSByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3BvbnNlLmJvZHkpO1xuICAgICAgcmV0dXJuIHRoaXMuY29udGVudCA9PT0gJ2pzb24nID9cbiAgICAgICAgICBqc29uUmVzcG9uc2UocmVzcG9uc2UpXG4gICAgICAgIDogcmVzcG9uc2VbdGhpcy5jb250ZW50XSgpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVzcG9uc2UuaGVhZGVycy5nZXQoJ2NvbnRlbnQtdHlwZScpO1xuICAgIGlmIChjb250ZW50VHlwZT8uaW5jbHVkZXMoJ2pzb24nKSkgcmV0dXJuIGpzb25SZXNwb25zZShyZXNwb25zZSk7XG5cbiAgICBjb25zdCBpc0JpbmFyeSA9IGNvbnRlbnRUeXBlICYmICF0ZXh0TGlrZVJlLnRlc3QoY29udGVudFR5cGUpO1xuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHRoaXMuc2NoZW1hID09PSAnc3RyaW5nJyB8fFxuICAgICAgdHlwZW9mIHRoaXMuc2NoZW1hID09PSAndW5kZWZpbmVkJyB8fFxuICAgICAgdGhpcy5zY2hlbWEgPT09IG51bGwgfHxcbiAgICAgIHRoaXMucHJvY2VzcyAhPT0gUmVzdEVuZHBvaW50LnByb3RvdHlwZS5wcm9jZXNzXG4gICAgKVxuICAgICAgcmV0dXJuIGlzQmluYXJ5ID8gcmVzcG9uc2UuYmxvYigpIDogcmVzcG9uc2UudGV4dCgpO1xuXG4gICAgaWYgKGlzQmluYXJ5KSB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDAwO1xuICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIGJpbmFyeSBjb250ZW50LXR5cGUgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfWA7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIGJpbmFyeSBjb250ZW50LXR5cGUgXCIke2NvbnRlbnRUeXBlfVwiIGZvciBzY2hlbWEgJHt0aGlzLnNjaGVtYX0uIEJpbmFyeSByZXNwb25zZXMgY2Fubm90IGJlIG5vcm1hbGl6ZWQuIFVzZSBzY2hlbWE6IHVuZGVmaW5lZCBvciBzZXQgY29udGVudDogJ2Jsb2InLmA7XG4gICAgICB9XG4gICAgICB0aHJvdyBlcnJvcjtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpLnRoZW4odGV4dCA9PiB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBOZXR3b3JrRXJyb3IocmVzcG9uc2UpO1xuICAgICAgZXJyb3Iuc3RhdHVzID0gNDA0O1xuICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIHRleHQgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfWA7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKCEoXG4gICAgICAgICAgY29udGVudFR5cGU/LmluY2x1ZGVzKCdodG1sJykgfHwgdGV4dC5zdGFydHNXaXRoKCc8IWRvY3R5cGUgaHRtbD4nKVxuICAgICAgICApKSB7XG4gICAgICAgICAgaWYgKHRyeVBhcnNlKHRleHQpICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSBgXCJjb250ZW50LXR5cGVcIiBoZWFkZXIgZG9lcyBub3QgaW5jbHVkZSBcImpzb25cIiwgYnV0IEpTT04gcmVzcG9uc2UgZm91bmQuXG5TZWUgaHR0cHM6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzQ2MjcgZm9yIGluZm9ybWF0aW9uIG9uIEpTT04gcmVzcG9uc2VzXG5cblVzaW5nIHBhcnNlZCBKU09OLlxuSWYgdGV4dCBjb250ZW50IHdhcyBleHBlY3RlZCBzZWUgaHR0cHM6Ly9kYXRhY2xpZW50LmlvL3Jlc3QvYXBpL1Jlc3RFbmRwb2ludCNwYXJzZVJlc3BvbnNlYDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3IubWVzc2FnZSA9IGBVbmV4cGVjdGVkIGh0bWwgcmVzcG9uc2UgZm9yIHNjaGVtYSAke3RoaXMuc2NoZW1hfVxuVGhpcyBsaWtlbHkgbWVhbnMgbm8gQVBJIGVuZHBvaW50IHdhcyBjb25maWd1cmVkIGZvciB0aGlzIHJlcXVlc3QsIHJlc3VsdGluZyBpbiBhbiBIVE1MIGZhbGxiYWNrLlxuXG5SZXNwb25zZSAoZmlyc3QgMzAwIGNoYXJhY3RlcnMpOiAke3RleHQuc3Vic3RyaW5nKDAsIDMwMCl9YDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gIH1cblxuICBwcm9jZXNzKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgZXJyb3JQb2xpY3koZXJyb3IpIHtcbiAgICByZXR1cm4gZXJyb3Iuc3RhdHVzID49IDUwMCA/ICdzb2Z0JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldCBwYXRoUmVnZXgoKSB7XG4gICAgcmV0dXJuIGdldFBhdGhSZWdleCh0aGlzLnBhdGgpO1xuICB9XG5cbiAgdGVzdEtleShrZXkpIHtcbiAgICBjb25zdCBwcmVmaXggPSB0aGlzLm1ldGhvZCArICcgJyArIHRoaXMudXJsUHJlZml4O1xuICAgIGlmICgha2V5LnN0YXJ0c1dpdGgocHJlZml4KSkgcmV0dXJuIGZhbHNlO1xuICAgIGxldCBsYXN0UXVlc3Rpb24gPSBrZXkubGFzdEluZGV4T2YoJz8nKTtcbiAgICBpZiAobGFzdFF1ZXN0aW9uID09PSAtMSkgbGFzdFF1ZXN0aW9uID0gdW5kZWZpbmVkO1xuICAgIHJldHVybiB0aGlzLnBhdGhSZWdleC50ZXN0KGtleS5zdWJzdHJpbmcocHJlZml4Lmxlbmd0aCwgbGFzdFF1ZXN0aW9uKSk7XG4gIH1cblxuICBleHRlbmQob3B0aW9ucykge1xuICAgIC8vIG1ha2UgYSBjb25zdHJ1Y3Rvci9wcm90b3R5cGUgYmFzZWQgb2ZmIHRoaXNcbiAgICAvLyBleHRlbmQgZnJvbSBpdCBhbmQgaW5pdCB3aXRoIG9wdGlvbnMgc2VudFxuICAgIGNsYXNzIEUgZXh0ZW5kcyB0aGlzLmNvbnN0cnVjdG9yIHt9XG5cbiAgICBPYmplY3QuYXNzaWduKEUucHJvdG90eXBlLCB0aGlzKTtcblxuICAgIHJldHVybiBuZXcgRShcbiAgICAgIC8vICBmZXRjaCBnZXQgb3ZlcnJpZGRlbiBieSBmdW5jdGlvbiBwcm90b3R5cGUsIHNvIHdlIG11c3Qgc2V0IGl0IGV4cGxpY2l0bHkgZXZlcnkgdGltZVxuICAgICAgeyBmZXRjaDogdGhpcy5mZXRjaCwgLi4ub3B0aW9ucyB9LFxuICAgICk7XG4gIH1cblxuICBwYWdpbmF0ZWQocmVtb3ZlQ3Vyc29yKSB7XG4gICAgaWYgKHR5cGVvZiByZW1vdmVDdXJzb3IgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSByZW1vdmVDdXJzb3I7XG4gICAgICByZW1vdmVDdXJzb3IgPSAoeyAuLi5wYXJhbXMgfSkgPT4ge1xuICAgICAgICBkZWxldGUgcGFyYW1zW2ZpZWxkTmFtZV07XG4gICAgICAgIHJldHVybiBbcGFyYW1zXTtcbiAgICAgIH07XG4gICAgfVxuICAgIGxldCBmb3VuZCA9IGZhbHNlO1xuICAgIGNvbnN0IGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSA9IGNvbGxlY3Rpb24gPT4ge1xuICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgcmV0dXJuIGNyZWF0ZVBhZ2luYXRpb25TY2hlbWEocmVtb3ZlQ3Vyc29yLCBjb2xsZWN0aW9uKTtcbiAgICB9O1xuICAgIGNvbnN0IG5ld1NjaGVtYSA9IG1hcENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIGNyZWF0ZVBhZ2luYXRlZFNjaGVtYSk7XG5cbiAgICBpZiAoIWZvdW5kKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgQ29sbGVjdGlvbicpO1xuICAgIGNvbnN0IHN1cCA9IHRoaXM7XG5cbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgc2NoZW1hOiBuZXdTY2hlbWEsXG4gICAgICBrZXkoLi4uYXJncykge1xuICAgICAgICByZXR1cm4gc3VwLmtleS5jYWxsKHRoaXMsIC4uLnJlbW92ZUN1cnNvciguLi5hcmdzKSk7XG4gICAgICB9LFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5nZXRQYWdlJyxcbiAgICB9KTtcbiAgfVxuXG4gIGdldCBnZXRQYWdlKCkge1xuICAgIHJldHVybiB0aGlzLnBhZ2luYXRlZCh0aGlzLnBhZ2luYXRpb25GaWVsZCk7XG4gIH1cblxuICBnZXQgcHVzaCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMucHVzaCksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgdW5zaGlmdCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICBzY2hlbWE6IGV4dHJhY3RDb2xsZWN0aW9uKHRoaXMuc2NoZW1hLCBzID0+IHMudW5zaGlmdCksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLmNyZWF0ZScsXG4gICAgfSk7XG4gIH1cblxuICBnZXQgYXNzaWduKCkge1xuICAgIHJldHVybiB0aGlzLmV4dGVuZCh7XG4gICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5hc3NpZ24pLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5jcmVhdGUnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IHJlbW92ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5leHRlbmQoe1xuICAgICAgbWV0aG9kOiAnUEFUQ0gnLFxuICAgICAgc2NoZW1hOiBleHRyYWN0Q29sbGVjdGlvbih0aGlzLnNjaGVtYSwgcyA9PiBzLnJlbW92ZSksXG4gICAgICBuYW1lOiB0aGlzLm5hbWUgKyAnLnBhcnRpYWxVcGRhdGUnLFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0IG1vdmUoKSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIG1ldGhvZDogJ1BBVENIJyxcbiAgICAgIHNjaGVtYTogZXh0cmFjdENvbGxlY3Rpb24odGhpcy5zY2hlbWEsIHMgPT4gcy5tb3ZlKSxcbiAgICAgIHNlYXJjaFBhcmFtczogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogdGhpcy5uYW1lICsgJy5wYXJ0aWFsVXBkYXRlJyxcbiAgICB9O1xuICAgIGlmICh0aGlzLm1vdmVQYXRoKSBvcHRpb25zLnBhdGggPSB0aGlzLm1vdmVQYXRoO1xuICAgIHJldHVybiB0aGlzLmV4dGVuZChvcHRpb25zKTtcbiAgfVxufVxuXG5jb25zdCB0cnlQYXJzZSA9IGlucHV0ID0+IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShpbnB1dCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59O1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLFFBQVEsUUFBUSx1QkFBdUI7QUFFaEQsT0FBT0MsaUJBQWlCLE1BQU0sd0JBQXdCO0FBQ3RELE9BQU9DLGFBQWEsTUFBTSxvQkFBb0I7QUFDOUMsT0FBT0MsWUFBWSxNQUFNLG1CQUFtQjtBQUM1QyxTQUFTQyxzQkFBc0IsUUFBUSwyQkFBMkI7QUFDbEUsT0FBT0MsY0FBYyxNQUFNLHFCQUFxQjtBQUNoRCxTQUNFQyxVQUFVLEVBQ1ZDLFlBQVksRUFDWkMsWUFBWSxFQUNaQyxNQUFNLFFBQ0Qsa0JBQWtCO0FBRXpCLE1BQU1DLFVBQVUsR0FDZCx5RUFBeUU7QUFFM0UsU0FBU0MsWUFBWUEsQ0FBQ0MsUUFBUSxFQUFFO0VBQzlCLE9BQU9BLFFBQVEsQ0FBQ0MsSUFBSSxDQUFDLENBQUMsQ0FBQ0MsS0FBSyxDQUFDQyxLQUFLLElBQUk7SUFDcENBLEtBQUssQ0FBQ0MsTUFBTSxHQUFHLEdBQUc7SUFDbEIs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
|
|
@@ -17,6 +17,19 @@ type ContentSchemaGuard<O> = O extends {
|
|
|
17
17
|
} ? {
|
|
18
18
|
schema?: undefined;
|
|
19
19
|
} : {};
|
|
20
|
+
interface RestInstanceExtenders {
|
|
21
|
+
/** Creates a child endpoint that inherits from this while overriding provided `options`.
|
|
22
|
+
* @see https://dataclient.io/rest/api/RestEndpoint#extend
|
|
23
|
+
*/
|
|
24
|
+
extend<E extends RestInstanceBase, ExtendOptions extends ExtendableRestGenerics | {}>(this: E, options: Readonly<RestEndpointExtendOptions<ExtendOptions, E, E['fetch']> & ExtendOptions> & ExtendOptions & ContentSchemaGuard<ExtendOptions>): RestExtendedEndpoint<ExtendOptions, E>;
|
|
25
|
+
}
|
|
26
|
+
interface RestInstancePaginators {
|
|
27
|
+
/** Creates an Endpoint to append the next page extending a list for pagination
|
|
28
|
+
* @see https://dataclient.io/rest/api/RestEndpoint#paginated
|
|
29
|
+
*/
|
|
30
|
+
paginated<E extends RestInstanceBase<FetchFunction, any, undefined>, A extends any[]>(this: E, removeCursor: (...args: A) => readonly [...Parameters<E>]): PaginationEndpoint<E, A>;
|
|
31
|
+
paginated<E extends RestInstanceBase<FetchFunction, any, undefined>, C extends string>(this: E, cursorField: C): PaginationFieldEndpoint<E, C>;
|
|
32
|
+
}
|
|
20
33
|
export interface RestInstanceBase<F extends FetchFunction = FetchFunction, S extends Schema | undefined = any, M extends boolean | undefined = boolean | undefined, O extends {
|
|
21
34
|
path: string;
|
|
22
35
|
body?: any;
|
|
@@ -24,7 +37,7 @@ export interface RestInstanceBase<F extends FetchFunction = FetchFunction, S ext
|
|
|
24
37
|
method?: string;
|
|
25
38
|
} = {
|
|
26
39
|
path: string;
|
|
27
|
-
}> extends EndpointInstanceInterface<F, S, M
|
|
40
|
+
}> extends EndpointInstanceInterface<F, S, M>, RestInstanceExtenders {
|
|
28
41
|
/** @see https://dataclient.io/rest/api/RestEndpoint#body */
|
|
29
42
|
readonly body?: 'body' extends keyof O ? O['body'] : any;
|
|
30
43
|
/** @see https://dataclient.io/rest/api/RestEndpoint#searchParams */
|
|
@@ -60,7 +73,7 @@ export interface RestInstanceBase<F extends FetchFunction = FetchFunction, S ext
|
|
|
60
73
|
/** Prepares RequestInit used in fetch. This is sent to fetchResponse()
|
|
61
74
|
* @see https://dataclient.io/rest/api/RestEndpoint#getRequestInit
|
|
62
75
|
*/
|
|
63
|
-
getRequestInit(this: any, body?: RequestInit['body'] | Record<string, unknown>): Promise<RequestInit> | RequestInit;
|
|
76
|
+
getRequestInit(this: any, body?: RequestInit['body'] | Record<string, unknown> | readonly unknown[]): Promise<RequestInit> | RequestInit;
|
|
64
77
|
/** Called by getRequestInit to determine HTTP Headers
|
|
65
78
|
* @see https://dataclient.io/rest/api/RestEndpoint#getHeaders
|
|
66
79
|
*/
|
|
@@ -81,10 +94,6 @@ export interface RestInstanceBase<F extends FetchFunction = FetchFunction, S ext
|
|
|
81
94
|
* @see https://dataclient.io/rest/api/RestEndpoint#testKey
|
|
82
95
|
*/
|
|
83
96
|
testKey(key: string): boolean;
|
|
84
|
-
/** Creates a child endpoint that inherits from this while overriding provided `options`.
|
|
85
|
-
* @see https://dataclient.io/rest/api/RestEndpoint#extend
|
|
86
|
-
*/
|
|
87
|
-
extend<E extends RestInstanceBase, ExtendOptions extends PartialRestGenerics | {}>(this: E, options: Readonly<RestEndpointExtendOptions<ExtendOptions, E, F> & ExtendOptions> & ContentSchemaGuard<ExtendOptions>): RestExtendedEndpoint<ExtendOptions, E>;
|
|
88
97
|
}
|
|
89
98
|
export interface RestInstance<F extends FetchFunction = FetchFunction, S extends Schema | undefined = any, M extends boolean | undefined = boolean | undefined, O extends {
|
|
90
99
|
path: string;
|
|
@@ -94,19 +103,14 @@ export interface RestInstance<F extends FetchFunction = FetchFunction, S extends
|
|
|
94
103
|
paginationField?: string;
|
|
95
104
|
} = {
|
|
96
105
|
path: string;
|
|
97
|
-
}> extends RestInstanceBase<F, S, M, O
|
|
98
|
-
/** Creates an Endpoint to append the next page extending a list for pagination
|
|
99
|
-
* @see https://dataclient.io/rest/api/RestEndpoint#paginated
|
|
100
|
-
*/
|
|
101
|
-
paginated<E extends RestInstanceBase<FetchFunction, any, undefined>, A extends any[]>(this: E, removeCursor: (...args: A) => readonly [...Parameters<E>]): PaginationEndpoint<E, A>;
|
|
102
|
-
paginated<E extends RestInstanceBase<FetchFunction, any, undefined>, C extends string>(this: E, cursorField: C): PaginationFieldEndpoint<E, C>;
|
|
106
|
+
}> extends RestInstanceBase<F, S, M, O>, RestInstancePaginators {
|
|
103
107
|
/** Concatinate the next page of results (GET)
|
|
104
108
|
* @see https://dataclient.io/rest/api/RestEndpoint#getPage
|
|
105
109
|
*/
|
|
106
|
-
getPage: 'paginationField' extends keyof O ? O['paginationField'] extends string ? PaginationFieldEndpoint<F & {
|
|
110
|
+
getPage: 'paginationField' extends keyof O ? O['paginationField'] extends string ? PaginationFieldEndpoint<([keyof F] extends [never] ? (...args: any) => ReturnType<F> : F) & {
|
|
107
111
|
schema: S;
|
|
108
112
|
sideEffect: M;
|
|
109
|
-
} & O, O['paginationField']
|
|
113
|
+
} & O, Extract<O['paginationField'], string>> : undefined : undefined;
|
|
110
114
|
/** Create a new item (POST) and `push` to the end
|
|
111
115
|
* @see https://dataclient.io/rest/api/RestEndpoint#push
|
|
112
116
|
*/
|
|
@@ -144,7 +148,20 @@ export type RestEndpointExtendOptions<O extends PartialRestGenerics, E extends {
|
|
|
144
148
|
path?: string;
|
|
145
149
|
schema?: Schema;
|
|
146
150
|
method?: string;
|
|
147
|
-
}, F extends FetchFunction> = RestEndpointOptions<OptionsToFunction<O, E, F>, 'schema' extends keyof O ? Extract<O['schema'], Schema | undefined> : E['schema']> &
|
|
151
|
+
}, F extends FetchFunction> = RestEndpointOptions<OptionsToFunction<O, E, F>, 'schema' extends keyof O ? Extract<O['schema'], Schema | undefined> : E['schema']> & PartialPick<E, keyof E extends ExtendOmitKeys ? never : Exclude<keyof E, ExtendOmitKeys>>;
|
|
152
|
+
/** Argument I passed to process(), from Parameters<F>.
|
|
153
|
+
* Indexing a union like `[params] | []` or `[params, body] | [body]` (see ParamFetchNoBody/ParamFetchWithBody)
|
|
154
|
+
* merges position-wise, giving `undefined` where some call omits the argument.
|
|
155
|
+
* Endpoints that take no args keep `any`, so process(value, params: any) and similar still compile.
|
|
156
|
+
*/
|
|
157
|
+
type ProcessArg<A extends readonly any[], I extends 0 | 1> = [
|
|
158
|
+
A['length']
|
|
159
|
+
] extends [0] ? any : A[I];
|
|
160
|
+
type ExtendOmitKeys = KeyofRestEndpoint | keyof PartialRestGenerics | keyof RestEndpointOptions;
|
|
161
|
+
/** Partial<Pick<T, K>> as a single homomorphic mapped type */
|
|
162
|
+
type PartialPick<T, K extends keyof T> = {
|
|
163
|
+
[P in K]?: T[P];
|
|
164
|
+
};
|
|
148
165
|
type OptionsToRestEndpoint<O extends PartialRestGenerics, E extends RestInstanceBase & {
|
|
149
166
|
body?: any;
|
|
150
167
|
paginationField?: string;
|
|
@@ -187,8 +204,12 @@ export type RestExtendedEndpoint<O extends PartialRestGenerics, E extends RestIn
|
|
|
187
204
|
};
|
|
188
205
|
} ? {
|
|
189
206
|
paginationField: E['getPage']['paginationField'];
|
|
190
|
-
} : unknown), RestInstance<(...args: Parameters<E>) => O['process'] extends {} ? Promise<ReturnType<O['process']>> : 'content' extends keyof O ? Promise<ContentReturnType<O['content'] & ContentType>> : ReturnType<E>, 'schema' extends keyof O ? O['schema'] : E['schema'], 'sideEffect' extends keyof O ? Extract<O['sideEffect'], boolean | undefined> : 'method' extends keyof O ? MethodToSide<O['method']> : E['sideEffect']>> & Omit<O, KeyofRestEndpoint> & Omit<E, KeyofRestEndpoint | keyof O
|
|
191
|
-
|
|
207
|
+
} : unknown), RestInstance<(...args: Parameters<E>) => O['process'] extends {} ? Promise<ReturnType<O['process']>> : 'content' extends keyof O ? Promise<ContentReturnType<O['content'] & ContentType>> : ReturnType<E>, 'schema' extends keyof O ? O['schema'] : E['schema'], 'sideEffect' extends keyof O ? Extract<O['sideEffect'], boolean | undefined> : 'method' extends keyof O ? MethodToSide<O['method']> : E['sideEffect']>> & (keyof O extends KeyofRestEndpoint ? unknown : Omit<O, KeyofRestEndpoint>) & (keyof E extends KeyofRestEndpoint ? unknown : Omit<E, KeyofRestEndpoint | keyof O>);
|
|
208
|
+
/** PartialRestGenerics without `process`. Options passed to the constructor, extend() and
|
|
209
|
+
* resource().extend() are constrained by this, so RestEndpointOptions' typed `process` member is
|
|
210
|
+
* the only contextual type for process() params.
|
|
211
|
+
*/
|
|
212
|
+
export interface ExtendableRestGenerics {
|
|
192
213
|
/** @see https://dataclient.io/rest/api/RestEndpoint#path */
|
|
193
214
|
readonly path?: string;
|
|
194
215
|
/** @see https://dataclient.io/rest/api/RestEndpoint#schema */
|
|
@@ -203,11 +224,13 @@ export interface PartialRestGenerics {
|
|
|
203
224
|
searchParams?: any;
|
|
204
225
|
/** @see https://dataclient.io/rest/api/RestEndpoint#paginationfield */
|
|
205
226
|
readonly paginationField?: string;
|
|
206
|
-
/** @see https://dataclient.io/rest/api/RestEndpoint#process */
|
|
207
|
-
process?(value: any, ...args: any): any;
|
|
208
227
|
/** @see https://dataclient.io/rest/api/RestEndpoint#content */
|
|
209
228
|
readonly content?: ContentType;
|
|
210
229
|
}
|
|
230
|
+
export interface PartialRestGenerics extends ExtendableRestGenerics {
|
|
231
|
+
/** @see https://dataclient.io/rest/api/RestEndpoint#process */
|
|
232
|
+
process?(value: any, ...args: any): any;
|
|
233
|
+
}
|
|
211
234
|
/** Generic types when constructing a RestEndpoint
|
|
212
235
|
*
|
|
213
236
|
* @see https://dataclient.io/rest/api/RestEndpoint#inheritance
|
|
@@ -215,6 +238,10 @@ export interface PartialRestGenerics {
|
|
|
215
238
|
export interface RestGenerics extends PartialRestGenerics {
|
|
216
239
|
readonly path: string;
|
|
217
240
|
}
|
|
241
|
+
/** RestGenerics without `process`; see ExtendableRestGenerics */
|
|
242
|
+
interface ConstructorRestGenerics extends ExtendableRestGenerics {
|
|
243
|
+
readonly path: string;
|
|
244
|
+
}
|
|
218
245
|
export type PaginationEndpoint<E extends FetchFunction & RestGenerics & {
|
|
219
246
|
sideEffect?: boolean | undefined;
|
|
220
247
|
}, A extends any[]> = RestInstanceBase<ParamFetchNoBody<A[0], ResolveType<E>>, E['schema'], E['sideEffect'], Pick<E, 'path' | 'searchParams' | 'body'> & {
|
|
@@ -326,6 +353,8 @@ export interface RestEndpointOptions<F extends FetchFunction = FetchFunction, S
|
|
|
326
353
|
fetch?: F;
|
|
327
354
|
key?(...args: Parameters<F>): string;
|
|
328
355
|
url?(...args: Parameters<F>): string;
|
|
356
|
+
/** @see https://dataclient.io/rest/api/RestEndpoint#process */
|
|
357
|
+
process?(value: any, params: ProcessArg<Parameters<F>, 0>, body: ProcessArg<Parameters<F>, 1>, ...rest: any[]): any;
|
|
329
358
|
update?: EndpointUpdateFunction<F, S>;
|
|
330
359
|
}
|
|
331
360
|
export type RestEndpointConstructorOptions<O extends RestGenerics = any> = RestEndpointOptions<RestFetch<unknown extends O ? any : 'searchParams' extends keyof O ? [
|
|
@@ -346,7 +375,7 @@ export interface RestEndpointConstructor {
|
|
|
346
375
|
*
|
|
347
376
|
* @see https://dataclient.io/rest/api/RestEndpoint
|
|
348
377
|
*/
|
|
349
|
-
new <O extends
|
|
378
|
+
new <O extends ConstructorRestGenerics = any>({ method, sideEffect, name, ...options }: RestEndpointConstructorOptions<O> & Readonly<O> & O & ContentSchemaGuard<O>): RestEndpoint<O>;
|
|
350
379
|
readonly prototype: RestInstanceBase;
|
|
351
380
|
}
|
|
352
381
|
export type MethodToSide<M> = M extends string ? M extends 'GET' ? undefined : true : undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RestEndpointTypes.d.ts","sourceRoot":"","sources":["../src/RestEndpointTypes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RestEndpointTypes.d.ts","sourceRoot":"","sources":["../src/RestEndpointTypes.ts"],"names":[],"mappings":"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"}
|