@receiz/sdk 97.1.0 → 97.3.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 CHANGED
@@ -228,6 +228,23 @@ const restored = await createReceizClient().appState.restoreByHost<{
228
228
  if (restored.ok && restored.data) renderStorefront(restored.data.storeStateRecord);
229
229
  ```
230
230
 
231
+ For commerce storefronts, use the first-party public-store recipe so every app publishes the same `storeStateRecord` envelope:
232
+
233
+ ```ts
234
+ await receiz.publicStore.publish({
235
+ tenantHost: "bjklock.receiz.app",
236
+ merchantReceizId: "bjklock.receiz.id",
237
+ title: "BJ Klock storefront",
238
+ state: storeStateRecord,
239
+ }, { idempotencyKey: `storefront:${storeStateRecord.updatedKaiUpulse}` });
240
+
241
+ const store = await createReceizClient().publicStore.resolve<StoreStateRecord>({
242
+ host: "bjklock.receiz.app",
243
+ });
244
+
245
+ if (store.ok && store.storeStateRecord) renderStorefront(store.storeStateRecord);
246
+ ```
247
+
231
248
  `receiz.appState.publish(feed)` remains available for batch writes. `receiz.publicProof.registryFeed(feed)` remains available and aliases the same publish path for existing integrations.
232
249
  Raw reads remain available through `byUrl()`, `byHost()`, `byCreator()`, `byNamespace()`, and `byId()` when an app needs the full public projection envelope instead of direct restored data.
233
250
 
@@ -235,17 +252,21 @@ Full quickstart: `docs/app-state-public-projections.md`.
235
252
 
236
253
  ## Receiz App Runtime Rails
237
254
 
238
- `@receiz/sdk@97.1.0` adds typed rails for Commerce Cloud style apps. These helpers compose existing Receiz primitives; they do not replace proof objects, local proof memory, Connect, or the public app-state projection rail.
255
+ `@receiz/sdk@97.3.0` adds dogfood-ready local-first recipes on top of the enterprise runtime rails for Commerce Cloud style apps. These helpers compose existing Receiz primitives; they do not replace proof objects, local proof memory, Connect, or the public app-state projection rail.
239
256
 
240
257
  ```ts
241
- import { createReceizClient } from "@receiz/sdk";
258
+ import { RECEIZ_OIDC_SCOPES_BY_RAIL, createReceizClient } from "@receiz/sdk";
242
259
 
243
260
  const receiz = createReceizClient({ accessToken });
244
261
 
245
262
  const doctor = await receiz.doctor({
246
263
  tenantHost: "bjklock.receiz.app",
247
264
  callbackUrl: "https://bjklock.receiz.app/api/auth/receiz/callback",
248
- scopes: ["openid", "profile", "receiz:record", "receiz:wallet.read"],
265
+ scopes: [
266
+ ...RECEIZ_OIDC_SCOPES_BY_RAIL.customers,
267
+ ...RECEIZ_OIDC_SCOPES_BY_RAIL.merchants,
268
+ ...RECEIZ_OIDC_SCOPES_BY_RAIL.publicStore,
269
+ ],
249
270
  });
250
271
  if (!doctor.ok) console.table(doctor.fixes);
251
272
 
@@ -273,18 +294,85 @@ const restored = await createReceizClient().appState.resolve({
273
294
  host: "bjklock.receiz.app",
274
295
  requiredDataKey: "storeStateRecord",
275
296
  });
297
+
298
+ const tenantSession = await receiz.customers.bootstrapSession({
299
+ tenantHost: "bjklock.receiz.app",
300
+ customerReceizId: "customer.receiz.id",
301
+ scopes: ["orders", "rewards", "assets"],
302
+ }, { idempotencyKey: "customer-session:v1" });
303
+
304
+ const hostedIdentity = receiz.identity.ensureTenantSession({
305
+ tenantHost: "bjklock.receiz.app",
306
+ returnTo: "https://bjklock.receiz.app/account",
307
+ fallback: "artifact_upload",
308
+ });
309
+
310
+ const profile = await receiz.profile.resolveLocalFirst({
311
+ memory,
312
+ local: admittedProfileTruth,
313
+ sync: (knownHead) => fetchVerifiedProfileAdditions(knownHead),
314
+ });
315
+
316
+ const walletLedger = await receiz.wallet.resolveLedger({
317
+ memory,
318
+ local: admittedWalletLedger,
319
+ sync: (knownHead) => fetchVerifiedWalletAdditions(knownHead),
320
+ });
321
+
322
+ const pitchDay = await receiz.sports.resolvePitchDayProof({
323
+ local: admittedPitchDayProof,
324
+ });
276
325
  ```
277
326
 
278
327
  Additional typed surfaces:
279
328
 
329
+ - `RECEIZ_OIDC_SCOPES_BY_RAIL` and `receizOidcScopesForRails()` for stable per-rail Connect/OIDC scopes
330
+ - `receiz.runtime.localFirst()`, `profile.resolveLocalFirst()`, `wallet.resolveLedger()`, `sports.resolveCardMemory()`, `sports.resolvePitchDayProof()`
331
+ - `receiz.proofMemory.syncAdditions()` for append-only sync after the known proof-memory head
332
+ - `receiz.publicStore.publish()`, `publicStore.resolve()`, `publicStore.createRecord()`
333
+ - `receiz.identity.ensureTenantSession({ tenantHost, returnTo, fallback })`
334
+ - `receiz.customers.bootstrapSession()`, `customers.session()`, `customers.portal()`, `customers.orders()`, `customers.rewards()`, `customers.assets()`
335
+ - `receiz.merchants.onboard()`, `merchants.profile()`, `merchants.capabilities()`
336
+ - `receiz.commerce.refunds`, `subscriptions`, `shipping`, `tax`, `discounts`, `giftCards`, `accessPasses`, `inventory`, `fulfillment`, `payouts`
280
337
  - `receiz.media.upload(file, { tenantHost, purpose, idempotencyKey })`
338
+ - `receiz.media.transform({ mediaId, resize, optimize, blurPlaceholder, altText, metadata })`
281
339
  - `receiz.domains.normalizeHost()`, `tenantUrl()`, `namespace()`, `objectId()`, `resolveTenant()`
282
- - `receiz.events.subscribe({ tenantHost, types, webhookUrl, idempotencyKey })`
340
+ - `receiz.events.subscribe()`, `events.replay()`, `events.list()`, `events.ack()`
283
341
  - `receiz.proof.query({ namespace, tenantHost, type, customerReceizId })`
284
- - `receiz.jobs.enqueue({ tenantHost, kind, payload, idempotencyKey })`
342
+ - `receiz.jobs.enqueue()`, `jobs.status()`, `jobs.cancel()`, `jobs.list()`
343
+ - `receiz.permissions.grant()`, `permissions.revoke()`, `permissions.check()`, `permissions.roles()`
344
+ - `receiz.audit.append()`, `audit.query()`, `audit.export()`
345
+ - `receiz.risk.scorePayment()`, `scoreAccountRecovery()`, `velocity()`, `proofActivity()`
346
+ - `receiz.compliance.exportOrders()`, `exportTaxes()`, `exportPayouts()`, `exportCustomers()`, `exportAudit()`
347
+ - `receiz.portability.exportStore()`, `portability.importStore()`
348
+ - `receiz.search.query()`, `products()`, `pages()`, `blog()`, `orders()`, `customers()`, `proofObjects()`
349
+ - `receiz.notifications.send()`, `notifications.subscribe()`, `notifications.templates()`
350
+ - `receiz.releases.pin()`, `releases.check()`, `releases.supported()`
285
351
  - `receiz.sandbox.seedStore()`, `sandbox.wallet()`, `sandbox.checkout()`
352
+ - `receiz.offline.createQueue()`, `offline.createInMemoryStorage()`, `offline.createLocalStorage()`
286
353
  - CLI: `receiz doctor`, `receiz dev`, `receiz deploy-check`, `receiz seed-store`, `receiz simulate-checkout`
287
354
 
355
+ React apps can import optional hooks and hosted component factories from `@receiz/sdk/react`:
356
+
357
+ ```ts
358
+ import {
359
+ ReceizCheckoutButton,
360
+ ReceizIdentityButton,
361
+ ReceizMediaUploader,
362
+ useReceizAppState,
363
+ useReceizCheckout,
364
+ } from "@receiz/sdk/react";
365
+
366
+ const storefront = useReceizAppState({
367
+ resolve: {
368
+ host: "bjklock.receiz.app",
369
+ requiredDataKey: "storeStateRecord",
370
+ },
371
+ });
372
+ ```
373
+
374
+ The React subpath is UI convenience. The core SDK client remains the primitive boundary, and proof objects / local proof memory remain stronger than component state.
375
+
288
376
  ## Sports Card And Event Proof Integration
289
377
 
290
378
  ```ts
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { buildReceizIdContinueRequest, createReceizIdIdentity, projectReceizIdentityAccount, readReceizIdentityArtifact, signReceizIdentityLoginProof, verifyReceizIdentityLoginProof, type ReceizDeviceIdentity, type ReceizIdContinueOptions } from "./identity.js";
2
2
  export * from "./identity.js";
3
- export declare const RECEIZ_SDK_VERSION = "97.1.0";
3
+ export declare const RECEIZ_SDK_VERSION = "97.3.0";
4
4
  export declare const RECEIZ_DEFAULT_BASE_URL = "https://receiz.com";
5
5
  export declare const RECEIZ_WEBHOOK_SIGNATURE_HEADER = "x-receiz-signature";
6
6
  export declare const RECEIZ_WEBHOOK_TIMESTAMP_HEADER = "x-receiz-timestamp";
@@ -250,13 +250,23 @@ export type ReceizAppStateResolveInput = ReceizAppStateRestoreOptions & {
250
250
  export type ReceizAppStateResolveResult<TData extends JsonObject = JsonObject> = ReceizAppStateRestoreResult<TData> & {
251
251
  records?: ReceizPublicProjectionRecord<TData>[];
252
252
  };
253
- export type ReceizCapabilityKey = "identity" | "wallet" | "payments" | "proofStore" | "media" | "domains" | "twin" | "commerce" | "rewards" | "events" | "search" | "permissions" | "jobs";
253
+ export type ReceizCapabilityKey = "identity" | "wallet" | "payments" | "proofStore" | "media" | "domains" | "twin" | "commerce" | "rewards" | "customers" | "merchants" | "events" | "search" | "permissions" | "jobs" | "audit" | "risk" | "compliance" | "portability" | "notifications" | "offline" | "releases";
254
+ export type ReceizRailScopeKey = ReceizCapabilityKey | "appState" | "publicStore";
255
+ export declare const RECEIZ_OIDC_SCOPES_BY_RAIL: Record<ReceizRailScopeKey, readonly string[]>;
256
+ export declare function receizOidcScopesForRails(...rails: ReceizRailScopeKey[]): string[];
254
257
  export type ReceizCapabilityStatus = "available" | "missing" | "unknown";
258
+ export type ReceizCapabilityRequirements = {
259
+ tenantHost?: boolean;
260
+ accessToken?: boolean;
261
+ callbackUrl?: boolean;
262
+ scopes?: readonly string[];
263
+ };
255
264
  export type ReceizCapability = {
256
265
  available: boolean;
257
266
  status: ReceizCapabilityStatus;
258
267
  reason?: string;
259
268
  fixUrl?: string;
269
+ requirements?: ReceizCapabilityRequirements;
260
270
  [key: string]: unknown;
261
271
  };
262
272
  export type ReceizCapabilities = {
@@ -371,6 +381,158 @@ export type ReceizJobRequest = {
371
381
  idempotencyKey?: string;
372
382
  [key: string]: unknown;
373
383
  };
384
+ export type ReceizIdempotencyOptions = {
385
+ idempotencyKey?: string;
386
+ };
387
+ export type ReceizTenantRuntimeRequest = JsonObject & {
388
+ tenantHost?: string;
389
+ idempotencyKey?: string;
390
+ };
391
+ export type ReceizCustomerSessionRequest = ReceizTenantRuntimeRequest & {
392
+ tenantHost: string;
393
+ customerReceizId?: string;
394
+ scopes?: string[];
395
+ };
396
+ export type ReceizCustomerSessionBootstrapRequest = ReceizCustomerSessionRequest & {
397
+ includeWallet?: boolean;
398
+ includeCustomer?: boolean;
399
+ includePermissions?: boolean;
400
+ };
401
+ export type ReceizCustomerSessionBootstrapResponse = {
402
+ ok: true;
403
+ schema: "receiz.sdk.customer_session.bootstrap.v1";
404
+ tenantHost: string;
405
+ session: JsonObject | null;
406
+ wallet: JsonObject | null;
407
+ customer: JsonObject | null;
408
+ permissions: JsonObject | null;
409
+ };
410
+ export type ReceizMerchantOnboardRequest = ReceizTenantRuntimeRequest & {
411
+ tenantHost: string;
412
+ receizId?: string;
413
+ displayName?: string;
414
+ defaultStore?: JsonObject;
415
+ };
416
+ export type ReceizCommerceRuntimeRequest = ReceizTenantRuntimeRequest & {
417
+ tenantHost: string;
418
+ };
419
+ export type ReceizPermissionRole = "owner" | "admin" | "staff" | "fulfillment" | "support" | "customer" | string;
420
+ export type ReceizPermissionGrantRequest = ReceizTenantRuntimeRequest & {
421
+ tenantHost: string;
422
+ actorReceizId: string;
423
+ role: ReceizPermissionRole;
424
+ };
425
+ export type ReceizPermissionCheckRequest = ReceizTenantRuntimeRequest & {
426
+ tenantHost: string;
427
+ actorReceizId: string;
428
+ permission: string;
429
+ };
430
+ export type ReceizAuditAppendRequest = ReceizTenantRuntimeRequest & {
431
+ tenantHost: string;
432
+ action: string;
433
+ actorReceizId?: string;
434
+ };
435
+ export type ReceizSearchRequest = ReceizTenantRuntimeRequest & {
436
+ tenantHost?: string;
437
+ query?: string;
438
+ cursor?: string;
439
+ limit?: number;
440
+ };
441
+ export type ReceizMediaTransformRequest = ReceizTenantRuntimeRequest & {
442
+ tenantHost?: string;
443
+ mediaId: string;
444
+ resize?: JsonObject;
445
+ optimize?: JsonObject;
446
+ blurPlaceholder?: boolean;
447
+ altText?: string;
448
+ metadata?: JsonObject;
449
+ };
450
+ export type ReceizReleasePinRequest = ReceizTenantRuntimeRequest & {
451
+ tenantHost: string;
452
+ rails: Record<string, string>;
453
+ };
454
+ export type ReceizTenantSessionFallback = "artifact_upload" | "connect";
455
+ export type ReceizEnsureTenantSessionInput = {
456
+ tenantHost: string;
457
+ returnTo?: string;
458
+ fallback?: ReceizTenantSessionFallback;
459
+ clientId?: string;
460
+ redirectUri?: string;
461
+ codeChallenge?: string;
462
+ codeChallengeMethod?: "S256" | "plain";
463
+ state?: string;
464
+ scope?: string | string[];
465
+ usernameHint?: string;
466
+ };
467
+ export type ReceizEnsureTenantSessionResult = {
468
+ ok: true;
469
+ schema: "receiz.sdk.identity.tenant_session.ensure.v1";
470
+ tenantHost: string;
471
+ fallback: ReceizTenantSessionFallback;
472
+ url: string;
473
+ scope: string[];
474
+ returnTo?: string;
475
+ };
476
+ export type ReceizPublicStorePublishInput<TState extends JsonObject = JsonObject> = {
477
+ tenantHost: string;
478
+ merchantReceizId: string;
479
+ state: TState;
480
+ title?: string;
481
+ id?: string;
482
+ sourceUrl?: string;
483
+ namespace?: string;
484
+ projectionState?: string;
485
+ schema?: string;
486
+ platform?: string;
487
+ record?: JsonObject | null;
488
+ data?: JsonObject;
489
+ idempotencyKey?: string;
490
+ [key: string]: unknown;
491
+ };
492
+ export type ReceizPublicStoreResolveInput = {
493
+ host?: string;
494
+ tenantHost?: string;
495
+ url?: string;
496
+ id?: string;
497
+ };
498
+ export type ReceizPublicStoreResolveResult<TState extends JsonObject = JsonObject> = ReceizAppStateRestoreResult<{
499
+ storeStateRecord: TState;
500
+ }> & {
501
+ state: TState | null;
502
+ storeStateRecord: TState | null;
503
+ };
504
+ export type ReceizOfflineProofQueueItem = {
505
+ id: string;
506
+ kind: "app_state.publish" | "connect.record" | "webhook.event" | string;
507
+ payload: JsonObject;
508
+ idempotencyKey?: string;
509
+ createdAt?: string;
510
+ attempts?: number;
511
+ lastError?: JsonObject | null;
512
+ };
513
+ export type ReceizOfflineProofQueueSnapshot = {
514
+ schema: "receiz.sdk.offline_proof_queue.v1";
515
+ ownerId?: string | null;
516
+ createdAt: string;
517
+ updatedAt: string;
518
+ pending: ReceizOfflineProofQueueItem[];
519
+ settled: ReceizOfflineProofQueueItem[];
520
+ failed: ReceizOfflineProofQueueItem[];
521
+ };
522
+ export type ReceizOfflineProofQueueStorageValue = string | ReceizOfflineProofQueueSnapshot | null | undefined;
523
+ export type ReceizOfflineProofQueueStorage = {
524
+ read(): ReceizOfflineProofQueueStorageValue | Promise<ReceizOfflineProofQueueStorageValue>;
525
+ write(snapshot: ReceizOfflineProofQueueSnapshot): void | Promise<void>;
526
+ remove?(): void | Promise<void>;
527
+ };
528
+ export type ReceizOfflineProofQueueOptions = {
529
+ ownerId?: string | null;
530
+ storage?: ReceizOfflineProofQueueStorage;
531
+ snapshot?: ReceizOfflineProofQueueSnapshot;
532
+ };
533
+ export type ReceizInMemoryOfflineProofQueueStorage = ReceizOfflineProofQueueStorage & {
534
+ readText(): string | null;
535
+ };
374
536
  export type ReceizSandboxStoreOptions = {
375
537
  tenantHost: string;
376
538
  products?: number;
@@ -802,6 +964,59 @@ export type ReceizProofMemoryAdditionsQuery = {
802
964
  afterCreatedAt: string | null;
803
965
  limit?: number;
804
966
  };
967
+ export type ReceizProofMemoryAdditionBatch = unknown[] | {
968
+ entries?: ReceizProofRegisterEntry[];
969
+ additions?: unknown[];
970
+ proofs?: unknown[];
971
+ records?: unknown[];
972
+ [key: string]: unknown;
973
+ };
974
+ export type ReceizProofMemorySyncFetcher = (query: ReceizProofMemoryAdditionsQuery) => Promise<ReceizProofMemoryAdditionBatch>;
975
+ export type ReceizProofMemorySyncInput = {
976
+ memory: ReceizProofMemory;
977
+ fetchAdditions: ReceizProofMemorySyncFetcher;
978
+ limit?: number;
979
+ };
980
+ export type ReceizProofMemorySyncResult = {
981
+ ok: true;
982
+ schema: "receiz.sdk.proof_memory.sync.v1";
983
+ knownHead: ReceizProofMemoryAdditionsQuery;
984
+ admitted: number;
985
+ snapshot: ReceizProofRegisterSnapshot;
986
+ };
987
+ export type ReceizLocalFirstInput<TValue> = {
988
+ memory?: ReceizProofMemory;
989
+ local?: TValue | null;
990
+ remote?: () => Promise<TValue | null>;
991
+ sync?: ReceizProofMemorySyncFetcher;
992
+ limit?: number;
993
+ };
994
+ export type ReceizLocalFirstResult<TValue> = {
995
+ ok: true;
996
+ schema: "receiz.sdk.local_first.v1";
997
+ surface: string;
998
+ source: "local" | "remote" | "empty";
999
+ value: TValue | null;
1000
+ local: TValue | null;
1001
+ knownHead: ReceizProofMemoryAdditionsQuery | null;
1002
+ snapshot: ReceizProofRegisterSnapshot | null;
1003
+ sync: Promise<ReceizProofMemorySyncResult> | null;
1004
+ };
1005
+ export type ReceizRuntimeLocalFirstInput = {
1006
+ ownerId?: string | null;
1007
+ storage?: ReceizProofMemoryStorage;
1008
+ seed?: unknown[];
1009
+ sync?: ReceizProofMemorySyncFetcher;
1010
+ limit?: number;
1011
+ };
1012
+ export type ReceizRuntimeLocalFirstResult = {
1013
+ ok: true;
1014
+ schema: "receiz.sdk.runtime.local_first.v1";
1015
+ memory: ReceizProofMemory;
1016
+ snapshot: ReceizProofRegisterSnapshot;
1017
+ knownHead: ReceizProofMemoryAdditionsQuery;
1018
+ sync: Promise<ReceizProofMemorySyncResult> | null;
1019
+ };
805
1020
  export type ReceizInMemoryProofMemoryStorage = ReceizProofMemoryStorage & {
806
1021
  readText(): string | null;
807
1022
  };
@@ -1250,6 +1465,12 @@ export declare class ReceizClient {
1250
1465
  extractData: typeof extractReceizAppStateData;
1251
1466
  restoreProjection: typeof restoreReceizAppStateProjection;
1252
1467
  };
1468
+ readonly publicStore: {
1469
+ publish: <TState extends JsonObject = JsonObject>(input: ReceizPublicStorePublishInput<TState>, options?: ReceizIdempotencyOptions) => Promise<ReceizAppStateFeedResponse<JsonObject>>;
1470
+ resolve: <TState extends JsonObject = JsonObject>(input: ReceizPublicStoreResolveInput) => Promise<ReceizPublicStoreResolveResult<TState>>;
1471
+ createRecord: typeof createReceizPublicStoreStateRecord;
1472
+ scopes: readonly string[];
1473
+ };
1253
1474
  readonly sports: {
1254
1475
  conformance: () => Promise<JsonObject>;
1255
1476
  conformanceHistory: () => Promise<JsonObject>;
@@ -1259,6 +1480,8 @@ export declare class ReceizClient {
1259
1480
  badge: () => Promise<JsonObject>;
1260
1481
  eventProofUrl: (eventProofId: string) => string;
1261
1482
  assertCardManifest: typeof assertReceizSportsCardManifest;
1483
+ resolveCardMemory: <TValue extends JsonObject = JsonObject>(input: ReceizLocalFirstInput<TValue>) => Promise<ReceizLocalFirstResult<TValue>>;
1484
+ resolvePitchDayProof: <TValue extends JsonObject = JsonObject>(input: ReceizLocalFirstInput<TValue>) => Promise<ReceizLocalFirstResult<TValue>>;
1262
1485
  };
1263
1486
  readonly wallet: {
1264
1487
  publicLedger: (query?: {
@@ -1271,6 +1494,10 @@ export declare class ReceizClient {
1271
1494
  cursor?: string;
1272
1495
  since?: string;
1273
1496
  }) => Promise<ActionLedgerFeed>;
1497
+ resolveLedger: <TValue extends JsonObject = JsonObject>(input: ReceizLocalFirstInput<TValue>) => Promise<ReceizLocalFirstResult<TValue>>;
1498
+ };
1499
+ readonly profile: {
1500
+ resolveLocalFirst: <TValue extends JsonObject = JsonObject>(input: ReceizLocalFirstInput<TValue>) => Promise<ReceizLocalFirstResult<TValue>>;
1274
1501
  };
1275
1502
  readonly world: {
1276
1503
  publicSnapshot: () => Promise<ReceizWorldPublicSnapshotResponse>;
@@ -1334,9 +1561,68 @@ export declare class ReceizClient {
1334
1561
  }) => Promise<JsonObject>;
1335
1562
  bootstrap: (username: string) => Promise<JsonObject>;
1336
1563
  authorizeUrl: (options: ReceizAuthorizeUrlOptions) => string;
1564
+ ensureTenantSession: (input: ReceizEnsureTenantSessionInput) => ReceizEnsureTenantSessionResult;
1565
+ };
1566
+ readonly customers: {
1567
+ bootstrapSession: (body: ReceizCustomerSessionBootstrapRequest, options?: ReceizIdempotencyOptions) => Promise<ReceizCustomerSessionBootstrapResponse>;
1568
+ bootstrap: (body: ReceizCustomerSessionBootstrapRequest, options?: ReceizIdempotencyOptions) => Promise<ReceizCustomerSessionBootstrapResponse>;
1569
+ session: (body: ReceizCustomerSessionRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1570
+ portal: (body: ReceizTenantRuntimeRequest) => Promise<JsonObject>;
1571
+ orders: (query?: ReceizSearchRequest) => Promise<JsonObject>;
1572
+ rewards: (query?: ReceizSearchRequest) => Promise<JsonObject>;
1573
+ assets: (query?: ReceizSearchRequest) => Promise<JsonObject>;
1574
+ };
1575
+ readonly merchants: {
1576
+ onboard: (body: ReceizMerchantOnboardRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1577
+ profile: (query?: {
1578
+ tenantHost?: string;
1579
+ }) => Promise<JsonObject>;
1580
+ capabilities: (query?: {
1581
+ tenantHost?: string;
1582
+ }) => Promise<JsonObject>;
1337
1583
  };
1338
1584
  readonly commerce: {
1339
1585
  oneClickCheckout: (body: ReceizOneClickCheckoutRequest) => Promise<ReceizOneClickCheckoutResponse>;
1586
+ refunds: {
1587
+ create: (body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1588
+ };
1589
+ subscriptions: {
1590
+ create: (body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1591
+ cancel: (subscriptionId: string, body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1592
+ };
1593
+ shipping: {
1594
+ quote: (body: ReceizCommerceRuntimeRequest) => Promise<JsonObject>;
1595
+ update: (body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1596
+ };
1597
+ tax: {
1598
+ quote: (body: ReceizCommerceRuntimeRequest) => Promise<JsonObject>;
1599
+ };
1600
+ discounts: {
1601
+ create: (body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1602
+ redeem: (body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1603
+ };
1604
+ giftCards: {
1605
+ issue: (body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1606
+ redeem: (body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1607
+ };
1608
+ accessPasses: {
1609
+ issue: (body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1610
+ verify: (body: ReceizCommerceRuntimeRequest) => Promise<JsonObject>;
1611
+ };
1612
+ inventory: {
1613
+ reserve: (body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1614
+ adjust: (body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1615
+ };
1616
+ fulfillment: {
1617
+ update: (body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1618
+ };
1619
+ payouts: {
1620
+ create: (body: ReceizCommerceRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1621
+ status: (query?: {
1622
+ tenantHost?: string;
1623
+ payoutId?: string;
1624
+ }) => Promise<JsonObject>;
1625
+ };
1340
1626
  };
1341
1627
  readonly payments: {
1342
1628
  embeddedCheckout: (body: CheckoutRequest) => Promise<CheckoutSessionResponse>;
@@ -1344,6 +1630,7 @@ export declare class ReceizClient {
1344
1630
  };
1345
1631
  readonly media: {
1346
1632
  upload: (file: Blob, options?: ReceizMediaUploadOptions) => Promise<ReceizMediaUploadResponse>;
1633
+ transform: (body: ReceizMediaTransformRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1347
1634
  objectUrl: (query: {
1348
1635
  bucket: string;
1349
1636
  path: string;
@@ -1368,12 +1655,73 @@ export declare class ReceizClient {
1368
1655
  };
1369
1656
  readonly events: {
1370
1657
  subscribe: (body: ReceizEventSubscribeRequest) => Promise<JsonObject>;
1658
+ replay: (body: ReceizTenantRuntimeRequest) => Promise<JsonObject>;
1659
+ list: (query?: ReceizSearchRequest) => Promise<JsonObject>;
1660
+ ack: (eventId: string, body?: ReceizTenantRuntimeRequest) => Promise<JsonObject>;
1371
1661
  };
1372
1662
  readonly proof: {
1373
1663
  query: (query: ReceizProofQuery) => Promise<JsonObject>;
1374
1664
  };
1375
1665
  readonly jobs: {
1376
1666
  enqueue: (body: ReceizJobRequest) => Promise<JsonObject>;
1667
+ status: (jobId: string) => Promise<JsonObject>;
1668
+ cancel: (jobId: string, body?: ReceizTenantRuntimeRequest) => Promise<JsonObject>;
1669
+ list: (query?: ReceizSearchRequest) => Promise<JsonObject>;
1670
+ };
1671
+ readonly permissions: {
1672
+ grant: (body: ReceizPermissionGrantRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1673
+ revoke: (body: ReceizPermissionGrantRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1674
+ check: (body: ReceizPermissionCheckRequest) => Promise<JsonObject>;
1675
+ roles: (query?: {
1676
+ tenantHost?: string;
1677
+ }) => Promise<JsonObject>;
1678
+ };
1679
+ readonly audit: {
1680
+ append: (body: ReceizAuditAppendRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1681
+ query: (query?: ReceizSearchRequest) => Promise<JsonObject>;
1682
+ export: (query?: ReceizSearchRequest) => Promise<JsonObject>;
1683
+ };
1684
+ readonly risk: {
1685
+ scorePayment: (body: ReceizCommerceRuntimeRequest) => Promise<JsonObject>;
1686
+ scoreAccountRecovery: (body: ReceizTenantRuntimeRequest) => Promise<JsonObject>;
1687
+ velocity: (body: ReceizTenantRuntimeRequest) => Promise<JsonObject>;
1688
+ proofActivity: (body: ReceizTenantRuntimeRequest) => Promise<JsonObject>;
1689
+ };
1690
+ readonly compliance: {
1691
+ exportOrders: (query: ReceizSearchRequest) => Promise<JsonObject>;
1692
+ exportTaxes: (query: ReceizSearchRequest) => Promise<JsonObject>;
1693
+ exportPayouts: (query: ReceizSearchRequest) => Promise<JsonObject>;
1694
+ exportCustomers: (query: ReceizSearchRequest) => Promise<JsonObject>;
1695
+ exportAudit: (query: ReceizSearchRequest) => Promise<JsonObject>;
1696
+ };
1697
+ readonly portability: {
1698
+ exportStore: (query: {
1699
+ tenantHost: string;
1700
+ }) => Promise<JsonObject>;
1701
+ importStore: (body: ReceizTenantRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1702
+ };
1703
+ readonly search: {
1704
+ query: (body: ReceizSearchRequest) => Promise<JsonObject>;
1705
+ products: (body: ReceizSearchRequest) => Promise<JsonObject>;
1706
+ pages: (body: ReceizSearchRequest) => Promise<JsonObject>;
1707
+ blog: (body: ReceizSearchRequest) => Promise<JsonObject>;
1708
+ orders: (body: ReceizSearchRequest) => Promise<JsonObject>;
1709
+ customers: (body: ReceizSearchRequest) => Promise<JsonObject>;
1710
+ proofObjects: (body: ReceizSearchRequest) => Promise<JsonObject>;
1711
+ };
1712
+ readonly notifications: {
1713
+ send: (body: ReceizTenantRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1714
+ subscribe: (body: ReceizTenantRuntimeRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1715
+ templates: (query?: {
1716
+ tenantHost?: string;
1717
+ }) => Promise<JsonObject>;
1718
+ };
1719
+ readonly releases: {
1720
+ pin: (body: ReceizReleasePinRequest, options?: ReceizIdempotencyOptions) => Promise<JsonObject>;
1721
+ check: (query?: {
1722
+ tenantHost?: string;
1723
+ }) => Promise<JsonObject>;
1724
+ supported: () => Promise<JsonObject>;
1377
1725
  };
1378
1726
  readonly webhooks: {
1379
1727
  sign: typeof createReceizWebhookSignature;
@@ -1606,6 +1954,16 @@ export declare class ReceizClient {
1606
1954
  createLocalStorage: typeof createReceizLocalStorageProofMemoryStorage;
1607
1955
  assertSnapshot: typeof assertReceizProofRegisterSnapshot;
1608
1956
  additionsQuery: typeof receizProofMemoryAdditionsQuery;
1957
+ syncAdditions: (input: ReceizProofMemorySyncInput) => Promise<ReceizProofMemorySyncResult>;
1958
+ };
1959
+ readonly runtime: {
1960
+ localFirst: (input?: ReceizRuntimeLocalFirstInput) => Promise<ReceizRuntimeLocalFirstResult>;
1961
+ };
1962
+ readonly offline: {
1963
+ createQueue: typeof createReceizOfflineProofQueue;
1964
+ createInMemoryStorage: typeof createReceizInMemoryOfflineProofQueueStorage;
1965
+ createLocalStorage: typeof createReceizLocalStorageOfflineProofQueueStorage;
1966
+ assertSnapshot: typeof assertReceizOfflineProofQueueSnapshot;
1609
1967
  };
1610
1968
  constructor(options?: ReceizClientOptions);
1611
1969
  request<T>(path: string, options?: RequestOptions): Promise<T>;
@@ -1640,17 +1998,25 @@ export declare class ReceizClient {
1640
1998
  restoreAppStateByHost<TData extends JsonObject = JsonObject>(host: string, options?: ReceizAppStateRestoreOptions): Promise<ReceizAppStateRestoreResult<TData>>;
1641
1999
  restoreAppStateById<TData extends JsonObject = JsonObject>(id: string, options?: ReceizAppStateRestoreOptions): Promise<ReceizAppStateRestoreResult<TData>>;
1642
2000
  resolveAppState<TData extends JsonObject = JsonObject>(input: ReceizAppStateResolveInput): Promise<ReceizAppStateResolveResult<TData>>;
2001
+ publishPublicStore<TState extends JsonObject = JsonObject>(input: ReceizPublicStorePublishInput<TState>, options?: ReceizIdempotencyOptions): Promise<ReceizAppStateFeedResponse>;
2002
+ resolvePublicStore<TState extends JsonObject = JsonObject>(input: ReceizPublicStoreResolveInput): Promise<ReceizPublicStoreResolveResult<TState>>;
2003
+ syncProofMemoryAdditions(input: ReceizProofMemorySyncInput): Promise<ReceizProofMemorySyncResult>;
2004
+ resolveLocalFirstSurface<TValue>(surface: string, input: ReceizLocalFirstInput<TValue>): Promise<ReceizLocalFirstResult<TValue>>;
2005
+ runtimeLocalFirst(input?: ReceizRuntimeLocalFirstInput): Promise<ReceizRuntimeLocalFirstResult>;
2006
+ bootstrapCustomerSession(body: ReceizCustomerSessionBootstrapRequest, options?: ReceizIdempotencyOptions): Promise<ReceizCustomerSessionBootstrapResponse>;
1643
2007
  oneClickCheckout(body: ReceizOneClickCheckoutRequest): Promise<ReceizOneClickCheckoutResponse>;
1644
2008
  uploadMedia(file: Blob, options?: ReceizMediaUploadOptions): Promise<ReceizMediaUploadResponse>;
1645
2009
  eventSubscribe(body: ReceizEventSubscribeRequest): Promise<JsonObject>;
1646
2010
  sportsConformance(): Promise<JsonObject>;
1647
2011
  signalCircuitConformance(): Promise<JsonObject>;
1648
2012
  delegated<T>(path: string, options?: Omit<RequestOptions, "bearerToken">): Promise<T>;
2013
+ private delegatedWrite;
1649
2014
  private delegatedBlob;
1650
2015
  private delegatedTwinMindImport;
1651
2016
  private streamJsonEvents;
1652
2017
  continueReceizId(identity: ReceizDeviceIdentity, options?: ReceizIdContinueOptions): Promise<JsonObject>;
1653
2018
  authorizeUrl(options: ReceizAuthorizeUrlOptions): string;
2019
+ ensureTenantSession(input: ReceizEnsureTenantSessionInput): ReceizEnsureTenantSessionResult;
1654
2020
  private delegatedVerifyArtifact;
1655
2021
  private delegatedSealArtifact;
1656
2022
  private connectTransfer;
@@ -1712,6 +2078,29 @@ export declare function createReceizProofMemory(options?: ReceizProofMemoryOptio
1712
2078
  export declare function createReceizInMemoryProofMemoryStorage(initialValue?: ReceizProofMemoryStorageValue): ReceizInMemoryProofMemoryStorage;
1713
2079
  export declare function createReceizLocalStorageProofMemoryStorage(key?: string, storage?: Pick<Storage, "getItem" | "setItem" | "removeItem"> | null | undefined): ReceizProofMemoryStorage;
1714
2080
  export declare function receizProofMemoryAdditionsQuery(value: ReceizProofRegister | ReceizProofRegisterSnapshot | ReceizProofMemory, limit?: number): ReceizProofMemoryAdditionsQuery;
2081
+ export declare function assertReceizOfflineProofQueueSnapshot(value: unknown): ReceizOfflineProofQueueSnapshot;
2082
+ export declare class ReceizOfflineProofQueue {
2083
+ readonly ownerId: string | null;
2084
+ readonly createdAt: string;
2085
+ private pendingItems;
2086
+ private settledItems;
2087
+ private failedItems;
2088
+ private readonly storage;
2089
+ constructor(options?: ReceizOfflineProofQueueOptions);
2090
+ enqueue(item: ReceizOfflineProofQueueItem): this;
2091
+ snapshot(): ReceizOfflineProofQueueSnapshot;
2092
+ flush(): Promise<ReceizOfflineProofQueueSnapshot>;
2093
+ clear(): Promise<void>;
2094
+ replay(client: ReceizClient): Promise<{
2095
+ ok: boolean;
2096
+ settled: number;
2097
+ failed: number;
2098
+ }>;
2099
+ toJSON(): ReceizOfflineProofQueueSnapshot;
2100
+ }
2101
+ export declare function createReceizOfflineProofQueue(options?: ReceizOfflineProofQueueOptions): Promise<ReceizOfflineProofQueue>;
2102
+ export declare function createReceizInMemoryOfflineProofQueueStorage(initialValue?: ReceizOfflineProofQueueStorageValue): ReceizInMemoryOfflineProofQueueStorage;
2103
+ export declare function createReceizLocalStorageOfflineProofQueueStorage(key?: string, storage?: Pick<Storage, "getItem" | "setItem" | "removeItem"> | null | undefined): ReceizOfflineProofQueueStorage;
1715
2104
  export declare function buildReceizWebhookSignaturePayload(input: {
1716
2105
  timestamp: string;
1717
2106
  body: string | ArrayBuffer | Uint8Array | JsonObject;