@pixelpay/sdk-core 2.4.12 → 2.4.13-beta.1

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 (35) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/lib/base/Helpers.d.ts +17 -1
  3. package/lib/base/Helpers.js +38 -2
  4. package/lib/base/Helpers.js.map +1 -1
  5. package/lib/base/RequestBehaviour.d.ts +24 -0
  6. package/lib/base/RequestBehaviour.js +30 -1
  7. package/lib/base/RequestBehaviour.js.map +1 -1
  8. package/lib/base/ServiceBehaviour.d.ts +30 -0
  9. package/lib/base/ServiceBehaviour.js +79 -0
  10. package/lib/base/ServiceBehaviour.js.map +1 -1
  11. package/lib/browser/index.js +15 -7
  12. package/lib/exceptions/FailedEncryptionException.d.ts +2 -0
  13. package/lib/exceptions/FailedEncryptionException.js +6 -0
  14. package/lib/exceptions/FailedEncryptionException.js.map +1 -0
  15. package/lib/index.d.ts +2 -0
  16. package/lib/index.js +2 -0
  17. package/lib/index.js.map +1 -1
  18. package/lib/models/Settings.d.ts +4 -0
  19. package/lib/models/Settings.js +4 -0
  20. package/lib/models/Settings.js.map +1 -1
  21. package/lib/requests/CardTokenization.d.ts +14 -0
  22. package/lib/requests/CardTokenization.js +44 -0
  23. package/lib/requests/CardTokenization.js.map +1 -1
  24. package/lib/requests/LookupTransaction.d.ts +14 -0
  25. package/lib/requests/LookupTransaction.js +42 -0
  26. package/lib/requests/LookupTransaction.js.map +1 -1
  27. package/lib/requests/PaymentTransaction.d.ts +14 -0
  28. package/lib/requests/PaymentTransaction.js +42 -0
  29. package/lib/requests/PaymentTransaction.js.map +1 -1
  30. package/lib/services/Transaction.js +5 -2
  31. package/lib/services/Transaction.js.map +1 -1
  32. package/lib/version.d.ts +1 -1
  33. package/lib/version.js +1 -1
  34. package/lib/version.js.map +1 -1
  35. package/package.json +6 -2
package/CHANGELOG.md CHANGED
@@ -5,6 +5,10 @@ El formato se basa en [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  y este proyecto se adhiere a [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
  Tipos de cambios: `Added`, `Changed`, `Deprecated`, `Removed`, `Fixed`, `Security`.
7
7
 
8
+ ## [v2.4.13] - unreleased
9
+ ### Added
10
+ - Se agregó encriptación de datos de tarjeta.
11
+
8
12
  ## [v2.4.12] - 2026-03-31
9
13
  ### Added
10
14
  - Se agregó `timeout` para esperar que se complete el methodURL de cardinal
@@ -1,3 +1,4 @@
1
+ import nacl from 'tweetnacl';
1
2
  declare const _default: {
2
3
  /**
3
4
  * Serialize object to JSON string without empties
@@ -5,7 +6,7 @@ declare const _default: {
5
6
  * @param value
6
7
  * @return
7
8
  */
8
- objectToJson(value: any): string;
9
+ objectToJson(value: any, ignore?: string[]): string;
9
10
  /**
10
11
  * Helper to hash object by algorithm
11
12
  *
@@ -35,6 +36,21 @@ declare const _default: {
35
36
  * @return
36
37
  */
37
38
  parseAmount(amount: number | null | undefined): string | null;
39
+ /**
40
+ * Generate encryption key pair
41
+ *
42
+ * @return
43
+ */
44
+ getKeyPair(): nacl.BoxKeyPair;
45
+ /**
46
+ * Encrypt message, returns encrypted value concatenated with base64 nonce.
47
+ *
48
+ * @param message
49
+ * @param publicKey
50
+ * @param keyPair
51
+ * @return
52
+ */
53
+ encrypt(message: string | null, publicKey: string | null, keyPair: nacl.BoxKeyPair): string | null;
38
54
  /**
39
55
  * Verify if environment is a Browser
40
56
  */
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const tweetnacl_1 = __importDefault(require("tweetnacl"));
7
+ const tweetnacl_util_1 = __importDefault(require("tweetnacl-util"));
3
8
  const crypto_js_1 = require("crypto-js");
4
9
  exports.default = {
5
10
  /**
@@ -8,10 +13,10 @@ exports.default = {
8
13
  * @param value
9
14
  * @return
10
15
  */
11
- objectToJson(value) {
16
+ objectToJson(value, ignore = []) {
12
17
  const filtered = Object.assign({}, value);
13
18
  for (var propName in filtered) {
14
- if (filtered[propName] === null || filtered[propName] === undefined) {
19
+ if (filtered[propName] === null || filtered[propName] === undefined || ignore.includes(propName)) {
15
20
  delete filtered[propName];
16
21
  }
17
22
  }
@@ -70,6 +75,37 @@ exports.default = {
70
75
  }
71
76
  return null;
72
77
  },
78
+ /**
79
+ * Generate encryption key pair
80
+ *
81
+ * @return
82
+ */
83
+ getKeyPair() {
84
+ return tweetnacl_1.default.box.keyPair();
85
+ },
86
+ /**
87
+ * Encrypt message, returns encrypted value concatenated with base64 nonce.
88
+ *
89
+ * @param message
90
+ * @param publicKey
91
+ * @param keyPair
92
+ * @return
93
+ */
94
+ encrypt(message, publicKey, keyPair) {
95
+ if (!message) {
96
+ return null;
97
+ }
98
+ if (message.includes('|')) {
99
+ return message;
100
+ }
101
+ const nonce = tweetnacl_1.default.randomBytes(24);
102
+ const merchantPublicKey = tweetnacl_util_1.default.decodeBase64(publicKey);
103
+ const sharedKey = tweetnacl_1.default.box.before(merchantPublicKey, keyPair.secretKey);
104
+ const box = tweetnacl_1.default.box.after(tweetnacl_util_1.default.decodeUTF8(message), nonce, sharedKey);
105
+ const boxb64 = tweetnacl_util_1.default.encodeBase64(box);
106
+ const nonceb64 = tweetnacl_util_1.default.encodeBase64(nonce);
107
+ return `${boxb64}|${nonceb64}`;
108
+ },
73
109
  /**
74
110
  * Verify if environment is a Browser
75
111
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Helpers.js","sourceRoot":"","sources":["../../src/base/Helpers.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import nacl from 'tweetnacl';
1
2
  export default class RequestBehaviour {
2
3
  /**
3
4
  * Environment identifier (live|test|sandbox)
@@ -15,10 +16,33 @@ export default class RequestBehaviour {
15
16
  * SDK version
16
17
  */
17
18
  sdk_version: string;
19
+ /**
20
+ * For internal use to prevent encrypting same request instance twice
21
+ */
22
+ protected sdk_key_pair: nacl.BoxKeyPair;
18
23
  /**
19
24
  * Initialize request
20
25
  */
21
26
  constructor();
27
+ /**
28
+ * Get sdk_key_pair from current instance
29
+ *
30
+ * @return
31
+ */
32
+ getSDKKeyPair(): nacl.BoxKeyPair | null;
33
+ /**
34
+ * Check if current request needs encryption, must be overriden by inherited classes.
35
+ *
36
+ * @return
37
+ */
38
+ isEncryptable(): boolean;
39
+ /**
40
+ * Encrypt fields with sensitive data, must be overriden by inherited classes.
41
+ *
42
+ * @param publicKey
43
+ * @return
44
+ */
45
+ withEncryption(publicKey: string): string | null;
22
46
  /**
23
47
  * Serialize object to JSON string
24
48
  *
@@ -26,6 +26,10 @@ class RequestBehaviour {
26
26
  * SDK version
27
27
  */
28
28
  this.sdk_version = null;
29
+ /**
30
+ * For internal use to prevent encrypting same request instance twice
31
+ */
32
+ this.sdk_key_pair = null;
29
33
  this.lang = Intl.DateTimeFormat().resolvedOptions().locale;
30
34
  this.from = 'sdk-javascript';
31
35
  this.sdk_version = version_1.default;
@@ -33,13 +37,38 @@ class RequestBehaviour {
33
37
  this.lang = 'es';
34
38
  }
35
39
  }
40
+ /**
41
+ * Get sdk_key_pair from current instance
42
+ *
43
+ * @return
44
+ */
45
+ getSDKKeyPair() {
46
+ return this.sdk_key_pair;
47
+ }
48
+ /**
49
+ * Check if current request needs encryption, must be overriden by inherited classes.
50
+ *
51
+ * @return
52
+ */
53
+ isEncryptable() {
54
+ return false;
55
+ }
56
+ /**
57
+ * Encrypt fields with sensitive data, must be overriden by inherited classes.
58
+ *
59
+ * @param publicKey
60
+ * @return
61
+ */
62
+ withEncryption(publicKey) {
63
+ return null;
64
+ }
36
65
  /**
37
66
  * Serialize object to JSON string
38
67
  *
39
68
  * @return
40
69
  */
41
70
  toJson() {
42
- return Helpers_1.default.objectToJson(this);
71
+ return Helpers_1.default.objectToJson(this, ['sdk_key_pair']);
43
72
  }
44
73
  }
45
74
  exports.default = RequestBehaviour;
@@ -1 +1 @@
1
- {"version":3,"file":"RequestBehaviour.js","sourceRoot":"","sources":["../../src/base/RequestBehaviour.ts"],"names":[],"mappings":";;;;;AAAA,wDAAgC;AAChC,yDAAiC;AAEjC,MAAqB,gBAAgB;IAqBpC;;OAEG;IACH;QAvBA;;WAEG;QACH,QAAG,GAAW,IAAI,CAAC;QAEnB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,gBAAW,GAAW,IAAI,CAAC;QAM1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,iBAAO,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACF,CAAC;IAED;;;;OAIG;IACH,MAAM;QACL,OAAO,iBAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;CACD;AA1CD,mCA0CC"}
1
+ {"version":3,"file":"RequestBehaviour.js","sourceRoot":"","sources":["../../src/base/RequestBehaviour.ts"],"names":[],"mappings":";;;;;AACA,wDAAgC;AAChC,yDAAiC;AAEjC,MAAqB,gBAAgB;IA0BpC;;OAEG;IACH;QA5BA;;WAEG;QACH,QAAG,GAAW,IAAI,CAAC;QAEnB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,SAAI,GAAW,IAAI,CAAC;QAEpB;;WAEG;QACH,gBAAW,GAAW,IAAI,CAAC;QAE3B;;WAEG;QACO,iBAAY,GAAoB,IAAI,CAAC;QAM9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,iBAAO,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACjB;IACF,CAAC;IAED;;;;OAIG;IACH,aAAa;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,aAAa;QACZ,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC;IACb,CAAC;IAGD;;;;OAIG;IACH,MAAM;QACL,OAAO,iBAAO,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IACrD,CAAC;CACD;AA5ED,mCA4EC"}
@@ -6,6 +6,10 @@ export default class ServiceBehaviour {
6
6
  * Settings service model
7
7
  */
8
8
  settings: Settings;
9
+ /**
10
+ * Public key from pair generated by current instance.
11
+ */
12
+ private sdk_public_key;
9
13
  /**
10
14
  * Initialize service
11
15
  */
@@ -33,6 +37,32 @@ export default class ServiceBehaviour {
33
37
  * @returns
34
38
  */
35
39
  private exceptionResponse;
40
+ /**
41
+ * Verify and set request encryption values
42
+ *
43
+ * @param request
44
+ */
45
+ private validateEncryption;
46
+ /**
47
+ * Resiliently fetch merchant public key, trying at least 3 times before failing
48
+ *
49
+ * @throws InvalidCredentialsException
50
+ */
51
+ private validateMerchantPublicKey;
52
+ /**
53
+ * Resiliently generate keys and encrypt request, trying at least 3 times before failing
54
+ *
55
+ * @param request
56
+ * @throws FailedEncryptionException
57
+ */
58
+ private validateSDKPublicKey;
59
+ /**
60
+ * Fetch merchant public key for encryption
61
+ *
62
+ * @return
63
+ * @throws InvalidCredentialsException
64
+ */
65
+ private fetchMerchantPublicKey;
36
66
  /**
37
67
  * Get API route
38
68
  *
@@ -5,6 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const axios_1 = __importDefault(require("axios"));
7
7
  const InvalidCredentialsException_1 = __importDefault(require("../exceptions/InvalidCredentialsException"));
8
+ const FailedEncryptionException_1 = __importDefault(require("../exceptions/FailedEncryptionException"));
9
+ const RequestBehaviour_1 = __importDefault(require("./RequestBehaviour"));
8
10
  const Response_1 = __importDefault(require("./Response"));
9
11
  const ErrorResponse_1 = __importDefault(require("../responses/ErrorResponse"));
10
12
  const FailureResponse_1 = __importDefault(require("../responses/FailureResponse"));
@@ -17,6 +19,7 @@ const PaymentDeclinedResponse_1 = __importDefault(require("../responses/PaymentD
17
19
  const PreconditionalResponse_1 = __importDefault(require("../responses/PreconditionalResponse"));
18
20
  const SuccessResponse_1 = __importDefault(require("../responses/SuccessResponse"));
19
21
  const TimeoutResponse_1 = __importDefault(require("../responses/TimeoutResponse"));
22
+ const PUBLIC_KEY_PATH = 'api/v2/merchant/public_key';
20
23
  class ServiceBehaviour {
21
24
  /**
22
25
  * Initialize service
@@ -56,6 +59,9 @@ class ServiceBehaviour {
56
59
  if (this.settings.auth_user) {
57
60
  headers['x-auth-user'] = this.settings.auth_user;
58
61
  }
62
+ if (this.sdk_public_key) {
63
+ headers['x-auth-secure'] = this.sdk_public_key;
64
+ }
59
65
  if (this.settings.headers) {
60
66
  for (const header in this.settings.headers) {
61
67
  headers[header] = this.settings.headers[header];
@@ -139,6 +145,73 @@ class ServiceBehaviour {
139
145
  response.message = e.message;
140
146
  return response;
141
147
  }
148
+ /**
149
+ * Verify and set request encryption values
150
+ *
151
+ * @param request
152
+ */
153
+ async validateEncryption(request) {
154
+ if (!request.isEncryptable()) {
155
+ return;
156
+ }
157
+ await this.validateMerchantPublicKey();
158
+ this.validateSDKPublicKey(request);
159
+ }
160
+ /**
161
+ * Resiliently fetch merchant public key, trying at least 3 times before failing
162
+ *
163
+ * @throws InvalidCredentialsException
164
+ */
165
+ async validateMerchantPublicKey() {
166
+ let tries = 0;
167
+ while (!this.settings.public_key && tries < 3) {
168
+ this.settings.public_key = await this.fetchMerchantPublicKey();
169
+ tries++;
170
+ }
171
+ if (this.settings.public_key == null) {
172
+ throw new InvalidCredentialsException_1.default('Could not obtain necessary credentials for transaction.');
173
+ }
174
+ }
175
+ /**
176
+ * Resiliently generate keys and encrypt request, trying at least 3 times before failing
177
+ *
178
+ * @param request
179
+ * @throws FailedEncryptionException
180
+ */
181
+ validateSDKPublicKey(request) {
182
+ let tries = 0;
183
+ let lastError = null;
184
+ while (!this.sdk_public_key && tries < 3 || tries === 0) {
185
+ try {
186
+ this.sdk_public_key = request.withEncryption(this.settings.public_key);
187
+ }
188
+ catch (err) {
189
+ lastError = err;
190
+ }
191
+ finally {
192
+ tries++;
193
+ }
194
+ }
195
+ if (!this.sdk_public_key && lastError) {
196
+ throw lastError;
197
+ }
198
+ if (!this.sdk_public_key) {
199
+ throw new FailedEncryptionException_1.default('Could not process encryption, please try again.');
200
+ }
201
+ }
202
+ /**
203
+ * Fetch merchant public key for encryption
204
+ *
205
+ * @return
206
+ * @throws InvalidCredentialsException
207
+ */
208
+ async fetchMerchantPublicKey() {
209
+ const response = await this.get(PUBLIC_KEY_PATH, new RequestBehaviour_1.default());
210
+ if (response.success) {
211
+ return response.getData('public_key');
212
+ }
213
+ return null;
214
+ }
142
215
  /**
143
216
  * Get API route
144
217
  *
@@ -158,6 +231,7 @@ class ServiceBehaviour {
158
231
  */
159
232
  async post(url, body) {
160
233
  try {
234
+ await this.validateEncryption(body);
161
235
  const response = await this.buildRequest(url, body).post(url, JSON.parse(body.toJson()));
162
236
  return this.parseResponse(response.data, response.status);
163
237
  }
@@ -175,6 +249,7 @@ class ServiceBehaviour {
175
249
  */
176
250
  async put(url, body) {
177
251
  try {
252
+ await this.validateEncryption(body);
178
253
  const response = await this.buildRequest(url, body).put(url, JSON.parse(body.toJson()));
179
254
  return this.parseResponse(response.data, response.status);
180
255
  }
@@ -192,6 +267,7 @@ class ServiceBehaviour {
192
267
  */
193
268
  async delete(url, body) {
194
269
  try {
270
+ await this.validateEncryption(body);
195
271
  const response = await this.buildRequest(url, body).delete(url, {
196
272
  params: JSON.parse(body.toJson()),
197
273
  });
@@ -211,6 +287,9 @@ class ServiceBehaviour {
211
287
  */
212
288
  async get(url, body) {
213
289
  try {
290
+ if (url !== PUBLIC_KEY_PATH) {
291
+ await this.validateEncryption(body);
292
+ }
214
293
  const response = await this.buildRequest(url, body).get(url, {
215
294
  params: JSON.parse(body.toJson()),
216
295
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceBehaviour.js","sourceRoot":"","sources":["../../src/base/ServiceBehaviour.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServiceBehaviour.js","sourceRoot":"","sources":["../../src/base/ServiceBehaviour.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C;AAC7C,4GAAoF;AACpF,wGAAgF;AAEhF,0EAAkD;AAElD,0DAAkC;AAClC,+EAAuD;AACvD,mFAA2D;AAC3D,yFAAiE;AACjE,iGAAyE;AACzE,qFAA6D;AAC7D,qFAA6D;AAC7D,mFAA2D;AAC3D,mGAA2E;AAC3E,iGAAyE;AACzE,mFAA2D;AAE3D,mFAA2D;AAE3D,MAAM,eAAe,GAAG,4BAA4B,CAAC;AAErD,MAAqB,gBAAgB;IAWpC;;OAEG;IACH,YAAY,QAAkB;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACK,YAAY,CAAC,GAAW,EAAE,WAA6B;QAC9D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YACxD,MAAM,IAAI,qCAA2B,CAAC,uDAAuD,CAAC,CAAC;SAC/F;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,EAAE;YACtC,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;SAC5C;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,EAAE;YAC/B,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;SACtC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,IAAI,EAAE;YAC9B,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;SACrC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,EAAE;YACtC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;SACpD;QAED,MAAM,OAAO,GAAG;YACf,QAAQ,EAAE,kBAAkB;YAC5B,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YACpC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;SACtC,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC5B,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;SACjD;QAED,IAAI,IAAI,CAAC,cAAc,EAAE;YACxB,OAAO,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;SAC/C;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC1B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC3C,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAChD;SACD;QAED,OAAO,eAAK,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAC/B,OAAO,EAAE,IAAI,GAAG,EAAE;YAClB,OAAO;YACP,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI;SAC1B,CAAC,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,IAAS,EAAE,MAAc;QACtC,IAAI,GAAG,GAAG,IAAI,kBAAQ,EAAE,CAAC;QAEzB,QAAQ,MAAM,EAAE;YACf,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,yBAAe,EAAE,CAAC;gBAAC,MAAM;YAE7C,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,yBAAe,EAAE,CAAC;gBAAC,MAAM;YAE7C,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,uBAAa,EAAE,CAAC;gBAAC,MAAM;YAE3C,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,0BAAgB,EAAE,CAAC;gBAAC,MAAM;YAE9C,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,iCAAuB,EAAE,CAAC;gBAAC,MAAM;YAErD,KAAK,GAAG,CAAC;YACT,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,0BAAgB,EAAE,CAAC;gBAAC,MAAM;YAE9C,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,yBAAe,EAAE,CAAC;gBAAC,MAAM;YAE7C,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,gCAAsB,EAAE,CAAC;gBAAC,MAAM;YAEpD,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,4BAAkB,EAAE,CAAC;gBAAC,MAAM;YAEhD,KAAK,GAAG;gBAAE,GAAG,GAAG,IAAI,yBAAe,EAAE,CAAC;gBAAC,MAAM;YAE7C;gBACC,IAAI,MAAM,GAAG,GAAG,EAAE;oBACjB,GAAG,GAAG,IAAI,gCAAsB,EAAE,CAAC;iBACnC;gBACD,MAAM;SACP;QAED,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;QACpB,GAAG,CAAC,MAAM,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,IAAI,CAAC;QAClC,GAAG,CAAC,OAAO,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,KAAK,CAAC;QACrC,GAAG,CAAC,OAAO,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,IAAI,CAAC;QACpC,GAAG,CAAC,IAAI,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAI,IAAI,CAAC;QAC9B,GAAG,CAAC,MAAM,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,IAAI,CAAC;QAElC,OAAO,GAAG,CAAC;IACZ,CAAC;IAED;;;;;OAKG;IACK,iBAAiB,CAAC,CAAQ;QACjC,MAAM,QAAQ,GAAG,IAAI,yBAAe,EAAE,CAAC;QACvC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;QACtB,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QAE7B,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,kBAAkB,CAAC,OAAyB;QACzD,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE;YAC7B,OAAO;SACP;QAED,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACvC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,yBAAyB;QACtC,IAAI,KAAK,GAAW,CAAC,CAAC;QAEtB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,KAAK,GAAG,CAAC,EAAE;YAC9C,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC/D,KAAK,EAAE,CAAC;SACR;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,EAAE;YACrC,MAAM,IAAI,qCAA2B,CAAC,yDAAyD,CAAC,CAAC;SACjG;IACF,CAAC;IAED;;;;;OAKG;IACK,oBAAoB,CAAC,OAAyB;QACrD,IAAI,KAAK,GAAW,CAAC,CAAC;QACtB,IAAI,SAAS,GAA8B,IAAI,CAAC;QAEhD,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;YACxD,IAAI;gBACH,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;aACvE;YAAC,OAAO,GAAG,EAAE;gBACb,SAAS,GAAG,GAAG,CAAC;aAChB;oBAAS;gBACT,KAAK,EAAE,CAAC;aACR;SACD;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,SAAS,EAAE;YACtC,MAAM,SAAS,CAAC;SAChB;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACzB,MAAM,IAAI,mCAAyB,CAAC,iDAAiD,CAAC,CAAC;SACvF;IACF,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,sBAAsB;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,0BAAgB,EAAE,CAAC,CAAC;QAEzE,IAAI,QAAQ,CAAC,OAAO,EAAE;YACrB,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SACtC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACO,QAAQ,CAAC,KAAa;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,GAAG,KAAK,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACO,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,IAAsB;QACvD,IAAI;YACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAEzF,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC1D;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACjC;IACF,CAAC;IAED;;;;;;;OAOG;IACO,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,IAAsB;QACtD,IAAI;YACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAExF,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC1D;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACjC;IACF,CAAC;IAED;;;;;;;OAOG;IACO,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,IAAsB;QACzD,IAAI;YACH,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAEpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;gBAC/D,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;aACjC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC1D;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACjC;IACF,CAAC;IAED;;;;;;;OAOG;IACO,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,IAAsB;QACtD,IAAI;YACH,IAAI,GAAG,KAAK,eAAe,EAAE;gBAC5B,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;aACpC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC5D,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;aACjC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;SAC1D;QAAC,OAAO,CAAC,EAAE;YACX,OAAO,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;SACjC;IACF,CAAC;CACD;AA1TD,mCA0TC"}