breeze-client 2.1.2 → 2.1.3-mjs
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/LICENSE +1 -1
- package/adapter-ajax-angularjs/{breeze-client-adapter-ajax-angularjs.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-fetch/{breeze-client-adapter-ajax-fetch.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-httpclient/{breeze-client-adapter-ajax-httpclient.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-jquery/{breeze-client-adapter-ajax-jquery.d.ts → index.d.ts} +1 -0
- package/adapter-ajax-post/{breeze-client-adapter-ajax-post.d.ts → index.d.ts} +1 -0
- package/adapter-data-service-odata/{breeze-client-adapter-data-service-odata.d.ts → index.d.ts} +1 -0
- package/adapter-data-service-webapi/{breeze-client-adapter-data-service-webapi.d.ts → index.d.ts} +1 -0
- package/adapter-model-library-backing-store/{breeze-client-adapter-model-library-backing-store.d.ts → index.d.ts} +1 -0
- package/adapter-model-library-ko/{breeze-client-adapter-model-library-ko.d.ts → index.d.ts} +1 -0
- package/adapter-uri-builder-json/{breeze-client-adapter-uri-builder-json.d.ts → index.d.ts} +1 -0
- package/adapter-uri-builder-odata/{breeze-client-adapter-uri-builder-odata.d.ts → index.d.ts} +1 -0
- package/esm2020/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +130 -0
- package/esm2020/adapter-ajax-angularjs/adapter-core.mjs +49 -0
- package/esm2020/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +5 -0
- package/esm2020/adapter-ajax-fetch/adapter-ajax-fetch.mjs +132 -0
- package/esm2020/adapter-ajax-fetch/adapter-core.mjs +49 -0
- package/esm2020/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +5 -0
- package/esm2020/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +137 -0
- package/esm2020/adapter-ajax-httpclient/adapter-core.mjs +49 -0
- package/esm2020/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +5 -0
- package/esm2020/adapter-ajax-jquery/adapter-ajax-jquery.mjs +103 -0
- package/esm2020/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +5 -0
- package/esm2020/adapter-ajax-post/adapter-ajax-post.mjs +77 -0
- package/esm2020/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +5 -0
- package/esm2020/adapter-data-service-odata/adapter-core.mjs +49 -0
- package/esm2020/adapter-data-service-odata/adapter-data-service-odata.mjs +456 -0
- package/esm2020/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +5 -0
- package/esm2020/adapter-data-service-webapi/adapter-data-service-webapi.mjs +93 -0
- package/esm2020/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +5 -0
- package/esm2020/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +268 -0
- package/esm2020/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +5 -0
- package/esm2020/adapter-model-library-ko/adapter-model-library-ko.mjs +240 -0
- package/esm2020/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +5 -0
- package/esm2020/adapter-uri-builder-json/adapter-core.mjs +49 -0
- package/esm2020/adapter-uri-builder-json/adapter-uri-builder-json.mjs +36 -0
- package/esm2020/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +5 -0
- package/esm2020/adapter-uri-builder-odata/adapter-core.mjs +49 -0
- package/esm2020/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +190 -0
- package/esm2020/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +5 -0
- package/esm2020/breeze-client.mjs +5 -0
- package/esm2020/index.mjs +2 -0
- package/esm2020/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +5 -0
- package/esm2020/mixin-get-entity-graph/mixin-get-entity-graph.mjs +269 -0
- package/esm2020/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +5 -0
- package/esm2020/mixin-save-queuing/mixin-save-queuing.mjs +400 -0
- package/esm2020/src/abstract-data-service-adapter.mjs +296 -0
- package/esm2020/src/array.mjs +4 -0
- package/esm2020/src/assert-param.mjs +312 -0
- package/esm2020/src/breeze.mjs +85 -0
- package/esm2020/src/complex-array.mjs +117 -0
- package/esm2020/src/config.mjs +223 -0
- package/esm2020/src/core.mjs +707 -0
- package/esm2020/src/csdl-metadata-parser.mjs +385 -0
- package/esm2020/src/data-service.mjs +203 -0
- package/esm2020/src/data-type.mjs +444 -0
- package/esm2020/src/default-property-interceptor.mjs +460 -0
- package/esm2020/src/entity-action.mjs +45 -0
- package/esm2020/src/entity-aspect.mjs +806 -0
- package/esm2020/src/entity-group.mjs +187 -0
- package/esm2020/src/entity-key.mjs +116 -0
- package/esm2020/src/entity-manager.mjs +2094 -0
- package/esm2020/src/entity-metadata.mjs +2109 -0
- package/esm2020/src/entity-query.mjs +996 -0
- package/esm2020/src/entity-state.mjs +99 -0
- package/esm2020/src/enum.mjs +141 -0
- package/esm2020/src/event.mjs +256 -0
- package/esm2020/src/interface-registry.mjs +41 -0
- package/esm2020/src/key-generator.mjs +108 -0
- package/esm2020/src/local-query-comparison-options.mjs +65 -0
- package/esm2020/src/mapping-context.mjs +405 -0
- package/esm2020/src/naming-convention.mjs +88 -0
- package/esm2020/src/observable-array.mjs +183 -0
- package/esm2020/src/predicate.mjs +1232 -0
- package/esm2020/src/primitive-array.mjs +85 -0
- package/esm2020/src/query-options.mjs +152 -0
- package/esm2020/src/relation-array.mjs +173 -0
- package/esm2020/src/save-options.mjs +41 -0
- package/esm2020/src/unattached-children-map.mjs +58 -0
- package/esm2020/src/validate.mjs +988 -0
- package/esm2020/src/validation-options.mjs +64 -0
- package/fesm2015/{breeze-client-adapter-ajax-angularjs.js → breeze-client-adapter-ajax-angularjs.mjs} +1 -1
- package/fesm2015/breeze-client-adapter-ajax-angularjs.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-fetch.js → breeze-client-adapter-ajax-fetch.mjs} +5 -3
- package/fesm2015/breeze-client-adapter-ajax-fetch.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-httpclient.js → breeze-client-adapter-ajax-httpclient.mjs} +1 -1
- package/fesm2015/breeze-client-adapter-ajax-httpclient.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-jquery.js → breeze-client-adapter-ajax-jquery.mjs} +2 -2
- package/fesm2015/breeze-client-adapter-ajax-jquery.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-ajax-post.js → breeze-client-adapter-ajax-post.mjs} +1 -1
- package/fesm2015/breeze-client-adapter-ajax-post.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-data-service-odata.js → breeze-client-adapter-data-service-odata.mjs} +20 -22
- package/fesm2015/breeze-client-adapter-data-service-odata.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-data-service-webapi.js → breeze-client-adapter-data-service-webapi.mjs} +13 -13
- package/fesm2015/breeze-client-adapter-data-service-webapi.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-model-library-backing-store.js → breeze-client-adapter-model-library-backing-store.mjs} +13 -13
- package/fesm2015/breeze-client-adapter-model-library-backing-store.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-model-library-ko.js → breeze-client-adapter-model-library-ko.mjs} +13 -13
- package/fesm2015/breeze-client-adapter-model-library-ko.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-uri-builder-json.js → breeze-client-adapter-uri-builder-json.mjs} +8 -8
- package/fesm2015/breeze-client-adapter-uri-builder-json.mjs.map +1 -0
- package/fesm2015/{breeze-client-adapter-uri-builder-odata.js → breeze-client-adapter-uri-builder-odata.mjs} +85 -86
- package/fesm2015/breeze-client-adapter-uri-builder-odata.mjs.map +1 -0
- package/fesm2015/{breeze-client-mixin-get-entity-graph.js → breeze-client-mixin-get-entity-graph.mjs} +1 -1
- package/fesm2015/breeze-client-mixin-get-entity-graph.mjs.map +1 -0
- package/fesm2015/{breeze-client-mixin-save-queuing.js → breeze-client-mixin-save-queuing.mjs} +1 -1
- package/fesm2015/breeze-client-mixin-save-queuing.mjs.map +1 -0
- package/fesm2015/{breeze-client.js → breeze-client.mjs} +417 -422
- package/fesm2015/breeze-client.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-angularjs.js → fesm2020/breeze-client-adapter-ajax-angularjs.mjs} +41 -42
- package/fesm2020/breeze-client-adapter-ajax-angularjs.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-fetch.js → fesm2020/breeze-client-adapter-ajax-fetch.mjs} +44 -43
- package/fesm2020/breeze-client-adapter-ajax-fetch.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-httpclient.js → fesm2020/breeze-client-adapter-ajax-httpclient.mjs} +43 -44
- package/fesm2020/breeze-client-adapter-ajax-httpclient.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-jquery.js → fesm2020/breeze-client-adapter-ajax-jquery.mjs} +18 -19
- package/fesm2020/breeze-client-adapter-ajax-jquery.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-ajax-post.js → fesm2020/breeze-client-adapter-ajax-post.mjs} +8 -11
- package/fesm2020/breeze-client-adapter-ajax-post.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-data-service-odata.js → fesm2020/breeze-client-adapter-data-service-odata.mjs} +126 -134
- package/fesm2020/breeze-client-adapter-data-service-odata.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-data-service-webapi.js → fesm2020/breeze-client-adapter-data-service-webapi.mjs} +38 -42
- package/fesm2020/breeze-client-adapter-data-service-webapi.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-model-library-backing-store.js → fesm2020/breeze-client-adapter-model-library-backing-store.mjs} +63 -64
- package/fesm2020/breeze-client-adapter-model-library-backing-store.mjs.map +1 -0
- package/{fesm5/breeze-client-adapter-model-library-ko.js → fesm2020/breeze-client-adapter-model-library-ko.mjs} +57 -58
- package/fesm2020/breeze-client-adapter-model-library-ko.mjs.map +1 -0
- package/fesm2020/breeze-client-adapter-uri-builder-json.mjs +91 -0
- package/fesm2020/breeze-client-adapter-uri-builder-json.mjs.map +1 -0
- package/fesm2020/breeze-client-adapter-uri-builder-odata.mjs +245 -0
- package/fesm2020/breeze-client-adapter-uri-builder-odata.mjs.map +1 -0
- package/{fesm5/breeze-client-mixin-get-entity-graph.js → fesm2020/breeze-client-mixin-get-entity-graph.mjs} +45 -45
- package/fesm2020/breeze-client-mixin-get-entity-graph.mjs.map +1 -0
- package/{fesm5/breeze-client-mixin-save-queuing.js → fesm2020/breeze-client-mixin-save-queuing.mjs} +116 -126
- package/fesm2020/breeze-client-mixin-save-queuing.mjs.map +1 -0
- package/{fesm5/breeze-client.js → fesm2020/breeze-client.mjs} +3403 -3615
- package/fesm2020/breeze-client.mjs.map +1 -0
- package/mixin-get-entity-graph/{breeze-client-mixin-get-entity-graph.d.ts → index.d.ts} +1 -0
- package/mixin-save-queuing/{breeze-client-mixin-save-queuing.d.ts → index.d.ts} +1 -0
- package/package.json +126 -12
- package/src/entity-metadata.d.ts +6 -4
- package/src/entity-query.d.ts +1 -1
- package/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.metadata.json +0 -1
- package/adapter-ajax-angularjs/package.json +0 -13
- package/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.metadata.json +0 -1
- package/adapter-ajax-fetch/package.json +0 -13
- package/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.metadata.json +0 -1
- package/adapter-ajax-httpclient/package.json +0 -17
- package/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.metadata.json +0 -1
- package/adapter-ajax-jquery/package.json +0 -13
- package/adapter-ajax-post/breeze-client-adapter-ajax-post.metadata.json +0 -1
- package/adapter-ajax-post/package.json +0 -13
- package/adapter-data-service-odata/breeze-client-adapter-data-service-odata.metadata.json +0 -1
- package/adapter-data-service-odata/package.json +0 -13
- package/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.metadata.json +0 -1
- package/adapter-data-service-webapi/package.json +0 -13
- package/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.metadata.json +0 -1
- package/adapter-model-library-backing-store/package.json +0 -13
- package/adapter-model-library-ko/breeze-client-adapter-model-library-ko.metadata.json +0 -1
- package/adapter-model-library-ko/package.json +0 -13
- package/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.metadata.json +0 -1
- package/adapter-uri-builder-json/package.json +0 -13
- package/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.metadata.json +0 -1
- package/adapter-uri-builder-odata/package.json +0 -13
- package/breeze-client.d.ts +0 -8
- package/breeze-client.metadata.json +0 -1
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.js +0 -190
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-angularjs.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-fetch.umd.js +0 -190
- package/bundles/breeze-client-adapter-ajax-fetch.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-fetch.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.js +0 -195
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-httpclient.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-jquery.umd.js +0 -115
- package/bundles/breeze-client-adapter-ajax-jquery.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-jquery.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-post.umd.js +0 -92
- package/bundles/breeze-client-adapter-ajax-post.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-ajax-post.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-ajax-post.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-odata.umd.js +0 -743
- package/bundles/breeze-client-adapter-data-service-odata.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-odata.umd.min.js +0 -16
- package/bundles/breeze-client-adapter-data-service-odata.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-webapi.umd.js +0 -326
- package/bundles/breeze-client-adapter-data-service-webapi.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js +0 -16
- package/bundles/breeze-client-adapter-data-service-webapi.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.js +0 -280
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-model-library-backing-store.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-ko.umd.js +0 -252
- package/bundles/breeze-client-adapter-model-library-ko.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-model-library-ko.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-model-library-ko.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-json.umd.js +0 -96
- package/bundles/breeze-client-adapter-uri-builder-json.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-uri-builder-json.umd.min.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.js +0 -262
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.js.map +0 -1
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js +0 -2
- package/bundles/breeze-client-adapter-uri-builder-odata.umd.min.js.map +0 -1
- package/bundles/breeze-client-mixin-get-entity-graph.umd.js +0 -258
- package/bundles/breeze-client-mixin-get-entity-graph.umd.js.map +0 -1
- package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js +0 -2
- package/bundles/breeze-client-mixin-get-entity-graph.umd.min.js.map +0 -1
- package/bundles/breeze-client-mixin-save-queuing.umd.js +0 -579
- package/bundles/breeze-client-mixin-save-queuing.umd.js.map +0 -1
- package/bundles/breeze-client-mixin-save-queuing.umd.min.js +0 -16
- package/bundles/breeze-client-mixin-save-queuing.umd.min.js.map +0 -1
- package/bundles/breeze-client.umd.js +0 -14094
- package/bundles/breeze-client.umd.js.map +0 -1
- package/bundles/breeze-client.umd.min.js +0 -16
- package/bundles/breeze-client.umd.min.js.map +0 -1
- package/esm2015/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -130
- package/esm2015/adapter-ajax-angularjs/adapter-core.js +0 -49
- package/esm2015/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
- package/esm2015/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -130
- package/esm2015/adapter-ajax-fetch/adapter-core.js +0 -49
- package/esm2015/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
- package/esm2015/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -137
- package/esm2015/adapter-ajax-httpclient/adapter-core.js +0 -49
- package/esm2015/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
- package/esm2015/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -103
- package/esm2015/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
- package/esm2015/adapter-ajax-post/adapter-ajax-post.js +0 -77
- package/esm2015/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
- package/esm2015/adapter-data-service-odata/adapter-core.js +0 -49
- package/esm2015/adapter-data-service-odata/adapter-data-service-odata.js +0 -459
- package/esm2015/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
- package/esm2015/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -93
- package/esm2015/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
- package/esm2015/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -268
- package/esm2015/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
- package/esm2015/adapter-model-library-ko/adapter-model-library-ko.js +0 -240
- package/esm2015/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
- package/esm2015/adapter-uri-builder-json/adapter-core.js +0 -49
- package/esm2015/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -36
- package/esm2015/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
- package/esm2015/adapter-uri-builder-odata/adapter-core.js +0 -49
- package/esm2015/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -192
- package/esm2015/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
- package/esm2015/breeze-client.js +0 -9
- package/esm2015/index.js +0 -2
- package/esm2015/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
- package/esm2015/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
- package/esm2015/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
- package/esm2015/mixin-save-queuing/mixin-save-queuing.js +0 -400
- package/esm2015/public_api.js +0 -2
- package/esm2015/src/abstract-data-service-adapter.js +0 -296
- package/esm2015/src/array.js +0 -4
- package/esm2015/src/assert-param.js +0 -312
- package/esm2015/src/breeze.js +0 -85
- package/esm2015/src/complex-array.js +0 -119
- package/esm2015/src/config.js +0 -223
- package/esm2015/src/core.js +0 -706
- package/esm2015/src/csdl-metadata-parser.js +0 -385
- package/esm2015/src/data-service.js +0 -203
- package/esm2015/src/data-type.js +0 -444
- package/esm2015/src/default-property-interceptor.js +0 -459
- package/esm2015/src/entity-action.js +0 -45
- package/esm2015/src/entity-aspect.js +0 -806
- package/esm2015/src/entity-group.js +0 -187
- package/esm2015/src/entity-key.js +0 -116
- package/esm2015/src/entity-manager.js +0 -2094
- package/esm2015/src/entity-metadata.js +0 -2109
- package/esm2015/src/entity-query.js +0 -996
- package/esm2015/src/entity-state.js +0 -99
- package/esm2015/src/enum.js +0 -141
- package/esm2015/src/event.js +0 -256
- package/esm2015/src/interface-registry.js +0 -41
- package/esm2015/src/key-generator.js +0 -108
- package/esm2015/src/local-query-comparison-options.js +0 -65
- package/esm2015/src/mapping-context.js +0 -405
- package/esm2015/src/naming-convention.js +0 -88
- package/esm2015/src/observable-array.js +0 -185
- package/esm2015/src/predicate.js +0 -1235
- package/esm2015/src/primitive-array.js +0 -87
- package/esm2015/src/query-options.js +0 -152
- package/esm2015/src/relation-array.js +0 -175
- package/esm2015/src/save-options.js +0 -41
- package/esm2015/src/unattached-children-map.js +0 -58
- package/esm2015/src/validate.js +0 -991
- package/esm2015/src/validation-options.js +0 -64
- package/esm5/adapter-ajax-angularjs/adapter-ajax-angularjs.js +0 -132
- package/esm5/adapter-ajax-angularjs/adapter-core.js +0 -49
- package/esm5/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.js +0 -5
- package/esm5/adapter-ajax-fetch/adapter-ajax-fetch.js +0 -132
- package/esm5/adapter-ajax-fetch/adapter-core.js +0 -49
- package/esm5/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.js +0 -5
- package/esm5/adapter-ajax-httpclient/adapter-ajax-httpclient.js +0 -139
- package/esm5/adapter-ajax-httpclient/adapter-core.js +0 -49
- package/esm5/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.js +0 -5
- package/esm5/adapter-ajax-jquery/adapter-ajax-jquery.js +0 -105
- package/esm5/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.js +0 -5
- package/esm5/adapter-ajax-post/adapter-ajax-post.js +0 -81
- package/esm5/adapter-ajax-post/breeze-client-adapter-ajax-post.js +0 -5
- package/esm5/adapter-data-service-odata/adapter-core.js +0 -49
- package/esm5/adapter-data-service-odata/adapter-data-service-odata.js +0 -466
- package/esm5/adapter-data-service-odata/breeze-client-adapter-data-service-odata.js +0 -5
- package/esm5/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -98
- package/esm5/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.js +0 -5
- package/esm5/adapter-model-library-backing-store/adapter-model-library-backing-store.js +0 -270
- package/esm5/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.js +0 -5
- package/esm5/adapter-model-library-ko/adapter-model-library-ko.js +0 -242
- package/esm5/adapter-model-library-ko/breeze-client-adapter-model-library-ko.js +0 -5
- package/esm5/adapter-uri-builder-json/adapter-core.js +0 -49
- package/esm5/adapter-uri-builder-json/adapter-uri-builder-json.js +0 -38
- package/esm5/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.js +0 -5
- package/esm5/adapter-uri-builder-odata/adapter-core.js +0 -49
- package/esm5/adapter-uri-builder-odata/adapter-uri-builder-odata.js +0 -197
- package/esm5/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.js +0 -5
- package/esm5/breeze-client.js +0 -9
- package/esm5/index.js +0 -2
- package/esm5/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.js +0 -5
- package/esm5/mixin-get-entity-graph/mixin-get-entity-graph.js +0 -269
- package/esm5/mixin-save-queuing/breeze-client-mixin-save-queuing.js +0 -5
- package/esm5/mixin-save-queuing/mixin-save-queuing.js +0 -412
- package/esm5/public_api.js +0 -2
- package/esm5/src/abstract-data-service-adapter.js +0 -302
- package/esm5/src/array.js +0 -4
- package/esm5/src/assert-param.js +0 -317
- package/esm5/src/breeze.js +0 -85
- package/esm5/src/complex-array.js +0 -119
- package/esm5/src/config.js +0 -228
- package/esm5/src/core.js +0 -714
- package/esm5/src/csdl-metadata-parser.js +0 -385
- package/esm5/src/data-service.js +0 -207
- package/esm5/src/data-type.js +0 -451
- package/esm5/src/default-property-interceptor.js +0 -459
- package/esm5/src/entity-action.js +0 -52
- package/esm5/src/entity-aspect.js +0 -812
- package/esm5/src/entity-group.js +0 -189
- package/esm5/src/entity-key.js +0 -118
- package/esm5/src/entity-manager.js +0 -2112
- package/esm5/src/entity-metadata.js +0 -2144
- package/esm5/src/entity-query.js +0 -1023
- package/esm5/src/entity-state.js +0 -106
- package/esm5/src/enum.js +0 -144
- package/esm5/src/event.js +0 -259
- package/esm5/src/interface-registry.js +0 -43
- package/esm5/src/key-generator.js +0 -111
- package/esm5/src/local-query-comparison-options.js +0 -67
- package/esm5/src/mapping-context.js +0 -407
- package/esm5/src/naming-convention.js +0 -90
- package/esm5/src/observable-array.js +0 -201
- package/esm5/src/predicate.js +0 -1300
- package/esm5/src/primitive-array.js +0 -87
- package/esm5/src/query-options.js +0 -167
- package/esm5/src/relation-array.js +0 -175
- package/esm5/src/save-options.js +0 -43
- package/esm5/src/unattached-children-map.js +0 -60
- package/esm5/src/validate.js +0 -996
- package/esm5/src/validation-options.js +0 -66
- package/fesm2015/breeze-client-adapter-ajax-angularjs.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-fetch.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-httpclient.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-jquery.js.map +0 -1
- package/fesm2015/breeze-client-adapter-ajax-post.js.map +0 -1
- package/fesm2015/breeze-client-adapter-data-service-odata.js.map +0 -1
- package/fesm2015/breeze-client-adapter-data-service-webapi.js.map +0 -1
- package/fesm2015/breeze-client-adapter-model-library-backing-store.js.map +0 -1
- package/fesm2015/breeze-client-adapter-model-library-ko.js.map +0 -1
- package/fesm2015/breeze-client-adapter-uri-builder-json.js.map +0 -1
- package/fesm2015/breeze-client-adapter-uri-builder-odata.js.map +0 -1
- package/fesm2015/breeze-client-mixin-get-entity-graph.js.map +0 -1
- package/fesm2015/breeze-client-mixin-save-queuing.js.map +0 -1
- package/fesm2015/breeze-client.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-angularjs.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-fetch.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-httpclient.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-jquery.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-post.js.map +0 -1
- package/fesm5/breeze-client-adapter-data-service-odata.js.map +0 -1
- package/fesm5/breeze-client-adapter-data-service-webapi.js.map +0 -1
- package/fesm5/breeze-client-adapter-model-library-backing-store.js.map +0 -1
- package/fesm5/breeze-client-adapter-model-library-ko.js.map +0 -1
- package/fesm5/breeze-client-adapter-uri-builder-json.js +0 -92
- package/fesm5/breeze-client-adapter-uri-builder-json.js.map +0 -1
- package/fesm5/breeze-client-adapter-uri-builder-odata.js +0 -250
- package/fesm5/breeze-client-adapter-uri-builder-odata.js.map +0 -1
- package/fesm5/breeze-client-mixin-get-entity-graph.js.map +0 -1
- package/fesm5/breeze-client-mixin-save-queuing.js.map +0 -1
- package/fesm5/breeze-client.js.map +0 -1
- package/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.metadata.json +0 -1
- package/mixin-get-entity-graph/package.json +0 -13
- package/mixin-save-queuing/breeze-client-mixin-save-queuing.metadata.json +0 -1
- package/mixin-save-queuing/package.json +0 -13
- package/public_api.d.ts +0 -1
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { HttpHeaders, HttpRequest, HttpResponse } from "@angular/common/http";
|
|
2
|
+
import { config, core } from "breeze-client";
|
|
3
|
+
import { filter, map } from "rxjs/operators";
|
|
4
|
+
import { appendQueryStringParameter, encodeParams } from "./adapter-core";
|
|
5
|
+
export class AjaxHttpClientAdapter {
|
|
6
|
+
constructor(http) {
|
|
7
|
+
this.http = http;
|
|
8
|
+
this.name = AjaxHttpClientAdapter.adapterName;
|
|
9
|
+
this.defaultSettings = {};
|
|
10
|
+
}
|
|
11
|
+
static register(http, breezeConfig) {
|
|
12
|
+
breezeConfig = breezeConfig || config;
|
|
13
|
+
breezeConfig.registerAdapter("ajax", function () { return new AjaxHttpClientAdapter(http); });
|
|
14
|
+
return breezeConfig.initializeAdapterInstance("ajax", AjaxHttpClientAdapter.adapterName, true);
|
|
15
|
+
}
|
|
16
|
+
initialize() { }
|
|
17
|
+
ajax(config) {
|
|
18
|
+
if (!this.http) {
|
|
19
|
+
throw new Error('Unable to locate angular http module for ajax adapter');
|
|
20
|
+
}
|
|
21
|
+
// merge default DataSetAdapter Settings with config arg
|
|
22
|
+
if (!core.isEmpty(this.defaultSettings)) {
|
|
23
|
+
let compositeConfig = core.extend({}, this.defaultSettings);
|
|
24
|
+
config = core.extend(compositeConfig, config);
|
|
25
|
+
// extend is shallow; extend headers separately
|
|
26
|
+
let headers = core.extend({}, this.defaultSettings['headers']); // copy default headers 1st
|
|
27
|
+
config['headers'] = core.extend(headers, config.headers);
|
|
28
|
+
}
|
|
29
|
+
if (config.crossDomain) {
|
|
30
|
+
throw new Error(this.name + ' does not support JSONP (crossDomain) requests');
|
|
31
|
+
}
|
|
32
|
+
// Hack: Not sure how Angular handles writing 'search' parameters to the url.
|
|
33
|
+
// so this approach takes over the url param writing completely.
|
|
34
|
+
const parameters = core.isEmpty(config.params) ? null : encodeParams(config.params);
|
|
35
|
+
const url = appendQueryStringParameter(config.url, parameters);
|
|
36
|
+
let headers = new HttpHeaders(config.headers || {});
|
|
37
|
+
if (!headers.has('Content-Type')) {
|
|
38
|
+
if (config.type !== 'GET' && config.type !== 'DELETE' && !!config.contentType) {
|
|
39
|
+
headers = headers.set('Content-Type', config.contentType || 'application/json; charset=utf-8');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
let body = config.data;
|
|
43
|
+
let request = new HttpRequest((config.type || 'GET').toUpperCase(), url, body, { headers: headers, responseType: "text" });
|
|
44
|
+
let requestInfo = {
|
|
45
|
+
adapter: this,
|
|
46
|
+
request: request,
|
|
47
|
+
dsaConfig: config,
|
|
48
|
+
success: successFn,
|
|
49
|
+
error: errorFn // adapter's error callback
|
|
50
|
+
};
|
|
51
|
+
if (core.isFunction(this.requestInterceptor)) {
|
|
52
|
+
this.requestInterceptor(requestInfo);
|
|
53
|
+
if (this.requestInterceptor['oneTime']) {
|
|
54
|
+
this.requestInterceptor = null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (requestInfo.request) { // exists unless requestInterceptor killed it.
|
|
58
|
+
const ffilter = filter((response) => response instanceof HttpResponse);
|
|
59
|
+
const fmap = map(extractData);
|
|
60
|
+
fmap(ffilter(this.http.request(requestInfo.request)))
|
|
61
|
+
.forEach(requestInfo.success)
|
|
62
|
+
.catch(requestInfo.error);
|
|
63
|
+
}
|
|
64
|
+
function extractData(event) {
|
|
65
|
+
let response = event;
|
|
66
|
+
let data;
|
|
67
|
+
let dt = requestInfo.dsaConfig.dataType;
|
|
68
|
+
// beware:`res.json` and `res.text` will be async some day
|
|
69
|
+
if (dt && dt !== 'json') {
|
|
70
|
+
data = response.body;
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
data = JSON.parse(response.body);
|
|
74
|
+
}
|
|
75
|
+
return { data, response };
|
|
76
|
+
}
|
|
77
|
+
function successFn(arg) {
|
|
78
|
+
if (arg.response.status < 200 || arg.response.status >= 300) {
|
|
79
|
+
throw { data: arg.data, response: arg.response };
|
|
80
|
+
}
|
|
81
|
+
let httpResponse = {
|
|
82
|
+
config: requestInfo.request,
|
|
83
|
+
data: arg.data,
|
|
84
|
+
getHeaders: makeGetHeaders(arg.response.headers),
|
|
85
|
+
status: arg.response.status
|
|
86
|
+
};
|
|
87
|
+
httpResponse['ngConfig'] = requestInfo.request;
|
|
88
|
+
httpResponse['statusText'] = arg.response.statusText;
|
|
89
|
+
httpResponse['response'] = arg.response;
|
|
90
|
+
config.success(httpResponse);
|
|
91
|
+
}
|
|
92
|
+
function errorFn(response) {
|
|
93
|
+
if (response instanceof Error) {
|
|
94
|
+
throw response; // program error; nothing we can do
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
let data;
|
|
98
|
+
if (response.error instanceof HttpResponse) {
|
|
99
|
+
data = response.error.body;
|
|
100
|
+
}
|
|
101
|
+
else if (response.error instanceof Error) {
|
|
102
|
+
data = response.error.message;
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
data = response.error;
|
|
106
|
+
}
|
|
107
|
+
// Timeout appears as an error with status===0 and no data.
|
|
108
|
+
if (response.status === 0 && data == null) {
|
|
109
|
+
data = 'timeout';
|
|
110
|
+
}
|
|
111
|
+
let errorMessage = response.status + ": " + response.statusText;
|
|
112
|
+
if (data && typeof data === 'object') {
|
|
113
|
+
data["message"] = data["message"] || errorMessage; // breeze looks at the message property
|
|
114
|
+
}
|
|
115
|
+
if (!data) {
|
|
116
|
+
data = errorMessage; // Return the error message as data
|
|
117
|
+
}
|
|
118
|
+
let httpResponse = {
|
|
119
|
+
config: requestInfo.request,
|
|
120
|
+
data: data,
|
|
121
|
+
getHeaders: makeGetHeaders(response.headers),
|
|
122
|
+
status: response.status
|
|
123
|
+
};
|
|
124
|
+
httpResponse['ngConfig'] = requestInfo.request;
|
|
125
|
+
httpResponse['statusText'] = response.statusText;
|
|
126
|
+
httpResponse['response'] = response;
|
|
127
|
+
config.error(httpResponse); // send error to breeze error handler
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
AjaxHttpClientAdapter.adapterName = 'httpclient';
|
|
133
|
+
///// Helpers ////
|
|
134
|
+
function makeGetHeaders(headers) {
|
|
135
|
+
return function getHeaders(headerName) { return headers.getAll(headerName).join('\r\n'); };
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci1hamF4LWh0dHBjbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRhcHRlci1hamF4LWh0dHBjbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QyxXQUFXLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hILE9BQU8sRUFBYyxNQUFNLEVBQUUsSUFBSSxFQUF5RixNQUFNLGVBQWUsQ0FBQztBQUNoSixPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRSxNQUFNLE9BQU8scUJBQXFCO0lBTWhDLFlBQW1CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFKbkMsU0FBSSxHQUFHLHFCQUFxQixDQUFDLFdBQVcsQ0FBQztRQUN6QyxvQkFBZSxHQUFHLEVBQUUsQ0FBQztJQUdrQixDQUFDO0lBRXhDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBZ0IsRUFBRSxZQUEyQjtRQUMzRCxZQUFZLEdBQUcsWUFBWSxJQUFJLE1BQU0sQ0FBQztRQUN0QyxZQUFZLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBTyxjQUFjLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25HLE9BQU8sWUFBWSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUEwQixDQUFDO0lBQzFILENBQUM7SUFFRCxVQUFVLEtBQUssQ0FBQztJQUVoQixJQUFJLENBQUMsTUFBa0I7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7U0FD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RCxJQUFJLENBQUMsSUFBSSxFQUFFO29CQUNULElBQUksR0FBRyxZQUFZLENBQUMsQ0FBRyxtQ0FBbUM7aUJBQzNEO2dCQUNELElBQUksWUFBWSxHQUF1QjtvQkFDckMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxPQUFPO29CQUMzQixJQUFJLEVBQUUsSUFBSTtvQkFDVixVQUFVLEVBQUUsY0FBYyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7b0JBQzVDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTTtpQkFDeEIsQ0FBQztnQkFDRixZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztnQkFDL0MsWUFBWSxDQUFDLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7Z0JBQ2pELFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxRQUFRLENBQUM7Z0JBRXBDLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7YUFDbEU7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs7QUE3SU0saUNBQVcsR0FBRyxZQUFZLENBQUM7QUFpSnBDLGtCQUFrQjtBQUVsQixTQUFTLGNBQWMsQ0FBQyxPQUFvQjtJQUMxQyxPQUFPLFNBQVMsVUFBVSxDQUFDLFVBQW1CLElBQUksT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgQWpheENvbmZpZywgY29uZmlnLCBjb3JlLCBIdHRwUmVzcG9uc2UgYXMgQnJlZXplSHR0cFJlc3BvbnNlLCBCcmVlemVDb25maWcsIEFqYXhSZXF1ZXN0SW50ZXJjZXB0b3IsIEFqYXhBZGFwdGVyIH0gZnJvbSBcImJyZWV6ZS1jbGllbnRcIjtcclxuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgYXBwZW5kUXVlcnlTdHJpbmdQYXJhbWV0ZXIsIGVuY29kZVBhcmFtcyB9IGZyb20gXCIuL2FkYXB0ZXItY29yZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEFqYXhIdHRwQ2xpZW50QWRhcHRlciBpbXBsZW1lbnRzIEFqYXhBZGFwdGVyIHtcclxuICBzdGF0aWMgYWRhcHRlck5hbWUgPSAnaHR0cGNsaWVudCc7XHJcbiAgbmFtZSA9IEFqYXhIdHRwQ2xpZW50QWRhcHRlci5hZGFwdGVyTmFtZTtcclxuICBkZWZhdWx0U2V0dGluZ3MgPSB7fTtcclxuICByZXF1ZXN0SW50ZXJjZXB0b3I6IEFqYXhSZXF1ZXN0SW50ZXJjZXB0b3I7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcbiAgc3RhdGljIHJlZ2lzdGVyKGh0dHA6IEh0dHBDbGllbnQsIGJyZWV6ZUNvbmZpZz86IEJyZWV6ZUNvbmZpZykge1xyXG4gICAgYnJlZXplQ29uZmlnID0gYnJlZXplQ29uZmlnIHx8IGNvbmZpZztcclxuICAgIGJyZWV6ZUNvbmZpZy5yZWdpc3RlckFkYXB0ZXIoXCJhamF4XCIsIDxhbnk+ZnVuY3Rpb24gKCkgeyByZXR1cm4gbmV3IEFqYXhIdHRwQ2xpZW50QWRhcHRlcihodHRwKTsgfSk7XHJcbiAgICByZXR1cm4gYnJlZXplQ29uZmlnLmluaXRpYWxpemVBZGFwdGVySW5zdGFuY2UoXCJhamF4XCIsIEFqYXhIdHRwQ2xpZW50QWRhcHRlci5hZGFwdGVyTmFtZSwgdHJ1ZSkgYXMgQWpheEh0dHBDbGllbnRBZGFwdGVyO1xyXG4gIH1cclxuXHJcbiAgaW5pdGlhbGl6ZSgpIHsgfVxyXG5cclxuICBhamF4KGNvbmZpZzogQWpheENvbmZpZykge1xyXG4gICAgaWYgKCF0aGlzLmh0dHApIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gbG9jYXRlIGFuZ3VsYXIgaHR0cCBtb2R1bGUgZm9yIGFqYXggYWRhcHRlcicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIG1lcmdlIGRlZmF1bHQgRGF0YVNldEFkYXB0ZXIgU2V0dGluZ3Mgd2l0aCBjb25maWcgYXJnXHJcbiAgICBpZiAoIWNvcmUuaXNFbXB0eSh0aGlzLmRlZmF1bHRTZXR0aW5ncykpIHtcclxuICAgICAgbGV0IGNvbXBvc2l0ZUNvbmZpZyA9IGNvcmUuZXh0ZW5kKHt9LCB0aGlzLmRlZmF1bHRTZXR0aW5ncyk7XHJcbiAgICAgIGNvbmZpZyA9IDxBamF4Q29uZmlnPmNvcmUuZXh0ZW5kKGNvbXBvc2l0ZUNvbmZpZywgY29uZmlnKTtcclxuICAgICAgLy8gZXh0ZW5kIGlzIHNoYWxsb3c7IGV4dGVuZCBoZWFkZXJzIHNlcGFyYXRlbHlcclxuICAgICAgbGV0IGhlYWRlcnMgPSBjb3JlLmV4dGVuZCh7fSwgdGhpcy5kZWZhdWx0U2V0dGluZ3NbJ2hlYWRlcnMnXSk7IC8vIGNvcHkgZGVmYXVsdCBoZWFkZXJzIDFzdFxyXG4gICAgICBjb25maWdbJ2hlYWRlcnMnXSA9IGNvcmUuZXh0ZW5kKGhlYWRlcnMsIGNvbmZpZy5oZWFkZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLmNyb3NzRG9tYWluKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcih0aGlzLm5hbWUgKyAnIGRvZXMgbm90IHN1cHBvcnQgSlNPTlAgKGNyb3NzRG9tYWluKSByZXF1ZXN0cycpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIEhhY2s6IE5vdCBzdXJlIGhvdyBBbmd1bGFyIGhhbmRsZXMgd3JpdGluZyAnc2VhcmNoJyBwYXJhbWV0ZXJzIHRvIHRoZSB1cmwuXHJcbiAgICAvLyBzbyB0aGlzIGFwcHJvYWNoIHRha2VzIG92ZXIgdGhlIHVybCBwYXJhbSB3cml0aW5nIGNvbXBsZXRlbHkuXHJcbiAgICBjb25zdCBwYXJhbWV0ZXJzID0gY29yZS5pc0VtcHR5KGNvbmZpZy5wYXJhbXMpID8gbnVsbCA6IGVuY29kZVBhcmFtcyhjb25maWcucGFyYW1zKTtcclxuICAgIGNvbnN0IHVybCA9IGFwcGVuZFF1ZXJ5U3RyaW5nUGFyYW1ldGVyKGNvbmZpZy51cmwsIHBhcmFtZXRlcnMpO1xyXG5cclxuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKGNvbmZpZy5oZWFkZXJzIHx8IHt9KTtcclxuICAgIGlmICghaGVhZGVycy5oYXMoJ0NvbnRlbnQtVHlwZScpKSB7XHJcbiAgICAgIGlmIChjb25maWcudHlwZSAhPT0gJ0dFVCcgJiYgY29uZmlnLnR5cGUgIT09ICdERUxFVEUnICYmICEhY29uZmlnLmNvbnRlbnRUeXBlKSB7XHJcbiAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdDb250ZW50LVR5cGUnLFxyXG4gICAgICAgICAgPHN0cmluZz5jb25maWcuY29udGVudFR5cGUgfHwgJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxldCBib2R5OiBhbnkgPSBjb25maWcuZGF0YTtcclxuICAgIGxldCByZXF1ZXN0ID0gbmV3IEh0dHBSZXF1ZXN0KChjb25maWcudHlwZSB8fCAnR0VUJykudG9VcHBlckNhc2UoKSwgdXJsLCBib2R5LCB7IGhlYWRlcnM6IGhlYWRlcnMsIHJlc3BvbnNlVHlwZTogXCJ0ZXh0XCIgfSk7XHJcblxyXG4gICAgbGV0IHJlcXVlc3RJbmZvID0ge1xyXG4gICAgICBhZGFwdGVyOiB0aGlzLCAgICAgIC8vIHRoaXMgYWRhcHRlclxyXG4gICAgICByZXF1ZXN0OiByZXF1ZXN0LCAgIC8vIHRoZSBodHRwIHJlcXVlc3QgZnJvbSB0aGUgcmVxdWVzdE9wdGlvbnNcclxuICAgICAgZHNhQ29uZmlnOiBjb25maWcsICAvLyB0aGUgY29uZmlnIGFyZyBmcm9tIHRoZSBjYWxsaW5nIEJyZWV6ZSBEYXRhU2VydmljZUFkYXB0ZXJcclxuICAgICAgc3VjY2Vzczogc3VjY2Vzc0ZuLCAvLyBhZGFwdGVyJ3Mgc3VjY2VzcyBjYWxsYmFja1xyXG4gICAgICBlcnJvcjogZXJyb3JGbiAgICAgIC8vIGFkYXB0ZXIncyBlcnJvciBjYWxsYmFja1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoY29yZS5pc0Z1bmN0aW9uKHRoaXMucmVxdWVzdEludGVyY2VwdG9yKSkge1xyXG4gICAgICB0aGlzLnJlcXVlc3RJbnRlcmNlcHRvcihyZXF1ZXN0SW5mbyBhcyBhbnkpO1xyXG4gICAgICBpZiAodGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3JbJ29uZVRpbWUnXSkge1xyXG4gICAgICAgIHRoaXMucmVxdWVzdEludGVyY2VwdG9yID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChyZXF1ZXN0SW5mby5yZXF1ZXN0KSB7IC8vIGV4aXN0cyB1bmxlc3MgcmVxdWVzdEludGVyY2VwdG9yIGtpbGxlZCBpdC5cclxuICAgICAgY29uc3QgZmZpbHRlciA9IGZpbHRlcigocmVzcG9uc2U6IEh0dHBFdmVudDxhbnk+KSA9PiByZXNwb25zZSBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSk7XHJcbiAgICAgIGNvbnN0IGZtYXAgPSBtYXAoZXh0cmFjdERhdGEpO1xyXG5cclxuICAgICAgZm1hcChmZmlsdGVyKHRoaXMuaHR0cC5yZXF1ZXN0KHJlcXVlc3RJbmZvLnJlcXVlc3QpKSlcclxuICAgICAgICAuZm9yRWFjaChyZXF1ZXN0SW5mby5zdWNjZXNzKVxyXG4gICAgICAgIC5jYXRjaChyZXF1ZXN0SW5mby5lcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gZXh0cmFjdERhdGEoZXZlbnQ6IEh0dHBFdmVudDxhbnk+KSB7XHJcbiAgICAgIGxldCByZXNwb25zZSA9IGV2ZW50IGFzIEh0dHBSZXNwb25zZTxhbnk+O1xyXG4gICAgICBsZXQgZGF0YTogYW55O1xyXG4gICAgICBsZXQgZHQgPSByZXF1ZXN0SW5mby5kc2FDb25maWcuZGF0YVR5cGU7XHJcbiAgICAgIC8vIGJld2FyZTpgcmVzLmpzb25gIGFuZCBgcmVzLnRleHRgIHdpbGwgYmUgYXN5bmMgc29tZSBkYXlcclxuICAgICAgaWYgKGR0ICYmIGR0ICE9PSAnanNvbicpIHtcclxuICAgICAgICBkYXRhID0gcmVzcG9uc2UuYm9keTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShyZXNwb25zZS5ib2R5KTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4geyBkYXRhLCByZXNwb25zZSB9O1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHN1Y2Nlc3NGbihhcmc6IHsgZGF0YTogYW55LCByZXNwb25zZTogSHR0cFJlc3BvbnNlPGFueT4gfSkge1xyXG4gICAgICBpZiAoYXJnLnJlc3BvbnNlLnN0YXR1cyA8IDIwMCB8fCBhcmcucmVzcG9uc2Uuc3RhdHVzID49IDMwMCkge1xyXG4gICAgICAgIHRocm93IHsgZGF0YTogYXJnLmRhdGEsIHJlc3BvbnNlOiBhcmcucmVzcG9uc2UgfTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGh0dHBSZXNwb25zZTogQnJlZXplSHR0cFJlc3BvbnNlID0ge1xyXG4gICAgICAgIGNvbmZpZzogcmVxdWVzdEluZm8ucmVxdWVzdCxcclxuICAgICAgICBkYXRhOiBhcmcuZGF0YSxcclxuICAgICAgICBnZXRIZWFkZXJzOiBtYWtlR2V0SGVhZGVycyhhcmcucmVzcG9uc2UuaGVhZGVycyksXHJcbiAgICAgICAgc3RhdHVzOiBhcmcucmVzcG9uc2Uuc3RhdHVzXHJcbiAgICAgIH07XHJcbiAgICAgIGh0dHBSZXNwb25zZVsnbmdDb25maWcnXSA9IHJlcXVlc3RJbmZvLnJlcXVlc3Q7XHJcbiAgICAgIGh0dHBSZXNwb25zZVsnc3RhdHVzVGV4dCddID0gYXJnLnJlc3BvbnNlLnN0YXR1c1RleHQ7XHJcbiAgICAgIGh0dHBSZXNwb25zZVsncmVzcG9uc2UnXSA9IGFyZy5yZXNwb25zZTtcclxuICAgICAgY29uZmlnLnN1Y2Nlc3MoaHR0cFJlc3BvbnNlKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBlcnJvckZuKHJlc3BvbnNlOiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgICBpZiAocmVzcG9uc2UgaW5zdGFuY2VvZiBFcnJvcikge1xyXG4gICAgICAgIHRocm93IHJlc3BvbnNlOyAvLyBwcm9ncmFtIGVycm9yOyBub3RoaW5nIHdlIGNhbiBkb1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBkYXRhOiBhbnk7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlLmVycm9yIGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBkYXRhID0gcmVzcG9uc2UuZXJyb3IuYm9keTtcclxuICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLmVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcclxuICAgICAgICAgIGRhdGEgPSByZXNwb25zZS5lcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBkYXRhID0gcmVzcG9uc2UuZXJyb3I7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBUaW1lb3V0IGFwcGVhcnMgYXMgYW4gZXJyb3Igd2l0aCBzdGF0dXM9PT0wIGFuZCBubyBkYXRhLlxyXG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDAgJiYgZGF0YSA9PSBudWxsKSB7XHJcbiAgICAgICAgICBkYXRhID0gJ3RpbWVvdXQnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGVycm9yTWVzc2FnZSA9IHJlc3BvbnNlLnN0YXR1cyArIFwiOiBcIiArIHJlc3BvbnNlLnN0YXR1c1RleHQ7XHJcbiAgICAgICAgaWYgKGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBkYXRhW1wibWVzc2FnZVwiXSA9IGRhdGFbXCJtZXNzYWdlXCJdIHx8IGVycm9yTWVzc2FnZTsgIC8vIGJyZWV6ZSBsb29rcyBhdCB0aGUgbWVzc2FnZSBwcm9wZXJ0eVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWRhdGEpIHtcclxuICAgICAgICAgIGRhdGEgPSBlcnJvck1lc3NhZ2U7ICAgLy8gUmV0dXJuIHRoZSBlcnJvciBtZXNzYWdlIGFzIGRhdGFcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGh0dHBSZXNwb25zZTogQnJlZXplSHR0cFJlc3BvbnNlID0ge1xyXG4gICAgICAgICAgY29uZmlnOiByZXF1ZXN0SW5mby5yZXF1ZXN0LFxyXG4gICAgICAgICAgZGF0YTogZGF0YSxcclxuICAgICAgICAgIGdldEhlYWRlcnM6IG1ha2VHZXRIZWFkZXJzKHJlc3BvbnNlLmhlYWRlcnMpLFxyXG4gICAgICAgICAgc3RhdHVzOiByZXNwb25zZS5zdGF0dXNcclxuICAgICAgICB9O1xyXG4gICAgICAgIGh0dHBSZXNwb25zZVsnbmdDb25maWcnXSA9IHJlcXVlc3RJbmZvLnJlcXVlc3Q7XHJcbiAgICAgICAgaHR0cFJlc3BvbnNlWydzdGF0dXNUZXh0J10gPSByZXNwb25zZS5zdGF0dXNUZXh0O1xyXG4gICAgICAgIGh0dHBSZXNwb25zZVsncmVzcG9uc2UnXSA9IHJlc3BvbnNlO1xyXG5cclxuICAgICAgICBjb25maWcuZXJyb3IoaHR0cFJlc3BvbnNlKTsgLy8gc2VuZCBlcnJvciB0byBicmVlemUgZXJyb3IgaGFuZGxlclxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG5cclxuLy8vLy8gSGVscGVycyAvLy8vXHJcblxyXG5mdW5jdGlvbiBtYWtlR2V0SGVhZGVycyhoZWFkZXJzOiBIdHRwSGVhZGVycykge1xyXG4gIHJldHVybiBmdW5jdGlvbiBnZXRIZWFkZXJzKGhlYWRlck5hbWU/OiBzdHJpbmcpIHsgcmV0dXJuIGhlYWRlcnMuZ2V0QWxsKGhlYWRlck5hbWUpLmpvaW4oJ1xcclxcbicpOyB9O1xyXG59Il19
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** Appends parameter to url, with appropriate delimiter */
|
|
2
|
+
export function appendQueryStringParameter(url, parameter) {
|
|
3
|
+
if (!parameter)
|
|
4
|
+
return url;
|
|
5
|
+
let separator = url.endsWith("?") ? "" : url.includes("?") ? "&" : "?";
|
|
6
|
+
return url + separator + parameter;
|
|
7
|
+
}
|
|
8
|
+
/** Encodes the object into query string parameters */
|
|
9
|
+
export function encodeParams(obj) {
|
|
10
|
+
let query = '';
|
|
11
|
+
let subValue, innerObj, fullSubName;
|
|
12
|
+
for (let name in obj) {
|
|
13
|
+
if (!obj.hasOwnProperty(name)) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
let value = obj[name];
|
|
17
|
+
if (value instanceof Array) {
|
|
18
|
+
for (let i = 0; i < value.length; ++i) {
|
|
19
|
+
subValue = value[i];
|
|
20
|
+
fullSubName = name + '[' + i + ']';
|
|
21
|
+
innerObj = {};
|
|
22
|
+
innerObj[fullSubName] = subValue;
|
|
23
|
+
query += encodeParams(innerObj) + '&';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (value && value.toISOString) { // a feature of Date-like things
|
|
27
|
+
query += encodeURIComponent(name) + '=' + encodeURIComponent(value.toISOString()) + '&';
|
|
28
|
+
}
|
|
29
|
+
else if (value instanceof Object) {
|
|
30
|
+
for (let subName in value) {
|
|
31
|
+
if (obj.hasOwnProperty(name)) {
|
|
32
|
+
subValue = value[subName];
|
|
33
|
+
fullSubName = name + '[' + subName + ']';
|
|
34
|
+
innerObj = {};
|
|
35
|
+
innerObj[fullSubName] = subValue;
|
|
36
|
+
query += encodeParams(innerObj) + '&';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else if (value === null) {
|
|
41
|
+
query += encodeURIComponent(name) + '=&';
|
|
42
|
+
}
|
|
43
|
+
else if (value !== undefined) {
|
|
44
|
+
query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return query.length ? query.substr(0, query.length - 1) : query;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci1jb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FkYXB0ZXItY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyREFBMkQ7QUFDM0QsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEdBQVcsRUFBRSxTQUFpQjtJQUN2RSxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBRTNCLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFFdkUsT0FBTyxHQUFHLEdBQUcsU0FBUyxHQUFHLFNBQVMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsc0RBQXNEO0FBQ3RELE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBTztJQUNsQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDZixJQUFJLFFBQWEsRUFBRSxRQUFhLEVBQUUsV0FBZ0IsQ0FBQztJQUVuRCxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRTtRQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUFFLFNBQVM7U0FBRTtRQUU1QyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEIsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO1lBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixXQUFXLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNuQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNkLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxRQUFRLENBQUM7Z0JBQ2pDLEtBQUssSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDO2FBQ3ZDO1NBQ0Y7YUFBTSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsZ0NBQWdDO1lBQ3ZFLEtBQUssSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ3pGO2FBQU0sSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFO1lBQ2xDLEtBQUssSUFBSSxPQUFPLElBQUksS0FBSyxFQUFFO2dCQUN6QixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQzFCLFdBQVcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7b0JBQ3pDLFFBQVEsR0FBRyxFQUFFLENBQUM7b0JBQ2QsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLFFBQVEsQ0FBQztvQkFDakMsS0FBSyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUM7aUJBQ3ZDO2FBQ0Y7U0FDRjthQUFNLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUN6QixLQUFLLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzFDO2FBQU0sSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzlCLEtBQUssSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQzNFO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEFwcGVuZHMgcGFyYW1ldGVyIHRvIHVybCwgd2l0aCBhcHByb3ByaWF0ZSBkZWxpbWl0ZXIgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZFF1ZXJ5U3RyaW5nUGFyYW1ldGVyKHVybDogc3RyaW5nLCBwYXJhbWV0ZXI6IHN0cmluZykge1xyXG4gIGlmICghcGFyYW1ldGVyKSByZXR1cm4gdXJsO1xyXG5cclxuICBsZXQgc2VwYXJhdG9yID0gdXJsLmVuZHNXaXRoKFwiP1wiKSA/IFwiXCIgOiB1cmwuaW5jbHVkZXMoXCI/XCIpID8gXCImXCIgOiBcIj9cIjtcclxuXHJcbiAgcmV0dXJuIHVybCArIHNlcGFyYXRvciArIHBhcmFtZXRlcjtcclxufVxyXG5cclxuLyoqIEVuY29kZXMgdGhlIG9iamVjdCBpbnRvIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzICovXHJcbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVQYXJhbXMob2JqOiB7fSkge1xyXG4gIGxldCBxdWVyeSA9ICcnO1xyXG4gIGxldCBzdWJWYWx1ZTogYW55LCBpbm5lck9iajogYW55LCBmdWxsU3ViTmFtZTogYW55O1xyXG5cclxuICBmb3IgKGxldCBuYW1lIGluIG9iaikge1xyXG4gICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkobmFtZSkpIHsgY29udGludWU7IH1cclxuXHJcbiAgICBsZXQgdmFsdWUgPSBvYmpbbmFtZV07XHJcblxyXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7ICsraSkge1xyXG4gICAgICAgIHN1YlZhbHVlID0gdmFsdWVbaV07XHJcbiAgICAgICAgZnVsbFN1Yk5hbWUgPSBuYW1lICsgJ1snICsgaSArICddJztcclxuICAgICAgICBpbm5lck9iaiA9IHt9O1xyXG4gICAgICAgIGlubmVyT2JqW2Z1bGxTdWJOYW1lXSA9IHN1YlZhbHVlO1xyXG4gICAgICAgIHF1ZXJ5ICs9IGVuY29kZVBhcmFtcyhpbm5lck9iaikgKyAnJic7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdmFsdWUudG9JU09TdHJpbmcpIHsgLy8gYSBmZWF0dXJlIG9mIERhdGUtbGlrZSB0aGluZ3NcclxuICAgICAgcXVlcnkgKz0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlLnRvSVNPU3RyaW5nKCkpICsgJyYnO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICBmb3IgKGxldCBzdWJOYW1lIGluIHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xyXG4gICAgICAgICAgc3ViVmFsdWUgPSB2YWx1ZVtzdWJOYW1lXTtcclxuICAgICAgICAgIGZ1bGxTdWJOYW1lID0gbmFtZSArICdbJyArIHN1Yk5hbWUgKyAnXSc7XHJcbiAgICAgICAgICBpbm5lck9iaiA9IHt9O1xyXG4gICAgICAgICAgaW5uZXJPYmpbZnVsbFN1Yk5hbWVdID0gc3ViVmFsdWU7XHJcbiAgICAgICAgICBxdWVyeSArPSBlbmNvZGVQYXJhbXMoaW5uZXJPYmopICsgJyYnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICBxdWVyeSArPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSkgKyAnPSYnO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHF1ZXJ5ICs9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkgKyAnJic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcXVlcnkubGVuZ3RoID8gcXVlcnkuc3Vic3RyKDAsIHF1ZXJ5Lmxlbmd0aCAtIDEpIDogcXVlcnk7XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './adapter-ajax-httpclient';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLWNsaWVudC1hZGFwdGVyLWFqYXgtaHR0cGNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9icmVlemUtY2xpZW50LWFkYXB0ZXItYWpheC1odHRwY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hZGFwdGVyLWFqYXgtaHR0cGNsaWVudCc7XG4iXX0=
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { config, core } from 'breeze-client';
|
|
2
|
+
export class AjaxJQueryAdapter {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.name = "jQuery";
|
|
5
|
+
this.defaultSettings = {};
|
|
6
|
+
this.requestInterceptor = undefined;
|
|
7
|
+
}
|
|
8
|
+
static register(breezeConfig) {
|
|
9
|
+
breezeConfig = breezeConfig || config;
|
|
10
|
+
breezeConfig.registerAdapter("ajax", AjaxJQueryAdapter);
|
|
11
|
+
return breezeConfig.initializeAdapterInstance("ajax", "jQuery", true);
|
|
12
|
+
}
|
|
13
|
+
initialize() {
|
|
14
|
+
this.jQuery = jQuery;
|
|
15
|
+
// look for the jQuery lib but don't fail immediately if not found
|
|
16
|
+
if (!jQuery) {
|
|
17
|
+
this.jQuery = core.requireLib("jQuery;jquery");
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
ajax(config) {
|
|
21
|
+
if (!this.jQuery) {
|
|
22
|
+
throw new Error("Unable to locate jQuery");
|
|
23
|
+
}
|
|
24
|
+
let jqConfig = {
|
|
25
|
+
type: config.type,
|
|
26
|
+
url: config.url,
|
|
27
|
+
data: config.params || config.data,
|
|
28
|
+
dataType: config.dataType,
|
|
29
|
+
contentType: config.contentType,
|
|
30
|
+
crossDomain: config.crossDomain,
|
|
31
|
+
headers: config.headers || {}
|
|
32
|
+
};
|
|
33
|
+
if (!core.isEmpty(this.defaultSettings)) {
|
|
34
|
+
let compositeConfig = core.extend({}, this.defaultSettings);
|
|
35
|
+
jqConfig = core.extend(compositeConfig, jqConfig);
|
|
36
|
+
// extend is shallow; extend headers separately
|
|
37
|
+
let headers = core.extend({}, this.defaultSettings.headers); // copy default headers 1st
|
|
38
|
+
jqConfig.headers = core.extend(headers, jqConfig.headers);
|
|
39
|
+
}
|
|
40
|
+
let requestInfo = {
|
|
41
|
+
adapter: this,
|
|
42
|
+
config: jqConfig,
|
|
43
|
+
dsaConfig: config,
|
|
44
|
+
success: successFn,
|
|
45
|
+
error: errorFn, // adapter's error callback
|
|
46
|
+
};
|
|
47
|
+
if (core.isFunction(this.requestInterceptor)) {
|
|
48
|
+
let ri = this.requestInterceptor;
|
|
49
|
+
ri(requestInfo);
|
|
50
|
+
if (ri.oneTime) {
|
|
51
|
+
this.requestInterceptor = undefined;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (requestInfo.config) { // exists unless requestInterceptor killed it.
|
|
55
|
+
requestInfo.jqXHR = this.jQuery.ajax(requestInfo.config)
|
|
56
|
+
.done(requestInfo.success)
|
|
57
|
+
.fail(requestInfo.error);
|
|
58
|
+
}
|
|
59
|
+
function successFn(data, statusText, jqXHR) {
|
|
60
|
+
let httpResponse = {
|
|
61
|
+
config: config,
|
|
62
|
+
data: data,
|
|
63
|
+
getHeaders: getHeadersFn(jqXHR),
|
|
64
|
+
status: jqXHR.status,
|
|
65
|
+
statusText: statusText
|
|
66
|
+
};
|
|
67
|
+
config.success(httpResponse);
|
|
68
|
+
// TODO: not sure how to do this or if needed.
|
|
69
|
+
// jqXHR.onreadystatechange = null;
|
|
70
|
+
// jqXHR.abort = null;
|
|
71
|
+
}
|
|
72
|
+
function errorFn(jqXHR, statusText, errorThrown) {
|
|
73
|
+
let httpResponse = {
|
|
74
|
+
config: config,
|
|
75
|
+
data: jqXHR.responseText,
|
|
76
|
+
error: errorThrown,
|
|
77
|
+
getHeaders: getHeadersFn(jqXHR),
|
|
78
|
+
status: jqXHR.status,
|
|
79
|
+
statusText: statusText
|
|
80
|
+
};
|
|
81
|
+
config.error(httpResponse);
|
|
82
|
+
// TODO: not sure how to do this or if needed.
|
|
83
|
+
// jqXHR.onreadystatechange = null;
|
|
84
|
+
// jqXHR.abort = null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
config.registerAdapter("ajax", AjaxJQueryAdapter);
|
|
89
|
+
function getHeadersFn(jqXHR) {
|
|
90
|
+
if (jqXHR.status === 0) { // timeout or abort; no headers
|
|
91
|
+
return function (headerName) {
|
|
92
|
+
return (headerName && headerName.length > 0) ? "" : {};
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
else { // jqXHR should have header functions
|
|
96
|
+
return function (headerName) {
|
|
97
|
+
return (headerName && headerName.length > 0) ?
|
|
98
|
+
jqXHR.getResponseHeader(headerName) :
|
|
99
|
+
jqXHR.getAllResponseHeaders();
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci1hamF4LWpxdWVyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZGFwdGVyLWFqYXgtanF1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk1RyxNQUFNLE9BQU8saUJBQWlCO0lBTTVCO1FBQ0UsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7UUFDckIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFHLENBQUM7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxZQUEyQjtRQUN6QyxZQUFZLEdBQUcsWUFBWSxJQUFJLE1BQU0sQ0FBQztRQUN0QyxZQUFZLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sWUFBWSxDQUFDLHlCQUF5QixDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFzQixDQUFDO0lBQzdGLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQWtCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUM1QztRQUNELElBQUksUUFBUSxHQUFHO1lBQ2IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJO1lBQ2pCLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztZQUNmLElBQUksRUFBRSxNQUFN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LGVBQWUsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUVsRCxTQUFTLFlBQVksQ0FBQyxLQUFxQjtJQUN6QyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLEVBQUUsK0JBQStCO1FBQ3ZELE9BQU8sVUFBVSxVQUFrQjtZQUNqQyxPQUFPLENBQUMsVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pELENBQUMsQ0FBQztLQUNIO1NBQU0sRUFBRSxxQ0FBcUM7UUFDNUMsT0FBTyxVQUFVLFVBQWtCO1lBQ2pDLE9BQU8sQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUM1QyxLQUFLLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQkFDckMsS0FBSyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUFDO0tBQ0g7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWpheEFkYXB0ZXIsIEFqYXhDb25maWcsIEFqYXhSZXF1ZXN0SW50ZXJjZXB0b3IsIEJyZWV6ZUNvbmZpZywgY29uZmlnLCBjb3JlIH0gZnJvbSAnYnJlZXplLWNsaWVudCc7XHJcblxyXG5kZWNsYXJlIHZhciBqUXVlcnk6IGFueTtcclxuXHJcbmV4cG9ydCBjbGFzcyBBamF4SlF1ZXJ5QWRhcHRlciBpbXBsZW1lbnRzIEFqYXhBZGFwdGVyIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVmYXVsdFNldHRpbmdzOiB7IGhlYWRlcnM/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSB9O1xyXG4gIHJlcXVlc3RJbnRlcmNlcHRvcj86IEFqYXhSZXF1ZXN0SW50ZXJjZXB0b3I7XHJcbiAgalF1ZXJ5OiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5uYW1lID0gXCJqUXVlcnlcIjtcclxuICAgIHRoaXMuZGVmYXVsdFNldHRpbmdzID0geyB9O1xyXG4gICAgdGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3IgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgcmVnaXN0ZXIoYnJlZXplQ29uZmlnPzogQnJlZXplQ29uZmlnKSB7XHJcbiAgICBicmVlemVDb25maWcgPSBicmVlemVDb25maWcgfHwgY29uZmlnO1xyXG4gICAgYnJlZXplQ29uZmlnLnJlZ2lzdGVyQWRhcHRlcihcImFqYXhcIiwgQWpheEpRdWVyeUFkYXB0ZXIpO1xyXG4gICAgcmV0dXJuIGJyZWV6ZUNvbmZpZy5pbml0aWFsaXplQWRhcHRlckluc3RhbmNlKFwiYWpheFwiLCBcImpRdWVyeVwiLCB0cnVlKSBhcyBBamF4SlF1ZXJ5QWRhcHRlcjtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemUoKSB7XHJcbiAgICB0aGlzLmpRdWVyeSA9IGpRdWVyeTtcclxuICAgIC8vIGxvb2sgZm9yIHRoZSBqUXVlcnkgbGliIGJ1dCBkb24ndCBmYWlsIGltbWVkaWF0ZWx5IGlmIG5vdCBmb3VuZFxyXG4gICAgaWYgKCFqUXVlcnkpIHtcclxuICAgICAgdGhpcy5qUXVlcnkgPSBjb3JlLnJlcXVpcmVMaWIoXCJqUXVlcnk7anF1ZXJ5XCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWpheChjb25maWc6IEFqYXhDb25maWcpIHtcclxuICAgIGlmICghdGhpcy5qUXVlcnkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGxvY2F0ZSBqUXVlcnlcIik7XHJcbiAgICB9XHJcbiAgICBsZXQganFDb25maWcgPSB7XHJcbiAgICAgIHR5cGU6IGNvbmZpZy50eXBlLFxyXG4gICAgICB1cmw6IGNvbmZpZy51cmwsXHJcbiAgICAgIGRhdGE6IGNvbmZpZy5wYXJhbXMgfHwgY29uZmlnLmRhdGEsXHJcbiAgICAgIGRhdGFUeXBlOiBjb25maWcuZGF0YVR5cGUsXHJcbiAgICAgIGNvbnRlbnRUeXBlOiBjb25maWcuY29udGVudFR5cGUsXHJcbiAgICAgIGNyb3NzRG9tYWluOiBjb25maWcuY3Jvc3NEb21haW4sXHJcbiAgICAgIGhlYWRlcnM6IGNvbmZpZy5oZWFkZXJzIHx8IHt9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmICghY29yZS5pc0VtcHR5KHRoaXMuZGVmYXVsdFNldHRpbmdzKSkge1xyXG4gICAgICBsZXQgY29tcG9zaXRlQ29uZmlnID0gY29yZS5leHRlbmQoe30sIHRoaXMuZGVmYXVsdFNldHRpbmdzKTtcclxuICAgICAganFDb25maWcgPSBjb3JlLmV4dGVuZChjb21wb3NpdGVDb25maWcsIGpxQ29uZmlnKSBhcyBhbnk7XHJcbiAgICAgIC8vIGV4dGVuZCBpcyBzaGFsbG93OyBleHRlbmQgaGVhZGVycyBzZXBhcmF0ZWx5XHJcbiAgICAgIGxldCBoZWFkZXJzID0gY29yZS5leHRlbmQoe30sIHRoaXMuZGVmYXVsdFNldHRpbmdzLmhlYWRlcnMpOyAvLyBjb3B5IGRlZmF1bHQgaGVhZGVycyAxc3RcclxuICAgICAganFDb25maWcuaGVhZGVycyA9IGNvcmUuZXh0ZW5kKGhlYWRlcnMsIGpxQ29uZmlnLmhlYWRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByZXF1ZXN0SW5mbyA9IHtcclxuICAgICAgYWRhcHRlcjogdGhpcywgICAgICAvLyB0aGlzIGFkYXB0ZXJcclxuICAgICAgY29uZmlnOiBqcUNvbmZpZywgICAvLyBqUXVlcnkncyBhamF4ICdzZXR0aW5ncycgb2JqZWN0XHJcbiAgICAgIGRzYUNvbmZpZzogY29uZmlnLCAgLy8gdGhlIGNvbmZpZyBhcmcgZnJvbSB0aGUgY2FsbGluZyBCcmVlemUgRGF0YVNlcnZpY2VBZGFwdGVyXHJcbiAgICAgIHN1Y2Nlc3M6IHN1Y2Nlc3NGbiwgLy8gYWRhcHRlcidzIHN1Y2Nlc3MgY2FsbGJhY2tcclxuICAgICAgZXJyb3I6IGVycm9yRm4sICAgICAgLy8gYWRhcHRlcidzIGVycm9yIGNhbGxiYWNrXHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChjb3JlLmlzRnVuY3Rpb24odGhpcy5yZXF1ZXN0SW50ZXJjZXB0b3IpKSB7XHJcbiAgICAgIGxldCByaSA9IHRoaXMucmVxdWVzdEludGVyY2VwdG9yIGFzIGFueTtcclxuICAgICAgcmkocmVxdWVzdEluZm8pO1xyXG4gICAgICBpZiAocmkub25lVGltZSkge1xyXG4gICAgICAgIHRoaXMucmVxdWVzdEludGVyY2VwdG9yID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHJlcXVlc3RJbmZvLmNvbmZpZykgeyAvLyBleGlzdHMgdW5sZXNzIHJlcXVlc3RJbnRlcmNlcHRvciBraWxsZWQgaXQuXHJcbiAgICAgIChyZXF1ZXN0SW5mbyBhcyBhbnkpLmpxWEhSID0gdGhpcy5qUXVlcnkuYWpheChyZXF1ZXN0SW5mby5jb25maWcpXHJcbiAgICAgICAgLmRvbmUocmVxdWVzdEluZm8uc3VjY2VzcylcclxuICAgICAgICAuZmFpbChyZXF1ZXN0SW5mby5lcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gc3VjY2Vzc0ZuKGRhdGE6IGFueSwgc3RhdHVzVGV4dDogc3RyaW5nLCBqcVhIUjogWE1MSHR0cFJlcXVlc3QpIHtcclxuICAgICAgbGV0IGh0dHBSZXNwb25zZSA9IHtcclxuICAgICAgICBjb25maWc6IGNvbmZpZyxcclxuICAgICAgICBkYXRhOiBkYXRhLFxyXG4gICAgICAgIGdldEhlYWRlcnM6IGdldEhlYWRlcnNGbihqcVhIUiksXHJcbiAgICAgICAgc3RhdHVzOiBqcVhIUi5zdGF0dXMsXHJcbiAgICAgICAgc3RhdHVzVGV4dDogc3RhdHVzVGV4dFxyXG4gICAgICB9O1xyXG4gICAgICBjb25maWcuc3VjY2VzcyhodHRwUmVzcG9uc2UpO1xyXG4gICAgICAvLyBUT0RPOiBub3Qgc3VyZSBob3cgdG8gZG8gdGhpcyBvciBpZiBuZWVkZWQuXHJcbiAgICAgIC8vIGpxWEhSLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7XHJcbiAgICAgIC8vIGpxWEhSLmFib3J0ID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBlcnJvckZuKGpxWEhSOiBYTUxIdHRwUmVxdWVzdCwgc3RhdHVzVGV4dDogc3RyaW5nLCBlcnJvclRocm93bjogYW55KSB7XHJcbiAgICAgIGxldCBodHRwUmVzcG9uc2UgPSB7XHJcbiAgICAgICAgY29uZmlnOiBjb25maWcsXHJcbiAgICAgICAgZGF0YToganFYSFIucmVzcG9uc2VUZXh0LFxyXG4gICAgICAgIGVycm9yOiBlcnJvclRocm93bixcclxuICAgICAgICBnZXRIZWFkZXJzOiBnZXRIZWFkZXJzRm4oanFYSFIpLFxyXG4gICAgICAgIHN0YXR1czoganFYSFIuc3RhdHVzLFxyXG4gICAgICAgIHN0YXR1c1RleHQ6IHN0YXR1c1RleHRcclxuICAgICAgfTtcclxuICAgICAgY29uZmlnLmVycm9yKGh0dHBSZXNwb25zZSk7XHJcbiAgICAgIC8vIFRPRE86IG5vdCBzdXJlIGhvdyB0byBkbyB0aGlzIG9yIGlmIG5lZWRlZC5cclxuICAgICAgLy8ganFYSFIub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDtcclxuICAgICAgLy8ganFYSFIuYWJvcnQgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuY29uZmlnLnJlZ2lzdGVyQWRhcHRlcihcImFqYXhcIiwgQWpheEpRdWVyeUFkYXB0ZXIpO1xyXG5cclxuZnVuY3Rpb24gZ2V0SGVhZGVyc0ZuKGpxWEhSOiBYTUxIdHRwUmVxdWVzdCk6IGFueSB7XHJcbiAgaWYgKGpxWEhSLnN0YXR1cyA9PT0gMCkgeyAvLyB0aW1lb3V0IG9yIGFib3J0OyBubyBoZWFkZXJzXHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKGhlYWRlck5hbWU6IHN0cmluZykge1xyXG4gICAgICByZXR1cm4gKGhlYWRlck5hbWUgJiYgaGVhZGVyTmFtZS5sZW5ndGggPiAwKSA/IFwiXCIgOiB7fTtcclxuICAgIH07XHJcbiAgfSBlbHNlIHsgLy8ganFYSFIgc2hvdWxkIGhhdmUgaGVhZGVyIGZ1bmN0aW9uc1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChoZWFkZXJOYW1lOiBzdHJpbmcpIHtcclxuICAgICAgcmV0dXJuIChoZWFkZXJOYW1lICYmIGhlYWRlck5hbWUubGVuZ3RoID4gMCkgP1xyXG4gICAgICAgIGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKGhlYWRlck5hbWUpIDpcclxuICAgICAgICBqcVhIUi5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTtcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './adapter-ajax-jquery';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLWNsaWVudC1hZGFwdGVyLWFqYXgtanF1ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JyZWV6ZS1jbGllbnQtYWRhcHRlci1hamF4LWpxdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYWRhcHRlci1hamF4LWpxdWVyeSc7XG4iXX0=
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Functions to enable Breeze to use POST for queries when
|
|
3
|
+
* special parameters are passed using the .withParameters function.
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2015-2021 IdeaBlade, Inc. All Rights Reserved.
|
|
6
|
+
* Use, reproduction, distribution, and modification of this code is subject to the terms and
|
|
7
|
+
* conditions of the IdeaBlade Breeze license, available at http://www.breezejs.com/license
|
|
8
|
+
*
|
|
9
|
+
* Author: Steve Schmitt
|
|
10
|
+
* Version:
|
|
11
|
+
* 1.2.0 - Moved into breeze-client repo and npm package
|
|
12
|
+
* 1.1.0 - revised: eliminated return object, configAjaxAdapter method; add ajaxPostEnabled flag
|
|
13
|
+
* 1.0.6 - original
|
|
14
|
+
*
|
|
15
|
+
* Special parameters:
|
|
16
|
+
* $method: ‘POST’ or ‘GET’ (the default)
|
|
17
|
+
* $encoding: ‘JSON’ or x-www-form-urlencoded (the default)
|
|
18
|
+
* $data: contains the data to be sent to the server
|
|
19
|
+
*
|
|
20
|
+
* Installation:
|
|
21
|
+
* var ajaxAdapter = config.initializeAdapterInstance('ajax', adapterName, true);
|
|
22
|
+
* AjaxPostWrapper.wrapAjax(ajaxAdapter);
|
|
23
|
+
*
|
|
24
|
+
* Example:
|
|
25
|
+
* var query = breeze.EntityQuery.from('SimilarCustomersPOST')
|
|
26
|
+
* .withParameters({
|
|
27
|
+
* $method: 'POST',
|
|
28
|
+
* $encoding: 'JSON',
|
|
29
|
+
* $data: { CompanyName: 'Hilo Hattie', ContactName: 'Donald', City: 'Duck', Country: 'USA', Phone: '808-234-5678' }
|
|
30
|
+
* });
|
|
31
|
+
*
|
|
32
|
+
**/
|
|
33
|
+
export class AjaxPostWrapper {
|
|
34
|
+
static wrapAjax(ajaxAdapter) {
|
|
35
|
+
if (ajaxAdapter.ajaxPostEnabled) {
|
|
36
|
+
return; // already wrapped it.
|
|
37
|
+
}
|
|
38
|
+
let ajaxFunction = ajaxAdapter.ajax;
|
|
39
|
+
if (ajaxFunction) {
|
|
40
|
+
ajaxAdapter.ajax = function (settings) {
|
|
41
|
+
processSettings(settings);
|
|
42
|
+
return ajaxFunction.call(ajaxAdapter, settings);
|
|
43
|
+
};
|
|
44
|
+
ajaxAdapter.ajaxPostEnabled = true;
|
|
45
|
+
}
|
|
46
|
+
// Handle the POST-specific properties in the settings - $method, $data, $encoding
|
|
47
|
+
function processSettings(settings) {
|
|
48
|
+
let parameters = settings && settings.params;
|
|
49
|
+
if (!parameters)
|
|
50
|
+
return settings;
|
|
51
|
+
// wrapped data; handle the special properties
|
|
52
|
+
settings.type = parameters.$method || settings.type; // GET is default method
|
|
53
|
+
let data = parameters.$data;
|
|
54
|
+
if (data) {
|
|
55
|
+
// if $data exists, assume all of other parameters are guidance for building a POST
|
|
56
|
+
if (parameters.$encoding === 'JSON') {
|
|
57
|
+
// JSON encoding
|
|
58
|
+
settings.processData = false; // don't let JQuery form-encode it
|
|
59
|
+
settings.contentType = "application/json; charset=UTF-8";
|
|
60
|
+
if (typeof (data) === 'object') {
|
|
61
|
+
settings.data = JSON.stringify(data); // encode parameters as JSON
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
settings.data = data;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
settings.data = data;
|
|
69
|
+
}
|
|
70
|
+
// must be null or jQuery ajax adapter won't see settings.data
|
|
71
|
+
settings.params = null;
|
|
72
|
+
}
|
|
73
|
+
return settings;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci1hamF4LXBvc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYWRhcHRlci1hamF4LXBvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUErQkk7QUFDSixNQUFNLE9BQU8sZUFBZTtJQUUxQixNQUFNLENBQUMsUUFBUSxDQUFDLFdBQStCO1FBRTdDLElBQUssV0FBbUIsQ0FBQyxlQUFlLEVBQUU7WUFDeEMsT0FBTyxDQUFDLHNCQUFzQjtTQUMvQjtRQUVELElBQUksWUFBWSxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFDcEMsSUFBSSxZQUFZLEVBQUU7WUFDaEIsV0FBVyxDQUFDLElBQUksR0FBRyxVQUFVLFFBQVE7Z0JBQ25DLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDMUIsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNsRCxDQUFDLENBQUM7WUFDRCxXQUFtQixDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDN0M7UUFHRCxrRkFBa0Y7UUFDbEYsU0FBUyxlQUFlLENBQUMsUUFBYTtZQUNwQyxJQUFJLFVBQVUsR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUM3QyxJQUFJLENBQUMsVUFBVTtnQkFBRSxPQUFPLFFBQVEsQ0FBQztZQUVqQyw4Q0FBOEM7WUFDOUMsUUFBUSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyx3QkFBd0I7WUFFN0UsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUM1QixJQUFJLElBQUksRUFBRTtnQkFDUixtRkFBbUY7Z0JBQ25GLElBQUksVUFBVSxDQUFDLFNBQVMsS0FBSyxNQUFNLEVBQUU7b0JBQ25DLGdCQUFnQjtvQkFDaEIsUUFBUSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxrQ0FBa0M7b0JBQ2hFLFFBQVEsQ0FBQyxXQUFXLEdBQUcsaUNBQWlDLENBQUM7b0JBRXpELElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLFFBQVEsRUFBRTt3QkFDOUIsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsNEJBQTRCO3FCQUNuRTt5QkFBTTt3QkFDTCxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztxQkFDdEI7aUJBQ0Y7cUJBQU07b0JBQ0wsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7aUJBQ3RCO2dCQUNELDhEQUE4RDtnQkFDOUQsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7YUFDeEI7WUFFRCxPQUFPLFFBQVEsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYnJlZXplIGZyb20gJ2JyZWV6ZS1jbGllbnQnO1xyXG5cclxuLyoqXHJcbiAqICBGdW5jdGlvbnMgdG8gZW5hYmxlIEJyZWV6ZSB0byB1c2UgUE9TVCBmb3IgcXVlcmllcyB3aGVuXHJcbiAqICBzcGVjaWFsIHBhcmFtZXRlcnMgYXJlIHBhc3NlZCB1c2luZyB0aGUgLndpdGhQYXJhbWV0ZXJzIGZ1bmN0aW9uLlxyXG4gKlxyXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIxIElkZWFCbGFkZSwgSW5jLiAgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICogVXNlLCByZXByb2R1Y3Rpb24sIGRpc3RyaWJ1dGlvbiwgYW5kIG1vZGlmaWNhdGlvbiBvZiB0aGlzIGNvZGUgaXMgc3ViamVjdCB0byB0aGUgdGVybXMgYW5kXHJcbiAqIGNvbmRpdGlvbnMgb2YgdGhlIElkZWFCbGFkZSBCcmVlemUgbGljZW5zZSwgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuYnJlZXplanMuY29tL2xpY2Vuc2VcclxuICpcclxuICogQXV0aG9yOiBTdGV2ZSBTY2htaXR0XHJcbiAqIFZlcnNpb246IFxyXG4gKiAgMS4yLjAgLSBNb3ZlZCBpbnRvIGJyZWV6ZS1jbGllbnQgcmVwbyBhbmQgbnBtIHBhY2thZ2VcclxuICogIDEuMS4wIC0gcmV2aXNlZDogZWxpbWluYXRlZCByZXR1cm4gb2JqZWN0LCBjb25maWdBamF4QWRhcHRlciBtZXRob2Q7IGFkZCBhamF4UG9zdEVuYWJsZWQgZmxhZ1xyXG4gKiAgMS4wLjYgLSBvcmlnaW5hbFxyXG4gKlxyXG4gKiBTcGVjaWFsIHBhcmFtZXRlcnM6XHJcbiAqICAkbWV0aG9kOiDigJhQT1NU4oCZIG9yIOKAmEdFVOKAmSAodGhlIGRlZmF1bHQpXHJcbiAqICAkZW5jb2Rpbmc6IOKAmEpTT07igJkgb3IgeC13d3ctZm9ybS11cmxlbmNvZGVkICh0aGUgZGVmYXVsdClcclxuICogICRkYXRhOiBjb250YWlucyB0aGUgZGF0YSB0byBiZSBzZW50IHRvIHRoZSBzZXJ2ZXJcclxuICpcclxuICogSW5zdGFsbGF0aW9uOlxyXG4gKiAgICB2YXIgYWpheEFkYXB0ZXIgPSBjb25maWcuaW5pdGlhbGl6ZUFkYXB0ZXJJbnN0YW5jZSgnYWpheCcsIGFkYXB0ZXJOYW1lLCB0cnVlKTtcclxuICogICAgQWpheFBvc3RXcmFwcGVyLndyYXBBamF4KGFqYXhBZGFwdGVyKTtcclxuICpcclxuICogRXhhbXBsZTpcclxuICogICB2YXIgcXVlcnkgPSBicmVlemUuRW50aXR5UXVlcnkuZnJvbSgnU2ltaWxhckN1c3RvbWVyc1BPU1QnKVxyXG4gKiAgICAgICAgICAgIC53aXRoUGFyYW1ldGVycyh7XHJcbiAqICAgICAgICAgICAgICAgICRtZXRob2Q6ICdQT1NUJyxcclxuICogICAgICAgICAgICAgICAgJGVuY29kaW5nOiAnSlNPTicsXHJcbiAqICAgICAgICAgICAgICAgJGRhdGE6IHsgQ29tcGFueU5hbWU6ICdIaWxvIEhhdHRpZScsIENvbnRhY3ROYW1lOiAnRG9uYWxkJywgQ2l0eTogJ0R1Y2snLCBDb3VudHJ5OiAnVVNBJywgUGhvbmU6ICc4MDgtMjM0LTU2NzgnIH1cclxuICogICAgICAgICAgIH0pO1xyXG4gKlxyXG4gKiovXHJcbmV4cG9ydCBjbGFzcyBBamF4UG9zdFdyYXBwZXIge1xyXG5cclxuICBzdGF0aWMgd3JhcEFqYXgoYWpheEFkYXB0ZXI6IGJyZWV6ZS5BamF4QWRhcHRlcikge1xyXG5cclxuICAgIGlmICgoYWpheEFkYXB0ZXIgYXMgYW55KS5hamF4UG9zdEVuYWJsZWQpIHtcclxuICAgICAgcmV0dXJuOyAvLyBhbHJlYWR5IHdyYXBwZWQgaXQuXHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGFqYXhGdW5jdGlvbiA9IGFqYXhBZGFwdGVyLmFqYXg7XHJcbiAgICBpZiAoYWpheEZ1bmN0aW9uKSB7XHJcbiAgICAgIGFqYXhBZGFwdGVyLmFqYXggPSBmdW5jdGlvbiAoc2V0dGluZ3MpIHtcclxuICAgICAgICBwcm9jZXNzU2V0dGluZ3Moc2V0dGluZ3MpO1xyXG4gICAgICAgIHJldHVybiBhamF4RnVuY3Rpb24uY2FsbChhamF4QWRhcHRlciwgc2V0dGluZ3MpO1xyXG4gICAgICB9O1xyXG4gICAgICAoYWpheEFkYXB0ZXIgYXMgYW55KS5hamF4UG9zdEVuYWJsZWQgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyBIYW5kbGUgdGhlIFBPU1Qtc3BlY2lmaWMgcHJvcGVydGllcyBpbiB0aGUgc2V0dGluZ3MgLSAkbWV0aG9kLCAkZGF0YSwgJGVuY29kaW5nXHJcbiAgICBmdW5jdGlvbiBwcm9jZXNzU2V0dGluZ3Moc2V0dGluZ3M6IGFueSkge1xyXG4gICAgICBsZXQgcGFyYW1ldGVycyA9IHNldHRpbmdzICYmIHNldHRpbmdzLnBhcmFtcztcclxuICAgICAgaWYgKCFwYXJhbWV0ZXJzKSByZXR1cm4gc2V0dGluZ3M7XHJcblxyXG4gICAgICAvLyB3cmFwcGVkIGRhdGE7IGhhbmRsZSB0aGUgc3BlY2lhbCBwcm9wZXJ0aWVzXHJcbiAgICAgIHNldHRpbmdzLnR5cGUgPSBwYXJhbWV0ZXJzLiRtZXRob2QgfHwgc2V0dGluZ3MudHlwZTsgLy8gR0VUIGlzIGRlZmF1bHQgbWV0aG9kXHJcblxyXG4gICAgICBsZXQgZGF0YSA9IHBhcmFtZXRlcnMuJGRhdGE7XHJcbiAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgLy8gaWYgJGRhdGEgZXhpc3RzLCBhc3N1bWUgYWxsIG9mIG90aGVyIHBhcmFtZXRlcnMgYXJlIGd1aWRhbmNlIGZvciBidWlsZGluZyBhIFBPU1RcclxuICAgICAgICBpZiAocGFyYW1ldGVycy4kZW5jb2RpbmcgPT09ICdKU09OJykge1xyXG4gICAgICAgICAgLy8gSlNPTiBlbmNvZGluZ1xyXG4gICAgICAgICAgc2V0dGluZ3MucHJvY2Vzc0RhdGEgPSBmYWxzZTsgLy8gZG9uJ3QgbGV0IEpRdWVyeSBmb3JtLWVuY29kZSBpdFxyXG4gICAgICAgICAgc2V0dGluZ3MuY29udGVudFR5cGUgPSBcImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGLThcIjtcclxuXHJcbiAgICAgICAgICBpZiAodHlwZW9mIChkYXRhKSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgc2V0dGluZ3MuZGF0YSA9IEpTT04uc3RyaW5naWZ5KGRhdGEpOyAvLyBlbmNvZGUgcGFyYW1ldGVycyBhcyBKU09OXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBzZXR0aW5ncy5kYXRhID0gZGF0YTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgc2V0dGluZ3MuZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIG11c3QgYmUgbnVsbCBvciBqUXVlcnkgYWpheCBhZGFwdGVyIHdvbid0IHNlZSBzZXR0aW5ncy5kYXRhXHJcbiAgICAgICAgc2V0dGluZ3MucGFyYW1zID0gbnVsbDtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHNldHRpbmdzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG59Il19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './adapter-ajax-post';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLWNsaWVudC1hZGFwdGVyLWFqYXgtcG9zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9icmVlemUtY2xpZW50LWFkYXB0ZXItYWpheC1wb3N0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hZGFwdGVyLWFqYXgtcG9zdCc7XG4iXX0=
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/** Appends parameter to url, with appropriate delimiter */
|
|
2
|
+
export function appendQueryStringParameter(url, parameter) {
|
|
3
|
+
if (!parameter)
|
|
4
|
+
return url;
|
|
5
|
+
let separator = url.endsWith("?") ? "" : url.includes("?") ? "&" : "?";
|
|
6
|
+
return url + separator + parameter;
|
|
7
|
+
}
|
|
8
|
+
/** Encodes the object into query string parameters */
|
|
9
|
+
export function encodeParams(obj) {
|
|
10
|
+
let query = '';
|
|
11
|
+
let subValue, innerObj, fullSubName;
|
|
12
|
+
for (let name in obj) {
|
|
13
|
+
if (!obj.hasOwnProperty(name)) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
let value = obj[name];
|
|
17
|
+
if (value instanceof Array) {
|
|
18
|
+
for (let i = 0; i < value.length; ++i) {
|
|
19
|
+
subValue = value[i];
|
|
20
|
+
fullSubName = name + '[' + i + ']';
|
|
21
|
+
innerObj = {};
|
|
22
|
+
innerObj[fullSubName] = subValue;
|
|
23
|
+
query += encodeParams(innerObj) + '&';
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (value && value.toISOString) { // a feature of Date-like things
|
|
27
|
+
query += encodeURIComponent(name) + '=' + encodeURIComponent(value.toISOString()) + '&';
|
|
28
|
+
}
|
|
29
|
+
else if (value instanceof Object) {
|
|
30
|
+
for (let subName in value) {
|
|
31
|
+
if (obj.hasOwnProperty(name)) {
|
|
32
|
+
subValue = value[subName];
|
|
33
|
+
fullSubName = name + '[' + subName + ']';
|
|
34
|
+
innerObj = {};
|
|
35
|
+
innerObj[fullSubName] = subValue;
|
|
36
|
+
query += encodeParams(innerObj) + '&';
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else if (value === null) {
|
|
41
|
+
query += encodeURIComponent(name) + '=&';
|
|
42
|
+
}
|
|
43
|
+
else if (value !== undefined) {
|
|
44
|
+
query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return query.length ? query.substr(0, query.length - 1) : query;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci1jb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FkYXB0ZXItY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyREFBMkQ7QUFDM0QsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEdBQVcsRUFBRSxTQUFpQjtJQUN2RSxJQUFJLENBQUMsU0FBUztRQUFFLE9BQU8sR0FBRyxDQUFDO0lBRTNCLElBQUksU0FBUyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFFdkUsT0FBTyxHQUFHLEdBQUcsU0FBUyxHQUFHLFNBQVMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsc0RBQXNEO0FBQ3RELE1BQU0sVUFBVSxZQUFZLENBQUMsR0FBTztJQUNsQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDZixJQUFJLFFBQWEsRUFBRSxRQUFhLEVBQUUsV0FBZ0IsQ0FBQztJQUVuRCxLQUFLLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRTtRQUNwQixJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUFFLFNBQVM7U0FBRTtRQUU1QyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEIsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO1lBQzFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUNyQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQixXQUFXLEdBQUcsSUFBSSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUNuQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNkLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxRQUFRLENBQUM7Z0JBQ2pDLEtBQUssSUFBSSxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxDQUFDO2FBQ3ZDO1NBQ0Y7YUFBTSxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsZ0NBQWdDO1lBQ3ZFLEtBQUssSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ3pGO2FBQU0sSUFBSSxLQUFLLFlBQVksTUFBTSxFQUFFO1lBQ2xDLEtBQUssSUFBSSxPQUFPLElBQUksS0FBSyxFQUFFO2dCQUN6QixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUU7b0JBQzVCLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQzFCLFdBQVcsR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUM7b0JBQ3pDLFFBQVEsR0FBRyxFQUFFLENBQUM7b0JBQ2QsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLFFBQVEsQ0FBQztvQkFDakMsS0FBSyxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFHLENBQUM7aUJBQ3ZDO2FBQ0Y7U0FDRjthQUFNLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtZQUN6QixLQUFLLElBQUksa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzFDO2FBQU0sSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzlCLEtBQUssSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQzNFO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNsRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEFwcGVuZHMgcGFyYW1ldGVyIHRvIHVybCwgd2l0aCBhcHByb3ByaWF0ZSBkZWxpbWl0ZXIgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGFwcGVuZFF1ZXJ5U3RyaW5nUGFyYW1ldGVyKHVybDogc3RyaW5nLCBwYXJhbWV0ZXI6IHN0cmluZykge1xyXG4gIGlmICghcGFyYW1ldGVyKSByZXR1cm4gdXJsO1xyXG5cclxuICBsZXQgc2VwYXJhdG9yID0gdXJsLmVuZHNXaXRoKFwiP1wiKSA/IFwiXCIgOiB1cmwuaW5jbHVkZXMoXCI/XCIpID8gXCImXCIgOiBcIj9cIjtcclxuXHJcbiAgcmV0dXJuIHVybCArIHNlcGFyYXRvciArIHBhcmFtZXRlcjtcclxufVxyXG5cclxuLyoqIEVuY29kZXMgdGhlIG9iamVjdCBpbnRvIHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzICovXHJcbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGVQYXJhbXMob2JqOiB7fSkge1xyXG4gIGxldCBxdWVyeSA9ICcnO1xyXG4gIGxldCBzdWJWYWx1ZTogYW55LCBpbm5lck9iajogYW55LCBmdWxsU3ViTmFtZTogYW55O1xyXG5cclxuICBmb3IgKGxldCBuYW1lIGluIG9iaikge1xyXG4gICAgaWYgKCFvYmouaGFzT3duUHJvcGVydHkobmFtZSkpIHsgY29udGludWU7IH1cclxuXHJcbiAgICBsZXQgdmFsdWUgPSBvYmpbbmFtZV07XHJcblxyXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7ICsraSkge1xyXG4gICAgICAgIHN1YlZhbHVlID0gdmFsdWVbaV07XHJcbiAgICAgICAgZnVsbFN1Yk5hbWUgPSBuYW1lICsgJ1snICsgaSArICddJztcclxuICAgICAgICBpbm5lck9iaiA9IHt9O1xyXG4gICAgICAgIGlubmVyT2JqW2Z1bGxTdWJOYW1lXSA9IHN1YlZhbHVlO1xyXG4gICAgICAgIHF1ZXJ5ICs9IGVuY29kZVBhcmFtcyhpbm5lck9iaikgKyAnJic7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdmFsdWUudG9JU09TdHJpbmcpIHsgLy8gYSBmZWF0dXJlIG9mIERhdGUtbGlrZSB0aGluZ3NcclxuICAgICAgcXVlcnkgKz0gZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KHZhbHVlLnRvSVNPU3RyaW5nKCkpICsgJyYnO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICBmb3IgKGxldCBzdWJOYW1lIGluIHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShuYW1lKSkge1xyXG4gICAgICAgICAgc3ViVmFsdWUgPSB2YWx1ZVtzdWJOYW1lXTtcclxuICAgICAgICAgIGZ1bGxTdWJOYW1lID0gbmFtZSArICdbJyArIHN1Yk5hbWUgKyAnXSc7XHJcbiAgICAgICAgICBpbm5lck9iaiA9IHt9O1xyXG4gICAgICAgICAgaW5uZXJPYmpbZnVsbFN1Yk5hbWVdID0gc3ViVmFsdWU7XHJcbiAgICAgICAgICBxdWVyeSArPSBlbmNvZGVQYXJhbXMoaW5uZXJPYmopICsgJyYnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICBxdWVyeSArPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSkgKyAnPSYnO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHF1ZXJ5ICs9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudCh2YWx1ZSkgKyAnJic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcXVlcnkubGVuZ3RoID8gcXVlcnkuc3Vic3RyKDAsIHF1ZXJ5Lmxlbmd0aCAtIDEpIDogcXVlcnk7XHJcbn1cclxuIl19
|