@zappie/sdk 0.4.0 → 0.5.1
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/CHANGELOG.md +16 -0
- package/README.md +16 -15
- package/dist/account/client.js +68 -0
- package/dist/account/client.js.map +6 -0
- package/dist/account/errors.js +20 -0
- package/dist/account/errors.js.map +6 -0
- package/dist/account/index.d.ts +150 -0
- package/dist/account/index.js +11 -0
- package/dist/account/index.js.map +6 -0
- package/dist/account/types.js +1 -0
- package/dist/account/types.js.map +6 -0
- package/dist/account/url.js +24 -0
- package/dist/account/url.js.map +6 -0
- package/dist/cart/index.js +10 -2
- package/dist/cart/index.js.map +1 -1
- package/dist/debug.js +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/service-url.js +11 -0
- package/dist/internal/service-url.js.map +6 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +9 -16
- package/dist/services/index.js.map +1 -1
- package/dist/testing/account.js +126 -0
- package/dist/testing/account.js.map +6 -0
- package/dist/testing/index.d.ts +81 -2
- package/dist/testing/index.js +4 -1
- package/package.json +6 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @zappie/sdk
|
|
2
2
|
|
|
3
|
+
## 0.5.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 4d4c4e5: The cart stops refreshing when the server keeps naming a menu version that a fresh menu read doesn't return. Before, each quote could start another refresh, and each refresh another quote, so checkout could sit on its review state while the cart read the menu again and again. The cart now refreshes once for each version it is told about, and tries that version again only after 30 seconds. A real menu change still refreshes the cart once and flags the lines whose price or availability changed.
|
|
8
|
+
|
|
9
|
+
## 0.5.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- a5bd08f: `@zappie/sdk/account` reads the signed-in shopper's account through the same endpoint and session as `createCustomer`. `createAccount()` returns `wallets()`, `cards()`, `removeCard(id)`, `payments({ limit, cursor })` and `payment(id)`. A call the shopper's sign-in doesn't cover rejects with `ScopeRequiredError`, which names the scope, and a card or payment that isn't theirs rejects with `NotFoundError`. Both are a `CustomerError`. `accountsUrl(path, environment, { returnTo })` builds a link to a page on the Zappie accounts portal, `/account`, `/account/profile`, `/account/payouts`, `/account/withdraw` or `/account/activity`, with the page to come back to. It refuses a path the way `checkoutUrl` does. `@zappie/sdk/testing` adds `mockAccountFetch()` and `accountFixtures`, which answer the account endpoints as the API does, including a removed card and a missing scope.
|
|
14
|
+
|
|
15
|
+
`@zappie/foundations/account` adds headless account parts that load only on account pages: `Wallets`, `Cards`, `RemoveCard` (a confirmation before a card is removed), `Payments`, `Receipt` and `ScopeMissing`, which offers to sign in again. `SignInOptions.scopes` accepts `wallet`, `cards` and `payments:read`.
|
|
16
|
+
|
|
17
|
+
`no-offsite-navigation` trusts the staging accounts portal and `accountsUrl` from `@zappie/sdk/account`, and `no-direct-api` points a written-out accounts address to `accountsUrl`.
|
|
18
|
+
|
|
3
19
|
## 0.4.0
|
|
4
20
|
|
|
5
21
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -50,21 +50,22 @@ Prices always come from Zappie. The cart shows a local estimate while it waits,
|
|
|
50
50
|
|
|
51
51
|
## Entry points
|
|
52
52
|
|
|
53
|
-
| Import | For
|
|
54
|
-
| -------------------------------------------- |
|
|
55
|
-
| `@zappie/sdk` | The client, the cart, money formatting and errors
|
|
56
|
-
| `@zappie/sdk/react` | `ZappieProvider` and hooks such as `useStore`, `useMenu` and `useCart`
|
|
57
|
-
| `@zappie/sdk/checkout` | Opening Zappie's hosted checkout and checking it completed
|
|
58
|
-
| `@zappie/sdk/checkout-defaults` | The phone, address, region and time a signed-in checkout starts from
|
|
59
|
-
| `@zappie/sdk/customer` and `/customer/react` | Signed-in customers, their orders and saved addresses
|
|
60
|
-
| `@zappie/sdk/
|
|
61
|
-
| `@zappie/sdk/
|
|
62
|
-
| `@zappie/sdk/
|
|
63
|
-
| `@zappie/sdk/
|
|
64
|
-
| `@zappie/sdk/
|
|
65
|
-
| `@zappie/sdk/
|
|
66
|
-
| `@zappie/sdk/
|
|
67
|
-
| `@zappie/sdk/
|
|
53
|
+
| Import | For |
|
|
54
|
+
| -------------------------------------------- | ------------------------------------------------------------------------------------------ |
|
|
55
|
+
| `@zappie/sdk` | The client, the cart, money formatting and errors |
|
|
56
|
+
| `@zappie/sdk/react` | `ZappieProvider` and hooks such as `useStore`, `useMenu` and `useCart` |
|
|
57
|
+
| `@zappie/sdk/checkout` | Opening Zappie's hosted checkout and checking it completed |
|
|
58
|
+
| `@zappie/sdk/checkout-defaults` | The phone, address, region and time a signed-in checkout starts from |
|
|
59
|
+
| `@zappie/sdk/customer` and `/customer/react` | Signed-in customers, their orders and saved addresses |
|
|
60
|
+
| `@zappie/sdk/account` | The shopper's wallet, saved cards, payments and receipts, and links to the accounts portal |
|
|
61
|
+
| `@zappie/sdk/integrations` | Public integration IDs and browser keys |
|
|
62
|
+
| `@zappie/sdk/places` | Address search and delivery-zone checks |
|
|
63
|
+
| `@zappie/sdk/pricing` | An item's starting price and whether to show it as "From" |
|
|
64
|
+
| `@zappie/sdk/server` | Server-side reads, storefront URLs, `verifyWebhook()`, menu snapshots and sign-in crypto |
|
|
65
|
+
| `@zappie/sdk/template` and `/template/react` | Template settings and responsive images for template authors |
|
|
66
|
+
| `@zappie/sdk/testing` | A mock client and mock account endpoints for your tests |
|
|
67
|
+
| `@zappie/sdk/url` | Storefront URL parsing and canonical redirects |
|
|
68
|
+
| `@zappie/sdk/redirect` | Same-origin validation for untrusted redirect targets |
|
|
68
69
|
|
|
69
70
|
Customer sign-in runs through Zappie's site host, so `@zappie/sdk/customer` works on sites Zappie hosts. Sign-in for a site you host yourself isn't available yet.
|
|
70
71
|
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// src/account/client.ts
|
|
2
|
+
import { CustomerError } from "../customer/error.js";
|
|
3
|
+
import { createCustomerRequest } from "../customer/request.js";
|
|
4
|
+
import { NotFoundError, ScopeRequiredError } from "./errors.js";
|
|
5
|
+
function createAccount(options = {}) {
|
|
6
|
+
const base = (options.customerBase ?? "/_zappie/api").replace(/\/+$/, "");
|
|
7
|
+
const request = createCustomerRequest(
|
|
8
|
+
base,
|
|
9
|
+
options.fetch ?? globalThis.fetch,
|
|
10
|
+
() => {
|
|
11
|
+
void options.customer?.session().catch(() => void 0);
|
|
12
|
+
}
|
|
13
|
+
);
|
|
14
|
+
const call = async (scope, path, method = "GET") => {
|
|
15
|
+
try {
|
|
16
|
+
return await request(path, { method });
|
|
17
|
+
} catch (error) {
|
|
18
|
+
if (error instanceof CustomerError) {
|
|
19
|
+
if (error.apiCode === "scope_required") {
|
|
20
|
+
throw new ScopeRequiredError(scope, error.message);
|
|
21
|
+
}
|
|
22
|
+
if (error.status === 404) {
|
|
23
|
+
throw new NotFoundError(error.message);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
return {
|
|
30
|
+
/** The shopper's Zappie wallet, one balance per currency, naira first. Needs the `wallet` scope. */
|
|
31
|
+
async wallets() {
|
|
32
|
+
return (await call("wallet", "/me/wallets")).wallets;
|
|
33
|
+
},
|
|
34
|
+
/** The cards the shopper saved when they paid. Needs the `cards` scope. */
|
|
35
|
+
async cards() {
|
|
36
|
+
return (await call("cards", "/me/cards")).cards;
|
|
37
|
+
},
|
|
38
|
+
/** Remove one of the shopper's saved cards. Needs the `cards` scope. */
|
|
39
|
+
removeCard: (id) => call("cards", `/me/cards/${encodeURIComponent(id)}`, "DELETE"),
|
|
40
|
+
/**
|
|
41
|
+
* One page of the shopper's payments at this business, newest first. Needs the `payments:read` scope.
|
|
42
|
+
*
|
|
43
|
+
* @param page - Up to 50 payments a page, 20 by default, and the next_cursor of the previous page.
|
|
44
|
+
*/
|
|
45
|
+
payments(page = {}) {
|
|
46
|
+
const query = new URLSearchParams();
|
|
47
|
+
if (page.limit !== void 0) {
|
|
48
|
+
query.set("limit", String(page.limit));
|
|
49
|
+
}
|
|
50
|
+
if (page.cursor !== void 0) {
|
|
51
|
+
query.set("cursor", page.cursor);
|
|
52
|
+
}
|
|
53
|
+
return call(
|
|
54
|
+
"payments:read",
|
|
55
|
+
`/me/payments${query.size > 0 ? `?${query}` : ""}`
|
|
56
|
+
);
|
|
57
|
+
},
|
|
58
|
+
/** One payment with what its receipt shows. Needs the `payments:read` scope. */
|
|
59
|
+
payment: (id) => call(
|
|
60
|
+
"payments:read",
|
|
61
|
+
`/me/payments/${encodeURIComponent(id)}`
|
|
62
|
+
)
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export {
|
|
66
|
+
createAccount
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/account/client.ts"],
|
|
4
|
+
"mappings": ";AAAA,SAAS,qBAAqB;AAC9B,SAAS,6BAA6B;AACtC,SAAS,eAAe,0BAA0B;AAmB3C,SAAS,cAAc,UAAgC,CAAC,GAAG;AAChE,QAAM,QAAQ,QAAQ,gBAAgB,gBAAgB,QAAQ,QAAQ,EAAE;AACxE,QAAM,UAAU;AAAA,IACd;AAAA,IACA,QAAQ,SAAS,WAAW;AAAA,IAC5B,MAAM;AACJ,WAAK,QAAQ,UAAU,QAAQ,EAAE,MAAM,MAAM,MAAS;AAAA,IACxD;AAAA,EACF;AACA,QAAM,OAAO,OACX,OACA,MACA,SAAS,UACM;AACf,QAAI;AACF,aAAO,MAAM,QAAW,MAAM,EAAE,OAAO,CAAC;AAAA,IAC1C,SAAS,OAAO;AACd,UAAI,iBAAiB,eAAe;AAClC,YAAI,MAAM,YAAY,kBAAkB;AACtC,gBAAM,IAAI,mBAAmB,OAAO,MAAM,OAAO;AAAA,QACnD;AACA,YAAI,MAAM,WAAW,KAAK;AACxB,gBAAM,IAAI,cAAc,MAAM,OAAO;AAAA,QACvC;AAAA,MACF;AACA,YAAM;AAAA,IACR;AAAA,EACF;AACA,SAAO;AAAA;AAAA,IAEL,MAAM,UAA6B;AACjC,cAAQ,MAAM,KAA4B,UAAU,aAAa,GAC9D;AAAA,IACL;AAAA;AAAA,IAEA,MAAM,QAA8B;AAClC,cAAQ,MAAM,KAA6B,SAAS,WAAW,GAAG;AAAA,IACpE;AAAA;AAAA,IAEA,YAAY,CAAC,OACX,KAAK,SAAS,aAAa,mBAAmB,EAAE,CAAC,IAAI,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAM/D,SAAS,OAA4C,CAAC,GAAG;AACvD,YAAM,QAAQ,IAAI,gBAAgB;AAClC,UAAI,KAAK,UAAU,QAAW;AAC5B,cAAM,IAAI,SAAS,OAAO,KAAK,KAAK,CAAC;AAAA,MACvC;AACA,UAAI,KAAK,WAAW,QAAW;AAC7B,cAAM,IAAI,UAAU,KAAK,MAAM;AAAA,MACjC;AACA,aAAO;AAAA,QACL;AAAA,QACA,eAAe,MAAM,OAAO,IAAI,IAAI,KAAK,KAAK,EAAE;AAAA,MAClD;AAAA,IACF;AAAA;AAAA,IAEA,SAAS,CAAC,OACR;AAAA,MACE;AAAA,MACA,gBAAgB,mBAAmB,EAAE,CAAC;AAAA,IACxC;AAAA,EACJ;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// src/account/errors.ts
|
|
2
|
+
import { CustomerError } from "../customer/error.js";
|
|
3
|
+
var ScopeRequiredError = class extends CustomerError {
|
|
4
|
+
constructor(scope, message) {
|
|
5
|
+
super(403, "scope_required", message);
|
|
6
|
+
this.scope = scope;
|
|
7
|
+
this.name = "ScopeRequiredError";
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var NotFoundError = class extends CustomerError {
|
|
11
|
+
constructor(message) {
|
|
12
|
+
super(404, "not_found", message);
|
|
13
|
+
this.name = "NotFoundError";
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
NotFoundError,
|
|
18
|
+
ScopeRequiredError
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/account/errors.ts"],
|
|
4
|
+
"mappings": ";AAAA,SAAS,qBAAqB;AAOvB,IAAM,qBAAN,cAAiC,cAAc;AAAA,EACpD,YAEW,OACT,SACA;AACA,UAAM,KAAK,kBAAkB,OAAO;AAH3B;AAIT,SAAK,OAAO;AAAA,EACd;AACF;AAGO,IAAM,gBAAN,cAA4B,cAAc;AAAA,EAC/C,YAAY,SAAiB;AAC3B,UAAM,KAAK,aAAa,OAAO;AAC/B,SAAK,OAAO;AAAA,EACd;AACF;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { ZappieError } from '@zappie/sdk';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* A customer API amount in minor currency units, paired with its currency code.
|
|
5
|
+
*/
|
|
6
|
+
type Money = {
|
|
7
|
+
amount_minor: number;
|
|
8
|
+
currency: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
/** A scope the account calls need. A token without it gets `scope_required`. */
|
|
12
|
+
type AccountScope = "wallet" | "cards" | "payments:read";
|
|
13
|
+
/** One balance in the shopper's Zappie wallet, which is the same at every business. */
|
|
14
|
+
type Wallet = {
|
|
15
|
+
currency: string;
|
|
16
|
+
balance: Money;
|
|
17
|
+
};
|
|
18
|
+
/** A card the shopper saved when they paid. It never carries the full card number. */
|
|
19
|
+
type SavedCard = {
|
|
20
|
+
id: string;
|
|
21
|
+
/** The card scheme in lower case, such as `mastercard`. */
|
|
22
|
+
brand: string;
|
|
23
|
+
last4: string;
|
|
24
|
+
exp_month: number;
|
|
25
|
+
exp_year: number;
|
|
26
|
+
};
|
|
27
|
+
/** A payment the shopper made at this business. */
|
|
28
|
+
type CustomerPayment = {
|
|
29
|
+
id: string;
|
|
30
|
+
status: "successful" | "failed" | "refunded";
|
|
31
|
+
/** What the payment was for. */
|
|
32
|
+
amount: Money;
|
|
33
|
+
/** What the shopper paid, fees included. */
|
|
34
|
+
paid: Money;
|
|
35
|
+
reference: string;
|
|
36
|
+
branch_id: string;
|
|
37
|
+
/** The order the payment paid for, or null when it wasn't a delivery or pickup order. */
|
|
38
|
+
order_id: string | null;
|
|
39
|
+
created_at: string;
|
|
40
|
+
paid_at: string | null;
|
|
41
|
+
};
|
|
42
|
+
/** A page of payments and the cursor for the next page, or null at the end. */
|
|
43
|
+
type PaymentsPage = {
|
|
44
|
+
payments: CustomerPayment[];
|
|
45
|
+
next_cursor: string | null;
|
|
46
|
+
};
|
|
47
|
+
/** How the shopper paid. A card shows its brand and last four digits, a bank transfer its bank and account name. */
|
|
48
|
+
type PaymentMethodDetails = {
|
|
49
|
+
type: "card" | "card_terminal" | "bank_transfer" | "wallet" | "apple_pay" | "google_pay" | "store_credit" | "loyalty_points" | "mobile_money" | "other";
|
|
50
|
+
card_brand?: string;
|
|
51
|
+
card_last4?: string;
|
|
52
|
+
bank_name?: string;
|
|
53
|
+
account_name?: string;
|
|
54
|
+
};
|
|
55
|
+
/** A payment with what its receipt shows: the branch's name and how the shopper paid. */
|
|
56
|
+
type PaymentReceipt = CustomerPayment & {
|
|
57
|
+
branch_name: string;
|
|
58
|
+
method: PaymentMethodDetails;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Where the account calls go and how. They share the customer client's defaults, so a site that
|
|
62
|
+
* changed `customerBase` or `fetch` for createCustomer passes the same values here.
|
|
63
|
+
*/
|
|
64
|
+
type AccountClientOptions = {
|
|
65
|
+
customerBase?: string;
|
|
66
|
+
fetch?: typeof fetch;
|
|
67
|
+
/** The site's customer client. A call the session no longer allows re-checks it, so the site sees the shopper signed out. */
|
|
68
|
+
customer?: {
|
|
69
|
+
session(): Promise<unknown>;
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Create a client for the shopper's wallet, saved cards and payments at this business, through the
|
|
75
|
+
* same endpoint and session as createCustomer. Load it only on account pages.
|
|
76
|
+
* A call the shopper's sign-in doesn't allow rejects with ScopeRequiredError. A card or payment that
|
|
77
|
+
* isn't theirs rejects with NotFoundError. Any other failure is a CustomerError.
|
|
78
|
+
*
|
|
79
|
+
* @param options - Endpoint and fetch overrides, and the site's customer client.
|
|
80
|
+
* @returns The account calls.
|
|
81
|
+
*/
|
|
82
|
+
declare function createAccount(options?: AccountClientOptions): {
|
|
83
|
+
/** The shopper's Zappie wallet, one balance per currency, naira first. Needs the `wallet` scope. */
|
|
84
|
+
wallets(): Promise<Wallet[]>;
|
|
85
|
+
/** The cards the shopper saved when they paid. Needs the `cards` scope. */
|
|
86
|
+
cards(): Promise<SavedCard[]>;
|
|
87
|
+
/** Remove one of the shopper's saved cards. Needs the `cards` scope. */
|
|
88
|
+
removeCard: (id: string) => Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* One page of the shopper's payments at this business, newest first. Needs the `payments:read` scope.
|
|
91
|
+
*
|
|
92
|
+
* @param page - Up to 50 payments a page, 20 by default, and the next_cursor of the previous page.
|
|
93
|
+
*/
|
|
94
|
+
payments(page?: {
|
|
95
|
+
limit?: number;
|
|
96
|
+
cursor?: string;
|
|
97
|
+
}): Promise<PaymentsPage>;
|
|
98
|
+
/** One payment with what its receipt shows. Needs the `payments:read` scope. */
|
|
99
|
+
payment: (id: string) => Promise<PaymentReceipt>;
|
|
100
|
+
};
|
|
101
|
+
/** The wallet, card and payment calls returned by createAccount. */
|
|
102
|
+
type AccountClient = ReturnType<typeof createAccount>;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* A customer API failure with its HTTP status, API code and optional validation issues.
|
|
106
|
+
* Statuses 429 and 5xx are marked retryable.
|
|
107
|
+
*/
|
|
108
|
+
declare class CustomerError extends ZappieError {
|
|
109
|
+
readonly apiCode: string;
|
|
110
|
+
readonly issues?: unknown;
|
|
111
|
+
constructor(status: number, apiCode: string, message: string, param?: string, issues?: unknown);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* The shopper's sign-in doesn't include the scope this call needs, usually because they signed in
|
|
116
|
+
* before the site asked for it. Offer to sign in again. It doesn't sign the shopper out.
|
|
117
|
+
*/
|
|
118
|
+
declare class ScopeRequiredError extends CustomerError {
|
|
119
|
+
/** The scope the call needs. */
|
|
120
|
+
readonly scope: AccountScope;
|
|
121
|
+
constructor(
|
|
122
|
+
/** The scope the call needs. */
|
|
123
|
+
scope: AccountScope, message: string);
|
|
124
|
+
}
|
|
125
|
+
/** The card or payment isn't the shopper's, or isn't at this business. */
|
|
126
|
+
declare class NotFoundError extends CustomerError {
|
|
127
|
+
constructor(message: string);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/** The Zappie environment a service URL points at. */
|
|
131
|
+
type ZappieEnvironment = "production" | "staging";
|
|
132
|
+
|
|
133
|
+
/** A page on the Zappie accounts portal. */
|
|
134
|
+
type AccountsPage = "/account" | "/account/profile" | "/account/payouts" | "/account/withdraw" | "/account/activity";
|
|
135
|
+
/**
|
|
136
|
+
* Build a link to a page on the Zappie accounts portal, where the shopper changes their name or
|
|
137
|
+
* email, adds a payout account, withdraws from their wallet or sees all their activity. The portal
|
|
138
|
+
* links back to `returnTo` when it is a page on a site registered with Zappie.
|
|
139
|
+
*
|
|
140
|
+
* @param path - The portal page, such as `/account/withdraw`.
|
|
141
|
+
* @param environment - `staging` for a test host. Defaults to `production`.
|
|
142
|
+
* @param options - `returnTo`, the page to come back to. A path resolves against the current page.
|
|
143
|
+
* @returns The absolute portal URL. A path that could leave the portal, or a `returnTo` that isn't an http or https page, throws a TypeError.
|
|
144
|
+
*/
|
|
145
|
+
declare function accountsUrl(path: AccountsPage, environment?: ZappieEnvironment, options?: {
|
|
146
|
+
returnTo?: string | URL;
|
|
147
|
+
}): string;
|
|
148
|
+
|
|
149
|
+
export { NotFoundError, ScopeRequiredError, accountsUrl, createAccount };
|
|
150
|
+
export type { AccountClient, AccountClientOptions, AccountScope, AccountsPage, CustomerPayment, PaymentMethodDetails, PaymentReceipt, PaymentsPage, SavedCard, Wallet };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// src/account/index.ts
|
|
2
|
+
import { createAccount } from "./client.js";
|
|
3
|
+
import { NotFoundError, ScopeRequiredError } from "./errors.js";
|
|
4
|
+
import { accountsUrl } from "./url.js";
|
|
5
|
+
export {
|
|
6
|
+
NotFoundError,
|
|
7
|
+
ScopeRequiredError,
|
|
8
|
+
accountsUrl,
|
|
9
|
+
createAccount
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// src/account/url.ts
|
|
2
|
+
import { serviceUrl } from "../internal/service-url.js";
|
|
3
|
+
var ACCOUNTS = {
|
|
4
|
+
production: "https://accounts.zappie.ai",
|
|
5
|
+
staging: "https://accounts.stg.zappie.ai"
|
|
6
|
+
};
|
|
7
|
+
function accountsUrl(path, environment = "production", options = {}) {
|
|
8
|
+
const url = new URL(serviceUrl(ACCOUNTS, path, environment));
|
|
9
|
+
if (options.returnTo !== void 0) {
|
|
10
|
+
const back = new URL(
|
|
11
|
+
options.returnTo,
|
|
12
|
+
typeof location === "undefined" ? void 0 : location.href
|
|
13
|
+
);
|
|
14
|
+
if (back.protocol !== "https:" && back.protocol !== "http:") {
|
|
15
|
+
throw new TypeError("Pass an http or https page to return to");
|
|
16
|
+
}
|
|
17
|
+
url.searchParams.set("return", back.href);
|
|
18
|
+
}
|
|
19
|
+
return url.href;
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
accountsUrl
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/account/url.ts"],
|
|
4
|
+
"mappings": ";AAAA,SAAS,kBAA0C;AAEnD,IAAM,WAAW;AAAA,EACf,YAAY;AAAA,EACZ,SAAS;AACX;AAoBO,SAAS,YACd,MACA,cAAiC,cACjC,UAAuC,CAAC,GAChC;AACR,QAAM,MAAM,IAAI,IAAI,WAAW,UAAU,MAAM,WAAW,CAAC;AAC3D,MAAI,QAAQ,aAAa,QAAW;AAClC,UAAM,OAAO,IAAI;AAAA,MACf,QAAQ;AAAA,MACR,OAAO,aAAa,cAAc,SAAY,SAAS;AAAA,IACzD;AACA,QAAI,KAAK,aAAa,YAAY,KAAK,aAAa,SAAS;AAC3D,YAAM,IAAI,UAAU,yCAAyC;AAAA,IAC/D;AACA,QAAI,aAAa,IAAI,UAAU,KAAK,IAAI;AAAA,EAC1C;AACA,SAAO,IAAI;AACb;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/cart/index.js
CHANGED
|
@@ -63,6 +63,8 @@ function createCart(deps) {
|
|
|
63
63
|
let quoteRevision = 0;
|
|
64
64
|
let moveSequence = 0;
|
|
65
65
|
let refreshSequence = 0;
|
|
66
|
+
let chased;
|
|
67
|
+
let chasedAt = 0;
|
|
66
68
|
let mounted = 0;
|
|
67
69
|
let detach;
|
|
68
70
|
let hydration;
|
|
@@ -262,7 +264,7 @@ function createCart(deps) {
|
|
|
262
264
|
}
|
|
263
265
|
}
|
|
264
266
|
};
|
|
265
|
-
const refresh = async () => {
|
|
267
|
+
const refresh = async (target) => {
|
|
266
268
|
const id = branch?.id;
|
|
267
269
|
const seq = moveSequence;
|
|
268
270
|
const request = ++refreshSequence;
|
|
@@ -281,7 +283,13 @@ function createCart(deps) {
|
|
|
281
283
|
if (version.version === menu.version) {
|
|
282
284
|
return;
|
|
283
285
|
}
|
|
286
|
+
target = version.version;
|
|
284
287
|
}
|
|
288
|
+
if (target && target === chased && Date.now() - chasedAt < 3e4) {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
chased = target;
|
|
292
|
+
chasedAt = Date.now();
|
|
285
293
|
const value = await deps.workingSet.read(
|
|
286
294
|
id,
|
|
287
295
|
snapshot.lines.map((l) => l.itemId),
|
|
@@ -681,7 +689,7 @@ function createCart(deps) {
|
|
|
681
689
|
events.emit("cart_issue", { code: i.code });
|
|
682
690
|
}
|
|
683
691
|
if (quote.menuVersion !== menu.version || quote.issues.some((i) => i.code === "menu_version_stale")) {
|
|
684
|
-
void refresh().catch(
|
|
692
|
+
void refresh(quote.menuVersion).catch(
|
|
685
693
|
(error) => events.emit("error", { error: asError(error) })
|
|
686
694
|
);
|
|
687
695
|
}
|
package/dist/cart/index.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/cart/index.ts"],
|
|
4
|
-
"mappings": "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",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/debug.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -10,7 +10,7 @@ import { ZappieError, isZappieError } from "./errors.js";
|
|
|
10
10
|
export * from "./models.js";
|
|
11
11
|
import { format, money } from "./money.js";
|
|
12
12
|
import { RestTransport } from "./transport/rest.js";
|
|
13
|
-
var VERSION = true ? "0.
|
|
13
|
+
var VERSION = true ? "0.5.1" : "0.0.0-development";
|
|
14
14
|
export {
|
|
15
15
|
API_VERSION,
|
|
16
16
|
RestTransport,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// src/internal/service-url.ts
|
|
2
|
+
var serviceUrl = (origins, path, environment) => {
|
|
3
|
+
if (environment !== "production" && environment !== "staging" || !/^\/(?!\/)[^\u0000- \u007f\\]*$/u.test(path)) {
|
|
4
|
+
throw new TypeError("Pass a path that starts with one slash");
|
|
5
|
+
}
|
|
6
|
+
return origins[environment] + path;
|
|
7
|
+
};
|
|
8
|
+
export {
|
|
9
|
+
serviceUrl
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=service-url.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/internal/service-url.ts"],
|
|
4
|
+
"mappings": ";AAIO,IAAM,aAAa,CACxB,SACA,MACA,gBACW;AACX,MACG,gBAAgB,gBAAgB,gBAAgB,aACjD,CAAC,kCAAkC,KAAK,IAAI,GAC5C;AACA,UAAM,IAAI,UAAU,wCAAwC;AAAA,EAC9D;AACA,SAAO,QAAQ,WAAW,IAAI;AAChC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/services/index.d.ts
CHANGED
package/dist/services/index.js
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
1
1
|
// src/services/index.ts
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
},
|
|
7
|
-
app: {
|
|
8
|
-
production: "https://app.zappie.ai",
|
|
9
|
-
staging: "https://app.stg.zappie.ai"
|
|
10
|
-
}
|
|
2
|
+
import { serviceUrl } from "../internal/service-url.js";
|
|
3
|
+
var CHECKOUT = {
|
|
4
|
+
production: "https://checkout.zappie.ai",
|
|
5
|
+
staging: "https://checkout.stg.zappie.ai"
|
|
11
6
|
};
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
return ORIGINS[service][environment] + path;
|
|
7
|
+
var APP = {
|
|
8
|
+
production: "https://app.zappie.ai",
|
|
9
|
+
staging: "https://app.stg.zappie.ai"
|
|
17
10
|
};
|
|
18
|
-
var checkoutUrl = (path, environment = "production") => serviceUrl(
|
|
19
|
-
var appUrl = (path, environment = "production") => serviceUrl(
|
|
11
|
+
var checkoutUrl = (path, environment = "production") => serviceUrl(CHECKOUT, path, environment);
|
|
12
|
+
var appUrl = (path, environment = "production") => serviceUrl(APP, path, environment);
|
|
20
13
|
var ZAPPIE_SUPPORT_WHATSAPP = "15558956471";
|
|
21
14
|
export {
|
|
22
15
|
ZAPPIE_SUPPORT_WHATSAPP,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/services/index.ts"],
|
|
4
|
-
"mappings": ";
|
|
4
|
+
"mappings": ";AAAA,SAAS,kBAA0C;AAKnD,IAAM,WAAW;AAAA,EACf,YAAY;AAAA,EACZ,SAAS;AACX;AACA,IAAM,MAAM;AAAA,EACV,YAAY;AAAA,EACZ,SAAS;AACX;AASO,IAAM,cAAc,CACzB,MACA,cAAiC,iBACtB,WAAW,UAAU,MAAM,WAAW;AAS5C,IAAM,SAAS,CACpB,MACA,cAAiC,iBACtB,WAAW,KAAK,MAAM,WAAW;AAGvC,IAAM,0BAA0B;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
// src/testing/account.ts
|
|
2
|
+
var ngn = (amount_minor) => ({ amount_minor, currency: "NGN" });
|
|
3
|
+
var receipt = (id, status, amount, at, method) => ({
|
|
4
|
+
id,
|
|
5
|
+
status,
|
|
6
|
+
amount: ngn(amount),
|
|
7
|
+
paid: ngn(amount),
|
|
8
|
+
reference: `PAY_${id.slice(4).toUpperCase()}`,
|
|
9
|
+
branch_id: "br_fixture",
|
|
10
|
+
branch_name: "Main",
|
|
11
|
+
order_id: status === "failed" ? null : `ord_${id.slice(4)}`,
|
|
12
|
+
created_at: at,
|
|
13
|
+
paid_at: status === "failed" ? null : at,
|
|
14
|
+
method
|
|
15
|
+
});
|
|
16
|
+
var accountFixtures = {
|
|
17
|
+
wallets: [
|
|
18
|
+
{ currency: "NGN", balance: ngn(25e5) },
|
|
19
|
+
{ currency: "USD", balance: { amount_minor: 1250, currency: "USD" } }
|
|
20
|
+
],
|
|
21
|
+
cards: [
|
|
22
|
+
{
|
|
23
|
+
id: "card_fixture1",
|
|
24
|
+
brand: "mastercard",
|
|
25
|
+
last4: "4321",
|
|
26
|
+
exp_month: 4,
|
|
27
|
+
exp_year: 2029
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
id: "card_fixture2",
|
|
31
|
+
brand: "visa",
|
|
32
|
+
last4: "1881",
|
|
33
|
+
exp_month: 11,
|
|
34
|
+
exp_year: 2027
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
payments: [
|
|
38
|
+
receipt("pay_fixture3", "successful", 105e4, "2026-10-12T12:00:00Z", {
|
|
39
|
+
type: "card",
|
|
40
|
+
card_brand: "mastercard",
|
|
41
|
+
card_last4: "4321"
|
|
42
|
+
}),
|
|
43
|
+
receipt("pay_fixture2", "refunded", 45e4, "2026-10-11T09:30:00Z", {
|
|
44
|
+
type: "bank_transfer",
|
|
45
|
+
bank_name: "Example Bank",
|
|
46
|
+
account_name: "Ada Obi"
|
|
47
|
+
}),
|
|
48
|
+
receipt("pay_fixture1", "failed", 2e5, "2026-10-10T18:15:00Z", {
|
|
49
|
+
type: "wallet"
|
|
50
|
+
})
|
|
51
|
+
]
|
|
52
|
+
};
|
|
53
|
+
var SCOPES = ["wallet", "cards", "payments:read"];
|
|
54
|
+
function mockAccountFetch(fixtures = accountFixtures, options = {}) {
|
|
55
|
+
const data = structuredClone(fixtures);
|
|
56
|
+
const granted = options.scopes ?? SCOPES;
|
|
57
|
+
const error = (status, code, message) => Response.json({ error: { code, message } }, { status });
|
|
58
|
+
return async (input, init) => {
|
|
59
|
+
const request = new Request(
|
|
60
|
+
new URL(String(input), "http://mock.test"),
|
|
61
|
+
init
|
|
62
|
+
);
|
|
63
|
+
const url = new URL(request.url);
|
|
64
|
+
const [, resource, id, extra] = /\/me\/(wallets|cards|payments)(?:\/([^/]+))?(\/.*)?$/.exec(
|
|
65
|
+
url.pathname
|
|
66
|
+
) ?? [];
|
|
67
|
+
if (!resource || extra !== void 0) {
|
|
68
|
+
return error(404, "not_found", "No such endpoint.");
|
|
69
|
+
}
|
|
70
|
+
const scope = resource === "wallets" ? "wallet" : resource === "cards" ? "cards" : "payments:read";
|
|
71
|
+
if (!granted.includes(scope)) {
|
|
72
|
+
return error(
|
|
73
|
+
403,
|
|
74
|
+
"scope_required",
|
|
75
|
+
`The customer did not grant the ${scope} scope.`
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
const method = request.method;
|
|
79
|
+
if (resource === "wallets" && id === void 0 && method === "GET") {
|
|
80
|
+
return Response.json({ wallets: data.wallets });
|
|
81
|
+
}
|
|
82
|
+
if (resource === "cards" && id === void 0 && method === "GET") {
|
|
83
|
+
return Response.json({ cards: data.cards });
|
|
84
|
+
}
|
|
85
|
+
if (resource === "cards" && id !== void 0 && method === "DELETE") {
|
|
86
|
+
const cardId = decodeURIComponent(id);
|
|
87
|
+
if (!/^card_\w+$/.test(cardId)) {
|
|
88
|
+
return error(400, "invalid_id", "That isn't a card ID.");
|
|
89
|
+
}
|
|
90
|
+
const index = data.cards.findIndex((card) => card.id === cardId);
|
|
91
|
+
if (index < 0) {
|
|
92
|
+
return error(404, "not_found", "No such card.");
|
|
93
|
+
}
|
|
94
|
+
data.cards.splice(index, 1);
|
|
95
|
+
return new Response(null, { status: 204 });
|
|
96
|
+
}
|
|
97
|
+
if (resource === "payments" && method === "GET") {
|
|
98
|
+
if (id !== void 0) {
|
|
99
|
+
const found = data.payments.find(
|
|
100
|
+
(payment) => payment.id === decodeURIComponent(id)
|
|
101
|
+
);
|
|
102
|
+
return found ? Response.json(found) : error(404, "not_found", "No such payment.");
|
|
103
|
+
}
|
|
104
|
+
const limit = Number(url.searchParams.get("limit") ?? 20);
|
|
105
|
+
const cursor = url.searchParams.get("cursor");
|
|
106
|
+
const start = cursor === null ? 0 : data.payments.findIndex((payment) => payment.id === cursor);
|
|
107
|
+
if (!Number.isInteger(limit) || limit < 1 || start < 0) {
|
|
108
|
+
return error(400, "parameter_invalid", "Check limit and cursor.");
|
|
109
|
+
}
|
|
110
|
+
const page = data.payments.slice(start, start + Math.min(limit, 50));
|
|
111
|
+
const next = data.payments[start + page.length];
|
|
112
|
+
return Response.json({
|
|
113
|
+
payments: page.map(
|
|
114
|
+
({ branch_name: _name, method: _method, ...payment }) => payment
|
|
115
|
+
),
|
|
116
|
+
next_cursor: next?.id ?? null
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
return error(405, "method_not_allowed", "Method not allowed.");
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
export {
|
|
123
|
+
accountFixtures,
|
|
124
|
+
mockAccountFetch
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=account.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/testing/account.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -4,6 +4,85 @@ import { Store, Menu, Formatters } from '../index.js';
|
|
|
4
4
|
export { VERSION } from '../index.js';
|
|
5
5
|
import { CartModule, CartLineInput } from '../index.js';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* A customer API amount in minor currency units, paired with its currency code.
|
|
9
|
+
*/
|
|
10
|
+
type Money = {
|
|
11
|
+
amount_minor: number;
|
|
12
|
+
currency: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/** A scope the account calls need. A token without it gets `scope_required`. */
|
|
16
|
+
type AccountScope = "wallet" | "cards" | "payments:read";
|
|
17
|
+
/** One balance in the shopper's Zappie wallet, which is the same at every business. */
|
|
18
|
+
type Wallet = {
|
|
19
|
+
currency: string;
|
|
20
|
+
balance: Money;
|
|
21
|
+
};
|
|
22
|
+
/** A card the shopper saved when they paid. It never carries the full card number. */
|
|
23
|
+
type SavedCard = {
|
|
24
|
+
id: string;
|
|
25
|
+
/** The card scheme in lower case, such as `mastercard`. */
|
|
26
|
+
brand: string;
|
|
27
|
+
last4: string;
|
|
28
|
+
exp_month: number;
|
|
29
|
+
exp_year: number;
|
|
30
|
+
};
|
|
31
|
+
/** A payment the shopper made at this business. */
|
|
32
|
+
type CustomerPayment = {
|
|
33
|
+
id: string;
|
|
34
|
+
status: "successful" | "failed" | "refunded";
|
|
35
|
+
/** What the payment was for. */
|
|
36
|
+
amount: Money;
|
|
37
|
+
/** What the shopper paid, fees included. */
|
|
38
|
+
paid: Money;
|
|
39
|
+
reference: string;
|
|
40
|
+
branch_id: string;
|
|
41
|
+
/** The order the payment paid for, or null when it wasn't a delivery or pickup order. */
|
|
42
|
+
order_id: string | null;
|
|
43
|
+
created_at: string;
|
|
44
|
+
paid_at: string | null;
|
|
45
|
+
};
|
|
46
|
+
/** How the shopper paid. A card shows its brand and last four digits, a bank transfer its bank and account name. */
|
|
47
|
+
type PaymentMethodDetails = {
|
|
48
|
+
type: "card" | "card_terminal" | "bank_transfer" | "wallet" | "apple_pay" | "google_pay" | "store_credit" | "loyalty_points" | "mobile_money" | "other";
|
|
49
|
+
card_brand?: string;
|
|
50
|
+
card_last4?: string;
|
|
51
|
+
bank_name?: string;
|
|
52
|
+
account_name?: string;
|
|
53
|
+
};
|
|
54
|
+
/** A payment with what its receipt shows: the branch's name and how the shopper paid. */
|
|
55
|
+
type PaymentReceipt = CustomerPayment & {
|
|
56
|
+
branch_name: string;
|
|
57
|
+
method: PaymentMethodDetails;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/** The wallets, saved cards and payment receipts the mock account endpoints answer with. */
|
|
61
|
+
type MockAccountFixtures = {
|
|
62
|
+
wallets: Wallet[];
|
|
63
|
+
cards: SavedCard[];
|
|
64
|
+
/** Newest first, as the API lists them. */
|
|
65
|
+
payments: PaymentReceipt[];
|
|
66
|
+
};
|
|
67
|
+
/** The scopes the mock shopper granted. Leave it out to grant all three. */
|
|
68
|
+
type MockAccountOptions = {
|
|
69
|
+
scopes?: AccountScope[];
|
|
70
|
+
};
|
|
71
|
+
/** Sample account data with no real cards or people: two balances, two cards and three payments. */
|
|
72
|
+
declare const accountFixtures: MockAccountFixtures;
|
|
73
|
+
/**
|
|
74
|
+
* A fetch that answers the account endpoints `/me/wallets`, `/me/cards`, `/me/cards/{card_id}`,
|
|
75
|
+
* `/me/payments` and `/me/payments/{payment_id}` as the API does, from fixtures and in memory.
|
|
76
|
+
* Pass it as `fetch` to createAccount, or call it from a mock API server. A removed card stays
|
|
77
|
+
* removed for this fetch. A scope left out of `scopes` answers 403 `scope_required`. Any other
|
|
78
|
+
* path answers 404.
|
|
79
|
+
*
|
|
80
|
+
* @param fixtures - The account data. Defaults to accountFixtures.
|
|
81
|
+
* @param options - The scopes the shopper granted.
|
|
82
|
+
* @returns A fetch implementation for the account endpoints.
|
|
83
|
+
*/
|
|
84
|
+
declare function mockAccountFetch(fixtures?: MockAccountFixtures, options?: MockAccountOptions): typeof fetch;
|
|
85
|
+
|
|
7
86
|
/** Store and branch menus supplied to the deterministic mock transport. */
|
|
8
87
|
type MockFixtures = {
|
|
9
88
|
store: Store;
|
|
@@ -64,5 +143,5 @@ declare const fixtures: {
|
|
|
64
143
|
};
|
|
65
144
|
};
|
|
66
145
|
|
|
67
|
-
export { createMockZappie, fixtures };
|
|
68
|
-
export type { MockFixtures, MockOptions };
|
|
146
|
+
export { accountFixtures, createMockZappie, fixtures, mockAccountFetch };
|
|
147
|
+
export type { MockAccountFixtures, MockAccountOptions, MockFixtures, MockOptions };
|
package/dist/testing/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import { delay, throwIfAborted } from "../internal/abort.js";
|
|
|
7
7
|
import { multiplyMoney } from "../internal/money-math.js";
|
|
8
8
|
import { money } from "../money.js";
|
|
9
9
|
import { VERSION } from "../index.js";
|
|
10
|
+
import { accountFixtures, mockAccountFetch } from "./account.js";
|
|
10
11
|
function createMockZappie(input, opts = {}) {
|
|
11
12
|
const fixtures2 = structuredClone(input);
|
|
12
13
|
const before = async (method, ctx) => {
|
|
@@ -452,6 +453,8 @@ var fixtures = {
|
|
|
452
453
|
};
|
|
453
454
|
export {
|
|
454
455
|
VERSION,
|
|
456
|
+
accountFixtures,
|
|
455
457
|
createMockZappie,
|
|
456
|
-
fixtures
|
|
458
|
+
fixtures,
|
|
459
|
+
mockAccountFetch
|
|
457
460
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zappie/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Typed, framework-agnostic client for Zappie menus, carts, checkout, auth and events.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -73,6 +73,10 @@
|
|
|
73
73
|
"types": "./dist/customer/react.d.ts",
|
|
74
74
|
"import": "./dist/customer/react.js"
|
|
75
75
|
},
|
|
76
|
+
"./account": {
|
|
77
|
+
"types": "./dist/account/index.d.ts",
|
|
78
|
+
"import": "./dist/account/index.js"
|
|
79
|
+
},
|
|
76
80
|
"./places": {
|
|
77
81
|
"types": "./dist/places/index.d.ts",
|
|
78
82
|
"import": "./dist/places/index.js"
|
|
@@ -148,7 +152,7 @@
|
|
|
148
152
|
"vite": "8.3.5"
|
|
149
153
|
},
|
|
150
154
|
"scripts": {
|
|
151
|
-
"build": "tsup && tsup --config tsup.checkout.config.ts && tsup --config tsup.checkout-defaults.config.ts && tsup --config tsup.customer.config.ts && tsup --config tsup.places.config.ts && tsup --config tsup.url.config.ts && tsup --config tsup.redirect.config.ts && tsup --config tsup.services.config.ts && tsup --config tsup.visits.config.ts && tsup --config tsup.pricing.config.ts && tsup --config tsup.site-config.config.ts && tsup --config tsup.template.config.ts && node ../../scripts/release-packages/build-modules.mjs --no-sources-content --unmapped=studio/index.js --unmapped=testing/index.js --unmapped=vite/index.js",
|
|
155
|
+
"build": "tsup && tsup --config tsup.checkout.config.ts && tsup --config tsup.checkout-defaults.config.ts && tsup --config tsup.customer.config.ts && tsup --config tsup.account.config.ts && tsup --config tsup.places.config.ts && tsup --config tsup.url.config.ts && tsup --config tsup.redirect.config.ts && tsup --config tsup.services.config.ts && tsup --config tsup.visits.config.ts && tsup --config tsup.pricing.config.ts && tsup --config tsup.site-config.config.ts && tsup --config tsup.template.config.ts && node ../../scripts/release-packages/build-modules.mjs --no-sources-content --unmapped=studio/index.js --unmapped=testing/index.js --unmapped=vite/index.js",
|
|
152
156
|
"test": "vitest run --root ../.. packages/sdk/test",
|
|
153
157
|
"size": "node ../../scripts/release-packages/size-sdk.mjs && size-limit"
|
|
154
158
|
}
|