breeze-client 2.1.6 → 2.1.7-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/esm2022/adapter-ajax-angularjs/adapter-ajax-angularjs.mjs +135 -0
- package/esm2022/adapter-ajax-angularjs/adapter-core.mjs +49 -0
- package/esm2022/adapter-ajax-angularjs/breeze-client-adapter-ajax-angularjs.mjs +5 -0
- package/esm2022/adapter-ajax-fetch/adapter-ajax-fetch.mjs +135 -0
- package/esm2022/adapter-ajax-fetch/adapter-core.mjs +49 -0
- package/esm2022/adapter-ajax-fetch/breeze-client-adapter-ajax-fetch.mjs +5 -0
- package/esm2022/adapter-ajax-httpclient/adapter-ajax-httpclient.mjs +139 -0
- package/esm2022/adapter-ajax-httpclient/adapter-core.mjs +49 -0
- package/esm2022/adapter-ajax-httpclient/breeze-client-adapter-ajax-httpclient.mjs +5 -0
- package/esm2022/adapter-ajax-jquery/adapter-ajax-jquery.mjs +107 -0
- package/esm2022/adapter-ajax-jquery/breeze-client-adapter-ajax-jquery.mjs +5 -0
- package/esm2022/adapter-ajax-post/adapter-ajax-post.mjs +77 -0
- package/esm2022/adapter-ajax-post/breeze-client-adapter-ajax-post.mjs +5 -0
- package/esm2022/adapter-data-service-odata/adapter-core.mjs +49 -0
- package/{esm5/adapter-data-service-odata/adapter-data-service-odata.js → esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs} +138 -147
- package/esm2022/adapter-data-service-odata/breeze-client-adapter-data-service-odata.mjs +5 -0
- package/esm2022/adapter-data-service-webapi/adapter-data-service-webapi.mjs +100 -0
- package/esm2022/adapter-data-service-webapi/breeze-client-adapter-data-service-webapi.mjs +5 -0
- package/esm2022/adapter-model-library-backing-store/adapter-model-library-backing-store.mjs +269 -0
- package/esm2022/adapter-model-library-backing-store/breeze-client-adapter-model-library-backing-store.mjs +5 -0
- package/esm2022/adapter-model-library-ko/adapter-model-library-ko.mjs +241 -0
- package/esm2022/adapter-model-library-ko/breeze-client-adapter-model-library-ko.mjs +5 -0
- package/esm2022/adapter-uri-builder-json/adapter-core.mjs +49 -0
- package/esm2022/adapter-uri-builder-json/adapter-uri-builder-json.mjs +37 -0
- package/esm2022/adapter-uri-builder-json/breeze-client-adapter-uri-builder-json.mjs +5 -0
- package/esm2022/adapter-uri-builder-odata/adapter-core.mjs +49 -0
- package/esm2022/adapter-uri-builder-odata/adapter-uri-builder-odata.mjs +191 -0
- package/esm2022/adapter-uri-builder-odata/breeze-client-adapter-uri-builder-odata.mjs +5 -0
- package/esm2022/breeze-client.mjs +5 -0
- package/esm2022/index.mjs +2 -0
- package/esm2022/mixin-get-entity-graph/breeze-client-mixin-get-entity-graph.mjs +5 -0
- package/esm2022/mixin-get-entity-graph/mixin-get-entity-graph.mjs +269 -0
- package/esm2022/mixin-save-queuing/breeze-client-mixin-save-queuing.mjs +5 -0
- package/esm2022/mixin-save-queuing/mixin-save-queuing.mjs +421 -0
- package/esm2022/src/abstract-data-service-adapter.mjs +325 -0
- package/esm2022/src/array.mjs +4 -0
- package/esm2022/src/assert-param.mjs +330 -0
- package/esm2022/src/breeze.mjs +85 -0
- package/esm2022/src/complex-array.mjs +117 -0
- package/esm2022/src/config.mjs +232 -0
- package/esm2022/src/core.mjs +712 -0
- package/esm2022/src/csdl-metadata-parser.mjs +385 -0
- package/esm2022/src/data-service.mjs +239 -0
- package/esm2022/src/data-type.mjs +507 -0
- package/esm2022/src/default-property-interceptor.mjs +460 -0
- package/{esm2015/src/entity-action.js → esm2022/src/entity-action.mjs} +25 -25
- package/esm2022/src/entity-aspect.mjs +897 -0
- package/esm2022/src/entity-group.mjs +192 -0
- package/esm2022/src/entity-key.mjs +127 -0
- package/esm2022/src/entity-manager.mjs +2183 -0
- package/esm2022/src/entity-metadata.mjs +2242 -0
- package/esm2022/src/entity-query.mjs +1024 -0
- package/esm2022/src/entity-state.mjs +107 -0
- package/esm2022/src/enum.mjs +143 -0
- package/esm2022/src/event.mjs +264 -0
- package/esm2022/src/interface-registry.mjs +39 -0
- package/esm2022/src/key-generator.mjs +110 -0
- package/esm2022/src/local-query-comparison-options.mjs +75 -0
- package/esm2022/src/mapping-context.mjs +422 -0
- package/{esm5/src/naming-convention.js → esm2022/src/naming-convention.mjs} +35 -29
- package/esm2022/src/observable-array.mjs +183 -0
- package/esm2022/src/predicate.mjs +1259 -0
- package/esm2022/src/primitive-array.mjs +85 -0
- package/esm2022/src/query-options.mjs +160 -0
- package/esm2022/src/relation-array.mjs +173 -0
- package/esm2022/src/save-options.mjs +51 -0
- package/esm2022/src/unattached-children-map.mjs +56 -0
- package/{esm5/src/validate.js → esm2022/src/validate.mjs} +116 -110
- package/esm2022/src/validation-options.mjs +78 -0
- package/{fesm2015/breeze-client-adapter-ajax-angularjs.js → fesm2022/breeze-client-adapter-ajax-angularjs.mjs} +6 -1
- package/fesm2022/breeze-client-adapter-ajax-angularjs.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-ajax-fetch.js → fesm2022/breeze-client-adapter-ajax-fetch.mjs} +9 -4
- package/fesm2022/breeze-client-adapter-ajax-fetch.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-ajax-httpclient.js → fesm2022/breeze-client-adapter-ajax-httpclient.mjs} +6 -4
- package/fesm2022/breeze-client-adapter-ajax-httpclient.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-ajax-jquery.js → fesm2022/breeze-client-adapter-ajax-jquery.mjs} +6 -2
- package/fesm2022/breeze-client-adapter-ajax-jquery.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-ajax-post.js → fesm2022/breeze-client-adapter-ajax-post.mjs} +1 -1
- package/fesm2022/breeze-client-adapter-ajax-post.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-data-service-odata.js → fesm2022/breeze-client-adapter-data-service-odata.mjs} +68 -69
- package/fesm2022/breeze-client-adapter-data-service-odata.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-data-service-webapi.js → fesm2022/breeze-client-adapter-data-service-webapi.mjs} +30 -30
- package/fesm2022/breeze-client-adapter-data-service-webapi.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-model-library-backing-store.js → fesm2022/breeze-client-adapter-model-library-backing-store.mjs} +14 -13
- package/fesm2022/breeze-client-adapter-model-library-backing-store.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-model-library-ko.js → fesm2022/breeze-client-adapter-model-library-ko.mjs} +14 -13
- package/fesm2022/breeze-client-adapter-model-library-ko.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-uri-builder-json.js → fesm2022/breeze-client-adapter-uri-builder-json.mjs} +9 -8
- package/fesm2022/breeze-client-adapter-uri-builder-json.mjs.map +1 -0
- package/{fesm2015/breeze-client-adapter-uri-builder-odata.js → fesm2022/breeze-client-adapter-uri-builder-odata.mjs} +86 -86
- package/fesm2022/breeze-client-adapter-uri-builder-odata.mjs.map +1 -0
- package/{fesm2015/breeze-client-mixin-get-entity-graph.js → fesm2022/breeze-client-mixin-get-entity-graph.mjs} +1 -1
- package/fesm2022/breeze-client-mixin-get-entity-graph.mjs.map +1 -0
- package/{fesm2015/breeze-client-mixin-save-queuing.js → fesm2022/breeze-client-mixin-save-queuing.mjs} +23 -2
- package/fesm2022/breeze-client-mixin-save-queuing.mjs.map +1 -0
- package/{fesm2015/breeze-client.js → fesm2022/breeze-client.mjs} +2126 -1577
- package/fesm2022/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 +93 -11
- package/src/abstract-data-service-adapter.d.ts +20 -0
- package/src/config.d.ts +1 -1
- package/src/core.d.ts +1 -1
- package/src/entity-aspect.d.ts +1 -1
- package/src/entity-metadata.d.ts +8 -6
- package/src/entity-query.d.ts +18 -4
- 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 -13
- 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 -747
- 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 -333
- 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 -14181
- 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 -463
- 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 -100
- 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/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 -714
- package/esm2015/src/csdl-metadata-parser.js +0 -385
- package/esm2015/src/data-service.js +0 -203
- package/esm2015/src/data-type.js +0 -503
- package/esm2015/src/default-property-interceptor.js +0 -460
- package/esm2015/src/entity-aspect.js +0 -804
- 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 -107
- 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 -411
- package/esm2015/src/naming-convention.js +0 -88
- package/esm2015/src/observable-array.js +0 -185
- package/esm2015/src/predicate.js +0 -1242
- 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/breeze-client-adapter-data-service-odata.js +0 -5
- package/esm5/adapter-data-service-webapi/adapter-data-service-webapi.js +0 -105
- 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/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 -722
- package/esm5/src/csdl-metadata-parser.js +0 -385
- package/esm5/src/data-service.js +0 -207
- package/esm5/src/data-type.js +0 -510
- package/esm5/src/default-property-interceptor.js +0 -460
- package/esm5/src/entity-action.js +0 -52
- package/esm5/src/entity-aspect.js +0 -810
- 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 -114
- 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 -413
- package/esm5/src/observable-array.js +0 -201
- package/esm5/src/predicate.js +0 -1307
- 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/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 +0 -186
- package/fesm5/breeze-client-adapter-ajax-angularjs.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-fetch.js +0 -186
- package/fesm5/breeze-client-adapter-ajax-fetch.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-httpclient.js +0 -193
- package/fesm5/breeze-client-adapter-ajax-httpclient.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-jquery.js +0 -111
- package/fesm5/breeze-client-adapter-ajax-jquery.js.map +0 -1
- package/fesm5/breeze-client-adapter-ajax-post.js +0 -86
- package/fesm5/breeze-client-adapter-ajax-post.js.map +0 -1
- package/fesm5/breeze-client-adapter-data-service-odata.js +0 -523
- package/fesm5/breeze-client-adapter-data-service-odata.js.map +0 -1
- package/fesm5/breeze-client-adapter-data-service-webapi.js +0 -111
- package/fesm5/breeze-client-adapter-data-service-webapi.js.map +0 -1
- package/fesm5/breeze-client-adapter-model-library-backing-store.js +0 -276
- package/fesm5/breeze-client-adapter-model-library-backing-store.js.map +0 -1
- package/fesm5/breeze-client-adapter-model-library-ko.js +0 -248
- 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 +0 -254
- package/fesm5/breeze-client-mixin-get-entity-graph.js.map +0 -1
- package/fesm5/breeze-client-mixin-save-queuing.js +0 -356
- package/fesm5/breeze-client-mixin-save-queuing.js.map +0 -1
- package/fesm5/breeze-client.js +0 -13903
- 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
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import * as breeze from 'breeze-client';
|
|
2
|
-
import { appendQueryStringParameter } from './adapter-core';
|
|
3
|
-
var UriBuilderODataAdapter = /** @class */ (function () {
|
|
4
|
-
function UriBuilderODataAdapter() {
|
|
5
|
-
this.name = "odata";
|
|
6
|
-
}
|
|
7
|
-
UriBuilderODataAdapter.register = function (config) {
|
|
8
|
-
config = config || breeze.config;
|
|
9
|
-
config.registerAdapter("uriBuilder", UriBuilderODataAdapter);
|
|
10
|
-
return config.initializeAdapterInstance("uriBuilder", "odata", true);
|
|
11
|
-
};
|
|
12
|
-
UriBuilderODataAdapter.prototype.initialize = function () { };
|
|
13
|
-
UriBuilderODataAdapter.prototype.buildUri = function (entityQuery, metadataStore) {
|
|
14
|
-
// force entityType validation;
|
|
15
|
-
var entityType = entityQuery._getFromEntityType(metadataStore, false);
|
|
16
|
-
if (!entityType) {
|
|
17
|
-
// anonymous type but still has naming convention info avail
|
|
18
|
-
entityType = new breeze.EntityType(metadataStore);
|
|
19
|
-
}
|
|
20
|
-
var queryOptions = {};
|
|
21
|
-
queryOptions["$filter"] = toWhereODataFragment(entityQuery.wherePredicate);
|
|
22
|
-
queryOptions["$orderby"] = toOrderByODataFragment(entityQuery.orderByClause);
|
|
23
|
-
if (entityQuery.skipCount) {
|
|
24
|
-
queryOptions["$skip"] = entityQuery.skipCount;
|
|
25
|
-
}
|
|
26
|
-
if (entityQuery.takeCount != null) {
|
|
27
|
-
queryOptions["$top"] = entityQuery.takeCount;
|
|
28
|
-
}
|
|
29
|
-
queryOptions["$expand"] = toExpandODataFragment(entityQuery.expandClause);
|
|
30
|
-
queryOptions["$select"] = toSelectODataFragment(entityQuery.selectClause);
|
|
31
|
-
if (entityQuery.inlineCountEnabled) {
|
|
32
|
-
queryOptions["$inlinecount"] = "allpages";
|
|
33
|
-
}
|
|
34
|
-
var qoText = toQueryOptionsString(queryOptions);
|
|
35
|
-
return appendQueryStringParameter(entityQuery.resourceName, qoText);
|
|
36
|
-
// private methods to this func.
|
|
37
|
-
function toWhereODataFragment(wherePredicate) {
|
|
38
|
-
if (!wherePredicate)
|
|
39
|
-
return undefined;
|
|
40
|
-
// validation occurs inside of the toODataFragment call here.
|
|
41
|
-
var frag = wherePredicate.visit({ entityType: entityType }, toODataFragmentVisitor);
|
|
42
|
-
return (frag && frag.length > 0) ? frag : undefined;
|
|
43
|
-
}
|
|
44
|
-
function toOrderByODataFragment(orderByClause) {
|
|
45
|
-
if (!orderByClause)
|
|
46
|
-
return undefined;
|
|
47
|
-
orderByClause.validate(entityType);
|
|
48
|
-
var strings = orderByClause.items.map(function (item) {
|
|
49
|
-
return entityType.clientPropertyPathToServer(item.propertyPath, "/") + (item.isDesc ? " desc" : "");
|
|
50
|
-
});
|
|
51
|
-
// should return something like CompanyName,Address/City desc
|
|
52
|
-
return strings.join(',');
|
|
53
|
-
}
|
|
54
|
-
function toSelectODataFragment(selectClause) {
|
|
55
|
-
if (!selectClause)
|
|
56
|
-
return undefined;
|
|
57
|
-
selectClause.validate(entityType);
|
|
58
|
-
var frag = selectClause.propertyPaths.map(function (pp) {
|
|
59
|
-
return entityType.clientPropertyPathToServer(pp, "/");
|
|
60
|
-
}).join(",");
|
|
61
|
-
return frag;
|
|
62
|
-
}
|
|
63
|
-
function toExpandODataFragment(expandClause) {
|
|
64
|
-
if (!expandClause)
|
|
65
|
-
return undefined;
|
|
66
|
-
// no validate on expand clauses currently.
|
|
67
|
-
// expandClause.validate(entityType);
|
|
68
|
-
var frag = expandClause.propertyPaths.map(function (pp) {
|
|
69
|
-
return entityType.clientPropertyPathToServer(pp, "/");
|
|
70
|
-
}).join(",");
|
|
71
|
-
return frag;
|
|
72
|
-
}
|
|
73
|
-
function toQueryOptionsString(queryOptions) {
|
|
74
|
-
var qoStrings = [];
|
|
75
|
-
var _loop_1 = function (qoName) {
|
|
76
|
-
var qoValue = queryOptions[qoName];
|
|
77
|
-
if (qoValue !== undefined) {
|
|
78
|
-
if (qoValue instanceof Array) {
|
|
79
|
-
qoValue.forEach(function (qov) {
|
|
80
|
-
qoStrings.push(qoName + "=" + encodeURIComponent(qov));
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
qoStrings.push(qoName + "=" + encodeURIComponent(qoValue));
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
for (var qoName in queryOptions) {
|
|
89
|
-
_loop_1(qoName);
|
|
90
|
-
}
|
|
91
|
-
if (qoStrings.length > 0) {
|
|
92
|
-
return qoStrings.join("&");
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
return "";
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
};
|
|
99
|
-
return UriBuilderODataAdapter;
|
|
100
|
-
}());
|
|
101
|
-
export { UriBuilderODataAdapter };
|
|
102
|
-
breeze.Predicate.prototype.toODataFragment = function (context) {
|
|
103
|
-
return this.visit(context, toODataFragmentVisitor);
|
|
104
|
-
};
|
|
105
|
-
var ɵ0 = function () {
|
|
106
|
-
return this.value;
|
|
107
|
-
}, ɵ1 = function (context) {
|
|
108
|
-
var predVal = this.pred.visit(context);
|
|
109
|
-
return odataOpFrom(this) + " " + "(" + predVal + ")";
|
|
110
|
-
}, ɵ2 = function (context) {
|
|
111
|
-
var expr1Val = this.expr1.visit(context);
|
|
112
|
-
var expr2Val = this.expr2.visit(context);
|
|
113
|
-
var prefix = context.prefix;
|
|
114
|
-
if (prefix) {
|
|
115
|
-
expr1Val = prefix + "/" + expr1Val;
|
|
116
|
-
}
|
|
117
|
-
var odataOp = odataOpFrom(this);
|
|
118
|
-
if (this.op.key === 'in') {
|
|
119
|
-
var result = expr2Val.map(function (v) {
|
|
120
|
-
return "(" + expr1Val + " eq " + v + ")";
|
|
121
|
-
}).join(" or ");
|
|
122
|
-
return result;
|
|
123
|
-
}
|
|
124
|
-
else if (this.op.isFunction) {
|
|
125
|
-
if (odataOp === "substringof") {
|
|
126
|
-
return odataOp + "(" + expr2Val + "," + expr1Val + ") eq true";
|
|
127
|
-
}
|
|
128
|
-
else {
|
|
129
|
-
return odataOp + "(" + expr1Val + "," + expr2Val + ") eq true";
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
return expr1Val + " " + odataOp + " " + expr2Val;
|
|
134
|
-
}
|
|
135
|
-
}, ɵ3 = function (context) {
|
|
136
|
-
var result = this.preds.map(function (pred) {
|
|
137
|
-
var predVal = pred.visit(context);
|
|
138
|
-
return "(" + predVal + ")";
|
|
139
|
-
}).join(" " + odataOpFrom(this) + " ");
|
|
140
|
-
return result;
|
|
141
|
-
}, ɵ4 = function (context) {
|
|
142
|
-
var exprVal = this.expr.visit(context);
|
|
143
|
-
if (!this.pred.op) { // added 21-Oct-2016 to fix breeze.js issue #172
|
|
144
|
-
return exprVal + "/" + odataOpFrom(this) + "()";
|
|
145
|
-
}
|
|
146
|
-
var prefix = context.prefix;
|
|
147
|
-
if (prefix) {
|
|
148
|
-
exprVal = prefix + "/" + exprVal;
|
|
149
|
-
prefix = "x" + (parseInt(prefix.substring(1)) + 1);
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
prefix = "x1";
|
|
153
|
-
}
|
|
154
|
-
// need to create a new context because of 'prefix'
|
|
155
|
-
var newContext = breeze.core.extend({}, context);
|
|
156
|
-
newContext.entityType = this.expr.dataType;
|
|
157
|
-
newContext.prefix = prefix;
|
|
158
|
-
var newPredVal = this.pred.visit(newContext);
|
|
159
|
-
return exprVal + "/" + odataOpFrom(this) + "(" + prefix + ": " + newPredVal + ")";
|
|
160
|
-
}, ɵ5 = function () {
|
|
161
|
-
if (Array.isArray(this.value)) {
|
|
162
|
-
return this.value.map(function (v) { return this.dataType.fmtOData(v); }, this);
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
return this.dataType.fmtOData(this.value);
|
|
166
|
-
}
|
|
167
|
-
}, ɵ6 = function (context) {
|
|
168
|
-
var entityType = context.entityType;
|
|
169
|
-
// '/' is the OData path delimiter
|
|
170
|
-
return entityType ? entityType.clientPropertyPathToServer(this.propertyPath, "/") : this.propertyPath;
|
|
171
|
-
}, ɵ7 = function (context) {
|
|
172
|
-
var exprVals = this.exprs.map(function (expr) {
|
|
173
|
-
return expr.visit(context);
|
|
174
|
-
});
|
|
175
|
-
return this.fnName + "(" + exprVals.join(",") + ")";
|
|
176
|
-
};
|
|
177
|
-
var toODataFragmentVisitor = {
|
|
178
|
-
passthruPredicate: ɵ0,
|
|
179
|
-
unaryPredicate: ɵ1,
|
|
180
|
-
binaryPredicate: ɵ2,
|
|
181
|
-
andOrPredicate: ɵ3,
|
|
182
|
-
anyAllPredicate: ɵ4,
|
|
183
|
-
litExpr: ɵ5,
|
|
184
|
-
propExpr: ɵ6,
|
|
185
|
-
fnExpr: ɵ7
|
|
186
|
-
};
|
|
187
|
-
var _operatorMap = {
|
|
188
|
-
'contains': 'substringof'
|
|
189
|
-
};
|
|
190
|
-
function odataOpFrom(node) {
|
|
191
|
-
var op = node.op.key;
|
|
192
|
-
var odataOp = _operatorMap[op];
|
|
193
|
-
return odataOp || op;
|
|
194
|
-
}
|
|
195
|
-
breeze.config.registerAdapter("uriBuilder", UriBuilderODataAdapter);
|
|
196
|
-
export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7 };
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci11cmktYnVpbGRlci1vZGF0YS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2JyZWV6ZS1jbGllbnQvYWRhcHRlci11cmktYnVpbGRlci1vZGF0YS8iLCJzb3VyY2VzIjpbImFkYXB0ZXItdXJpLWJ1aWxkZXItb2RhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUQ7SUFJRTtRQUNFLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSwrQkFBUSxHQUFmLFVBQWdCLE1BQTRCO1FBQzFDLE1BQU0sR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxNQUFNLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQzdELE9BQU8sTUFBTSxDQUFDLHlCQUF5QixDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUEyQixDQUFDO0lBQ2pHLENBQUM7SUFFRCwyQ0FBVSxHQUFWLGNBQWUsQ0FBQztJQUVoQix5Q0FBUSxHQUFSLFVBQVMsV0FBK0IsRUFBRSxhQUFtQztRQUMzRSwrQkFBK0I7UUFDL0IsSUFBSSxVQUFVLEdBQUcsV0FBVyxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsNERBQTREO1lBQzVELFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDbkQ7UUFFRCxJQUFJLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdEIsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMzRSxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsc0JB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QU8sQ0FBQyxDQUFDO0lBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUN0RCxDQUFDO0FBcEZILElBQUksc0JBQXNCLEdBQUc7SUFFM0IsaUJBQWlCLElBRWhCO0lBRUQsY0FBYyxJQUdiO0lBRUQsZUFBZSxJQXdCZDtJQUVELGNBQWMsSUFNYjtJQUVELGVBQWUsSUFrQmQ7SUFFRCxPQUFPLElBTU47SUFFRCxRQUFRLElBSVA7SUFFRCxNQUFNLElBS0w7Q0FDRixDQUFDO0FBRUYsSUFBSSxZQUFZLEdBQUc7SUFDakIsVUFBVSxFQUFFLGFBQWE7Q0FDMUIsQ0FBQztBQUVGLFNBQVMsV0FBVyxDQUFDLElBQVM7SUFDNUIsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7SUFDckIsSUFBSSxPQUFPLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLE9BQU8sT0FBTyxJQUFJLEVBQUUsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBicmVlemUgZnJvbSAnYnJlZXplLWNsaWVudCc7XHJcbmltcG9ydCB7IGFwcGVuZFF1ZXJ5U3RyaW5nUGFyYW1ldGVyIH0gZnJvbSAnLi9hZGFwdGVyLWNvcmUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFVyaUJ1aWxkZXJPRGF0YUFkYXB0ZXIgaW1wbGVtZW50cyBicmVlemUuVXJpQnVpbGRlckFkYXB0ZXIge1xyXG5cclxuICBuYW1lOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy5uYW1lID0gXCJvZGF0YVwiO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHJlZ2lzdGVyKGNvbmZpZz86IGJyZWV6ZS5CcmVlemVDb25maWcpIHtcclxuICAgIGNvbmZpZyA9IGNvbmZpZyB8fCBicmVlemUuY29uZmlnO1xyXG4gICAgY29uZmlnLnJlZ2lzdGVyQWRhcHRlcihcInVyaUJ1aWxkZXJcIiwgVXJpQnVpbGRlck9EYXRhQWRhcHRlcik7XHJcbiAgICByZXR1cm4gY29uZmlnLmluaXRpYWxpemVBZGFwdGVySW5zdGFuY2UoXCJ1cmlCdWlsZGVyXCIsIFwib2RhdGFcIiwgdHJ1ZSkgYXMgVXJpQnVpbGRlck9EYXRhQWRhcHRlcjtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemUoKSB7IH1cclxuXHJcbiAgYnVpbGRVcmkoZW50aXR5UXVlcnk6IGJyZWV6ZS5FbnRpdHlRdWVyeSwgbWV0YWRhdGFTdG9yZTogYnJlZXplLk1ldGFkYXRhU3RvcmUpIHtcclxuICAgIC8vIGZvcmNlIGVudGl0eVR5cGUgdmFsaWRhdGlvbjtcclxuICAgIGxldCBlbnRpdHlUeXBlID0gZW50aXR5UXVlcnkuX2dldEZyb21FbnRpdHlUeXBlKG1ldGFkYXRhU3RvcmUsIGZhbHNlKTtcclxuICAgIGlmICghZW50aXR5VHlwZSkge1xyXG4gICAgICAvLyBhbm9ueW1vdXMgdHlwZSBidXQgc3RpbGwgaGFzIG5hbWluZyBjb252ZW50aW9uIGluZm8gYXZhaWxcclxuICAgICAgZW50aXR5VHlwZSA9IG5ldyBicmVlemUuRW50aXR5VHlwZShtZXRhZGF0YVN0b3JlKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgcXVlcnlPcHRpb25zID0ge307XHJcbiAgICBxdWVyeU9wdGlvbnNbXCIkZmlsdGVyXCJdID0gdG9XaGVyZU9EYXRhRnJhZ21lbnQoZW50aXR5UXVlcnkud2hlcmVQcmVkaWNhdGUpO1xyXG4gICAgcXVlcnlPcHRpb25zW1wiJG9yZGVyYnlcIl0gPSB0b09yZGVyQnlPRGF0YUZyYWdtZW50KGVudGl0eVF1ZXJ5Lm9yZGVyQnlDbGF1c2UhKTtcclxuXHJcbiAgICBpZiAoZW50aXR5UXVlcnkuc2tpcENvdW50KSB7XHJcbiAgICAgIHF1ZXJ5T3B0aW9uc1tcIiRza2lwXCJdID0gZW50aXR5UXVlcnkuc2tpcENvdW50O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChlbnRpdHlRdWVyeS50YWtlQ291bnQgIT0gbnVsbCkge1xyXG4gICAgICBxdWVyeU9wdGlvbnNbXCIkdG9wXCJdID0gZW50aXR5UXVlcnkudGFrZUNvdW50O1xyXG4gICAgfVxyXG5cclxuICAgIHF1ZXJ5T3B0aW9uc1tcIiRleHBhbmRcIl0gPSB0b0V4cGFuZE9EYXRhRnJhZ21lbnQoZW50aXR5UXVlcnkuZXhwYW5kQ2xhdXNlKTtcclxuICAgIHF1ZXJ5T3B0aW9uc1tcIiRzZWxlY3RcIl0gPSB0b1NlbGVjdE9EYXRhRnJhZ21lbnQoZW50aXR5UXVlcnkuc2VsZWN0Q2xhdXNlISk7XHJcblxyXG4gICAgaWYgKGVudGl0eVF1ZXJ5LmlubGluZUNvdW50RW5hYmxlZCkge1xyXG4gICAgICBxdWVyeU9wdGlvbnNbXCIkaW5saW5lY291bnRcIl0gPSBcImFsbHBhZ2VzXCI7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcW9UZXh0ID0gdG9RdWVyeU9wdGlvbnNTdHJpbmcocXVlcnlPcHRpb25zIGFzIGJyZWV6ZS5RdWVyeU9wdGlvbnMpO1xyXG5cclxuICAgIHJldHVybiBhcHBlbmRRdWVyeVN0cmluZ1BhcmFtZXRlcihlbnRpdHlRdWVyeS5yZXNvdXJjZU5hbWUsIHFvVGV4dCk7XHJcblxyXG4gICAgLy8gcHJpdmF0ZSBtZXRob2RzIHRvIHRoaXMgZnVuYy5cclxuXHJcbiAgICBmdW5jdGlvbiB0b1doZXJlT0RhdGFGcmFnbWVudCh3aGVyZVByZWRpY2F0ZTogYnJlZXplLlByZWRpY2F0ZSkge1xyXG4gICAgICBpZiAoIXdoZXJlUHJlZGljYXRlKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAvLyB2YWxpZGF0aW9uIG9jY3VycyBpbnNpZGUgb2YgdGhlIHRvT0RhdGFGcmFnbWVudCBjYWxsIGhlcmUuXHJcbiAgICAgIGxldCBmcmFnID0gd2hlcmVQcmVkaWNhdGUudmlzaXQoeyBlbnRpdHlUeXBlOiBlbnRpdHlUeXBlIH0sIHRvT0RhdGFGcmFnbWVudFZpc2l0b3IpO1xyXG4gICAgICByZXR1cm4gKGZyYWcgJiYgZnJhZy5sZW5ndGggPiAwKSA/IGZyYWcgOiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gdG9PcmRlckJ5T0RhdGFGcmFnbWVudChvcmRlckJ5Q2xhdXNlOiBicmVlemUuT3JkZXJCeUNsYXVzZSkge1xyXG4gICAgICBpZiAoIW9yZGVyQnlDbGF1c2UpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgIG9yZGVyQnlDbGF1c2UudmFsaWRhdGUoZW50aXR5VHlwZSEpO1xyXG4gICAgICBsZXQgc3RyaW5ncyA9IG9yZGVyQnlDbGF1c2UuaXRlbXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XHJcbiAgICAgICAgcmV0dXJuIGVudGl0eVR5cGUhLmNsaWVudFByb3BlcnR5UGF0aFRvU2VydmVyKGl0ZW0ucHJvcGVydHlQYXRoLCBcIi9cIikgKyAoaXRlbS5pc0Rlc2MgPyBcIiBkZXNjXCIgOiBcIlwiKTtcclxuICAgICAgfSk7XHJcbiAgICAgIC8vIHNob3VsZCByZXR1cm4gc29tZXRoaW5nIGxpa2UgQ29tcGFueU5hbWUsQWRkcmVzcy9DaXR5IGRlc2NcclxuICAgICAgcmV0dXJuIHN0cmluZ3Muam9pbignLCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRvU2VsZWN0T0RhdGFGcmFnbWVudChzZWxlY3RDbGF1c2U/OiBicmVlemUuU2VsZWN0Q2xhdXNlKSB7XHJcbiAgICAgIGlmICghc2VsZWN0Q2xhdXNlKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICBzZWxlY3RDbGF1c2UudmFsaWRhdGUoZW50aXR5VHlwZSEpO1xyXG4gICAgICBsZXQgZnJhZyA9IHNlbGVjdENsYXVzZS5wcm9wZXJ0eVBhdGhzLm1hcChmdW5jdGlvbiAocHApIHtcclxuICAgICAgICByZXR1cm4gZW50aXR5VHlwZSEuY2xpZW50UHJvcGVydHlQYXRoVG9TZXJ2ZXIocHAsIFwiL1wiKTtcclxuICAgICAgfSkuam9pbihcIixcIik7XHJcbiAgICAgIHJldHVybiBmcmFnO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHRvRXhwYW5kT0RhdGFGcmFnbWVudChleHBhbmRDbGF1c2U/OiBicmVlemUuRXhwYW5kQ2xhdXNlKSB7XHJcbiAgICAgIGlmICghZXhwYW5kQ2xhdXNlKSByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAvLyBubyB2YWxpZGF0ZSBvbiBleHBhbmQgY2xhdXNlcyBjdXJyZW50bHkuXHJcbiAgICAgIC8vIGV4cGFuZENsYXVzZS52YWxpZGF0ZShlbnRpdHlUeXBlKTtcclxuICAgICAgbGV0IGZyYWcgPSBleHBhbmRDbGF1c2UucHJvcGVydHlQYXRocy5tYXAoZnVuY3Rpb24gKHBwKSB7XHJcbiAgICAgICAgcmV0dXJuIGVudGl0eVR5cGUhLmNsaWVudFByb3BlcnR5UGF0aFRvU2VydmVyKHBwLCBcIi9cIik7XHJcbiAgICAgIH0pLmpvaW4oXCIsXCIpO1xyXG4gICAgICByZXR1cm4gZnJhZztcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiB0b1F1ZXJ5T3B0aW9uc1N0cmluZyhxdWVyeU9wdGlvbnM6IGJyZWV6ZS5RdWVyeU9wdGlvbnMpIHtcclxuICAgICAgbGV0IHFvU3RyaW5nczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgZm9yIChsZXQgcW9OYW1lIGluIHF1ZXJ5T3B0aW9ucykge1xyXG4gICAgICAgIGxldCBxb1ZhbHVlID0gcXVlcnlPcHRpb25zW3FvTmFtZV07XHJcbiAgICAgICAgaWYgKHFvVmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgaWYgKHFvVmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xyXG4gICAgICAgICAgICBxb1ZhbHVlLmZvckVhY2goZnVuY3Rpb24gKHFvdikge1xyXG4gICAgICAgICAgICAgIHFvU3RyaW5ncy5wdXNoKHFvTmFtZSArIFwiPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHFvdikpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHFvU3RyaW5ncy5wdXNoKHFvTmFtZSArIFwiPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHFvVmFsdWUpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChxb1N0cmluZ3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHJldHVybiBxb1N0cmluZ3Muam9pbihcIiZcIik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxufVxyXG5cclxuKGJyZWV6ZS5QcmVkaWNhdGUucHJvdG90eXBlIGFzIGFueSkudG9PRGF0YUZyYWdtZW50ID0gZnVuY3Rpb24gKGNvbnRleHQ6IGJyZWV6ZS5WaXNpdENvbnRleHQpIHtcclxuICByZXR1cm4gdGhpcy52aXNpdChjb250ZXh0LCB0b09EYXRhRnJhZ21lbnRWaXNpdG9yKTtcclxufTtcclxuXHJcbmxldCB0b09EYXRhRnJhZ21lbnRWaXNpdG9yID0ge1xyXG5cclxuICBwYXNzdGhydVByZWRpY2F0ZTogZnVuY3Rpb24gKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XHJcbiAgfSxcclxuXHJcbiAgdW5hcnlQcmVkaWNhdGU6IGZ1bmN0aW9uICh0aGlzOiBicmVlemUuVW5hcnlQcmVkaWNhdGUsIGNvbnRleHQ6IGJyZWV6ZS5WaXNpdENvbnRleHQpIHtcclxuICAgIGxldCBwcmVkVmFsID0gdGhpcy5wcmVkLnZpc2l0KGNvbnRleHQpO1xyXG4gICAgcmV0dXJuIG9kYXRhT3BGcm9tKHRoaXMpICsgXCIgXCIgKyBcIihcIiArIHByZWRWYWwgKyBcIilcIjtcclxuICB9LFxyXG5cclxuICBiaW5hcnlQcmVkaWNhdGU6IGZ1bmN0aW9uICh0aGlzOiBicmVlemUuQmluYXJ5UHJlZGljYXRlLCBjb250ZXh0OiBicmVlemUuVmlzaXRDb250ZXh0KSB7XHJcbiAgICBsZXQgZXhwcjFWYWwgPSB0aGlzLmV4cHIxIS52aXNpdChjb250ZXh0KTtcclxuICAgIGxldCBleHByMlZhbCA9IHRoaXMuZXhwcjIhLnZpc2l0KGNvbnRleHQpO1xyXG4gICAgbGV0IHByZWZpeCA9IChjb250ZXh0IGFzIGFueSkucHJlZml4O1xyXG4gICAgaWYgKHByZWZpeCkge1xyXG4gICAgICBleHByMVZhbCA9IHByZWZpeCArIFwiL1wiICsgZXhwcjFWYWw7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG9kYXRhT3AgPSBvZGF0YU9wRnJvbSh0aGlzKTtcclxuXHJcbiAgICBpZiAodGhpcy5vcC5rZXkgPT09ICdpbicpIHtcclxuICAgICAgbGV0IHJlc3VsdCA9IGV4cHIyVmFsLm1hcChmdW5jdGlvbiAodjogYW55KSB7XHJcbiAgICAgICAgcmV0dXJuIFwiKFwiICsgZXhwcjFWYWwgKyBcIiBlcSBcIiArIHYgKyBcIilcIjtcclxuICAgICAgfSkuam9pbihcIiBvciBcIik7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3AuaXNGdW5jdGlvbikge1xyXG4gICAgICBpZiAob2RhdGFPcCA9PT0gXCJzdWJzdHJpbmdvZlwiKSB7XHJcbiAgICAgICAgcmV0dXJuIG9kYXRhT3AgKyBcIihcIiArIGV4cHIyVmFsICsgXCIsXCIgKyBleHByMVZhbCArIFwiKSBlcSB0cnVlXCI7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG9kYXRhT3AgKyBcIihcIiArIGV4cHIxVmFsICsgXCIsXCIgKyBleHByMlZhbCArIFwiKSBlcSB0cnVlXCI7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBleHByMVZhbCArIFwiIFwiICsgb2RhdGFPcCArIFwiIFwiICsgZXhwcjJWYWw7XHJcbiAgICB9XHJcbiAgfSxcclxuXHJcbiAgYW5kT3JQcmVkaWNhdGU6IGZ1bmN0aW9uICh0aGlzOiBicmVlemUuQW5kT3JQcmVkaWNhdGUsIGNvbnRleHQ6IGJyZWV6ZS5WaXNpdENvbnRleHQpIHtcclxuICAgIGxldCByZXN1bHQgPSB0aGlzLnByZWRzLm1hcChmdW5jdGlvbiAocHJlZCkge1xyXG4gICAgICBsZXQgcHJlZFZhbCA9IHByZWQudmlzaXQoY29udGV4dCk7XHJcbiAgICAgIHJldHVybiBcIihcIiArIHByZWRWYWwgKyBcIilcIjtcclxuICAgIH0pLmpvaW4oXCIgXCIgKyBvZGF0YU9wRnJvbSh0aGlzKSArIFwiIFwiKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfSxcclxuXHJcbiAgYW55QWxsUHJlZGljYXRlOiBmdW5jdGlvbiAodGhpczogYnJlZXplLkFueUFsbFByZWRpY2F0ZSwgY29udGV4dDogYnJlZXplLlZpc2l0Q29udGV4dCkge1xyXG4gICAgbGV0IGV4cHJWYWwgPSB0aGlzLmV4cHIudmlzaXQoY29udGV4dCk7XHJcbiAgICBpZiAoIXRoaXMucHJlZC5vcCkgeyAvLyBhZGRlZCAyMS1PY3QtMjAxNiB0byBmaXggYnJlZXplLmpzIGlzc3VlICMxNzJcclxuICAgICAgcmV0dXJuIGV4cHJWYWwgKyBcIi9cIiArIG9kYXRhT3BGcm9tKHRoaXMpICsgXCIoKVwiO1xyXG4gICAgfVxyXG4gICAgbGV0IHByZWZpeCA9IChjb250ZXh0IGFzIGFueSkucHJlZml4O1xyXG4gICAgaWYgKHByZWZpeCkge1xyXG4gICAgICBleHByVmFsID0gcHJlZml4ICsgXCIvXCIgKyBleHByVmFsO1xyXG4gICAgICBwcmVmaXggPSBcInhcIiArIChwYXJzZUludChwcmVmaXguc3Vic3RyaW5nKDEpKSArIDEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcHJlZml4ID0gXCJ4MVwiO1xyXG4gICAgfVxyXG4gICAgLy8gbmVlZCB0byBjcmVhdGUgYSBuZXcgY29udGV4dCBiZWNhdXNlIG9mICdwcmVmaXgnXHJcbiAgICBsZXQgbmV3Q29udGV4dCA9IGJyZWV6ZS5jb3JlLmV4dGVuZCh7fSwgY29udGV4dCkgYXMgYW55O1xyXG4gICAgbmV3Q29udGV4dC5lbnRpdHlUeXBlID0gdGhpcy5leHByLmRhdGFUeXBlO1xyXG4gICAgbmV3Q29udGV4dC5wcmVmaXggPSBwcmVmaXg7XHJcbiAgICBsZXQgbmV3UHJlZFZhbCA9IHRoaXMucHJlZC52aXNpdChuZXdDb250ZXh0KTtcclxuICAgIHJldHVybiBleHByVmFsICsgXCIvXCIgKyBvZGF0YU9wRnJvbSh0aGlzKSArIFwiKFwiICsgcHJlZml4ICsgXCI6IFwiICsgbmV3UHJlZFZhbCArIFwiKVwiO1xyXG4gIH0sXHJcblxyXG4gIGxpdEV4cHI6IGZ1bmN0aW9uICgpIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlLm1hcChmdW5jdGlvbiAodjogYW55KSB7IHJldHVybiB0aGlzLmRhdGFUeXBlLmZtdE9EYXRhKHYpOyB9LCB0aGlzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRhdGFUeXBlLmZtdE9EYXRhKHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG4gIH0sXHJcblxyXG4gIHByb3BFeHByOiBmdW5jdGlvbiAodGhpczogYnJlZXplLlByb3BFeHByLCBjb250ZXh0OiBicmVlemUuRXhwcmVzc2lvbkNvbnRleHQpIHtcclxuICAgIGxldCBlbnRpdHlUeXBlID0gY29udGV4dC5lbnRpdHlUeXBlO1xyXG4gICAgLy8gJy8nIGlzIHRoZSBPRGF0YSBwYXRoIGRlbGltaXRlclxyXG4gICAgcmV0dXJuIGVudGl0eVR5cGUgPyBlbnRpdHlUeXBlLmNsaWVudFByb3BlcnR5UGF0aFRvU2VydmVyKHRoaXMucHJvcGVydHlQYXRoLCBcIi9cIikgOiB0aGlzLnByb3BlcnR5UGF0aDtcclxuICB9LFxyXG5cclxuICBmbkV4cHI6IGZ1bmN0aW9uICh0aGlzOiBicmVlemUuRm5FeHByLCBjb250ZXh0OiBicmVlemUuRXhwcmVzc2lvbkNvbnRleHQpIHtcclxuICAgIGxldCBleHByVmFscyA9IHRoaXMuZXhwcnMubWFwKGZ1bmN0aW9uIChleHByKSB7XHJcbiAgICAgIHJldHVybiBleHByLnZpc2l0KGNvbnRleHQpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdGhpcy5mbk5hbWUgKyBcIihcIiArIGV4cHJWYWxzLmpvaW4oXCIsXCIpICsgXCIpXCI7XHJcbiAgfVxyXG59O1xyXG5cclxubGV0IF9vcGVyYXRvck1hcCA9IHtcclxuICAnY29udGFpbnMnOiAnc3Vic3RyaW5nb2YnXHJcbn07XHJcblxyXG5mdW5jdGlvbiBvZGF0YU9wRnJvbShub2RlOiBhbnkpIHtcclxuICBsZXQgb3AgPSBub2RlLm9wLmtleTtcclxuICBsZXQgb2RhdGFPcCA9IF9vcGVyYXRvck1hcFtvcF07XHJcbiAgcmV0dXJuIG9kYXRhT3AgfHwgb3A7XHJcbn1cclxuXHJcbmJyZWV6ZS5jb25maWcucmVnaXN0ZXJBZGFwdGVyKFwidXJpQnVpbGRlclwiLCBVcmlCdWlsZGVyT0RhdGFBZGFwdGVyKTtcclxuXHJcblxyXG5cclxuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './adapter-uri-builder-odata';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLWNsaWVudC1hZGFwdGVyLXVyaS1idWlsZGVyLW9kYXRhLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC9hZGFwdGVyLXVyaS1idWlsZGVyLW9kYXRhLyIsInNvdXJjZXMiOlsiYnJlZXplLWNsaWVudC1hZGFwdGVyLXVyaS1idWlsZGVyLW9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9hZGFwdGVyLXVyaS1idWlsZGVyLW9kYXRhJztcbiJdfQ==
|
package/esm5/breeze-client.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
export { Param as ɵb } from './src/assert-param';
|
|
6
|
-
export { qualifyTypeName as ɵc } from './src/entity-metadata';
|
|
7
|
-
export { BooleanQueryOp as ɵd } from './src/entity-query';
|
|
8
|
-
export { PredicateExpression as ɵa } from './src/predicate';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLWNsaWVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2JyZWV6ZS1jbGllbnQvIiwic291cmNlcyI6WyJicmVlemUtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUM7QUFFeEIsT0FBTyxFQUFDLEtBQUssSUFBSSxFQUFFLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsZUFBZSxJQUFJLEVBQUUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBQyxjQUFjLElBQUksRUFBRSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFDLG1CQUFtQixJQUFJLEVBQUUsRUFBQyxNQUFNLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcblxuZXhwb3J0IHtQYXJhbSBhcyDJtWJ9IGZyb20gJy4vc3JjL2Fzc2VydC1wYXJhbSc7XG5leHBvcnQge3F1YWxpZnlUeXBlTmFtZSBhcyDJtWN9IGZyb20gJy4vc3JjL2VudGl0eS1tZXRhZGF0YSc7XG5leHBvcnQge0Jvb2xlYW5RdWVyeU9wIGFzIMm1ZH0gZnJvbSAnLi9zcmMvZW50aXR5LXF1ZXJ5JztcbmV4cG9ydCB7UHJlZGljYXRlRXhwcmVzc2lvbiBhcyDJtWF9IGZyb20gJy4vc3JjL3ByZWRpY2F0ZSc7Il19
|
package/esm5/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './src/breeze';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9icmVlemUtY2xpZW50LyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy9icmVlemUnOyJdfQ==
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './mixin-get-entity-graph';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLWNsaWVudC1taXhpbi1nZXQtZW50aXR5LWdyYXBoLmpzIiwic291cmNlUm9vdCI6Im5nOi8vYnJlZXplLWNsaWVudC9taXhpbi1nZXQtZW50aXR5LWdyYXBoLyIsInNvdXJjZXMiOlsiYnJlZXplLWNsaWVudC1taXhpbi1nZXQtZW50aXR5LWdyYXBoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9taXhpbi1nZXQtZW50aXR5LWdyYXBoJztcbiJdfQ==
|
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
//#region Copyright, Version, and Description
|
|
2
|
-
/*
|
|
3
|
-
* Copyright 2015-2021 IdeaBlade, Inc. All Rights Reserved.
|
|
4
|
-
* Use, reproduction, distribution, and modification of this code is subject to the terms and
|
|
5
|
-
* conditions of the IdeaBlade Breeze license, available at http://www.breezejs.com/license
|
|
6
|
-
*
|
|
7
|
-
* Author: Ward Bell
|
|
8
|
-
* Version: 0.9.5 - Steve Schmitt - convert to TypeScript, migrate to breeze-client repo, add HasEntityGraph and mixinEntityGraph
|
|
9
|
-
* Version: 0.9.4 - Marcel Good - fix UMD module name
|
|
10
|
-
* --------------------------------------------------------------------------------
|
|
11
|
-
* Adds getEntityGraph method to Breeze EntityManager prototype.
|
|
12
|
-
* Call mixinEntityGraph(EntityManager) to apply the mixin in a tree-shaking-resistant way.
|
|
13
|
-
* Then (manager as any).getEntityGraph(entity, "child");
|
|
14
|
-
*
|
|
15
|
-
* Depends on Breeze which it patches
|
|
16
|
-
*
|
|
17
|
-
* For discussion, see:
|
|
18
|
-
* http://www.breezejs.com/documentation/getentitygraph
|
|
19
|
-
*
|
|
20
|
-
* For example usage, see:
|
|
21
|
-
* https://github.com/Breeze/breeze.js.samples/tree/master/net/DocCode/DocCode/tests/getEntityGraphTests.js
|
|
22
|
-
*/
|
|
23
|
-
//#endregion
|
|
24
|
-
import { EntityManager, EntityQuery, EntityState, ExpandClause } from 'breeze-client';
|
|
25
|
-
export function mixinEntityGraph(emclass) {
|
|
26
|
-
var proto = EntityManager.prototype;
|
|
27
|
-
if (!proto.getEntityGraph) {
|
|
28
|
-
proto.getEntityGraph = getEntityGraph;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
mixinEntityGraph(EntityManager);
|
|
32
|
-
function getEntityGraph(roots, expand) {
|
|
33
|
-
if (roots instanceof EntityQuery) {
|
|
34
|
-
var newRoots = this.executeQueryLocally(roots);
|
|
35
|
-
return getEntityGraphCore(newRoots, expand || roots.expandClause);
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
return getEntityGraphCore(roots, expand);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
function getEntityGraphCore(root, expand) {
|
|
42
|
-
var entityGroupMap;
|
|
43
|
-
var graph = [];
|
|
44
|
-
var rootType;
|
|
45
|
-
var roots = Array.isArray(root) ? root : [root];
|
|
46
|
-
addToGraph(roots); // removes dups & nulls
|
|
47
|
-
roots = graph.slice(); // copy of de-duped roots
|
|
48
|
-
if (roots.length) {
|
|
49
|
-
getRootInfo();
|
|
50
|
-
getExpand();
|
|
51
|
-
buildGraph();
|
|
52
|
-
}
|
|
53
|
-
return graph;
|
|
54
|
-
function addToGraph(entities) {
|
|
55
|
-
entities.forEach(function (entity) {
|
|
56
|
-
if (entity && graph.indexOf(entity) < 0) {
|
|
57
|
-
graph.push(entity);
|
|
58
|
-
}
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
function getRootInfo() {
|
|
62
|
-
var compatTypes;
|
|
63
|
-
roots.forEach(function (root, ix) {
|
|
64
|
-
var aspect;
|
|
65
|
-
if (!root || !(aspect = root.entityAspect)) {
|
|
66
|
-
throw getRootErr(ix, 'is not an entity');
|
|
67
|
-
}
|
|
68
|
-
if (aspect.entityState === EntityState.Detached) {
|
|
69
|
-
throw getRootErr(ix, 'is a detached entity');
|
|
70
|
-
}
|
|
71
|
-
var em = aspect.entityManager;
|
|
72
|
-
if (entityGroupMap) {
|
|
73
|
-
if (entityGroupMap !== em._entityGroupMap) {
|
|
74
|
-
throw getRootErr(ix, "has a different 'EntityManager' than other roots");
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
entityGroupMap = em._entityGroupMap;
|
|
79
|
-
}
|
|
80
|
-
getRootType(root, ix);
|
|
81
|
-
});
|
|
82
|
-
function getRootErr(ix, msg) {
|
|
83
|
-
return new Error("'getEntityGraph' root[" + ix + "] " + msg);
|
|
84
|
-
}
|
|
85
|
-
function getRootType(root, ix) {
|
|
86
|
-
var thisType = root.entityType;
|
|
87
|
-
if (!rootType) {
|
|
88
|
-
rootType = thisType;
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
else if (rootType === thisType) {
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
// Types differs. Look for closest common base type
|
|
95
|
-
// does thisType derive from current rootType?
|
|
96
|
-
var baseType = rootType;
|
|
97
|
-
do {
|
|
98
|
-
compatTypes = compatTypes || baseType.getSelfAndSubtypes();
|
|
99
|
-
if (compatTypes.indexOf(thisType) > -1) {
|
|
100
|
-
rootType = baseType;
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
baseType = baseType.baseEntityType;
|
|
104
|
-
compatTypes = null;
|
|
105
|
-
} while (baseType);
|
|
106
|
-
// does current rootType derives from thisType?
|
|
107
|
-
baseType = thisType;
|
|
108
|
-
do {
|
|
109
|
-
compatTypes = baseType.getSelfAndSubtypes();
|
|
110
|
-
if (compatTypes.indexOf(rootType) > -1) {
|
|
111
|
-
rootType = baseType;
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
baseType = baseType.baseEntityType;
|
|
115
|
-
} while (baseType);
|
|
116
|
-
throw getRootErr(ix, "is not EntityType-compatible with other roots");
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
function getExpand() {
|
|
120
|
-
try {
|
|
121
|
-
if (!expand) {
|
|
122
|
-
expand = [];
|
|
123
|
-
}
|
|
124
|
-
else if (typeof expand === 'string') {
|
|
125
|
-
// tricky because Breeze expandClause not exposed publically
|
|
126
|
-
expand = new EntityQuery().expand(expand).expandClause;
|
|
127
|
-
}
|
|
128
|
-
if (expand instanceof ExpandClause && expand.propertyPaths) { // expand clause
|
|
129
|
-
expand = expand.propertyPaths;
|
|
130
|
-
}
|
|
131
|
-
else if (Array.isArray(expand)) {
|
|
132
|
-
if (!expand.every(function (elem) { return typeof elem === 'string'; })) {
|
|
133
|
-
throw '';
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
throw '';
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
catch (_) {
|
|
141
|
-
throw new Error("expand must be an expand string, array of string paths, or a query expand clause");
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
function buildGraph() {
|
|
145
|
-
if (expand && expand instanceof Array && expand.length) {
|
|
146
|
-
var fns = expand.map(makePathFn);
|
|
147
|
-
fns.forEach(function (fn) { fn(roots); });
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
// Make function to get entities along a single expand path
|
|
151
|
-
// such as 'Orders.OrderDetails.Product'
|
|
152
|
-
function makePathFn(path) {
|
|
153
|
-
var fns = [], segments = path.split('.'), type = rootType;
|
|
154
|
-
for (var i = 0, slen = segments.length; i < slen; i++) {
|
|
155
|
-
var f = makePathSegmentFn(type, segments[i]);
|
|
156
|
-
type = f.navType;
|
|
157
|
-
fns.push(f);
|
|
158
|
-
}
|
|
159
|
-
return function pathFn(entities) {
|
|
160
|
-
for (var j = 0, flen = fns.length; j < flen; j++) {
|
|
161
|
-
var elen = entities.length;
|
|
162
|
-
if (elen === 0) {
|
|
163
|
-
return;
|
|
164
|
-
} // nothing left to explore
|
|
165
|
-
// fn to get related entities for this path segment
|
|
166
|
-
var fn = fns[j];
|
|
167
|
-
// get entities related by this path segment
|
|
168
|
-
var related = [];
|
|
169
|
-
for (var k = 0; k < elen; k++) {
|
|
170
|
-
related = related.concat(fn(entities[k]));
|
|
171
|
-
}
|
|
172
|
-
addToGraph(related);
|
|
173
|
-
if (j >= flen - 1) {
|
|
174
|
-
return;
|
|
175
|
-
} // no more path segments
|
|
176
|
-
// reset entities to deduped related entities
|
|
177
|
-
entities = [];
|
|
178
|
-
for (var l = 0, rlen = related.length; l < rlen; l++) {
|
|
179
|
-
var r = related[l];
|
|
180
|
-
if (entities.indexOf(r) < 0) {
|
|
181
|
-
entities.push(r);
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
// Make function to get entities along a single expand path segment
|
|
188
|
-
// such as the 'OrderDetails' in the 'Orders.OrderDetails.Product' path
|
|
189
|
-
function makePathSegmentFn(baseType, segment) {
|
|
190
|
-
var baseTypeName, fn = undefined, navType;
|
|
191
|
-
try {
|
|
192
|
-
baseTypeName = baseType.name;
|
|
193
|
-
var nav = baseType.getNavigationProperty(segment);
|
|
194
|
-
var fkName_1 = nav.foreignKeyNames[0];
|
|
195
|
-
if (!nav) {
|
|
196
|
-
throw new Error(segment + " is not a navigation property of " + baseTypeName);
|
|
197
|
-
}
|
|
198
|
-
navType = nav.entityType;
|
|
199
|
-
// add derived types
|
|
200
|
-
var navTypes = navType.getSelfAndSubtypes();
|
|
201
|
-
var grps_1 = []; // non-empty groups for these types
|
|
202
|
-
navTypes.forEach(function (t) {
|
|
203
|
-
var grp = entityGroupMap[t.name];
|
|
204
|
-
if (grp && grp._entities.length > 0) {
|
|
205
|
-
grps_1.push(grp);
|
|
206
|
-
}
|
|
207
|
-
});
|
|
208
|
-
var grpCount_1 = grps_1.length;
|
|
209
|
-
if (grpCount_1 === 0) {
|
|
210
|
-
// no related entities in cache
|
|
211
|
-
fn = function () { return []; };
|
|
212
|
-
}
|
|
213
|
-
else if (fkName_1) {
|
|
214
|
-
fn = function (entity) {
|
|
215
|
-
var val = null;
|
|
216
|
-
try {
|
|
217
|
-
var keyValue = entity.getProperty(fkName_1);
|
|
218
|
-
for (var i = 0; i < grpCount_1; i += 1) {
|
|
219
|
-
val = grps_1[i]._entities[grps_1[i]._indexMap[keyValue]];
|
|
220
|
-
if (val) {
|
|
221
|
-
break;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
catch (e) {
|
|
226
|
-
rethrow(e);
|
|
227
|
-
}
|
|
228
|
-
return val;
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
fkName_1 = nav.inverse ?
|
|
233
|
-
nav.inverse.foreignKeyNames[0] :
|
|
234
|
-
nav.invForeignKeyNames[0];
|
|
235
|
-
if (!fkName_1) {
|
|
236
|
-
throw new Error("No inverse keys");
|
|
237
|
-
}
|
|
238
|
-
fn = function (entity) {
|
|
239
|
-
var vals = [];
|
|
240
|
-
try {
|
|
241
|
-
var keyValue_1 = entity.entityAspect.getKey().values[0];
|
|
242
|
-
grps_1.forEach(function (grp) {
|
|
243
|
-
vals = vals.concat(grp._entities.filter(function (en) {
|
|
244
|
-
return en && en.getProperty(fkName_1) === keyValue_1;
|
|
245
|
-
}));
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
catch (e) {
|
|
249
|
-
rethrow(e);
|
|
250
|
-
}
|
|
251
|
-
return vals;
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
fn.navType = navType;
|
|
255
|
-
fn.path = segment;
|
|
256
|
-
}
|
|
257
|
-
catch (err) {
|
|
258
|
-
rethrow(err);
|
|
259
|
-
}
|
|
260
|
-
return fn;
|
|
261
|
-
function rethrow(e) {
|
|
262
|
-
var typeName = baseTypeName || baseType;
|
|
263
|
-
var error = new Error("'getEntityGraph' can't expand '" + segment + "' for " + typeName);
|
|
264
|
-
error.innerError = e;
|
|
265
|
-
throw error;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWl4aW4tZ2V0LWVudGl0eS1ncmFwaC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2JyZWV6ZS1jbGllbnQvbWl4aW4tZ2V0LWVudGl0eS1ncmFwaC8iLCJzb3VyY2VzIjpbIm1peGluLWdldC1lbnRpdHktZ3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNkNBQTZDO0FBQzdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUNILFlBQVk7QUFDWixPQUFPLEVBQVUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQWMsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBc0MxRyxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBaUM7SUFDaEUsSUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQztJQUV0QyxJQUFJLENBQUUsS0FBYSxDQUFDLGNBQWMsRUFBRTtRQUNqQyxLQUFhLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztLQUNoRDtBQUNILENBQUM7QUFFRCxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUdoQyxTQUFTLGNBQWMsQ0FBQyxLQUEyQyxFQUFFLE1BQTZDO0lBQ2hILElBQUksS0FBSyxZQUFZLFdBQVcsRUFBRTtRQUNoQyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsT0FBTyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztLQUNuRTtTQUFNO1FBQ0wsT0FBTyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7S0FDMUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxJQUE0QixFQUFFLE1BQTZDO0lBQ3JHLElBQUksY0FBZ0QsQ0FBQztJQUNyRCxJQUFJLEtBQUssR0FBRyxFQUFtQixDQUFDO0lBQ2hDLElBQUksUUFBb0IsQ0FBQztJQUN6QixJQUFJLEtBQUssR0FBRyxLQUFLLENB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LENBQUMsQ0FBQzthQUNIO1lBQ0EsRUFBVSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDN0IsRUFBVSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUM7U0FFNUI7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUFFO1FBQy9CLE9BQU8sRUFBRSxDQUFDO1FBRVYsU0FBUyxPQUFPLENBQUMsQ0FBUTtZQUN2QixJQUFJLFFBQVEsR0FBRyxZQUFZLElBQUksUUFBUSxDQUFDO1lBQ3hDLElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLGlDQUFpQyxHQUFHLE9BQU8sR0FBRyxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUM7WUFDeEYsS0FBYSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDOUIsTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyNyZWdpb24gQ29weXJpZ2h0LCBWZXJzaW9uLCBhbmQgRGVzY3JpcHRpb25cclxuLypcclxuICogQ29weXJpZ2h0IDIwMTUtMjAyMSBJZGVhQmxhZGUsIEluYy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXHJcbiAqIFVzZSwgcmVwcm9kdWN0aW9uLCBkaXN0cmlidXRpb24sIGFuZCBtb2RpZmljYXRpb24gb2YgdGhpcyBjb2RlIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZFxyXG4gKiBjb25kaXRpb25zIG9mIHRoZSBJZGVhQmxhZGUgQnJlZXplIGxpY2Vuc2UsIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmJyZWV6ZWpzLmNvbS9saWNlbnNlXHJcbiAqXHJcbiAqIEF1dGhvcjogV2FyZCBCZWxsXHJcbiAqIFZlcnNpb246IDAuOS41IC0gU3RldmUgU2NobWl0dCAtIGNvbnZlcnQgdG8gVHlwZVNjcmlwdCwgbWlncmF0ZSB0byBicmVlemUtY2xpZW50IHJlcG8sIGFkZCBIYXNFbnRpdHlHcmFwaCBhbmQgbWl4aW5FbnRpdHlHcmFwaFxyXG4gKiBWZXJzaW9uOiAwLjkuNCAtIE1hcmNlbCBHb29kIC0gZml4IFVNRCBtb2R1bGUgbmFtZVxyXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4gKiBBZGRzIGdldEVudGl0eUdyYXBoIG1ldGhvZCB0byBCcmVlemUgRW50aXR5TWFuYWdlciBwcm90b3R5cGUuXHJcbiAqIENhbGwgICBtaXhpbkVudGl0eUdyYXBoKEVudGl0eU1hbmFnZXIpICAgdG8gYXBwbHkgdGhlIG1peGluIGluIGEgdHJlZS1zaGFraW5nLXJlc2lzdGFudCB3YXkuXHJcbiAqIFRoZW4gICAobWFuYWdlciBhcyBhbnkpLmdldEVudGl0eUdyYXBoKGVudGl0eSwgXCJjaGlsZFwiKTtcclxuICpcclxuICogRGVwZW5kcyBvbiBCcmVlemUgd2hpY2ggaXQgcGF0Y2hlc1xyXG4gKlxyXG4gKiBGb3IgZGlzY3Vzc2lvbiwgc2VlOlxyXG4gKiBodHRwOi8vd3d3LmJyZWV6ZWpzLmNvbS9kb2N1bWVudGF0aW9uL2dldGVudGl0eWdyYXBoXHJcbiAqXHJcbiAqIEZvciBleGFtcGxlIHVzYWdlLCBzZWU6XHJcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9CcmVlemUvYnJlZXplLmpzLnNhbXBsZXMvdHJlZS9tYXN0ZXIvbmV0L0RvY0NvZGUvRG9jQ29kZS90ZXN0cy9nZXRFbnRpdHlHcmFwaFRlc3RzLmpzXHJcbiAqL1xyXG4vLyNlbmRyZWdpb25cclxuaW1wb3J0IHsgRW50aXR5LCBFbnRpdHlNYW5hZ2VyLCBFbnRpdHlRdWVyeSwgRW50aXR5U3RhdGUsIEVudGl0eVR5cGUsIEV4cGFuZENsYXVzZSB9IGZyb20gJ2JyZWV6ZS1jbGllbnQnO1xyXG5cclxuaW50ZXJmYWNlIEVudGl0eUdyb3VwIHtcclxuICBfZW50aXRpZXM6IChFbnRpdHkgfCBudWxsKVtdO1xyXG4gIF9pbmRleE1hcDogeyBbaW5kZXg6IHN0cmluZ106IG51bWJlciB9O1xyXG59XHJcblxyXG4vLyBtb2R1bGUgYXVnbWVudGF0aW9uIGZhaWxlZCB0byBidWlsZCB3aXRoIG5nLXBhY2thZ3IsIHNvIHdlIGhhdmUgYSBzZXBhcmF0ZSBpbnRlcmZhY2VcclxuZXhwb3J0IGludGVyZmFjZSBIYXNFbnRpdHlHcmFwaCBleHRlbmRzIEVudGl0eU1hbmFnZXIge1xyXG4gIC8qKlxyXG4gIEdldCByZWxhdGVkIGVudGl0aWVzIG9mIHJvb3QgZW50aXR5IChvciByb290IGVudGl0aWVzKSBhcyBzcGVjaWZpZWQgYnkgZXhwYW5kLlxyXG4gIEBleGFtcGxlXHJcbiAgICAgIHZhciBncmFwaCA9IGJyZWV6ZS5FbnRpdHlNYW5hZ2VyLmdldEVudGl0eUdyYXBoKGN1c3RvbWVyLCAnT3JkZXJzLk9yZGVyRGV0YWlscycpO1xyXG4gICAgICAvLyBncmFwaCB3aWxsIGJlIHRoZSBjdXN0b21lciwgYWxsIG9mIGl0cyBvcmRlcnMgYW5kIHRoZWlyIGRldGFpbHMgZXZlbiBpZiBkZWxldGVkLlxyXG4gIEBtZXRob2QgZ2V0RW50aXR5R3JhcGhcclxuICBAcGFyYW0gcm9vdHMge0VudGl0eXxBcnJheSBvZiBFbnRpdHl9IFRoZSByb290IGVudGl0eSBvciByb290IGVudGl0aWVzLlxyXG4gIEBwYXJhbSBleHBhbmQge1N0cmluZ3xBcnJheSBvZiBTdHJpbmd8T2JqZWN0fSBhbiBleHBhbmQgc3RyaW5nLCBhIHF1ZXJ5IGV4cGFuZCBjbGF1c2UsIG9yIGFycmF5IG9mIHN0cmluZyBwYXRoc1xyXG4gIEByZXR1cm4ge0FycmF5IG9mIEVudGl0eX0gcm9vdCBlbnRpdGllcyBhbmQgdGhlaXIgcmVsYXRlZCBlbnRpdGllcywgaW5jbHVkaW5nIGRlbGV0ZWQgZW50aXRpZXMuIER1cGxpY2F0ZXMgYXJlIHJlbW92ZWQgYW5kIGVudGl0eSBvcmRlciBpcyBpbmRldGVybWluYXRlLlxyXG4gICoqL1xyXG4gIGdldEVudGl0eUdyYXBoKHJvb3RzOiBFbnRpdHkgfCBBcnJheTxFbnRpdHk+LCBleHBhbmQ6IHN0cmluZyB8IEFycmF5PHN0cmluZz4gfCBFeHBhbmRDbGF1c2UpOiBBcnJheTxFbnRpdHk+O1xyXG5cclxuICAvKipcclxuICBFeGVjdXRlIHF1ZXJ5IGxvY2FsbHkgYW5kIHJldHVybiBib3RoIHRoZSBxdWVyeSByZXN1bHRzIGFuZCB0aGVpciByZWxhdGVkIGVudGl0aWVzIGFzIHNwZWNpZmllZCBieSB0aGUgb3B0aW9uYWwgZXhwYW5kIHBhcmFtZXRlciBvciB0aGUgcXVlcnkncyBleHBhbmQgY2xhdXNlLlxyXG4gIEBleGFtcGxlXHJcbiAgICAgIHZhciBxdWVyeSA9IGJyZWV6ZS5FbnRpdHlRdWVyeS5mcm9tKCdDdXN0b21lcnMnKVxyXG4gICAgICAgICAgICAgICAgICAud2hlcmUoJ0NvbXBhbnlOYW1lJywgJ3N0YXJ0c1dpdGgnLCAnQWxmcmVkJylcclxuICAgICAgICAgICAgICAgICAgLmV4cGFuZCgnT3JkZXJzLk9yZGVyRGV0YWlscycpO1xyXG4gICAgICB2YXIgZ3JhcGggPSBtYW5hZ2VyLmdldEVudGl0eUdyYXBoKHF1ZXJ5KTtcclxuICAgICAgLy8gZ3JhcGggd2lsbCBiZSB0aGUgJ0FsZnJlZCcgY3VzdG9tZXJzLCB0aGVpciBvcmRlcnMgYW5kIHRoZWlyIGRldGFpbHMgZXZlbiBpZiBkZWxldGVkLlxyXG4gIEBtZXRob2QgZ2V0RW50aXR5R3JhcGhcclxuICBAcGFyYW0gcXVlcnkge0VudGl0eVF1ZXJ5fSBBIHF1ZXJ5IHRvIGJlIGV4ZWN1dGVkIGFnYWluc3QgdGhlIG1hbmFnZXIncyBsb2NhbCBjYWNoZS5cclxuICBAcGFyYW0gW2V4cGFuZF0ge1N0cmluZ3xBcnJheSBvZiBTdHJpbmd8T2JqZWN0fSBhbiBleHBhbmQgc3RyaW5nLCBhIHF1ZXJ5IGV4cGFuZCBjbGF1c2UsIG9yIGFycmF5IG9mIHN0cmluZyBwYXRoc1xyXG4gIEByZXR1cm4ge0FycmF5IG9mIEVudGl0eX0gbG9jYWwgcXVlcmllZCByb290IGVudGl0aWVzIGFuZCB0aGVpciByZWxhdGVkIGVudGl0aWVzLCBpbmNsdWRpbmcgZGVsZXRlZCBlbnRpdGllcy4gRHVwbGljYXRlcyBhcmUgcmVtb3ZlZCBhbmQgZW50aXR5IG9yZGVyIGlzIGluZGV0ZXJtaW5hdGUuXHJcbiAgKiovXHJcbiAgZ2V0RW50aXR5R3JhcGgocXVlcnk6IEVudGl0eVF1ZXJ5LCBleHBhbmQ6IHN0cmluZyB8IEFycmF5PHN0cmluZz4gfCBFeHBhbmRDbGF1c2UpOiBBcnJheTxFbnRpdHk+O1xyXG5cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1peGluRW50aXR5R3JhcGgoZW1jbGFzczogeyBuZXcoKTogRW50aXR5TWFuYWdlciB9KSB7XHJcbiAgY29uc3QgcHJvdG8gPSBFbnRpdHlNYW5hZ2VyLnByb3RvdHlwZTtcclxuXHJcbiAgaWYgKCEocHJvdG8gYXMgYW55KS5nZXRFbnRpdHlHcmFwaCkge1xyXG4gICAgKHByb3RvIGFzIGFueSkuZ2V0RW50aXR5R3JhcGggPSBnZXRFbnRpdHlHcmFwaDtcclxuICB9XHJcbn1cclxuXHJcbm1peGluRW50aXR5R3JhcGgoRW50aXR5TWFuYWdlcik7XHJcblxyXG5cclxuZnVuY3Rpb24gZ2V0RW50aXR5R3JhcGgocm9vdHM6IEVudGl0eSB8IEFycmF5PEVudGl0eT4gfCBFbnRpdHlRdWVyeSwgZXhwYW5kOiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+IHwgRXhwYW5kQ2xhdXNlKSB7XHJcbiAgaWYgKHJvb3RzIGluc3RhbmNlb2YgRW50aXR5UXVlcnkpIHtcclxuICAgIGxldCBuZXdSb290cyA9IHRoaXMuZXhlY3V0ZVF1ZXJ5TG9jYWxseShyb290cyk7XHJcbiAgICByZXR1cm4gZ2V0RW50aXR5R3JhcGhDb3JlKG5ld1Jvb3RzLCBleHBhbmQgfHwgcm9vdHMuZXhwYW5kQ2xhdXNlKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIGdldEVudGl0eUdyYXBoQ29yZShyb290cywgZXhwYW5kKTtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldEVudGl0eUdyYXBoQ29yZShyb290OiBFbnRpdHkgfCBBcnJheTxFbnRpdHk+LCBleHBhbmQ6IHN0cmluZyB8IEFycmF5PHN0cmluZz4gfCBFeHBhbmRDbGF1c2UpIHtcclxuICBsZXQgZW50aXR5R3JvdXBNYXA6IHsgW2luZGV4OiBzdHJpbmddOiBFbnRpdHlHcm91cCB9O1xyXG4gIGxldCBncmFwaCA9IFtdIGFzIEFycmF5PEVudGl0eT47XHJcbiAgbGV0IHJvb3RUeXBlOiBFbnRpdHlUeXBlO1xyXG4gIGxldCByb290cyA9IEFycmF5LmlzQXJyYXkocm9vdCkgPyByb290IDogW3Jvb3RdO1xyXG4gIGFkZFRvR3JhcGgocm9vdHMpOyAgICAgLy8gcmVtb3ZlcyBkdXBzICYgbnVsbHNcclxuICByb290cyA9IGdyYXBoLnNsaWNlKCk7IC8vIGNvcHkgb2YgZGUtZHVwZWQgcm9vdHNcclxuICBpZiAocm9vdHMubGVuZ3RoKSB7XHJcbiAgICBnZXRSb290SW5mbygpO1xyXG4gICAgZ2V0RXhwYW5kKCk7XHJcbiAgICBidWlsZEdyYXBoKCk7XHJcbiAgfVxyXG4gIHJldHVybiBncmFwaDtcclxuXHJcbiAgZnVuY3Rpb24gYWRkVG9HcmFwaChlbnRpdGllczogQXJyYXk8RW50aXR5Pikge1xyXG4gICAgZW50aXRpZXMuZm9yRWFjaChmdW5jdGlvbiAoZW50aXR5KSB7XHJcbiAgICAgIGlmIChlbnRpdHkgJiYgZ3JhcGguaW5kZXhPZihlbnRpdHkpIDwgMCkge1xyXG4gICAgICAgIGdyYXBoLnB1c2goZW50aXR5KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBnZXRSb290SW5mbygpIHtcclxuICAgIGxldCBjb21wYXRUeXBlczogQXJyYXk8RW50aXR5VHlwZT47XHJcblxyXG4gICAgcm9vdHMuZm9yRWFjaChmdW5jdGlvbiAocm9vdCwgaXgpIHtcclxuICAgICAgbGV0IGFzcGVjdDtcclxuICAgICAgaWYgKCFyb290IHx8ICEoYXNwZWN0ID0gcm9vdC5lbnRpdHlBc3BlY3QpKSB7XHJcbiAgICAgICAgdGhyb3cgZ2V0Um9vdEVycihpeCwgJ2lzIG5vdCBhbiBlbnRpdHknKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYXNwZWN0LmVudGl0eVN0YXRlID09PSBFbnRpdHlTdGF0ZS5EZXRhY2hlZCkge1xyXG4gICAgICAgIHRocm93IGdldFJvb3RFcnIoaXgsICdpcyBhIGRldGFjaGVkIGVudGl0eScpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgZW0gPSBhc3BlY3QuZW50aXR5TWFuYWdlcjtcclxuICAgICAgaWYgKGVudGl0eUdyb3VwTWFwKSB7XHJcbiAgICAgICAgaWYgKGVudGl0eUdyb3VwTWFwICE9PSBlbS5fZW50aXR5R3JvdXBNYXApIHtcclxuICAgICAgICAgIHRocm93IGdldFJvb3RFcnIoaXgsIFwiaGFzIGEgZGlmZmVyZW50ICdFbnRpdHlNYW5hZ2VyJyB0aGFuIG90aGVyIHJvb3RzXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBlbnRpdHlHcm91cE1hcCA9IGVtLl9lbnRpdHlHcm91cE1hcDtcclxuICAgICAgfVxyXG4gICAgICBnZXRSb290VHlwZShyb290LCBpeCk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgZnVuY3Rpb24gZ2V0Um9vdEVycihpeDogbnVtYmVyLCBtc2c6IHN0cmluZykge1xyXG4gICAgICByZXR1cm4gbmV3IEVycm9yKFwiJ2dldEVudGl0eUdyYXBoJyByb290W1wiICsgaXggKyBcIl0gXCIgKyBtc2cpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIGdldFJvb3RUeXBlKHJvb3Q6IEVudGl0eSwgaXg6IG51bWJlcikge1xyXG4gICAgICBsZXQgdGhpc1R5cGUgPSByb290LmVudGl0eVR5cGU7XHJcbiAgICAgIGlmICghcm9vdFR5cGUpIHtcclxuICAgICAgICByb290VHlwZSA9IHRoaXNUeXBlO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfSBlbHNlIGlmIChyb290VHlwZSA9PT0gdGhpc1R5cGUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgLy8gVHlwZXMgZGlmZmVycy4gTG9vayBmb3IgY2xvc2VzdCBjb21tb24gYmFzZSB0eXBlXHJcbiAgICAgIC8vIGRvZXMgdGhpc1R5cGUgZGVyaXZlIGZyb20gY3VycmVudCByb290VHlwZT9cclxuICAgICAgbGV0IGJhc2VUeXBlID0gcm9vdFR5cGU7XHJcbiAgICAgIGRvIHtcclxuICAgICAgICBjb21wYXRUeXBlcyA9IGNvbXBhdFR5cGVzIHx8IGJhc2VUeXBlLmdldFNlbGZBbmRTdWJ0eXBlcygpO1xyXG4gICAgICAgIGlmIChjb21wYXRUeXBlcy5pbmRleE9mKHRoaXNUeXBlKSA+IC0xKSB7XHJcbiAgICAgICAgICByb290VHlwZSA9IGJhc2VUeXBlO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBiYXNlVHlwZSA9IGJhc2VUeXBlLmJhc2VFbnRpdHlUeXBlO1xyXG4gICAgICAgIGNvbXBhdFR5cGVzID0gbnVsbDtcclxuICAgICAgfSB3aGlsZSAoYmFzZVR5cGUpO1xyXG5cclxuICAgICAgLy8gZG9lcyBjdXJyZW50IHJvb3RUeXBlIGRlcml2ZXMgZnJvbSB0aGlzVHlwZT9cclxuICAgICAgYmFzZVR5cGUgPSB0aGlzVHlwZTtcclxuICAgICAgZG8ge1xyXG4gICAgICAgIGNvbXBhdFR5cGVzID0gYmFzZVR5cGUuZ2V0U2VsZkFuZFN1YnR5cGVzKCk7XHJcbiAgICAgICAgaWYgKGNvbXBhdFR5cGVzLmluZGV4T2Yocm9vdFR5cGUpID4gLTEpIHtcclxuICAgICAgICAgIHJvb3RUeXBlID0gYmFzZVR5cGU7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJhc2VUeXBlID0gYmFzZVR5cGUuYmFzZUVudGl0eVR5cGU7XHJcbiAgICAgIH0gd2hpbGUgKGJhc2VUeXBlKTtcclxuXHJcbiAgICAgIHRocm93IGdldFJvb3RFcnIoaXgsIFwiaXMgbm90IEVudGl0eVR5cGUtY29tcGF0aWJsZSB3aXRoIG90aGVyIHJvb3RzXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gZ2V0RXhwYW5kKCkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKCFleHBhbmQpIHtcclxuICAgICAgICBleHBhbmQgPSBbXTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXhwYW5kID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIC8vIHRyaWNreSBiZWNhdXNlIEJyZWV6ZSBleHBhbmRDbGF1c2Ugbm90IGV4cG9zZWQgcHVibGljYWxseVxyXG4gICAgICAgIGV4cGFuZCA9IG5ldyBFbnRpdHlRdWVyeSgpLmV4cGFuZChleHBhbmQpLmV4cGFuZENsYXVzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZXhwYW5kIGluc3RhbmNlb2YgRXhwYW5kQ2xhdXNlICYmIGV4cGFuZC5wcm9wZXJ0eVBhdGhzKSB7IC8vIGV4cGFuZCBjbGF1c2VcclxuICAgICAgICBleHBhbmQgPSBleHBhbmQucHJvcGVydHlQYXRocztcclxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGV4cGFuZCkpIHtcclxuICAgICAgICBpZiAoIWV4cGFuZC5ldmVyeShmdW5jdGlvbiAoZWxlbSkgeyByZXR1cm4gdHlwZW9mIGVsZW0gPT09ICdzdHJpbmcnOyB9KSkge1xyXG4gICAgICAgICAgdGhyb3cgJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRocm93ICcnO1xyXG4gICAgICB9XHJcbiAgICB9IGNhdGNoIChfKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICBcImV4cGFuZCBtdXN0IGJlIGFuIGV4cGFuZCBzdHJpbmcsIGFycmF5IG9mIHN0cmluZyBwYXRocywgb3IgYSBxdWVyeSBleHBhbmQgY2xhdXNlXCIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gYnVpbGRHcmFwaCgpIHtcclxuICAgIGlmIChleHBhbmQgJiYgZXhwYW5kIGluc3RhbmNlb2YgQXJyYXkgJiYgZXhwYW5kLmxlbmd0aCkge1xyXG4gICAgICBsZXQgZm5zID0gZXhwYW5kLm1hcChtYWtlUGF0aEZuKTtcclxuICAgICAgZm5zLmZvckVhY2goZnVuY3Rpb24gKGZuKSB7IGZuKHJvb3RzKTsgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBNYWtlIGZ1bmN0aW9uIHRvIGdldCBlbnRpdGllcyBhbG9uZyBhIHNpbmdsZSBleHBhbmQgcGF0aFxyXG4gIC8vIHN1Y2ggYXMgJ09yZGVycy5PcmRlckRldGFpbHMuUHJvZHVjdCdcclxuICBmdW5jdGlvbiBtYWtlUGF0aEZuKHBhdGg6IHN0cmluZykge1xyXG4gICAgbGV0IGZucyA9IFtdIGFzIEFycmF5PEZ1bmN0aW9uPixcclxuICAgICAgc2VnbWVudHMgPSBwYXRoLnNwbGl0KCcuJyksXHJcbiAgICAgIHR5cGUgPSByb290VHlwZTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMCwgc2xlbiA9IHNlZ21lbnRzLmxlbmd0aDsgaSA8IHNsZW47IGkrKykge1xyXG4gICAgICBsZXQgZiA9IG1ha2VQYXRoU2VnbWVudEZuKHR5cGUsIHNlZ21lbnRzW2ldKTtcclxuICAgICAgdHlwZSA9IChmIGFzIGFueSkubmF2VHlwZTtcclxuICAgICAgZm5zLnB1c2goZik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIHBhdGhGbihlbnRpdGllczogQXJyYXk8RW50aXR5Pikge1xyXG4gICAgICBmb3IgKGxldCBqID0gMCwgZmxlbiA9IGZucy5sZW5ndGg7IGogPCBmbGVuOyBqKyspIHtcclxuICAgICAgICBsZXQgZWxlbiA9IGVudGl0aWVzLmxlbmd0aDtcclxuICAgICAgICBpZiAoZWxlbiA9PT0gMCkgeyByZXR1cm47IH0gLy8gbm90aGluZyBsZWZ0IHRvIGV4cGxvcmVcclxuICAgICAgICAvLyBmbiB0byBnZXQgcmVsYXRlZCBlbnRpdGllcyBmb3IgdGhpcyBwYXRoIHNlZ21lbnRcclxuICAgICAgICBsZXQgZm4gPSBmbnNbal07XHJcbiAgICAgICAgLy8gZ2V0IGVudGl0aWVzIHJlbGF0ZWQgYnkgdGhpcyBwYXRoIHNlZ21lbnRcclxuICAgICAgICBsZXQgcmVsYXRlZCA9IFtdIGFzIEFycmF5PEVudGl0eT47XHJcbiAgICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCBlbGVuOyBrKyspIHtcclxuICAgICAgICAgIHJlbGF0ZWQgPSByZWxhdGVkLmNvbmNhdChmbihlbnRpdGllc1trXSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhZGRUb0dyYXBoKHJlbGF0ZWQpO1xyXG4gICAgICAgIGlmIChqID49IGZsZW4gLSAxKSB7IHJldHVybjsgfSAvLyBubyBtb3JlIHBhdGggc2VnbWVudHNcclxuXHJcbiAgICAgICAgLy8gcmVzZXQgZW50aXRpZXMgdG8gZGVkdXBlZCByZWxhdGVkIGVudGl0aWVzXHJcbiAgICAgICAgZW50aXRpZXMgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBsID0gMCwgcmxlbiA9IHJlbGF0ZWQubGVuZ3RoOyBsIDwgcmxlbjsgbCsrKSB7XHJcbiAgICAgICAgICBsZXQgciA9IHJlbGF0ZWRbbF07XHJcbiAgICAgICAgICBpZiAoZW50aXRpZXMuaW5kZXhPZihyKSA8IDApIHsgZW50aXRpZXMucHVzaChyKTsgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8vIE1ha2UgZnVuY3Rpb24gdG8gZ2V0IGVudGl0aWVzIGFsb25nIGEgc2luZ2xlIGV4cGFuZCBwYXRoIHNlZ21lbnRcclxuICAvLyBzdWNoIGFzIHRoZSAnT3JkZXJEZXRhaWxzJyBpbiB0aGUgJ09yZGVycy5PcmRlckRldGFpbHMuUHJvZHVjdCcgcGF0aFxyXG4gIGZ1bmN0aW9uIG1ha2VQYXRoU2VnbWVudEZuKGJhc2VUeXBlOiBFbnRpdHlUeXBlLCBzZWdtZW50OiBzdHJpbmcpIHtcclxuICAgIGxldCBiYXNlVHlwZU5hbWU6IHN0cmluZywgZm4gPSB1bmRlZmluZWQsIG5hdlR5cGU7XHJcbiAgICB0cnkge1xyXG4gICAgICBiYXNlVHlwZU5hbWUgPSBiYXNlVHlwZS5uYW1lO1xyXG4gICAgICBsZXQgbmF2ID0gYmFzZVR5cGUuZ2V0TmF2aWdhdGlvblByb3BlcnR5KHNlZ21lbnQpO1xyXG4gICAgICBsZXQgZmtOYW1lID0gbmF2LmZvcmVpZ25LZXlOYW1lc1swXTtcclxuICAgICAgaWYgKCFuYXYpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3Ioc2VnbWVudCArIFwiIGlzIG5vdCBhIG5hdmlnYXRpb24gcHJvcGVydHkgb2YgXCIgKyBiYXNlVHlwZU5hbWUpO1xyXG4gICAgICB9XHJcbiAgICAgIG5hdlR5cGUgPSBuYXYuZW50aXR5VHlwZTtcclxuICAgICAgLy8gYWRkIGRlcml2ZWQgdHlwZXNcclxuICAgICAgbGV0IG5hdlR5cGVzID0gbmF2VHlwZS5nZXRTZWxmQW5kU3VidHlwZXMoKTtcclxuICAgICAgbGV0IGdycHMgPSBbXSBhcyBBcnJheTxFbnRpdHlHcm91cD47IC8vIG5vbi1lbXB0eSBncm91cHMgZm9yIHRoZXNlIHR5cGVzXHJcbiAgICAgIG5hdlR5cGVzLmZvckVhY2goZnVuY3Rpb24gKHQpIHtcclxuICAgICAgICBsZXQgZ3JwID0gZW50aXR5R3JvdXBNYXBbdC5uYW1lXTtcclxuICAgICAgICBpZiAoZ3JwICYmIGdycC5fZW50aXRpZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgZ3Jwcy5wdXNoKGdycCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgbGV0IGdycENvdW50ID0gZ3Jwcy5sZW5ndGg7XHJcbiAgICAgIGlmIChncnBDb3VudCA9PT0gMCkge1xyXG4gICAgICAgIC8vIG5vIHJlbGF0ZWQgZW50aXRpZXMgaW4gY2FjaGVcclxuICAgICAgICBmbiA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFtdIGFzIEFycmF5PEVudGl0eT47IH07XHJcbiAgICAgIH0gZWxzZSBpZiAoZmtOYW1lKSB7XHJcbiAgICAgICAgZm4gPSBmdW5jdGlvbiAoZW50aXR5OiBFbnRpdHkpIHtcclxuICAgICAgICAgIGxldCB2YWwgPSBudWxsO1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IGtleVZhbHVlID0gZW50aXR5LmdldFByb3BlcnR5KGZrTmFtZSk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JwQ291bnQ7IGkgKz0gMSkge1xyXG4gICAgICAgICAgICAgIHZhbCA9IGdycHNbaV0uX2VudGl0aWVzW2dycHNbaV0uX2luZGV4TWFwW2tleVZhbHVlXV07XHJcbiAgICAgICAgICAgICAgaWYgKHZhbCkgeyBicmVhazsgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGNhdGNoIChlKSB7IHJldGhyb3coZSk7IH1cclxuICAgICAgICAgIHJldHVybiB2YWw7XHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBma05hbWUgPSBuYXYuaW52ZXJzZSA/XHJcbiAgICAgICAgICBuYXYuaW52ZXJzZS5mb3JlaWduS2V5TmFtZXNbMF0gOlxyXG4gICAgICAgICAgbmF2LmludkZvcmVpZ25LZXlOYW1lc1swXTtcclxuICAgICAgICBpZiAoIWZrTmFtZSkgeyB0aHJvdyBuZXcgRXJyb3IoXCJObyBpbnZlcnNlIGtleXNcIik7IH1cclxuICAgICAgICBmbiA9IGZ1bmN0aW9uIChlbnRpdHk6IEVudGl0eSkge1xyXG4gICAgICAgICAgbGV0IHZhbHMgPSBbXSBhcyBBcnJheTxFbnRpdHk+O1xyXG4gICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbGV0IGtleVZhbHVlID0gZW50aXR5LmVudGl0eUFzcGVjdC5nZXRLZXkoKS52YWx1ZXNbMF07XHJcbiAgICAgICAgICAgIGdycHMuZm9yRWFjaChmdW5jdGlvbiAoZ3JwKSB7XHJcbiAgICAgICAgICAgICAgdmFscyA9IHZhbHMuY29uY2F0KGdycC5fZW50aXRpZXMuZmlsdGVyKGZ1bmN0aW9uIChlbikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVuICYmIGVuLmdldFByb3BlcnR5KGZrTmFtZSkgPT09IGtleVZhbHVlO1xyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGNhdGNoIChlKSB7IHJldGhyb3coZSk7IH1cclxuICAgICAgICAgIHJldHVybiB2YWxzO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgKGZuIGFzIGFueSkubmF2VHlwZSA9IG5hdlR5cGU7XHJcbiAgICAgIChmbiBhcyBhbnkpLnBhdGggPSBzZWdtZW50O1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycikgeyByZXRocm93KGVycik7IH1cclxuICAgIHJldHVybiBmbjtcclxuXHJcbiAgICBmdW5jdGlvbiByZXRocm93KGU6IEVycm9yKSB7XHJcbiAgICAgIGxldCB0eXBlTmFtZSA9IGJhc2VUeXBlTmFtZSB8fCBiYXNlVHlwZTtcclxuICAgICAgbGV0IGVycm9yID0gbmV3IEVycm9yKFwiJ2dldEVudGl0eUdyYXBoJyBjYW4ndCBleHBhbmQgJ1wiICsgc2VnbWVudCArIFwiJyBmb3IgXCIgKyB0eXBlTmFtZSk7XHJcbiAgICAgIChlcnJvciBhcyBhbnkpLmlubmVyRXJyb3IgPSBlO1xyXG4gICAgICB0aHJvdyBlcnJvcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcblxyXG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './mixin-save-queuing';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlZXplLWNsaWVudC1taXhpbi1zYXZlLXF1ZXVpbmcuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9icmVlemUtY2xpZW50L21peGluLXNhdmUtcXVldWluZy8iLCJzb3VyY2VzIjpbImJyZWV6ZS1jbGllbnQtbWl4aW4tc2F2ZS1xdWV1aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9taXhpbi1zYXZlLXF1ZXVpbmcnO1xuIl19
|