{"_id":"@basis-theory/web-agentic","_rev":"5-2ff5f1f7912a2282c843ed4a8a3386ae","name":"@basis-theory/web-agentic","dist-tags":{"latest":"1.3.0"},"versions":{"1.0.0":{"name":"@basis-theory/web-agentic","version":"1.0.0","keywords":["basis-theory","agentic","payments","verification","visa","mastercard"],"author":{"name":"Basis Theory","email":"support@basistheory.com"},"license":"Apache-2.0","_id":"@basis-theory/web-agentic@1.0.0","maintainers":[{"name":"lcschy","email":"lucas@basistheory.com"},{"name":"briangonzalezatbt","email":"brian.gonzalez@basistheory.com"},{"name":"dhudec","email":"drew@basistheory.com"},{"name":"davi.basistheory","email":"davi@basistheory.com"},{"name":"armsteadj1","email":"armsteadj1@gmail.com"},{"name":"matthew_basistheory","email":"matthew@basistheory.com"},{"name":"bt-platform","email":"platform@basistheory.com"},{"name":"jleon15","email":"josue@basistheory.com"},{"name":"kevinperaza-bt","email":"kevin@basistheory.com"},{"name":"greathouse-bt","email":"robert@basistheory.com"}],"homepage":"https://github.com/Basis-Theory/web-agentic#readme","bugs":{"url":"https://github.com/Basis-Theory/web-agentic/issues"},"dist":{"shasum":"22f6b7c7009fde246dc55799b6d719a46abae2ab","tarball":"https://registry.npmjs.org/@basis-theory/web-agentic/-/web-agentic-1.0.0.tgz","fileCount":24,"integrity":"sha512-3gxx7CpCwuFebcCq3kKX16oNCvuCaiEbKVPX7fLKwD6qVZeR7bbjx8eUzVrq4rxuFepv3zzCA/46YJgrMMNHcg==","signatures":[{"sig":"MEUCICdHTM5pAy0AMT4DRrKeFCsLSTWx9g3okWvK1sG+8oNnAiEA/PaR4wZsIAy6+wUnL1D9FBkN66QCG61RMXKi0IGbLuw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165215},"main":"main/index.js","types":"types/index.d.ts","module":"module/module.js","engines":{"node":">=18"},"gitHead":"fffeed149a483d5869a6dd25801c85c99ed75ece","_npmUser":{"name":"lcschy","email":"lucas@basistheory.com"},"repository":{"url":"git+https://github.com/Basis-Theory/web-agentic.git","type":"git"},"_npmVersion":"11.12.1","description":"Browser SDK for Basis Theory Agentic Payments","directories":{},"_nodeVersion":"26.0.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/web-agentic_1.0.0_1785933710988_0.43574360129105205","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@basis-theory/web-agentic","version":"1.1.3","keywords":["basis-theory","agentic","payments","verification","visa","mastercard"],"author":{"name":"Basis Theory","email":"support@basistheory.com"},"license":"Apache-2.0","_id":"@basis-theory/web-agentic@1.1.3","maintainers":[{"name":"lcschy","email":"lucas@basistheory.com"},{"name":"briangonzalezatbt","email":"brian.gonzalez@basistheory.com"},{"name":"dhudec","email":"drew@basistheory.com"},{"name":"davi.basistheory","email":"davi@basistheory.com"},{"name":"armsteadj1","email":"armsteadj1@gmail.com"},{"name":"matthew_basistheory","email":"matthew@basistheory.com"},{"name":"bt-platform","email":"platform@basistheory.com"},{"name":"jleon15","email":"josue@basistheory.com"},{"name":"kevinperaza-bt","email":"kevin@basistheory.com"},{"name":"greathouse-bt","email":"robert@basistheory.com"}],"homepage":"https://github.com/Basis-Theory/web-agentic#readme","bugs":{"url":"https://github.com/Basis-Theory/web-agentic/issues"},"dist":{"shasum":"fb502ff410395dc9fe9b61baa37ddc05bb65f0eb","tarball":"https://registry.npmjs.org/@basis-theory/web-agentic/-/web-agentic-1.1.3.tgz","fileCount":24,"integrity":"sha512-ZfRvtuqK/+LMbDHHy/TVV7OgcBEJMVZ7411f7s0LtPeIzj8tCnzoH4c0jwk5NhtmpkpTWynohGKWSGx+55VmNw==","signatures":[{"sig":"MEQCIGIOZ8nFgeQfPUl0opkx1X3PRUjXXwaDaOe3kTS55IFlAiANKNqG1L1dPTaKUYLhxVoLM5pu9Tu6fGwJNPZRW0iIUA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165593},"main":"main/index.js","types":"types/index.d.ts","module":"module/module.js","engines":{"node":">=18"},"gitHead":"74b97b14b6b731f833f5ed808c9121b9ec46363e","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21e5f7c3-6fba-4d7f-ae3f-e3343725595e"}},"repository":{"url":"git+https://github.com/Basis-Theory/web-agentic.git","type":"git"},"_npmVersion":"11.18.0","description":"Browser SDK for Basis Theory Agentic Payments","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/web-agentic_1.1.3_1786396461245_0.12044637622876508","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@basis-theory/web-agentic","version":"1.2.0","keywords":["basis-theory","agentic","payments","verification","visa","mastercard"],"author":{"name":"Basis Theory","email":"support@basistheory.com"},"license":"Apache-2.0","_id":"@basis-theory/web-agentic@1.2.0","maintainers":[{"name":"lcschy","email":"lucas@basistheory.com"},{"name":"briangonzalezatbt","email":"brian.gonzalez@basistheory.com"},{"name":"dhudec","email":"drew@basistheory.com"},{"name":"davi.basistheory","email":"davi@basistheory.com"},{"name":"armsteadj1","email":"armsteadj1@gmail.com"},{"name":"matthew_basistheory","email":"matthew@basistheory.com"},{"name":"bt-platform","email":"platform@basistheory.com"},{"name":"jleon15","email":"josue@basistheory.com"},{"name":"kevinperaza-bt","email":"kevin@basistheory.com"},{"name":"greathouse-bt","email":"robert@basistheory.com"}],"homepage":"https://github.com/Basis-Theory/web-agentic#readme","bugs":{"url":"https://github.com/Basis-Theory/web-agentic/issues"},"dist":{"shasum":"3fafc91de87c69e450284b092c03037d5a879612","tarball":"https://registry.npmjs.org/@basis-theory/web-agentic/-/web-agentic-1.2.0.tgz","fileCount":25,"integrity":"sha512-Mkd3hUTS8vfLcGRlB6O97hcpr77MmCd8aJ242uLx/ffleMoRaVvetPjsRiQ04AAefgAY+DxRtaaxRsKqfM0J1g==","signatures":[{"sig":"MEYCIQDRClxQ/hCsaycP8rI6H2op2KqWEy6siUXfJQhXWcoZywIhAK5myfJp5nEQfXJ+Vb4aElVUOyDkKRxE3I042+q/YrtO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165636},"main":"main/index.js","types":"types/index.d.ts","module":"module/module.js","engines":{"node":">=18"},"gitHead":"c86e27c083d9f308857153145a08799a22c311bd","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21e5f7c3-6fba-4d7f-ae3f-e3343725595e"}},"repository":{"url":"git+https://github.com/Basis-Theory/web-agentic.git","type":"git"},"_npmVersion":"11.18.0","description":"Browser SDK for Basis Theory Agentic Payments","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/web-agentic_1.2.0_1788274919443_0.8722908710565618","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@basis-theory/web-agentic","version":"1.2.2","keywords":["basis-theory","agentic","payments","verification","visa","mastercard"],"author":{"name":"Basis Theory","email":"support@basistheory.com"},"license":"Apache-2.0","_id":"@basis-theory/web-agentic@1.2.2","maintainers":[{"name":"lcschy","email":"lucas@basistheory.com"},{"name":"briangonzalezatbt","email":"brian.gonzalez@basistheory.com"},{"name":"dhudec","email":"drew@basistheory.com"},{"name":"davi.basistheory","email":"davi@basistheory.com"},{"name":"armsteadj1","email":"armsteadj1@gmail.com"},{"name":"matthew_basistheory","email":"matthew@basistheory.com"},{"name":"bt-platform","email":"platform@basistheory.com"},{"name":"jleon15","email":"josue@basistheory.com"},{"name":"kevinperaza-bt","email":"kevin@basistheory.com"},{"name":"greathouse-bt","email":"robert@basistheory.com"}],"homepage":"https://developers.basistheory.com/docs/sdks/agentic/web-agentic","bugs":{"email":"support@basistheory.com"},"dist":{"shasum":"f369664f08a7fc800d94c971061f54703851519f","tarball":"https://registry.npmjs.org/@basis-theory/web-agentic/-/web-agentic-1.2.2.tgz","fileCount":25,"integrity":"sha512-YipoQlOxPoU1gAUNr6ULs9Fngm9LGekNnD80yOyarfTVB55oIEYF/zCvdscNz0zCK43R0sIeGV9tarum8uiP7g==","signatures":[{"sig":"MEYCIQDvl+RQPpiU0CiNSJZ25n4SnAMImxCS7x2+P3XLbC59zQIhAKfizeV7SGwn442Mq2XhvAuGKo+2iyT9m1byR9OeYgNq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":165210},"main":"main/index.js","types":"types/index.d.ts","module":"module/module.js","engines":{"node":">=18"},"gitHead":"09d4df503188b80dcfaf2f63d99d6d7899b8a38f","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21e5f7c3-6fba-4d7f-ae3f-e3343725595e"}},"repository":{"url":"git+https://github.com/Basis-Theory/web-agentic.git","type":"git"},"_npmVersion":"11.18.0","description":"Browser SDK for Basis Theory Agentic Payments","directories":{},"_nodeVersion":"24.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/web-agentic_1.2.2_1788362841845_0.12944451649741295","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@basis-theory/web-agentic","version":"1.3.0","description":"Browser SDK for Basis Theory Agentic Payments","repository":{"type":"git","url":"git+https://github.com/Basis-Theory/web-agentic.git"},"homepage":"https://developers.basistheory.com/docs/sdks/agentic/web-agentic","bugs":{"email":"support@basistheory.com"},"keywords":["basis-theory","agentic","payments","verification","visa","mastercard"],"license":"Apache-2.0","author":{"name":"Basis Theory","email":"support@basistheory.com"},"main":"main/index.js","module":"module/module.js","types":"types/index.d.ts","engines":{"node":">=18"},"publishConfig":{"access":"public"},"gitHead":"c82cfc5371597993c7e9fc509dd657ed998aa818","_id":"@basis-theory/web-agentic@1.3.0","_nodeVersion":"24.20.0","_npmVersion":"11.18.0","dist":{"integrity":"sha512-BTDG9E67JQNbYiFBCqfk3nGKc9V0hjRIccZoQRMXKQyMvhysod9RFMs6rxzPSmnpDHCYY5jTi5weRQ1KvUlpWQ==","shasum":"2d714e42d2f3ed837cdf963541450bf3829e051c","tarball":"https://registry.npmjs.org/@basis-theory/web-agentic/-/web-agentic-1.3.0.tgz","fileCount":25,"unpackedSize":167245,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCx1BNOseXhreb/I01wdScigu4U5tCxkq+VPw66cu2M9QIhAMwjGpU4nj2FN7NMzXJZwr3ECxJhoWCyA+XAoiVpyYzF"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:21e5f7c3-6fba-4d7f-ae3f-e3343725595e"}},"directories":{},"maintainers":[{"name":"lcschy","email":"lucas@basistheory.com"},{"name":"briangonzalezatbt","email":"brian.gonzalez@basistheory.com"},{"name":"dhudec","email":"drew@basistheory.com"},{"name":"davi.basistheory","email":"davi@basistheory.com"},{"name":"armsteadj1","email":"armsteadj1@gmail.com"},{"name":"matthew_basistheory","email":"matthew@basistheory.com"},{"name":"bt-platform","email":"platform@basistheory.com"},{"name":"jleon15","email":"josue@basistheory.com"},{"name":"kevinperaza-bt","email":"kevin@basistheory.com"},{"name":"greathouse-bt","email":"robert@basistheory.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/web-agentic_1.3.0_1789150341740_0.7729076173661946"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-05T12:41:50.733Z","modified":"2026-09-11T18:12:22.120Z","1.0.0":"2026-08-05T12:41:51.143Z","1.1.3":"2026-08-10T21:14:21.413Z","1.2.0":"2026-09-01T15:01:59.760Z","1.2.2":"2026-09-02T15:27:21.994Z","1.3.0":"2026-09-11T18:12:21.949Z"},"bugs":{"email":"support@basistheory.com"},"author":{"name":"Basis Theory","email":"support@basistheory.com"},"license":"Apache-2.0","homepage":"https://developers.basistheory.com/docs/sdks/agentic/web-agentic","keywords":["basis-theory","agentic","payments","verification","visa","mastercard"],"repository":{"type":"git","url":"git+https://github.com/Basis-Theory/web-agentic.git"},"description":"Browser SDK for Basis Theory Agentic Payments","maintainers":[{"name":"lcschy","email":"lucas@basistheory.com"},{"name":"briangonzalezatbt","email":"brian.gonzalez@basistheory.com"},{"name":"dhudec","email":"drew@basistheory.com"},{"name":"davi.basistheory","email":"davi@basistheory.com"},{"name":"armsteadj1","email":"armsteadj1@gmail.com"},{"name":"matthew_basistheory","email":"matthew@basistheory.com"},{"name":"bt-platform","email":"platform@basistheory.com"},{"name":"jleon15","email":"josue@basistheory.com"},{"name":"kevinperaza-bt","email":"kevin@basistheory.com"},{"name":"greathouse-bt","email":"robert@basistheory.com"}],"readme":"# @basis-theory/web-agentic\n\n[![npm](https://img.shields.io/npm/v/@basis-theory/web-agentic)](https://www.npmjs.com/package/@basis-theory/web-agentic)\n[![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)\n\n`@basis-theory/web-agentic` is the browser side of\n[Basis Theory Agentic Payments](https://developers.basistheory.com/docs/guides/agentic/overview):\nthe customer-facing steps of the flow run here, and everything that needs a\nprivate key stays on your server. The SDK includes **`AgenticVerification`**,\nwhich runs the provider ceremonies that verify a customer and activate an\nallowance rail.\n\nThis README covers installation and enough of the API to run a first\nverification. The complete reference — every option, error, and integration\npattern — is in the\n[SDK documentation](https://developers.basistheory.com/docs/sdks/agentic/web-agentic).\n\n## Install\n\n```bash\nnpm install @basis-theory/web-agentic\n```\n\nTypeScript declarations are included, and the SDK has no runtime dependencies.\n\nOr load the global bundle. Releases go to immutable versioned paths — pin an\nexact version (there is no `latest`) and take its hash from the sibling\n`sri.json`:\n\n```html\n<script\n  src=\"https://js.basistheory.com/web-agentic/1.2.0/index.js\"\n  integrity=\"sha384-…\"\n  crossorigin=\"anonymous\"\n></script>\n```\n\nThe bundle publishes the whole SDK on `window.BasisTheoryAgentic` under the\nsame names npm exports, so every example below carries over by swapping its\n`import` for a destructure:\n\n```js\n// npm\nimport { AgenticVerification, ApiError } from '@basis-theory/web-agentic';\n\n// script tag\nconst { AgenticVerification, ApiError } = window.BasisTheoryAgentic;\n```\n\n## AgenticVerification\n\nAn allowance rail that requires verification is created in\n`pending_verification`, and only a ceremony the provider itself owns can\nactivate it. `AgenticVerification` runs that ceremony: it advances the\nverification state machine, renders every customer-facing step, and resolves\nwhen the rail is `active`.\n\n### Quickstart\n\nCreate a **public** application in the\n[Basis Theory Portal](https://portal.basistheory.com) with only the\n`agentic:allowance:verify` permission.\n\n```js\nimport { AgenticVerification } from '@basis-theory/web-agentic';\n\nconst av = AgenticVerification({\n  apiKey: 'key_test_us_pub_REPLACE_ME', // PUBLIC application key\n  apiBaseUrl: 'https://api.test.basistheory.com/agentic',\n  displayName: 'Example Agent',\n});\n\n// Read `provider` from the allowance rail — never infer it.\nconst result = await av.verifyAllowance('alw_...', { provider: 'vic' });\nconsole.log(`Rail is ${result.status} on ${result.provider}`);\n```\n\nIf the customer abandons the flow, offer verification again — there is no\ncleanup step. Nothing the browser sends can activate a rail on its own; Basis\nTheory confirms every terminal transition with the provider server to server.\n\n> **Never put a private key in a browser.** Public keys are browser-safe by\n> design; the SDK warns loudly if `apiKey` contains `_pvt_`.\n\n| Environment                    | `apiBaseUrl`                                    |\n| ------------------------------ | ----------------------------------------------- |\n| Production                     | `https://api.basistheory.com/agentic` (default) |\n| Test                           | `https://api.test.basistheory.com/agentic`      |\n| Locally-run `agentic-commerce` | `http://localhost:3001/api`                     |\n\n### Browser requirements\n\n- **HTTPS top-level origin** — ceremonies need a secure context. Locally:\n  `cloudflared tunnel --url http://localhost:3000`.\n- **CSP** — `frame-src` must allow the origin of any ceremony iframe the verify\n  response returns; `connect-src` must allow your `apiBaseUrl` or custom\n  transport endpoints; with the global bundle, `script-src` must permit the CDN\n  script. The SDK loads no telemetry or external UI assets.\n- **Popups** — most ceremonies open a window from a user gesture; the built-in\n  interstitials supply it. Content blockers can also stop hosted iframes.\n\n### Behavior worth knowing\n\n- `verifyAllowance(allowanceId, { provider, rail?, displayName?, timeoutMs?, signal? })`\n  resolves `{ status: 'active', rail, provider }`. `rail` defaults to\n  `'agentic-token'`, and aborting the `signal` rejects with\n  `VerificationCancelledError`.\n- Calls are serialized — a second call while one is in flight throws. Verifying\n  an already-`active` rail resolves without showing a ceremony.\n- `dispose()` aborts any in-flight verification and tears down iframes, popups,\n  listeners and the UI host; for a run in flight that teardown completes as the\n  run settles. It is idempotent and leaves the instance usable, so a remount —\n  React StrictMode, Fast Refresh — can verify again immediately, without\n  awaiting the aborted run.\n- Device context is collected automatically on every start and restart;\n  `collectDeviceContext` is exported for custom transports.\n\nThe factory also accepts theming, headless, transport, and tuning options —\n[Factory Options](https://developers.basistheory.com/docs/sdks/agentic/web-agentic#factory-options)\ndocuments them all.\n\n### Events\n\n`onEvent` receives these objects. Exceptions thrown by the callback are ignored\nso observability cannot interrupt verification.\n\n| `type`          | Additional fields                                               |\n| --------------- | --------------------------------------------------------------- |\n| `state_change`  | `allowanceId`, `action`, `status`, `nextActionType`             |\n| `ceremony_open` | `network`; Visa events also include `action`                    |\n| `restart`       | `reason`: `register_complete`, `state_invalid`, or `user_retry` |\n| `error`         | `error` — the complete error value                              |\n| `success`       | `allowanceId`                                                   |\n\n### Errors\n\nErrors created by the SDK extend `AgenticVerificationError`.\n\n```js\nimport {\n  ApiError,\n  VerificationCancelledError,\n  VerificationNotSupportedError,\n} from '@basis-theory/web-agentic';\n\ntry {\n  await av.verifyAllowance('alw_...', { provider: 'vic' });\n} catch (error) {\n  if (error instanceof VerificationCancelledError) return; // safe to offer again\n  if (error instanceof VerificationNotSupportedError) return; // offer another payment method\n  if (error instanceof ApiError) {\n    console.error(error.type, error.status, error.traceId); // quote traceId to support\n  }\n  throw error;\n}\n```\n\n`ApiError.type` is an **open set** — never switch exhaustively on it.\n`PopupBlockedError` is recoverable from a new click, and the SDK retries\n`INVALID_OTP` in place and `409 *_IN_PROGRESS` with bounded backoff. Every\nclass and per-type behavior:\n[Handle Errors](https://developers.basistheory.com/docs/sdks/agentic/web-agentic#handle-errors).\n\n### Customization\n\nEvery surface is replaceable without giving up the SDK's ownership of iframes,\npopups, protocols, and polling:\n\n- **Theming and copy** — `appearance` (six color knobs) and `strings` restyle\n  the built-in Shadow DOM UI, which is isolated both ways and makes zero\n  external requests.\n  [Customize the UI](https://developers.basistheory.com/docs/sdks/agentic/web-agentic#customize-the-ui)\n- **Headless** — `ui: false` with `handlers` brings your own UI; passing a\n  single handler with `ui: true` overrides just that prompt. The one hard rule:\n  `confirmCeremony` must call the supplied `openPopup` synchronously inside the\n  click handler, before any `await`, or the browser revokes the user gesture.\n  [Bring Your Own UI](https://developers.basistheory.com/docs/sdks/agentic/web-agentic#bring-your-own-ui)\n- **Custom transport** — `verify` and `getAllowance` route API calls through\n  your own backend instead of using a public key; ceremonies still run in the\n  browser.\n  [Route API Calls Through Your Backend](https://developers.basistheory.com/docs/sdks/agentic/web-agentic#route-api-calls-through-your-backend)\n\n## Testing\n\nIn a test tenant, ceremonies run against Basis Theory-hosted mock pages\nspeaking the exact production protocols, and no request reaches a provider.\nTokenize `4242424242424242` (Visa) or `5555555555554444` (Mastercard) for the\nhappy paths; the\n[testing reference](https://developers.basistheory.com/docs/api/agentic-commerce/testing)\nlists the test source for every failure scenario.\n\n## Browser support\n\nEvergreen Chrome, Edge, Firefox and Safari ≥ 16.4 (the WebAuthn baseline), on\ndesktop and mobile web. Importing the SDK is SSR-safe, but constructing a\nclient accesses the DOM: create the instance after mount or inside a\nclient-only boundary, then dispose it on unmount. For webviews and native\nshells see\n[Browser Support](https://developers.basistheory.com/docs/sdks/agentic/web-agentic#browser-support).\n\n## License\n\n[Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0)\n","readmeFilename":"README.md"}