@po-ui/ng-sync 5.22.0 → 6.0.0

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.
Files changed (86) hide show
  1. package/{esm2015/lib/index.js → esm2020/lib/index.mjs} +0 -0
  2. package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
  3. package/{esm2015/lib/models/po-data-message.model.js → esm2020/lib/models/po-data-message.model.mjs} +0 -0
  4. package/{esm2015/lib/models/po-data-transform.model.js → esm2020/lib/models/po-data-transform.model.mjs} +0 -0
  5. package/esm2020/lib/models/po-entity/po-entity.model.mjs +214 -0
  6. package/{esm2015/lib/models/po-event-sourcing-error-response.model.js → esm2020/lib/models/po-event-sourcing-error-response.model.mjs} +0 -0
  7. package/{esm2015/lib/models/po-network-status.model.js → esm2020/lib/models/po-network-status.model.mjs} +0 -0
  8. package/{esm2015/lib/models/po-network-type.enum.js → esm2020/lib/models/po-network-type.enum.mjs} +0 -0
  9. package/esm2020/lib/models/po-query-builder/po-query-builder.model.mjs +238 -0
  10. package/{esm2015/lib/models/po-request-type.enum.js → esm2020/lib/models/po-request-type.enum.mjs} +0 -0
  11. package/esm2020/lib/po-sync.module.mjs +45 -0
  12. package/{esm2015/lib/services/po-event-sourcing/enums/po-event-sourcing-operation.enum.js → esm2020/lib/services/po-event-sourcing/enums/po-event-sourcing-operation.enum.mjs} +0 -0
  13. package/{esm2015/lib/services/po-event-sourcing/index.js → esm2020/lib/services/po-event-sourcing/index.mjs} +0 -0
  14. package/{esm2015/lib/services/po-event-sourcing/interfaces/po-event-sourcing-item.interface.js → esm2020/lib/services/po-event-sourcing/interfaces/po-event-sourcing-item.interface.mjs} +0 -0
  15. package/{esm2015/lib/services/po-event-sourcing/interfaces/po-event-sourcing-summary-item.interface.js → esm2020/lib/services/po-event-sourcing/interfaces/po-event-sourcing-summary-item.interface.mjs} +0 -0
  16. package/esm2020/lib/services/po-event-sourcing/po-event-sourcing.service.mjs +372 -0
  17. package/{esm2015/lib/services/po-http-client/interfaces/po-http-header-option.interface.js → esm2020/lib/services/po-http-client/interfaces/po-http-header-option.interface.mjs} +0 -0
  18. package/{esm2015/lib/services/po-http-client/interfaces/po-http-request-data.interface.js → esm2020/lib/services/po-http-client/interfaces/po-http-request-data.interface.mjs} +0 -0
  19. package/{esm2015/lib/services/po-http-client/interfaces/po-response-api.interface.js → esm2020/lib/services/po-http-client/interfaces/po-response-api.interface.mjs} +0 -0
  20. package/esm2020/lib/services/po-http-client/po-http-client.service.mjs +148 -0
  21. package/{esm2015/lib/services/po-http-client/po-http-request-type.enum.js → esm2020/lib/services/po-http-client/po-http-request-type.enum.mjs} +0 -0
  22. package/esm2020/lib/services/po-network/po-network.service.mjs +58 -0
  23. package/{esm2015/lib/services/po-schema/index.js → esm2020/lib/services/po-schema/index.mjs} +0 -0
  24. package/esm2020/lib/services/po-schema/po-schema-definition/po-schema-definition.service.mjs +77 -0
  25. package/{esm2015/lib/services/po-schema/po-schema-util/po-schema-util.model.js → esm2020/lib/services/po-schema/po-schema-util/po-schema-util.model.mjs} +0 -0
  26. package/esm2020/lib/services/po-schema/po-schema.service.mjs +174 -0
  27. package/{esm2015/lib/services/po-sync/interfaces/po-sync-config.interface.js → esm2020/lib/services/po-sync/interfaces/po-sync-config.interface.mjs} +0 -0
  28. package/{esm2015/lib/services/po-sync/interfaces/po-sync-field-options.interface.js → esm2020/lib/services/po-sync/interfaces/po-sync-field-options.interface.mjs} +0 -0
  29. package/{esm2015/lib/services/po-sync/interfaces/po-sync-response.interface.js → esm2020/lib/services/po-sync/interfaces/po-sync-response.interface.mjs} +0 -0
  30. package/{esm2015/lib/services/po-sync/interfaces/po-sync-schema.interface.js → esm2020/lib/services/po-sync/interfaces/po-sync-schema.interface.mjs} +0 -0
  31. package/esm2020/lib/services/po-sync/po-sync.service.mjs +325 -0
  32. package/{esm2015/lib/utils/utils.js → esm2020/lib/utils/utils.mjs} +0 -0
  33. package/esm2020/po-ui-ng-sync.mjs +5 -0
  34. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  35. package/fesm2015/{po-ui-ng-sync.js → po-ui-ng-sync.mjs} +217 -201
  36. package/fesm2015/po-ui-ng-sync.mjs.map +1 -0
  37. package/fesm2020/po-ui-ng-sync.mjs +2018 -0
  38. package/fesm2020/po-ui-ng-sync.mjs.map +1 -0
  39. package/lib/po-sync.module.d.ts +5 -0
  40. package/lib/services/po-event-sourcing/po-event-sourcing.service.d.ts +3 -0
  41. package/lib/services/po-http-client/po-http-client.service.d.ts +3 -0
  42. package/lib/services/po-network/po-network.service.d.ts +3 -0
  43. package/lib/services/po-schema/po-schema-definition/po-schema-definition.service.d.ts +3 -0
  44. package/lib/services/po-schema/po-schema.service.d.ts +3 -0
  45. package/lib/services/po-sync/po-sync.service.d.ts +3 -0
  46. package/package.json +25 -13
  47. package/po-ui-ng-sync-6.0.0.tgz +0 -0
  48. package/po-ui-ng-sync.d.ts +1 -4
  49. package/schematics/migrations.json +5 -0
  50. package/schematics/ng-add/index.js +4 -4
  51. package/schematics/ng-add/index.js.map +1 -1
  52. package/schematics/ng-add/index.spec.js +4 -4
  53. package/schematics/ng-add/index.spec.js.map +1 -1
  54. package/schematics/ng-generate/schema/index.js +2 -2
  55. package/schematics/ng-generate/schema/index.js.map +1 -1
  56. package/schematics/ng-generate/schema/index.spec.js +3 -3
  57. package/schematics/ng-generate/schema/index.spec.js.map +1 -1
  58. package/schematics/ng-update/v2/index.js +6 -6
  59. package/schematics/ng-update/v2/index.js.map +1 -1
  60. package/schematics/ng-update/v3/index.js +1 -1
  61. package/schematics/ng-update/v3/index.js.map +1 -1
  62. package/schematics/ng-update/v4/index.js +1 -1
  63. package/schematics/ng-update/v4/index.js.map +1 -1
  64. package/schematics/ng-update/v5/index.js +1 -1
  65. package/schematics/ng-update/v5/index.js.map +1 -1
  66. package/schematics/ng-update/v6/changes.d.ts +2 -0
  67. package/schematics/ng-update/v6/changes.js +14 -0
  68. package/schematics/ng-update/v6/changes.js.map +1 -0
  69. package/schematics/ng-update/v6/index.d.ts +1 -0
  70. package/schematics/ng-update/v6/index.js +16 -0
  71. package/schematics/ng-update/v6/index.js.map +1 -0
  72. package/bundles/po-ui-ng-sync.umd.js +0 -3002
  73. package/bundles/po-ui-ng-sync.umd.js.map +0 -1
  74. package/esm2015/lib/models/po-entity/po-entity.model.js +0 -229
  75. package/esm2015/lib/models/po-query-builder/po-query-builder.model.js +0 -241
  76. package/esm2015/lib/po-sync.module.js +0 -31
  77. package/esm2015/lib/services/po-event-sourcing/po-event-sourcing.service.js +0 -411
  78. package/esm2015/lib/services/po-http-client/po-http-client.service.js +0 -147
  79. package/esm2015/lib/services/po-network/po-network.service.js +0 -58
  80. package/esm2015/lib/services/po-schema/po-schema-definition/po-schema-definition.service.js +0 -80
  81. package/esm2015/lib/services/po-schema/po-schema.service.js +0 -198
  82. package/esm2015/lib/services/po-sync/po-sync.service.js +0 -336
  83. package/esm2015/po-ui-ng-sync.js +0 -9
  84. package/fesm2015/po-ui-ng-sync.js.map +0 -1
  85. package/po-ui-ng-sync-5.22.0.tgz +0 -0
  86. package/po-ui-ng-sync.metadata.json +0 -1
@@ -1,147 +0,0 @@
1
- import { HttpClient, HttpHeaders } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { PoHttpRequestType } from './po-http-request-type.enum';
4
- /**
5
- * @docsPrivate
6
- *
7
- * @description
8
- *
9
- * Serviço para execução de requisições HTTP.
10
- */
11
- export class PoHttpClientService {
12
- constructor(httpClient) {
13
- this.httpClient = httpClient;
14
- }
15
- /**
16
- * Constrói uma requisição HTTP personalizada.
17
- *
18
- * @param {PoHttpRequestData} poHttpOperationData Parâmetros para a construção
19
- * da requisição.
20
- */
21
- createRequest(poHttpOperationData) {
22
- const httpHeaders = this.createHttpHeaders(poHttpOperationData.headers);
23
- return this.httpClient.request(poHttpOperationData.method, poHttpOperationData.url, {
24
- observe: 'response',
25
- headers: httpHeaders,
26
- body: poHttpOperationData.body
27
- });
28
- }
29
- /**
30
- * Constrói uma requisição com o método `delete`.
31
- *
32
- * @param {string} url URL da requisição.
33
- * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
34
- */
35
- delete(url, httpHeaders) {
36
- const requestData = {
37
- url: url,
38
- method: PoHttpRequestType.DELETE,
39
- headers: httpHeaders
40
- };
41
- return this.createRequest(requestData);
42
- }
43
- /**
44
- * Constrói uma requisição com o método `get`.
45
- *
46
- * @param {string} url URL da requisição.
47
- * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
48
- */
49
- get(url, httpHeaders) {
50
- const requestData = {
51
- url: url,
52
- method: PoHttpRequestType.GET,
53
- headers: httpHeaders
54
- };
55
- return this.createRequest(requestData);
56
- }
57
- /**
58
- * Constrói uma requisição com o método `head`.
59
- *
60
- * @param {string} url URL da requisição.
61
- * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
62
- */
63
- head(url, httpHeaders) {
64
- const requestData = {
65
- url: url,
66
- method: PoHttpRequestType.HEAD,
67
- headers: httpHeaders
68
- };
69
- return this.createRequest(requestData);
70
- }
71
- /**
72
- * Constrói uma requisição com o método `options`.
73
- *
74
- * @param {string} url URL da requisição.
75
- * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
76
- */
77
- options(url, httpHeaders) {
78
- const requestData = {
79
- url: url,
80
- method: PoHttpRequestType.OPTIONS,
81
- headers: httpHeaders
82
- };
83
- return this.createRequest(requestData);
84
- }
85
- /**
86
- * Constrói uma requisição com o método `patch`.
87
- *
88
- * @param {string} url URL da requisição.
89
- * @param {any} body Corpo da requisição.
90
- * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
91
- */
92
- patch(url, body, httpHeaders) {
93
- const requestData = {
94
- url: url,
95
- method: PoHttpRequestType.PATCH,
96
- headers: httpHeaders,
97
- body: body
98
- };
99
- return this.createRequest(requestData);
100
- }
101
- /**
102
- * Constrói uma requisição com o método `post`.
103
- *
104
- * @param {string} url URL da requisição.
105
- * @param {any} body Corpo da requisição.
106
- * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
107
- */
108
- post(url, body, httpHeaders) {
109
- const requestData = {
110
- url: url,
111
- method: PoHttpRequestType.POST,
112
- headers: httpHeaders,
113
- body: body
114
- };
115
- return this.createRequest(requestData);
116
- }
117
- /**
118
- * Constrói uma requisição com o método `put`.
119
- *
120
- * @param {string} url URL da requisição.
121
- * @param {any} body Corpo da requisição.
122
- * @param {Array<PoHeaderOption>} httpHeaders Cabeçalhos da requisição.
123
- */
124
- put(url, body, httpHeaders) {
125
- const requestData = {
126
- url: url,
127
- method: PoHttpRequestType.PUT,
128
- headers: httpHeaders,
129
- body: body
130
- };
131
- return this.createRequest(requestData);
132
- }
133
- createHttpHeaders(poHttpOperationHeaders) {
134
- let httpHeaders = new HttpHeaders();
135
- if (poHttpOperationHeaders && poHttpOperationHeaders.length > 0) {
136
- poHttpOperationHeaders.forEach(poHttpHeader => (httpHeaders = httpHeaders.append(poHttpHeader.name, poHttpHeader.value)));
137
- }
138
- return httpHeaders;
139
- }
140
- }
141
- PoHttpClientService.decorators = [
142
- { type: Injectable }
143
- ];
144
- PoHttpClientService.ctorParameters = () => [
145
- { type: HttpClient }
146
- ];
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8taHR0cC1jbGllbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5bmMvc3JjL2xpYi9zZXJ2aWNlcy9wby1odHRwLWNsaWVudC9wby1odHRwLWNsaWVudC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFaEU7Ozs7OztHQU1HO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUFvQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQztJQUU5Qzs7Ozs7T0FLRztJQUNILGFBQWEsQ0FBQyxtQkFBc0M7UUFDbEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhFLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLEdBQUcsRUFBRTtZQUNsRixPQUFPLEVBQUUsVUFBVTtZQUNuQixPQUFPLEVBQUUsV0FBVztZQUNwQixJQUFJLEVBQUUsbUJBQW1CLENBQUMsSUFBSTtTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsR0FBVyxFQUFFLFdBQXVDO1FBQ3pELE1BQU0sV0FBVyxHQUFzQjtZQUNyQyxHQUFHLEVBQUUsR0FBRztZQUNSLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO1lBQ2hDLE9BQU8sRUFBRSxXQUFXO1NBQ3JCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsR0FBRyxDQUFDLEdBQVcsRUFBRSxXQUF1QztRQUN0RCxNQUFNLFdBQVcsR0FBc0I7WUFDckMsR0FBRyxFQUFFLEdBQUc7WUFDUixNQUFNLEVBQUUsaUJBQWlCLENBQUMsR0FBRztZQUM3QixPQUFPLEVBQUUsV0FBVztTQUNyQixDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxHQUFXLEVBQUUsV0FBdUM7UUFDdkQsTUFBTSxXQUFXLEdBQXNCO1lBQ3JDLEdBQUcsRUFBRSxHQUFHO1lBQ1IsTUFBTSxFQUFFLGlCQUFpQixDQUFDLElBQUk7WUFDOUIsT0FBTyxFQUFFLFdBQVc7U0FDckIsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsR0FBVyxFQUFFLFdBQXVDO1FBQzFELE1BQU0sV0FBVyxHQUFzQjtZQUNyQyxHQUFHLEVBQUUsR0FBRztZQUNSLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxPQUFPO1lBQ2pDLE9BQU8sRUFBRSxXQUFXO1NBQ3JCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxHQUFXLEVBQUUsSUFBVSxFQUFFLFdBQXVDO1FBQ3BFLE1BQU0sV0FBVyxHQUFzQjtZQUNyQyxHQUFHLEVBQUUsR0FBRztZQUNSLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxLQUFLO1lBQy9CLE9BQU8sRUFBRSxXQUFXO1lBQ3BCLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLEdBQVcsRUFBRSxJQUFVLEVBQUUsV0FBdUM7UUFDbkUsTUFBTSxXQUFXLEdBQXNCO1lBQ3JDLEdBQUcsRUFBRSxHQUFHO1lBQ1IsTUFBTSxFQUFFLGlCQUFpQixDQUFDLElBQUk7WUFDOUIsT0FBTyxFQUFFLFdBQVc7WUFDcEIsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDO1FBQ0YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxHQUFHLENBQUMsR0FBVyxFQUFFLElBQVUsRUFBRSxXQUF1QztRQUNsRSxNQUFNLFdBQVcsR0FBc0I7WUFDckMsR0FBRyxFQUFFLEdBQUc7WUFDUixNQUFNLEVBQUUsaUJBQWlCLENBQUMsR0FBRztZQUM3QixPQUFPLEVBQUUsV0FBVztZQUNwQixJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLGlCQUFpQixDQUFDLHNCQUFzQjtRQUM5QyxJQUFJLFdBQVcsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBRXBDLElBQUksc0JBQXNCLElBQUksc0JBQXNCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvRCxzQkFBc0IsQ0FBQyxPQUFPLENBQzVCLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUMxRixDQUFDO1NBQ0g7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzs7WUE5SUYsVUFBVTs7O1lBaEJGLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycywgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFBvSHR0cEhlYWRlck9wdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1odHRwLWhlYWRlci1vcHRpb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvSHR0cFJlcXVlc3REYXRhIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWh0dHAtcmVxdWVzdC1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0h0dHBSZXF1ZXN0VHlwZSB9IGZyb20gJy4vcG8taHR0cC1yZXF1ZXN0LXR5cGUuZW51bSc7XG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogU2VydmnDp28gcGFyYSBleGVjdcOnw6NvIGRlIHJlcXVpc2nDp8O1ZXMgSFRUUC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBvSHR0cENsaWVudFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpIHt9XG5cbiAgLyoqXG4gICAqIENvbnN0csOzaSB1bWEgcmVxdWlzacOnw6NvIEhUVFAgcGVyc29uYWxpemFkYS5cbiAgICpcbiAgICogQHBhcmFtIHtQb0h0dHBSZXF1ZXN0RGF0YX0gcG9IdHRwT3BlcmF0aW9uRGF0YSBQYXLDom1ldHJvcyBwYXJhIGEgY29uc3RydcOnw6NvXG4gICAqIGRhIHJlcXVpc2nDp8Ojby5cbiAgICovXG4gIGNyZWF0ZVJlcXVlc3QocG9IdHRwT3BlcmF0aW9uRGF0YTogUG9IdHRwUmVxdWVzdERhdGEpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxPYmplY3Q+PiB7XG4gICAgY29uc3QgaHR0cEhlYWRlcnMgPSB0aGlzLmNyZWF0ZUh0dHBIZWFkZXJzKHBvSHR0cE9wZXJhdGlvbkRhdGEuaGVhZGVycyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3QocG9IdHRwT3BlcmF0aW9uRGF0YS5tZXRob2QsIHBvSHR0cE9wZXJhdGlvbkRhdGEudXJsLCB7XG4gICAgICBvYnNlcnZlOiAncmVzcG9uc2UnLFxuICAgICAgaGVhZGVyczogaHR0cEhlYWRlcnMsXG4gICAgICBib2R5OiBwb0h0dHBPcGVyYXRpb25EYXRhLmJvZHlcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHLDs2kgdW1hIHJlcXVpc2nDp8OjbyBjb20gbyBtw6l0b2RvIGBkZWxldGVgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXG4gICAqIEBwYXJhbSB7QXJyYXk8UG9IZWFkZXJPcHRpb24+fSBodHRwSGVhZGVycyBDYWJlw6dhbGhvcyBkYSByZXF1aXNpw6fDo28uXG4gICAqL1xuICBkZWxldGUodXJsOiBzdHJpbmcsIGh0dHBIZWFkZXJzPzogQXJyYXk8UG9IdHRwSGVhZGVyT3B0aW9uPikge1xuICAgIGNvbnN0IHJlcXVlc3REYXRhOiBQb0h0dHBSZXF1ZXN0RGF0YSA9IHtcbiAgICAgIHVybDogdXJsLFxuICAgICAgbWV0aG9kOiBQb0h0dHBSZXF1ZXN0VHlwZS5ERUxFVEUsXG4gICAgICBoZWFkZXJzOiBodHRwSGVhZGVyc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3Ryw7NpIHVtYSByZXF1aXNpw6fDo28gY29tIG8gbcOpdG9kbyBgZ2V0YC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCBVUkwgZGEgcmVxdWlzacOnw6NvLlxuICAgKiBAcGFyYW0ge0FycmF5PFBvSGVhZGVyT3B0aW9uPn0gaHR0cEhlYWRlcnMgQ2FiZcOnYWxob3MgZGEgcmVxdWlzacOnw6NvLlxuICAgKi9cbiAgZ2V0KHVybDogc3RyaW5nLCBodHRwSGVhZGVycz86IEFycmF5PFBvSHR0cEhlYWRlck9wdGlvbj4pIHtcbiAgICBjb25zdCByZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEgPSB7XG4gICAgICB1cmw6IHVybCxcbiAgICAgIG1ldGhvZDogUG9IdHRwUmVxdWVzdFR5cGUuR0VULFxuICAgICAgaGVhZGVyczogaHR0cEhlYWRlcnNcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlcXVlc3QocmVxdWVzdERhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0csOzaSB1bWEgcmVxdWlzacOnw6NvIGNvbSBvIG3DqXRvZG8gYGhlYWRgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXG4gICAqIEBwYXJhbSB7QXJyYXk8UG9IZWFkZXJPcHRpb24+fSBodHRwSGVhZGVycyBDYWJlw6dhbGhvcyBkYSByZXF1aXNpw6fDo28uXG4gICAqL1xuICBoZWFkKHVybDogc3RyaW5nLCBodHRwSGVhZGVycz86IEFycmF5PFBvSHR0cEhlYWRlck9wdGlvbj4pIHtcbiAgICBjb25zdCByZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEgPSB7XG4gICAgICB1cmw6IHVybCxcbiAgICAgIG1ldGhvZDogUG9IdHRwUmVxdWVzdFR5cGUuSEVBRCxcbiAgICAgIGhlYWRlcnM6IGh0dHBIZWFkZXJzXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXF1ZXN0KHJlcXVlc3REYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHLDs2kgdW1hIHJlcXVpc2nDp8OjbyBjb20gbyBtw6l0b2RvIGBvcHRpb25zYC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVybCBVUkwgZGEgcmVxdWlzacOnw6NvLlxuICAgKiBAcGFyYW0ge0FycmF5PFBvSGVhZGVyT3B0aW9uPn0gaHR0cEhlYWRlcnMgQ2FiZcOnYWxob3MgZGEgcmVxdWlzacOnw6NvLlxuICAgKi9cbiAgb3B0aW9ucyh1cmw6IHN0cmluZywgaHR0cEhlYWRlcnM/OiBBcnJheTxQb0h0dHBIZWFkZXJPcHRpb24+KSB7XG4gICAgY29uc3QgcmVxdWVzdERhdGE6IFBvSHR0cFJlcXVlc3REYXRhID0ge1xuICAgICAgdXJsOiB1cmwsXG4gICAgICBtZXRob2Q6IFBvSHR0cFJlcXVlc3RUeXBlLk9QVElPTlMsXG4gICAgICBoZWFkZXJzOiBodHRwSGVhZGVyc1xuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlUmVxdWVzdChyZXF1ZXN0RGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogQ29uc3Ryw7NpIHVtYSByZXF1aXNpw6fDo28gY29tIG8gbcOpdG9kbyBgcGF0Y2hgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXG4gICAqIEBwYXJhbSB7YW55fSBib2R5IENvcnBvIGRhIHJlcXVpc2nDp8Ojby5cbiAgICogQHBhcmFtIHtBcnJheTxQb0hlYWRlck9wdGlvbj59IGh0dHBIZWFkZXJzIENhYmXDp2FsaG9zIGRhIHJlcXVpc2nDp8Ojby5cbiAgICovXG4gIHBhdGNoKHVybDogc3RyaW5nLCBib2R5PzogYW55LCBodHRwSGVhZGVycz86IEFycmF5PFBvSHR0cEhlYWRlck9wdGlvbj4pIHtcbiAgICBjb25zdCByZXF1ZXN0RGF0YTogUG9IdHRwUmVxdWVzdERhdGEgPSB7XG4gICAgICB1cmw6IHVybCxcbiAgICAgIG1ldGhvZDogUG9IdHRwUmVxdWVzdFR5cGUuUEFUQ0gsXG4gICAgICBoZWFkZXJzOiBodHRwSGVhZGVycyxcbiAgICAgIGJvZHk6IGJvZHlcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZVJlcXVlc3QocmVxdWVzdERhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0csOzaSB1bWEgcmVxdWlzacOnw6NvIGNvbSBvIG3DqXRvZG8gYHBvc3RgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXG4gICAqIEBwYXJhbSB7YW55fSBib2R5IENvcnBvIGRhIHJlcXVpc2nDp8Ojby5cbiAgICogQHBhcmFtIHtBcnJheTxQb0hlYWRlck9wdGlvbj59IGh0dHBIZWFkZXJzIENhYmXDp2FsaG9zIGRhIHJlcXVpc2nDp8Ojby5cbiAgICovXG4gIHBvc3QodXJsOiBzdHJpbmcsIGJvZHk/OiBhbnksIGh0dHBIZWFkZXJzPzogQXJyYXk8UG9IdHRwSGVhZGVyT3B0aW9uPikge1xuICAgIGNvbnN0IHJlcXVlc3REYXRhOiBQb0h0dHBSZXF1ZXN0RGF0YSA9IHtcbiAgICAgIHVybDogdXJsLFxuICAgICAgbWV0aG9kOiBQb0h0dHBSZXF1ZXN0VHlwZS5QT1NULFxuICAgICAgaGVhZGVyczogaHR0cEhlYWRlcnMsXG4gICAgICBib2R5OiBib2R5XG4gICAgfTtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXF1ZXN0KHJlcXVlc3REYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHLDs2kgdW1hIHJlcXVpc2nDp8OjbyBjb20gbyBtw6l0b2RvIGBwdXRgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIFVSTCBkYSByZXF1aXNpw6fDo28uXG4gICAqIEBwYXJhbSB7YW55fSBib2R5IENvcnBvIGRhIHJlcXVpc2nDp8Ojby5cbiAgICogQHBhcmFtIHtBcnJheTxQb0hlYWRlck9wdGlvbj59IGh0dHBIZWFkZXJzIENhYmXDp2FsaG9zIGRhIHJlcXVpc2nDp8Ojby5cbiAgICovXG4gIHB1dCh1cmw6IHN0cmluZywgYm9keT86IGFueSwgaHR0cEhlYWRlcnM/OiBBcnJheTxQb0h0dHBIZWFkZXJPcHRpb24+KSB7XG4gICAgY29uc3QgcmVxdWVzdERhdGE6IFBvSHR0cFJlcXVlc3REYXRhID0ge1xuICAgICAgdXJsOiB1cmwsXG4gICAgICBtZXRob2Q6IFBvSHR0cFJlcXVlc3RUeXBlLlBVVCxcbiAgICAgIGhlYWRlcnM6IGh0dHBIZWFkZXJzLFxuICAgICAgYm9keTogYm9keVxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVSZXF1ZXN0KHJlcXVlc3REYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSHR0cEhlYWRlcnMocG9IdHRwT3BlcmF0aW9uSGVhZGVycykge1xuICAgIGxldCBodHRwSGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuXG4gICAgaWYgKHBvSHR0cE9wZXJhdGlvbkhlYWRlcnMgJiYgcG9IdHRwT3BlcmF0aW9uSGVhZGVycy5sZW5ndGggPiAwKSB7XG4gICAgICBwb0h0dHBPcGVyYXRpb25IZWFkZXJzLmZvckVhY2goXG4gICAgICAgIHBvSHR0cEhlYWRlciA9PiAoaHR0cEhlYWRlcnMgPSBodHRwSGVhZGVycy5hcHBlbmQocG9IdHRwSGVhZGVyLm5hbWUsIHBvSHR0cEhlYWRlci52YWx1ZSkpXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBodHRwSGVhZGVycztcbiAgfVxufVxuIl19
@@ -1,58 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { fromEvent, merge, Observable, Subject } from 'rxjs';
3
- import { mapTo } from 'rxjs/operators';
4
- import { Network } from '@ionic-native/network/ngx';
5
- import { PoNetworkStatus } from './../../models';
6
- /**
7
- * @description
8
- *
9
- * O `PoNetworkService` é utilizado para verificar o status e o tipo da conexão de rede do dispositivo.
10
- */
11
- export class PoNetworkService {
12
- constructor(network) {
13
- this.initNetwork(network);
14
- }
15
- /**
16
- * Retorna as propriedades tipo e status da conexão do dispositivo no momento da chamada.
17
- *
18
- * @returns {PoNetworkStatus} Instância de [PoNetworkStatus](/documentation/po-network-status) com as
19
- * propriedades da conexão.
20
- */
21
- getConnectionStatus() {
22
- this.poNetworkStatus = new PoNetworkStatus(this.networkType);
23
- return this.poNetworkStatus;
24
- }
25
- /**
26
- * Notifica as mudanças no tipo de conexão de rede do dispositivo.
27
- *
28
- * @returns {Observable<{ status: boolean, type: string }>} Observable com as propriedades da conexão.
29
- */
30
- onChange() {
31
- return this.networkTypeNow.asObservable();
32
- }
33
- getNavigatorStatus() {
34
- return merge(fromEvent(window, 'offline').pipe(mapTo(false)), fromEvent(window, 'online').pipe(mapTo(true)), Observable.create(sub => {
35
- sub.next(navigator.onLine);
36
- sub.complete();
37
- }));
38
- }
39
- initNetwork(network) {
40
- this.networkTypeNow = new Subject();
41
- this.initSubscriber(network);
42
- }
43
- initSubscriber(network) {
44
- if (network) {
45
- this.getNavigatorStatus().subscribe(status => {
46
- this.networkType = network.type;
47
- this.networkTypeNow.next({ status: status, type: this.networkType });
48
- });
49
- }
50
- }
51
- }
52
- PoNetworkService.decorators = [
53
- { type: Injectable }
54
- ];
55
- PoNetworkService.ctorParameters = () => [
56
- { type: Network }
57
- ];
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbmV0d29yay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3luYy9zcmMvbGliL3NlcnZpY2VzL3BvLW5ldHdvcmsvcG8tbmV0d29yay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRDs7OztHQUlHO0FBR0gsTUFBTSxPQUFPLGdCQUFnQjtJQUszQixZQUFZLE9BQWdCO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsbUJBQW1CO1FBQ2pCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixPQUFPLEtBQUssQ0FDVixTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDL0MsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQzdDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdEIsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0IsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVyxDQUFDLE9BQWdCO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTyxjQUFjLENBQUMsT0FBZ0I7UUFDckMsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN2RSxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7O1lBckRGLFVBQVU7OztZQVZGLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcFRvIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSAnQGlvbmljLW5hdGl2ZS9uZXR3b3JrL25neCc7XG5cbmltcG9ydCB7IFBvTmV0d29ya1N0YXR1cyB9IGZyb20gJy4vLi4vLi4vbW9kZWxzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGBQb05ldHdvcmtTZXJ2aWNlYCDDqSB1dGlsaXphZG8gcGFyYSB2ZXJpZmljYXIgbyBzdGF0dXMgZSBvIHRpcG8gZGEgY29uZXjDo28gZGUgcmVkZSBkbyBkaXNwb3NpdGl2by5cbiAqL1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUG9OZXR3b3JrU2VydmljZSB7XG4gIHByaXZhdGUgbmV0d29ya1R5cGU6IHN0cmluZztcbiAgcHJpdmF0ZSBuZXR3b3JrVHlwZU5vdzogU3ViamVjdDx7IHN0YXR1czogYm9vbGVhbjsgdHlwZTogc3RyaW5nIH0+O1xuICBwcml2YXRlIHBvTmV0d29ya1N0YXR1czogUG9OZXR3b3JrU3RhdHVzO1xuXG4gIGNvbnN0cnVjdG9yKG5ldHdvcms6IE5ldHdvcmspIHtcbiAgICB0aGlzLmluaXROZXR3b3JrKG5ldHdvcmspO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgYXMgcHJvcHJpZWRhZGVzIHRpcG8gZSBzdGF0dXMgZGEgY29uZXjDo28gZG8gZGlzcG9zaXRpdm8gbm8gbW9tZW50byBkYSBjaGFtYWRhLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UG9OZXR3b3JrU3RhdHVzfSBJbnN0w6JuY2lhIGRlIFtQb05ldHdvcmtTdGF0dXNdKC9kb2N1bWVudGF0aW9uL3BvLW5ldHdvcmstc3RhdHVzKSBjb20gYXNcbiAgICogcHJvcHJpZWRhZGVzIGRhIGNvbmV4w6NvLlxuICAgKi9cbiAgZ2V0Q29ubmVjdGlvblN0YXR1cygpOiBQb05ldHdvcmtTdGF0dXMge1xuICAgIHRoaXMucG9OZXR3b3JrU3RhdHVzID0gbmV3IFBvTmV0d29ya1N0YXR1cyh0aGlzLm5ldHdvcmtUeXBlKTtcbiAgICByZXR1cm4gdGhpcy5wb05ldHdvcmtTdGF0dXM7XG4gIH1cblxuICAvKipcbiAgICogTm90aWZpY2EgYXMgbXVkYW7Dp2FzIG5vIHRpcG8gZGUgY29uZXjDo28gZGUgcmVkZSBkbyBkaXNwb3NpdGl2by5cbiAgICpcbiAgICogQHJldHVybnMge09ic2VydmFibGU8eyBzdGF0dXM6IGJvb2xlYW4sIHR5cGU6IHN0cmluZyB9Pn0gT2JzZXJ2YWJsZSBjb20gYXMgcHJvcHJpZWRhZGVzIGRhIGNvbmV4w6NvLlxuICAgKi9cbiAgb25DaGFuZ2UoKTogT2JzZXJ2YWJsZTx7IHN0YXR1czogYm9vbGVhbjsgdHlwZTogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdGhpcy5uZXR3b3JrVHlwZU5vdy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TmF2aWdhdG9yU3RhdHVzKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG1lcmdlKFxuICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ29mZmxpbmUnKS5waXBlKG1hcFRvKGZhbHNlKSksXG4gICAgICBmcm9tRXZlbnQod2luZG93LCAnb25saW5lJykucGlwZShtYXBUbyh0cnVlKSksXG4gICAgICBPYnNlcnZhYmxlLmNyZWF0ZShzdWIgPT4ge1xuICAgICAgICBzdWIubmV4dChuYXZpZ2F0b3Iub25MaW5lKTtcbiAgICAgICAgc3ViLmNvbXBsZXRlKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGluaXROZXR3b3JrKG5ldHdvcms6IE5ldHdvcmspIHtcbiAgICB0aGlzLm5ldHdvcmtUeXBlTm93ID0gbmV3IFN1YmplY3QoKTtcbiAgICB0aGlzLmluaXRTdWJzY3JpYmVyKG5ldHdvcmspO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U3Vic2NyaWJlcihuZXR3b3JrOiBOZXR3b3JrKSB7XG4gICAgaWYgKG5ldHdvcmspIHtcbiAgICAgIHRoaXMuZ2V0TmF2aWdhdG9yU3RhdHVzKCkuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XG4gICAgICAgIHRoaXMubmV0d29ya1R5cGUgPSBuZXR3b3JrLnR5cGU7XG4gICAgICAgIHRoaXMubmV0d29ya1R5cGVOb3cubmV4dCh7IHN0YXR1czogc3RhdHVzLCB0eXBlOiB0aGlzLm5ldHdvcmtUeXBlIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,80 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { PoStorageService } from '@po-ui/ng-storage';
4
- import { PoSchemaUtil } from './../po-schema-util/po-schema-util.model';
5
- /**
6
- * @docsPrivate
7
- *
8
- * @description
9
- *
10
- * Serviço que disponibiliza métodos que permite operar sobre as definições dos *schemas*.
11
- */
12
- export class PoSchemaDefinitionService {
13
- constructor(poStorage) {
14
- this.poStorage = poStorage;
15
- }
16
- /**
17
- * Destrói a chave do *storage* que contém as definições dos *schemas*.
18
- *
19
- * > Para que não venham ocorrer erros em ações que dependam das definições dos *schemas*,
20
- * recomenda-se utilizar o método `prepare()` em seguida.
21
- *
22
- * @returns {Promise<void>} Promessa que é resolvida quando a chave referente as definições dos *schemas* for destruída.
23
- */
24
- destroy() {
25
- return this.poStorage.remove(PoSchemaUtil.syncSchemasName);
26
- }
27
- /**
28
- * Busca um *schema* a partir do nome informado.
29
- *
30
- * @param {string} schemaName Nome do *schema*.
31
- * @returns {Promise<PoSyncSchema>} Promessa que é resolvida quando o *schema* for retornado.
32
- */
33
- get(schemaName) {
34
- return this.poStorage.getItemByField(PoSchemaUtil.syncSchemasName, 'name', schemaName);
35
- }
36
- /**
37
- * Retorna uma promessa com a lista dos *schemas* definidos.
38
- *
39
- * @returns {Promise<Array<PoSyncSchema>>} Promessa que é resolvida quando a lista dos *schemas* definidos for retornada.
40
- */
41
- getAll() {
42
- return this.poStorage.get(PoSchemaUtil.syncSchemasName);
43
- }
44
- /**
45
- * Salva uma lista de *schemas*.
46
- *
47
- * @param {Array<PoSyncSchema>} schemas Lista de schemas que serão salvos.
48
- * @returns {Promise<Array<PoSyncSchema>>} Promessa que é resolvida quando a lista de *schemas* for salva.
49
- */
50
- saveAll(schemas) {
51
- return this.poStorage.set(PoSchemaUtil.syncSchemasName, schemas);
52
- }
53
- /**
54
- * Atualiza um *schema* a partir do *schema name*.
55
- *
56
- * @param {PoSyncSchema} updatedSchema **Schema* que será atualizado.
57
- */
58
- update(updatedSchema) {
59
- return __awaiter(this, void 0, void 0, function* () {
60
- let schemas = yield this.getAll();
61
- const replaceUpdatedSchema = schema => {
62
- if (schema.name === updatedSchema.name) {
63
- return updatedSchema;
64
- }
65
- else {
66
- return schema;
67
- }
68
- };
69
- schemas = schemas.map(replaceUpdatedSchema);
70
- return this.saveAll(schemas);
71
- });
72
- }
73
- }
74
- PoSchemaDefinitionService.decorators = [
75
- { type: Injectable }
76
- ];
77
- PoSchemaDefinitionService.ctorParameters = () => [
78
- { type: PoStorageService }
79
- ];
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc2NoZW1hLWRlZmluaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N5bmMvc3JjL2xpYi9zZXJ2aWNlcy9wby1zY2hlbWEvcG8tc2NoZW1hLWRlZmluaXRpb24vcG8tc2NoZW1hLWRlZmluaXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHeEU7Ozs7OztHQU1HO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFHLENBQUM7SUFFbkQ7Ozs7Ozs7T0FPRztJQUNILE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxHQUFHLENBQUMsVUFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU07UUFDSixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsT0FBNEI7UUFDbEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7OztPQUlHO0lBQ0csTUFBTSxDQUFDLGFBQTJCOztZQUN0QyxJQUFJLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVsQyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxFQUFFO2dCQUNwQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLElBQUksRUFBRTtvQkFDdEMsT0FBTyxhQUFhLENBQUM7aUJBQ3RCO3FCQUFNO29CQUNMLE9BQU8sTUFBTSxDQUFDO2lCQUNmO1lBQ0gsQ0FBQyxDQUFDO1lBRUYsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0IsQ0FBQztLQUFBOzs7WUEvREYsVUFBVTs7O1lBWkYsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQb1N0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnQHBvLXVpL25nLXN0b3JhZ2UnO1xuXG5pbXBvcnQgeyBQb1NjaGVtYVV0aWwgfSBmcm9tICcuLy4uL3BvLXNjaGVtYS11dGlsL3BvLXNjaGVtYS11dGlsLm1vZGVsJztcbmltcG9ydCB7IFBvU3luY1NjaGVtYSB9IGZyb20gJy4vLi4vLi4vcG8tc3luYy9pbnRlcmZhY2VzL3BvLXN5bmMtc2NoZW1hLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogU2VydmnDp28gcXVlIGRpc3BvbmliaWxpemEgbcOpdG9kb3MgcXVlIHBlcm1pdGUgb3BlcmFyIHNvYnJlIGFzIGRlZmluacOnw7VlcyBkb3MgKnNjaGVtYXMqLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUG9TY2hlbWFEZWZpbml0aW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcG9TdG9yYWdlOiBQb1N0b3JhZ2VTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBEZXN0csOzaSBhIGNoYXZlIGRvICpzdG9yYWdlKiBxdWUgY29udMOpbSBhcyBkZWZpbmnDp8O1ZXMgZG9zICpzY2hlbWFzKi5cbiAgICpcbiAgICogPiBQYXJhIHF1ZSBuw6NvIHZlbmhhbSBvY29ycmVyIGVycm9zIGVtIGHDp8O1ZXMgcXVlIGRlcGVuZGFtIGRhcyBkZWZpbmnDp8O1ZXMgZG9zICpzY2hlbWFzKixcbiAgICogcmVjb21lbmRhLXNlIHV0aWxpemFyIG8gbcOpdG9kbyBgcHJlcGFyZSgpYCBlbSBzZWd1aWRhLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gUHJvbWVzc2EgcXVlIMOpIHJlc29sdmlkYSBxdWFuZG8gYSBjaGF2ZSByZWZlcmVudGUgYXMgZGVmaW5pw6fDtWVzIGRvcyAqc2NoZW1hcyogZm9yIGRlc3RydcOtZGEuXG4gICAqL1xuICBkZXN0cm95KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnBvU3RvcmFnZS5yZW1vdmUoUG9TY2hlbWFVdGlsLnN5bmNTY2hlbWFzTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQnVzY2EgdW0gKnNjaGVtYSogYSBwYXJ0aXIgZG8gbm9tZSBpbmZvcm1hZG8uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY2hlbWFOYW1lIE5vbWUgZG8gKnNjaGVtYSouXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFBvU3luY1NjaGVtYT59IFByb21lc3NhIHF1ZSDDqSByZXNvbHZpZGEgcXVhbmRvIG8gKnNjaGVtYSogZm9yIHJldG9ybmFkby5cbiAgICovXG4gIGdldChzY2hlbWFOYW1lOiBzdHJpbmcpOiBQcm9taXNlPFBvU3luY1NjaGVtYT4ge1xuICAgIHJldHVybiB0aGlzLnBvU3RvcmFnZS5nZXRJdGVtQnlGaWVsZChQb1NjaGVtYVV0aWwuc3luY1NjaGVtYXNOYW1lLCAnbmFtZScsIHNjaGVtYU5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgdW1hIHByb21lc3NhIGNvbSBhIGxpc3RhIGRvcyAqc2NoZW1hcyogZGVmaW5pZG9zLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxBcnJheTxQb1N5bmNTY2hlbWE+Pn0gUHJvbWVzc2EgcXVlIMOpIHJlc29sdmlkYSBxdWFuZG8gYSBsaXN0YSBkb3MgKnNjaGVtYXMqIGRlZmluaWRvcyBmb3IgcmV0b3JuYWRhLlxuICAgKi9cbiAgZ2V0QWxsKCk6IFByb21pc2U8QXJyYXk8UG9TeW5jU2NoZW1hPj4ge1xuICAgIHJldHVybiB0aGlzLnBvU3RvcmFnZS5nZXQoUG9TY2hlbWFVdGlsLnN5bmNTY2hlbWFzTmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogU2FsdmEgdW1hIGxpc3RhIGRlICpzY2hlbWFzKi5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxQb1N5bmNTY2hlbWE+fSBzY2hlbWFzIExpc3RhIGRlIHNjaGVtYXMgcXVlIHNlcsOjbyBzYWx2b3MuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PFBvU3luY1NjaGVtYT4+fSBQcm9tZXNzYSBxdWUgw6kgcmVzb2x2aWRhIHF1YW5kbyBhIGxpc3RhIGRlICpzY2hlbWFzKiBmb3Igc2FsdmEuXG4gICAqL1xuICBzYXZlQWxsKHNjaGVtYXM6IEFycmF5PFBvU3luY1NjaGVtYT4pOiBQcm9taXNlPEFycmF5PFBvU3luY1NjaGVtYT4+IHtcbiAgICByZXR1cm4gdGhpcy5wb1N0b3JhZ2Uuc2V0KFBvU2NoZW1hVXRpbC5zeW5jU2NoZW1hc05hbWUsIHNjaGVtYXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dWFsaXphIHVtICpzY2hlbWEqIGEgcGFydGlyIGRvICpzY2hlbWEgbmFtZSouXG4gICAqXG4gICAqIEBwYXJhbSB7UG9TeW5jU2NoZW1hfSB1cGRhdGVkU2NoZW1hICoqU2NoZW1hKiBxdWUgc2Vyw6EgYXR1YWxpemFkby5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZSh1cGRhdGVkU2NoZW1hOiBQb1N5bmNTY2hlbWEpIHtcbiAgICBsZXQgc2NoZW1hcyA9IGF3YWl0IHRoaXMuZ2V0QWxsKCk7XG5cbiAgICBjb25zdCByZXBsYWNlVXBkYXRlZFNjaGVtYSA9IHNjaGVtYSA9PiB7XG4gICAgICBpZiAoc2NoZW1hLm5hbWUgPT09IHVwZGF0ZWRTY2hlbWEubmFtZSkge1xuICAgICAgICByZXR1cm4gdXBkYXRlZFNjaGVtYTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHNjaGVtYXMgPSBzY2hlbWFzLm1hcChyZXBsYWNlVXBkYXRlZFNjaGVtYSk7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZUFsbChzY2hlbWFzKTtcbiAgfVxufVxuIl19
@@ -1,198 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { PoStorageService } from '@po-ui/ng-storage';
4
- import { PoSchemaDefinitionService } from './po-schema-definition/po-schema-definition.service';
5
- import { PoSchemaUtil } from './po-schema-util/po-schema-util.model';
6
- /**
7
- * @docsPrivate
8
- *
9
- * @description
10
- *
11
- * Serviço que realiza as operações nos `schemas`.
12
- */
13
- export class PoSchemaService {
14
- constructor(poSchemaDefinitionService, poStorage) {
15
- this.poSchemaDefinitionService = poSchemaDefinitionService;
16
- this.poStorage = poStorage;
17
- }
18
- /**
19
- * Retorna o id a partir de uma chave de um *schema*.
20
- *
21
- * @param {string} schemaKey Chave do *schema* em que será realizada a busca do id.
22
- */
23
- static getIdByRecordKey(schemaKey) {
24
- return schemaKey.split(':')[1];
25
- }
26
- /**
27
- * Retorna a chave do *schema* informado.
28
- *
29
- * @param {string} schemaName Nome do *schema*.
30
- * @param {any} recordId Id do registro.
31
- * @param {boolean} isLocalKey Indica se é uma chave local.
32
- */
33
- static getRecordKey(schemaName, recordId, isLocalKey = false) {
34
- return isLocalKey ? `${schemaName}_local:${recordId}` : `${schemaName}:${recordId}`;
35
- }
36
- /**
37
- * Verifica se o dado informado é uma chave de um *schema*.
38
- *
39
- * @param {string} data Dado que será verificado se é uma chave de um *schema*.
40
- * @param {string} schemaName Nome do *schema*.
41
- */
42
- static isSchemaKey(data, schemaName) {
43
- return data ? data.startsWith(`${schemaName}:`) : false;
44
- }
45
- /**
46
- * Cria um novo registro para o *schema* informado.
47
- *
48
- * @param {PoSyncSchema} schema **Schema* em que será criado o registro.
49
- * @param {object} newRecord Registro que será criado.
50
- */
51
- create(schema, newRecord) {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- const id = PoSchemaUtil.getRecordId(newRecord, schema);
54
- return this.save(schema, newRecord, id);
55
- });
56
- }
57
- /**
58
- * Destrói as chaves do *storage* que contém os registros dos *schemas*.
59
- *
60
- * @returns {Promise<void>} Promessa que é resolvida quando as chaves referentes aos *schemas* forem destruídas.
61
- */
62
- destroySchemasRecords() {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- const schemas = yield this.poSchemaDefinitionService.getAll();
65
- const storageKeys = yield this.poStorage.keys();
66
- for (const key of storageKeys) {
67
- const schemaKey = schemas.find(schema => PoSchemaService.isSchemaKey(key, schema.name));
68
- if (schemaKey) {
69
- const id = PoSchemaService.getIdByRecordKey(key);
70
- yield this.remove(schemaKey.name, id);
71
- }
72
- }
73
- });
74
- }
75
- /**
76
- * Retorna o registro referente ao *schema* informado.
77
- *
78
- * @param {string} schemaName Nome do *schema*.
79
- * @param {any} recordId Id do registro.
80
- */
81
- get(schemaName, recordId) {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- const isLocalRecord = true;
84
- const localRecord = yield this.getRecord(schemaName, recordId, isLocalRecord);
85
- const record = yield this.getRecord(schemaName, recordId);
86
- return Object.assign(record, localRecord);
87
- });
88
- }
89
- /**
90
- * Retorna todos os registros referente ao *schema* informado.
91
- *
92
- * @param {string} schemaName Nome do *schema*.
93
- */
94
- getAll(schemaName) {
95
- return __awaiter(this, void 0, void 0, function* () {
96
- const storageKeys = yield this.poStorage.keys();
97
- const schemaRecords = [];
98
- for (const key of storageKeys) {
99
- if (PoSchemaService.isSchemaKey(key, schemaName)) {
100
- const id = PoSchemaService.getIdByRecordKey(key);
101
- schemaRecords.push(yield this.get(schemaName, id));
102
- }
103
- }
104
- return schemaRecords;
105
- });
106
- }
107
- /**
108
- * Aguarda a liberação do recurso limitado, posteriormente o envolve em um comportamento
109
- * de bloqueio e desbloqueio.
110
- *
111
- * @param {Function} limitedResource Função que será envolvida no comportamento de bloqueio e desbloqueio.
112
- */
113
- limitedCallWrap(limitedResource) {
114
- return this.poStorage.limitedCallWrap(limitedResource);
115
- }
116
- /**
117
- * Remove um registro de um *schema* informado.
118
- *
119
- * @param {string} schemaName Nome do *schema*.
120
- * @param {any} recordId Id do registro.
121
- */
122
- remove(schemaName, recordId) {
123
- return __awaiter(this, void 0, void 0, function* () {
124
- const recordKey = PoSchemaService.getRecordKey(schemaName, recordId);
125
- const localRecordKey = PoSchemaService.getRecordKey(schemaName, recordId, true);
126
- yield this.poStorage.remove(recordKey);
127
- yield this.poStorage.remove(localRecordKey);
128
- });
129
- }
130
- /**
131
- * Atualiza um registro de um *schema* informado.
132
- *
133
- * @param {PoSyncSchema} schema **Schema* referente ao registro que será alterado.
134
- * @param {object} record Registro que será atualizado.
135
- * @param {any} recordId Id do registro que deseja ser alterado. Deve ser utilizado em casos em que o id foi alterado.
136
- */
137
- update(schema, record, recordId) {
138
- return __awaiter(this, void 0, void 0, function* () {
139
- const id = PoSchemaUtil.getRecordId(record, schema);
140
- if (recordId) {
141
- record = yield this.updateRecordId(schema.name, record, recordId);
142
- }
143
- return this.save(schema, record, id);
144
- });
145
- }
146
- /**
147
- * Atualiza todos os registros de um *schema*.
148
- *
149
- * @param {PoSyncSchema} schema **Schema* referente aos registros que serão alterados.
150
- * @param {Array<object>} records Lista de registros que serão alterados.
151
- */
152
- updateAll(schema, records) {
153
- return __awaiter(this, void 0, void 0, function* () {
154
- for (const record of records) {
155
- yield this.update(schema, record);
156
- }
157
- });
158
- }
159
- getRecord(schemaName, recordId, isLocalRecord = false) {
160
- return __awaiter(this, void 0, void 0, function* () {
161
- return (yield this.poStorage.get(PoSchemaService.getRecordKey(schemaName, recordId, isLocalRecord))) || {};
162
- });
163
- }
164
- save(schema, record, recordId) {
165
- return __awaiter(this, void 0, void 0, function* () {
166
- const { serverRecord, localRecord } = PoSchemaUtil.separateSchemaFields(schema, record);
167
- const recordKey = PoSchemaService.getRecordKey(schema.name, recordId);
168
- yield this.poStorage.set(recordKey, serverRecord);
169
- yield this.saveLocalFields(schema.name, localRecord, recordId);
170
- return record;
171
- });
172
- }
173
- saveLocalFields(schemaName, localFields, recordId) {
174
- return __awaiter(this, void 0, void 0, function* () {
175
- const containsLocalFields = Object.keys(localFields).length;
176
- if (containsLocalFields) {
177
- const localRecordKey = PoSchemaService.getRecordKey(schemaName, recordId, true);
178
- yield this.poStorage.set(localRecordKey, localFields);
179
- }
180
- });
181
- }
182
- updateRecordId(schemaName, record, recordId) {
183
- return __awaiter(this, void 0, void 0, function* () {
184
- const isLocalRecord = true;
185
- const localRecord = yield this.getRecord(schemaName, recordId, isLocalRecord);
186
- yield this.remove(schemaName, recordId);
187
- return Object.assign(record, localRecord);
188
- });
189
- }
190
- }
191
- PoSchemaService.decorators = [
192
- { type: Injectable }
193
- ];
194
- PoSchemaService.ctorParameters = () => [
195
- { type: PoSchemaDefinitionService },
196
- { type: PoStorageService }
197
- ];
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tc2NoZW1hLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zeW5jL3NyYy9saWIvc2VydmljZXMvcG8tc2NoZW1hL3BvLXNjaGVtYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXJELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUdyRTs7Ozs7O0dBTUc7QUFFSCxNQUFNLE9BQU8sZUFBZTtJQUMxQixZQUFvQix5QkFBb0QsRUFBVSxTQUEyQjtRQUF6Riw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFBRyxDQUFDO0lBRWpIOzs7O09BSUc7SUFDSyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBaUI7UUFDL0MsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQWtCLEVBQUUsUUFBYSxFQUFFLGFBQXNCLEtBQUs7UUFDeEYsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxVQUFVLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUN0RixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQVksRUFBRSxVQUFrQjtRQUN6RCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVB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LENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRXRFLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ2xELE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUUvRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO0tBQUE7SUFFYSxlQUFlLENBQUMsVUFBa0IsRUFBRSxXQUFtQixFQUFFLFFBQVE7O1lBQzdFLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFFNUQsSUFBSSxtQkFBbUIsRUFBRTtnQkFDdkIsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNoRixNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQzthQUN2RDtRQUNILENBQUM7S0FBQTtJQUVhLGNBQWMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVE7O1lBQ3ZELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQztZQUUzQixNQUFNLFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUM5RSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRXhDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDNUMsQ0FBQztLQUFBOzs7WUFwTEYsVUFBVTs7O1lBWEYseUJBQXlCO1lBRnpCLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9TdG9yYWdlU2VydmljZSB9IGZyb20gJ0Bwby11aS9uZy1zdG9yYWdlJztcblxuaW1wb3J0IHsgUG9TY2hlbWFEZWZpbml0aW9uU2VydmljZSB9IGZyb20gJy4vcG8tc2NoZW1hLWRlZmluaXRpb24vcG8tc2NoZW1hLWRlZmluaXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBQb1NjaGVtYVV0aWwgfSBmcm9tICcuL3BvLXNjaGVtYS11dGlsL3BvLXNjaGVtYS11dGlsLm1vZGVsJztcbmltcG9ydCB7IFBvU3luY1NjaGVtYSB9IGZyb20gJy4uL3BvLXN5bmMvaW50ZXJmYWNlcy9wby1zeW5jLXNjaGVtYS5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBkb2NzUHJpdmF0ZVxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIFNlcnZpw6dvIHF1ZSByZWFsaXphIGFzIG9wZXJhw6fDtWVzIG5vcyBgc2NoZW1hc2AuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQb1NjaGVtYVNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBvU2NoZW1hRGVmaW5pdGlvblNlcnZpY2U6IFBvU2NoZW1hRGVmaW5pdGlvblNlcnZpY2UsIHByaXZhdGUgcG9TdG9yYWdlOiBQb1N0b3JhZ2VTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBSZXRvcm5hIG8gaWQgYSBwYXJ0aXIgZGUgdW1hIGNoYXZlIGRlIHVtICpzY2hlbWEqLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NoZW1hS2V5IENoYXZlIGRvICpzY2hlbWEqIGVtIHF1ZSBzZXLDoSByZWFsaXphZGEgYSBidXNjYSBkbyBpZC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGdldElkQnlSZWNvcmRLZXkoc2NoZW1hS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzY2hlbWFLZXkuc3BsaXQoJzonKVsxXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRvcm5hIGEgY2hhdmUgZG8gKnNjaGVtYSogaW5mb3JtYWRvLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NoZW1hTmFtZSBOb21lIGRvICpzY2hlbWEqLlxuICAgKiBAcGFyYW0ge2FueX0gcmVjb3JkSWQgSWQgZG8gcmVnaXN0cm8uXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gaXNMb2NhbEtleSBJbmRpY2Egc2Ugw6kgdW1hIGNoYXZlIGxvY2FsLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0UmVjb3JkS2V5KHNjaGVtYU5hbWU6IHN0cmluZywgcmVjb3JkSWQ6IGFueSwgaXNMb2NhbEtleTogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXNMb2NhbEtleSA/IGAke3NjaGVtYU5hbWV9X2xvY2FsOiR7cmVjb3JkSWR9YCA6IGAke3NjaGVtYU5hbWV9OiR7cmVjb3JkSWR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzZSBvIGRhZG8gaW5mb3JtYWRvIMOpIHVtYSBjaGF2ZSBkZSB1bSAqc2NoZW1hKi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGRhdGEgRGFkbyBxdWUgc2Vyw6EgdmVyaWZpY2FkbyBzZSDDqSB1bWEgY2hhdmUgZGUgdW0gKnNjaGVtYSouXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY2hlbWFOYW1lIE5vbWUgZG8gKnNjaGVtYSouXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBpc1NjaGVtYUtleShkYXRhOiBzdHJpbmcsIHNjaGVtYU5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkYXRhID8gZGF0YS5zdGFydHNXaXRoKGAke3NjaGVtYU5hbWV9OmApIDogZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ3JpYSB1bSBub3ZvIHJlZ2lzdHJvIHBhcmEgbyAqc2NoZW1hKiBpbmZvcm1hZG8uXG4gICAqXG4gICAqIEBwYXJhbSB7UG9TeW5jU2NoZW1hfSBzY2hlbWEgKipTY2hlbWEqIGVtIHF1ZSBzZXLDoSBjcmlhZG8gbyByZWdpc3Ryby5cbiAgICogQHBhcmFtIHtvYmplY3R9IG5ld1JlY29yZCBSZWdpc3RybyBxdWUgc2Vyw6EgY3JpYWRvLlxuICAgKi9cbiAgYXN5bmMgY3JlYXRlKHNjaGVtYTogUG9TeW5jU2NoZW1hLCBuZXdSZWNvcmQ6IG9iamVjdCk6IFByb21pc2U8b2JqZWN0PiB7XG4gICAgY29uc3QgaWQgPSBQb1NjaGVtYVV0aWwuZ2V0UmVjb3JkSWQobmV3UmVjb3JkLCBzY2hlbWEpO1xuICAgIHJldHVybiB0aGlzLnNhdmUoc2NoZW1hLCBuZXdSZWNvcmQsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXN0csOzaSBhcyBjaGF2ZXMgZG8gKnN0b3JhZ2UqIHF1ZSBjb250w6ltIG9zIHJlZ2lzdHJvcyBkb3MgKnNjaGVtYXMqLlxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gUHJvbWVzc2EgcXVlIMOpIHJlc29sdmlkYSBxdWFuZG8gYXMgY2hhdmVzIHJlZmVyZW50ZXMgYW9zICpzY2hlbWFzKiBmb3JlbSBkZXN0cnXDrWRhcy5cbiAgICovXG4gIGFzeW5jIGRlc3Ryb3lTY2hlbWFzUmVjb3JkcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzY2hlbWFzID0gYXdhaXQgdGhpcy5wb1NjaGVtYURlZmluaXRpb25TZXJ2aWNlLmdldEFsbCgpO1xuICAgIGNvbnN0IHN0b3JhZ2VLZXlzID0gYXdhaXQgdGhpcy5wb1N0b3JhZ2Uua2V5cygpO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2Ygc3RvcmFnZUtleXMpIHtcbiAgICAgIGNvbnN0IHNjaGVtYUtleSA9IHNjaGVtYXMuZmluZChzY2hlbWEgPT4gUG9TY2hlbWFTZXJ2aWNlLmlzU2NoZW1hS2V5KGtleSwgc2NoZW1hLm5hbWUpKTtcblxuICAgICAgaWYgKHNjaGVtYUtleSkge1xuICAgICAgICBjb25zdCBpZCA9IFBvU2NoZW1hU2VydmljZS5nZXRJZEJ5UmVjb3JkS2V5KGtleSk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVtb3ZlKHNjaGVtYUtleS5uYW1lLCBpZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldG9ybmEgbyByZWdpc3RybyByZWZlcmVudGUgYW8gKnNjaGVtYSogaW5mb3JtYWRvLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NoZW1hTmFtZSBOb21lIGRvICpzY2hlbWEqLlxuICAgKiBAcGFyYW0ge2FueX0gcmVjb3JkSWQgSWQgZG8gcmVnaXN0cm8uXG4gICAqL1xuICBhc3luYyBnZXQoc2NoZW1hTmFtZTogc3RyaW5nLCByZWNvcmRJZDogYW55KTogUHJvbWlzZTxvYmplY3Q+IHtcbiAgICBjb25zdCBpc0xvY2FsUmVjb3JkID0gdHJ1ZTtcbiAgICBjb25zdCBsb2NhbFJlY29yZCA9IGF3YWl0IHRoaXMuZ2V0UmVjb3JkKHNjaGVtYU5hbWUsIHJlY29yZElkLCBpc0xvY2FsUmVjb3JkKTtcbiAgICBjb25zdCByZWNvcmQgPSBhd2FpdCB0aGlzLmdldFJlY29yZChzY2hlbWFOYW1lLCByZWNvcmRJZCk7XG5cbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihyZWNvcmQsIGxvY2FsUmVjb3JkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRvcm5hIHRvZG9zIG9zIHJlZ2lzdHJvcyByZWZlcmVudGUgYW8gKnNjaGVtYSogaW5mb3JtYWRvLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NoZW1hTmFtZSBOb21lIGRvICpzY2hlbWEqLlxuICAgKi9cbiAgYXN5bmMgZ2V0QWxsKHNjaGVtYU5hbWU6IHN0cmluZyk6IFByb21pc2U8QXJyYXk8b2JqZWN0Pj4ge1xuICAgIGNvbnN0IHN0b3JhZ2VLZXlzID0gYXdhaXQgdGhpcy5wb1N0b3JhZ2Uua2V5cygpO1xuICAgIGNvbnN0IHNjaGVtYVJlY29yZHMgPSBbXTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIHN0b3JhZ2VLZXlzKSB7XG4gICAgICBpZiAoUG9TY2hlbWFTZXJ2aWNlLmlzU2NoZW1hS2V5KGtleSwgc2NoZW1hTmFtZSkpIHtcbiAgICAgICAgY29uc3QgaWQgPSBQb1NjaGVtYVNlcnZpY2UuZ2V0SWRCeVJlY29yZEtleShrZXkpO1xuICAgICAgICBzY2hlbWFSZWNvcmRzLnB1c2goYXdhaXQgdGhpcy5nZXQoc2NoZW1hTmFtZSwgaWQpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gc2NoZW1hUmVjb3JkcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZ3VhcmRhIGEgbGliZXJhw6fDo28gZG8gcmVjdXJzbyBsaW1pdGFkbywgcG9zdGVyaW9ybWVudGUgbyBlbnZvbHZlIGVtIHVtIGNvbXBvcnRhbWVudG9cbiAgICogZGUgYmxvcXVlaW8gZSBkZXNibG9xdWVpby5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gbGltaXRlZFJlc291cmNlIEZ1bsOnw6NvIHF1ZSBzZXLDoSBlbnZvbHZpZGEgbm8gY29tcG9ydGFtZW50byBkZSBibG9xdWVpbyBlIGRlc2Jsb3F1ZWlvLlxuICAgKi9cbiAgbGltaXRlZENhbGxXcmFwKGxpbWl0ZWRSZXNvdXJjZTogRnVuY3Rpb24pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnBvU3RvcmFnZS5saW1pdGVkQ2FsbFdyYXAobGltaXRlZFJlc291cmNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgdW0gcmVnaXN0cm8gZGUgdW0gKnNjaGVtYSogaW5mb3JtYWRvLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NoZW1hTmFtZSBOb21lIGRvICpzY2hlbWEqLlxuICAgKiBAcGFyYW0ge2FueX0gcmVjb3JkSWQgSWQgZG8gcmVnaXN0cm8uXG4gICAqL1xuICBhc3luYyByZW1vdmUoc2NoZW1hTmFtZTogc3RyaW5nLCByZWNvcmRJZDogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCByZWNvcmRLZXkgPSBQb1NjaGVtYVNlcnZpY2UuZ2V0UmVjb3JkS2V5KHNjaGVtYU5hbWUsIHJlY29yZElkKTtcbiAgICBjb25zdCBsb2NhbFJlY29yZEtleSA9IFBvU2NoZW1hU2VydmljZS5nZXRSZWNvcmRLZXkoc2NoZW1hTmFtZSwgcmVjb3JkSWQsIHRydWUpO1xuXG4gICAgYXdhaXQgdGhpcy5wb1N0b3JhZ2UucmVtb3ZlKHJlY29yZEtleSk7XG4gICAgYXdhaXQgdGhpcy5wb1N0b3JhZ2UucmVtb3ZlKGxvY2FsUmVjb3JkS2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHVhbGl6YSB1bSByZWdpc3RybyBkZSB1bSAqc2NoZW1hKiBpbmZvcm1hZG8uXG4gICAqXG4gICAqIEBwYXJhbSB7UG9TeW5jU2NoZW1hfSBzY2hlbWEgKipTY2hlbWEqIHJlZmVyZW50ZSBhbyByZWdpc3RybyBxdWUgc2Vyw6EgYWx0ZXJhZG8uXG4gICAqIEBwYXJhbSB7b2JqZWN0fSByZWNvcmQgUmVnaXN0cm8gcXVlIHNlcsOhIGF0dWFsaXphZG8uXG4gICAqIEBwYXJhbSB7YW55fSByZWNvcmRJZCBJZCBkbyByZWdpc3RybyBxdWUgZGVzZWphIHNlciBhbHRlcmFkby4gRGV2ZSBzZXIgdXRpbGl6YWRvIGVtIGNhc29zIGVtIHF1ZSBvIGlkIGZvaSBhbHRlcmFkby5cbiAgICovXG4gIGFzeW5jIHVwZGF0ZShzY2hlbWE6IFBvU3luY1NjaGVtYSwgcmVjb3JkOiBvYmplY3QsIHJlY29yZElkPzogYW55KTogUHJvbWlzZTxvYmplY3Q+IHtcbiAgICBjb25zdCBpZCA9IFBvU2NoZW1hVXRpbC5nZXRSZWNvcmRJZChyZWNvcmQsIHNjaGVtYSk7XG5cbiAgICBpZiAocmVjb3JkSWQpIHtcbiAgICAgIHJlY29yZCA9IGF3YWl0IHRoaXMudXBkYXRlUmVjb3JkSWQoc2NoZW1hLm5hbWUsIHJlY29yZCwgcmVjb3JkSWQpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnNhdmUoc2NoZW1hLCByZWNvcmQsIGlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHVhbGl6YSB0b2RvcyBvcyByZWdpc3Ryb3MgZGUgdW0gKnNjaGVtYSouXG4gICAqXG4gICAqIEBwYXJhbSB7UG9TeW5jU2NoZW1hfSBzY2hlbWEgKipTY2hlbWEqIHJlZmVyZW50ZSBhb3MgcmVnaXN0cm9zIHF1ZSBzZXLDo28gYWx0ZXJhZG9zLlxuICAgKiBAcGFyYW0ge0FycmF5PG9iamVjdD59IHJlY29yZHMgTGlzdGEgZGUgcmVnaXN0cm9zIHF1ZSBzZXLDo28gYWx0ZXJhZG9zLlxuICAgKi9cbiAgYXN5bmMgdXBkYXRlQWxsKHNjaGVtYTogUG9TeW5jU2NoZW1hLCByZWNvcmRzOiBBcnJheTxvYmplY3Q+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgZm9yIChjb25zdCByZWNvcmQgb2YgcmVjb3Jkcykge1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGUoc2NoZW1hLCByZWNvcmQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0UmVjb3JkKHNjaGVtYU5hbWUsIHJlY29yZElkLCBpc0xvY2FsUmVjb3JkID0gZmFsc2UpOiBQcm9taXNlPG9iamVjdD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5wb1N0b3JhZ2UuZ2V0KFBvU2NoZW1hU2VydmljZS5nZXRSZWNvcmRLZXkoc2NoZW1hTmFtZSwgcmVjb3JkSWQsIGlzTG9jYWxSZWNvcmQpKSkgfHwge307XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHNhdmUoc2NoZW1hOiBQb1N5bmNTY2hlbWEsIHJlY29yZDogb2JqZWN0LCByZWNvcmRJZDogYW55KSB7XG4gICAgY29uc3QgeyBzZXJ2ZXJSZWNvcmQsIGxvY2FsUmVjb3JkIH0gPSBQb1NjaGVtYVV0aWwuc2VwYXJhdGVTY2hlbWFGaWVsZHMoc2NoZW1hLCByZWNvcmQpO1xuICAgIGNvbnN0IHJlY29yZEtleSA9IFBvU2NoZW1hU2VydmljZS5nZXRSZWNvcmRLZXkoc2NoZW1hLm5hbWUsIHJlY29yZElkKTtcblxuICAgIGF3YWl0IHRoaXMucG9TdG9yYWdlLnNldChyZWNvcmRLZXksIHNlcnZlclJlY29yZCk7XG4gICAgYXdhaXQgdGhpcy5zYXZlTG9jYWxGaWVsZHMoc2NoZW1hLm5hbWUsIGxvY2FsUmVjb3JkLCByZWNvcmRJZCk7XG5cbiAgICByZXR1cm4gcmVjb3JkO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzYXZlTG9jYWxGaWVsZHMoc2NoZW1hTmFtZTogc3RyaW5nLCBsb2NhbEZpZWxkczogb2JqZWN0LCByZWNvcmRJZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvbnRhaW5zTG9jYWxGaWVsZHMgPSBPYmplY3Qua2V5cyhsb2NhbEZpZWxkcykubGVuZ3RoO1xuXG4gICAgaWYgKGNvbnRhaW5zTG9jYWxGaWVsZHMpIHtcbiAgICAgIGNvbnN0IGxvY2FsUmVjb3JkS2V5ID0gUG9TY2hlbWFTZXJ2aWNlLmdldFJlY29yZEtleShzY2hlbWFOYW1lLCByZWNvcmRJZCwgdHJ1ZSk7XG4gICAgICBhd2FpdCB0aGlzLnBvU3RvcmFnZS5zZXQobG9jYWxSZWNvcmRLZXksIGxvY2FsRmllbGRzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVJlY29yZElkKHNjaGVtYU5hbWUsIHJlY29yZCwgcmVjb3JkSWQpIHtcbiAgICBjb25zdCBpc0xvY2FsUmVjb3JkID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvY2FsUmVjb3JkID0gYXdhaXQgdGhpcy5nZXRSZWNvcmQoc2NoZW1hTmFtZSwgcmVjb3JkSWQsIGlzTG9jYWxSZWNvcmQpO1xuICAgIGF3YWl0IHRoaXMucmVtb3ZlKHNjaGVtYU5hbWUsIHJlY29yZElkKTtcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHJlY29yZCwgbG9jYWxSZWNvcmQpO1xuICB9XG59XG4iXX0=