http-request-manager 19.0.0 → 19.2.5

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 (166) hide show
  1. package/README.md +585 -300
  2. package/fesm2022/http-request-manager.mjs +9434 -3133
  3. package/fesm2022/http-request-manager.mjs.map +1 -1
  4. package/package.json +7 -9
  5. package/types/http-request-manager.d.ts +3546 -0
  6. package/esm2022/http-request-manager.mjs +0 -5
  7. package/esm2022/lib/http-request-manager.module.mjs +0 -186
  8. package/esm2022/lib/http-request-services-demo/database-data-demo/database-data-demo.component.mjs +0 -71
  9. package/esm2022/lib/http-request-services-demo/http-request-services-demo.component.mjs +0 -45
  10. package/esm2022/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.mjs +0 -173
  11. package/esm2022/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.mjs +0 -184
  12. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.mjs +0 -80
  13. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.mjs +0 -42
  14. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.mjs +0 -88
  15. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.mjs +0 -11
  16. package/esm2022/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.mjs +0 -29
  17. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.mjs +0 -9
  18. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.mjs +0 -12
  19. package/esm2022/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.mjs +0 -14
  20. package/esm2022/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.mjs +0 -315
  21. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.mjs +0 -270
  22. package/esm2022/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.mjs +0 -67
  23. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.mjs +0 -9
  24. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.mjs +0 -12
  25. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.mjs +0 -14
  26. package/esm2022/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.mjs +0 -336
  27. package/esm2022/lib/index.mjs +0 -4
  28. package/esm2022/lib/interceptors/credentials.interceptor.mjs +0 -14
  29. package/esm2022/lib/interceptors/index.mjs +0 -5
  30. package/esm2022/lib/interceptors/models/error-settings.model.mjs +0 -10
  31. package/esm2022/lib/interceptors/proxy-debugger.interceptor.mjs +0 -47
  32. package/esm2022/lib/interceptors/request-error.interceptor.mjs +0 -49
  33. package/esm2022/lib/interceptors/request-header.interceptor.mjs +0 -41
  34. package/esm2022/lib/models/config-http-options.model.mjs +0 -18
  35. package/esm2022/lib/models/config-local-storage-options.model.mjs +0 -12
  36. package/esm2022/lib/models/config-options.model.mjs +0 -12
  37. package/esm2022/lib/models/config-token.model.mjs +0 -8
  38. package/esm2022/lib/models/data-type.enum.mjs +0 -7
  39. package/esm2022/lib/models/database-storage.model.mjs +0 -10
  40. package/esm2022/lib/models/index.mjs +0 -7
  41. package/esm2022/lib/models/retry-options.model.mjs +0 -10
  42. package/esm2022/lib/services/database-manager-services/database.manager.service.mjs +0 -119
  43. package/esm2022/lib/services/database-manager-services/db.storage.service.mjs +0 -143
  44. package/esm2022/lib/services/database-manager-services/index.mjs +0 -4
  45. package/esm2022/lib/services/database-manager-services/models/table-schema.mjs +0 -20
  46. package/esm2022/lib/services/index.mjs +0 -6
  47. package/esm2022/lib/services/local-storage-manager-service/index.mjs +0 -4
  48. package/esm2022/lib/services/local-storage-manager-service/local-storage-manager.service.mjs +0 -302
  49. package/esm2022/lib/services/local-storage-manager-service/local-storage-signals-manager.service.mjs +0 -277
  50. package/esm2022/lib/services/local-storage-manager-service/models/global-store-options.model.mjs +0 -13
  51. package/esm2022/lib/services/local-storage-manager-service/models/index.mjs +0 -6
  52. package/esm2022/lib/services/local-storage-manager-service/models/setting-options.model.mjs +0 -17
  53. package/esm2022/lib/services/local-storage-manager-service/models/storage-data.model.mjs +0 -10
  54. package/esm2022/lib/services/local-storage-manager-service/models/storage-option.model.mjs +0 -12
  55. package/esm2022/lib/services/local-storage-manager-service/models/storage-type.enum.mjs +0 -7
  56. package/esm2022/lib/services/request-manager-services/http-manager-signals.service.mjs +0 -199
  57. package/esm2022/lib/services/request-manager-services/http-manager.service.mjs +0 -207
  58. package/esm2022/lib/services/request-manager-services/index.mjs +0 -6
  59. package/esm2022/lib/services/request-manager-services/request-signals.service.mjs +0 -170
  60. package/esm2022/lib/services/request-manager-services/request.service.mjs +0 -191
  61. package/esm2022/lib/services/request-manager-services/rxjs-operators/countdown.mjs +0 -9
  62. package/esm2022/lib/services/request-manager-services/rxjs-operators/delay-retry.mjs +0 -10
  63. package/esm2022/lib/services/request-manager-services/rxjs-operators/index.mjs +0 -5
  64. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-polling.mjs +0 -33
  65. package/esm2022/lib/services/request-manager-services/rxjs-operators/request-streaming.mjs +0 -19
  66. package/esm2022/lib/services/request-manager-state-service/http-manager-state.store.mjs +0 -360
  67. package/esm2022/lib/services/request-manager-state-service/index.mjs +0 -3
  68. package/esm2022/lib/services/request-manager-state-service/models/api-request.model.mjs +0 -21
  69. package/esm2022/lib/services/request-manager-state-service/models/index.mjs +0 -3
  70. package/esm2022/lib/services/request-manager-state-service/models/request-options.model.mjs +0 -10
  71. package/esm2022/lib/services/request-manager-state-service/models/ws-options.model.mjs +0 -12
  72. package/esm2022/lib/services/utils/app.service.mjs +0 -26
  73. package/esm2022/lib/services/utils/encryption/asymmetrical-encryption.service.mjs +0 -186
  74. package/esm2022/lib/services/utils/encryption/encryption-test.service.mjs +0 -35
  75. package/esm2022/lib/services/utils/encryption/index.mjs +0 -4
  76. package/esm2022/lib/services/utils/encryption/random.mjs +0 -52
  77. package/esm2022/lib/services/utils/encryption/symmetrical-encryption.service.mjs +0 -77
  78. package/esm2022/lib/services/utils/headers.service.mjs +0 -21
  79. package/esm2022/lib/services/utils/index.mjs +0 -6
  80. package/esm2022/lib/services/utils/object-merger.service.mjs +0 -70
  81. package/esm2022/lib/services/utils/path-query.service.mjs +0 -54
  82. package/esm2022/lib/services/utils/utils.service.mjs +0 -155
  83. package/esm2022/lib/services/ws-manager-service/models/assortment-data.model.mjs +0 -10
  84. package/esm2022/lib/services/ws-manager-service/websocket.service.mjs +0 -133
  85. package/esm2022/public-api.mjs +0 -11
  86. package/http-request-manager-19.0.0.tgz +0 -0
  87. package/index.d.ts +0 -5
  88. package/lib/http-request-manager.module.d.ts +0 -35
  89. package/lib/http-request-services-demo/database-data-demo/database-data-demo.component.d.ts +0 -19
  90. package/lib/http-request-services-demo/http-request-services-demo.component.d.ts +0 -32
  91. package/lib/http-request-services-demo/local-storage-demo/local-storage-demo.component.d.ts +0 -56
  92. package/lib/http-request-services-demo/local-storage-signals-demo/local-storage-signals-demo.component.d.ts +0 -55
  93. package/lib/http-request-services-demo/request-manager-demo/file-downloader/download-file/download-file.component.d.ts +0 -26
  94. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-download.module.d.ts +0 -13
  95. package/lib/http-request-services-demo/request-manager-demo/file-downloader/file-downloader.component.d.ts +0 -27
  96. package/lib/http-request-services-demo/request-manager-demo/file-downloader/models/download-labels-model.d.ts +0 -12
  97. package/lib/http-request-services-demo/request-manager-demo/file-downloader/spinner/spinner.component.d.ts +0 -16
  98. package/lib/http-request-services-demo/request-manager-demo/models/sample-ai-prompt.d.ts +0 -8
  99. package/lib/http-request-services-demo/request-manager-demo/models/sample-client-info.d.ts +0 -14
  100. package/lib/http-request-services-demo/request-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
  101. package/lib/http-request-services-demo/request-manager-demo/request-manager-demo.component.d.ts +0 -107
  102. package/lib/http-request-services-demo/request-manager-state-demo/request-manager-state-demo.component.d.ts +0 -122
  103. package/lib/http-request-services-demo/request-manager-state-demo/services/state-manager-demo.service.d.ts +0 -15
  104. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-ai-prompt.d.ts +0 -8
  105. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-client-info.d.ts +0 -14
  106. package/lib/http-request-services-demo/request-signals-manager-demo/models/sample-mapper-client-info.d.ts +0 -14
  107. package/lib/http-request-services-demo/request-signals-manager-demo/request-signals-manager-demo.component.d.ts +0 -106
  108. package/lib/index.d.ts +0 -3
  109. package/lib/interceptors/credentials.interceptor.d.ts +0 -8
  110. package/lib/interceptors/index.d.ts +0 -4
  111. package/lib/interceptors/models/error-settings.model.d.ts +0 -10
  112. package/lib/interceptors/proxy-debugger.interceptor.d.ts +0 -12
  113. package/lib/interceptors/request-error.interceptor.d.ts +0 -10
  114. package/lib/interceptors/request-header.interceptor.d.ts +0 -15
  115. package/lib/models/config-http-options.model.d.ts +0 -21
  116. package/lib/models/config-local-storage-options.model.d.ts +0 -13
  117. package/lib/models/config-options.model.d.ts +0 -12
  118. package/lib/models/config-token.model.d.ts +0 -8
  119. package/lib/models/data-type.enum.d.ts +0 -5
  120. package/lib/models/database-storage.model.d.ts +0 -10
  121. package/lib/models/index.d.ts +0 -6
  122. package/lib/models/retry-options.model.d.ts +0 -10
  123. package/lib/services/database-manager-services/database.manager.service.d.ts +0 -31
  124. package/lib/services/database-manager-services/db.storage.service.d.ts +0 -26
  125. package/lib/services/database-manager-services/index.d.ts +0 -3
  126. package/lib/services/database-manager-services/models/table-schema.d.ts +0 -11
  127. package/lib/services/index.d.ts +0 -4
  128. package/lib/services/local-storage-manager-service/index.d.ts +0 -3
  129. package/lib/services/local-storage-manager-service/local-storage-manager.service.d.ts +0 -86
  130. package/lib/services/local-storage-manager-service/local-storage-signals-manager.service.d.ts +0 -64
  131. package/lib/services/local-storage-manager-service/models/global-store-options.model.d.ts +0 -15
  132. package/lib/services/local-storage-manager-service/models/index.d.ts +0 -5
  133. package/lib/services/local-storage-manager-service/models/setting-options.model.d.ts +0 -15
  134. package/lib/services/local-storage-manager-service/models/storage-data.model.d.ts +0 -10
  135. package/lib/services/local-storage-manager-service/models/storage-option.model.d.ts +0 -13
  136. package/lib/services/local-storage-manager-service/models/storage-type.enum.d.ts +0 -5
  137. package/lib/services/request-manager-services/http-manager-signals.service.d.ts +0 -38
  138. package/lib/services/request-manager-services/http-manager.service.d.ts +0 -41
  139. package/lib/services/request-manager-services/index.d.ts +0 -4
  140. package/lib/services/request-manager-services/request-signals.service.d.ts +0 -26
  141. package/lib/services/request-manager-services/request.service.d.ts +0 -28
  142. package/lib/services/request-manager-services/rxjs-operators/countdown.d.ts +0 -2
  143. package/lib/services/request-manager-services/rxjs-operators/delay-retry.d.ts +0 -2
  144. package/lib/services/request-manager-services/rxjs-operators/index.d.ts +0 -4
  145. package/lib/services/request-manager-services/rxjs-operators/request-polling.d.ts +0 -2
  146. package/lib/services/request-manager-services/rxjs-operators/request-streaming.d.ts +0 -2
  147. package/lib/services/request-manager-state-service/http-manager-state.store.d.ts +0 -64
  148. package/lib/services/request-manager-state-service/index.d.ts +0 -2
  149. package/lib/services/request-manager-state-service/models/api-request.model.d.ts +0 -30
  150. package/lib/services/request-manager-state-service/models/index.d.ts +0 -2
  151. package/lib/services/request-manager-state-service/models/request-options.model.d.ts +0 -10
  152. package/lib/services/request-manager-state-service/models/ws-options.model.d.ts +0 -14
  153. package/lib/services/utils/app.service.d.ts +0 -8
  154. package/lib/services/utils/encryption/asymmetrical-encryption.service.d.ts +0 -17
  155. package/lib/services/utils/encryption/encryption-test.service.d.ts +0 -10
  156. package/lib/services/utils/encryption/index.d.ts +0 -3
  157. package/lib/services/utils/encryption/random.d.ts +0 -7
  158. package/lib/services/utils/encryption/symmetrical-encryption.service.d.ts +0 -14
  159. package/lib/services/utils/headers.service.d.ts +0 -10
  160. package/lib/services/utils/index.d.ts +0 -5
  161. package/lib/services/utils/object-merger.service.d.ts +0 -14
  162. package/lib/services/utils/path-query.service.d.ts +0 -11
  163. package/lib/services/utils/utils.service.d.ts +0 -24
  164. package/lib/services/ws-manager-service/models/assortment-data.model.d.ts +0 -10
  165. package/lib/services/ws-manager-service/websocket.service.d.ts +0 -21
  166. package/public-api.d.ts +0 -7
@@ -1,186 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { BehaviorSubject, EMPTY, from } from 'rxjs';
3
- import { map, catchError } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- export class AsymmetricalEncryptionService {
6
- constructor() { }
7
- generateKeyPair(modulusLength = 2048) {
8
- // modulusLength - 1024, 2048, 4096
9
- // hash - SHA-256
10
- return from(crypto.subtle.generateKey({
11
- name: "RSA-OAEP",
12
- modulusLength,
13
- publicExponent: new Uint8Array([1, 0, 1]), // 65537
14
- hash: { name: "SHA-256" }
15
- }, true, // Extractable keys
16
- ["encrypt", "decrypt"]));
17
- }
18
- encryptData(publicKey, data) {
19
- const encodedData = new TextEncoder().encode(data);
20
- return from(crypto.subtle.encrypt({
21
- name: "RSA-OAEP"
22
- }, publicKey, encodedData)).pipe(map(enc => this.arrayBufferToBase64(enc)));
23
- }
24
- decryptData(privateKey, encryptedData) {
25
- const encStr = this.base64ToArrayBuffer(encryptedData);
26
- return from(crypto.subtle.decrypt({
27
- name: "RSA-OAEP"
28
- }, privateKey, encStr).then(decryptedData => {
29
- return new TextDecoder().decode(decryptedData);
30
- }));
31
- }
32
- pemToArrayBuffer(pem) {
33
- const b64 = pem.replace(/(-----BEGIN (RSA )?(PRIVATE|PUBLIC) KEY-----|-----END (RSA )?(PRIVATE|PUBLIC) KEY-----|\n)/g, '');
34
- const binaryString = atob(b64);
35
- const len = binaryString.length;
36
- const buffer = new ArrayBuffer(len);
37
- const view = new Uint8Array(buffer);
38
- for (let i = 0; i < len; i++) {
39
- view[i] = binaryString.charCodeAt(i);
40
- }
41
- return buffer;
42
- }
43
- base64ToArrayBuffer(base64) {
44
- const binaryString = atob(base64);
45
- const len = binaryString.length;
46
- const buffer = new ArrayBuffer(len);
47
- const view = new Uint8Array(buffer);
48
- for (let i = 0; i < len; i++) {
49
- view[i] = binaryString.charCodeAt(i);
50
- }
51
- return buffer;
52
- }
53
- arrayBufferToBase64(buffer) {
54
- let binary = '';
55
- const bytes = new Uint8Array(buffer);
56
- const len = bytes.byteLength;
57
- for (let i = 0; i < len; i++) {
58
- binary += String.fromCharCode(bytes[i]);
59
- }
60
- return window.btoa(binary);
61
- }
62
- base64ToPEM(base64Key, publicKey = true) {
63
- const keyType = (publicKey) ? 'PUBLIC' : 'PRIVATE';
64
- const header = `-----BEGIN ${keyType} KEY-----\n`;
65
- const footer = `\n-----END ${keyType} KEY-----`;
66
- const keyBody = base64Key.match(/.{1,64}/g)?.join("\n") || "";
67
- return header + keyBody + footer;
68
- }
69
- pemToCryptoKey(pem, algorithm, extractable, keyUsages, format = "pkcs8" //"raw" | "pkcs8" | "spki"
70
- ) {
71
- const buffer = this.pemToArrayBuffer(pem);
72
- console.log('buffer found ', buffer);
73
- return from(crypto.subtle.importKey(format, buffer, algorithm, extractable, keyUsages));
74
- }
75
- // TESTING
76
- testGenerateKeys() {
77
- const testSequence = new BehaviorSubject("");
78
- const testSequence$ = testSequence.asObservable();
79
- testSequence.next("Test Generating Keys");
80
- // GENERATE KEYS
81
- this.generateKeyPair().subscribe((data) => {
82
- console.log("GEN-GENERATED KEYS: ", data);
83
- crypto.subtle.exportKey('spki', data.publicKey)
84
- .then(key => {
85
- const publicKeyBase64 = this.arrayBufferToBase64(key);
86
- console.log("GEN-EXPORT PUBLIC KEY: ", this.base64ToPEM(publicKeyBase64, true));
87
- });
88
- crypto.subtle.exportKey('pkcs8', data.privateKey)
89
- .then(key => {
90
- const privateKeyBase64 = this.arrayBufferToBase64(key);
91
- console.log("GEN-EXPORT PRIVATE KEY: ", this.base64ToPEM(privateKeyBase64, false));
92
- });
93
- // TEST WITH GENERATED KEYS
94
- this.encryptData(data.publicKey, "Sample Data here - Mike Bonifacio")
95
- .subscribe((enc) => {
96
- console.log("GEN-ENCRYPT==>: ", enc);
97
- this.decryptData(data.privateKey, enc).subscribe((dec) => {
98
- testSequence.next('Test Passed');
99
- testSequence.complete();
100
- });
101
- });
102
- });
103
- return testSequence$;
104
- }
105
- testDecryptionWithKeys() {
106
- const testSequence = new BehaviorSubject("");
107
- const testSequence$ = testSequence.asObservable();
108
- testSequence.next("Test Generating Keys");
109
- const privateKey = `-----BEGIN PRIVATE KEY-----
110
- MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDKVBkCWNb9eHVF
111
- twAA5mdAyvXFix3WavdrsoYRkvtCl8ogDBQf8f6N0bRkDF1zcVHRrNAEyozXDtuD
112
- kFgSiivBFREI7fiS3sOvduq6FaGXzX0IY6oaVMu8oOPgDvC0yvoohR+0Qxq2d6lP
113
- SPyHeKQaxP4KxzCJJzB1XAcbd2eFzUUDv25mNlwdVkmW8FI/sAxnJLgPTW78dzfX
114
- Ddfk+nxdIqxVKSLATnL0kMN7aGJx24UozioAIpzvvvF5/+7HTd1gi6NeCqrAYr3g
115
- iP364AE26CFwFvHnafO9uNQhlQ+uiNnOoInXByfFGVP+RidSpfLzaxDjs6RDwpol
116
- h098btONAgMBAAECggEAAVhHM2OD5IkUtuowwcKNaCTKGmrClRE3gMuzJeBsSJEy
117
- uAReUFILZylcnhegDytSti2vDA9T7xqtO6CU0p3V8LpU89JMOPRb/deirI4UXSpx
118
- xbNyjirOO6bnrNlOWfKexdQQsikYPzF2iM1Scpr1u9ZDCHZOl1ZYSrkve5My4coP
119
- 3Gx6tTBqL0jQBfcpf4ES8BH3JSawR/MgqzDS74+bI2VH+kvuPAC1L4fBgaV3VUv0
120
- nFzim5A3s5VaXPgJbEIghP9BkYGFkeT9ma3nliEZWc96AzsmowFn1ayCvrNVPo9R
121
- ECD2NnttBiCJZt3H93sR9+OTeA8Bls+aZGlKd5mLAQKBgQDpf8nIYUm/Zmls7/lQ
122
- QBUSGHEYrbjNsEejQsPgNDtg2EVSxdUkvTn7Wb+HExTk09Z5bNvhaO2532/FH9y8
123
- ahSXafiMXpfR2olwXdOB9yXXl4F5C0LGnmzGim4OSeWzAX0JCL470KaS0QN3EmoG
124
- 9F0YCfMnZXNTweSSx4xvlO6ggQKBgQDd01uIolm7z1DIWCwNERAXP2GDwcvxyzYK
125
- YqJfKDeHt2t6yIzZMMotnPDy+OlcdGspIIHkB5a+SZN5Nt7DUKg/MnyOZ3KbVq41
126
- k7dR4Ka3LRnGkesy7lSr7ef1rfquyR75OXJQcPWvkFcLu0TMiQhvptatZ8VN+F4n
127
- fDQELRotDQKBgQCgN+AUT7VT0QjcCBnRV/ddUEoiPenFsYSmYMSYzh5ESIHg1wB2
128
- 0iS79Iw4Of6nOTg8X1bM57vfQ5Kk90T2P+/bKYqzfqC8DTErWiYsUpKzyTC9Bt4N
129
- /Vz0Kr5zrX8ggg/yp/4oevYhXav8AzWfigNq4EDpMnKc8TlPAf+5/L50gQKBgQC2
130
- mLPhPhr1gUszD3l7bA89w7uGlLFHoQoj9FtKTzWervp3QLzIT+QtNeIVb5XQuDg5
131
- y3uAdEq+6pvNjMBEMJG+K9Xh9v+dJPYUPjsJ2A4D/MkZ7qWX8B2cxSJK1uLim8W2
132
- S3ZxBvsGgJ9WldmlMCvUlJZkeWYtr4P5psC+q02/xQKBgQCDII/jcV2+lRM2iNTe
133
- vBijZSaNMEWOK/Y+/HFK8GYKXnB+xNWhrm8rKgWGzpDJAUPMh9Tt+leW9LKEBuzF
134
- Y1bGblmGm1zsPWpIx05Fdtv9eOJmFnXbGzIsYyhadZnPcQOWhqxtpVxSuul0Jc7Q
135
- XNq4qPaPXhbQAshgtyBt75DMkw==
136
- -----END PRIVATE KEY-----`;
137
- const pubKey = `-----BEGIN PUBLIC KEY-----
138
- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAylQZAljW/Xh1RbcAAOZn
139
- QMr1xYsd1mr3a7KGEZL7QpfKIAwUH/H+jdG0ZAxdc3FR0azQBMqM1w7bg5BYEoor
140
- wRURCO34kt7Dr3bquhWhl819CGOqGlTLvKDj4A7wtMr6KIUftEMatnepT0j8h3ik
141
- GsT+CscwiScwdVwHG3dnhc1FA79uZjZcHVZJlvBSP7AMZyS4D01u/Hc31w3X5Pp8
142
- XSKsVSkiwE5y9JDDe2hicduFKM4qACKc777xef/ux03dYIujXgqqwGK94Ij9+uAB
143
- NughcBbx52nzvbjUIZUProjZzqCJ1wcnxRlT/kYnUqXy82sQ47OkQ8KaJYdPfG7T
144
- jQIDAQAB
145
- -----END PUBLIC KEY-----`;
146
- const algorithm = {
147
- name: "RSA-OAEP",
148
- modulusLength: 2048,
149
- publicExponent: new Uint8Array([1, 0, 1]),
150
- hash: "SHA-256"
151
- };
152
- // ENCRYPT
153
- this.pemToCryptoKey(pubKey, algorithm, true, ["encrypt"], "spki").subscribe((keyPublic) => {
154
- // console.log("PUBLIC KEY: ", keyPublic)
155
- this.encryptData(keyPublic, "Sample Data here - Mike Bonifacio")
156
- .subscribe((str) => {
157
- console.log("ENCRYPTED STRING: ", str);
158
- testSequence.next('encrypted string success');
159
- });
160
- });
161
- const enc = "r7UOuEGBZ6jbVTOIBuv9jFOEtRiedmS27hfW40k7XKCTsQ5VhWup0qu2BA2ANZaGKii/uehJ/RSPiyfGbJ6leJrat0mA1hPqH/XodaBzLMDigvdYM1NSXFZMDa40OpLUIXbPlAvybjcGu7Bal+LMA8htHrFu/OmM/fHI66xOzzpuXSYx0OkWjtY81rUQ1FFkvrkx2jGFPZ0p+Nw/v3Q4cJnet6V63vCueFlD749VMcVXo7pvz4AIPpB+IOy3kbxaYTPakLVioJERU6GFMXWkECuRvohhS9CETcORZtRVRkvhcHk3lxgIhfqojUKYgD6K5dDELDPsWIS+iTG1XIQIlg==";
162
- // DECRYPTION
163
- this.pemToCryptoKey(privateKey, algorithm, false, ["decrypt"], "pkcs8").subscribe((key) => {
164
- // console.log("DECRYPT ===", key)
165
- this.decryptData(key, enc)
166
- .pipe(catchError(err => {
167
- console.log("ERROR: ", err);
168
- return EMPTY;
169
- })).subscribe((str) => {
170
- console.log("DECRYPTED STRING: ", str);
171
- testSequence.next('decrypted string success');
172
- });
173
- });
174
- return testSequence$;
175
- }
176
- ;
177
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AsymmetricalEncryptionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
178
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AsymmetricalEncryptionService, providedIn: 'root' }); }
179
- }
180
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AsymmetricalEncryptionService, decorators: [{
181
- type: Injectable,
182
- args: [{
183
- providedIn: 'root'
184
- }]
185
- }], ctorParameters: () => [] });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bW1ldHJpY2FsLWVuY3J5cHRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2h0dHAtcmVxdWVzdC1tYW5hZ2VyL3NyYy9saWIvc2VydmljZXMvdXRpbHMvZW5jcnlwdGlvbi9hc3ltbWV0cmljYWwtZW5jcnlwdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQWMsSUFBSSxFQUFNLE1BQU0sTUFBTSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBS2pELE1BQU0sT0FBTyw2QkFBNkI7SUFFeEMsZ0JBQWUsQ0FBQztJQUVoQixlQUFlLENBQUMsYUFBYSxHQUFHLElBQUk7UUFFbEMsbUNBQW1DO1FBQ25DLGlCQUFpQjtRQUVsQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FDbEM7WUFDRSxJQUFJLEVBQUUsVUFBVTtZQUNoQixhQUFhO1lBQ2IsY0FBYyxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVE7WUFDbkQsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUMxQixFQUNELElBQUksRUFBRSxtQkFBbUI7UUFDekIsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQ3ZCLENBQUMsQ0FBQTtJQUVKLENBQUM7SUFFRCxXQUFXLENBQUMsU0FBb0IsRUFBRSxJQUFZO1FBRTVDLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRWxELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxN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QUFDLFNBQVMsQ0FBQyxFQUNYLE9BQU8sQ0FDUixDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBRWxCLGtDQUFrQztZQUVsQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7aUJBQ3pCLElBQUksQ0FDSCxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzVCLE9BQU8sS0FBSyxDQUFBO1lBQ2QsQ0FBQyxDQUFDLENBQ0gsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDdkMsWUFBWSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQ2hELENBQUMsQ0FBQyxDQUFBO1FBRUosQ0FBQyxDQUFDLENBQUE7UUFFRixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBQUEsQ0FBQzsrR0FoUlMsNkJBQTZCO21IQUE3Qiw2QkFBNkIsY0FGNUIsTUFBTTs7NEZBRVAsNkJBQTZCO2tCQUh6QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBFTVBUWSwgT2JzZXJ2YWJsZSwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQXN5bW1ldHJpY2FsRW5jcnlwdGlvblNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBnZW5lcmF0ZUtleVBhaXIobW9kdWx1c0xlbmd0aCA9IDIwNDgpOiBPYnNlcnZhYmxlPENyeXB0b0tleVBhaXI+IHtcbiAgXG4gICAgLy8gbW9kdWx1c0xlbmd0aCAtIDEwMjQsIDIwNDgsIDQwOTZcbiAgICAvLyBoYXNoIC0gU0hBLTI1NlxuXG4gICByZXR1cm4gZnJvbShjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIlJTQS1PQUVQXCIsXG4gICAgICAgIG1vZHVsdXNMZW5ndGgsXG4gICAgICAgIHB1YmxpY0V4cG9uZW50OiBuZXcgVWludDhBcnJheShbMSwgMCwgMV0pLCAvLyA2NTUzN1xuICAgICAgICBoYXNoOiB7IG5hbWU6IFwiU0hBLTI1NlwiIH1cbiAgICAgIH0sXG4gICAgICB0cnVlLCAvLyBFeHRyYWN0YWJsZSBrZXlzXG4gICAgICBbXCJlbmNyeXB0XCIsIFwiZGVjcnlwdFwiXVxuICAgICkpXG5cbiAgfVxuXG4gIGVuY3J5cHREYXRhKHB1YmxpY0tleTogQ3J5cHRvS2V5LCBkYXRhOiBzdHJpbmcpIHtcblxuICAgIGNvbnN0IGVuY29kZWREYXRhID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKGRhdGEpXG5cbiAgICByZXR1cm4gZnJvbShjcnlwdG8uc3VidGxlLmVuY3J5cHQoXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiUlNBLU9BRVBcIlxuICAgICAgfSxcbiAgICAgIHB1YmxpY0tleSxcbiAgICAgIGVuY29kZWREYXRhXG4gICAgKSkucGlwZShcbiAgICAgIG1hcChlbmMgPT4gdGhpcy5hcnJheUJ1ZmZlclRvQmFzZTY0KGVuYykpXG4gICAgKVxuXG4gIH1cblxuICBkZWNyeXB0RGF0YShwcml2YXRlS2V5OiBDcnlwdG9LZXksIGVuY3J5cHRlZERhdGE6IHN0cmluZykge1xuXG4gICAgY29uc3QgZW5jU3RyID0gdGhpcy5iYXNlNjRUb0FycmF5QnVmZmVyKGVuY3J5cHRlZERhdGEpXG5cbiAgICByZXR1cm4gZnJvbShjcnlwdG8uc3VidGxlLmRlY3J5cHQoXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiUlNBLU9BRVBcIlxuICAgICAgfSxcbiAgICAgIHByaXZhdGVLZXksXG4gICAgICBlbmNTdHJcbiAgICApLnRoZW4oZGVjcnlwdGVkRGF0YSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKGRlY3J5cHRlZERhdGEpXG4gICAgfSkpXG5cbiAgfVxuXG4gIHBlbVRvQXJyYXlCdWZmZXIocGVtOiBzdHJpbmcpOiBBcnJheUJ1ZmZlciB7XG5cbiAgICBjb25zdCBiNjQgPSBwZW0ucmVwbGFjZSgvKC0tLS0tQkVHSU4gKFJTQSApPyhQUklWQVRFfFBVQkxJQykgS0VZLS0tLS18LS0tLS1FTkQgKFJTQSApPyhQUklWQVRFfFBVQkxJQykgS0VZLS0tLS18XFxuKS9nLCAnJylcbiAgICBjb25zdCBiaW5hcnlTdHJpbmcgPSBhdG9iKGI2NClcbiAgICBjb25zdCBsZW4gPSBiaW5hcnlTdHJpbmcubGVuZ3RoXG4gICAgY29uc3QgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGxlbilcbiAgICBjb25zdCB2aWV3ID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgdmlld1tpXSA9IGJpbmFyeVN0cmluZy5jaGFyQ29kZUF0KGkpXG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1ZmZlclxuXG4gIH1cblxuICBiYXNlNjRUb0FycmF5QnVmZmVyKGJhc2U2NDogc3RyaW5nKTogQXJyYXlCdWZmZXIge1xuICAgIFxuICAgIGNvbnN0IGJpbmFyeVN0cmluZyA9IGF0b2IoYmFzZTY0KTtcbiAgICBjb25zdCBsZW4gPSBiaW5hcnlTdHJpbmcubGVuZ3RoO1xuICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBBcnJheUJ1ZmZlcihsZW4pO1xuICAgIGNvbnN0IHZpZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xuICAgICAgICB2aWV3W2ldID0gYmluYXJ5U3RyaW5nLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1ZmZlcjtcbiAgfVxuXG4gIGFycmF5QnVmZmVyVG9CYXNlNjQoYnVmZmVyOiBBcnJheUJ1ZmZlcik6IHN0cmluZyB7XG5cbiAgICBsZXQgYmluYXJ5ID0gJyc7XG4gICAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xuICAgIGNvbnN0IGxlbiA9IGJ5dGVzLmJ5dGVMZW5ndGg7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHdpbmRvdy5idG9hKGJpbmFyeSlcblxuICB9XG5cbiAgYmFzZTY0VG9QRU0oYmFzZTY0S2V5OiBzdHJpbmcsIHB1YmxpY0tleSA9IHRydWUpIHtcblxuICAgIGNvbnN0IGtleVR5cGUgPSAocHVibGljS2V5KSA/ICdQVUJMSUMnIDogJ1BSSVZBVEUnXG5cbiAgICBjb25zdCBoZWFkZXIgPSBgLS0tLS1CRUdJTiAke2tleVR5cGV9IEtFWS0tLS0tXFxuYFxuICAgIGNvbnN0IGZvb3RlciA9IGBcXG4tLS0tLUVORCAke2tleVR5cGV9IEtFWS0tLS0tYFxuXG4gICAgY29uc3Qga2V5Qm9keSA9IGJhc2U2NEtleS5tYXRjaCgvLnsxLDY0fS9nKT8uam9pbihcIlxcblwiKSB8fCBcIlwiXG5cbiAgICByZXR1cm4gaGVhZGVyICsga2V5Qm9keSArIGZvb3RlclxuXG4gIH1cblxuICBwZW1Ub0NyeXB0b0tleShcbiAgICBwZW06IHN0cmluZywgXG4gICAgYWxnb3JpdGhtOiBSc2FIYXNoZWRLZXlHZW5QYXJhbXMsIFxuICAgIGV4dHJhY3RhYmxlOiBib29sZWFuLCBcbiAgICBrZXlVc2FnZXM6IEtleVVzYWdlW10sXG4gICAgZm9ybWF0OiBhbnkgPSBcInBrY3M4XCIgLy9cInJhd1wiIHwgXCJwa2NzOFwiIHwgXCJzcGtpXCJcbiAgICApIHtcbiAgICBcbiAgICBjb25zdCBidWZmZXIgPSB0aGlzLnBlbVRvQXJyYXlCdWZmZXIocGVtKTtcblxuICAgIGNvbnNvbGUubG9nKCdidWZmZXIgZm91bmQgJywgYnVmZmVyKTtcbiAgICBcbiAgICByZXR1cm4gZnJvbShjcnlwdG8uc3VidGxlLmltcG9ydEtleShcbiAgICAgIGZvcm1hdCxcbiAgICAgIGJ1ZmZlcixcbiAgICAgIGFsZ29yaXRobSxcbiAgICAgIGV4dHJhY3RhYmxlLFxuICAgICAga2V5VXNhZ2VzXG4gICAgKSlcblxuICB9XG4gIFxuICAvLyBURVNUSU5HXG5cbiAgdGVzdEdlbmVyYXRlS2V5cygpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGNvbnN0IHRlc3RTZXF1ZW5jZTogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oXCJcIik7XG4gICAgY29uc3QgdGVzdFNlcXVlbmNlJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGVzdFNlcXVlbmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRlc3RTZXF1ZW5jZS5uZXh0KFwiVGVzdCBHZW5lcmF0aW5nIEtleXNcIik7XG5cbiAgICAvLyBHRU5FUkFURSBLRVlTXG4gICAgdGhpcy5nZW5lcmF0ZUtleVBhaXIoKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcblxuICAgICAgY29uc29sZS5sb2coXCJHRU4tR0VORVJBVEVEIEtFWVM6IFwiLCBkYXRhKVxuXG4gICAgICBjcnlwdG8uc3VidGxlLmV4cG9ydEtleSgnc3BraScsIGRhdGEucHVibGljS2V5KVxuICAgICAgLnRoZW4oa2V5ID0+IHtcbiAgICAgICAgY29uc3QgcHVibGljS2V5QmFzZTY0ID0gdGhpcy5hcnJheUJ1ZmZlclRvQmFzZTY0KGtleSk7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiR0VOLUVYUE9SVCBQVUJMSUMgS0VZOiBcIiwgdGhpcy5iYXNlNjRUb1BFTShwdWJsaWNLZXlCYXNlNjQsIHRydWUpKTtcbiAgICAgIH0pXG5cbiAgICAgIGNyeXB0by5zdWJ0bGUuZXhwb3J0S2V5KCdwa2NzOCcsIGRhdGEucHJpdmF0ZUtleSlcbiAgICAgIC50aGVuKGtleSA9PiB7XG4gICAgICAgIGNvbnN0IHByaXZhdGVLZXlCYXNlNjQgPSB0aGlzLmFycmF5QnVmZmVyVG9CYXNlNjQoa2V5KTtcbiAgICAgICAgY29uc29sZS5sb2coXCJHRU4tRVhQT1JUIFBSSVZBVEUgS0VZOiBcIiwgdGhpcy5iYXNlNjRUb1BFTShwcml2YXRlS2V5QmFzZTY0LCBmYWxzZSkpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIFRFU1QgV0lUSCBHRU5FUkFURUQgS0VZU1xuICAgICAgdGhpcy5lbmNyeXB0RGF0YShkYXRhLnB1YmxpY0tleSwgXCJTYW1wbGUgRGF0YSBoZXJlIC0gTWlrZSBCb25pZmFjaW9cIilcbiAgICAgICAgICAuc3Vic2NyaWJlKChlbmMpID0+IHtcblxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJHRU4tRU5DUllQVD09PjogXCIsIGVuYylcblxuICAgICAgICAgICAgdGhpcy5kZWNyeXB0RGF0YShkYXRhLnByaXZhdGVLZXksIGVuYykuc3Vic2NyaWJlKChkZWMpID0+IHtcbiAgICAgICAgICAgICAgdGVzdFNlcXVlbmNlLm5leHQoJ1Rlc3QgUGFzc2VkJyk7XG4gICAgICAgICAgICAgIHRlc3RTZXF1ZW5jZS5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSlcblxuICAgICAgICAgIH0pXG5cbiAgICB9KVxuICAgIHJldHVybiB0ZXN0U2VxdWVuY2UkO1xuXG4gIH1cblxuICB0ZXN0RGVjcnlwdGlvbldpdGhLZXlzKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgdGVzdFNlcXVlbmNlOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihcIlwiKTtcbiAgICBjb25zdCB0ZXN0U2VxdWVuY2UkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0ZXN0U2VxdWVuY2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGVzdFNlcXVlbmNlLm5leHQoXCJUZXN0IEdlbmVyYXRpbmcgS2V5c1wiKTtcblxuICAgIGNvbnN0IHByaXZhdGVLZXkgPSBgLS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tXG4gICAgTUlJRXZ3SUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2t3Z2dTbEFnRUFBb0lCQVFES1ZCa0NXTmI5ZUhWRlxuICAgIHR3QUE1bWRBeXZYRml4M1dhdmRyc29ZUmt2dENsOG9nREJRZjhmNk4wYlJrREYxemNWSFJyTkFFeW96WER0dURcbiAgICBrRmdTaWl2QkZSRUk3ZmlTM3NPdmR1cTZGYUdYelgwSVk2b2FWTXU4b09QZ0R2QzB5dm9vaFIrMFF4cTJkNmxQXG4gICAgU1B5SGVLUWF4UDRLeHpDSkp6QjFYQWNiZDJlRnpVVUR2MjVtTmx3ZFZrbVc4Rkkvc0F4bkpMZ1BUVzc4ZHpmWFxuICAgIERkZmsrbnhkSXF4VktTTEFUbkwwa01ON2FHSngyNFVvemlvQUlwenZ2dkY1Lys3SFRkMWdpNk5lQ3FyQVlyM2dcbiAgICBpUDM2NEFFMjZDRndGdkhuYWZPOXVOUWhsUSt1aU5uT29JblhCeWZGR1ZQK1JpZFNwZkx6YXhEanM2UkR3cG9sXG4gICAgaDA5OGJ0T05BZ01CQUFFQ2dnRUFBVmhITTJPRDVJa1V0dW93d2NLTmFDVEtHbXJDbFJFM2dNdXpKZUJzU0pFeVxuICAgIHVBUmVVRklMWnlsY25oZWdEeXRTdGkydkRBOVQ3eHF0TzZDVTBwM1Y4THBVODlKTU9QUmIvZGVpckk0VVhTcHhcbiAgICB4Yk55amlyT082Ym5yTmxPV2ZLZXhkUVFzaWtZUHpGMmlNMVNjcHIxdTlaRENIWk9sMVpZU3JrdmU1TXk0Y29QXG4gICAgM0d4NnRUQnFMMGpRQmZjcGY0RVM4QkgzSlNhd1IvTWdxekRTNzQrYkkyVkgra3Z1UEFDMUw0ZkJnYVYzVlV2MFxuICAgIG5GemltNUEzczVWYVhQZ0piRUlnaFA5QmtZR0ZrZVQ5bWEzbmxpRVpXYzk2QXpzbW93Rm4xYXlDdnJOVlBvOVJcbiAgICBFQ0QyTm50dEJpQ0padDNIOTNzUjkrT1RlQThCbHMrYVpHbEtkNW1MQVFLQmdRRHBmOG5JWVVtL1ptbHM3L2xRXG4gICAgUUJVU0dIRVlyYmpOc0VlalFzUGdORHRnMkVWU3hkVWt2VG43V2IrSEV4VGswOVo1Yk52aGFPMjUzMi9GSDl5OFxuICAgIGFoU1hhZmlNWHBmUjJvbHdYZE9COXlYWGw0RjVDMExHbm16R2ltNE9TZVd6QVgwSkNMNDcwS2FTMFFOM0Vtb0dcbiAgICA5RjBZQ2ZNblpYTlR3ZVNTeDR4dmxPNmdnUUtCZ1FEZDAxdUlvbG03ejFESVdDd05FUkFYUDJHRHdjdnh5ellLXG4gICAgWXFKZktEZUh0MnQ2eUl6Wk1Nb3RuUER5K09sY2RHc3BJSUhrQjVhK1NaTjVOdDdEVUtnL01ueU9aM0tiVnE0MVxuICAgIGs3ZFI0S2EzTFJuR2tlc3k3bFNyN2VmMXJmcXV5Ujc1T1hKUWNQV3ZrRmNMdTBUTWlRaHZwdGF0WjhWTitGNG5cbiAgICBmRFFFTFJvdERRS0JnUUNnTitBVVQ3VlQwUWpjQ0JuUlYvZGRVRW9pUGVuRnNZU21ZTVNZemg1RVNJSGcxd0IyXG4gICAgMGlTNzlJdzRPZjZuT1RnOFgxYk01N3ZmUTVLazkwVDJQKy9iS1lxemZxQzhEVEVyV2lZc1VwS3p5VEM5QnQ0TlxuICAgIC9WejBLcjV6clg4Z2dnL3lwLzRvZXZZaFhhdjhBeldmaWdOcTRFRHBNbktjOFRsUEFmKzUvTDUwZ1FLQmdRQzJcbiAgICBtTFBoUGhyMWdVc3pEM2w3YkE4OXc3dUdsTEZIb1FvajlGdEtUeldlcnZwM1FMeklUK1F0TmVJVmI1WFF1RGc1XG4gICAgeTN1QWRFcSs2cHZOak1CRU1KRytLOVhoOXYrZEpQWVVQanNKMkE0RC9Na1o3cVdYOEIyY3hTSksxdUxpbThXMlxuICAgIFMzWnhCdnNHZ0o5V2xkbWxNQ3ZVbEpaa2VXWXRyNFA1cHNDK3EwMi94UUtCZ1FDRElJL2pjVjIrbFJNMmlOVGVcbiAgICB2QmlqWlNhTk1FV09LL1krL0hGSzhHWUtYbkIreE5XaHJtOHJLZ1dHenBESkFVUE1oOVR0K2xlVzlMS0VCdXpGXG4gICAgWTFiR2JsbUdtMXpzUFdwSXgwNUZkdHY5ZU9KbUZuWGJHeklzWXloYWRablBjUU9XaHF4dHBWeFN1dWwwSmM3UVxuICAgIFhOcTRxUGFQWGhiUUFzaGd0eUJ0NzVETWt3PT1cbiAgICAtLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tYFxuICAgIFxuICAgICAgICBjb25zdCBwdWJLZXkgPSBgLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbiAgICBNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXlsUVpBbGpXL1hoMVJiY0FBT1puXG4gICAgUU1yMXhZc2QxbXIzYTdLR0VaTDdRcGZLSUF3VUgvSCtqZEcwWkF4ZGMzRlIwYXpRQk1xTTF3N2JnNUJZRW9vclxuICAgIHdSVVJDTzM0a3Q3RHIzYnF1aFdobDgxOUNHT3FHbFRMdktEajRBN3d0TXI2S0lVZnRFTWF0bmVwVDBqOGgzaWtcbiAgICBHc1QrQ3Njd2lTY3dkVndIRzNkbmhjMUZBNzl1WmpaY0hWWkpsdkJTUDdBTVp5UzREMDF1L0hjMzF3M1g1UHA4XG4gICAgWFNLc1ZTa2l3RTV5OUpERGUyaGljZHVGS000cUFDS2M3Nzd4ZWYvdXgwM2RZSXVqWGdxcXdHSzk0SWo5K3VBQlxuICAgIE51Z2hjQmJ4NTJuenZialVJWlVQcm9qWnpxQ0oxd2NueFJsVC9rWW5VcVh5ODJzUTQ3T2tROEthSllkUGZHN1RcbiAgICBqUUlEQVFBQlxuICAgIC0tLS0tRU5EIFBVQkxJQyBLRVktLS0tLWBcblxuICAgIGNvbnN0IGFsZ29yaXRobTogUnNhSGFzaGVkS2V5R2VuUGFyYW1zID0ge1xuICAgICAgbmFtZTogXCJSU0EtT0FFUFwiLFxuICAgICAgbW9kdWx1c0xlbmd0aDogMjA0OCxcbiAgICAgIHB1YmxpY0V4cG9uZW50OiBuZXcgVWludDhBcnJheShbMSwgMCwgMV0pLFxuICAgICAgaGFzaDogXCJTSEEtMjU2XCJcbiAgICB9O1xuXG4gICAgLy8gRU5DUllQVFxuICAgIHRoaXMucGVtVG9DcnlwdG9LZXkoXG4gICAgICBwdWJLZXksXG4gICAgICBhbGdvcml0aG0sXG4gICAgICB0cnVlLFxuICAgICAgW1wiZW5jcnlwdFwiXSxcbiAgICAgIFwic3BraVwiXG4gICAgKS5zdWJzY3JpYmUoKGtleVB1YmxpYykgPT4ge1xuXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIlBVQkxJQyBLRVk6IFwiLCBrZXlQdWJsaWMpXG5cbiAgICAgIHRoaXMuZW5jcnlwdERhdGEoa2V5UHVibGljLCBcIlNhbXBsZSBEYXRhIGhlcmUgLSBNaWtlIEJvbmlmYWNpb1wiKVxuICAgICAgLnN1YnNjcmliZSgoc3RyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiRU5DUllQVEVEIFNUUklORzogXCIsIHN0cik7XG4gICAgICAgIHRlc3RTZXF1ZW5jZS5uZXh0KCdlbmNyeXB0ZWQgc3RyaW5nIHN1Y2Nlc3MnKTtcbiAgICAgIH0pXG5cbiAgICB9KVxuXG4gICAgY29uc3QgZW5jID0gXCJyN1VPdUVHQlo2amJWVE9JQnV2OWpGT0V0UmllZG1TMjdoZlc0MGs3WEtDVHNRNVZoV3VwMHF1MkJBMkFOWmFHS2lpL3VlaEovUlNQaXlmR2JKNmxlSnJhdDBtQTFoUHFIL1hvZGFCekxNRGlndmRZTTFOU1hGWk1EYTQwT3BMVUlYYlBsQXZ5YmpjR3U3QmFsK0xNQThodEhyRnUvT21NL2ZISTY2eE96enB1WFNZeDBPa1dqdFk4MXJVUTFGRmt2cmt4MmpHRlBaMHArTncvdjNRNGNKbmV0NlY2M3ZDdWVGbEQ3NDlWTWNWWG83cHZ6NEFJUHBCK0lPeTNrYnhhWVRQYWtMVmlvSkVSVTZHRk1YV2tFQ3VSdm9oaFM5Q0VUY09SWnRSVlJrdmhjSGszbHhnSWhmcW9qVUtZZ0Q2SzVkREVMRFBzV0lTK2lURzFYSVFJbGc9PVwiO1xuXG4gICAgLy8gREVDUllQVElPTlxuICAgIHRoaXMucGVtVG9DcnlwdG9LZXkoXG4gICAgICBwcml2YXRlS2V5LFxuICAgICAgYWxnb3JpdGhtLFxuICAgICAgZmFsc2UsXG4gICAgICBbXCJkZWNyeXB0XCJdLFxuICAgICAgXCJwa2NzOFwiXG4gICAgKS5zdWJzY3JpYmUoKGtleSkgPT4ge1xuXG4gICAgICAvLyBjb25zb2xlLmxvZyhcIkRFQ1JZUFQgPT09XCIsIGtleSlcblxuICAgICAgdGhpcy5kZWNyeXB0RGF0YShrZXksIGVuYylcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJFUlJPUjogXCIsIGVycik7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZXG4gICAgICAgIH0pXG4gICAgICApLnN1YnNjcmliZSgoc3RyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiREVDUllQVEVEIFNUUklORzogXCIsIHN0cik7XG4gICAgICAgIHRlc3RTZXF1ZW5jZS5uZXh0KCdkZWNyeXB0ZWQgc3RyaW5nIHN1Y2Nlc3MnKTtcbiAgICAgIH0pXG5cbiAgICB9KVxuXG4gICAgcmV0dXJuIHRlc3RTZXF1ZW5jZSQ7XG4gIH07XG59XG4iXX0=
@@ -1,35 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class EncryptionTestService {
4
- constructor() { }
5
- isBase64(str) {
6
- const base64Pattern = /^(?:[A-Z0-9+/]{4})*(?:[A-Z0-9+/]{2}==|[A-Z0-9+/]{3}=)?$/i;
7
- return base64Pattern.test(str);
8
- }
9
- isHexadecimal(str) {
10
- const hexPattern = /^[0-9a-fA-F]+$/;
11
- return hexPattern.test(str) && (str.length % 2 === 0);
12
- }
13
- hasHighEntropy(str) {
14
- const uniqueChars = new Set(str).size;
15
- return uniqueChars > str.length * 0.6;
16
- }
17
- isEncrypted(str) {
18
- if (typeof str !== 'string') {
19
- return false;
20
- }
21
- if (this.isBase64(str) || this.isHexadecimal(str)) {
22
- return true;
23
- }
24
- return this.hasHighEntropy(str);
25
- }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EncryptionTestService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
27
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EncryptionTestService, providedIn: 'root' }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EncryptionTestService, decorators: [{
30
- type: Injectable,
31
- args: [{
32
- providedIn: 'root'
33
- }]
34
- }], ctorParameters: () => [] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jcnlwdGlvbi10ZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3V0aWxzL2VuY3J5cHRpb24vZW5jcnlwdGlvbi10ZXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxnQkFBZ0IsQ0FBQztJQUVULFFBQVEsQ0FBQyxHQUFXO1FBQzFCLE1BQU0sYUFBYSxHQUFHLDBEQUEwRCxDQUFDO1FBQ2pGLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sYUFBYSxDQUFDLEdBQVc7UUFDL0IsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUM7UUFDcEMsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFXO1FBQ2hDLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN0QyxPQUFPLFdBQVcsR0FBRyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVc7UUFFckIsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVsQyxDQUFDOytHQS9CVSxxQkFBcUI7bUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzs0RkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBFbmNyeXB0aW9uVGVzdFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHJpdmF0ZSBpc0Jhc2U2NChzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGJhc2U2NFBhdHRlcm4gPSAvXig/OltBLVowLTkrL117NH0pKig/OltBLVowLTkrL117Mn09PXxbQS1aMC05Ky9dezN9PSk/JC9pO1xuICAgIHJldHVybiBiYXNlNjRQYXR0ZXJuLnRlc3Qoc3RyKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNIZXhhZGVjaW1hbChzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGhleFBhdHRlcm4gPSAvXlswLTlhLWZBLUZdKyQvO1xuICAgIHJldHVybiBoZXhQYXR0ZXJuLnRlc3Qoc3RyKSAmJiAoc3RyLmxlbmd0aCAlIDIgPT09IDApO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNIaWdoRW50cm9weShzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHVuaXF1ZUNoYXJzID0gbmV3IFNldChzdHIpLnNpemU7XG4gICAgcmV0dXJuIHVuaXF1ZUNoYXJzID4gc3RyLmxlbmd0aCAqIDAuNjtcbiAgfVxuXG4gIGlzRW5jcnlwdGVkKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG5cbiAgICBpZiAodHlwZW9mIHN0ciAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0Jhc2U2NChzdHIpIHx8IHRoaXMuaXNIZXhhZGVjaW1hbChzdHIpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5oYXNIaWdoRW50cm9weShzdHIpO1xuXG4gIH1cblxufVxuIl19
@@ -1,4 +0,0 @@
1
- export * from "./asymmetrical-encryption.service";
2
- export * from './symmetrical-encryption.service';
3
- export * from './random';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3V0aWxzL2VuY3J5cHRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYXN5bW1ldHJpY2FsLWVuY3J5cHRpb24uc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSAnLi9zeW1tZXRyaWNhbC1lbmNyeXB0aW9uLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL3JhbmRvbSc7XG5cbiJdfQ==
@@ -1,52 +0,0 @@
1
- export const Random = () => {
2
- const typedArray = new Uint8Array(1);
3
- const randomValue = crypto.getRandomValues(typedArray)[0];
4
- const randomFloat = randomValue / Math.pow(2, 8);
5
- return randomFloat;
6
- };
7
- export const RandomNumber = (min, max) => {
8
- return Math.floor(Random() * max) + min;
9
- };
10
- export const RandomNumbers = (min, max, length) => {
11
- const numbers = [];
12
- for (let i = 0; i < length; i++)
13
- numbers.push(Math.floor(Random() * max) + min);
14
- return numbers;
15
- };
16
- export const RandomNumbersUnique = (min, max, length) => {
17
- let count = 0;
18
- // Adjust the length if it exceeds the number of unique numbers possible in the range
19
- if (length > (max - min + 1)) {
20
- console.error('error encountered');
21
- length = max - min + 1;
22
- }
23
- console.log('length', length);
24
- const numbers = [];
25
- const maxAttempts = length * 100; // Safeguard to prevent infinite loops
26
- while (numbers.length < length && count < maxAttempts) {
27
- const num = Math.floor(Random() * max) + min;
28
- if (!numbers.includes(num)) {
29
- numbers.push(num);
30
- }
31
- }
32
- if (count >= maxAttempts) {
33
- throw new Error('Maximum attempts exceeded while generating unique numbers');
34
- }
35
- return numbers;
36
- };
37
- export const RandomStr = () => {
38
- const typedArray = new Uint8Array(8);
39
- const array = new Uint32Array(1);
40
- crypto.getRandomValues(array);
41
- return array[0].toString(36);
42
- };
43
- export const RandomSignature = () => {
44
- const typedArray = new Uint8Array(8);
45
- const array = new Uint32Array(1);
46
- crypto.getRandomValues(array);
47
- return array[0];
48
- };
49
- export const UUID = () => {
50
- return self.crypto.randomUUID();
51
- };
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy91dGlscy9lbmNyeXB0aW9uL3JhbmRvbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsR0FBRyxFQUFFO0lBQ3pCLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3BDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDekQsTUFBTSxXQUFXLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ2hELE9BQU8sV0FBVyxDQUFBO0FBQ3BCLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQUUsRUFBRTtJQUN2RCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFBO0FBQ3pDLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDeEUsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFBO0lBQzVCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxFQUFFO1FBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFBO0lBQy9FLE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxNQUFjLEVBQUUsRUFBRTtJQUM5RSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFFZCxxRkFBcUY7SUFDckYsSUFBSSxNQUFNLEdBQUcsQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUIsTUFBTSxPQUFPLEdBQWEsRUFBRSxDQUFDO0lBQzdCLE1BQU0sV0FBVyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUUsQ0FBQyxzQ0FBc0M7SUFFekUsT0FBTyxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxLQUFLLEdBQUcsV0FBVyxFQUFFLENBQUM7UUFFdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7UUFFN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxLQUFLLElBQUksV0FBVyxFQUFFLENBQUM7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFO0lBRTVCLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2hDLE1BQU0sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDN0IsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBRTlCLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFFbEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDaEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM3QixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUVqQixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO0lBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQTtBQUNqQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgUmFuZG9tID0gKCkgPT4ge1xuICBjb25zdCB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoMSlcbiAgY29uc3QgcmFuZG9tVmFsdWUgPSBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKHR5cGVkQXJyYXkpWzBdXG4gIGNvbnN0IHJhbmRvbUZsb2F0ID0gcmFuZG9tVmFsdWUgLyBNYXRoLnBvdygyLCA4KVxuICByZXR1cm4gcmFuZG9tRmxvYXRcbn1cblxuZXhwb3J0IGNvbnN0IFJhbmRvbU51bWJlciA9IChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+IHtcbiAgcmV0dXJuIE1hdGguZmxvb3IoUmFuZG9tKCkgKiBtYXgpICsgbWluXG59XG5cbmV4cG9ydCBjb25zdCBSYW5kb21OdW1iZXJzID0gKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpID0+IHtcbiAgY29uc3QgbnVtYmVyczogbnVtYmVyW10gPSBbXVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSBudW1iZXJzLnB1c2goTWF0aC5mbG9vcihSYW5kb20oKSAqIG1heCkgKyBtaW4pXG4gIHJldHVybiBudW1iZXJzXG59XG5cbmV4cG9ydCBjb25zdCBSYW5kb21OdW1iZXJzVW5pcXVlID0gKG1pbjogbnVtYmVyLCBtYXg6IG51bWJlciwgbGVuZ3RoOiBudW1iZXIpID0+IHtcbiAgbGV0IGNvdW50ID0gMDtcblxuICAvLyBBZGp1c3QgdGhlIGxlbmd0aCBpZiBpdCBleGNlZWRzIHRoZSBudW1iZXIgb2YgdW5pcXVlIG51bWJlcnMgcG9zc2libGUgaW4gdGhlIHJhbmdlXG4gIGlmIChsZW5ndGggPiAobWF4IC0gbWluICsgMSkpIHtcbiAgICBjb25zb2xlLmVycm9yKCdlcnJvciBlbmNvdW50ZXJlZCcpO1xuICAgIGxlbmd0aCA9IG1heCAtIG1pbiArIDE7XG4gIH1cblxuICBjb25zb2xlLmxvZygnbGVuZ3RoJywgbGVuZ3RoKTtcbiAgY29uc3QgbnVtYmVyczogbnVtYmVyW10gPSBbXTtcbiAgY29uc3QgbWF4QXR0ZW1wdHMgPSBsZW5ndGggKiAxMDAgOyAvLyBTYWZlZ3VhcmQgdG8gcHJldmVudCBpbmZpbml0ZSBsb29wc1xuXG4gIHdoaWxlIChudW1iZXJzLmxlbmd0aCA8IGxlbmd0aCAmJiBjb3VudCA8IG1heEF0dGVtcHRzKSB7XG5cbiAgICBjb25zdCBudW0gPSBNYXRoLmZsb29yKFJhbmRvbSgpICogbWF4KSArIG1pbjtcblxuICAgIGlmICghbnVtYmVycy5pbmNsdWRlcyhudW0pKSB7XG4gICAgICBudW1iZXJzLnB1c2gobnVtKTtcbiAgICB9XG4gIH1cblxuICBpZiAoY291bnQgPj0gbWF4QXR0ZW1wdHMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01heGltdW0gYXR0ZW1wdHMgZXhjZWVkZWQgd2hpbGUgZ2VuZXJhdGluZyB1bmlxdWUgbnVtYmVycycpO1xuICB9XG5cbiAgcmV0dXJuIG51bWJlcnM7XG59O1xuXG5leHBvcnQgY29uc3QgUmFuZG9tU3RyID0gKCkgPT4ge1xuXG4gIGNvbnN0IHR5cGVkQXJyYXkgPSBuZXcgVWludDhBcnJheSg4KVxuICBjb25zdCBhcnJheSA9IG5ldyBVaW50MzJBcnJheSgxKVxuICBjcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGFycmF5KVxuICByZXR1cm4gYXJyYXlbMF0udG9TdHJpbmcoMzYpXG5cbn1cblxuZXhwb3J0IGNvbnN0IFJhbmRvbVNpZ25hdHVyZSA9ICgpID0+IHtcblxuICBjb25zdCB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoOClcbiAgY29uc3QgYXJyYXkgPSBuZXcgVWludDMyQXJyYXkoMSlcbiAgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhhcnJheSlcbiAgcmV0dXJuIGFycmF5WzBdXG5cbn1cblxuZXhwb3J0IGNvbnN0IFVVSUQgPSAoKSA9PiB7XG4gIHJldHVybiBzZWxmLmNyeXB0by5yYW5kb21VVUlEKClcbn1cblxuXG4iXX0=
@@ -1,77 +0,0 @@
1
- import { Injectable, inject } from '@angular/core';
2
- import * as CryptoJS from 'crypto-js';
3
- import { RandomSignature } from './random';
4
- import { AppService } from '../app.service';
5
- import * as i0 from "@angular/core";
6
- export class SymmetricalEncryptionService {
7
- constructor() {
8
- this.appService = inject(AppService);
9
- // TODO: The APP ID is not a string, it is a function
10
- this.appID = (this.appService.appID) ? this.appService.appID : '';
11
- if (this.appID === '')
12
- console.warn('No App Key has been define');
13
- }
14
- generateCipherKey() {
15
- return (RandomSignature().toString() + RandomSignature().toString()).substring(0, 8);
16
- }
17
- encrypt(str, key = this.appID) {
18
- if (!str || key === '')
19
- return '';
20
- let _key = CryptoJS.enc.Utf8.parse(key);
21
- let _iv = CryptoJS.enc.Utf8.parse(key);
22
- try {
23
- const encrypted = CryptoJS.AES.encrypt(JSON.stringify(str), _key, {
24
- keySize: 16,
25
- iv: _iv,
26
- mode: CryptoJS.mode.ECB,
27
- padding: CryptoJS.pad.Pkcs7
28
- });
29
- return encrypted.toString();
30
- }
31
- catch (error) {
32
- console.log(error);
33
- }
34
- return;
35
- }
36
- decrypt(str, key = this.appID) {
37
- if (!str || key === '')
38
- return;
39
- let _key = CryptoJS.enc.Utf8.parse(key);
40
- let _iv = CryptoJS.enc.Utf8.parse(key);
41
- try {
42
- return CryptoJS.AES.decrypt(str, _key, {
43
- keySize: 16,
44
- iv: _iv,
45
- mode: CryptoJS.mode.ECB,
46
- padding: CryptoJS.pad.Pkcs7
47
- }).toString(CryptoJS.enc.Utf8);
48
- }
49
- catch (error) {
50
- console.log(error);
51
- }
52
- return;
53
- }
54
- createSignature(url, len = 16) {
55
- const sig = CryptoJS.SHA256(url).toString(CryptoJS.enc.Hex);
56
- return sig.substring(0, len).toUpperCase();
57
- }
58
- normalizeURL(url) {
59
- const normalizedURL = url.replace(/(https?:\/\/)?(www\.)?/, '').replace(/\/+$/, '');
60
- return normalizedURL;
61
- }
62
- generateSignature(url) {
63
- const normalizedURL = this.normalizeURL(url);
64
- const hash = CryptoJS.SHA256(normalizedURL);
65
- const signature = hash.toString(CryptoJS.enc.Hex);
66
- return signature;
67
- }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SymmetricalEncryptionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
69
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SymmetricalEncryptionService, providedIn: 'root' }); }
70
- }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SymmetricalEncryptionService, decorators: [{
72
- type: Injectable,
73
- args: [{
74
- providedIn: 'root'
75
- }]
76
- }], ctorParameters: () => [] });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltbWV0cmljYWwtZW5jcnlwdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy91dGlscy9lbmNyeXB0aW9uL3N5bW1ldHJpY2FsLWVuY3J5cHRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQztBQUV0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLNUMsTUFBTSxPQUFPLDRCQUE0QjtJQU12QztRQUZRLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUE7UUFHckMscURBQXFEO1FBQ3JELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQ2pFLElBQUcsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFO1lBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO0lBQ2xFLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLENBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxFQUFFLEdBQUcsZUFBZSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ3RGLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBUSxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSztRQUVoQyxJQUFHLENBQUMs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LENBQUE7UUFDakQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzsrR0FqRlUsNEJBQTRCO21IQUE1Qiw0QkFBNEIsY0FGM0IsTUFBTTs7NEZBRVAsNEJBQTRCO2tCQUh4QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgQ3J5cHRvSlMgZnJvbSAnY3J5cHRvLWpzJztcblxuaW1wb3J0IHsgUmFuZG9tU2lnbmF0dXJlIH0gZnJvbSAnLi9yYW5kb20nO1xuaW1wb3J0IHsgQXBwU2VydmljZSB9IGZyb20gJy4uL2FwcC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3ltbWV0cmljYWxFbmNyeXB0aW9uU2VydmljZSB7XG5cbiAgYXBwSUQ6IHN0cmluZzsgLy8gQVBQIFNFUlZJQ0UgVE8gTUFOQUdFUiBFTkNSWVBUSU9OIEtFWVxuXG4gIHByaXZhdGUgYXBwU2VydmljZSA9IGluamVjdChBcHBTZXJ2aWNlKVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIFRPRE86IFRoZSBBUFAgSUQgaXMgbm90IGEgc3RyaW5nLCBpdCBpcyBhIGZ1bmN0aW9uXG4gICAgdGhpcy5hcHBJRCA9ICh0aGlzLmFwcFNlcnZpY2UuYXBwSUQpID8gdGhpcy5hcHBTZXJ2aWNlLmFwcElEIDogJydcbiAgICBpZih0aGlzLmFwcElEID09PSAnJykgY29uc29sZS53YXJuKCdObyBBcHAgS2V5IGhhcyBiZWVuIGRlZmluZScpXG4gIH1cblxuICBnZW5lcmF0ZUNpcGhlcktleSgpIHtcbiAgICByZXR1cm4gKFJhbmRvbVNpZ25hdHVyZSgpLnRvU3RyaW5nKCkgKyBSYW5kb21TaWduYXR1cmUoKS50b1N0cmluZygpKS5zdWJzdHJpbmcoMCwgOClcbiAgfVxuXG4gIGVuY3J5cHQoc3RyOiBhbnksIGtleSA9IHRoaXMuYXBwSUQpIHtcblxuICAgIGlmKCFzdHIgfHwga2V5ID09PSAnJykgcmV0dXJuICcnXG5cbiAgICBsZXQgX2tleSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKGtleSlcbiAgICBsZXQgX2l2ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2Uoa2V5KVxuXG4gICAgdHJ5IHtcblxuICAgIGNvbnN0IGVuY3J5cHRlZCA9IENyeXB0b0pTLkFFUy5lbmNyeXB0KFxuICAgICAgSlNPTi5zdHJpbmdpZnkoc3RyKSwgX2tleSwge1xuICAgICAgICBrZXlTaXplOiAxNixcbiAgICAgICAgaXY6IF9pdixcbiAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5FQ0IsXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBlbmNyeXB0ZWQudG9TdHJpbmcoKVxuXG4gICAgfSBjYXRjaChlcnJvcjogYW55KSB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgICB9XG5cbiAgICByZXR1cm5cbiAgfVxuXG4gIGRlY3J5cHQoc3RyOiBzdHJpbmcsIGtleSA9IHRoaXMuYXBwSUQpIHtcblxuICAgIGlmKCFzdHIgfHwga2V5ID09PSAnJykgcmV0dXJuXG5cbiAgICBsZXQgX2tleSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKGtleSlcbiAgICBsZXQgX2l2ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2Uoa2V5KVxuXG4gICAgdHJ5IHtcblxuICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZGVjcnlwdChcbiAgICAgIHN0ciwgX2tleSwge1xuICAgICAgICBrZXlTaXplOiAxNixcbiAgICAgICAgaXY6IF9pdixcbiAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5FQ0IsXG4gICAgICAgIHBhZGRpbmc6IENyeXB0b0pTLnBhZC5Qa2NzN1xuICAgICAgfSkudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xuXG4gICAgfSBjYXRjaChlcnJvcjogYW55KSB7XG4gICAgICBjb25zb2xlLmxvZyhlcnJvcilcbiAgICB9XG5cbiAgICByZXR1cm5cbiAgfVxuXG4gIGNyZWF0ZVNpZ25hdHVyZSh1cmw6IHN0cmluZywgbGVuID0gMTYpIHtcbiAgICBjb25zdCBzaWcgPSBDcnlwdG9KUy5TSEEyNTYodXJsKS50b1N0cmluZyhDcnlwdG9KUy5lbmMuSGV4KVxuICAgIHJldHVybiBzaWcuc3Vic3RyaW5nKDAsIGxlbikudG9VcHBlckNhc2UoKVxuICB9XG5cbiAgbm9ybWFsaXplVVJMKHVybDogc3RyaW5nKSB7XG4gICAgY29uc3Qgbm9ybWFsaXplZFVSTCA9IHVybC5yZXBsYWNlKC8oaHR0cHM/OlxcL1xcLyk/KHd3d1xcLik/LywgJycpLnJlcGxhY2UoL1xcLyskLywgJycpO1xuICAgIHJldHVybiBub3JtYWxpemVkVVJMO1xuICB9XG5cbiAgZ2VuZXJhdGVTaWduYXR1cmUodXJsOiBzdHJpbmcpIHtcbiAgICBjb25zdCBub3JtYWxpemVkVVJMID0gdGhpcy5ub3JtYWxpemVVUkwodXJsKVxuICAgIGNvbnN0IGhhc2ggPSBDcnlwdG9KUy5TSEEyNTYobm9ybWFsaXplZFVSTClcbiAgICBjb25zdCBzaWduYXR1cmUgPSBoYXNoLnRvU3RyaW5nKENyeXB0b0pTLmVuYy5IZXgpXG4gICAgcmV0dXJuIHNpZ25hdHVyZTtcbiAgfVxuXG59XG4iXX0=
@@ -1,21 +0,0 @@
1
- import { HttpHeaders } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export class HeadersService {
5
- constructor() {
6
- this.headers = {};
7
- }
8
- generateHeaders(headers) {
9
- const allHeaders = headers ? { ...this.headers, ...headers } : {};
10
- return { headers: new HttpHeaders(allHeaders) };
11
- }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeadersService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
13
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeadersService, providedIn: 'root' }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HeadersService, decorators: [{
16
- type: Injectable,
17
- args: [{
18
- providedIn: 'root'
19
- }]
20
- }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy91dGlscy9oZWFkZXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxjQUFjO0lBSDNCO1FBS0UsWUFBTyxHQUFHLEVBQUUsQ0FBQTtLQVNiO0lBUEMsZUFBZSxDQUFDLE9BQWdDO1FBRTlDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO1FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQTtJQUVqRCxDQUFDOytHQVRVLGNBQWM7bUhBQWQsY0FBYyxjQUZiLE1BQU07OzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlcnNTZXJ2aWNlIHtcblxuICBoZWFkZXJzID0ge31cblxuICBnZW5lcmF0ZUhlYWRlcnMoaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiB7IGhlYWRlcnM6IEh0dHBIZWFkZXJzIH0ge1xuXG4gICAgY29uc3QgYWxsSGVhZGVycyA9IGhlYWRlcnMgPyB7IC4uLnRoaXMuaGVhZGVycywgLi4uaGVhZGVycyB9IDoge31cbiAgICByZXR1cm4geyBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoYWxsSGVhZGVycykgfVxuXG4gIH1cblxufVxuIl19
@@ -1,6 +0,0 @@
1
- export * from './app.service';
2
- export * from './headers.service';
3
- export * from './path-query.service';
4
- export * from './utils.service';
5
- export * from './encryption/index';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9odHRwLXJlcXVlc3QtbWFuYWdlci9zcmMvbGliL3NlcnZpY2VzL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVycy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcGF0aC1xdWVyeS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZW5jcnlwdGlvbi9pbmRleCc7XG5cbiJdfQ==
@@ -1,70 +0,0 @@
1
- import { Inject, Injectable, Optional, inject } from '@angular/core';
2
- import { ApiRequest } from '../request-manager-state-service/models';
3
- import { SettingOptions } from '../local-storage-manager-service';
4
- import { UtilsService } from '../utils/utils.service';
5
- import { CONFIG_SETTINGS_TOKEN } from '../../models/config-token.model';
6
- import { ConfigHTTPOptions, ConfigOptions, LocalStorageOptions } from '../request-manager-services';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../request-manager-services";
9
- export class ObjectMergerService {
10
- constructor(configOptions) {
11
- this.configOptions = configOptions;
12
- this.utils = inject(UtilsService);
13
- if (!this.configOptions)
14
- this.configOptions = ConfigOptions.adapt();
15
- }
16
- mergeOptions(options = ApiRequest.adapt()) {
17
- const configForRoot = (this.configOptions?.httpRequestOptions) ? this.configOptions.httpRequestOptions : ConfigHTTPOptions.adapt();
18
- const mergedOptions = ApiRequest.adapt(options);
19
- mergedOptions.server = (options && options.server === '') ? configForRoot?.server || '' : options.server;
20
- mergedOptions.path = [...options.path || [], ...configForRoot?.path || []];
21
- mergedOptions.headers = { ...options.headers || {}, ...configForRoot?.headers || {} };
22
- mergedOptions.retry = (options && (options?.retry?.times !== 0 || options?.retry?.delay !== 3)) ? options.retry : configForRoot?.retry || { times: 0, delay: 3 };
23
- mergedOptions.polling = (options && options?.polling !== 0) ? options.polling : configForRoot?.polling || 0;
24
- mergedOptions.displayError = (options && options?.displayError) ? options.displayError : configForRoot?.displayError || false;
25
- mergedOptions.stream = (options && options?.stream) ? options.stream : configForRoot?.stream || false;
26
- return mergedOptions;
27
- }
28
- mergeStorageOptions(options = SettingOptions.adapt()) {
29
- const configForRoot = (this.configOptions?.LocalStorageOptions) ? this.configOptions.LocalStorageOptions : LocalStorageOptions.adapt();
30
- const configForRootOptions = configForRoot.options || LocalStorageOptions.adapt().options;
31
- const mergedOptions = SettingOptions.adapt(options);
32
- // storage type
33
- mergedOptions.storage = (options && (typeof options.storage !== 'undefined')) ? options.storage : (configForRootOptions?.storage ?? 0);
34
- // expires: prefer explicit numeric expires; if not provided, compute from expiresIn string; otherwise use config default
35
- // if an explicit, non-zero numeric expires is provided, use it
36
- if (options && (typeof options.expires !== 'undefined') && options.expires !== null && Number(options.expires) > 0) {
37
- mergedOptions.expires = Number(options.expires);
38
- }
39
- else if (options && options.expiresIn) {
40
- // compute numeric epoch from expiresIn string using UtilsService if available
41
- try {
42
- mergedOptions.expires = this.utils ? this.utils.expires(options.expiresIn) : 0;
43
- }
44
- catch {
45
- mergedOptions.expires = 0;
46
- }
47
- }
48
- else {
49
- mergedOptions.expires = configForRootOptions?.expires ?? 0;
50
- }
51
- // keep expiresIn string if explicitly provided, otherwise use config default
52
- mergedOptions.expiresIn = (options && (typeof options.expiresIn !== 'undefined')) ? options.expiresIn : (configForRootOptions?.expiresIn || '');
53
- mergedOptions.encrypted = (options && (typeof options.encrypted !== 'undefined')) ? options.encrypted : (configForRootOptions?.encrypted || false);
54
- return mergedOptions;
55
- }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectMergerService, deps: [{ token: CONFIG_SETTINGS_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
57
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectMergerService, providedIn: 'root' }); }
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectMergerService, decorators: [{
60
- type: Injectable,
61
- args: [{
62
- providedIn: 'root'
63
- }]
64
- }], ctorParameters: () => [{ type: i1.ConfigOptions, decorators: [{
65
- type: Inject,
66
- args: [CONFIG_SETTINGS_TOKEN]
67
- }, {
68
- type: Optional
69
- }] }] });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LW1lcmdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy91dGlscy9vYmplY3QtbWVyZ2VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVyRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7OztBQUtwRyxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCLFlBQStELGFBQTZCO1FBQTdCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUY1RixVQUFLLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBR3pCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFBO0lBQ3RFLENBQUM7SUFFRixZQUFZLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUU7UUFFdkMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ2xJLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFL0MsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQTtRQUV4RyxhQUFhLENBQUMsSUFBSSxHQUFHLENBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxHQUFHLGFBQWEsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFFLENBQUE7UUFFNUUsYUFBYSxDQUFDLE9BQU8sR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsR0FBRyxhQUFhLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFBO1FBRXJGLGFBQWEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssS0FBSyxDQUFDLElBQUksT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLEtBQUssSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBRWpLLGFBQWEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUM7UUFFNUcsYUFBYSxDQUFDLFlBQVksR0FBRyxDQUFDLE9BQU8sSUFBSSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMs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b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFLYyxNQUFNOzJCQUFDLHFCQUFxQjs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcGlSZXF1ZXN0IH0gZnJvbSAnLi4vcmVxdWVzdC1tYW5hZ2VyLXN0YXRlLXNlcnZpY2UvbW9kZWxzJztcbmltcG9ydCB7IFNldHRpbmdPcHRpb25zIH0gZnJvbSAnLi4vbG9jYWwtc3RvcmFnZS1tYW5hZ2VyLXNlcnZpY2UnO1xuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMuc2VydmljZSc7XG5cbmltcG9ydCB7IENPTkZJR19TRVRUSU5HU19UT0tFTiB9IGZyb20gJy4uLy4uL21vZGVscy9jb25maWctdG9rZW4ubW9kZWwnO1xuaW1wb3J0IHsgQ29uZmlnSFRUUE9wdGlvbnMsIENvbmZpZ09wdGlvbnMsIExvY2FsU3RvcmFnZU9wdGlvbnMgfSBmcm9tICcuLi9yZXF1ZXN0LW1hbmFnZXItc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RNZXJnZXJTZXJ2aWNlIHtcblxuICB1dGlscyA9IGluamVjdChVdGlsc1NlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQ09ORklHX1NFVFRJTkdTX1RPS0VOKSBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbmZpZ09wdGlvbnM/OiBDb25maWdPcHRpb25zKSB7XG4gICAgICBpZiAoIXRoaXMuY29uZmlnT3B0aW9ucykgdGhpcy5jb25maWdPcHRpb25zID0gQ29uZmlnT3B0aW9ucy5hZGFwdCgpXG4gICB9XG5cbiAgbWVyZ2VPcHRpb25zKG9wdGlvbnMgPSBBcGlSZXF1ZXN0LmFkYXB0KCkpIHtcblxuICAgIGNvbnN0IGNvbmZpZ0ZvclJvb3QgPSAodGhpcy5jb25maWdPcHRpb25zPy5odHRwUmVxdWVzdE9wdGlvbnMpID8gdGhpcy5jb25maWdPcHRpb25zLmh0dHBSZXF1ZXN0T3B0aW9ucyA6IENvbmZpZ0hUVFBPcHRpb25zLmFkYXB0KClcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gQXBpUmVxdWVzdC5hZGFwdChvcHRpb25zKVxuXG4gICAgbWVyZ2VkT3B0aW9ucy5zZXJ2ZXIgPSAob3B0aW9ucyAmJiBvcHRpb25zLnNlcnZlciA9PT0gJycpID8gY29uZmlnRm9yUm9vdD8uc2VydmVyIHx8ICcnIDogb3B0aW9ucy5zZXJ2ZXJcblxuICAgIG1lcmdlZE9wdGlvbnMucGF0aCA9IFsgLi4ub3B0aW9ucy5wYXRoIHx8IFtdLCAuLi5jb25maWdGb3JSb290Py5wYXRoIHx8IFtdIF1cblxuICAgIG1lcmdlZE9wdGlvbnMuaGVhZGVycyA9IHsgLi4ub3B0aW9ucy5oZWFkZXJzIHx8IHt9LCAuLi5jb25maWdGb3JSb290Py5oZWFkZXJzIHx8IHt9IH1cblxuICAgIG1lcmdlZE9wdGlvbnMucmV0cnkgPSAob3B0aW9ucyAmJiAob3B0aW9ucz8ucmV0cnk/LnRpbWVzICE9PSAwIHx8IG9wdGlvbnM/LnJldHJ5Py5kZWxheSAhPT0gMykpID8gb3B0aW9ucy5yZXRyeSA6IGNvbmZpZ0ZvclJvb3Q/LnJldHJ5IHx8IHsgdGltZXM6IDAsIGRlbGF5OiAzIH07XG5cbiAgICBtZXJnZWRPcHRpb25zLnBvbGxpbmcgPSAob3B0aW9ucyAmJiBvcHRpb25zPy5wb2xsaW5nICE9PSAwKSA/IG9wdGlvbnMucG9sbGluZyA6IGNvbmZpZ0ZvclJvb3Q/LnBvbGxpbmcgfHwgMDtcblxuICAgIG1lcmdlZE9wdGlvbnMuZGlzcGxheUVycm9yID0gKG9wdGlvbnMgJiYgb3B0aW9ucz8uZGlzcGxheUVycm9yKSA/IG9wdGlvbnMuZGlzcGxheUVycm9yIDogY29uZmlnRm9yUm9vdD8uZGlzcGxheUVycm9yIHx8IGZhbHNlO1xuXG4gICAgbWVyZ2VkT3B0aW9ucy5zdHJlYW0gPSAob3B0aW9ucyAmJiBvcHRpb25zPy5zdHJlYW0pID8gb3B0aW9ucy5zdHJlYW0gOiBjb25maWdGb3JSb290Py5zdHJlYW0gfHwgZmFsc2U7XG5cbiAgICByZXR1cm4gbWVyZ2VkT3B0aW9ucztcblxuICB9XG5cbiAgbWVyZ2VTdG9yYWdlT3B0aW9ucyhvcHRpb25zID0gU2V0dGluZ09wdGlvbnMuYWRhcHQoKSkge1xuXG4gICAgY29uc3QgY29uZmlnRm9yUm9vdCA9ICh0aGlzLmNvbmZpZ09wdGlvbnM/LkxvY2FsU3RvcmFnZU9wdGlvbnMpID8gdGhpcy5jb25maWdPcHRpb25zLkxvY2FsU3RvcmFnZU9wdGlvbnMgOiBMb2NhbFN0b3JhZ2VPcHRpb25zLmFkYXB0KClcbiAgICBjb25zdCBjb25maWdGb3JSb290T3B0aW9ucyA9IGNvbmZpZ0ZvclJvb3Qub3B0aW9ucyB8fCBMb2NhbFN0b3JhZ2VPcHRpb25zLmFkYXB0KCkub3B0aW9uc1xuXG4gICAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IFNldHRpbmdPcHRpb25zLmFkYXB0KG9wdGlvbnMpXG5cbiAgICAvLyBzdG9yYWdlIHR5cGVcbiAgICBtZXJnZWRPcHRpb25zLnN0b3JhZ2UgPSAob3B0aW9ucyAmJiAodHlwZW9mIG9wdGlvbnMuc3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcpKSA/IG9wdGlvbnMuc3RvcmFnZSA6IChjb25maWdGb3JSb290T3B0aW9ucz8uc3RvcmFnZSA/PyAwKVxuXG4gICAgLy8gZXhwaXJlczogcHJlZmVyIGV4cGxpY2l0IG51bWVyaWMgZXhwaXJlczsgaWYgbm90IHByb3ZpZGVkLCBjb21wdXRlIGZyb20gZXhwaXJlc0luIHN0cmluZzsgb3RoZXJ3aXNlIHVzZSBjb25maWcgZGVmYXVsdFxuICAgIC8vIGlmIGFuIGV4cGxpY2l0LCBub24temVybyBudW1lcmljIGV4cGlyZXMgaXMgcHJvdmlkZWQsIHVzZSBpdFxuICAgIGlmIChvcHRpb25zICYmICh0eXBlb2Ygb3B0aW9ucy5leHBpcmVzICE9PSAndW5kZWZpbmVkJykgJiYgb3B0aW9ucy5leHBpcmVzICE9PSBudWxsICYmIE51bWJlcihvcHRpb25zLmV4cGlyZXMpID4gMCkge1xuICAgICAgbWVyZ2VkT3B0aW9ucy5leHBpcmVzID0gTnVtYmVyKG9wdGlvbnMuZXhwaXJlcyk7XG4gICAgfSBlbHNlIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZXhwaXJlc0luKSB7XG4gICAgICAvLyBjb21wdXRlIG51bWVyaWMgZXBvY2ggZnJvbSBleHBpcmVzSW4gc3RyaW5nIHVzaW5nIFV0aWxzU2VydmljZSBpZiBhdmFpbGFibGVcbiAgICAgIHRyeSB7XG4gICAgICAgIG1lcmdlZE9wdGlvbnMuZXhwaXJlcyA9IHRoaXMudXRpbHMgPyB0aGlzLnV0aWxzLmV4cGlyZXMob3B0aW9ucy5leHBpcmVzSW4pIDogMDtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBtZXJnZWRPcHRpb25zLmV4cGlyZXMgPSAwO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBtZXJnZWRPcHRpb25zLmV4cGlyZXMgPSBjb25maWdGb3JSb290T3B0aW9ucz8uZXhwaXJlcyA/PyAwO1xuICAgIH1cblxuICAgIC8vIGtlZXAgZXhwaXJlc0luIHN0cmluZyBpZiBleHBsaWNpdGx5IHByb3ZpZGVkLCBvdGhlcndpc2UgdXNlIGNvbmZpZyBkZWZhdWx0XG4gICAgbWVyZ2VkT3B0aW9ucy5leHBpcmVzSW4gPSAob3B0aW9ucyAmJiAodHlwZW9mIG9wdGlvbnMuZXhwaXJlc0luICE9PSAndW5kZWZpbmVkJykpID8gb3B0aW9ucy5leHBpcmVzSW4gOiAoY29uZmlnRm9yUm9vdE9wdGlvbnM/LmV4cGlyZXNJbiB8fCAnJylcblxuICAgIG1lcmdlZE9wdGlvbnMuZW5jcnlwdGVkID0gKG9wdGlvbnMgJiYgKHR5cGVvZiBvcHRpb25zLmVuY3J5cHRlZCAhPT0gJ3VuZGVmaW5lZCcpKSA/IG9wdGlvbnMuZW5jcnlwdGVkIDogKGNvbmZpZ0ZvclJvb3RPcHRpb25zPy5lbmNyeXB0ZWQgfHwgZmFsc2UpXG5cbiAgICByZXR1cm4gbWVyZ2VkT3B0aW9ucztcblxuICB9XG5cbn1cbiJdfQ==
@@ -1,54 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class PathQueryService {
4
- constructor() {
5
- this.removeEmptyParams = (obj) => Object.fromEntries(Object.entries(obj)
6
- .map(([key, value]) => [key, value && typeof value === 'object' ? this.removeEmptyParams(value) : value])
7
- .filter(([_, value]) => value !== undefined && value !== ""));
8
- }
9
- buildAPIPath(server, params) {
10
- server = (Array.isArray(server)) ? server.join('/') : server;
11
- const pathObjects = (params) ? params.filter((path) => (!this.isObject(path))) : [];
12
- const queryObjects = (params) ? params.filter((path) => (this.isObject(path))) : [];
13
- const query = this.removeEmptyParams(queryObjects.reduce((r, c) => {
14
- Object.entries(c).forEach(([key, value]) => {
15
- r[key] = Array.isArray(value) ? value.join(',') : value;
16
- });
17
- return r;
18
- }, {}));
19
- let path = this.buildRestPath(server, pathObjects);
20
- return (Object.keys(query).length > 0) ? path + '?' + this.buildQueryPath(query) : path;
21
- }
22
- buildRestPath(server, params) {
23
- server = (server) ? server : '';
24
- server = (server.charAt(0) === '/') ? server.substring(1) : server;
25
- return this.cleanUrlPath(server + '/' + params.join('/'));
26
- }
27
- buildQueryPath(params) {
28
- const searchParams = new URLSearchParams();
29
- for (const key in params) {
30
- if (Array.isArray(params[key])) {
31
- params[key].forEach((value) => searchParams.append(key, value));
32
- }
33
- else {
34
- searchParams.append(key, params[key]);
35
- }
36
- }
37
- return searchParams.toString();
38
- }
39
- cleanUrlPath(str) {
40
- return str.replace(/([^:]\/)\/+/g, "$1").replace(/\/$/, '');
41
- }
42
- isObject(val) {
43
- return (val === null) ? false : ((typeof val === 'function') || (typeof val === 'object'));
44
- }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PathQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
46
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PathQueryService, providedIn: 'root' }); }
47
- }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PathQueryService, decorators: [{
49
- type: Injectable,
50
- args: [{
51
- providedIn: 'root'
52
- }]
53
- }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC1xdWVyeS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaHR0cC1yZXF1ZXN0LW1hbmFnZXIvc3JjL2xpYi9zZXJ2aWNlcy91dGlscy9wYXRoLXF1ZXJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUg3QjtRQXlEVSxzQkFBaUIsR0FBRyxDQUFDLEdBQVEsRUFBdUIsRUFBRSxDQUM1RCxNQUFNLENBQUMsV0FBVyxDQUNoQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQzthQUNoQixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQ3BCLENBQUMsR0FBRyxFQUFFLEtBQUssSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQ2xGO2FBQ0EsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUMvRCxDQUFBO0tBRUo7SUE3REMsWUFBWSxDQUFDLE1BQXVCLEVBQUUsTUFBa0I7UUFFdEQsTUFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUE7UUFFNUQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVEsRUFB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QUMsR0FBUTtRQUN2QixPQUFPLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFFLENBQUE7SUFDOUYsQ0FBQzsrR0FwRFUsZ0JBQWdCO21IQUFoQixnQkFBZ0IsY0FGZixNQUFNOzs0RkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQYXRoUXVlcnlTZXJ2aWNlIHtcblxuICBidWlsZEFQSVBhdGgoc2VydmVyOiBzdHJpbmd8c3RyaW5nW10sIHBhcmFtcz86IGFueVtdfGFueSkge1xuXG4gICAgc2VydmVyID0gKEFycmF5LmlzQXJyYXkoc2VydmVyKSkgPyBzZXJ2ZXIuam9pbignLycpIDogc2VydmVyXG5cbiAgICBjb25zdCBwYXRoT2JqZWN0cyA9IChwYXJhbXMpID8gcGFyYW1zLmZpbHRlcigocGF0aDphbnkpID0+ICghdGhpcy5pc09iamVjdChwYXRoKSkpIDogW11cbiAgICBjb25zdCBxdWVyeU9iamVjdHMgPSAocGFyYW1zKSA/IHBhcmFtcy5maWx0ZXIoKHBhdGg6YW55KSA9PiAodGhpcy5pc09iamVjdChwYXRoKSkpIDogW11cblxuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5yZW1vdmVFbXB0eVBhcmFtcyhxdWVyeU9iamVjdHMucmVkdWNlKChyOiBhbnksIGM6IGFueSkgPT4ge1xuICAgICAgT2JqZWN0LmVudHJpZXMoYykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIHJba2V5XSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUuam9pbignLCcpIDogdmFsdWVcbiAgICAgIH0pXG4gICAgICByZXR1cm4gclxuICAgIH0sIHt9KSlcblxuICAgIGxldCBwYXRoID0gdGhpcy5idWlsZFJlc3RQYXRoKHNlcnZlciwgcGF0aE9iamVjdHMpXG5cbiAgICByZXR1cm4oT2JqZWN0LmtleXMocXVlcnkpLmxlbmd0aCA+IDApID8gcGF0aCArICc/JyArIHRoaXMuYnVpbGRRdWVyeVBhdGgocXVlcnkpIDogcGF0aFxuXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUmVzdFBhdGgoc2VydmVyOiBzdHJpbmcsIHBhcmFtczogYW55W10pOiBzdHJpbmcge1xuICAgIHNlcnZlciA9IChzZXJ2ZXIpID8gc2VydmVyIDogJydcbiAgICBzZXJ2ZXIgPSAoc2VydmVyLmNoYXJBdCgwKSA9PT0gJy8nKSA/IHNlcnZlci5zdWJzdHJpbmcoMSkgOiBzZXJ2ZXJcbiAgICByZXR1cm4gdGhpcy5jbGVhblVybFBhdGgoc2VydmVyICsnLycrIHBhcmFtcy5qb2luKCcvJykpXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkUXVlcnlQYXRoKHBhcmFtczogYW55KTogc3RyaW5nIHtcblxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKVxuXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGFyYW1zKSB7XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmFtc1trZXldKSkge1xuICAgICAgICBwYXJhbXNba2V5XS5mb3JFYWNoKCh2YWx1ZTogYW55KSA9PiBzZWFyY2hQYXJhbXMuYXBwZW5kKGtleSwgdmFsdWUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoa2V5LCBwYXJhbXNba2V5XSk7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgICByZXR1cm4gc2VhcmNoUGFyYW1zLnRvU3RyaW5nKClcblxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhblVybFBhdGgoc3RyOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc3RyLnJlcGxhY2UoLyhbXjpdXFwvKVxcLysvZywgXCIkMVwiKS5yZXBsYWNlKC9cXC8kLywnJylcbiAgfVxuXG4gIHByaXZhdGUgaXNPYmplY3QodmFsOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHZhbCA9PT0gbnVsbCkgPyBmYWxzZSA6ICggKHR5cGVvZiB2YWwgPT09ICdmdW5jdGlvbicpIHx8ICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JykgKVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVFbXB0eVBhcmFtcyA9IChvYmo6IGFueSk6IFJlY29yZDxzdHJpbmcsIGFueT4gPT5cbiAgICBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhvYmopXG4gICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT5cbiAgICAgICAgICBba2V5LCB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnID8gdGhpcy5yZW1vdmVFbXB0eVBhcmFtcyh2YWx1ZSkgOiB2YWx1ZV1cbiAgICAgICAgKVxuICAgICAgICAuZmlsdGVyKChbXywgdmFsdWVdKSA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBcIlwiKVxuICAgIClcblxufVxuIl19