breeze-client 2.1.5 → 2.1.6-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/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/adapter-data-service-odata.d.ts +0 -1
- 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/esm2022/adapter-data-service-odata/adapter-data-service-odata.mjs +461 -0
- 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 +294 -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/esm2022/src/entity-action.mjs +45 -0
- 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 +1005 -0
- package/esm2022/src/entity-state.mjs +107 -0
- package/{esm2015/src/enum.js → esm2022/src/enum.mjs} +3 -1
- 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} +70 -67
- 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} +36 -29
- 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} +2122 -1540
- 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 +0 -1
- package/src/config.d.ts +1 -1
- package/src/core.d.ts +1 -1
- package/src/data-type.d.ts +5 -0
- package/src/entity-aspect.d.ts +6 -6
- package/src/entity-manager.d.ts +4 -4
- package/src/entity-metadata.d.ts +45 -33
- package/src/entity-query.d.ts +1 -1
- package/src/entity-state.d.ts +4 -0
- package/src/mapping-context.d.ts +1 -1
- package/src/predicate.d.ts +4 -7
- 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 -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 -14098
- 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/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 -709
- 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 -460
- 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/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/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 -717
- 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 -460
- 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/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/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 -519
- package/fesm5/breeze-client-adapter-data-service-odata.js.map +0 -1
- package/fesm5/breeze-client-adapter-data-service-webapi.js +0 -104
- 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 -13820
- 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
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { EntityKey } from './entity-key';
|
|
2
|
+
import { config } from './config';
|
|
3
|
+
/*
|
|
4
|
+
@class KeyGenerator
|
|
5
|
+
*/
|
|
6
|
+
export class KeyGenerator {
|
|
7
|
+
/** @hidden @internal */
|
|
8
|
+
_tempIdMap;
|
|
9
|
+
constructor() {
|
|
10
|
+
// key is dataProperty.name + || + entityType.name, value is propEntry
|
|
11
|
+
// propEntry = { entityType, propertyName, keyMap }
|
|
12
|
+
// keyMap has key of the actual value ( as a string) and a value of null or the real id.
|
|
13
|
+
this._tempIdMap = {};
|
|
14
|
+
}
|
|
15
|
+
/*
|
|
16
|
+
Returns a unique 'temporary' id for the specified [[EntityType]].
|
|
17
|
+
Uniqueness is defined for this purpose as being unique within each instance of a KeyGenerator. This is sufficient
|
|
18
|
+
because each EntityManager will have its own instance of a KeyGenerator and any entities imported into
|
|
19
|
+
the EntityManager with temporary keys will have them regenerated and remapped on import.
|
|
20
|
+
|
|
21
|
+
The return value of this method must be of the correct type as determined by the keyProperties of the
|
|
22
|
+
specified EntityType
|
|
23
|
+
@example
|
|
24
|
+
// Assume em1 is a preexisting EntityManager
|
|
25
|
+
let custType = em1.metadataStore.getEntityType("Customer");
|
|
26
|
+
let cust1 = custType.createEntity();
|
|
27
|
+
// next line both sets cust1's 'CustomerId' property but also returns the value
|
|
28
|
+
let cid1 = em1.generateTempKeyValue(cust1);
|
|
29
|
+
em1.saveChanges().then( function( data) {
|
|
30
|
+
let sameCust1 = data.results[0];
|
|
31
|
+
// cust1 === sameCust1;
|
|
32
|
+
// but cust1.getProperty("CustomerId") != cid1
|
|
33
|
+
// because the server will have generated a new id
|
|
34
|
+
// and the client will have been updated with this
|
|
35
|
+
// new id.
|
|
36
|
+
});
|
|
37
|
+
@method generateTempKeyValue
|
|
38
|
+
@param entityType {EntityType}
|
|
39
|
+
*/
|
|
40
|
+
generateTempKeyValue(entityType, valueIfAvail) {
|
|
41
|
+
let keyProps = entityType.keyProperties;
|
|
42
|
+
if (keyProps.length > 1) {
|
|
43
|
+
throw new Error("Ids can not be autogenerated for entities with multipart keys");
|
|
44
|
+
}
|
|
45
|
+
let keyProp = keyProps[0];
|
|
46
|
+
let propEntry = this._getPropEntry(keyProp, true);
|
|
47
|
+
let nextId;
|
|
48
|
+
if (valueIfAvail != null) {
|
|
49
|
+
if (!propEntry.keyMap[valueIfAvail.toString()]) {
|
|
50
|
+
nextId = valueIfAvail;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (nextId === undefined) {
|
|
54
|
+
let dataType = keyProp.dataType;
|
|
55
|
+
let getNextFn = dataType.getNext;
|
|
56
|
+
if (getNextFn) {
|
|
57
|
+
nextId = getNextFn(this);
|
|
58
|
+
// need to watch out for collision with previously imported ids that might also get generated.
|
|
59
|
+
while (propEntry.keyMap[nextId.toString()] != null) {
|
|
60
|
+
nextId = getNextFn(this);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
throw new Error("Cannot use a property with a dataType of: " + dataType.toString() + " for id generation");
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
propEntry.keyMap[nextId.toString()] = true;
|
|
68
|
+
return nextId;
|
|
69
|
+
}
|
|
70
|
+
getTempKeys() {
|
|
71
|
+
let results = [];
|
|
72
|
+
//noinspection JSHint
|
|
73
|
+
for (let key in this._tempIdMap) {
|
|
74
|
+
let propEntry = this._tempIdMap[key];
|
|
75
|
+
let entityType = propEntry.entityType;
|
|
76
|
+
// let propName = propEntry.propertyName;
|
|
77
|
+
//noinspection JSHint
|
|
78
|
+
for (let keyValue in propEntry.keyMap) {
|
|
79
|
+
results.push(new EntityKey(entityType, [keyValue]));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return results;
|
|
83
|
+
}
|
|
84
|
+
// proto methods below are not part of the KeyGenerator interface.
|
|
85
|
+
isTempKey(entityKey) {
|
|
86
|
+
let keyProps = entityKey.entityType.keyProperties;
|
|
87
|
+
if (keyProps.length > 1)
|
|
88
|
+
return false;
|
|
89
|
+
let keyProp = keyProps[0];
|
|
90
|
+
let propEntry = this._getPropEntry(keyProp);
|
|
91
|
+
if (!propEntry) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
return (propEntry.keyMap[entityKey.values[0].toString()] !== undefined);
|
|
95
|
+
}
|
|
96
|
+
/** @hidden @internal */
|
|
97
|
+
_getPropEntry(keyProp, createIfMissing = false) {
|
|
98
|
+
let key = keyProp.name + ".." + keyProp.parentType.name;
|
|
99
|
+
let propEntry = this._tempIdMap[key];
|
|
100
|
+
if (!propEntry) {
|
|
101
|
+
if (createIfMissing) {
|
|
102
|
+
propEntry = { entityType: keyProp.parentType, propertyName: keyProp.name, keyMap: {} };
|
|
103
|
+
this._tempIdMap[key] = propEntry;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return propEntry;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
config.registerType(KeyGenerator, "KeyGenerator");
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9rZXktZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQVlsQzs7SUFFSTtBQUNKLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLHdCQUF3QjtJQUNoQixVQUFVLENBQWE7SUFHL0I7UUFDRSxzRUFBc0U7UUFDdEUsbURBQW1EO1FBQ25ELHdGQUF3RjtRQUN4RixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBR0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQXdCRTtJQUNGLG9CQUFvQixDQUFDLFVBQXNCLEVBQUUsWUFBc0I7UUFDakUsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUN4QyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELENBQUMsQ0FBQztTQUNsRjtRQUNELElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxJQUFJLE1BQVcsQ0FBQztRQUNoQixJQUFJLFlBQVksSUFBSSxJQUFJLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUU7Z0JBQzlDLE1BQU0sR0FBRyxZQUFZLENBQUM7YUFDdkI7U0FDRjtRQUVELElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ2hDLElBQUksU0FBUyxHQUFJLFFBQWdCLENBQUMsT0FBTyxDQUFDO1lBQzFDLElBQUksU0FBUyxFQUFFO2dCQUNiLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pCLDhGQUE4RjtnQkFDOUYsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRTtvQkFDbEQsTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDMUI7YUFDRjtpQkFBTTtnQkFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxHQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO2FBQzVHO1NBQ0Y7UUFFRCxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMzQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksT0FBTyxHQUFnQixFQUFFLENBQUM7UUFDOUIscUJBQXFCO1FBQ3JCLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMvQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLElBQUksVUFBVSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUM7WUFDdEMseUNBQXlDO1lBQ3pDLHFCQUFxQjtZQUNyQixLQUFLLElBQUksUUFBUSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JEO1NBQ0Y7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBR0Qsa0VBQWtFO0lBRWxFLFNBQVMsQ0FBQyxTQUFvQjtRQUM1QixJQUFJLFFBQVEsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUNsRCxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3RDLElBQUksT0FBTyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCx3QkFBd0I7SUFDaEIsYUFBYSxDQUFDLE9BQXFCLEVBQUUsZUFBZSxHQUFHLEtBQUs7UUFDbEUsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDeEQsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsSUFBSSxlQUFlLEVBQUU7Z0JBQ25CLFNBQVMsR0FBRyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBd0IsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ3JHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDO2FBQ2xDO1NBQ0Y7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBRUY7QUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eVR5cGUsIERhdGFQcm9wZXJ0eSB9IGZyb20gJy4vZW50aXR5LW1ldGFkYXRhJztcclxuaW1wb3J0IHsgRW50aXR5S2V5IH0gZnJvbSAnLi9lbnRpdHkta2V5JztcclxuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xyXG5cclxuaW50ZXJmYWNlIElQcm9wRW50cnkge1xyXG4gIGVudGl0eVR5cGU6IEVudGl0eVR5cGU7XHJcbiAgcHJvcGVydHlOYW1lOiBzdHJpbmc7XHJcbiAga2V5TWFwOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSVRlbXBJZE1hcCB7XHJcbiAgW2luZGV4OiBzdHJpbmddOiBJUHJvcEVudHJ5O1xyXG59XHJcblxyXG4vKlxyXG4gIEBjbGFzcyBLZXlHZW5lcmF0b3JcclxuICAqL1xyXG5leHBvcnQgY2xhc3MgS2V5R2VuZXJhdG9yIHtcclxuICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuICBwcml2YXRlIF90ZW1wSWRNYXA6IElUZW1wSWRNYXA7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIC8vIGtleSBpcyBkYXRhUHJvcGVydHkubmFtZSArIHx8ICsgZW50aXR5VHlwZS5uYW1lLCB2YWx1ZSBpcyBwcm9wRW50cnlcclxuICAgIC8vIHByb3BFbnRyeSA9IHsgZW50aXR5VHlwZSwgcHJvcGVydHlOYW1lLCBrZXlNYXAgfVxyXG4gICAgLy8ga2V5TWFwIGhhcyBrZXkgb2YgdGhlIGFjdHVhbCB2YWx1ZSAoIGFzIGEgc3RyaW5nKSBhbmQgYSB2YWx1ZSBvZiBudWxsIG9yIHRoZSByZWFsIGlkLlxyXG4gICAgdGhpcy5fdGVtcElkTWFwID0ge307XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICBSZXR1cm5zIGEgdW5pcXVlICd0ZW1wb3JhcnknIGlkIGZvciB0aGUgc3BlY2lmaWVkIFtbRW50aXR5VHlwZV1dLlxyXG4gIFVuaXF1ZW5lc3MgaXMgZGVmaW5lZCBmb3IgdGhpcyBwdXJwb3NlIGFzIGJlaW5nIHVuaXF1ZSB3aXRoaW4gZWFjaCBpbnN0YW5jZSBvZiBhIEtleUdlbmVyYXRvci4gVGhpcyBpcyBzdWZmaWNpZW50XHJcbiAgYmVjYXVzZSBlYWNoIEVudGl0eU1hbmFnZXIgd2lsbCBoYXZlIGl0cyBvd24gaW5zdGFuY2Ugb2YgYSBLZXlHZW5lcmF0b3IgYW5kIGFueSBlbnRpdGllcyBpbXBvcnRlZCBpbnRvXHJcbiAgdGhlIEVudGl0eU1hbmFnZXIgd2l0aCB0ZW1wb3Jhcnkga2V5cyB3aWxsIGhhdmUgdGhlbSByZWdlbmVyYXRlZCBhbmQgcmVtYXBwZWQgb24gaW1wb3J0LlxyXG5cclxuICBUaGUgcmV0dXJuIHZhbHVlIG9mIHRoaXMgbWV0aG9kIG11c3QgYmUgb2YgdGhlIGNvcnJlY3QgdHlwZSBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBrZXlQcm9wZXJ0aWVzIG9mIHRoZVxyXG4gIHNwZWNpZmllZCBFbnRpdHlUeXBlXHJcbiAgQGV4YW1wbGVcclxuICAgICAgLy8gQXNzdW1lIGVtMSBpcyBhIHByZWV4aXN0aW5nIEVudGl0eU1hbmFnZXJcclxuICAgICAgbGV0IGN1c3RUeXBlID0gZW0xLm1ldGFkYXRhU3RvcmUuZ2V0RW50aXR5VHlwZShcIkN1c3RvbWVyXCIpO1xyXG4gICAgICBsZXQgY3VzdDEgPSBjdXN0VHlwZS5jcmVhdGVFbnRpdHkoKTtcclxuICAgICAgLy8gbmV4dCBsaW5lIGJvdGggc2V0cyBjdXN0MSdzICdDdXN0b21lcklkJyBwcm9wZXJ0eSBidXQgYWxzbyByZXR1cm5zIHRoZSB2YWx1ZVxyXG4gICAgICBsZXQgY2lkMSA9IGVtMS5nZW5lcmF0ZVRlbXBLZXlWYWx1ZShjdXN0MSk7XHJcbiAgICAgIGVtMS5zYXZlQ2hhbmdlcygpLnRoZW4oIGZ1bmN0aW9uKCBkYXRhKSB7XHJcbiAgICAgICAgbGV0IHNhbWVDdXN0MSA9IGRhdGEucmVzdWx0c1swXTtcclxuICAgICAgICAvLyBjdXN0MSA9PT0gc2FtZUN1c3QxO1xyXG4gICAgICAgIC8vIGJ1dCBjdXN0MS5nZXRQcm9wZXJ0eShcIkN1c3RvbWVySWRcIikgIT0gY2lkMVxyXG4gICAgICAgIC8vIGJlY2F1c2UgdGhlIHNlcnZlciB3aWxsIGhhdmUgZ2VuZXJhdGVkIGEgbmV3IGlkXHJcbiAgICAgICAgLy8gYW5kIHRoZSBjbGllbnQgd2lsbCBoYXZlIGJlZW4gdXBkYXRlZCB3aXRoIHRoaXNcclxuICAgICAgICAvLyBuZXcgaWQuXHJcbiAgICAgIH0pO1xyXG4gIEBtZXRob2QgZ2VuZXJhdGVUZW1wS2V5VmFsdWVcclxuICBAcGFyYW0gZW50aXR5VHlwZSB7RW50aXR5VHlwZX1cclxuICAqL1xyXG4gIGdlbmVyYXRlVGVtcEtleVZhbHVlKGVudGl0eVR5cGU6IEVudGl0eVR5cGUsIHZhbHVlSWZBdmFpbD86IGJvb2xlYW4pIHtcclxuICAgIGxldCBrZXlQcm9wcyA9IGVudGl0eVR5cGUua2V5UHJvcGVydGllcztcclxuICAgIGlmIChrZXlQcm9wcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIklkcyBjYW4gbm90IGJlIGF1dG9nZW5lcmF0ZWQgZm9yIGVudGl0aWVzIHdpdGggbXVsdGlwYXJ0IGtleXNcIik7XHJcbiAgICB9XHJcbiAgICBsZXQga2V5UHJvcCA9IGtleVByb3BzWzBdO1xyXG4gICAgbGV0IHByb3BFbnRyeSA9IHRoaXMuX2dldFByb3BFbnRyeShrZXlQcm9wLCB0cnVlKTtcclxuICAgIGxldCBuZXh0SWQ6IGFueTtcclxuICAgIGlmICh2YWx1ZUlmQXZhaWwgIT0gbnVsbCkge1xyXG4gICAgICBpZiAoIXByb3BFbnRyeS5rZXlNYXBbdmFsdWVJZkF2YWlsLnRvU3RyaW5nKCldKSB7XHJcbiAgICAgICAgbmV4dElkID0gdmFsdWVJZkF2YWlsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG5leHRJZCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGxldCBkYXRhVHlwZSA9IGtleVByb3AuZGF0YVR5cGU7XHJcbiAgICAgIGxldCBnZXROZXh0Rm4gPSAoZGF0YVR5cGUgYXMgYW55KS5nZXROZXh0O1xyXG4gICAgICBpZiAoZ2V0TmV4dEZuKSB7XHJcbiAgICAgICAgbmV4dElkID0gZ2V0TmV4dEZuKHRoaXMpO1xyXG4gICAgICAgIC8vIG5lZWQgdG8gd2F0Y2ggb3V0IGZvciBjb2xsaXNpb24gd2l0aCBwcmV2aW91c2x5IGltcG9ydGVkIGlkcyB0aGF0IG1pZ2h0IGFsc28gZ2V0IGdlbmVyYXRlZC5cclxuICAgICAgICB3aGlsZSAocHJvcEVudHJ5LmtleU1hcFtuZXh0SWQudG9TdHJpbmcoKV0gIT0gbnVsbCkge1xyXG4gICAgICAgICAgbmV4dElkID0gZ2V0TmV4dEZuKHRoaXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW5ub3QgdXNlIGEgcHJvcGVydHkgd2l0aCBhIGRhdGFUeXBlIG9mOiBcIiArIGRhdGFUeXBlLnRvU3RyaW5nKCkgKyBcIiBmb3IgaWQgZ2VuZXJhdGlvblwiKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3BFbnRyeS5rZXlNYXBbbmV4dElkLnRvU3RyaW5nKCldID0gdHJ1ZTtcclxuICAgIHJldHVybiBuZXh0SWQ7XHJcbiAgfVxyXG5cclxuICBnZXRUZW1wS2V5cygpIHtcclxuICAgIGxldCByZXN1bHRzOiBFbnRpdHlLZXlbXSA9IFtdO1xyXG4gICAgLy9ub2luc3BlY3Rpb24gSlNIaW50XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5fdGVtcElkTWFwKSB7XHJcbiAgICAgIGxldCBwcm9wRW50cnkgPSB0aGlzLl90ZW1wSWRNYXBba2V5XTtcclxuICAgICAgbGV0IGVudGl0eVR5cGUgPSBwcm9wRW50cnkuZW50aXR5VHlwZTtcclxuICAgICAgLy8gbGV0IHByb3BOYW1lID0gcHJvcEVudHJ5LnByb3BlcnR5TmFtZTtcclxuICAgICAgLy9ub2luc3BlY3Rpb24gSlNIaW50XHJcbiAgICAgIGZvciAobGV0IGtleVZhbHVlIGluIHByb3BFbnRyeS5rZXlNYXApIHtcclxuICAgICAgICByZXN1bHRzLnB1c2gobmV3IEVudGl0eUtleShlbnRpdHlUeXBlLCBba2V5VmFsdWVdKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHRzO1xyXG4gIH1cclxuXHJcblxyXG4gIC8vIHByb3RvIG1ldGhvZHMgYmVsb3cgYXJlIG5vdCBwYXJ0IG9mIHRoZSBLZXlHZW5lcmF0b3IgaW50ZXJmYWNlLlxyXG5cclxuICBpc1RlbXBLZXkoZW50aXR5S2V5OiBFbnRpdHlLZXkpIHtcclxuICAgIGxldCBrZXlQcm9wcyA9IGVudGl0eUtleS5lbnRpdHlUeXBlLmtleVByb3BlcnRpZXM7XHJcbiAgICBpZiAoa2V5UHJvcHMubGVuZ3RoID4gMSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgbGV0IGtleVByb3AgPSBrZXlQcm9wc1swXTtcclxuICAgIGxldCBwcm9wRW50cnkgPSB0aGlzLl9nZXRQcm9wRW50cnkoa2V5UHJvcCk7XHJcbiAgICBpZiAoIXByb3BFbnRyeSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKHByb3BFbnRyeS5rZXlNYXBbZW50aXR5S2V5LnZhbHVlc1swXS50b1N0cmluZygpXSAhPT0gdW5kZWZpbmVkKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xyXG4gIHByaXZhdGUgX2dldFByb3BFbnRyeShrZXlQcm9wOiBEYXRhUHJvcGVydHksIGNyZWF0ZUlmTWlzc2luZyA9IGZhbHNlKSB7XHJcbiAgICBsZXQga2V5ID0ga2V5UHJvcC5uYW1lICsgXCIuLlwiICsga2V5UHJvcC5wYXJlbnRUeXBlLm5hbWU7XHJcbiAgICBsZXQgcHJvcEVudHJ5ID0gdGhpcy5fdGVtcElkTWFwW2tleV07XHJcbiAgICBpZiAoIXByb3BFbnRyeSkge1xyXG4gICAgICBpZiAoY3JlYXRlSWZNaXNzaW5nKSB7XHJcbiAgICAgICAgcHJvcEVudHJ5ID0geyBlbnRpdHlUeXBlOiBrZXlQcm9wLnBhcmVudFR5cGUgYXMgRW50aXR5VHlwZSwgcHJvcGVydHlOYW1lOiBrZXlQcm9wLm5hbWUsIGtleU1hcDoge30gfTtcclxuICAgICAgICB0aGlzLl90ZW1wSWRNYXBba2V5XSA9IHByb3BFbnRyeTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHByb3BFbnRyeTtcclxuICB9XHJcblxyXG59XHJcblxyXG5jb25maWcucmVnaXN0ZXJUeXBlKEtleUdlbmVyYXRvciwgXCJLZXlHZW5lcmF0b3JcIik7XHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { core } from './core';
|
|
2
|
+
import { assertConfig } from './assert-param';
|
|
3
|
+
import { config } from './config';
|
|
4
|
+
/**
|
|
5
|
+
A LocalQueryComparisonOptions instance is used to specify the "comparison rules" used when performing "local queries" in order
|
|
6
|
+
to match the semantics of these same queries when executed against a remote service. These options should be set based on the
|
|
7
|
+
manner in which your remote service interprets certain comparison operations.
|
|
8
|
+
|
|
9
|
+
The default LocalQueryComparisonOptions stipulates 'caseInsensitive" queries with ANSI SQL rules regarding comparisons of unequal
|
|
10
|
+
length strings.
|
|
11
|
+
**/
|
|
12
|
+
export class LocalQueryComparisonOptions {
|
|
13
|
+
/** @hidden @internal */
|
|
14
|
+
_$typeName; // on prototype
|
|
15
|
+
/** The name for this instance. */
|
|
16
|
+
name;
|
|
17
|
+
/** Whether predicates that involve strings will be interpreted in a "caseSensitive" manner. (default = false). */
|
|
18
|
+
isCaseSensitive;
|
|
19
|
+
/* Whether or not to enforce the ANSI SQL standard
|
|
20
|
+
of padding strings of unequal lengths before comparison with spaces. Note that per the standard, padding only occurs with equality and
|
|
21
|
+
inequality predicates, and not with operations like 'startsWith', 'endsWith' or 'contains'. Default is true. */
|
|
22
|
+
usesSql92CompliantStringComparison;
|
|
23
|
+
/**
|
|
24
|
+
LocalQueryComparisonOptions constructor
|
|
25
|
+
> // create a 'caseSensitive - non SQL' instance.
|
|
26
|
+
> var lqco = new LocalQueryComparisonOptions({
|
|
27
|
+
> name: "caseSensitive-nonSQL"
|
|
28
|
+
> isCaseSensitive: true;
|
|
29
|
+
> usesSql92CompliantStringComparison: false;
|
|
30
|
+
> });
|
|
31
|
+
> // either apply it globally
|
|
32
|
+
> lqco.setAsDefault();
|
|
33
|
+
> // or to a specific MetadataStore
|
|
34
|
+
> var ms = new MetadataStore({ localQueryComparisonOptions: lqco });
|
|
35
|
+
> var em = new EntityManager( { metadataStore: ms });
|
|
36
|
+
@param config - A configuration object.
|
|
37
|
+
**/
|
|
38
|
+
constructor(lqcoConfig) {
|
|
39
|
+
assertConfig(lqcoConfig || {})
|
|
40
|
+
.whereParam("name").isOptional().isString()
|
|
41
|
+
.whereParam("isCaseSensitive").isOptional().isBoolean()
|
|
42
|
+
.whereParam("usesSql92CompliantStringComparison").isBoolean()
|
|
43
|
+
.applyAll(this);
|
|
44
|
+
if (!this.name) {
|
|
45
|
+
this.name = core.getUuid();
|
|
46
|
+
}
|
|
47
|
+
config._storeObject(this, "LocalQueryComparisonOptions", this.name);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
Case insensitive SQL compliant options - this is also the default unless otherwise changed.
|
|
51
|
+
**/
|
|
52
|
+
static caseInsensitiveSQL = new LocalQueryComparisonOptions({
|
|
53
|
+
name: "caseInsensitiveSQL",
|
|
54
|
+
isCaseSensitive: false,
|
|
55
|
+
usesSql92CompliantStringComparison: true
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
The default value whenever LocalQueryComparisonOptions are not specified. By default this is 'caseInsensitiveSQL'.
|
|
59
|
+
**/
|
|
60
|
+
static defaultInstance = new LocalQueryComparisonOptions(LocalQueryComparisonOptions.caseInsensitiveSQL);
|
|
61
|
+
/**
|
|
62
|
+
Sets the 'defaultInstance' by creating a copy of the current 'defaultInstance' and then applying all of the properties of the current instance.
|
|
63
|
+
The current instance is returned unchanged.
|
|
64
|
+
> var lqco = new LocalQueryComparisonOptions({
|
|
65
|
+
> isCaseSensitive: false;
|
|
66
|
+
> usesSql92CompliantStringComparison: true;
|
|
67
|
+
> });
|
|
68
|
+
> lqco.setAsDefault();
|
|
69
|
+
**/
|
|
70
|
+
setAsDefault() {
|
|
71
|
+
return core.setAsDefault(this, LocalQueryComparisonOptions);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
LocalQueryComparisonOptions.prototype._$typeName = "LocalQueryComparisonOptions";
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtcXVlcnktY29tcGFyaXNvbi1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xvY2FsLXF1ZXJ5LWNvbXBhcmlzb24tb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBZWxDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLHdCQUF3QjtJQUN4QixVQUFVLENBQVMsQ0FBQyxlQUFlO0lBQ25DLGtDQUFrQztJQUNsQyxJQUFJLENBQVM7SUFDYixtSEFBbUg7SUFDbkgsZUFBZSxDQUFVO0lBQ3pCOztvSEFFZ0g7SUFDaEgsa0NBQWtDLENBQVU7SUFFNUM7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSCxZQUFZLFVBQTZDO1FBQ3ZELFlBQVksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO2FBQ3pCLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUU7YUFDMUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxFQUFFO2FBQ3RELFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLFNBQVMsRUFBRTthQUM1RCxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM1QjtRQUNELE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsa0JBQWtCLEdBQUcsSUFBSSwyQkFBMkIsQ0FBQztRQUMxRCxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLGVBQWUsRUFBRSxLQUFLO1FBQ3RCLGtDQUFrQyxFQUFFLElBQUk7S0FDekMsQ0FBQyxDQUFDO0lBRUg7O09BRUc7SUFDSCxNQUFNLENBQUMsZUFBZSxHQUFHLElBQUksMkJBQTJCLENBQUMsMkJBQTJCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUV6Rzs7Ozs7Ozs7T0FRRztJQUNILFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDOUQsQ0FBQzs7QUFHSCwyQkFBMkIsQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29yZSB9IGZyb20gJy4vY29yZSc7XHJcbmltcG9ydCB7IGFzc2VydENvbmZpZyB9IGZyb20gJy4vYXNzZXJ0LXBhcmFtJztcclxuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xyXG5cclxuXHJcbi8qKiBDb25maWd1cmF0aW9uIGluZm8gdG8gYmUgcGFzc2VkIHRvIHRoZSBbW0xvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9uc11dIGNvbnN0cnVjdG9yLiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9uc0NvbmZpZyB7XHJcbiAgLyoqIFRoZSBuYW1lIG9mIHRoaXMgY29sbGVjdGlvbiBvZiBjb25maWd1cmF0aW9uIHNldHRpbmdzLiAqL1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgLyoqIFdoZXRoZXIgcHJlZGljYXRlcyB0aGF0IGludm9sdmUgc3RyaW5ncyB3aWxsIGJlIGludGVycHJldGVkIGluIGEgXCJjYXNlU2Vuc2l0aXZlXCIgbWFubmVyLiBEZWZhdWx0IGlzICdmYWxzZScuICovXHJcbiAgaXNDYXNlU2Vuc2l0aXZlPzogYm9vbGVhbjtcclxuICAvKiBXaGV0aGVyIG9yIG5vdCB0byBlbmZvcmNlIHRoZSBBTlNJIFNRTCBzdGFuZGFyZFxyXG4gIG9mIHBhZGRpbmcgc3RyaW5ncyBvZiB1bmVxdWFsIGxlbmd0aHMgYmVmb3JlIGNvbXBhcmlzb24gd2l0aCBzcGFjZXMuIE5vdGUgdGhhdCBwZXIgdGhlIHN0YW5kYXJkLCBwYWRkaW5nIG9ubHkgb2NjdXJzIHdpdGggZXF1YWxpdHkgYW5kXHJcbiAgaW5lcXVhbGl0eSBwcmVkaWNhdGVzLCBhbmQgbm90IHdpdGggb3BlcmF0aW9ucyBsaWtlICdzdGFydHNXaXRoJywgJ2VuZHNXaXRoJyBvciAnY29udGFpbnMnLiAgRGVmYXVsdCBpcyB0cnVlLiAqL1xyXG4gIHVzZXNTcWw5MkNvbXBsaWFudFN0cmluZ0NvbXBhcmlzb24/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuQSBMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMgaW5zdGFuY2UgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBcImNvbXBhcmlzb24gcnVsZXNcIiB1c2VkIHdoZW4gcGVyZm9ybWluZyBcImxvY2FsIHF1ZXJpZXNcIiBpbiBvcmRlclxyXG50byBtYXRjaCB0aGUgc2VtYW50aWNzIG9mIHRoZXNlIHNhbWUgcXVlcmllcyB3aGVuIGV4ZWN1dGVkIGFnYWluc3QgYSByZW1vdGUgc2VydmljZS4gIFRoZXNlIG9wdGlvbnMgc2hvdWxkIGJlIHNldCBiYXNlZCBvbiB0aGVcclxubWFubmVyIGluIHdoaWNoIHlvdXIgcmVtb3RlIHNlcnZpY2UgaW50ZXJwcmV0cyBjZXJ0YWluIGNvbXBhcmlzb24gb3BlcmF0aW9ucy5cclxuXHJcblRoZSBkZWZhdWx0IExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9ucyBzdGlwdWxhdGVzICdjYXNlSW5zZW5zaXRpdmVcIiBxdWVyaWVzIHdpdGggQU5TSSBTUUwgcnVsZXMgcmVnYXJkaW5nIGNvbXBhcmlzb25zIG9mIHVuZXF1YWxcclxubGVuZ3RoIHN0cmluZ3MuXHJcbioqL1xyXG5leHBvcnQgY2xhc3MgTG9jYWxRdWVyeUNvbXBhcmlzb25PcHRpb25zIHtcclxuICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cclxuICBfJHR5cGVOYW1lOiBzdHJpbmc7IC8vIG9uIHByb3RvdHlwZVxyXG4gIC8qKiBUaGUgbmFtZSBmb3IgdGhpcyBpbnN0YW5jZS4gKi9cclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgLyoqIFdoZXRoZXIgcHJlZGljYXRlcyB0aGF0IGludm9sdmUgc3RyaW5ncyB3aWxsIGJlIGludGVycHJldGVkIGluIGEgXCJjYXNlU2Vuc2l0aXZlXCIgbWFubmVyLiAoZGVmYXVsdCA9IGZhbHNlKS4gICovXHJcbiAgaXNDYXNlU2Vuc2l0aXZlOiBib29sZWFuO1xyXG4gIC8qIFdoZXRoZXIgb3Igbm90IHRvIGVuZm9yY2UgdGhlIEFOU0kgU1FMIHN0YW5kYXJkXHJcbiAgb2YgcGFkZGluZyBzdHJpbmdzIG9mIHVuZXF1YWwgbGVuZ3RocyBiZWZvcmUgY29tcGFyaXNvbiB3aXRoIHNwYWNlcy4gTm90ZSB0aGF0IHBlciB0aGUgc3RhbmRhcmQsIHBhZGRpbmcgb25seSBvY2N1cnMgd2l0aCBlcXVhbGl0eSBhbmRcclxuICBpbmVxdWFsaXR5IHByZWRpY2F0ZXMsIGFuZCBub3Qgd2l0aCBvcGVyYXRpb25zIGxpa2UgJ3N0YXJ0c1dpdGgnLCAnZW5kc1dpdGgnIG9yICdjb250YWlucycuICBEZWZhdWx0IGlzIHRydWUuICovXHJcbiAgdXNlc1NxbDkyQ29tcGxpYW50U3RyaW5nQ29tcGFyaXNvbjogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgTG9jYWxRdWVyeUNvbXBhcmlzb25PcHRpb25zIGNvbnN0cnVjdG9yXHJcbiAgPiAgICAgIC8vIGNyZWF0ZSBhICdjYXNlU2Vuc2l0aXZlIC0gbm9uIFNRTCcgaW5zdGFuY2UuXHJcbiAgPiAgICAgIHZhciBscWNvID0gbmV3IExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9ucyh7XHJcbiAgPiAgICAgICAgICAgICAgbmFtZTogXCJjYXNlU2Vuc2l0aXZlLW5vblNRTFwiXHJcbiAgPiAgICAgICAgICAgICAgaXNDYXNlU2Vuc2l0aXZlOiB0cnVlO1xyXG4gID4gICAgICAgICAgICAgIHVzZXNTcWw5MkNvbXBsaWFudFN0cmluZ0NvbXBhcmlzb246IGZhbHNlO1xyXG4gID4gICAgICAgICAgfSk7XHJcbiAgPiAgICAgIC8vIGVpdGhlciBhcHBseSBpdCBnbG9iYWxseVxyXG4gID4gICAgICBscWNvLnNldEFzRGVmYXVsdCgpO1xyXG4gID4gICAgICAvLyBvciB0byBhIHNwZWNpZmljIE1ldGFkYXRhU3RvcmVcclxuICA+ICAgICAgdmFyIG1zID0gbmV3IE1ldGFkYXRhU3RvcmUoeyBsb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnM6IGxxY28gfSk7XHJcbiAgPiAgICAgIHZhciBlbSA9IG5ldyBFbnRpdHlNYW5hZ2VyKCB7IG1ldGFkYXRhU3RvcmU6IG1zIH0pO1xyXG4gIEBwYXJhbSBjb25maWcgLSBBIGNvbmZpZ3VyYXRpb24gb2JqZWN0LlxyXG4gICoqL1xyXG4gIGNvbnN0cnVjdG9yKGxxY29Db25maWc6IExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9uc0NvbmZpZykge1xyXG4gICAgYXNzZXJ0Q29uZmlnKGxxY29Db25maWcgfHwge30pXHJcbiAgICAgICAgLndoZXJlUGFyYW0oXCJuYW1lXCIpLmlzT3B0aW9uYWwoKS5pc1N0cmluZygpXHJcbiAgICAgICAgLndoZXJlUGFyYW0oXCJpc0Nhc2VTZW5zaXRpdmVcIikuaXNPcHRpb25hbCgpLmlzQm9vbGVhbigpXHJcbiAgICAgICAgLndoZXJlUGFyYW0oXCJ1c2VzU3FsOTJDb21wbGlhbnRTdHJpbmdDb21wYXJpc29uXCIpLmlzQm9vbGVhbigpXHJcbiAgICAgICAgLmFwcGx5QWxsKHRoaXMpO1xyXG4gICAgaWYgKCF0aGlzLm5hbWUpIHtcclxuICAgICAgdGhpcy5uYW1lID0gY29yZS5nZXRVdWlkKCk7XHJcbiAgICB9XHJcbiAgICBjb25maWcuX3N0b3JlT2JqZWN0KHRoaXMsIFwiTG9jYWxRdWVyeUNvbXBhcmlzb25PcHRpb25zXCIsIHRoaXMubmFtZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICBDYXNlIGluc2Vuc2l0aXZlIFNRTCBjb21wbGlhbnQgb3B0aW9ucyAtIHRoaXMgaXMgYWxzbyB0aGUgZGVmYXVsdCB1bmxlc3Mgb3RoZXJ3aXNlIGNoYW5nZWQuXHJcbiAgKiovXHJcbiAgc3RhdGljIGNhc2VJbnNlbnNpdGl2ZVNRTCA9IG5ldyBMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMoe1xyXG4gICAgbmFtZTogXCJjYXNlSW5zZW5zaXRpdmVTUUxcIixcclxuICAgIGlzQ2FzZVNlbnNpdGl2ZTogZmFsc2UsXHJcbiAgICB1c2VzU3FsOTJDb21wbGlhbnRTdHJpbmdDb21wYXJpc29uOiB0cnVlXHJcbiAgfSk7XHJcblxyXG4gIC8qKlxyXG4gIFRoZSBkZWZhdWx0IHZhbHVlIHdoZW5ldmVyIExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9ucyBhcmUgbm90IHNwZWNpZmllZC4gQnkgZGVmYXVsdCB0aGlzIGlzICdjYXNlSW5zZW5zaXRpdmVTUUwnLlxyXG4gICoqL1xyXG4gIHN0YXRpYyBkZWZhdWx0SW5zdGFuY2UgPSBuZXcgTG9jYWxRdWVyeUNvbXBhcmlzb25PcHRpb25zKExvY2FsUXVlcnlDb21wYXJpc29uT3B0aW9ucy5jYXNlSW5zZW5zaXRpdmVTUUwpO1xyXG5cclxuICAvKipcclxuICBTZXRzIHRoZSAnZGVmYXVsdEluc3RhbmNlJyBieSBjcmVhdGluZyBhIGNvcHkgb2YgdGhlIGN1cnJlbnQgJ2RlZmF1bHRJbnN0YW5jZScgYW5kIHRoZW4gYXBwbHlpbmcgYWxsIG9mIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBjdXJyZW50IGluc3RhbmNlLlxyXG4gIFRoZSBjdXJyZW50IGluc3RhbmNlIGlzIHJldHVybmVkIHVuY2hhbmdlZC5cclxuICA+ICAgICB2YXIgbHFjbyA9IG5ldyBMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMoe1xyXG4gID4gICAgICAgIGlzQ2FzZVNlbnNpdGl2ZTogZmFsc2U7XHJcbiAgPiAgICAgICAgdXNlc1NxbDkyQ29tcGxpYW50U3RyaW5nQ29tcGFyaXNvbjogdHJ1ZTtcclxuICA+ICAgICB9KTtcclxuICA+ICAgICBscWNvLnNldEFzRGVmYXVsdCgpO1xyXG4gICoqL1xyXG4gIHNldEFzRGVmYXVsdCgpIHtcclxuICAgIHJldHVybiBjb3JlLnNldEFzRGVmYXVsdCh0aGlzLCBMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbn1cclxuTG9jYWxRdWVyeUNvbXBhcmlzb25PcHRpb25zLnByb3RvdHlwZS5fJHR5cGVOYW1lID0gXCJMb2NhbFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnNcIjtcclxuIl19
|