{"_id":"@adonis-agora/payments-dashboard","_rev":"4-5f7723a5394d005f682da7e6251470af","name":"@adonis-agora/payments-dashboard","dist-tags":{"latest":"0.4.0"},"versions":{"0.2.0":{"name":"@adonis-agora/payments-dashboard","version":"0.2.0","keywords":["adonisjs","adonis","payments","billing","subscriptions","dashboard","admin","console","agora"],"author":"Davi Carvalho <davi@goflip.ai>","license":"MIT","_id":"@adonis-agora/payments-dashboard@0.2.0","maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"dist":{"shasum":"71ac91be9487071d63f0e4bad9bc36638f1d7546","tarball":"https://registry.npmjs.org/@adonis-agora/payments-dashboard/-/payments-dashboard-0.2.0.tgz","fileCount":7,"integrity":"sha512-jDzt2mGIR5b3sh0pPfCNcu+yjf6/UUtFcj0Tc3gPazFTCScJ1z1HQOdnhLuq6WaaehMstPbh97O6Op3b09QpgQ==","signatures":[{"sig":"MEUCIQDs1g5Z1/Kc81XZJ0D+uE5mXA2L0HUTPgZguJNBaLtD/AIgA+scn0sUrBlBS3lIjF7AErSuryb428Ybb4Lxmcwu6C8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1193532},"type":"module","engines":{"node":">=20.6.0"},"scripts":{"test":"vitest run --passWithNoTests","build":"vite build","typecheck":"tsc -p tsconfig.spa.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"},"repository":{"url":"git+https://github.com/DavideCarvalho/adonis-agora-payments.git","type":"git","directory":"packages/dashboard"},"description":"Billing console (revenue/subscription/usage overview, payment history, webhook-event ledger) for @adonis-agora/payments — a React SPA served by a thin AdonisJS provider. Part of the Agora ecosystem.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"clsx":"2.1.1","vite":"5.4.21","jsdom":"25.0.1","react":"18.3.1","vitest":"3.2.7","postcss":"8.5.26","react-dom":"18.3.1","typescript":"5.9.3","@types/node":"20.19.43","tailwindcss":"3.4.19","@types/react":"18.3.31","autoprefixer":"10.5.4","tailwind-merge":"3.6.0","@types/react-dom":"18.3.7","@testing-library/dom":"10.4.1","@vitejs/plugin-react":"4.7.0","@tanstack/react-query":"5.101.4","@testing-library/react":"16.3.2","class-variance-authority":"0.7.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/payments-dashboard_0.2.0_1788018758935_0.03454065065701939","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@adonis-agora/payments-dashboard","version":"0.2.1","keywords":["adonisjs","adonis","payments","billing","subscriptions","dashboard","admin","console","agora"],"author":"Davi Carvalho <davi@goflip.ai>","license":"MIT","_id":"@adonis-agora/payments-dashboard@0.2.1","maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"dist":{"shasum":"6424588365bdf224d0f421835cb4547732fffdd8","tarball":"https://registry.npmjs.org/@adonis-agora/payments-dashboard/-/payments-dashboard-0.2.1.tgz","fileCount":7,"integrity":"sha512-EArsBUFcd7DsRaLOmIQsz4pS1dWlq3AmGduHoitkatjE+a76zK1TqD7lPVEY7wni6J5nvk84FAZcd9LX6fVzkA==","signatures":[{"sig":"MEYCIQDlklNYkahH+uWU/ktEuHQ31pxeKBgFzcJMO5GFb0kqawIhAMttrw7mD64o63Znm4zqOdrIE4w8URhjaJgP0ZLmny9W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1700700},"type":"module","engines":{"node":">=20.6.0"},"scripts":{"test":"vitest run --passWithNoTests","build":"vite build","typecheck":"tsc -p tsconfig.spa.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"},"repository":{"url":"git+https://github.com/DavideCarvalho/adonis-agora-payments.git","type":"git","directory":"packages/dashboard"},"description":"Billing console (revenue/subscription/usage overview, payment history, webhook-event ledger) for @adonis-agora/payments — a React SPA served by a thin AdonisJS provider. Part of the Agora ecosystem.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"clsx":"2.1.1","vite":"8.2.2","jsdom":"30.0.1","react":"19.2.8","vitest":"4.1.11","react-dom":"19.2.8","typescript":"7.0.2","@types/node":"26.4.0","tailwindcss":"4.3.3","@types/react":"19.2.18","tailwind-merge":"3.6.0","@types/react-dom":"19.2.5","@tailwindcss/vite":"4.3.3","@testing-library/dom":"10.4.1","@vitejs/plugin-react":"6.1.1","@tanstack/react-query":"5.102.8","@testing-library/react":"16.3.3","class-variance-authority":"0.7.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/payments-dashboard_0.2.1_1788138029289_0.6433551871775984","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@adonis-agora/payments-dashboard","version":"0.3.0","keywords":["adonisjs","adonis","payments","billing","subscriptions","dashboard","admin","console","agora"],"author":"Davi Carvalho <davi@goflip.ai>","license":"MIT","_id":"@adonis-agora/payments-dashboard@0.3.0","maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"dist":{"shasum":"6b706a8601cb27d2de4d11fd0d56add1d2e98857","tarball":"https://registry.npmjs.org/@adonis-agora/payments-dashboard/-/payments-dashboard-0.3.0.tgz","fileCount":7,"integrity":"sha512-ynH2GHRwYqbv9M+lQTlruP4Y7KAmCFYqToiaWwEr/uiP3cdrnB7vk4ZugwsoRfZy00ERqhpIgt80f3koyouXJQ==","signatures":[{"sig":"MEUCIQC9U9OmArx9aS8dL+mEJdKE0rHAtzxlKX0xWp6yN0IlUAIgY6n/jXy4nfVw7ppuJsZUDbgAVaX6PSlV7X+VmC52ANg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1720896},"type":"module","engines":{"node":">=20.6.0"},"scripts":{"test":"vitest run --passWithNoTests","build":"vite build","typecheck":"tsc -p tsconfig.spa.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"},"repository":{"url":"git+https://github.com/DavideCarvalho/adonis-agora-payments.git","type":"git","directory":"packages/dashboard"},"description":"Billing console (revenue/subscription/usage overview, payment history, webhook-event ledger) for @adonis-agora/payments — a React SPA served by a thin AdonisJS provider. Part of the Agora ecosystem.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","_hasShrinkwrap":false,"devDependencies":{"clsx":"2.1.1","vite":"8.2.2","jsdom":"30.0.1","react":"19.2.8","vitest":"4.1.11","react-dom":"19.2.8","typescript":"7.0.2","@types/node":"26.4.0","tailwindcss":"4.3.3","@types/react":"19.2.18","tailwind-merge":"3.6.0","@types/react-dom":"19.2.5","@tailwindcss/vite":"4.3.3","@testing-library/dom":"10.4.1","@vitejs/plugin-react":"6.1.1","@tanstack/react-query":"5.102.8","@testing-library/react":"16.3.3","class-variance-authority":"0.7.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/payments-dashboard_0.3.0_1788145832056_0.8320413233298933","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@adonis-agora/payments-dashboard","version":"0.4.0","description":"Billing console (revenue/subscription/usage overview, payment history, webhook-event ledger) for @adonis-agora/payments — a React SPA served by a thin AdonisJS provider. Part of the Agora ecosystem.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/DavideCarvalho/adonis-agora-payments.git","directory":"packages/dashboard"},"author":"Davi Carvalho <davi@goflip.ai>","type":"module","sideEffects":false,"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"devDependencies":{"@tailwindcss/vite":"4.3.3","@tanstack/react-query":"5.102.8","@testing-library/dom":"10.4.1","@testing-library/react":"16.3.3","@types/node":"26.4.1","@types/react":"19.2.18","@types/react-dom":"19.2.7","@vitejs/plugin-react":"6.1.1","class-variance-authority":"0.7.1","clsx":"2.1.1","jsdom":"30.0.1","react":"19.2.8","react-dom":"19.2.8","tailwind-merge":"3.6.0","tailwindcss":"4.3.3","typescript":"7.0.2","vite":"8.2.2","vitest":"5.0.0"},"engines":{"node":">=20.6.0"},"keywords":["adonisjs","adonis","payments","billing","subscriptions","dashboard","admin","console","agora"],"scripts":{"build":"vite build","test":"vitest run --passWithNoTests","test:watch":"vitest","typecheck":"tsc -p tsconfig.spa.json --noEmit"},"_nodeVersion":"22.23.2","_id":"@adonis-agora/payments-dashboard@0.4.0","dist":{"integrity":"sha512-k8Ip9YdMhDQvzR/YkYnDb25NZtrbSCwvFkG1Ig0wF6RSXlfkHzXESWnhDi/w5r+2UnmOdzVo8pOp7LOxYWAbEQ==","shasum":"315478fa68c7c06e7a202b14027d8d2e06ae5eb6","tarball":"https://registry.npmjs.org/@adonis-agora/payments-dashboard/-/payments-dashboard-0.4.0.tgz","fileCount":7,"unpackedSize":1730002,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDjIaNTqJkoz/aQhMFCqoaCPirLLnaNDWF3GNsqTLCMKgIgLp0aXGqLzj544i9BOi0/j8+MILBs6giPplIu217JFsA="}]},"_npmUser":{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"},"directories":{},"maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/payments-dashboard_0.4.0_1788838025002_0.5318887870044937"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-29T15:52:38.774Z","modified":"2026-09-08T03:27:05.298Z","0.2.0":"2026-08-29T15:52:39.073Z","0.2.1":"2026-08-31T01:00:29.427Z","0.3.0":"2026-08-31T03:10:32.218Z","0.4.0":"2026-09-08T03:27:05.143Z"},"author":"Davi Carvalho <davi@goflip.ai>","license":"MIT","keywords":["adonisjs","adonis","payments","billing","subscriptions","dashboard","admin","console","agora"],"repository":{"type":"git","url":"git+https://github.com/DavideCarvalho/adonis-agora-payments.git","directory":"packages/dashboard"},"description":"Billing console (revenue/subscription/usage overview, payment history, webhook-event ledger) for @adonis-agora/payments — a React SPA served by a thin AdonisJS provider. Part of the Agora ecosystem.","maintainers":[{"name":"dudousxd","email":"davi_carvalho96@hotmail.com"}],"readme":"# @adonis-agora/payments-dashboard\n\nThe billing console for [`@adonis-agora/payments`](https://www.npmjs.com/package/@adonis-agora/payments) — a\nReact SPA served by a thin AdonisJS provider that ships inside the main package.\n\nFive screens, all driven by the `BillingStore` the app already resolved. Only two things in the whole\nconsole leave your app — refunding a payment and retrying a failed webhook event:\n\n- **Overview** — `billingHealth()` first, then `billingOverview()` for a selectable window: revenue,\n  active subscriptions (which includes `trialing`), and metered usage per meter.\n- **Payments** — a page of `billing_payments`, newest first, filterable by status and gateway.\n  Refund from here.\n- **Subscriptions** — opens on `past_due`: whose payment is failing and whose access is about to\n  lapse. `paused` is rendered as its own state, never as a shade of `active`.\n- **Disputes** — the evidence windows closing soonest first, then the full chargeback log. **Read\n  only, deliberately**: whether a dispute is worth contesting or cheaper to refund is a business\n  rule that belongs in your app's code, so there is no button for it here (and no API route behind\n  one). The screen exists so nobody misses a window.\n- **Webhook events** — the idempotency ledger. A `failed` row means a handler threw and the\n  dispatcher gave up, so the event's effect never happened; the handler's error is shown in full.\n  Retry from here.\n\n## Install\n\nYou do not install this package directly. `@adonis-agora/payments` bundles the built SPA and serves it\nfrom disk; this package only exists so the bundle is built in the workspace and versioned on its own.\n\n```sh\nnode ace configure @adonis-agora/payments\n```\n\nThat registers `@adonis-agora/payments/dashboard_provider` and publishes `config/payments_dashboard.ts`.\n\n## Configuration\n\n```ts\n// config/payments_dashboard.ts\nimport { defineConfig } from '@adonis-agora/payments/dashboard'\n\nexport default defineConfig({\n  enabled: true,               // false => no routes are registered at all\n  path: '/payments-dashboard', // the SPA mounts here; the JSON API at <path>/api\n  currency: 'BRL',             // how the edge formats the integer cents it receives\n})\n```\n\n**Auth defaults to the same posture as `@adonis-agora/durable`'s console**: open outside production;\nin production it requires a bearer token equal to `PAYMENTS_DASHBOARD_TOKEN`, and denies everything\nwhen that variable is unset. Replace `authorize` with your own guard, and/or add the optional\n`dashboardAuth` session gate (a built-in login page and/or an \"open the console from your app\"\nendpoint) on top of it.\n\n## URLs\n\nThe current screen lives in the hash — `#/payments`, `#/webhooks?status=failed`,\n`#/payments/<gatewayId>` for one payment open in full — so the back button, reload and copy-paste\nall work (`src/app/routes.ts`). A fragment and not a path, because the provider registers no SPA\ncatch-all: `<path>` is an exact route, and anything under it that is not `/api` or `/assets` is a\n404 by design. It also fits on a phone: every pill row scrolls sideways rather than pushing the page\nwider than the viewport.\n\n## CSP\n\nThe provider hands the SPA its config as a `<script type=\"application/json\">` data block, never an\nexecutable inline script, so `script-src 'self'` (with or without a nonce) is all the console needs.\nThe `window.__PAYMENTS_*__` globals `src/client/payments-client.ts` also reads are a test/embedding\nescape hatch, consulted only when the block is absent.\n\n## Money\n\nAmounts are integer cents everywhere — in the store, in `billingOverview()`, and on the wire. The only\ndivision by 100 in the whole console is in `src/app/money.ts`, at render.\n\n## Mounting anywhere\n\n`vite build` bakes a placeholder base (`/__PAYMENTS_DASHBOARD__/`) into the asset URLs, which the\nAdonisJS provider rewrites at serve time to whatever `path` is configured. One built bundle mounts at\nany prefix with no rebuild.\n","readmeFilename":""}