{"_id":"@advizorconnect/sdk","_rev":"5-2786baf96999fb88ea8f4cf58083b35d","name":"@advizorconnect/sdk","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@advizorconnect/sdk","version":"0.1.0","_id":"@advizorconnect/sdk@0.1.0","maintainers":[{"name":"mocky","email":"mzbwrt@gmail.com"}],"dist":{"shasum":"4cfd22761984f028013d771ba98a3fd8f1f1e262","tarball":"https://registry.npmjs.org/@advizorconnect/sdk/-/sdk-0.1.0.tgz","fileCount":11,"integrity":"sha512-X0erzGVHeI5NX6svC2RMAIW4w2ym/rbvK2rS+ZVeGJyKxie4ym8ivjVPdC76YYp2zjhAgR8TCknDMcbHUxgpYg==","signatures":[{"sig":"MEUCIGsanqNfX67vvjIZPn46HJjPxxd2dhV6++1roHnDS+G0AiEA37Vh47Hr6kZBaMsRM3iaxz4E50rBThEKHDeTAAqHp6c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42512},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"a204f4a13fa9d477c24d7707efba7083cc5919da","scripts":{"build":"tsc -p tsconfig.json"},"_npmUser":{"name":"mocky","email":"mzbwrt@gmail.com"},"_npmVersion":"10.9.3","description":"Typed SDK for Advizor Connect v1 integration APIs","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/sdk_0.1.0_1772878174220_0.4262856999393494","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Deprecated: use @advizorconnect/sdk@0.2.0 or later for the public auth-specific SDK entrypoints and trusted-publishing provenance."},"0.2.0":{"name":"@advizorconnect/sdk","version":"0.2.0","keywords":["advizor-connect","sdk","typescript","esm","integration-api","widget","owner-api"],"license":"UNLICENSED","_id":"@advizorconnect/sdk@0.2.0","maintainers":[{"name":"mocky","email":"mzbwrt@gmail.com"}],"homepage":"https://github.com/orangebread/advizor-connect-sdk#readme","bugs":{"url":"https://github.com/orangebread/advizor-connect-sdk/issues"},"dist":{"shasum":"064a340f6b57d291c7b827c8ab421be90392aa0d","tarball":"https://registry.npmjs.org/@advizorconnect/sdk/-/sdk-0.2.0.tgz","fileCount":24,"integrity":"sha512-ZnnhqW8EIyhJZczbgNHd5q+zcUp6sz/RgJ/9wa8QY38a6ILGA4nmvZjy+jDS16lRu5vfY+meEunrP/7xtss8ug==","signatures":[{"sig":"MEUCIQCE1wudUnPD5JZiCDhdG2DweH3MW34gDU9CDPgxMyxlfgIgebRy73fLy0an3UOMsGzx04UeiWatKCSZcyLGUxDDx2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@advizorconnect%2fsdk@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":254155},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./owner":{"types":"./dist/owner.d.ts","import":"./dist/owner.js","default":"./dist/owner.js"},"./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.js","default":"./dist/widget.js"},"./integration":{"types":"./dist/integration.d.ts","import":"./dist/integration.js","default":"./dist/integration.js"},"./package.json":"./package.json"},"gitHead":"c0944c8953e299e4ce0a83106871b6ec5dd9ca91","scripts":{"build":"tsc -p tsconfig.json && node scripts/copy-generated-declarations.mjs","pack:verify":"node scripts/verify-package-declarations.mjs","pack:dry-run":"npm pack --dry-run --json","mirror:verify":"node scripts/verify-mirror-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6049b32-9404-4ec0-bd70-8c4be6f6d29a"}},"repository":{"url":"git+https://github.com/orangebread/advizor-connect-sdk.git","type":"git"},"_npmVersion":"11.14.1","description":"Typed ESM SDK for Advizor Connect v1 integration, owner, and widget APIs","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.0_1778464252866_0.12673382236662678","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@advizorconnect/sdk","version":"0.2.1","keywords":["advizor-connect","sdk","typescript","esm","integration-api","widget","owner-api"],"license":"UNLICENSED","_id":"@advizorconnect/sdk@0.2.1","maintainers":[{"name":"mocky","email":"mzbwrt@gmail.com"}],"homepage":"https://github.com/orangebread/advizor-connect-sdk#readme","bugs":{"url":"https://github.com/orangebread/advizor-connect-sdk/issues"},"dist":{"shasum":"de2ead4c567b2afdc55767f4d5b71129829cf668","tarball":"https://registry.npmjs.org/@advizorconnect/sdk/-/sdk-0.2.1.tgz","fileCount":24,"integrity":"sha512-DGWPdmS8vklChWGn4sTJEL0tYe5NOo/tH6PNeONkQbomtDieuSpWSX3C8TlmqPtmkpb8/YwPRW6QhCXdPYfRZQ==","signatures":[{"sig":"MEUCIQCbOtjFbfA76w3UNVAxUqwlM+GnU5VvH8cOK8QFWH1KnwIgNmqnR0iHREPt1YrK0jyJHwHe519oSRI0mZ30Ckzs5WU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@advizorconnect%2fsdk@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":254365},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./owner":{"types":"./dist/owner.d.ts","import":"./dist/owner.js","default":"./dist/owner.js"},"./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.js","default":"./dist/widget.js"},"./integration":{"types":"./dist/integration.d.ts","import":"./dist/integration.js","default":"./dist/integration.js"},"./package.json":"./package.json"},"gitHead":"5b6aaec816db0dbec4bf10865f18c7565c5bbc65","scripts":{"build":"tsc -p tsconfig.json && node scripts/copy-generated-declarations.mjs","pack:verify":"node scripts/verify-package-declarations.mjs","pack:dry-run":"npm pack --dry-run --json","mirror:verify":"node scripts/verify-mirror-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6049b32-9404-4ec0-bd70-8c4be6f6d29a"}},"repository":{"url":"git+https://github.com/orangebread/advizor-connect-sdk.git","type":"git"},"_npmVersion":"11.14.1","description":"Typed ESM SDK for Advizor Connect v1 integration, owner, and widget APIs","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.1_1778465852921_0.8860444067316926","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@advizorconnect/sdk","version":"0.2.2","keywords":["advizor-connect","sdk","typescript","esm","integration-api","widget","owner-api"],"license":"UNLICENSED","_id":"@advizorconnect/sdk@0.2.2","maintainers":[{"name":"mocky","email":"mzbwrt@gmail.com"}],"homepage":"https://github.com/orangebread/advizor-connect-sdk#readme","bugs":{"url":"https://github.com/orangebread/advizor-connect-sdk/issues"},"dist":{"shasum":"e56142a89bb5f25d6d0a753773b69a7aa536d92b","tarball":"https://registry.npmjs.org/@advizorconnect/sdk/-/sdk-0.2.2.tgz","fileCount":24,"integrity":"sha512-NGeyFdFP3NdJnbzNMz611E+BZgsMh+tyTP+o1SjLVY67jZ0qb5iQyPPG/3Z7dhHi0E5MR5NV1r9ZdBy2kNA4Lg==","signatures":[{"sig":"MEYCIQDqf4enxU5yX15LaRqnZ4FWIgF3i/76LyB7DCq5Jko+ywIhAIgVvMhAwdm49ghJec0uN8/dYDnz+XcTRLusP86xfeVq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@advizorconnect%2fsdk@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":254585},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./owner":{"types":"./dist/owner.d.ts","import":"./dist/owner.js","default":"./dist/owner.js"},"./widget":{"types":"./dist/widget.d.ts","import":"./dist/widget.js","default":"./dist/widget.js"},"./integration":{"types":"./dist/integration.d.ts","import":"./dist/integration.js","default":"./dist/integration.js"},"./package.json":"./package.json"},"gitHead":"69c4000451f94cfbb0dd989ca0724fc0fa8d3978","scripts":{"build":"tsc -p tsconfig.json && node scripts/copy-generated-declarations.mjs","pack:verify":"node scripts/verify-package-declarations.mjs","pack:dry-run":"npm pack --dry-run --json","mirror:verify":"node scripts/verify-mirror-manifest.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:b6049b32-9404-4ec0-bd70-8c4be6f6d29a"}},"repository":{"url":"git+https://github.com/orangebread/advizor-connect-sdk.git","type":"git"},"_npmVersion":"11.14.1","description":"Typed ESM SDK for Advizor Connect v1 integration, owner, and widget APIs","directories":{},"sideEffects":false,"_nodeVersion":"24.14.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"~5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/sdk_0.2.2_1778466063312_0.9716970702563188","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-03-07T10:09:34.147Z","modified":"2026-05-11T09:37:37.315Z","0.1.0":"2026-03-07T10:09:34.378Z","0.2.0":"2026-05-11T01:50:53.043Z","0.2.1":"2026-05-11T02:17:33.085Z","0.2.2":"2026-05-11T02:21:03.463Z"},"bugs":{"url":"https://github.com/orangebread/advizor-connect-sdk/issues"},"license":"UNLICENSED","homepage":"https://github.com/orangebread/advizor-connect-sdk#readme","keywords":["advizor-connect","sdk","typescript","esm","integration-api","widget","owner-api"],"repository":{"url":"git+https://github.com/orangebread/advizor-connect-sdk.git","type":"git"},"description":"Typed ESM SDK for Advizor Connect v1 integration, owner, and widget APIs","maintainers":[{"name":"mocky","email":"mzbwrt@gmail.com"}],"readme":"# @advizorconnect/sdk\n\nTyped ESM TypeScript SDK for Advizor Connect v1 APIs. The package separates credential-specific clients and keeps group API keys out of browser runtimes by default.\n\n## Installation\n\nInstall the current public release:\n\n```bash\nnpm install @advizorconnect/sdk\n```\n\nThe previous `0.1.0` package remains visible until npm deprecation permissions are resolved.\n\n## Requirements\n\n- Node.js `>=22`\n- ESM (`import`) consumers\n- A server/BFF environment for group API-key integration calls\n\n## Public entrypoints\n\n| Entrypoint | Factory | Credential | Intended runtime |\n|------------|---------|------------|------------------|\n| `@advizorconnect/sdk/integration` | `createIntegrationClient` | Group API key as `Authorization: Bearer ...` | Server/BFF only |\n| `@advizorconnect/sdk/owner` | `createOwnerClient` | Supabase owner access token from `getAccessToken()` per request | Owner-authenticated app or BFF |\n| `@advizorconnect/sdk/widget` | `createWidgetClient` | Optional short-lived widget token as `X-AC-Widget-Token`; public routes need no token | Browser/widget-safe |\n| `@advizorconnect/sdk` | `createV1Client` | Legacy API-key option | Deprecated compatibility surface for one release |\n\nGroup API keys are server-side credentials. Known browser and worker runtimes fail closed for API-key clients unless the explicitly unsafe test-only override is supplied.\n\n## Integration client (server/BFF)\n\n```typescript\nimport { createIntegrationClient } from '@advizorconnect/sdk/integration';\n\nconst client = createIntegrationClient({\n  baseUrl: 'https://api.advizor-connect.com',\n  apiKey: process.env.ADVIZOR_CONNECT_API_KEY!,\n});\n\nconst { advisors } = await client.listGroupAdvisors({\n  groupId: 'your-group-id',\n  onlineStatus: 'available',\n});\n\nconst { session } = await client.createSession({\n  groupId: 'your-group-id',\n  advisorId: advisors[0].id,\n  callerPhone: '+15551234567',\n  idempotencyKey: crypto.randomUUID(),\n});\n\nconsole.log('Session created:', session.id, session.status);\n```\n\n## Owner client\n\n```typescript\nimport { createOwnerClient } from '@advizorconnect/sdk/owner';\n\nconst ownerClient = createOwnerClient({\n  baseUrl: 'https://api.advizor-connect.com',\n  getAccessToken: async () => {\n    const { data } = await supabase.auth.getSession();\n    return data.session?.access_token ?? null;\n  },\n});\n\nconst keys = await ownerClient.listApiKeys({ groupId: 'your-group-id' });\n```\n\n`getAccessToken()` is called for every SDK request and must provide a Supabase owner/admin user JWT. Owner clients do not accept group API keys.\n\n## Widget/public client\n\n```typescript\nimport { createWidgetClient } from '@advizorconnect/sdk/widget';\n\nconst widgetClient = createWidgetClient({\n  baseUrl: 'https://api.advizor-connect.com',\n  getWidgetToken: async () => widgetTokenFromYourEmbedFlow,\n});\n\nconst config = await widgetClient.getWidgetConfig({ groupId: 'your-group-id' });\n```\n\nThe widget client exposes browser-safe widget-token and public routes only. It does not expose owner/admin methods or group API-key integration methods.\n\n## Retry helper\n\n```typescript\nimport { withRetry } from '@advizorconnect/sdk';\n\nconst session = await withRetry(\n  () => client.createSession({\n    groupId: 'your-group-id',\n    advisorId: 'advisor-id',\n    callerPhone: '+15551234567',\n    idempotencyKey: crypto.randomUUID(),\n  }),\n  { maxAttempts: 3, backoffMs: 500 },\n);\n```\n\n`withRetry` retries only `V1SdkError` instances marked `retryable === true` and respects SDK operation metadata. Read/idempotent operations can retry when opted in; unsafe side-effecting SDK operations do not retry automatically unless the SDK operation is documented as idempotent.\n\n## Error handling\n\nAll API, timeout, network, and response-body transport failures are normalized as `V1SdkError` where possible:\n\n```typescript\nimport { V1SdkError } from '@advizorconnect/sdk';\n\ntry {\n  await client.getSession({ sessionId: 'session-id' });\n} catch (err) {\n  if (err instanceof V1SdkError) {\n    console.error('Status:', err.status);\n    console.error('Message:', err.message);\n    console.error('Code:', err.code);\n    console.error('Request ID:', err.requestId);\n    console.error('Retryable:', err.retryable);\n    console.error('Operation:', err.operationId);\n    console.error('Cause:', err.cause);\n  }\n}\n```\n\n## TypeScript types\n\nRoot exports include shared errors/retry helpers and generated OpenAPI types:\n\n```typescript\nimport type {\n  IntegrationAdvisor,\n  SessionEnvelope,\n  ApiSession,\n  LedgerEvent,\n  ApiKeyRecord,\n  InviteRecord,\n  paths,\n  components,\n  operations,\n} from '@advizorconnect/sdk';\n```\n\nSubpath exports include factory-specific option and client types:\n\n```typescript\nimport type { IntegrationClientOptions } from '@advizorconnect/sdk/integration';\nimport type { OwnerClientOptions } from '@advizorconnect/sdk/owner';\nimport type { WidgetClientOptions } from '@advizorconnect/sdk/widget';\n```\n\n## Release status boundaries\n\nA successful SDK build or packed-package smoke test means the npm package artifact is locally consumable. It does not by itself mean that npm publish happened, that `0.1.0` was deprecated, that staging platform smoke passed, or that the overall public platform is production-ready. Those are separate gates owned by the release operator and the broader platform readiness work.\n\n## License\n\nProprietary / unlicensed for public redistribution. See `package.json` (`UNLICENSED`) and repository terms for the current package license status.\n","readmeFilename":"README.md"}