@getpara/cli 2.15.0
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.
- package/README.md +97 -0
- package/dist/api/client.d.ts +49 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +247 -0
- package/dist/api/errors.d.ts +9 -0
- package/dist/api/errors.d.ts.map +1 -0
- package/dist/api/errors.js +29 -0
- package/dist/api/types.d.ts +155 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +58 -0
- package/dist/auth/polling-flow.d.ts +7 -0
- package/dist/auth/polling-flow.d.ts.map +1 -0
- package/dist/auth/polling-flow.js +94 -0
- package/dist/auth/session-manager.d.ts +7 -0
- package/dist/auth/session-manager.d.ts.map +1 -0
- package/dist/auth/session-manager.js +42 -0
- package/dist/cli.d.ts +16 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +151 -0
- package/dist/commands/auth/index.d.ts +3 -0
- package/dist/commands/auth/index.d.ts.map +1 -0
- package/dist/commands/auth/index.js +18 -0
- package/dist/commands/auth/login.d.ts +3 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +70 -0
- package/dist/commands/auth/logout.d.ts +3 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +45 -0
- package/dist/commands/auth/status.d.ts +3 -0
- package/dist/commands/auth/status.d.ts.map +1 -0
- package/dist/commands/auth/status.js +54 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +122 -0
- package/dist/commands/create.d.ts +3 -0
- package/dist/commands/create.d.ts.map +1 -0
- package/dist/commands/create.js +587 -0
- package/dist/commands/doctor.d.ts +3 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +67 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +45 -0
- package/dist/commands/keys/archive.d.ts +3 -0
- package/dist/commands/keys/archive.d.ts.map +1 -0
- package/dist/commands/keys/archive.js +49 -0
- package/dist/commands/keys/config/branding.d.ts +23 -0
- package/dist/commands/keys/config/branding.d.ts.map +1 -0
- package/dist/commands/keys/config/branding.js +246 -0
- package/dist/commands/keys/config/categories.d.ts +15 -0
- package/dist/commands/keys/config/categories.d.ts.map +1 -0
- package/dist/commands/keys/config/categories.js +67 -0
- package/dist/commands/keys/config/index.d.ts +3 -0
- package/dist/commands/keys/config/index.d.ts.map +1 -0
- package/dist/commands/keys/config/index.js +56 -0
- package/dist/commands/keys/config/ramps.d.ts +18 -0
- package/dist/commands/keys/config/ramps.d.ts.map +1 -0
- package/dist/commands/keys/config/ramps.js +185 -0
- package/dist/commands/keys/config/security.d.ts +15 -0
- package/dist/commands/keys/config/security.d.ts.map +1 -0
- package/dist/commands/keys/config/security.js +212 -0
- package/dist/commands/keys/config/setup.d.ts +16 -0
- package/dist/commands/keys/config/setup.d.ts.map +1 -0
- package/dist/commands/keys/config/setup.js +235 -0
- package/dist/commands/keys/config/webhooks.d.ts +18 -0
- package/dist/commands/keys/config/webhooks.d.ts.map +1 -0
- package/dist/commands/keys/config/webhooks.js +279 -0
- package/dist/commands/keys/create.d.ts +3 -0
- package/dist/commands/keys/create.d.ts.map +1 -0
- package/dist/commands/keys/create.js +64 -0
- package/dist/commands/keys/get.d.ts +3 -0
- package/dist/commands/keys/get.d.ts.map +1 -0
- package/dist/commands/keys/get.js +91 -0
- package/dist/commands/keys/index.d.ts +3 -0
- package/dist/commands/keys/index.d.ts.map +1 -0
- package/dist/commands/keys/index.js +22 -0
- package/dist/commands/keys/list.d.ts +3 -0
- package/dist/commands/keys/list.d.ts.map +1 -0
- package/dist/commands/keys/list.js +66 -0
- package/dist/commands/keys/rotate.d.ts +3 -0
- package/dist/commands/keys/rotate.d.ts.map +1 -0
- package/dist/commands/keys/rotate.js +59 -0
- package/dist/commands/orgs/index.d.ts +3 -0
- package/dist/commands/orgs/index.d.ts.map +1 -0
- package/dist/commands/orgs/index.js +15 -0
- package/dist/commands/orgs/list.d.ts +3 -0
- package/dist/commands/orgs/list.d.ts.map +1 -0
- package/dist/commands/orgs/list.js +53 -0
- package/dist/commands/orgs/switch.d.ts +3 -0
- package/dist/commands/orgs/switch.d.ts.map +1 -0
- package/dist/commands/orgs/switch.js +61 -0
- package/dist/commands/projects/archive.d.ts +3 -0
- package/dist/commands/projects/archive.d.ts.map +1 -0
- package/dist/commands/projects/archive.js +51 -0
- package/dist/commands/projects/create.d.ts +3 -0
- package/dist/commands/projects/create.d.ts.map +1 -0
- package/dist/commands/projects/create.js +48 -0
- package/dist/commands/projects/index.d.ts +3 -0
- package/dist/commands/projects/index.d.ts.map +1 -0
- package/dist/commands/projects/index.js +25 -0
- package/dist/commands/projects/list.d.ts +3 -0
- package/dist/commands/projects/list.d.ts.map +1 -0
- package/dist/commands/projects/list.js +52 -0
- package/dist/commands/projects/restore.d.ts +3 -0
- package/dist/commands/projects/restore.d.ts.map +1 -0
- package/dist/commands/projects/restore.js +36 -0
- package/dist/commands/projects/switch.d.ts +3 -0
- package/dist/commands/projects/switch.d.ts.map +1 -0
- package/dist/commands/projects/switch.js +57 -0
- package/dist/commands/projects/update.d.ts +3 -0
- package/dist/commands/projects/update.d.ts.map +1 -0
- package/dist/commands/projects/update.js +67 -0
- package/dist/commands/whoami.d.ts +3 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +61 -0
- package/dist/config/config-manager.d.ts +3 -0
- package/dist/config/config-manager.d.ts.map +1 -0
- package/dist/config/config-manager.js +32 -0
- package/dist/config/config-store.d.ts +10 -0
- package/dist/config/config-store.d.ts.map +1 -0
- package/dist/config/config-store.js +37 -0
- package/dist/config/credential-store.d.ts +12 -0
- package/dist/config/credential-store.d.ts.map +1 -0
- package/dist/config/credential-store.js +94 -0
- package/dist/config/paths.d.ts +5 -0
- package/dist/config/paths.d.ts.map +1 -0
- package/dist/config/paths.js +29 -0
- package/dist/config/project-config.d.ts +8 -0
- package/dist/config/project-config.d.ts.map +1 -0
- package/dist/config/project-config.js +41 -0
- package/dist/core/constants.d.ts +27 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +60 -0
- package/dist/core/error-handler.d.ts +24 -0
- package/dist/core/error-handler.d.ts.map +1 -0
- package/dist/core/error-handler.js +83 -0
- package/dist/core/types.d.ts +21 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +0 -0
- package/dist/core/update-check.d.ts +6 -0
- package/dist/core/update-check.d.ts.map +1 -0
- package/dist/core/update-check.js +78 -0
- package/dist/diagnostics/checks/chain-dependencies.d.ts +2 -0
- package/dist/diagnostics/checks/chain-dependencies.d.ts.map +1 -0
- package/dist/diagnostics/checks/chain-dependencies.js +130 -0
- package/dist/diagnostics/checks/css-import.d.ts +2 -0
- package/dist/diagnostics/checks/css-import.d.ts.map +1 -0
- package/dist/diagnostics/checks/css-import.js +57 -0
- package/dist/diagnostics/checks/deprecated-packages.d.ts +2 -0
- package/dist/diagnostics/checks/deprecated-packages.d.ts.map +1 -0
- package/dist/diagnostics/checks/deprecated-packages.js +93 -0
- package/dist/diagnostics/checks/env-api-key.d.ts +2 -0
- package/dist/diagnostics/checks/env-api-key.d.ts.map +1 -0
- package/dist/diagnostics/checks/env-api-key.js +75 -0
- package/dist/diagnostics/checks/env-var-prefix.d.ts +2 -0
- package/dist/diagnostics/checks/env-var-prefix.d.ts.map +1 -0
- package/dist/diagnostics/checks/env-var-prefix.js +52 -0
- package/dist/diagnostics/checks/index.d.ts +13 -0
- package/dist/diagnostics/checks/index.d.ts.map +1 -0
- package/dist/diagnostics/checks/index.js +32 -0
- package/dist/diagnostics/checks/para-provider.d.ts +2 -0
- package/dist/diagnostics/checks/para-provider.d.ts.map +1 -0
- package/dist/diagnostics/checks/para-provider.js +42 -0
- package/dist/diagnostics/checks/query-client.d.ts +2 -0
- package/dist/diagnostics/checks/query-client.d.ts.map +1 -0
- package/dist/diagnostics/checks/query-client.js +58 -0
- package/dist/diagnostics/checks/use-client-directive.d.ts +2 -0
- package/dist/diagnostics/checks/use-client-directive.d.ts.map +1 -0
- package/dist/diagnostics/checks/use-client-directive.js +81 -0
- package/dist/diagnostics/checks/version-consistency.d.ts +2 -0
- package/dist/diagnostics/checks/version-consistency.d.ts.map +1 -0
- package/dist/diagnostics/checks/version-consistency.js +93 -0
- package/dist/diagnostics/context.d.ts +3 -0
- package/dist/diagnostics/context.d.ts.map +1 -0
- package/dist/diagnostics/context.js +56 -0
- package/dist/diagnostics/detectors/framework.d.ts +5 -0
- package/dist/diagnostics/detectors/framework.d.ts.map +1 -0
- package/dist/diagnostics/detectors/framework.js +73 -0
- package/dist/diagnostics/detectors/package-manager.d.ts +3 -0
- package/dist/diagnostics/detectors/package-manager.d.ts.map +1 -0
- package/dist/diagnostics/detectors/package-manager.js +17 -0
- package/dist/diagnostics/detectors/sdk.d.ts +7 -0
- package/dist/diagnostics/detectors/sdk.d.ts.map +1 -0
- package/dist/diagnostics/detectors/sdk.js +48 -0
- package/dist/diagnostics/runner.d.ts +3 -0
- package/dist/diagnostics/runner.d.ts.map +1 -0
- package/dist/diagnostics/runner.js +44 -0
- package/dist/diagnostics/types.d.ts +70 -0
- package/dist/diagnostics/types.d.ts.map +1 -0
- package/dist/diagnostics/types.js +14 -0
- package/dist/diagnostics/utils/code-search.d.ts +10 -0
- package/dist/diagnostics/utils/code-search.d.ts.map +1 -0
- package/dist/diagnostics/utils/code-search.js +98 -0
- package/dist/diagnostics/utils/file-system.d.ts +7 -0
- package/dist/diagnostics/utils/file-system.d.ts.map +1 -0
- package/dist/diagnostics/utils/file-system.js +72 -0
- package/dist/diagnostics/utils/package-json.d.ts +12 -0
- package/dist/diagnostics/utils/package-json.d.ts.map +1 -0
- package/dist/diagnostics/utils/package-json.js +51 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/output/formatter.d.ts +25 -0
- package/dist/output/formatter.d.ts.map +1 -0
- package/dist/output/formatter.js +76 -0
- package/dist/output/mask.d.ts +2 -0
- package/dist/output/mask.d.ts.map +1 -0
- package/dist/output/mask.js +15 -0
- package/dist/output/prompts.d.ts +25 -0
- package/dist/output/prompts.d.ts.map +1 -0
- package/dist/output/prompts.js +86 -0
- package/dist/output/spinner.d.ts +6 -0
- package/dist/output/spinner.d.ts.map +1 -0
- package/dist/output/spinner.js +7 -0
- package/dist/output/table.d.ts +9 -0
- package/dist/output/table.d.ts.map +1 -0
- package/dist/output/table.js +21 -0
- package/dist/scaffolding/scaffolder.d.ts +3 -0
- package/dist/scaffolding/scaffolder.d.ts.map +1 -0
- package/dist/scaffolding/scaffolder.js +78 -0
- package/dist/scaffolding/strategies/expo-template.d.ts +16 -0
- package/dist/scaffolding/strategies/expo-template.d.ts.map +1 -0
- package/dist/scaffolding/strategies/expo-template.js +160 -0
- package/dist/scaffolding/strategies/index.d.ts +5 -0
- package/dist/scaffolding/strategies/index.d.ts.map +1 -0
- package/dist/scaffolding/strategies/index.js +25 -0
- package/dist/scaffolding/strategies/nextjs-template.d.ts +12 -0
- package/dist/scaffolding/strategies/nextjs-template.d.ts.map +1 -0
- package/dist/scaffolding/strategies/nextjs-template.js +122 -0
- package/dist/scaffolding/template-renderer.d.ts +11 -0
- package/dist/scaffolding/template-renderer.d.ts.map +1 -0
- package/dist/scaffolding/template-renderer.js +99 -0
- package/dist/scaffolding/types.d.ts +69 -0
- package/dist/scaffolding/types.d.ts.map +1 -0
- package/dist/scaffolding/types.js +21 -0
- package/dist/scaffolding/utils/detect-package-manager.d.ts +23 -0
- package/dist/scaffolding/utils/detect-package-manager.d.ts.map +1 -0
- package/dist/scaffolding/utils/detect-package-manager.js +57 -0
- package/dist/scaffolding/utils/fs.d.ts +11 -0
- package/dist/scaffolding/utils/fs.d.ts.map +1 -0
- package/dist/scaffolding/utils/fs.js +45 -0
- package/dist/scaffolding/utils/resolve-para-version.d.ts +7 -0
- package/dist/scaffolding/utils/resolve-para-version.d.ts.map +1 -0
- package/dist/scaffolding/utils/resolve-para-version.js +21 -0
- package/dist/validation/auth-methods.d.ts +14 -0
- package/dist/validation/auth-methods.d.ts.map +1 -0
- package/dist/validation/auth-methods.js +23 -0
- package/dist/validation/cidr.d.ts +11 -0
- package/dist/validation/cidr.d.ts.map +1 -0
- package/dist/validation/cidr.js +35 -0
- package/dist/validation/hex-color.d.ts +7 -0
- package/dist/validation/hex-color.d.ts.map +1 -0
- package/dist/validation/hex-color.js +10 -0
- package/dist/validation/index.d.ts +9 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +49 -0
- package/dist/validation/native-passkey.d.ts +31 -0
- package/dist/validation/native-passkey.d.ts.map +1 -0
- package/dist/validation/native-passkey.js +45 -0
- package/dist/validation/session-length.d.ts +18 -0
- package/dist/validation/session-length.d.ts.map +1 -0
- package/dist/validation/session-length.js +30 -0
- package/dist/validation/url.d.ts +26 -0
- package/dist/validation/url.d.ts.map +1 -0
- package/dist/validation/url.js +50 -0
- package/dist/validation/wallet-types.d.ts +14 -0
- package/dist/validation/wallet-types.d.ts.map +1 -0
- package/dist/validation/wallet-types.js +22 -0
- package/dist/validation/webhook.d.ts +4 -0
- package/dist/validation/webhook.d.ts.map +1 -0
- package/dist/validation/webhook.js +33 -0
- package/package.json +60 -0
- package/templates/expo/_env.example +3 -0
- package/templates/expo/_gitignore +48 -0
- package/templates/expo/_yarnrc.yml +1 -0
- package/templates/expo/app/(auth)/_layout.tsx +12 -0
- package/templates/expo/app/(auth)/index.tsx.template +86 -0
- package/templates/expo/app/(tabs)/_layout.tsx +16 -0
- package/templates/expo/app/(tabs)/index.tsx +112 -0
- package/templates/expo/app/(tabs)/send.tsx +111 -0
- package/templates/expo/app/_layout.tsx +17 -0
- package/templates/expo/app/index.tsx +22 -0
- package/templates/expo/app.json.template +32 -0
- package/templates/expo/assets/adaptive-icon.png +0 -0
- package/templates/expo/assets/favicon.png +0 -0
- package/templates/expo/assets/icon.png +0 -0
- package/templates/expo/assets/splash.png +0 -0
- package/templates/expo/babel.config.cjs +12 -0
- package/templates/expo/components/features/AuthForm.tsx.template +138 -0
- package/templates/expo/components/features/OAuthButtons.tsx.template +27 -0
- package/templates/expo/components/features/index.ts.template +4 -0
- package/templates/expo/components/ui/Button.tsx +58 -0
- package/templates/expo/components/ui/Card.tsx +11 -0
- package/templates/expo/components/ui/Divider.tsx +19 -0
- package/templates/expo/components/ui/Input.tsx +23 -0
- package/templates/expo/components/ui/WalletCard.tsx +44 -0
- package/templates/expo/components/ui/index.ts +5 -0
- package/templates/expo/eslint.config.cjs +15 -0
- package/templates/expo/global.css +3 -0
- package/templates/expo/hooks/useOneClickLogin.ts.template +161 -0
- package/templates/expo/hooks/useViemClient.ts +118 -0
- package/templates/expo/hooks/useWallets.ts +52 -0
- package/templates/expo/index.js +2 -0
- package/templates/expo/lib/auth.ts +54 -0
- package/templates/expo/lib/constants.ts.template +2 -0
- package/templates/expo/lib/para.ts +14 -0
- package/templates/expo/metro.config.cjs +14 -0
- package/templates/expo/nativewind-env.d.ts +2 -0
- package/templates/expo/prettier.config.cjs +10 -0
- package/templates/expo/providers/ParaProvider.tsx +140 -0
- package/templates/expo/tailwind.config.cjs +23 -0
- package/templates/expo/tsconfig.json +11 -0
- package/templates/expo/types/index.ts +28 -0
- package/templates/nextjs/README.md +69 -0
- package/templates/nextjs/_env.example +8 -0
- package/templates/nextjs/_gitignore +36 -0
- package/templates/nextjs/_yarnrc.yml +1 -0
- package/templates/nextjs/eslint.config.mjs +10 -0
- package/templates/nextjs/next.config.ts +5 -0
- package/templates/nextjs/postcss.config.mjs +7 -0
- package/templates/nextjs/public/para.svg +3 -0
- package/templates/nextjs/src/app/layout.tsx +30 -0
- package/templates/nextjs/src/app/page.tsx +40 -0
- package/templates/nextjs/src/components/ParaProvider.tsx +116 -0
- package/templates/nextjs/src/components/layout/Header.tsx +44 -0
- package/templates/nextjs/src/components/ui/ConnectCard.tsx +24 -0
- package/templates/nextjs/src/components/ui/SignMessage.tsx +53 -0
- package/templates/nextjs/src/components/ui/WalletInfo.tsx +22 -0
- package/templates/nextjs/src/hooks/useSignHelloWorld.ts +23 -0
- package/templates/nextjs/src/styles/globals.css +1 -0
- package/templates/nextjs/tsconfig.json +27 -0
package/README.md
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# @getpara/cli
|
|
2
|
+
|
|
3
|
+
The official CLI for [Para](https://getpara.com). Authenticate, manage projects and API keys, scaffold new apps, and diagnose SDK issues — all from the terminal.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g @getpara/cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Or run directly with npx:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx @getpara/cli <command>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
para login # Sign in via the developer portal
|
|
21
|
+
para orgs switch # Pick your organization
|
|
22
|
+
para projects switch # Pick your project
|
|
23
|
+
para keys list # View your API keys
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Commands
|
|
27
|
+
|
|
28
|
+
### Auth
|
|
29
|
+
|
|
30
|
+
| Command | Description |
|
|
31
|
+
|---------|-------------|
|
|
32
|
+
| `para login` | Sign in via the Para developer portal |
|
|
33
|
+
| `para logout` | Clear stored credentials |
|
|
34
|
+
| `para whoami` | Show current user, org, and project context |
|
|
35
|
+
|
|
36
|
+
### Resources
|
|
37
|
+
|
|
38
|
+
| Command | Description |
|
|
39
|
+
|---------|-------------|
|
|
40
|
+
| `para orgs list` | List your organizations |
|
|
41
|
+
| `para orgs switch` | Set the active organization |
|
|
42
|
+
| `para projects list` | List projects in your organization |
|
|
43
|
+
| `para projects create` | Create a new project |
|
|
44
|
+
| `para projects switch` | Set the active project |
|
|
45
|
+
| `para keys list` | List API keys for a project |
|
|
46
|
+
| `para keys get <id>` | Get details for a specific key |
|
|
47
|
+
| `para keys create` | Create a new API key |
|
|
48
|
+
| `para keys rotate <id>` | Rotate an API key |
|
|
49
|
+
|
|
50
|
+
### Setup
|
|
51
|
+
|
|
52
|
+
| Command | Description |
|
|
53
|
+
|---------|-------------|
|
|
54
|
+
| `para create [name]` | Scaffold a new Para-powered app (Next.js or Expo) |
|
|
55
|
+
| `para init` | Save current org/project/env to a `.pararc` file |
|
|
56
|
+
| `para config get [key]` | View configuration values |
|
|
57
|
+
| `para config set <key> <value>` | Set a configuration value |
|
|
58
|
+
| `para config unset <key>` | Remove a configuration value |
|
|
59
|
+
| `para doctor [path]` | Check a project for common SDK issues |
|
|
60
|
+
|
|
61
|
+
## Global Options
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
-e, --environment <env> Target environment (DEV, SANDBOX, BETA, PROD)
|
|
65
|
+
--json Output as JSON
|
|
66
|
+
--org <id> Organization ID override
|
|
67
|
+
--project <id> Project ID override
|
|
68
|
+
-q, --quiet Suppress non-essential output
|
|
69
|
+
--no-input Disable interactive prompts (auto-detected in CI)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Authentication
|
|
73
|
+
|
|
74
|
+
The CLI supports three authentication methods:
|
|
75
|
+
|
|
76
|
+
1. **Browser login** (default) — `para login` opens the developer portal for OAuth
|
|
77
|
+
2. **Environment variable** — set `PARA_TOKEN` for scripts and CI
|
|
78
|
+
3. **Token file** — set `PARA_TOKEN_FILE` to read a token from disk
|
|
79
|
+
|
|
80
|
+
Credentials are stored in `~/.config/para/credentials.json`.
|
|
81
|
+
|
|
82
|
+
## Configuration
|
|
83
|
+
|
|
84
|
+
Settings are resolved in order (first match wins):
|
|
85
|
+
|
|
86
|
+
1. CLI flags (`--org`, `--project`, `-e`)
|
|
87
|
+
2. Environment variables (`PARA_ENVIRONMENT`, `PARA_ORG_ID`, `PARA_PROJECT_ID`)
|
|
88
|
+
3. Project config (`.pararc` in project root)
|
|
89
|
+
4. Global config (`~/.config/para/config.json`)
|
|
90
|
+
5. Defaults
|
|
91
|
+
|
|
92
|
+
## More
|
|
93
|
+
|
|
94
|
+
- [Para Documentation](https://docs.getpara.com)
|
|
95
|
+
- [Developer Portal](https://developer.getpara.com)
|
|
96
|
+
|
|
97
|
+
Run `para <command> --help` for detailed usage on any command.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type Environment } from '../core/constants.js';
|
|
2
|
+
import type { Organization, Project, ApiKey, ApiKeyConfig, AuthStatus, WebhookConfig, WebhookConfigWithSecretResponse, WebhookTestResponse, WebhookRotateSecretResponse, UpdateWebhookBody } from './types.js';
|
|
3
|
+
interface ClientConfig {
|
|
4
|
+
environment: Environment;
|
|
5
|
+
sessionId: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class ParaApiClient {
|
|
8
|
+
private readonly config;
|
|
9
|
+
private readonly baseUrl;
|
|
10
|
+
private readonly sessionId;
|
|
11
|
+
constructor(config: ClientConfig);
|
|
12
|
+
private request;
|
|
13
|
+
getAuthStatus(): Promise<AuthStatus>;
|
|
14
|
+
logout(): Promise<void>;
|
|
15
|
+
getOrganizations(userId: string): Promise<Organization[]>;
|
|
16
|
+
getProjects(orgId: string): Promise<Project[]>;
|
|
17
|
+
createProject(orgId: string, data: {
|
|
18
|
+
name: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
framework?: string;
|
|
21
|
+
}): Promise<Project>;
|
|
22
|
+
getApiKeys(orgId: string, projectId: string, environment: string): Promise<ApiKey[]>;
|
|
23
|
+
getApiKey(orgId: string, projectId: string, environment: string, keyId: string): Promise<ApiKey>;
|
|
24
|
+
createApiKey(orgId: string, projectId: string, environment: string, data: {
|
|
25
|
+
name: string;
|
|
26
|
+
displayName?: string;
|
|
27
|
+
}): Promise<ApiKey>;
|
|
28
|
+
rotateApiKey(orgId: string, projectId: string, environment: string, keyId: string): Promise<{
|
|
29
|
+
newKey: string;
|
|
30
|
+
}>;
|
|
31
|
+
rotateSecretApiKey(orgId: string, projectId: string, environment: string, keyId: string): Promise<{
|
|
32
|
+
newKey: string;
|
|
33
|
+
}>;
|
|
34
|
+
updateProject(orgId: string, projectId: string, data: Partial<Pick<Project, 'name' | 'description' | 'framework' | 'packageManager'>>): Promise<void>;
|
|
35
|
+
deleteProject(orgId: string, projectId: string): Promise<void>;
|
|
36
|
+
restoreProject(orgId: string, projectId: string): Promise<void>;
|
|
37
|
+
updateApiKey(orgId: string, projectId: string, environment: string, keyId: string, data: ApiKeyConfig): Promise<void>;
|
|
38
|
+
deleteApiKey(orgId: string, projectId: string, environment: string, keyId: string): Promise<void>;
|
|
39
|
+
getIpAllowlist(orgId: string, projectId: string, environment: string, keyId: string): Promise<string[]>;
|
|
40
|
+
updateIpAllowlist(orgId: string, projectId: string, environment: string, keyId: string, cidrs: string[]): Promise<string[]>;
|
|
41
|
+
private webhookBasePath;
|
|
42
|
+
getWebhookConfig(orgId: string, projectId: string, environment: string, keyId: string): Promise<WebhookConfig | null>;
|
|
43
|
+
updateWebhookConfig(orgId: string, projectId: string, environment: string, keyId: string, data: UpdateWebhookBody): Promise<WebhookConfigWithSecretResponse>;
|
|
44
|
+
deleteWebhookConfig(orgId: string, projectId: string, environment: string, keyId: string): Promise<void>;
|
|
45
|
+
testWebhook(orgId: string, projectId: string, environment: string, keyId: string): Promise<WebhookTestResponse>;
|
|
46
|
+
rotateWebhookSecret(orgId: string, projectId: string, environment: string, keyId: string): Promise<WebhookRotateSecretResponse>;
|
|
47
|
+
}
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { CLI_VERSION, USER_AGENT, BASE_URLS, DEV_PORTAL_API_KEY } from "../core/constants.js";
|
|
2
|
+
import { NetworkError } from "../core/error-handler.js";
|
|
3
|
+
import { classifyApiError } from "./errors.js";
|
|
4
|
+
const SAFE_PATH_SEGMENT = /^[a-zA-Z0-9_-]+$/;
|
|
5
|
+
function validatePathSegment(value, name) {
|
|
6
|
+
if (!SAFE_PATH_SEGMENT.test(value)) {
|
|
7
|
+
throw new Error(`Invalid ${name}: "${value}". Only alphanumeric characters, hyphens, and underscores are allowed.`);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
const MAX_RETRIES = 2;
|
|
11
|
+
const RETRY_BACKOFF_MS = 1e3;
|
|
12
|
+
const REQUEST_TIMEOUT_MS = 3e4;
|
|
13
|
+
class ParaApiClient {
|
|
14
|
+
constructor(config) {
|
|
15
|
+
this.config = config;
|
|
16
|
+
this.baseUrl = BASE_URLS[config.environment];
|
|
17
|
+
this.sessionId = config.sessionId;
|
|
18
|
+
}
|
|
19
|
+
baseUrl;
|
|
20
|
+
sessionId;
|
|
21
|
+
async request(method, path, body) {
|
|
22
|
+
const url = `${this.baseUrl}${path}`;
|
|
23
|
+
const headers = {
|
|
24
|
+
"Content-Type": "application/json",
|
|
25
|
+
"x-capsule-sid": this.sessionId,
|
|
26
|
+
"X-External-API-Key": DEV_PORTAL_API_KEY,
|
|
27
|
+
"x-para-client-type": "cli",
|
|
28
|
+
"x-para-client-version": CLI_VERSION,
|
|
29
|
+
"User-Agent": USER_AGENT
|
|
30
|
+
};
|
|
31
|
+
let lastError = null;
|
|
32
|
+
for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
|
|
33
|
+
try {
|
|
34
|
+
const controller = new AbortController();
|
|
35
|
+
const timeout = setTimeout(() => controller.abort(), REQUEST_TIMEOUT_MS);
|
|
36
|
+
const response = await fetch(url, {
|
|
37
|
+
method,
|
|
38
|
+
headers,
|
|
39
|
+
body: body ? JSON.stringify(body) : void 0,
|
|
40
|
+
signal: controller.signal
|
|
41
|
+
});
|
|
42
|
+
clearTimeout(timeout);
|
|
43
|
+
if (response.ok) {
|
|
44
|
+
if (response.status === 204) return void 0;
|
|
45
|
+
return await response.json();
|
|
46
|
+
}
|
|
47
|
+
let errorBody = {};
|
|
48
|
+
try {
|
|
49
|
+
errorBody = await response.json();
|
|
50
|
+
} catch {
|
|
51
|
+
errorBody = { message: response.statusText };
|
|
52
|
+
}
|
|
53
|
+
if ((response.status === 429 || response.status >= 500) && attempt < MAX_RETRIES) {
|
|
54
|
+
const retryAfter = response.headers.get("Retry-After");
|
|
55
|
+
const parsedRetry = retryAfter ? parseInt(retryAfter, 10) : NaN;
|
|
56
|
+
const delay = !isNaN(parsedRetry) ? Math.min(parsedRetry, 60) * 1e3 : RETRY_BACKOFF_MS * Math.pow(2, attempt);
|
|
57
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
58
|
+
lastError = classifyApiError(response.status, errorBody);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
throw classifyApiError(response.status, errorBody);
|
|
62
|
+
} catch (error) {
|
|
63
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
64
|
+
if (attempt < MAX_RETRIES) {
|
|
65
|
+
await new Promise((resolve) => setTimeout(resolve, RETRY_BACKOFF_MS * Math.pow(2, attempt)));
|
|
66
|
+
lastError = new NetworkError(`Request to ${this.baseUrl} timed out after ${REQUEST_TIMEOUT_MS / 1e3}s.`);
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
throw new NetworkError(`Request to ${this.baseUrl} timed out after ${REQUEST_TIMEOUT_MS / 1e3}s.`);
|
|
70
|
+
}
|
|
71
|
+
if (error instanceof TypeError && error.message.includes("fetch")) {
|
|
72
|
+
if (attempt < MAX_RETRIES) {
|
|
73
|
+
await new Promise((resolve) => setTimeout(resolve, RETRY_BACKOFF_MS * Math.pow(2, attempt)));
|
|
74
|
+
lastError = new NetworkError(`Failed to connect to ${this.baseUrl}. Check your network connection.`);
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
throw new NetworkError(`Failed to connect to ${this.baseUrl}. Check your network connection.`);
|
|
78
|
+
}
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
throw lastError || new NetworkError("Request failed after retries.");
|
|
83
|
+
}
|
|
84
|
+
// Auth
|
|
85
|
+
async getAuthStatus() {
|
|
86
|
+
return this.request("GET", "/cli/auth/status");
|
|
87
|
+
}
|
|
88
|
+
async logout() {
|
|
89
|
+
return this.request("POST", "/cli/auth/logout");
|
|
90
|
+
}
|
|
91
|
+
// Organizations
|
|
92
|
+
async getOrganizations(userId) {
|
|
93
|
+
validatePathSegment(userId, "userId");
|
|
94
|
+
const res = await this.request("GET", `/users/${userId}/organizations`);
|
|
95
|
+
return res.organizations;
|
|
96
|
+
}
|
|
97
|
+
// Projects
|
|
98
|
+
async getProjects(orgId) {
|
|
99
|
+
validatePathSegment(orgId, "orgId");
|
|
100
|
+
const res = await this.request("GET", `/organizations/${orgId}/projects`);
|
|
101
|
+
return res.projects;
|
|
102
|
+
}
|
|
103
|
+
async createProject(orgId, data) {
|
|
104
|
+
validatePathSegment(orgId, "orgId");
|
|
105
|
+
const res = await this.request("POST", `/organizations/${orgId}/projects`, data);
|
|
106
|
+
return res.project;
|
|
107
|
+
}
|
|
108
|
+
// API Keys
|
|
109
|
+
async getApiKeys(orgId, projectId, environment) {
|
|
110
|
+
validatePathSegment(orgId, "orgId");
|
|
111
|
+
validatePathSegment(projectId, "projectId");
|
|
112
|
+
validatePathSegment(environment.toLowerCase(), "environment");
|
|
113
|
+
const res = await this.request(
|
|
114
|
+
"GET",
|
|
115
|
+
`/organizations/${orgId}/projects/${projectId}/${environment.toLowerCase()}/keys`
|
|
116
|
+
);
|
|
117
|
+
return res.keys;
|
|
118
|
+
}
|
|
119
|
+
async getApiKey(orgId, projectId, environment, keyId) {
|
|
120
|
+
validatePathSegment(orgId, "orgId");
|
|
121
|
+
validatePathSegment(projectId, "projectId");
|
|
122
|
+
validatePathSegment(environment.toLowerCase(), "environment");
|
|
123
|
+
validatePathSegment(keyId, "keyId");
|
|
124
|
+
const res = await this.request(
|
|
125
|
+
"GET",
|
|
126
|
+
`/organizations/${orgId}/projects/${projectId}/${environment.toLowerCase()}/keys/${keyId}`
|
|
127
|
+
);
|
|
128
|
+
return res.key;
|
|
129
|
+
}
|
|
130
|
+
async createApiKey(orgId, projectId, environment, data) {
|
|
131
|
+
validatePathSegment(orgId, "orgId");
|
|
132
|
+
validatePathSegment(projectId, "projectId");
|
|
133
|
+
validatePathSegment(environment.toLowerCase(), "environment");
|
|
134
|
+
const res = await this.request(
|
|
135
|
+
"POST",
|
|
136
|
+
`/organizations/${orgId}/projects/${projectId}/${environment.toLowerCase()}/keys`,
|
|
137
|
+
data
|
|
138
|
+
);
|
|
139
|
+
return res.key;
|
|
140
|
+
}
|
|
141
|
+
async rotateApiKey(orgId, projectId, environment, keyId) {
|
|
142
|
+
validatePathSegment(orgId, "orgId");
|
|
143
|
+
validatePathSegment(projectId, "projectId");
|
|
144
|
+
validatePathSegment(environment.toLowerCase(), "environment");
|
|
145
|
+
validatePathSegment(keyId, "keyId");
|
|
146
|
+
return this.request(
|
|
147
|
+
"POST",
|
|
148
|
+
`/organizations/${orgId}/projects/${projectId}/${environment.toLowerCase()}/keys/${keyId}/rotate`
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
async rotateSecretApiKey(orgId, projectId, environment, keyId) {
|
|
152
|
+
validatePathSegment(orgId, "orgId");
|
|
153
|
+
validatePathSegment(projectId, "projectId");
|
|
154
|
+
validatePathSegment(environment.toLowerCase(), "environment");
|
|
155
|
+
validatePathSegment(keyId, "keyId");
|
|
156
|
+
return this.request(
|
|
157
|
+
"POST",
|
|
158
|
+
`/organizations/${orgId}/projects/${projectId}/${environment.toLowerCase()}/keys/${keyId}/rotate-secret-key`
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
// Project management
|
|
162
|
+
async updateProject(orgId, projectId, data) {
|
|
163
|
+
validatePathSegment(orgId, "orgId");
|
|
164
|
+
validatePathSegment(projectId, "projectId");
|
|
165
|
+
await this.request("PATCH", `/organizations/${orgId}/projects/${projectId}`, data);
|
|
166
|
+
}
|
|
167
|
+
async deleteProject(orgId, projectId) {
|
|
168
|
+
validatePathSegment(orgId, "orgId");
|
|
169
|
+
validatePathSegment(projectId, "projectId");
|
|
170
|
+
await this.request("DELETE", `/organizations/${orgId}/projects/${projectId}`);
|
|
171
|
+
}
|
|
172
|
+
async restoreProject(orgId, projectId) {
|
|
173
|
+
validatePathSegment(orgId, "orgId");
|
|
174
|
+
validatePathSegment(projectId, "projectId");
|
|
175
|
+
await this.request("PATCH", `/organizations/${orgId}/projects/${projectId}/restore`);
|
|
176
|
+
}
|
|
177
|
+
// API Key management
|
|
178
|
+
async updateApiKey(orgId, projectId, environment, keyId, data) {
|
|
179
|
+
validatePathSegment(orgId, "orgId");
|
|
180
|
+
validatePathSegment(projectId, "projectId");
|
|
181
|
+
validatePathSegment(environment.toLowerCase(), "environment");
|
|
182
|
+
validatePathSegment(keyId, "keyId");
|
|
183
|
+
await this.request(
|
|
184
|
+
"PATCH",
|
|
185
|
+
`/organizations/${orgId}/projects/${projectId}/${environment.toLowerCase()}/keys/${keyId}`,
|
|
186
|
+
data
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
async deleteApiKey(orgId, projectId, environment, keyId) {
|
|
190
|
+
validatePathSegment(orgId, "orgId");
|
|
191
|
+
validatePathSegment(projectId, "projectId");
|
|
192
|
+
validatePathSegment(environment.toLowerCase(), "environment");
|
|
193
|
+
validatePathSegment(keyId, "keyId");
|
|
194
|
+
await this.request("DELETE", `/organizations/${orgId}/projects/${projectId}/${environment.toLowerCase()}/keys/${keyId}`);
|
|
195
|
+
}
|
|
196
|
+
// IP Allowlist
|
|
197
|
+
async getIpAllowlist(orgId, projectId, environment, keyId) {
|
|
198
|
+
validatePathSegment(orgId, "orgId");
|
|
199
|
+
validatePathSegment(projectId, "projectId");
|
|
200
|
+
validatePathSegment(environment.toLowerCase(), "environment");
|
|
201
|
+
validatePathSegment(keyId, "keyId");
|
|
202
|
+
const res = await this.request(
|
|
203
|
+
"GET",
|
|
204
|
+
`/organizations/${orgId}/projects/${projectId}/${environment.toLowerCase()}/keys/${keyId}/ip-allowlist`
|
|
205
|
+
);
|
|
206
|
+
return res.allowlistCidrs;
|
|
207
|
+
}
|
|
208
|
+
async updateIpAllowlist(orgId, projectId, environment, keyId, cidrs) {
|
|
209
|
+
validatePathSegment(orgId, "orgId");
|
|
210
|
+
validatePathSegment(projectId, "projectId");
|
|
211
|
+
validatePathSegment(environment.toLowerCase(), "environment");
|
|
212
|
+
validatePathSegment(keyId, "keyId");
|
|
213
|
+
const res = await this.request(
|
|
214
|
+
"PUT",
|
|
215
|
+
`/organizations/${orgId}/projects/${projectId}/${environment.toLowerCase()}/keys/${keyId}/ip-allowlist`,
|
|
216
|
+
{ allowlistCidrs: cidrs }
|
|
217
|
+
);
|
|
218
|
+
return res.allowlistCidrs;
|
|
219
|
+
}
|
|
220
|
+
// Webhooks
|
|
221
|
+
webhookBasePath(orgId, projectId, environment, keyId) {
|
|
222
|
+
validatePathSegment(orgId, "orgId");
|
|
223
|
+
validatePathSegment(projectId, "projectId");
|
|
224
|
+
validatePathSegment(environment.toLowerCase(), "environment");
|
|
225
|
+
validatePathSegment(keyId, "keyId");
|
|
226
|
+
return `/organizations/${orgId}/projects/${projectId}/${environment.toLowerCase()}/keys/${keyId}/webhook`;
|
|
227
|
+
}
|
|
228
|
+
async getWebhookConfig(orgId, projectId, environment, keyId) {
|
|
229
|
+
const res = await this.request("GET", this.webhookBasePath(orgId, projectId, environment, keyId));
|
|
230
|
+
return res.webhook;
|
|
231
|
+
}
|
|
232
|
+
async updateWebhookConfig(orgId, projectId, environment, keyId, data) {
|
|
233
|
+
return this.request("PUT", this.webhookBasePath(orgId, projectId, environment, keyId), data);
|
|
234
|
+
}
|
|
235
|
+
async deleteWebhookConfig(orgId, projectId, environment, keyId) {
|
|
236
|
+
await this.request("DELETE", this.webhookBasePath(orgId, projectId, environment, keyId));
|
|
237
|
+
}
|
|
238
|
+
async testWebhook(orgId, projectId, environment, keyId) {
|
|
239
|
+
return this.request("POST", `${this.webhookBasePath(orgId, projectId, environment, keyId)}/test`);
|
|
240
|
+
}
|
|
241
|
+
async rotateWebhookSecret(orgId, projectId, environment, keyId) {
|
|
242
|
+
return this.request("POST", `${this.webhookBasePath(orgId, projectId, environment, keyId)}/rotate-secret`);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
export {
|
|
246
|
+
ParaApiClient
|
|
247
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CliError, AuthError, ForbiddenError, NetworkError, RateLimitError, NotFoundError } from '../core/error-handler.js';
|
|
2
|
+
export { CliError, AuthError, ForbiddenError, NetworkError, RateLimitError, NotFoundError };
|
|
3
|
+
export interface ApiErrorResponse {
|
|
4
|
+
message?: string;
|
|
5
|
+
error?: string;
|
|
6
|
+
statusCode?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function classifyApiError(status: number, body: ApiErrorResponse): CliError;
|
|
9
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/api/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG5H,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;AAE5F,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,QAAQ,CAmBjF"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { CliError, AuthError, ForbiddenError, NetworkError, RateLimitError, NotFoundError } from "../core/error-handler.js";
|
|
2
|
+
function classifyApiError(status, body) {
|
|
3
|
+
const message = body.message || body.error || `API error (${status})`;
|
|
4
|
+
switch (status) {
|
|
5
|
+
case 401:
|
|
6
|
+
return new AuthError(message);
|
|
7
|
+
case 403:
|
|
8
|
+
return new ForbiddenError(message);
|
|
9
|
+
case 404:
|
|
10
|
+
return new NotFoundError(message);
|
|
11
|
+
case 429: {
|
|
12
|
+
return new RateLimitError(message);
|
|
13
|
+
}
|
|
14
|
+
default:
|
|
15
|
+
if (status >= 500) {
|
|
16
|
+
return new NetworkError(`Server error: ${message}`);
|
|
17
|
+
}
|
|
18
|
+
return new CliError(message);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
AuthError,
|
|
23
|
+
CliError,
|
|
24
|
+
ForbiddenError,
|
|
25
|
+
NetworkError,
|
|
26
|
+
NotFoundError,
|
|
27
|
+
RateLimitError,
|
|
28
|
+
classifyApiError
|
|
29
|
+
};
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { WalletType, AuthMethod, ThemeMode, OnRampProvider, WebhookEventType, SUBSCRIBABLE_WEBHOOK_EVENT_TYPES as SUBSCRIBABLE_WEBHOOK_EVENTS } from '@getpara/shared';
|
|
2
|
+
export { WalletType, AuthMethod, ThemeMode, OnRampProvider, WebhookEventType, SUBSCRIBABLE_WEBHOOK_EVENTS };
|
|
3
|
+
export declare enum Font {
|
|
4
|
+
ARIAL = "Arial",
|
|
5
|
+
COURIER_NEW = "Courier New",
|
|
6
|
+
GEORGIA = "Georgia",
|
|
7
|
+
HELVETICA = "Helvetica",
|
|
8
|
+
LUCIDA_SANS = "Lucida Sans",
|
|
9
|
+
TAHOMA = "Tahoma",
|
|
10
|
+
TIMES_NEW_ROMAN = "Times New Roman",
|
|
11
|
+
TREBUCHET_MS = "Trebuchet MS"
|
|
12
|
+
}
|
|
13
|
+
export declare enum Framework {
|
|
14
|
+
REACT = "REACT",
|
|
15
|
+
NEXT = "NEXT",
|
|
16
|
+
VITE = "VITE",
|
|
17
|
+
VUE = "VUE",
|
|
18
|
+
SVELTE = "SVELTE",
|
|
19
|
+
NODE = "NODE",
|
|
20
|
+
REACT_NATIVE = "REACT_NATIVE",
|
|
21
|
+
EXPO = "EXPO",
|
|
22
|
+
FLUTTER = "FLUTTER",
|
|
23
|
+
SWIFT = "SWIFT",
|
|
24
|
+
DENO = "DENO",
|
|
25
|
+
BUN = "BUN"
|
|
26
|
+
}
|
|
27
|
+
export declare enum PackageManager {
|
|
28
|
+
NPM = "NPM",
|
|
29
|
+
YARN = "YARN",
|
|
30
|
+
PNPM = "PNPM"
|
|
31
|
+
}
|
|
32
|
+
export interface WalletTypeConfig {
|
|
33
|
+
type: WalletType;
|
|
34
|
+
optional?: boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface Organization {
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
39
|
+
activePlanSlug?: string;
|
|
40
|
+
hasDevPortalAccess?: boolean;
|
|
41
|
+
logoUrl?: string;
|
|
42
|
+
archived?: boolean;
|
|
43
|
+
suspended?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface OrganizationMember {
|
|
46
|
+
id: string;
|
|
47
|
+
userId: string;
|
|
48
|
+
organizationId: string;
|
|
49
|
+
role: MemberRole;
|
|
50
|
+
email?: string;
|
|
51
|
+
name?: string;
|
|
52
|
+
}
|
|
53
|
+
export declare enum MemberRole {
|
|
54
|
+
ORG_OWNER = "ORG_OWNER",
|
|
55
|
+
ORG_MEMBER = "ORG_MEMBER",
|
|
56
|
+
PROJECT_MEMBER = "PROJECT_MEMBER"
|
|
57
|
+
}
|
|
58
|
+
export interface Project {
|
|
59
|
+
id: string;
|
|
60
|
+
name: string;
|
|
61
|
+
description?: string;
|
|
62
|
+
iconUrl?: string;
|
|
63
|
+
framework?: string;
|
|
64
|
+
packageManager?: string;
|
|
65
|
+
archived?: boolean;
|
|
66
|
+
organizationId: string;
|
|
67
|
+
}
|
|
68
|
+
export interface ApiKey {
|
|
69
|
+
id: string;
|
|
70
|
+
projectId: string;
|
|
71
|
+
organizationId: string;
|
|
72
|
+
apiKey: string;
|
|
73
|
+
secretApiKey?: string;
|
|
74
|
+
name: string;
|
|
75
|
+
displayName?: string;
|
|
76
|
+
environment: string;
|
|
77
|
+
archived?: boolean;
|
|
78
|
+
origins?: string[];
|
|
79
|
+
supportedAuthMethods?: string[];
|
|
80
|
+
supportedWalletTypes?: WalletTypeConfig[];
|
|
81
|
+
sessionMaxAge?: string | null;
|
|
82
|
+
forceTransactionPopups?: boolean;
|
|
83
|
+
transactionPopupsEnabled?: boolean;
|
|
84
|
+
ipAllowlistCidrs?: string[] | null;
|
|
85
|
+
logoUrl?: string | null;
|
|
86
|
+
iconUrl?: string | null;
|
|
87
|
+
backgroundColor?: string | null;
|
|
88
|
+
foregroundColor?: string | null;
|
|
89
|
+
accentColor?: string | null;
|
|
90
|
+
themeMode?: ThemeMode | null;
|
|
91
|
+
font?: string | null;
|
|
92
|
+
verifyUrl?: string | null;
|
|
93
|
+
portalUrl?: string | null;
|
|
94
|
+
emailImageUrl?: string | null;
|
|
95
|
+
emailImageLink?: string | null;
|
|
96
|
+
emailWelcome?: boolean;
|
|
97
|
+
emailBackupKit?: boolean;
|
|
98
|
+
homepageUrl?: string | null;
|
|
99
|
+
twitterUrl?: string | null;
|
|
100
|
+
linkedinUrl?: string | null;
|
|
101
|
+
githubUrl?: string | null;
|
|
102
|
+
cosmosPrefix?: string;
|
|
103
|
+
teamId?: string | null;
|
|
104
|
+
bundleIdentifier?: string | null;
|
|
105
|
+
androidPackageName?: string | null;
|
|
106
|
+
androidSha256CertFingerprints?: string[] | null;
|
|
107
|
+
hasSecretKey?: boolean;
|
|
108
|
+
isBuyEnabled?: boolean;
|
|
109
|
+
isReceiveEnabled?: boolean;
|
|
110
|
+
isWithdrawEnabled?: boolean;
|
|
111
|
+
onRampProviders?: string[];
|
|
112
|
+
rampApiKey?: string;
|
|
113
|
+
defaultBuyAmount?: string;
|
|
114
|
+
defaultOnRampAsset?: string;
|
|
115
|
+
defaultOnRampNetwork?: string;
|
|
116
|
+
}
|
|
117
|
+
export type ApiKeyConfig = Partial<Omit<ApiKey, 'id' | 'apiKey' | 'secretApiKey' | 'organizationId' | 'projectId' | 'archived' | 'environment' | 'hasSecretKey'>>;
|
|
118
|
+
export interface WebhookConfig {
|
|
119
|
+
url: string;
|
|
120
|
+
enabled: boolean;
|
|
121
|
+
events: WebhookEventType[];
|
|
122
|
+
createdAt: string;
|
|
123
|
+
updatedAt: string;
|
|
124
|
+
}
|
|
125
|
+
export interface WebhookConfigResponse {
|
|
126
|
+
webhook: WebhookConfig | null;
|
|
127
|
+
}
|
|
128
|
+
export interface WebhookConfigWithSecretResponse {
|
|
129
|
+
webhook: WebhookConfig;
|
|
130
|
+
secret?: string;
|
|
131
|
+
}
|
|
132
|
+
export interface WebhookTestResponse {
|
|
133
|
+
success: boolean;
|
|
134
|
+
timestamp: string;
|
|
135
|
+
}
|
|
136
|
+
export interface WebhookRotateSecretResponse {
|
|
137
|
+
secret: string;
|
|
138
|
+
}
|
|
139
|
+
export interface UpdateWebhookBody {
|
|
140
|
+
url: string;
|
|
141
|
+
events: WebhookEventType[];
|
|
142
|
+
enabled: boolean;
|
|
143
|
+
}
|
|
144
|
+
export interface AuthStatus {
|
|
145
|
+
authenticated: boolean;
|
|
146
|
+
userId?: string;
|
|
147
|
+
email?: string;
|
|
148
|
+
sessionExpiresAt?: number;
|
|
149
|
+
organizations?: Array<{
|
|
150
|
+
id: string;
|
|
151
|
+
name: string;
|
|
152
|
+
role: string;
|
|
153
|
+
}>;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/api/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import {
|
|
2
|
+
WalletType,
|
|
3
|
+
AuthMethod,
|
|
4
|
+
ThemeMode,
|
|
5
|
+
OnRampProvider,
|
|
6
|
+
WebhookEventType,
|
|
7
|
+
SUBSCRIBABLE_WEBHOOK_EVENT_TYPES as SUBSCRIBABLE_WEBHOOK_EVENTS
|
|
8
|
+
} from "@getpara/shared";
|
|
9
|
+
var Font = /* @__PURE__ */ ((Font2) => {
|
|
10
|
+
Font2["ARIAL"] = "Arial";
|
|
11
|
+
Font2["COURIER_NEW"] = "Courier New";
|
|
12
|
+
Font2["GEORGIA"] = "Georgia";
|
|
13
|
+
Font2["HELVETICA"] = "Helvetica";
|
|
14
|
+
Font2["LUCIDA_SANS"] = "Lucida Sans";
|
|
15
|
+
Font2["TAHOMA"] = "Tahoma";
|
|
16
|
+
Font2["TIMES_NEW_ROMAN"] = "Times New Roman";
|
|
17
|
+
Font2["TREBUCHET_MS"] = "Trebuchet MS";
|
|
18
|
+
return Font2;
|
|
19
|
+
})(Font || {});
|
|
20
|
+
var Framework = /* @__PURE__ */ ((Framework2) => {
|
|
21
|
+
Framework2["REACT"] = "REACT";
|
|
22
|
+
Framework2["NEXT"] = "NEXT";
|
|
23
|
+
Framework2["VITE"] = "VITE";
|
|
24
|
+
Framework2["VUE"] = "VUE";
|
|
25
|
+
Framework2["SVELTE"] = "SVELTE";
|
|
26
|
+
Framework2["NODE"] = "NODE";
|
|
27
|
+
Framework2["REACT_NATIVE"] = "REACT_NATIVE";
|
|
28
|
+
Framework2["EXPO"] = "EXPO";
|
|
29
|
+
Framework2["FLUTTER"] = "FLUTTER";
|
|
30
|
+
Framework2["SWIFT"] = "SWIFT";
|
|
31
|
+
Framework2["DENO"] = "DENO";
|
|
32
|
+
Framework2["BUN"] = "BUN";
|
|
33
|
+
return Framework2;
|
|
34
|
+
})(Framework || {});
|
|
35
|
+
var PackageManager = /* @__PURE__ */ ((PackageManager2) => {
|
|
36
|
+
PackageManager2["NPM"] = "NPM";
|
|
37
|
+
PackageManager2["YARN"] = "YARN";
|
|
38
|
+
PackageManager2["PNPM"] = "PNPM";
|
|
39
|
+
return PackageManager2;
|
|
40
|
+
})(PackageManager || {});
|
|
41
|
+
var MemberRole = /* @__PURE__ */ ((MemberRole2) => {
|
|
42
|
+
MemberRole2["ORG_OWNER"] = "ORG_OWNER";
|
|
43
|
+
MemberRole2["ORG_MEMBER"] = "ORG_MEMBER";
|
|
44
|
+
MemberRole2["PROJECT_MEMBER"] = "PROJECT_MEMBER";
|
|
45
|
+
return MemberRole2;
|
|
46
|
+
})(MemberRole || {});
|
|
47
|
+
export {
|
|
48
|
+
AuthMethod,
|
|
49
|
+
Font,
|
|
50
|
+
Framework,
|
|
51
|
+
MemberRole,
|
|
52
|
+
OnRampProvider,
|
|
53
|
+
PackageManager,
|
|
54
|
+
SUBSCRIBABLE_WEBHOOK_EVENTS,
|
|
55
|
+
ThemeMode,
|
|
56
|
+
WalletType,
|
|
57
|
+
WebhookEventType
|
|
58
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Environment } from '../core/constants.js';
|
|
2
|
+
import type { SessionInfo } from '../core/types.js';
|
|
3
|
+
export interface PollingLoginOptions {
|
|
4
|
+
openBrowser?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function startPollingLogin(environment: Environment, opts?: PollingLoginOptions): Promise<SessionInfo>;
|
|
7
|
+
//# sourceMappingURL=polling-flow.d.ts.map
|