@tappmarket/sdk
v1.13.0
Published
Tapp Market SDK — runtime client + structured tools for Tapp PWAs.
Downloads
2,438
Readme
@tappmarket/sdk
Runtime SDK for Tapp apps. Phase 1 + V1 substrate.
Public surface
import {
tapp, // top-level: tapp.user, tapp.entitlements, tapp.isPreviewMode, tapp.records, tapp.files
isPreviewMode, // bare fn — same as tapp.isPreviewMode
TappConfigSchema, // zod schema for tapp.config.ts (records-only)
type TappConfig, // inferred type
type TappContext, // injected context envelope type
validateBundle, // bundle validator (publish-time)
records, // tapp.records.* runtime
files, // tapp.files.* runtime
RecordsManifestSchema,
type RecordsManifest,
} from '@tappmarket/sdk'Preview mode
The SDK reads ?tapp_preview=1 on the containing page. When set:
tapp.user.id()returns"preview_user"tapp.user.handle()returns"preview"tapp.entitlements.check()resolves to{ allowed: true, reason: 'ok' }- Nothing else in the SDK changes.
When NOT set, tapp.user.id() and tapp.user.handle() throw unless window.__TAPP_CONTEXT__ has been injected by the Cloudflare Worker.
For the builder iframe: load the app URL with ?tapp_preview=1 appended. Don't postMessage — the URL param is the stable signal.
Substrate
tapp.records.create / update / delete / query / aggregate / subscribe against the kinds declared in tapp.config.ts. tapp.files.upload / urlFor for binary blobs (signed URLs minted on read).
Structured tools
Build-time tool surface used by the agent. Imported separately as @tappmarket/sdk/tools so the runtime SDK never pulls in zod-to-json-schema:
import {
listCapabilities,
addKind, AddKindArgsSchema,
addField, AddFieldArgsSchema,
serializeTappConfig, parseTappConfigSource,
} from '@tappmarket/sdk/tools'