@ozura/elements 0.1.0-beta.4 → 0.1.0-beta.6

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 (37) hide show
  1. package/README.md +30 -27
  2. package/dist/frame/element-frame.html +1 -1
  3. package/dist/frame/tokenizer-frame.html +1 -1
  4. package/dist/frame/tokenizer-frame.js +33 -34
  5. package/dist/frame/tokenizer-frame.js.map +1 -1
  6. package/dist/oz-elements.esm.js +31 -37
  7. package/dist/oz-elements.esm.js.map +1 -1
  8. package/dist/oz-elements.umd.js +31 -36
  9. package/dist/oz-elements.umd.js.map +1 -1
  10. package/dist/react/frame/tokenizerFrame.d.ts +9 -9
  11. package/dist/react/index.cjs.js +33 -39
  12. package/dist/react/index.cjs.js.map +1 -1
  13. package/dist/react/index.esm.js +33 -39
  14. package/dist/react/index.esm.js.map +1 -1
  15. package/dist/react/react/index.d.ts +1 -3
  16. package/dist/react/sdk/OzVault.d.ts +1 -1
  17. package/dist/react/sdk/errors.d.ts +4 -3
  18. package/dist/react/sdk/index.d.ts +2 -2
  19. package/dist/react/server/index.d.ts +11 -17
  20. package/dist/react/types/index.d.ts +92 -5
  21. package/dist/server/frame/tokenizerFrame.d.ts +9 -9
  22. package/dist/server/index.cjs.js +18 -26
  23. package/dist/server/index.cjs.js.map +1 -1
  24. package/dist/server/index.esm.js +18 -26
  25. package/dist/server/index.esm.js.map +1 -1
  26. package/dist/server/sdk/OzVault.d.ts +1 -1
  27. package/dist/server/sdk/errors.d.ts +4 -3
  28. package/dist/server/sdk/index.d.ts +2 -2
  29. package/dist/server/server/index.d.ts +11 -17
  30. package/dist/server/types/index.d.ts +92 -5
  31. package/dist/types/frame/tokenizerFrame.d.ts +9 -9
  32. package/dist/types/sdk/OzVault.d.ts +1 -1
  33. package/dist/types/sdk/errors.d.ts +4 -3
  34. package/dist/types/sdk/index.d.ts +2 -2
  35. package/dist/types/server/index.d.ts +11 -17
  36. package/dist/types/types/index.d.ts +92 -5
  37. package/package.json +2 -2
package/README.md CHANGED
@@ -23,7 +23,7 @@ The Ozura Vault stores and tokenizes sensitive card data. OzElements is the fron
23
23
  ```
24
24
  Your page (yoursite.com)
25
25
 
26
- │ import { OzVault } from 'oz-elements'
26
+ │ import { OzVault } from '@ozura/elements'
27
27
 
28
28
  │ const vault = new OzVault('vault_api_key');
29
29
 
@@ -52,21 +52,23 @@ Raw card data travels one path: element iframe → tokenizer iframe (direct same
52
52
  ## Installation
53
53
 
54
54
  ```bash
55
- npm install oz-elements
55
+ npm install @ozura/elements
56
56
  ```
57
57
 
58
- Or via script tag (UMD):
58
+ Or via script tag (UMD) from jsDelivr (served from npm after you publish):
59
59
 
60
60
  ```html
61
- <script src="https://cdn.ozura.com/oz-elements/oz-elements.umd.js"></script>
61
+ <script src="https://cdn.jsdelivr.net/npm/@ozura/elements/dist/oz-elements.umd.js"></script>
62
62
  ```
63
63
 
64
+ For production, pin a version: `.../npm/@ozura/elements@1.0.0/dist/oz-elements.umd.js`
65
+
64
66
  ---
65
67
 
66
68
  ## Quick start
67
69
 
68
70
  ```js
69
- import { OzVault } from 'oz-elements';
71
+ import { OzVault } from '@ozura/elements';
70
72
 
71
73
  const vault = new OzVault('your_vault_api_key', {
72
74
  pubKey: 'your_pub_key',
@@ -236,21 +238,21 @@ Updates `style`, `placeholder`, or `disabled` on a mounted element without remou
236
238
  ## React
237
239
 
238
240
  ```bash
239
- npm install oz-elements
241
+ npm install @ozura/elements
240
242
  ```
241
243
 
242
244
  Import from the `/react` subpath:
243
245
 
244
246
  ```tsx
245
- import { OzElements, OzCardNumber, OzExpiry, OzCvv, useOzElements } from 'oz-elements/react';
247
+ import { OzElements, OzCardNumber, OzExpiry, OzCvv, useOzElements } from '@ozura/elements/react';
246
248
  ```
247
249
 
248
250
  ### Example
249
251
 
250
252
  ```tsx
251
253
  import { useState } from 'react';
252
- import { OzElements, OzCardNumber, OzExpiry, OzCvv, useOzElements } from 'oz-elements/react';
253
- import { normalizeCardSaleError } from 'oz-elements';
254
+ import { OzElements, OzCardNumber, OzExpiry, OzCvv, useOzElements } from '@ozura/elements/react';
255
+ import { normalizeCardSaleError } from '@ozura/elements';
254
256
 
255
257
  const fieldStyle = {
256
258
  base: { color: '#111827', fontSize: '16px', fontFamily: 'Inter, sans-serif' },
@@ -389,7 +391,7 @@ For the full credential setup, billing form field requirements, validation rules
389
391
  ### 1 — Collect card data + billing in one call
390
392
 
391
393
  ```js
392
- import { OzVault, normalizeCardSaleError } from 'oz-elements';
394
+ import { OzVault, normalizeCardSaleError } from '@ozura/elements';
393
395
 
394
396
  const vault = new OzVault('vault_api_key_here', {
395
397
  pubKey: 'your_pub_key',
@@ -470,7 +472,7 @@ Your server proxies to the Ozura Pay API with **two API keys** in the headers:
470
472
 
471
473
  ```js
472
474
  // Node.js / Express example
473
- import type { CardSaleRequest, CardSaleApiResponse } from 'oz-elements';
475
+ import type { CardSaleRequest, CardSaleApiResponse } from '@ozura/elements';
474
476
 
475
477
  app.post('/api/charge', async (req, res) => {
476
478
  const body = req.body;
@@ -545,7 +547,7 @@ app.post('/api/charge', async (req, res) => {
545
547
  ### 3 — cardSale response shape
546
548
 
547
549
  ```ts
548
- import type { CardSaleApiResponse, CardSaleResponseData } from 'oz-elements';
550
+ import type { CardSaleApiResponse, CardSaleResponseData } from '@ozura/elements';
549
551
 
550
552
  // Successful response shape from POST /api/v1/cardSale:
551
553
  // {
@@ -591,7 +593,7 @@ app.get('/api/client-ip', (req, res) => {
591
593
  Maps raw Pay API error strings to user-friendly copy. Uses the same key table as the Ozura checkout frontend — identical errors produce identical messages on both surfaces:
592
594
 
593
595
  ```js
594
- import { normalizeCardSaleError } from 'oz-elements';
596
+ import { normalizeCardSaleError } from '@ozura/elements';
595
597
 
596
598
  normalizeCardSaleError('Insufficient Funds')
597
599
  // → "Your card has insufficient funds. Please use a different payment method."
@@ -608,7 +610,7 @@ normalizeCardSaleError('Card expired')
608
610
  Import the interface to type your cardSale payload and catch missing fields at compile time:
609
611
 
610
612
  ```ts
611
- import type { CardSaleRequest } from 'oz-elements';
613
+ import type { CardSaleRequest } from '@ozura/elements';
612
614
 
613
615
  const payload: CardSaleRequest = {
614
616
  processor: 'elavon',
@@ -660,14 +662,14 @@ Build outputs in `dist/`:
660
662
 
661
663
  | File | Format | Use |
662
664
  |---|---|---|
663
- | `oz-elements.esm.js` | ESM | `import { OzVault } from 'oz-elements'` |
665
+ | `oz-elements.esm.js` | ESM | `import { OzVault } from '@ozura/elements'` |
664
666
  | `oz-elements.umd.js` | UMD | `<script>` tag / CDN |
665
667
  | `frame/element-frame.js` | IIFE | loaded by element iframes |
666
668
  | `frame/tokenizer-frame.js` | IIFE | loaded by tokenizer iframe |
667
- | `react/index.esm.js` | ESM | `import ... from 'oz-elements/react'` |
668
- | `react/index.cjs.js` | CJS | `require('oz-elements/react')` |
669
+ | `react/index.esm.js` | ESM | `import ... from '@ozura/elements/react'` |
670
+ | `react/index.cjs.js` | CJS | `require('@ozura/elements/react')` |
669
671
 
670
- See [DEVELOPMENT.md](./DEVELOPMENT.md) for architecture detail, security model, and internal progress log.
672
+ See [ARCHITECTURE.md](./ARCHITECTURE.md) for architecture detail, security model, and pre-production requirements.
671
673
 
672
674
  ---
673
675
 
@@ -692,23 +694,24 @@ See [DEVELOPMENT.md](./DEVELOPMENT.md) for architecture detail, security model,
692
694
  - [x] `OzVault.isReady` getter
693
695
  - [x] `element.mount()` accepts `HTMLElement` as well as a CSS selector
694
696
  - [x] Unit test suite (Vitest + jsdom) — 168 tests, 0 failures
695
- - [ ] Published to npm as `oz-elements`
696
- - [ ] CDN delivery for UMD build
697
+ - [ ] Published to npm as `@ozura/elements`
698
+ - [ ] CDN delivery for UMD build (optional for v1)
697
699
 
698
700
  ### v0.3 — React ✅
699
701
  - [x] `<OzElements>` provider — creates and owns an `OzVault` instance
700
702
  - [x] `<OzCardNumber />`, `<OzExpiry />`, `<OzCvv />` field components
701
703
  - [x] `useOzElements()` hook — `createToken` + `ready` flag
702
- - [x] ESM + CJS React bundle, exported at `oz-elements/react`
703
- - [ ] Published as a standalone `@oz/react-elements` package
704
+ - [x] ESM + CJS React bundle, exported at `@ozura/elements/react`
705
+ - [ ] Published as a standalone `@oz/react-elements` package (optional; subpath export is sufficient for v1)
704
706
 
705
707
  ### v1.0 — Production ready
706
708
  - [x] Production iframe hosting at `elements.ozura.com`
707
- - [ ] postMessage integration tests
708
- - [ ] Security audit
709
- - [ ] Public documentation site
710
- - [ ] ACH / bank account element (pending Pay API support)
711
- - [ ] Saved payment method support (returning customers)
709
+ - [x] postMessage security covered (unit + E2E tests; see `docs/AUDIT.md`)
710
+ - [x] Security audit (consolidated in `docs/AUDIT.md`; all findings resolved or closed)
711
+ - [ ] Publish `@ozura/elements@1.0.0` to npm
712
+ - [ ] Public documentation site (or link to ozura-documentation)
713
+ - [ ] ACH / bank account element (pending Pay API support) — post-v1
714
+ - [ ] Saved payment method support (returning customers) — post-v1
712
715
 
713
716
  ---
714
717
 
@@ -2,7 +2,7 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
- <meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self'; connect-src 'self'; style-src 'unsafe-inline' https:; font-src https: 'self';" />
5
+ <meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self'; connect-src 'self'; style-src 'self' 'unsafe-inline' https:; font-src https: data:; base-uri 'none'; form-action 'none';" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Secure Input</title>
8
8
  <style>
@@ -2,7 +2,7 @@
2
2
  <html lang="en">
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
- <meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self'; connect-src https:;" />
5
+ <meta http-equiv="Content-Security-Policy" content="default-src 'none'; script-src 'self'; connect-src https://pci-vault-staging-drc0duhcakf4g4fr.eastus-01.azurewebsites.net; base-uri 'none'; form-action 'none';" />
6
6
  <title>Ozura Tokenizer</title>
7
7
  </head>
8
8
  <body>
@@ -7,17 +7,18 @@ var _OzTokenizerFrame = (function (exports) {
7
7
  * Collects raw card field values sent by element frames (same-origin),
8
8
  * assembles the vault tokenization payload, and POSTs it directly to the
9
9
  * vault API. The merchant page never sees raw card data.
10
+ *
11
+ * The vault URL is determined by "https://pci-vault-staging-drc0duhcakf4g4fr.eastus-01.azurewebsites.net", injected at build time.
12
+ * The tokenizer ignores any apiUrl sent by the SDK in OZ_TOKENIZE messages —
13
+ * an attacker who XSSes the merchant page cannot redirect where card data is
14
+ * sent because the destination is hardcoded in this Ozura-controlled bundle.
10
15
  */
16
+ const VAULT_API_URL = "https://pci-vault-staging-drc0duhcakf4g4fr.eastus-01.azurewebsites.net";
11
17
  /**
12
- * Returns true when the given URL is a valid target for card data.
13
- *
14
- * The only requirement is that it is a parseable absolute URL using HTTPS
15
- * (or HTTP for localhost in dev). Merchant-specific domain allowlisting is
16
- * intentionally NOT done here — the vault API authenticates every request
17
- * via the merchant's private API key, so there is no security benefit to
18
- * restricting which HTTPS hosts the tokenizer may POST to. Baking a domain
19
- * allowlist into the frame bundle would force an SDK republish on every new
20
- * merchant onboarding, which is the wrong operational model.
18
+ * Defense-in-depth guard: only allows the build-time vault URL origin.
19
+ * The tokenizer already uses VAULT_API_URL directly and never reads
20
+ * the merchant-supplied apiUrl, so this is a secondary safety net
21
+ * not the primary security boundary.
21
22
  *
22
23
  * Exported for unit testing only — not part of the public SDK API.
23
24
  */
@@ -29,12 +30,13 @@ var _OzTokenizerFrame = (function (exports) {
29
30
  catch (_a) {
30
31
  return false;
31
32
  }
32
- // Allow HTTPS for any host, or HTTP for localhost (dev proxy).
33
- if (parsed.protocol === 'https:')
34
- return true;
35
- if (parsed.protocol === 'http:' && parsed.hostname === 'localhost')
36
- return true;
37
- return false;
33
+ try {
34
+ const allowed = new URL(VAULT_API_URL);
35
+ return parsed.origin === allowed.origin;
36
+ }
37
+ catch (_b) {
38
+ return false;
39
+ }
38
40
  }
39
41
  class TokenizerFrame {
40
42
  constructor() {
@@ -60,12 +62,11 @@ var _OzTokenizerFrame = (function (exports) {
60
62
  }
61
63
  break;
62
64
  case 'OZ_TOKENIZE':
63
- if (this.hostOrigin && event.origin !== this.hostOrigin)
65
+ if (!this.hostOrigin || event.origin !== this.hostOrigin)
64
66
  return;
65
67
  this.pending.set(msg.requestId, {
66
68
  kind: 'card',
67
69
  requestId: msg.requestId,
68
- apiUrl: msg.apiUrl,
69
70
  apiKey: msg.apiKey,
70
71
  pubKey: msg.pubKey || '',
71
72
  firstName: msg.firstName || '',
@@ -77,12 +78,11 @@ var _OzTokenizerFrame = (function (exports) {
77
78
  });
78
79
  break;
79
80
  case 'OZ_BANK_TOKENIZE':
80
- if (this.hostOrigin && event.origin !== this.hostOrigin)
81
+ if (!this.hostOrigin || event.origin !== this.hostOrigin)
81
82
  return;
82
83
  this.pendingBank.set(msg.requestId, {
83
84
  kind: 'bank',
84
85
  requestId: msg.requestId,
85
- apiUrl: msg.apiUrl,
86
86
  apiKey: msg.apiKey,
87
87
  pubKey: msg.pubKey || '',
88
88
  firstName: msg.firstName || '',
@@ -120,7 +120,7 @@ var _OzTokenizerFrame = (function (exports) {
120
120
  const bankSession = this.pendingBank.get(msg.requestId);
121
121
  if (bankSession) {
122
122
  bankSession.values.set(msg.fieldType, msg.value);
123
- if (msg.last4)
123
+ if (msg.fieldType === 'accountNumber' && msg.last4)
124
124
  bankSession.bankMeta.last4 = msg.last4;
125
125
  if (msg.fieldType === 'routingNumber')
126
126
  bankSession.bankMeta.routingNumber = msg.value;
@@ -137,8 +137,9 @@ var _OzTokenizerFrame = (function (exports) {
137
137
  * Shared vault POST helper. Handles origin guard, header construction,
138
138
  * the fetchWithRetry call, token extraction, empty-token error, and catch.
139
139
  *
140
- * Returns the raw response data with a guaranteed non-empty `token` string,
141
- * or `null` if an error was already reported via postMessage to `target`.
140
+ * Returns the raw response data augmented with a guaranteed non-empty
141
+ * `token` string, or `null` if an error was already reported via
142
+ * postMessage to `target`.
142
143
  */
143
144
  async postToVault(requestId, apiUrl, apiKey, pubKey, body, target, logLabel) {
144
145
  var _a, _b;
@@ -178,7 +179,7 @@ var _OzTokenizerFrame = (function (exports) {
178
179
  }, target);
179
180
  return null;
180
181
  }
181
- return data;
182
+ return Object.assign(Object.assign({}, data), { token });
182
183
  }
183
184
  catch (err) {
184
185
  const message = err instanceof Error ? err.message : `${logLabel} tokenization failed`;
@@ -188,8 +189,8 @@ var _OzTokenizerFrame = (function (exports) {
188
189
  }
189
190
  }
190
191
  async tokenize(session) {
191
- var _a, _b, _c, _d, _e, _f;
192
- const { requestId, apiUrl, apiKey, pubKey, firstName, lastName, values, cardMeta, hostOrigin } = session;
192
+ var _a, _b, _c, _d;
193
+ const { requestId, apiKey, pubKey, firstName, lastName, values, cardMeta, hostOrigin } = session;
193
194
  const target = hostOrigin || window.location.origin;
194
195
  const cardNumber = values.get('cardNumber') || '';
195
196
  const cvv = values.get('cvv') || '';
@@ -212,11 +213,11 @@ var _OzTokenizerFrame = (function (exports) {
212
213
  },
213
214
  },
214
215
  };
215
- const data = await this.postToVault(requestId, apiUrl, apiKey, pubKey, body, target, 'card');
216
+ const data = await this.postToVault(requestId, VAULT_API_URL, apiKey, pubKey, body, target, 'card');
216
217
  if (!data)
217
218
  return;
218
- const token = String((_b = (_a = data.token) !== null && _a !== void 0 ? _a : data.id) !== null && _b !== void 0 ? _b : '');
219
- const cvcSession = String((_f = (_e = (_d = (_c = data.cvcSession) !== null && _c !== void 0 ? _c : data.sessionId) !== null && _d !== void 0 ? _d : data.ozuraCvcSession) !== null && _e !== void 0 ? _e : data.cvc_session_id) !== null && _f !== void 0 ? _f : '');
219
+ const { token } = data;
220
+ const cvcSession = String((_d = (_c = (_b = (_a = data.cvcSession) !== null && _a !== void 0 ? _a : data.sessionId) !== null && _b !== void 0 ? _b : data.ozuraCvcSession) !== null && _c !== void 0 ? _c : data.cvc_session_id) !== null && _d !== void 0 ? _d : '');
220
221
  if (!cvcSession) {
221
222
  window.parent.postMessage({
222
223
  __oz: true, vaultId: this.vaultId, type: 'OZ_TOKEN_ERROR', requestId,
@@ -229,8 +230,7 @@ var _OzTokenizerFrame = (function (exports) {
229
230
  window.parent.postMessage(Object.assign({ __oz: true, vaultId: this.vaultId, type: 'OZ_TOKEN_RESULT', requestId, token, cvcSession }, (hasFullCardMeta ? { card: cardMeta } : {})), target);
230
231
  }
231
232
  async tokenizeBank(session) {
232
- var _a, _b;
233
- const { requestId, apiUrl, apiKey, pubKey, firstName, lastName, values, bankMeta, hostOrigin } = session;
233
+ const { requestId, apiKey, pubKey, firstName, lastName, values, bankMeta, hostOrigin } = session;
234
234
  const target = hostOrigin || window.location.origin;
235
235
  const body = {
236
236
  type: 'bank',
@@ -246,12 +246,11 @@ var _OzTokenizerFrame = (function (exports) {
246
246
  },
247
247
  },
248
248
  };
249
- const data = await this.postToVault(requestId, apiUrl, apiKey, pubKey, body, target, 'bank');
249
+ const data = await this.postToVault(requestId, VAULT_API_URL, apiKey, pubKey, body, target, 'bank');
250
250
  if (!data)
251
251
  return;
252
- const token = String((_b = (_a = data.token) !== null && _a !== void 0 ? _a : data.id) !== null && _b !== void 0 ? _b : '');
253
- const hasBankMeta = bankMeta.last4 && bankMeta.routingNumber;
254
- window.parent.postMessage(Object.assign({ __oz: true, vaultId: this.vaultId, type: 'OZ_BANK_TOKEN_RESULT', requestId, token }, (hasBankMeta ? { bank: bankMeta } : {})), target);
252
+ const { token } = data;
253
+ window.parent.postMessage(Object.assign({ __oz: true, vaultId: this.vaultId, type: 'OZ_BANK_TOKEN_RESULT', requestId, token }, (bankMeta.last4 ? { bank: bankMeta } : {})), target);
255
254
  }
256
255
  static classifyHttpStatus(status) {
257
256
  if (status === 401 || status === 403)
@@ -1 +1 @@
1
- {"version":3,"file":"tokenizer-frame.js","sources":["../../src/frame/tokenizerFrame.ts"],"sourcesContent":[null],"names":[],"mappings":";;;IAAA;;;;;;IAMG;IAIH;;;;;;;;;;;;IAYG;IACG,SAAU,oBAAoB,CAAC,MAAc,EAAA;IACjD,IAAA,IAAI,MAAW;IACf,IAAA,IAAI;IACF,QAAA,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;QAC1B;IAAE,IAAA,OAAA,EAAA,EAAM;IACN,QAAA,OAAO,KAAK;QACd;;IAGA,IAAA,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;IAAE,QAAA,OAAO,IAAI;QAC7C,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,WAAW;IAAE,QAAA,OAAO,IAAI;IAE/E,IAAA,OAAO,KAAK;IACd;IAoCA,MAAM,cAAc,CAAA;IAMlB,IAAA,WAAA,GAAA;YAJQ,IAAA,CAAA,UAAU,GAAG,EAAE;IACf,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,GAAG,EAA0B;IAC3C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,GAAG,EAA8B;IAGzD,QAAA,MAAM,CAAC,GAAG,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE;YACrC,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC;IACrC,QAAA,IAAI,OAAO;IAAE,YAAA,IAAI,CAAC,UAAU,GAAG,OAAO;IAEtC,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7D,QAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,EAAE,EACvF,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAC1C;QACH;IAEQ,IAAA,SAAS,CAAC,KAAmB,EAAA;IACnC,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,IAAiB;IACnC,QAAA,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;gBAAE;IAE/D,QAAA,QAAQ,GAAG,CAAC,IAAI;IACd,YAAA,KAAK,SAAS;IACZ,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;IACpB,oBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM;oBAChC;oBACA;IAEF,YAAA,KAAK,aAAa;oBAChB,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU;wBAAE;oBACzD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,SAAmB,EAAE;IACxC,oBAAA,IAAI,EAAE,MAAM;wBACZ,SAAS,EAAE,GAAG,CAAC,SAAmB;wBAClC,MAAM,EAAE,GAAG,CAAC,MAAgB;wBAC5B,MAAM,EAAE,GAAG,CAAC,MAAgB;IAC5B,oBAAA,MAAM,EAAG,GAAG,CAAC,MAAiB,IAAI,EAAE;IACpC,oBAAA,SAAS,EAAG,GAAG,CAAC,SAAoB,IAAI,EAAE;IAC1C,oBAAA,QAAQ,EAAG,GAAG,CAAC,QAAmB,IAAI,EAAE;IACxC,oBAAA,UAAU,EAAG,GAAG,CAAC,UAAqB,IAAI,CAAC;wBAC3C,MAAM,EAAE,IAAI,GAAG,EAAE;IACjB,oBAAA,QAAQ,EAAE,EAAE;wBACZ,UAAU,EAAE,KAAK,CAAC,MAAM;IACzB,iBAAA,CAAC;oBACF;IAEF,YAAA,KAAK,kBAAkB;oBACrB,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU;wBAAE;oBACzD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAmB,EAAE;IAC5C,oBAAA,IAAI,EAAE,MAAM;wBACZ,SAAS,EAAE,GAAG,CAAC,SAAmB;wBAClC,MAAM,EAAE,GAAG,CAAC,MAAgB;wBAC5B,MAAM,EAAE,GAAG,CAAC,MAAgB;IAC5B,oBAAA,MAAM,EAAG,GAAG,CAAC,MAAiB,IAAI,EAAE;IACpC,oBAAA,SAAS,EAAG,GAAG,CAAC,SAAoB,IAAI,EAAE;IAC1C,oBAAA,QAAQ,EAAG,GAAG,CAAC,QAAmB,IAAI,EAAE;IACxC,oBAAA,UAAU,EAAG,GAAG,CAAC,UAAqB,IAAI,CAAC;wBAC3C,MAAM,EAAE,IAAI,GAAG,EAAE;IACjB,oBAAA,QAAQ,EAAE,EAAE;wBACZ,UAAU,EAAE,KAAK,CAAC,MAAM;IACzB,iBAAA,CAAC;oBACF;gBAEF,KAAK,gBAAgB,EAAE;;oBAErB,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;wBACpC,OAAO,CAAC,IAAI,CAAC,0DAA0D,EAAE,KAAK,CAAC,MAAM,CAAC;wBACtF;oBACF;;IAGA,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,SAAmB,CAAC;oBACzD,IAAI,OAAO,EAAE;IACX,oBAAA,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAmB,EAAE,GAAG,CAAC,KAAe,CAAC;wBAEhE,IAAI,GAAG,CAAC,KAAK;4BAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,KAAe;wBAC3D,IAAI,GAAG,CAAC,KAAK;4BAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,KAAe;wBAC3D,IAAI,GAAG,CAAC,QAAQ;4BAAE,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAkB;wBACpE,IAAI,GAAG,CAAC,OAAO;4BAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC,OAAiB;wBAEjE,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE;4BAC7C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;IACtC,wBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;wBACxB;oBACF;;IAGA,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,SAAmB,CAAC;oBACjE,IAAI,WAAW,EAAE;IACf,oBAAA,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,SAAmB,EAAE,GAAG,CAAC,KAAe,CAAC;wBAEpE,IAAI,GAAG,CAAC,KAAK;4BAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,KAAe;IAC/D,oBAAA,IAAI,GAAG,CAAC,SAAS,KAAK,eAAe;4BAAE,WAAW,CAAC,QAAQ,CAAC,aAAa,GAAG,GAAG,CAAC,KAAe;wBAE/F,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,UAAU,EAAE;4BACrD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;IAC9C,wBAAA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;wBAChC;oBACF;oBACA;gBACF;;QAEJ;IAEA;;;;;;IAMG;IACK,IAAA,MAAM,WAAW,CACvB,SAAiB,EACjB,MAAc,EACd,MAAc,EACd,MAAc,EACd,IAA6B,EAC7B,MAAc,EACd,QAAgB,EAAA;;IAEhB,QAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE;IACjC,YAAA,IAAI,KAAa;IACjB,YAAA,IAAI;IACF,gBAAA,IAAI,GAAG,CAAC,MAAM,CAAC;oBACf,KAAK,GAAG,iCAAiC;gBAC3C;IAAE,YAAA,OAAA,EAAA,EAAM;oBACN,KAAK,GAAG,wBAAwB;gBAClC;gBACA,OAAO,CAAC,KAAK,CAAC,CAAA,sBAAA,EAAyB,QAAQ,CAAA,yBAAA,CAA2B,EAAE,MAAM,CAAC;IACnF,YAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,EACpG,MAAM,CACP;IACD,YAAA,OAAO,IAAI;YACb;IAEA,QAAA,IAAI;IACF,YAAA,MAAM,OAAO,GAA2B;IACtC,gBAAA,cAAc,EAAE,kBAAkB;IAClC,gBAAA,WAAW,EAAE,MAAM;IACnB,gBAAA,cAAc,EAAE,SAAS;iBAC1B;gBACD,IAAI,MAAM,EAAE;IACV,gBAAA,OAAO,CAAC,WAAW,CAAC,GAAG,MAAM;gBAC/B;gBAEA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,CAAA,EAAG,MAAM,CAAA,SAAA,CAAW,EAAE;IAC3D,gBAAA,MAAM,EAAE,MAAM;oBACd,OAAO;IACP,gBAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;IAC3B,aAAA,CAAC;gBAEF,MAAM,KAAK,GAAG,MAAM,CAAC,CAAA,EAAA,GAAA,MAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,EAAE,CAAC;gBACnD,IAAI,CAAC,KAAK,EAAE;IACV,gBAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB;IACE,oBAAA,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS;IACpE,oBAAA,KAAK,EAAE,4EAA4E;IACnF,oBAAA,SAAS,EAAE,QAAQ;qBACpB,EACD,MAAM,CACP;IACD,gBAAA,OAAO,IAAI;gBACb;IAEA,YAAA,OAAO,IAAI;YACb;YAAE,OAAO,GAAY,EAAE;IACrB,YAAA,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,CAAA,EAAG,QAAQ,sBAAsB;IACtF,YAAA,MAAM,SAAS,GAAG,CAAC,GAAG,YAAY,KAAK,IAAK,GAAsC,CAAC,SAAS,KAAK,SAAS;IAC1G,YAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EACnG,MAAM,CACP;IACD,YAAA,OAAO,IAAI;YACb;QACF;QAEQ,MAAM,QAAQ,CAAC,OAAuB,EAAA;;YAC5C,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO;YACxG,MAAM,MAAM,GAAG,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM;YAEnD,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;YACjD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;IACnC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;YAClD,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1C,QAAA,MAAM,cAAc,GAAG,CAAA,EAAA,EAAK,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE;IAEhD,QAAA,MAAM,IAAI,GAAG;IACX,YAAA,IAAI,EAAE,MAAM;IACZ,YAAA,IAAI,EAAE;oBACJ,UAAU;oBACV,GAAG;oBACH,eAAe;oBACf,cAAc;IACd,gBAAA,UAAU,EAAE,SAAS;IACrB,gBAAA,SAAS,EAAE,QAAQ;IACpB,aAAA;IACD,YAAA,aAAa,EAAE;IACb,gBAAA,KAAK,EAAE;IACL,oBAAA,WAAW,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;IAChE,iBAAA;IACF,aAAA;aACF;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IAC5F,QAAA,IAAI,CAAC,IAAI;gBAAE;IAEX,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE,CAAC;YACjD,MAAM,UAAU,GAAG,MAAM,CACvB,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GACf,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GACd,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GACpB,IAAI,CAAC,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GACnB,EAAE,CACH;YAED,IAAI,CAAC,UAAU,EAAE;IACf,YAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB;IACE,gBAAA,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS;IACpE,gBAAA,KAAK,EAAE,6FAA6F;IACpG,gBAAA,SAAS,EAAE,QAAQ;iBACpB,EACD,MAAM,CACP;gBACD;YACF;IAEA,QAAA,MAAM,eAAe,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO;IACjG,QAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CAAA,MAAA,CAAA,MAAA,CAAA,EAErB,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,KACpF,eAAe,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAC,EAEhD,MAAM,CACP;QACH;QAEQ,MAAM,YAAY,CAAC,OAA2B,EAAA;;YACpD,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO;YACxG,MAAM,MAAM,GAAG,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM;IAEnD,QAAA,MAAM,IAAI,GAAG;IACX,YAAA,IAAI,EAAE,MAAM;IACZ,YAAA,IAAI,EAAE;oBACJ,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE;oBAChD,aAAa,EAAE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE;IAChD,gBAAA,UAAU,EAAE,SAAS;IACrB,gBAAA,SAAS,EAAE,QAAQ;IACpB,aAAA;IACD,YAAA,aAAa,EAAE;IACb,gBAAA,KAAK,EAAE;IACL,oBAAA,cAAc,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;IACnE,iBAAA;IACF,aAAA;aACF;YAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IAC5F,QAAA,IAAI,CAAC,IAAI;gBAAE;IAEX,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI,CAAC,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,aAAa;IAC5D,QAAA,MAAM,CAAC,MAAM,CAAC,WAAW,CAAA,MAAA,CAAA,MAAA,CAAA,EAErB,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,SAAS,EAAE,KAAK,KAC7E,WAAW,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAC,EAE5C,MAAM,CACP;QACH;QAEQ,OAAO,kBAAkB,CAAC,MAAc,EAAA;IAC9C,QAAA,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;IAAE,YAAA,OAAO,MAAM;IACnD,QAAA,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG;IAAE,YAAA,OAAO,YAAY;YACtD,IAAI,MAAM,IAAI,GAAG;IAAE,YAAA,OAAO,QAAQ;IAClC,QAAA,OAAO,SAAS;QAClB;IAEA;;;;;;IAMG;QACK,MAAM,cAAc,CAAC,GAAW,EAAE,IAAiB,EAAE,OAAO,GAAG,CAAC,EAAA;IACtE,QAAA,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;IACxC,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,UAAU,CAAC,KAAK,EAAE,EAAE,KAAM,CAAC;IAE9D,QAAA,IAAI;IACF,YAAA,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAO,IAAI,CAAA,EAAA,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,IAAG;gBACpE,YAAY,CAAC,SAAS,CAAC;IAEvB,YAAA,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;oBACX,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;IACrE,gBAAA,MAAM,MAAM,GAAG,CAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,KAAK,KAAI,CAAA,KAAA,EAAQ,GAAG,CAAC,MAAM,EAAE;oBACjD,MAAM,IAAI,GAAG,cAAc,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC;oBAE1D,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,EAAE;IACpC,oBAAA,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3C,oBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC;oBACpD;IACA,gBAAA,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC;IAC1B,gBAAA,CAAmC,CAAC,SAAS,GAAG,IAAI;IACrD,gBAAA,MAAM,CAAC;gBACT;IAEA,YAAA,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE;YACzB;YAAE,OAAO,GAAY,EAAE;gBACrB,YAAY,CAAC,SAAS,CAAC;gBAEvB,IAAI,GAAG,YAAY,KAAK,IAAK,GAAsC,CAAC,SAAS,EAAE;IAC7E,gBAAA,MAAM,GAAG;gBACX;gBAEA,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;IACjE,YAAA,MAAM,cAAc,GAAG,GAAG,YAAY,SAAS;gBAC/C,IAAI,CAAC,OAAO,IAAI,cAAc,IAAI,OAAO,GAAG,CAAC,EAAE;IAC7C,gBAAA,MAAM,IAAI,OAAO,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3C,gBAAA,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC;gBACpD;gBAEA,IAAI,OAAO,EAAE;IACX,gBAAA,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,mDAAmD,CAAC;IACvE,gBAAA,CAAmC,CAAC,SAAS,GAAG,SAAS;IAC1D,gBAAA,MAAM,CAAC;gBACT;gBACA,IAAI,cAAc,EAAE;oBAClB,MAAM,CAAC,GAAG,IAAI,KAAK,CAAE,GAAiB,CAAC,OAAO,IAAI,eAAe,CAAC;IACjE,gBAAA,CAAmC,CAAC,SAAS,GAAG,SAAS;IAC1D,gBAAA,MAAM,CAAC;gBACT;IACA,YAAA,MAAM,GAAG;YACX;QACF;IACD;IAED,IAAI,cAAc,EAAE;;;;;;;;;;"}
1
+ {"version":3,"file":"tokenizer-frame.js","sources":["../../src/frame/tokenizerFrame.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -416,9 +416,10 @@ class OzElement {
416
416
  /**
417
417
  * errors.ts — error types and normalisation for OzElements.
418
418
  *
419
- * Two normalisation functions:
420
- * - normalizeVaultError — maps raw vault /tokenize errors to user-facing messages
421
- * - normalizeCardSaleError — maps raw cardSale API errors to user-facing messages
419
+ * Three normalisation functions:
420
+ * - normalizeVaultError — maps raw vault /tokenize errors to user-facing messages (card flows)
421
+ * - normalizeBankVaultError — maps raw vault /tokenize errors to user-facing messages (bank/ACH flows)
422
+ * - normalizeCardSaleError — maps raw cardSale API errors to user-facing messages
422
423
  *
423
424
  * Error keys in normalizeCardSaleError are taken directly from checkout's
424
425
  * errorMapping.ts so the same error strings produce the same user-facing copy.
@@ -437,7 +438,7 @@ function normalizeCommonVaultError(msg) {
437
438
  if (msg.includes('api key') || msg.includes('unauthorized') || msg.includes('authentication') || msg.includes('forbidden')) {
438
439
  return 'Authentication failed. Check your vault API key configuration.';
439
440
  }
440
- if (msg.includes('network') || msg.includes('failed to fetch') || msg.includes('fetch')) {
441
+ if (msg.includes('network') || msg.includes('failed to fetch') || msg.includes('networkerror')) {
441
442
  return 'A network error occurred. Please check your connection and try again.';
442
443
  }
443
444
  if (msg.includes('timeout') || msg.includes('timed out')) {
@@ -454,9 +455,6 @@ function normalizeCommonVaultError(msg) {
454
455
  */
455
456
  function normalizeVaultError(raw) {
456
457
  const msg = raw.toLowerCase();
457
- const common = normalizeCommonVaultError(msg);
458
- if (common)
459
- return common;
460
458
  if (msg.includes('card number') || msg.includes('invalid card') || msg.includes('luhn')) {
461
459
  return 'The card number is invalid. Please check and try again.';
462
460
  }
@@ -472,6 +470,9 @@ function normalizeVaultError(raw) {
472
470
  if (msg.includes('declined') || msg.includes('do not honor')) {
473
471
  return 'Your card was declined. Please try a different card or contact your bank.';
474
472
  }
473
+ const common = normalizeCommonVaultError(msg);
474
+ if (common)
475
+ return common;
475
476
  return raw;
476
477
  }
477
478
  /**
@@ -481,15 +482,15 @@ function normalizeVaultError(raw) {
481
482
  */
482
483
  function normalizeBankVaultError(raw) {
483
484
  const msg = raw.toLowerCase();
484
- const common = normalizeCommonVaultError(msg);
485
- if (common)
486
- return common;
487
485
  if (msg.includes('account number') || msg.includes('account_number') || msg.includes('invalid account')) {
488
486
  return 'The bank account number is invalid. Please check and try again.';
489
487
  }
490
- if (msg.includes('routing number') || msg.includes('routing_number') || msg.includes('invalid routing') || msg.includes('aba')) {
488
+ if (msg.includes('routing number') || msg.includes('routing_number') || msg.includes('invalid routing') || /\baba\b/.test(msg)) {
491
489
  return 'The routing number is invalid. Please check and try again.';
492
490
  }
491
+ const common = normalizeCommonVaultError(msg);
492
+ if (common)
493
+ return common;
493
494
  return raw;
494
495
  }
495
496
  // ─── cardSale error map (mirrors checkout/src/utils/errorMapping.ts exactly) ─
@@ -723,7 +724,6 @@ function validateBilling(billing) {
723
724
  return { valid: errors.length === 0, errors, normalized };
724
725
  }
725
726
 
726
- const DEFAULT_API_URL = "https://pci-vault-staging-drc0duhcakf4g4fr.eastus-01.azurewebsites.net";
727
727
  const DEFAULT_FRAME_BASE_URL = "https://lively-hill-097170c0f.4.azurestaticapps.net";
728
728
  /**
729
729
  * The main entry point for OzElements. Creates and manages iframe-based
@@ -759,12 +759,11 @@ class OzVault {
759
759
  }
760
760
  this.apiKey = apiKey;
761
761
  this.pubKey = options.pubKey;
762
- this.apiUrl = options.apiUrl || DEFAULT_API_URL;
763
762
  this.frameBaseUrl = options.frameBaseUrl || DEFAULT_FRAME_BASE_URL;
764
763
  this.frameOrigin = new URL(this.frameBaseUrl).origin;
765
764
  this.fonts = (_a = options.fonts) !== null && _a !== void 0 ? _a : [];
766
765
  this.resolvedAppearance = resolveAppearance(options.appearance);
767
- this.vaultId = `vault-${Math.random().toString(36).slice(2, 12)}`;
766
+ this.vaultId = `vault-${crypto.randomUUID()}`;
768
767
  this.tokenizerName = `__oz_tok_${this.vaultId}`;
769
768
  this.boundHandleMessage = this.handleMessage.bind(this);
770
769
  window.addEventListener('message', this.boundHandleMessage);
@@ -792,19 +791,7 @@ class OzVault {
792
791
  * returned element to attach it to the DOM.
793
792
  */
794
793
  createElement(type, options = {}) {
795
- if (this._destroyed) {
796
- throw new OzError('Cannot create elements on a destroyed vault. Create a new OzVault instance.');
797
- }
798
- const existing = this.elementsByType.get(type);
799
- if (existing) {
800
- this.elements.delete(existing.frameId);
801
- this.completionState.delete(existing.frameId);
802
- existing.destroy();
803
- }
804
- const el = new OzElement(type, options, this.vaultId, this.frameBaseUrl, this.fonts, this.resolvedAppearance);
805
- this.elements.set(el.frameId, el);
806
- this.elementsByType.set(type, el);
807
- return el;
794
+ return this.createElementInto(this.elementsByType, type, options);
808
795
  }
809
796
  /** Returns the existing element of the given type, or null if none has been created. */
810
797
  getElement(type) {
@@ -822,10 +809,18 @@ class OzVault {
822
809
  * routingEl.mount('#routing-number');
823
810
  */
824
811
  createBankElement(type, options = {}) {
812
+ return this.createElementInto(this.bankElementsByType, type, options);
813
+ }
814
+ /** Returns the existing bank element of the given type, or null if none has been created. */
815
+ getBankElement(type) {
816
+ var _a;
817
+ return (_a = this.bankElementsByType.get(type)) !== null && _a !== void 0 ? _a : null;
818
+ }
819
+ createElementInto(typeMap, type, options) {
825
820
  if (this._destroyed) {
826
821
  throw new OzError('Cannot create elements on a destroyed vault. Create a new OzVault instance.');
827
822
  }
828
- const existing = this.bankElementsByType.get(type);
823
+ const existing = typeMap.get(type);
829
824
  if (existing) {
830
825
  this.elements.delete(existing.frameId);
831
826
  this.completionState.delete(existing.frameId);
@@ -833,14 +828,9 @@ class OzVault {
833
828
  }
834
829
  const el = new OzElement(type, options, this.vaultId, this.frameBaseUrl, this.fonts, this.resolvedAppearance);
835
830
  this.elements.set(el.frameId, el);
836
- this.bankElementsByType.set(type, el);
831
+ typeMap.set(type, el);
837
832
  return el;
838
833
  }
839
- /** Returns the existing bank element of the given type, or null if none has been created. */
840
- getBankElement(type) {
841
- var _a;
842
- return (_a = this.bankElementsByType.get(type)) !== null && _a !== void 0 ? _a : null;
843
- }
844
834
  /**
845
835
  * Tokenizes mounted bank account elements. Raw account and routing numbers
846
836
  * never leave the Ozura-origin iframes — the tokenizer iframe POSTs directly
@@ -876,6 +866,12 @@ class OzVault {
876
866
  if (!((_b = options.lastName) === null || _b === void 0 ? void 0 : _b.trim())) {
877
867
  throw new OzError('lastName is required for bank account tokenization.');
878
868
  }
869
+ if (options.firstName.trim().length > 50) {
870
+ throw new OzError('firstName must be 50 characters or fewer');
871
+ }
872
+ if (options.lastName.trim().length > 50) {
873
+ throw new OzError('lastName must be 50 characters or fewer');
874
+ }
879
875
  const accountEl = this.bankElementsByType.get('accountNumber');
880
876
  const routingEl = this.bankElementsByType.get('routingNumber');
881
877
  const accountReady = !!accountEl && this.elements.has(accountEl.frameId) && accountEl.isReady;
@@ -901,7 +897,6 @@ class OzVault {
901
897
  this.sendToTokenizer({
902
898
  type: 'OZ_BANK_TOKENIZE',
903
899
  requestId,
904
- apiUrl: this.apiUrl,
905
900
  apiKey: this.apiKey,
906
901
  pubKey: this.pubKey,
907
902
  firstName: options.firstName.trim(),
@@ -987,7 +982,6 @@ class OzVault {
987
982
  this.sendToTokenizer({
988
983
  type: 'OZ_TOKENIZE',
989
984
  requestId,
990
- apiUrl: this.apiUrl,
991
985
  apiKey: this.apiKey,
992
986
  pubKey: this.pubKey,
993
987
  firstName,
@@ -1186,5 +1180,5 @@ class OzVault {
1186
1180
  }
1187
1181
  }
1188
1182
 
1189
- export { OzElement, OzError, OzVault, normalizeCardSaleError, normalizeVaultError };
1183
+ export { OzElement, OzError, OzVault, normalizeBankVaultError, normalizeCardSaleError, normalizeVaultError };
1190
1184
  //# sourceMappingURL=oz-elements.esm.js.map