@sdg.la/wishlist-stack-hydrogen 0.14.0 → 0.16.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 +20 -3
- package/dist/index.cjs +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/middleware.cjs +1 -0
- package/dist/middleware.cjs.map +1 -1
- package/dist/middleware.d.cts +1 -1
- package/dist/middleware.d.ts +1 -1
- package/dist/middleware.js +1 -0
- package/dist/middleware.js.map +1 -1
- package/dist/react.d.cts +3 -2
- package/dist/react.d.ts +3 -2
- package/dist/server.cjs +1 -0
- package/dist/server.cjs.map +1 -1
- package/dist/server.d.cts +1 -1
- package/dist/server.d.ts +1 -1
- package/dist/server.js +1 -0
- package/dist/server.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -10,6 +10,12 @@ It also provides:
|
|
|
10
10
|
- **Context helpers** (`getWishlistStackClient`, `getWishlistStack`) to avoid `context.get(...)` boilerplate
|
|
11
11
|
- **React Provider + hooks** for client-side usage (`@sdg.la/wishlist-stack-hydrogen/react`)
|
|
12
12
|
|
|
13
|
+
Headless integrations use the direct API at `https://app.wishliststack.com`.
|
|
14
|
+
From version 0.16.0 this is the default when `baseUrl` is omitted; explicit values
|
|
15
|
+
are preserved. Shopify Online Store themes should normally use the installed
|
|
16
|
+
same-origin app proxy with the [core SDK](../client/), rather than assuming that
|
|
17
|
+
proxy is available on a headless domain.
|
|
18
|
+
|
|
13
19
|
## Install
|
|
14
20
|
|
|
15
21
|
```bash
|
|
@@ -44,21 +50,32 @@ const {nonce, header, NonceProvider} = createContentSecurityPolicy({
|
|
|
44
50
|
checkoutDomain: context.env.PUBLIC_CHECKOUT_DOMAIN,
|
|
45
51
|
storeDomain: context.env.PUBLIC_STORE_DOMAIN,
|
|
46
52
|
},
|
|
47
|
-
connectSrc: ['https://
|
|
53
|
+
connectSrc: ['https://app.wishliststack.com'],
|
|
48
54
|
});
|
|
49
55
|
```
|
|
50
56
|
|
|
51
57
|
Without this, client-side API calls will be silently blocked by the browser's
|
|
52
58
|
Content Security Policy. If you use a custom `baseUrl`, add that domain instead.
|
|
53
59
|
|
|
60
|
+
When upgrading from a version whose default used the compatibility hostname,
|
|
61
|
+
allow the new origin before releasing browser bundles. Keep the old origin in
|
|
62
|
+
`connectSrc` while older bundles are cached, or retain an explicit `baseUrl`
|
|
63
|
+
during the transition. Server-side calls do not use the browser CSP.
|
|
64
|
+
|
|
54
65
|
## API limits and storefront guidance
|
|
55
66
|
|
|
56
67
|
1. Register the storefront origin for CORS if the browser calls the API directly.
|
|
57
68
|
2. Keep CSP `connectSrc` pointed at your API `baseUrl` (see above).
|
|
58
69
|
3. Prefer `wishlistStackClient.lists.addItemsBatched` for large adds and
|
|
59
70
|
`getByIdAllItems` when you need every item under paginated list detail.
|
|
60
|
-
4.
|
|
71
|
+
4. Use `wishlistStackClient.lists.containsVariants` to check up to 100 variant
|
|
72
|
+
IDs without loading and hydrating every list page.
|
|
73
|
+
5. Add responses always include delta fields; older backend compatibility mode
|
|
74
|
+
may include the full list as additional fields.
|
|
75
|
+
6. Re-exported helpers: `clampPageSize`, `isAddItemsDeltaResponse`
|
|
61
76
|
from `@sdg.la/wishlist-stack-hydrogen`.
|
|
77
|
+
7. Prefer explicit `pageSize: 20` and follow pagination metadata when rendering
|
|
78
|
+
wishlists. Existing 25-item pages and the SDK default remain supported.
|
|
62
79
|
|
|
63
80
|
## 1) Server usage (attach to Hydrogen load context)
|
|
64
81
|
|
|
@@ -95,7 +112,7 @@ return hydrogenContext;
|
|
|
95
112
|
| Option | Type | Required | Description |
|
|
96
113
|
|--------|------|----------|-------------|
|
|
97
114
|
| `apiKey` | `string` | Yes | Your merchant API key |
|
|
98
|
-
| `baseUrl` | `string` | No | API base URL (defaults to
|
|
115
|
+
| `baseUrl` | `string` | No | Direct API base URL (defaults to `https://app.wishliststack.com` from 0.16.0) |
|
|
99
116
|
| `getCustomerAccessToken` | `(context: unknown) => Promise<string \| undefined> \| string \| undefined` | No | Override how the customer access token is resolved. If omitted, the library calls `context.customerAccount.getAccessToken()` automatically. |
|
|
100
117
|
|
|
101
118
|
Example with explicit token resolution:
|
package/dist/index.cjs
CHANGED
|
@@ -14,6 +14,7 @@ function createLazyWishlistStackClient(getClient) {
|
|
|
14
14
|
remove: (listId) => getClient().then((c) => c.lists.remove(listId)),
|
|
15
15
|
duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),
|
|
16
16
|
addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),
|
|
17
|
+
containsVariants: (listId, body) => getClient().then((c) => c.lists.containsVariants(listId, body)),
|
|
17
18
|
addItemsBatched: (listId, body, opts) => getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),
|
|
18
19
|
updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),
|
|
19
20
|
removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.ts","../src/middleware.ts","../src/context.ts"],"names":["createWishlistStackClient"],"mappings":"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","file":"index.cjs","sourcesContent":["import { createWishlistStackClient, type WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from \"./types\";\n\nfunction createLazyWishlistStackClient(getClient: () => Promise<WishlistStackClient>): WishlistStackClient {\n return {\n lists: {\n getAll: (query) => getClient().then((c) => c.lists.getAll(query)),\n getById: (listId, query) => getClient().then((c) => c.lists.getById(listId, query)),\n getByIdAllItems: (listId, opts) => getClient().then((c) => c.lists.getByIdAllItems(listId, opts)),\n create: (body) => getClient().then((c) => c.lists.create(body)),\n update: (listId, body) => getClient().then((c) => c.lists.update(listId, body)),\n remove: (listId) => getClient().then((c) => c.lists.remove(listId)),\n duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),\n addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\n addItemsBatched: (listId, body, opts) =>\n getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),\n updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),\n removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),\n reorderItems: (listId, body) => getClient().then((c) => c.lists.reorderItems(listId, body)),\n share: (listId) => getClient().then((c) => c.lists.share(listId)),\n unshare: (listId) => getClient().then((c) => c.lists.unshare(listId)),\n addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body)),\n },\n groups: {\n getAll: (query) => getClient().then((c) => c.groups.getAll(query)),\n getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),\n create: (body) => getClient().then((c) => c.groups.create(body)),\n update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),\n remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),\n duplicate: (groupId) => getClient().then((c) => c.groups.duplicate(groupId)),\n reorder: (body) => getClient().then((c) => c.groups.reorder(body)),\n share: (groupId) => getClient().then((c) => c.groups.share(groupId)),\n unshare: (groupId) => getClient().then((c) => c.groups.unshare(groupId)),\n },\n shared: {\n getSharedList: (listId, query) => getClient().then((c) => c.shared.getSharedList(listId, query)),\n getSharedGroup: (groupId, query) => getClient().then((c) => c.shared.getSharedGroup(groupId, query)),\n },\n };\n}\n\nasync function defaultGetCustomerAccessToken(context: unknown): Promise<string | undefined> {\n const anyCtx = context as any;\n const customerAccount = anyCtx?.customerAccount;\n const fn = customerAccount?.getAccessToken;\n if (typeof fn !== \"function\") return undefined;\n try {\n const token = await fn.call(customerAccount);\n return typeof token === \"string\" ? token : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createWishlistStackServerContext(options: WishlistStackHydrogenOptions) {\n return function attachToContext(context: unknown): { wishlistStack: WishlistStackHydrogenServer; wishlistStackClient: WishlistStackClient } {\n if (!options.apiKey) {\n throw new Error(\"merchant api key is required. Pass it to createWishlistStackServerContext({ apiKey })\");\n }\n\n const getToken = async () => {\n if (options.getCustomerAccessToken) {\n const token = await options.getCustomerAccessToken(context);\n return typeof token === \"string\" ? token : undefined;\n }\n return await defaultGetCustomerAccessToken(context);\n };\n\n let cachedClient: WishlistStackClient | undefined;\n let cachedToken: string | undefined;\n\n const server: WishlistStackHydrogenServer = {\n async getCustomerAccessToken() {\n return await getToken();\n },\n async getClient() {\n const token = await getToken();\n // Cache by token value so calls within a single request reuse the client.\n if (cachedClient && cachedToken === token) return cachedClient;\n cachedToken = token;\n cachedClient = createWishlistStackClient({\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n });\n return cachedClient;\n },\n async bootstrapClientConfig(opts) {\n const expose = opts?.exposeCustomerAccessToken ?? false;\n const token = expose ? await getToken() : undefined;\n return {\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n };\n },\n };\n\n const wishlistStackClient = createLazyWishlistStackClient(server.getClient);\n\n const anyCtx = context as any;\n if (anyCtx && typeof anyCtx.set === \"function\") {\n // Context map style (some React Router middleware implementations).\n anyCtx.set(\"wishlistStack\", server);\n anyCtx.set(\"wishlistStackClient\", wishlistStackClient);\n } else if (anyCtx && typeof anyCtx === \"object\") {\n // Plain object style (Hydrogen load context is an object).\n anyCtx.wishlistStack = server;\n anyCtx.wishlistStackClient = wishlistStackClient;\n }\n\n return { wishlistStack: server, wishlistStackClient };\n };\n}\n\n","import type { WishlistStackHydrogenOptions } from \"./types\";\nimport { createWishlistStackServerContext } from \"./server\";\n\ntype MiddlewareArgs = {\n request: Request;\n context: any;\n};\n\ntype MiddlewareNext = () => Promise<Response> | Response;\n\n/**\n * React Router middleware helper (Hydrogen react-router, middleware-enabled).\n *\n * We intentionally avoid importing react-router types here; we only require the\n * common shape: an object `context` that we can mutate (or that has `set()`).\n */\nexport function createWishlistStackMiddleware(options: WishlistStackHydrogenOptions) {\n const attach = createWishlistStackServerContext(options);\n return async function wishlistStackMiddleware(args: MiddlewareArgs, next: MiddlewareNext) {\n const ctxObj = args.context ?? {};\n // `attach` registers `wishlistStack` and `wishlistStackClient` onto the context (supports `set()` and mutation).\n attach(ctxObj);\n\n return await next();\n };\n}\n\n","import type { WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenServer } from \"./types\";\n\ntype ContextMapLike = {\n get?: (key: string) => unknown;\n wishlistStack?: WishlistStackHydrogenServer;\n wishlistStackClient?: WishlistStackClient;\n};\n\nasync function maybeAwait<T>(value: T | Promise<T>): Promise<T> {\n return value instanceof Promise ? await value : value;\n}\n\n/**\n * Retrieve `wishlistStackClient` from a Hydrogen/React Router loader context.\n *\n * Supports both styles:\n * - plain object: `context.wishlistStackClient`\n * - context map: `context.get('wishlistStackClient')`\n */\nexport async function getWishlistStackClient(context: unknown): Promise<WishlistStackClient> {\n const ctx = context as ContextMapLike | null | undefined;\n if (!ctx) throw new Error(\"Missing loader context (expected context.wishlistStackClient).\");\n\n if (ctx.wishlistStackClient) return ctx.wishlistStackClient;\n if (typeof ctx.get === \"function\") {\n const val = await maybeAwait(ctx.get(\"wishlistStackClient\") as any);\n if (val) return val as WishlistStackClient;\n }\n\n throw new Error(\n \"Wishlist Stack client not found on loader context. Ensure you called createWishlistStackServerContext(...)(context) in your server/app load context.\",\n );\n}\n\n/**\n * Retrieve the server helper (`wishlistStack`) from a Hydrogen/React Router loader context.\n * (Useful for bootstrap/token helpers; most route code should just use `wishlistStackClient`.)\n */\nexport async function getWishlistStack(context: unknown): Promise<WishlistStackHydrogenServer> {\n const ctx = context as ContextMapLike | null | undefined;\n if (!ctx) throw new Error(\"Missing loader context (expected context.wishlistStack).\");\n\n if (ctx.wishlistStack) return ctx.wishlistStack;\n if (typeof ctx.get === \"function\") {\n const val = await maybeAwait(ctx.get(\"wishlistStack\") as any);\n if (val) return val as WishlistStackHydrogenServer;\n }\n\n throw new Error(\n \"Wishlist Stack helper not found on loader context. Ensure you called createWishlistStackServerContext(...)(context) in your server/app load context.\",\n );\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server.ts","../src/middleware.ts","../src/context.ts"],"names":["createWishlistStackClient"],"mappings":"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","file":"index.cjs","sourcesContent":["import { createWishlistStackClient, type WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from \"./types\";\n\nfunction createLazyWishlistStackClient(getClient: () => Promise<WishlistStackClient>): WishlistStackClient {\n return {\n lists: {\n getAll: (query) => getClient().then((c) => c.lists.getAll(query)),\n getById: (listId, query) => getClient().then((c) => c.lists.getById(listId, query)),\n getByIdAllItems: (listId, opts) => getClient().then((c) => c.lists.getByIdAllItems(listId, opts)),\n create: (body) => getClient().then((c) => c.lists.create(body)),\n update: (listId, body) => getClient().then((c) => c.lists.update(listId, body)),\n remove: (listId) => getClient().then((c) => c.lists.remove(listId)),\n duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),\n addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\n containsVariants: (listId, body) =>\n getClient().then((c) => c.lists.containsVariants(listId, body)),\n addItemsBatched: (listId, body, opts) =>\n getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),\n updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),\n removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),\n reorderItems: (listId, body) => getClient().then((c) => c.lists.reorderItems(listId, body)),\n share: (listId) => getClient().then((c) => c.lists.share(listId)),\n unshare: (listId) => getClient().then((c) => c.lists.unshare(listId)),\n addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body)),\n },\n groups: {\n getAll: (query) => getClient().then((c) => c.groups.getAll(query)),\n getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),\n create: (body) => getClient().then((c) => c.groups.create(body)),\n update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),\n remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),\n duplicate: (groupId) => getClient().then((c) => c.groups.duplicate(groupId)),\n reorder: (body) => getClient().then((c) => c.groups.reorder(body)),\n share: (groupId) => getClient().then((c) => c.groups.share(groupId)),\n unshare: (groupId) => getClient().then((c) => c.groups.unshare(groupId)),\n },\n shared: {\n getSharedList: (listId, query) => getClient().then((c) => c.shared.getSharedList(listId, query)),\n getSharedGroup: (groupId, query) => getClient().then((c) => c.shared.getSharedGroup(groupId, query)),\n },\n };\n}\n\nasync function defaultGetCustomerAccessToken(context: unknown): Promise<string | undefined> {\n const anyCtx = context as any;\n const customerAccount = anyCtx?.customerAccount;\n const fn = customerAccount?.getAccessToken;\n if (typeof fn !== \"function\") return undefined;\n try {\n const token = await fn.call(customerAccount);\n return typeof token === \"string\" ? token : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createWishlistStackServerContext(options: WishlistStackHydrogenOptions) {\n return function attachToContext(context: unknown): { wishlistStack: WishlistStackHydrogenServer; wishlistStackClient: WishlistStackClient } {\n if (!options.apiKey) {\n throw new Error(\"merchant api key is required. Pass it to createWishlistStackServerContext({ apiKey })\");\n }\n\n const getToken = async () => {\n if (options.getCustomerAccessToken) {\n const token = await options.getCustomerAccessToken(context);\n return typeof token === \"string\" ? token : undefined;\n }\n return await defaultGetCustomerAccessToken(context);\n };\n\n let cachedClient: WishlistStackClient | undefined;\n let cachedToken: string | undefined;\n\n const server: WishlistStackHydrogenServer = {\n async getCustomerAccessToken() {\n return await getToken();\n },\n async getClient() {\n const token = await getToken();\n // Cache by token value so calls within a single request reuse the client.\n if (cachedClient && cachedToken === token) return cachedClient;\n cachedToken = token;\n cachedClient = createWishlistStackClient({\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n });\n return cachedClient;\n },\n async bootstrapClientConfig(opts) {\n const expose = opts?.exposeCustomerAccessToken ?? false;\n const token = expose ? await getToken() : undefined;\n return {\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n };\n },\n };\n\n const wishlistStackClient = createLazyWishlistStackClient(server.getClient);\n\n const anyCtx = context as any;\n if (anyCtx && typeof anyCtx.set === \"function\") {\n // Context map style (some React Router middleware implementations).\n anyCtx.set(\"wishlistStack\", server);\n anyCtx.set(\"wishlistStackClient\", wishlistStackClient);\n } else if (anyCtx && typeof anyCtx === \"object\") {\n // Plain object style (Hydrogen load context is an object).\n anyCtx.wishlistStack = server;\n anyCtx.wishlistStackClient = wishlistStackClient;\n }\n\n return { wishlistStack: server, wishlistStackClient };\n };\n}\n","import type { WishlistStackHydrogenOptions } from \"./types\";\nimport { createWishlistStackServerContext } from \"./server\";\n\ntype MiddlewareArgs = {\n request: Request;\n context: any;\n};\n\ntype MiddlewareNext = () => Promise<Response> | Response;\n\n/**\n * React Router middleware helper (Hydrogen react-router, middleware-enabled).\n *\n * We intentionally avoid importing react-router types here; we only require the\n * common shape: an object `context` that we can mutate (or that has `set()`).\n */\nexport function createWishlistStackMiddleware(options: WishlistStackHydrogenOptions) {\n const attach = createWishlistStackServerContext(options);\n return async function wishlistStackMiddleware(args: MiddlewareArgs, next: MiddlewareNext) {\n const ctxObj = args.context ?? {};\n // `attach` registers `wishlistStack` and `wishlistStackClient` onto the context (supports `set()` and mutation).\n attach(ctxObj);\n\n return await next();\n };\n}\n\n","import type { WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenServer } from \"./types\";\n\ntype ContextMapLike = {\n get?: (key: string) => unknown;\n wishlistStack?: WishlistStackHydrogenServer;\n wishlistStackClient?: WishlistStackClient;\n};\n\nasync function maybeAwait<T>(value: T | Promise<T>): Promise<T> {\n return value instanceof Promise ? await value : value;\n}\n\n/**\n * Retrieve `wishlistStackClient` from a Hydrogen/React Router loader context.\n *\n * Supports both styles:\n * - plain object: `context.wishlistStackClient`\n * - context map: `context.get('wishlistStackClient')`\n */\nexport async function getWishlistStackClient(context: unknown): Promise<WishlistStackClient> {\n const ctx = context as ContextMapLike | null | undefined;\n if (!ctx) throw new Error(\"Missing loader context (expected context.wishlistStackClient).\");\n\n if (ctx.wishlistStackClient) return ctx.wishlistStackClient;\n if (typeof ctx.get === \"function\") {\n const val = await maybeAwait(ctx.get(\"wishlistStackClient\") as any);\n if (val) return val as WishlistStackClient;\n }\n\n throw new Error(\n \"Wishlist Stack client not found on loader context. Ensure you called createWishlistStackServerContext(...)(context) in your server/app load context.\",\n );\n}\n\n/**\n * Retrieve the server helper (`wishlistStack`) from a Hydrogen/React Router loader context.\n * (Useful for bootstrap/token helpers; most route code should just use `wishlistStackClient`.)\n */\nexport async function getWishlistStack(context: unknown): Promise<WishlistStackHydrogenServer> {\n const ctx = context as ContextMapLike | null | undefined;\n if (!ctx) throw new Error(\"Missing loader context (expected context.wishlistStack).\");\n\n if (ctx.wishlistStack) return ctx.wishlistStack;\n if (typeof ctx.get === \"function\") {\n const val = await maybeAwait(ctx.get(\"wishlistStack\") as any);\n if (val) return val as WishlistStackHydrogenServer;\n }\n\n throw new Error(\n \"Wishlist Stack helper not found on loader context. Ensure you called createWishlistStackServerContext(...)(context) in your server/app load context.\",\n );\n}\n\n"]}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,7 @@ function createLazyWishlistStackClient(getClient) {
|
|
|
13
13
|
remove: (listId) => getClient().then((c) => c.lists.remove(listId)),
|
|
14
14
|
duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),
|
|
15
15
|
addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),
|
|
16
|
+
containsVariants: (listId, body) => getClient().then((c) => c.lists.containsVariants(listId, body)),
|
|
16
17
|
addItemsBatched: (listId, body, opts) => getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),
|
|
17
18
|
updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),
|
|
18
19
|
removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.ts","../src/middleware.ts","../src/context.ts"],"names":[],"mappings":";;;;AAGA,SAAS,8BAA8B,SAAA,EAAoE;AACzG,EAAA,OAAO;AAAA,IACL,KAAA,EAAO;AAAA,MACL,MAAA,EAAQ,CAAC,KAAA,KAAU,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,MAChE,OAAA,EAAS,CAAC,MAAA,EAAQ,KAAA,KAAU,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,OAAA,CAAQ,MAAA,EAAQ,KAAK,CAAC,CAAA;AAAA,MAClF,eAAA,EAAiB,CAAC,MAAA,EAAQ,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,eAAA,CAAgB,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MAChG,MAAA,EAAQ,CAAC,IAAA,KAAS,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA,MAC9D,MAAA,EAAQ,CAAC,MAAA,EAAQ,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,MAAA,CAAO,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MAC9E,MAAA,EAAQ,CAAC,MAAA,KAAW,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,MAAA,CAAO,MAAM,CAAC,CAAA;AAAA,MAClE,SAAA,EAAW,CAAC,MAAA,EAAQ,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,SAAA,CAAU,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MACpF,QAAA,EAAU,CAAC,MAAA,EAAQ,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,QAAA,CAAS,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MAClF,iBAAiB,CAAC,MAAA,EAAQ,IAAA,EAAM,IAAA,KAC9B,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,EAAE,KAAA,CAAM,eAAA,CAAgB,MAAA,EAAQ,IAAA,EAAM,IAAI,CAAC,CAAA;AAAA,MACrE,YAAY,CAAC,MAAA,EAAQ,MAAA,EAAQ,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,EAAE,KAAA,CAAM,UAAA,CAAW,MAAA,EAAQ,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MACtG,UAAA,EAAY,CAAC,MAAA,EAAQ,MAAA,KAAW,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,UAAA,CAAW,MAAA,EAAQ,MAAM,CAAC,CAAA;AAAA,MAC1F,YAAA,EAAc,CAAC,MAAA,EAAQ,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,YAAA,CAAa,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MAC1F,KAAA,EAAO,CAAC,MAAA,KAAW,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,KAAA,CAAM,MAAM,CAAC,CAAA;AAAA,MAChE,OAAA,EAAS,CAAC,MAAA,KAAW,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAC,CAAA;AAAA,MACpE,cAAA,EAAgB,CAAC,EAAA,EAAI,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,cAAA,CAAe,EAAA,EAAI,IAAI,CAAC;AAAA,KACxF;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,CAAC,KAAA,KAAU,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,MACjE,OAAA,EAAS,CAAC,OAAA,EAAS,KAAA,KAAU,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,OAAA,CAAQ,OAAA,EAAS,KAAK,CAAC,CAAA;AAAA,MACrF,MAAA,EAAQ,CAAC,IAAA,KAAS,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA,MAC/D,MAAA,EAAQ,CAAC,OAAA,EAAS,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,MAAA,CAAO,OAAA,EAAS,IAAI,CAAC,CAAA;AAAA,MACjF,MAAA,EAAQ,CAAC,OAAA,KAAY,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,MACrE,SAAA,EAAW,CAAC,OAAA,KAAY,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,MAC3E,OAAA,EAAS,CAAC,IAAA,KAAS,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAC,CAAA;AAAA,MACjE,KAAA,EAAO,CAAC,OAAA,KAAY,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,KAAA,CAAM,OAAO,CAAC,CAAA;AAAA,MACnE,OAAA,EAAS,CAAC,OAAA,KAAY,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAC;AAAA,KACzE;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,aAAA,EAAe,CAAC,MAAA,EAAQ,KAAA,KAAU,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,aAAA,CAAc,MAAA,EAAQ,KAAK,CAAC,CAAA;AAAA,MAC/F,cAAA,EAAgB,CAAC,OAAA,EAAS,KAAA,KAAU,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,cAAA,CAAe,OAAA,EAAS,KAAK,CAAC;AAAA;AACrG,GACF;AACF;AAEA,eAAe,8BAA8B,OAAA,EAA+C;AAC1F,EAAA,MAAM,MAAA,GAAS,OAAA;AACf,EAAA,MAAM,kBAAkB,MAAA,EAAQ,eAAA;AAChC,EAAA,MAAM,KAAK,eAAA,EAAiB,cAAA;AAC5B,EAAA,IAAI,OAAO,EAAA,KAAO,UAAA,EAAY,OAAO,MAAA;AACrC,EAAA,IAAI;AACF,IAAA,MAAM,KAAA,GAAQ,MAAM,EAAA,CAAG,IAAA,CAAK,eAAe,CAAA;AAC3C,IAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,KAAA,CAAA;AAAA,EAC7C,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAEO,SAAS,iCAAiC,OAAA,EAAuC;AACtF,EAAA,OAAO,SAAS,gBAAgB,OAAA,EAA4G;AAC1I,IAAA,IAAI,CAAC,QAAQ,MAAA,EAAQ;AACnB,MAAA,MAAM,IAAI,MAAM,uFAAuF,CAAA;AAAA,IACzG;AAEA,IAAA,MAAM,WAAW,YAAY;AAC3B,MAAA,IAAI,QAAQ,sBAAA,EAAwB;AAClC,QAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,CAAQ,sBAAA,CAAuB,OAAO,CAAA;AAC1D,QAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,MAAA;AAAA,MAC7C;AACA,MAAA,OAAO,MAAM,8BAA8B,OAAO,CAAA;AAAA,IACpD,CAAA;AAEA,IAAA,IAAI,YAAA;AACJ,IAAA,IAAI,WAAA;AAEJ,IAAA,MAAM,MAAA,GAAsC;AAAA,MAC1C,MAAM,sBAAA,GAAyB;AAC7B,QAAA,OAAO,MAAM,QAAA,EAAS;AAAA,MACxB,CAAA;AAAA,MACA,MAAM,SAAA,GAAY;AAChB,QAAA,MAAM,KAAA,GAAQ,MAAM,QAAA,EAAS;AAE7B,QAAA,IAAI,YAAA,IAAgB,WAAA,KAAgB,KAAA,EAAO,OAAO,YAAA;AAClD,QAAA,WAAA,GAAc,KAAA;AACd,QAAA,YAAA,GAAe,yBAAA,CAA0B;AAAA,UACvC,QAAQ,OAAA,CAAQ,MAAA;AAAA,UAChB,SAAS,OAAA,CAAQ,OAAA;AAAA,UACjB,mBAAA,EAAqB;AAAA,SACtB,CAAA;AACD,QAAA,OAAO,YAAA;AAAA,MACT,CAAA;AAAA,MACA,MAAM,sBAAsB,IAAA,EAAM;AAChC,QAAA,MAAM,MAAA,GAAS,MAAM,yBAAA,IAA6B,KAAA;AAClD,QAAA,MAAM,KAAA,GAAQ,MAAA,GAAS,MAAM,QAAA,EAAS,GAAI,MAAA;AAC1C,QAAA,OAAO;AAAA,UACL,QAAQ,OAAA,CAAQ,MAAA;AAAA,UAChB,SAAS,OAAA,CAAQ,OAAA;AAAA,UACjB,mBAAA,EAAqB;AAAA,SACvB;AAAA,MACF;AAAA,KACF;AAEA,IAAA,MAAM,mBAAA,GAAsB,6BAAA,CAA8B,MAAA,CAAO,SAAS,CAAA;AAE1E,IAAA,MAAM,MAAA,GAAS,OAAA;AACf,IAAA,IAAI,MAAA,IAAU,OAAO,MAAA,CAAO,GAAA,KAAQ,UAAA,EAAY;AAE9C,MAAA,MAAA,CAAO,GAAA,CAAI,iBAAiB,MAAM,CAAA;AAClC,MAAA,MAAA,CAAO,GAAA,CAAI,uBAAuB,mBAAmB,CAAA;AAAA,IACvD,CAAA,MAAA,IAAW,MAAA,IAAU,OAAO,MAAA,KAAW,QAAA,EAAU;AAE/C,MAAA,MAAA,CAAO,aAAA,GAAgB,MAAA;AACvB,MAAA,MAAA,CAAO,mBAAA,GAAsB,mBAAA;AAAA,IAC/B;AAEA,IAAA,OAAO,EAAE,aAAA,EAAe,MAAA,EAAQ,mBAAA,EAAoB;AAAA,EACtD,CAAA;AACF;;;ACjGO,SAAS,8BAA8B,OAAA,EAAuC;AACnF,EAAA,MAAM,MAAA,GAAS,iCAAiC,OAAO,CAAA;AACvD,EAAA,OAAO,eAAe,uBAAA,CAAwB,IAAA,EAAsB,IAAA,EAAsB;AACxF,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,OAAA,IAAW,EAAC;AAEhC,IAAA,MAAA,CAAO,MAAM,CAAA;AAEb,IAAA,OAAO,MAAM,IAAA,EAAK;AAAA,EACpB,CAAA;AACF;;;AChBA,eAAe,WAAc,KAAA,EAAmC;AAC9D,EAAA,OAAO,KAAA,YAAiB,OAAA,GAAU,MAAM,KAAA,GAAQ,KAAA;AAClD;AASA,eAAsB,uBAAuB,OAAA,EAAgD;AAC3F,EAAA,MAAM,GAAA,GAAM,OAAA;AACZ,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,gEAAgE,CAAA;AAE1F,EAAA,IAAI,GAAA,CAAI,mBAAA,EAAqB,OAAO,GAAA,CAAI,mBAAA;AACxC,EAAA,IAAI,OAAO,GAAA,CAAI,GAAA,KAAQ,UAAA,EAAY;AACjC,IAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAA,CAAI,GAAA,CAAI,qBAAqB,CAAQ,CAAA;AAClE,IAAA,IAAI,KAAK,OAAO,GAAA;AAAA,EAClB;AAEA,EAAA,MAAM,IAAI,KAAA;AAAA,IACR;AAAA,GACF;AACF;AAMA,eAAsB,iBAAiB,OAAA,EAAwD;AAC7F,EAAA,MAAM,GAAA,GAAM,OAAA;AACZ,EAAA,IAAI,CAAC,GAAA,EAAK,MAAM,IAAI,MAAM,0DAA0D,CAAA;AAEpF,EAAA,IAAI,GAAA,CAAI,aAAA,EAAe,OAAO,GAAA,CAAI,aAAA;AAClC,EAAA,IAAI,OAAO,GAAA,CAAI,GAAA,KAAQ,UAAA,EAAY;AACjC,IAAA,MAAM,MAAM,MAAM,UAAA,CAAW,GAAA,CAAI,GAAA,CAAI,eAAe,CAAQ,CAAA;AAC5D,IAAA,IAAI,KAAK,OAAO,GAAA;AAAA,EAClB;AAEA,EAAA,MAAM,IAAI,KAAA;AAAA,IACR;AAAA,GACF;AACF","file":"index.js","sourcesContent":["import { createWishlistStackClient, type WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from \"./types\";\n\nfunction createLazyWishlistStackClient(getClient: () => Promise<WishlistStackClient>): WishlistStackClient {\n return {\n lists: {\n getAll: (query) => getClient().then((c) => c.lists.getAll(query)),\n getById: (listId, query) => getClient().then((c) => c.lists.getById(listId, query)),\n getByIdAllItems: (listId, opts) => getClient().then((c) => c.lists.getByIdAllItems(listId, opts)),\n create: (body) => getClient().then((c) => c.lists.create(body)),\n update: (listId, body) => getClient().then((c) => c.lists.update(listId, body)),\n remove: (listId) => getClient().then((c) => c.lists.remove(listId)),\n duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),\n addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\n addItemsBatched: (listId, body, opts) =>\n getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),\n updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),\n removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),\n reorderItems: (listId, body) => getClient().then((c) => c.lists.reorderItems(listId, body)),\n share: (listId) => getClient().then((c) => c.lists.share(listId)),\n unshare: (listId) => getClient().then((c) => c.lists.unshare(listId)),\n addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body)),\n },\n groups: {\n getAll: (query) => getClient().then((c) => c.groups.getAll(query)),\n getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),\n create: (body) => getClient().then((c) => c.groups.create(body)),\n update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),\n remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),\n duplicate: (groupId) => getClient().then((c) => c.groups.duplicate(groupId)),\n reorder: (body) => getClient().then((c) => c.groups.reorder(body)),\n share: (groupId) => getClient().then((c) => c.groups.share(groupId)),\n unshare: (groupId) => getClient().then((c) => c.groups.unshare(groupId)),\n },\n shared: {\n getSharedList: (listId, query) => getClient().then((c) => c.shared.getSharedList(listId, query)),\n getSharedGroup: (groupId, query) => getClient().then((c) => c.shared.getSharedGroup(groupId, query)),\n },\n };\n}\n\nasync function defaultGetCustomerAccessToken(context: unknown): Promise<string | undefined> {\n const anyCtx = context as any;\n const customerAccount = anyCtx?.customerAccount;\n const fn = customerAccount?.getAccessToken;\n if (typeof fn !== \"function\") return undefined;\n try {\n const token = await fn.call(customerAccount);\n return typeof token === \"string\" ? token : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createWishlistStackServerContext(options: WishlistStackHydrogenOptions) {\n return function attachToContext(context: unknown): { wishlistStack: WishlistStackHydrogenServer; wishlistStackClient: WishlistStackClient } {\n if (!options.apiKey) {\n throw new Error(\"merchant api key is required. Pass it to createWishlistStackServerContext({ apiKey })\");\n }\n\n const getToken = async () => {\n if (options.getCustomerAccessToken) {\n const token = await options.getCustomerAccessToken(context);\n return typeof token === \"string\" ? token : undefined;\n }\n return await defaultGetCustomerAccessToken(context);\n };\n\n let cachedClient: WishlistStackClient | undefined;\n let cachedToken: string | undefined;\n\n const server: WishlistStackHydrogenServer = {\n async getCustomerAccessToken() {\n return await getToken();\n },\n async getClient() {\n const token = await getToken();\n // Cache by token value so calls within a single request reuse the client.\n if (cachedClient && cachedToken === token) return cachedClient;\n cachedToken = token;\n cachedClient = createWishlistStackClient({\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n });\n return cachedClient;\n },\n async bootstrapClientConfig(opts) {\n const expose = opts?.exposeCustomerAccessToken ?? false;\n const token = expose ? await getToken() : undefined;\n return {\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n };\n },\n };\n\n const wishlistStackClient = createLazyWishlistStackClient(server.getClient);\n\n const anyCtx = context as any;\n if (anyCtx && typeof anyCtx.set === \"function\") {\n // Context map style (some React Router middleware implementations).\n anyCtx.set(\"wishlistStack\", server);\n anyCtx.set(\"wishlistStackClient\", wishlistStackClient);\n } else if (anyCtx && typeof anyCtx === \"object\") {\n // Plain object style (Hydrogen load context is an object).\n anyCtx.wishlistStack = server;\n anyCtx.wishlistStackClient = wishlistStackClient;\n }\n\n return { wishlistStack: server, wishlistStackClient };\n };\n}\n\n","import type { WishlistStackHydrogenOptions } from \"./types\";\nimport { createWishlistStackServerContext } from \"./server\";\n\ntype MiddlewareArgs = {\n request: Request;\n context: any;\n};\n\ntype MiddlewareNext = () => Promise<Response> | Response;\n\n/**\n * React Router middleware helper (Hydrogen react-router, middleware-enabled).\n *\n * We intentionally avoid importing react-router types here; we only require the\n * common shape: an object `context` that we can mutate (or that has `set()`).\n */\nexport function createWishlistStackMiddleware(options: WishlistStackHydrogenOptions) {\n const attach = createWishlistStackServerContext(options);\n return async function wishlistStackMiddleware(args: MiddlewareArgs, next: MiddlewareNext) {\n const ctxObj = args.context ?? {};\n // `attach` registers `wishlistStack` and `wishlistStackClient` onto the context (supports `set()` and mutation).\n attach(ctxObj);\n\n return await next();\n };\n}\n\n","import type { WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenServer } from \"./types\";\n\ntype ContextMapLike = {\n get?: (key: string) => unknown;\n wishlistStack?: WishlistStackHydrogenServer;\n wishlistStackClient?: WishlistStackClient;\n};\n\nasync function maybeAwait<T>(value: T | Promise<T>): Promise<T> {\n return value instanceof Promise ? await value : value;\n}\n\n/**\n * Retrieve `wishlistStackClient` from a Hydrogen/React Router loader context.\n *\n * Supports both styles:\n * - plain object: `context.wishlistStackClient`\n * - context map: `context.get('wishlistStackClient')`\n */\nexport async function getWishlistStackClient(context: unknown): Promise<WishlistStackClient> {\n const ctx = context as ContextMapLike | null | undefined;\n if (!ctx) throw new Error(\"Missing loader context (expected context.wishlistStackClient).\");\n\n if (ctx.wishlistStackClient) return ctx.wishlistStackClient;\n if (typeof ctx.get === \"function\") {\n const val = await maybeAwait(ctx.get(\"wishlistStackClient\") as any);\n if (val) return val as WishlistStackClient;\n }\n\n throw new Error(\n \"Wishlist Stack client not found on loader context. Ensure you called createWishlistStackServerContext(...)(context) in your server/app load context.\",\n );\n}\n\n/**\n * Retrieve the server helper (`wishlistStack`) from a Hydrogen/React Router loader context.\n * (Useful for bootstrap/token helpers; most route code should just use `wishlistStackClient`.)\n */\nexport async function getWishlistStack(context: unknown): Promise<WishlistStackHydrogenServer> {\n const ctx = context as ContextMapLike | null | undefined;\n if (!ctx) throw new Error(\"Missing loader context (expected context.wishlistStack).\");\n\n if (ctx.wishlistStack) return ctx.wishlistStack;\n if (typeof ctx.get === \"function\") {\n const val = await maybeAwait(ctx.get(\"wishlistStack\") as any);\n if (val) return val as WishlistStackHydrogenServer;\n }\n\n throw new Error(\n \"Wishlist Stack helper not found on loader context. Ensure you called createWishlistStackServerContext(...)(context) in your server/app load context.\",\n );\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server.ts","../src/middleware.ts","../src/context.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { createWishlistStackClient, type WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from \"./types\";\n\nfunction createLazyWishlistStackClient(getClient: () => Promise<WishlistStackClient>): WishlistStackClient {\n return {\n lists: {\n getAll: (query) => getClient().then((c) => c.lists.getAll(query)),\n getById: (listId, query) => getClient().then((c) => c.lists.getById(listId, query)),\n getByIdAllItems: (listId, opts) => getClient().then((c) => c.lists.getByIdAllItems(listId, opts)),\n create: (body) => getClient().then((c) => c.lists.create(body)),\n update: (listId, body) => getClient().then((c) => c.lists.update(listId, body)),\n remove: (listId) => getClient().then((c) => c.lists.remove(listId)),\n duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),\n addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\n containsVariants: (listId, body) =>\n getClient().then((c) => c.lists.containsVariants(listId, body)),\n addItemsBatched: (listId, body, opts) =>\n getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),\n updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),\n removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),\n reorderItems: (listId, body) => getClient().then((c) => c.lists.reorderItems(listId, body)),\n share: (listId) => getClient().then((c) => c.lists.share(listId)),\n unshare: (listId) => getClient().then((c) => c.lists.unshare(listId)),\n addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body)),\n },\n groups: {\n getAll: (query) => getClient().then((c) => c.groups.getAll(query)),\n getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),\n create: (body) => getClient().then((c) => c.groups.create(body)),\n update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),\n remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),\n duplicate: (groupId) => getClient().then((c) => c.groups.duplicate(groupId)),\n reorder: (body) => getClient().then((c) => c.groups.reorder(body)),\n share: (groupId) => getClient().then((c) => c.groups.share(groupId)),\n unshare: (groupId) => getClient().then((c) => c.groups.unshare(groupId)),\n },\n shared: {\n getSharedList: (listId, query) => getClient().then((c) => c.shared.getSharedList(listId, query)),\n getSharedGroup: (groupId, query) => getClient().then((c) => c.shared.getSharedGroup(groupId, query)),\n },\n };\n}\n\nasync function defaultGetCustomerAccessToken(context: unknown): Promise<string | undefined> {\n const anyCtx = context as any;\n const customerAccount = anyCtx?.customerAccount;\n const fn = customerAccount?.getAccessToken;\n if (typeof fn !== \"function\") return undefined;\n try {\n const token = await fn.call(customerAccount);\n return typeof token === \"string\" ? token : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createWishlistStackServerContext(options: WishlistStackHydrogenOptions) {\n return function attachToContext(context: unknown): { wishlistStack: WishlistStackHydrogenServer; wishlistStackClient: WishlistStackClient } {\n if (!options.apiKey) {\n throw new Error(\"merchant api key is required. Pass it to createWishlistStackServerContext({ apiKey })\");\n }\n\n const getToken = async () => {\n if (options.getCustomerAccessToken) {\n const token = await options.getCustomerAccessToken(context);\n return typeof token === \"string\" ? token : undefined;\n }\n return await defaultGetCustomerAccessToken(context);\n };\n\n let cachedClient: WishlistStackClient | undefined;\n let cachedToken: string | undefined;\n\n const server: WishlistStackHydrogenServer = {\n async getCustomerAccessToken() {\n return await getToken();\n },\n async getClient() {\n const token = await getToken();\n // Cache by token value so calls within a single request reuse the client.\n if (cachedClient && cachedToken === token) return cachedClient;\n cachedToken = token;\n cachedClient = createWishlistStackClient({\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n });\n return cachedClient;\n },\n async bootstrapClientConfig(opts) {\n const expose = opts?.exposeCustomerAccessToken ?? false;\n const token = expose ? await getToken() : undefined;\n return {\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n };\n },\n };\n\n const wishlistStackClient = createLazyWishlistStackClient(server.getClient);\n\n const anyCtx = context as any;\n if (anyCtx && typeof anyCtx.set === \"function\") {\n // Context map style (some React Router middleware implementations).\n anyCtx.set(\"wishlistStack\", server);\n anyCtx.set(\"wishlistStackClient\", wishlistStackClient);\n } else if (anyCtx && typeof anyCtx === \"object\") {\n // Plain object style (Hydrogen load context is an object).\n anyCtx.wishlistStack = server;\n anyCtx.wishlistStackClient = wishlistStackClient;\n }\n\n return { wishlistStack: server, wishlistStackClient };\n };\n}\n","import type { WishlistStackHydrogenOptions } from \"./types\";\nimport { createWishlistStackServerContext } from \"./server\";\n\ntype MiddlewareArgs = {\n request: Request;\n context: any;\n};\n\ntype MiddlewareNext = () => Promise<Response> | Response;\n\n/**\n * React Router middleware helper (Hydrogen react-router, middleware-enabled).\n *\n * We intentionally avoid importing react-router types here; we only require the\n * common shape: an object `context` that we can mutate (or that has `set()`).\n */\nexport function createWishlistStackMiddleware(options: WishlistStackHydrogenOptions) {\n const attach = createWishlistStackServerContext(options);\n return async function wishlistStackMiddleware(args: MiddlewareArgs, next: MiddlewareNext) {\n const ctxObj = args.context ?? {};\n // `attach` registers `wishlistStack` and `wishlistStackClient` onto the context (supports `set()` and mutation).\n attach(ctxObj);\n\n return await next();\n };\n}\n\n","import type { WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenServer } from \"./types\";\n\ntype ContextMapLike = {\n get?: (key: string) => unknown;\n wishlistStack?: WishlistStackHydrogenServer;\n wishlistStackClient?: WishlistStackClient;\n};\n\nasync function maybeAwait<T>(value: T | Promise<T>): Promise<T> {\n return value instanceof Promise ? await value : value;\n}\n\n/**\n * Retrieve `wishlistStackClient` from a Hydrogen/React Router loader context.\n *\n * Supports both styles:\n * - plain object: `context.wishlistStackClient`\n * - context map: `context.get('wishlistStackClient')`\n */\nexport async function getWishlistStackClient(context: unknown): Promise<WishlistStackClient> {\n const ctx = context as ContextMapLike | null | undefined;\n if (!ctx) throw new Error(\"Missing loader context (expected context.wishlistStackClient).\");\n\n if (ctx.wishlistStackClient) return ctx.wishlistStackClient;\n if (typeof ctx.get === \"function\") {\n const val = await maybeAwait(ctx.get(\"wishlistStackClient\") as any);\n if (val) return val as WishlistStackClient;\n }\n\n throw new Error(\n \"Wishlist Stack client not found on loader context. Ensure you called createWishlistStackServerContext(...)(context) in your server/app load context.\",\n );\n}\n\n/**\n * Retrieve the server helper (`wishlistStack`) from a Hydrogen/React Router loader context.\n * (Useful for bootstrap/token helpers; most route code should just use `wishlistStackClient`.)\n */\nexport async function getWishlistStack(context: unknown): Promise<WishlistStackHydrogenServer> {\n const ctx = context as ContextMapLike | null | undefined;\n if (!ctx) throw new Error(\"Missing loader context (expected context.wishlistStack).\");\n\n if (ctx.wishlistStack) return ctx.wishlistStack;\n if (typeof ctx.get === \"function\") {\n const val = await maybeAwait(ctx.get(\"wishlistStack\") as any);\n if (val) return val as WishlistStackHydrogenServer;\n }\n\n throw new Error(\n \"Wishlist Stack helper not found on loader context. Ensure you called createWishlistStackServerContext(...)(context) in your server/app load context.\",\n );\n}\n\n"]}
|
package/dist/middleware.cjs
CHANGED
|
@@ -14,6 +14,7 @@ function createLazyWishlistStackClient(getClient) {
|
|
|
14
14
|
remove: (listId) => getClient().then((c) => c.lists.remove(listId)),
|
|
15
15
|
duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),
|
|
16
16
|
addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),
|
|
17
|
+
containsVariants: (listId, body) => getClient().then((c) => c.lists.containsVariants(listId, body)),
|
|
17
18
|
addItemsBatched: (listId, body, opts) => getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),
|
|
18
19
|
updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),
|
|
19
20
|
removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),
|
package/dist/middleware.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.ts","../src/middleware.ts"],"names":["createWishlistStackClient"],"mappings":"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","file":"middleware.cjs","sourcesContent":["import { createWishlistStackClient, type WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from \"./types\";\n\nfunction createLazyWishlistStackClient(getClient: () => Promise<WishlistStackClient>): WishlistStackClient {\n return {\n lists: {\n getAll: (query) => getClient().then((c) => c.lists.getAll(query)),\n getById: (listId, query) => getClient().then((c) => c.lists.getById(listId, query)),\n getByIdAllItems: (listId, opts) => getClient().then((c) => c.lists.getByIdAllItems(listId, opts)),\n create: (body) => getClient().then((c) => c.lists.create(body)),\n update: (listId, body) => getClient().then((c) => c.lists.update(listId, body)),\n remove: (listId) => getClient().then((c) => c.lists.remove(listId)),\n duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),\n addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\n addItemsBatched: (listId, body, opts) =>\n getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),\n updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),\n removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),\n reorderItems: (listId, body) => getClient().then((c) => c.lists.reorderItems(listId, body)),\n share: (listId) => getClient().then((c) => c.lists.share(listId)),\n unshare: (listId) => getClient().then((c) => c.lists.unshare(listId)),\n addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body)),\n },\n groups: {\n getAll: (query) => getClient().then((c) => c.groups.getAll(query)),\n getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),\n create: (body) => getClient().then((c) => c.groups.create(body)),\n update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),\n remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),\n duplicate: (groupId) => getClient().then((c) => c.groups.duplicate(groupId)),\n reorder: (body) => getClient().then((c) => c.groups.reorder(body)),\n share: (groupId) => getClient().then((c) => c.groups.share(groupId)),\n unshare: (groupId) => getClient().then((c) => c.groups.unshare(groupId)),\n },\n shared: {\n getSharedList: (listId, query) => getClient().then((c) => c.shared.getSharedList(listId, query)),\n getSharedGroup: (groupId, query) => getClient().then((c) => c.shared.getSharedGroup(groupId, query)),\n },\n };\n}\n\nasync function defaultGetCustomerAccessToken(context: unknown): Promise<string | undefined> {\n const anyCtx = context as any;\n const customerAccount = anyCtx?.customerAccount;\n const fn = customerAccount?.getAccessToken;\n if (typeof fn !== \"function\") return undefined;\n try {\n const token = await fn.call(customerAccount);\n return typeof token === \"string\" ? token : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createWishlistStackServerContext(options: WishlistStackHydrogenOptions) {\n return function attachToContext(context: unknown): { wishlistStack: WishlistStackHydrogenServer; wishlistStackClient: WishlistStackClient } {\n if (!options.apiKey) {\n throw new Error(\"merchant api key is required. Pass it to createWishlistStackServerContext({ apiKey })\");\n }\n\n const getToken = async () => {\n if (options.getCustomerAccessToken) {\n const token = await options.getCustomerAccessToken(context);\n return typeof token === \"string\" ? token : undefined;\n }\n return await defaultGetCustomerAccessToken(context);\n };\n\n let cachedClient: WishlistStackClient | undefined;\n let cachedToken: string | undefined;\n\n const server: WishlistStackHydrogenServer = {\n async getCustomerAccessToken() {\n return await getToken();\n },\n async getClient() {\n const token = await getToken();\n // Cache by token value so calls within a single request reuse the client.\n if (cachedClient && cachedToken === token) return cachedClient;\n cachedToken = token;\n cachedClient = createWishlistStackClient({\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n });\n return cachedClient;\n },\n async bootstrapClientConfig(opts) {\n const expose = opts?.exposeCustomerAccessToken ?? false;\n const token = expose ? await getToken() : undefined;\n return {\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n };\n },\n };\n\n const wishlistStackClient = createLazyWishlistStackClient(server.getClient);\n\n const anyCtx = context as any;\n if (anyCtx && typeof anyCtx.set === \"function\") {\n // Context map style (some React Router middleware implementations).\n anyCtx.set(\"wishlistStack\", server);\n anyCtx.set(\"wishlistStackClient\", wishlistStackClient);\n } else if (anyCtx && typeof anyCtx === \"object\") {\n // Plain object style (Hydrogen load context is an object).\n anyCtx.wishlistStack = server;\n anyCtx.wishlistStackClient = wishlistStackClient;\n }\n\n return { wishlistStack: server, wishlistStackClient };\n };\n}\n\n","import type { WishlistStackHydrogenOptions } from \"./types\";\nimport { createWishlistStackServerContext } from \"./server\";\n\ntype MiddlewareArgs = {\n request: Request;\n context: any;\n};\n\ntype MiddlewareNext = () => Promise<Response> | Response;\n\n/**\n * React Router middleware helper (Hydrogen react-router, middleware-enabled).\n *\n * We intentionally avoid importing react-router types here; we only require the\n * common shape: an object `context` that we can mutate (or that has `set()`).\n */\nexport function createWishlistStackMiddleware(options: WishlistStackHydrogenOptions) {\n const attach = createWishlistStackServerContext(options);\n return async function wishlistStackMiddleware(args: MiddlewareArgs, next: MiddlewareNext) {\n const ctxObj = args.context ?? {};\n // `attach` registers `wishlistStack` and `wishlistStackClient` onto the context (supports `set()` and mutation).\n attach(ctxObj);\n\n return await next();\n };\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server.ts","../src/middleware.ts"],"names":["createWishlistStackClient"],"mappings":"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","file":"middleware.cjs","sourcesContent":["import { createWishlistStackClient, type WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from \"./types\";\n\nfunction createLazyWishlistStackClient(getClient: () => Promise<WishlistStackClient>): WishlistStackClient {\n return {\n lists: {\n getAll: (query) => getClient().then((c) => c.lists.getAll(query)),\n getById: (listId, query) => getClient().then((c) => c.lists.getById(listId, query)),\n getByIdAllItems: (listId, opts) => getClient().then((c) => c.lists.getByIdAllItems(listId, opts)),\n create: (body) => getClient().then((c) => c.lists.create(body)),\n update: (listId, body) => getClient().then((c) => c.lists.update(listId, body)),\n remove: (listId) => getClient().then((c) => c.lists.remove(listId)),\n duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),\n addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\n containsVariants: (listId, body) =>\n getClient().then((c) => c.lists.containsVariants(listId, body)),\n addItemsBatched: (listId, body, opts) =>\n getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),\n updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),\n removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),\n reorderItems: (listId, body) => getClient().then((c) => c.lists.reorderItems(listId, body)),\n share: (listId) => getClient().then((c) => c.lists.share(listId)),\n unshare: (listId) => getClient().then((c) => c.lists.unshare(listId)),\n addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body)),\n },\n groups: {\n getAll: (query) => getClient().then((c) => c.groups.getAll(query)),\n getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),\n create: (body) => getClient().then((c) => c.groups.create(body)),\n update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),\n remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),\n duplicate: (groupId) => getClient().then((c) => c.groups.duplicate(groupId)),\n reorder: (body) => getClient().then((c) => c.groups.reorder(body)),\n share: (groupId) => getClient().then((c) => c.groups.share(groupId)),\n unshare: (groupId) => getClient().then((c) => c.groups.unshare(groupId)),\n },\n shared: {\n getSharedList: (listId, query) => getClient().then((c) => c.shared.getSharedList(listId, query)),\n getSharedGroup: (groupId, query) => getClient().then((c) => c.shared.getSharedGroup(groupId, query)),\n },\n };\n}\n\nasync function defaultGetCustomerAccessToken(context: unknown): Promise<string | undefined> {\n const anyCtx = context as any;\n const customerAccount = anyCtx?.customerAccount;\n const fn = customerAccount?.getAccessToken;\n if (typeof fn !== \"function\") return undefined;\n try {\n const token = await fn.call(customerAccount);\n return typeof token === \"string\" ? token : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createWishlistStackServerContext(options: WishlistStackHydrogenOptions) {\n return function attachToContext(context: unknown): { wishlistStack: WishlistStackHydrogenServer; wishlistStackClient: WishlistStackClient } {\n if (!options.apiKey) {\n throw new Error(\"merchant api key is required. Pass it to createWishlistStackServerContext({ apiKey })\");\n }\n\n const getToken = async () => {\n if (options.getCustomerAccessToken) {\n const token = await options.getCustomerAccessToken(context);\n return typeof token === \"string\" ? token : undefined;\n }\n return await defaultGetCustomerAccessToken(context);\n };\n\n let cachedClient: WishlistStackClient | undefined;\n let cachedToken: string | undefined;\n\n const server: WishlistStackHydrogenServer = {\n async getCustomerAccessToken() {\n return await getToken();\n },\n async getClient() {\n const token = await getToken();\n // Cache by token value so calls within a single request reuse the client.\n if (cachedClient && cachedToken === token) return cachedClient;\n cachedToken = token;\n cachedClient = createWishlistStackClient({\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n });\n return cachedClient;\n },\n async bootstrapClientConfig(opts) {\n const expose = opts?.exposeCustomerAccessToken ?? false;\n const token = expose ? await getToken() : undefined;\n return {\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n };\n },\n };\n\n const wishlistStackClient = createLazyWishlistStackClient(server.getClient);\n\n const anyCtx = context as any;\n if (anyCtx && typeof anyCtx.set === \"function\") {\n // Context map style (some React Router middleware implementations).\n anyCtx.set(\"wishlistStack\", server);\n anyCtx.set(\"wishlistStackClient\", wishlistStackClient);\n } else if (anyCtx && typeof anyCtx === \"object\") {\n // Plain object style (Hydrogen load context is an object).\n anyCtx.wishlistStack = server;\n anyCtx.wishlistStackClient = wishlistStackClient;\n }\n\n return { wishlistStack: server, wishlistStackClient };\n };\n}\n","import type { WishlistStackHydrogenOptions } from \"./types\";\nimport { createWishlistStackServerContext } from \"./server\";\n\ntype MiddlewareArgs = {\n request: Request;\n context: any;\n};\n\ntype MiddlewareNext = () => Promise<Response> | Response;\n\n/**\n * React Router middleware helper (Hydrogen react-router, middleware-enabled).\n *\n * We intentionally avoid importing react-router types here; we only require the\n * common shape: an object `context` that we can mutate (or that has `set()`).\n */\nexport function createWishlistStackMiddleware(options: WishlistStackHydrogenOptions) {\n const attach = createWishlistStackServerContext(options);\n return async function wishlistStackMiddleware(args: MiddlewareArgs, next: MiddlewareNext) {\n const ctxObj = args.context ?? {};\n // `attach` registers `wishlistStack` and `wishlistStackClient` onto the context (supports `set()` and mutation).\n attach(ctxObj);\n\n return await next();\n };\n}\n\n"]}
|
package/dist/middleware.d.cts
CHANGED
package/dist/middleware.d.ts
CHANGED
package/dist/middleware.js
CHANGED
|
@@ -12,6 +12,7 @@ function createLazyWishlistStackClient(getClient) {
|
|
|
12
12
|
remove: (listId) => getClient().then((c) => c.lists.remove(listId)),
|
|
13
13
|
duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),
|
|
14
14
|
addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),
|
|
15
|
+
containsVariants: (listId, body) => getClient().then((c) => c.lists.containsVariants(listId, body)),
|
|
15
16
|
addItemsBatched: (listId, body, opts) => getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),
|
|
16
17
|
updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),
|
|
17
18
|
removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),
|
package/dist/middleware.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.ts","../src/middleware.ts"],"names":[],"mappings":"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","file":"middleware.js","sourcesContent":["import { createWishlistStackClient, type WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from \"./types\";\n\nfunction createLazyWishlistStackClient(getClient: () => Promise<WishlistStackClient>): WishlistStackClient {\n return {\n lists: {\n getAll: (query) => getClient().then((c) => c.lists.getAll(query)),\n getById: (listId, query) => getClient().then((c) => c.lists.getById(listId, query)),\n getByIdAllItems: (listId, opts) => getClient().then((c) => c.lists.getByIdAllItems(listId, opts)),\n create: (body) => getClient().then((c) => c.lists.create(body)),\n update: (listId, body) => getClient().then((c) => c.lists.update(listId, body)),\n remove: (listId) => getClient().then((c) => c.lists.remove(listId)),\n duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),\n addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\n addItemsBatched: (listId, body, opts) =>\n getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),\n updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),\n removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),\n reorderItems: (listId, body) => getClient().then((c) => c.lists.reorderItems(listId, body)),\n share: (listId) => getClient().then((c) => c.lists.share(listId)),\n unshare: (listId) => getClient().then((c) => c.lists.unshare(listId)),\n addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body)),\n },\n groups: {\n getAll: (query) => getClient().then((c) => c.groups.getAll(query)),\n getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),\n create: (body) => getClient().then((c) => c.groups.create(body)),\n update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),\n remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),\n duplicate: (groupId) => getClient().then((c) => c.groups.duplicate(groupId)),\n reorder: (body) => getClient().then((c) => c.groups.reorder(body)),\n share: (groupId) => getClient().then((c) => c.groups.share(groupId)),\n unshare: (groupId) => getClient().then((c) => c.groups.unshare(groupId)),\n },\n shared: {\n getSharedList: (listId, query) => getClient().then((c) => c.shared.getSharedList(listId, query)),\n getSharedGroup: (groupId, query) => getClient().then((c) => c.shared.getSharedGroup(groupId, query)),\n },\n };\n}\n\nasync function defaultGetCustomerAccessToken(context: unknown): Promise<string | undefined> {\n const anyCtx = context as any;\n const customerAccount = anyCtx?.customerAccount;\n const fn = customerAccount?.getAccessToken;\n if (typeof fn !== \"function\") return undefined;\n try {\n const token = await fn.call(customerAccount);\n return typeof token === \"string\" ? token : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createWishlistStackServerContext(options: WishlistStackHydrogenOptions) {\n return function attachToContext(context: unknown): { wishlistStack: WishlistStackHydrogenServer; wishlistStackClient: WishlistStackClient } {\n if (!options.apiKey) {\n throw new Error(\"merchant api key is required. Pass it to createWishlistStackServerContext({ apiKey })\");\n }\n\n const getToken = async () => {\n if (options.getCustomerAccessToken) {\n const token = await options.getCustomerAccessToken(context);\n return typeof token === \"string\" ? token : undefined;\n }\n return await defaultGetCustomerAccessToken(context);\n };\n\n let cachedClient: WishlistStackClient | undefined;\n let cachedToken: string | undefined;\n\n const server: WishlistStackHydrogenServer = {\n async getCustomerAccessToken() {\n return await getToken();\n },\n async getClient() {\n const token = await getToken();\n // Cache by token value so calls within a single request reuse the client.\n if (cachedClient && cachedToken === token) return cachedClient;\n cachedToken = token;\n cachedClient = createWishlistStackClient({\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n });\n return cachedClient;\n },\n async bootstrapClientConfig(opts) {\n const expose = opts?.exposeCustomerAccessToken ?? false;\n const token = expose ? await getToken() : undefined;\n return {\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n };\n },\n };\n\n const wishlistStackClient = createLazyWishlistStackClient(server.getClient);\n\n const anyCtx = context as any;\n if (anyCtx && typeof anyCtx.set === \"function\") {\n // Context map style (some React Router middleware implementations).\n anyCtx.set(\"wishlistStack\", server);\n anyCtx.set(\"wishlistStackClient\", wishlistStackClient);\n } else if (anyCtx && typeof anyCtx === \"object\") {\n // Plain object style (Hydrogen load context is an object).\n anyCtx.wishlistStack = server;\n anyCtx.wishlistStackClient = wishlistStackClient;\n }\n\n return { wishlistStack: server, wishlistStackClient };\n };\n}\n\n","import type { WishlistStackHydrogenOptions } from \"./types\";\nimport { createWishlistStackServerContext } from \"./server\";\n\ntype MiddlewareArgs = {\n request: Request;\n context: any;\n};\n\ntype MiddlewareNext = () => Promise<Response> | Response;\n\n/**\n * React Router middleware helper (Hydrogen react-router, middleware-enabled).\n *\n * We intentionally avoid importing react-router types here; we only require the\n * common shape: an object `context` that we can mutate (or that has `set()`).\n */\nexport function createWishlistStackMiddleware(options: WishlistStackHydrogenOptions) {\n const attach = createWishlistStackServerContext(options);\n return async function wishlistStackMiddleware(args: MiddlewareArgs, next: MiddlewareNext) {\n const ctxObj = args.context ?? {};\n // `attach` registers `wishlistStack` and `wishlistStackClient` onto the context (supports `set()` and mutation).\n attach(ctxObj);\n\n return await next();\n };\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server.ts","../src/middleware.ts"],"names":[],"mappings":"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","file":"middleware.js","sourcesContent":["import { createWishlistStackClient, type WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from \"./types\";\n\nfunction createLazyWishlistStackClient(getClient: () => Promise<WishlistStackClient>): WishlistStackClient {\n return {\n lists: {\n getAll: (query) => getClient().then((c) => c.lists.getAll(query)),\n getById: (listId, query) => getClient().then((c) => c.lists.getById(listId, query)),\n getByIdAllItems: (listId, opts) => getClient().then((c) => c.lists.getByIdAllItems(listId, opts)),\n create: (body) => getClient().then((c) => c.lists.create(body)),\n update: (listId, body) => getClient().then((c) => c.lists.update(listId, body)),\n remove: (listId) => getClient().then((c) => c.lists.remove(listId)),\n duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),\n addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\n containsVariants: (listId, body) =>\n getClient().then((c) => c.lists.containsVariants(listId, body)),\n addItemsBatched: (listId, body, opts) =>\n getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),\n updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),\n removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),\n reorderItems: (listId, body) => getClient().then((c) => c.lists.reorderItems(listId, body)),\n share: (listId) => getClient().then((c) => c.lists.share(listId)),\n unshare: (listId) => getClient().then((c) => c.lists.unshare(listId)),\n addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body)),\n },\n groups: {\n getAll: (query) => getClient().then((c) => c.groups.getAll(query)),\n getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),\n create: (body) => getClient().then((c) => c.groups.create(body)),\n update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),\n remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),\n duplicate: (groupId) => getClient().then((c) => c.groups.duplicate(groupId)),\n reorder: (body) => getClient().then((c) => c.groups.reorder(body)),\n share: (groupId) => getClient().then((c) => c.groups.share(groupId)),\n unshare: (groupId) => getClient().then((c) => c.groups.unshare(groupId)),\n },\n shared: {\n getSharedList: (listId, query) => getClient().then((c) => c.shared.getSharedList(listId, query)),\n getSharedGroup: (groupId, query) => getClient().then((c) => c.shared.getSharedGroup(groupId, query)),\n },\n };\n}\n\nasync function defaultGetCustomerAccessToken(context: unknown): Promise<string | undefined> {\n const anyCtx = context as any;\n const customerAccount = anyCtx?.customerAccount;\n const fn = customerAccount?.getAccessToken;\n if (typeof fn !== \"function\") return undefined;\n try {\n const token = await fn.call(customerAccount);\n return typeof token === \"string\" ? token : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createWishlistStackServerContext(options: WishlistStackHydrogenOptions) {\n return function attachToContext(context: unknown): { wishlistStack: WishlistStackHydrogenServer; wishlistStackClient: WishlistStackClient } {\n if (!options.apiKey) {\n throw new Error(\"merchant api key is required. Pass it to createWishlistStackServerContext({ apiKey })\");\n }\n\n const getToken = async () => {\n if (options.getCustomerAccessToken) {\n const token = await options.getCustomerAccessToken(context);\n return typeof token === \"string\" ? token : undefined;\n }\n return await defaultGetCustomerAccessToken(context);\n };\n\n let cachedClient: WishlistStackClient | undefined;\n let cachedToken: string | undefined;\n\n const server: WishlistStackHydrogenServer = {\n async getCustomerAccessToken() {\n return await getToken();\n },\n async getClient() {\n const token = await getToken();\n // Cache by token value so calls within a single request reuse the client.\n if (cachedClient && cachedToken === token) return cachedClient;\n cachedToken = token;\n cachedClient = createWishlistStackClient({\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n });\n return cachedClient;\n },\n async bootstrapClientConfig(opts) {\n const expose = opts?.exposeCustomerAccessToken ?? false;\n const token = expose ? await getToken() : undefined;\n return {\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n };\n },\n };\n\n const wishlistStackClient = createLazyWishlistStackClient(server.getClient);\n\n const anyCtx = context as any;\n if (anyCtx && typeof anyCtx.set === \"function\") {\n // Context map style (some React Router middleware implementations).\n anyCtx.set(\"wishlistStack\", server);\n anyCtx.set(\"wishlistStackClient\", wishlistStackClient);\n } else if (anyCtx && typeof anyCtx === \"object\") {\n // Plain object style (Hydrogen load context is an object).\n anyCtx.wishlistStack = server;\n anyCtx.wishlistStackClient = wishlistStackClient;\n }\n\n return { wishlistStack: server, wishlistStackClient };\n };\n}\n","import type { WishlistStackHydrogenOptions } from \"./types\";\nimport { createWishlistStackServerContext } from \"./server\";\n\ntype MiddlewareArgs = {\n request: Request;\n context: any;\n};\n\ntype MiddlewareNext = () => Promise<Response> | Response;\n\n/**\n * React Router middleware helper (Hydrogen react-router, middleware-enabled).\n *\n * We intentionally avoid importing react-router types here; we only require the\n * common shape: an object `context` that we can mutate (or that has `set()`).\n */\nexport function createWishlistStackMiddleware(options: WishlistStackHydrogenOptions) {\n const attach = createWishlistStackServerContext(options);\n return async function wishlistStackMiddleware(args: MiddlewareArgs, next: MiddlewareNext) {\n const ctxObj = args.context ?? {};\n // `attach` registers `wishlistStack` and `wishlistStackClient` onto the context (supports `set()` and mutation).\n attach(ctxObj);\n\n return await next();\n };\n}\n\n"]}
|
package/dist/react.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WishlistStackClient } from '@sdg.la/wishlist-stack-sdk';
|
|
3
|
-
import {
|
|
3
|
+
import { BootstrapClientConfig } from './index.cjs';
|
|
4
4
|
|
|
5
5
|
type WishlistStackProviderMode = "proxy" | "direct";
|
|
6
6
|
/**
|
|
@@ -36,4 +36,5 @@ declare function WishlistStackProvider(props: WishlistStackProviderProps): React
|
|
|
36
36
|
declare function useWishlistStack(): WishlistStackProviderValue;
|
|
37
37
|
declare function useWishlistStackClient(): WishlistStackClient;
|
|
38
38
|
|
|
39
|
-
export {
|
|
39
|
+
export { WishlistStackProvider, useWishlistStack, useWishlistStackClient };
|
|
40
|
+
export type { WishlistStackGlobalState, WishlistStackProviderMode, WishlistStackProviderProps };
|
package/dist/react.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { WishlistStackClient } from '@sdg.la/wishlist-stack-sdk';
|
|
3
|
-
import {
|
|
3
|
+
import { BootstrapClientConfig } from './index.js';
|
|
4
4
|
|
|
5
5
|
type WishlistStackProviderMode = "proxy" | "direct";
|
|
6
6
|
/**
|
|
@@ -36,4 +36,5 @@ declare function WishlistStackProvider(props: WishlistStackProviderProps): React
|
|
|
36
36
|
declare function useWishlistStack(): WishlistStackProviderValue;
|
|
37
37
|
declare function useWishlistStackClient(): WishlistStackClient;
|
|
38
38
|
|
|
39
|
-
export {
|
|
39
|
+
export { WishlistStackProvider, useWishlistStack, useWishlistStackClient };
|
|
40
|
+
export type { WishlistStackGlobalState, WishlistStackProviderMode, WishlistStackProviderProps };
|
package/dist/server.cjs
CHANGED
|
@@ -14,6 +14,7 @@ function createLazyWishlistStackClient(getClient) {
|
|
|
14
14
|
remove: (listId) => getClient().then((c) => c.lists.remove(listId)),
|
|
15
15
|
duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),
|
|
16
16
|
addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),
|
|
17
|
+
containsVariants: (listId, body) => getClient().then((c) => c.lists.containsVariants(listId, body)),
|
|
17
18
|
addItemsBatched: (listId, body, opts) => getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),
|
|
18
19
|
updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),
|
|
19
20
|
removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),
|
package/dist/server.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.ts"],"names":["createWishlistStackClient"],"mappings":";;;;;AAGA,SAAS,8BAA8B,SAAA,EAAoE;AACzG,EAAA,OAAO;AAAA,IACL,KAAA,EAAO;AAAA,MACL,MAAA,EAAQ,CAAC,KAAA,KAAU,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,MAChE,OAAA,EAAS,CAAC,MAAA,EAAQ,KAAA,KAAU,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,OAAA,CAAQ,MAAA,EAAQ,KAAK,CAAC,CAAA;AAAA,MAClF,eAAA,EAAiB,CAAC,MAAA,EAAQ,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,eAAA,CAAgB,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MAChG,MAAA,EAAQ,CAAC,IAAA,KAAS,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA,MAC9D,MAAA,EAAQ,CAAC,MAAA,EAAQ,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,MAAA,CAAO,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MAC9E,MAAA,EAAQ,CAAC,MAAA,KAAW,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,MAAA,CAAO,MAAM,CAAC,CAAA;AAAA,MAClE,SAAA,EAAW,CAAC,MAAA,EAAQ,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,SAAA,CAAU,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MACpF,QAAA,EAAU,CAAC,MAAA,EAAQ,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,QAAA,CAAS,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MAClF,iBAAiB,CAAC,MAAA,EAAQ,IAAA,EAAM,IAAA,KAC9B,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,EAAE,KAAA,CAAM,eAAA,CAAgB,MAAA,EAAQ,IAAA,EAAM,IAAI,CAAC,CAAA;AAAA,MACrE,YAAY,CAAC,MAAA,EAAQ,MAAA,EAAQ,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,EAAE,KAAA,CAAM,UAAA,CAAW,MAAA,EAAQ,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MACtG,UAAA,EAAY,CAAC,MAAA,EAAQ,MAAA,KAAW,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,UAAA,CAAW,MAAA,EAAQ,MAAM,CAAC,CAAA;AAAA,MAC1F,YAAA,EAAc,CAAC,MAAA,EAAQ,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,YAAA,CAAa,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MAC1F,KAAA,EAAO,CAAC,MAAA,KAAW,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,KAAA,CAAM,MAAM,CAAC,CAAA;AAAA,MAChE,OAAA,EAAS,CAAC,MAAA,KAAW,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAC,CAAA;AAAA,MACpE,cAAA,EAAgB,CAAC,EAAA,EAAI,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,KAAA,CAAM,cAAA,CAAe,EAAA,EAAI,IAAI,CAAC;AAAA,KACxF;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,CAAC,KAAA,KAAU,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,MACjE,OAAA,EAAS,CAAC,OAAA,EAAS,KAAA,KAAU,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,OAAA,CAAQ,OAAA,EAAS,KAAK,CAAC,CAAA;AAAA,MACrF,MAAA,EAAQ,CAAC,IAAA,KAAS,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA,MAC/D,MAAA,EAAQ,CAAC,OAAA,EAAS,IAAA,KAAS,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,MAAA,CAAO,OAAA,EAAS,IAAI,CAAC,CAAA;AAAA,MACjF,MAAA,EAAQ,CAAC,OAAA,KAAY,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,MAAA,CAAO,OAAO,CAAC,CAAA;AAAA,MACrE,SAAA,EAAW,CAAC,OAAA,KAAY,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,SAAA,CAAU,OAAO,CAAC,CAAA;AAAA,MAC3E,OAAA,EAAS,CAAC,IAAA,KAAS,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAC,CAAA;AAAA,MACjE,KAAA,EAAO,CAAC,OAAA,KAAY,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,KAAA,CAAM,OAAO,CAAC,CAAA;AAAA,MACnE,OAAA,EAAS,CAAC,OAAA,KAAY,SAAA,EAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAC;AAAA,KACzE;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,aAAA,EAAe,CAAC,MAAA,EAAQ,KAAA,KAAU,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,aAAA,CAAc,MAAA,EAAQ,KAAK,CAAC,CAAA;AAAA,MAC/F,cAAA,EAAgB,CAAC,OAAA,EAAS,KAAA,KAAU,WAAU,CAAE,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,CAAO,cAAA,CAAe,OAAA,EAAS,KAAK,CAAC;AAAA;AACrG,GACF;AACF;AAEA,eAAe,8BAA8B,OAAA,EAA+C;AAC1F,EAAA,MAAM,MAAA,GAAS,OAAA;AACf,EAAA,MAAM,kBAAkB,MAAA,EAAQ,eAAA;AAChC,EAAA,MAAM,KAAK,eAAA,EAAiB,cAAA;AAC5B,EAAA,IAAI,OAAO,EAAA,KAAO,UAAA,EAAY,OAAO,MAAA;AACrC,EAAA,IAAI;AACF,IAAA,MAAM,KAAA,GAAQ,MAAM,EAAA,CAAG,IAAA,CAAK,eAAe,CAAA;AAC3C,IAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,KAAA,CAAA;AAAA,EAC7C,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAEO,SAAS,iCAAiC,OAAA,EAAuC;AACtF,EAAA,OAAO,SAAS,gBAAgB,OAAA,EAA4G;AAC1I,IAAA,IAAI,CAAC,QAAQ,MAAA,EAAQ;AACnB,MAAA,MAAM,IAAI,MAAM,uFAAuF,CAAA;AAAA,IACzG;AAEA,IAAA,MAAM,WAAW,YAAY;AAC3B,MAAA,IAAI,QAAQ,sBAAA,EAAwB;AAClC,QAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,CAAQ,sBAAA,CAAuB,OAAO,CAAA;AAC1D,QAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,MAAA;AAAA,MAC7C;AACA,MAAA,OAAO,MAAM,8BAA8B,OAAO,CAAA;AAAA,IACpD,CAAA;AAEA,IAAA,IAAI,YAAA;AACJ,IAAA,IAAI,WAAA;AAEJ,IAAA,MAAM,MAAA,GAAsC;AAAA,MAC1C,MAAM,sBAAA,GAAyB;AAC7B,QAAA,OAAO,MAAM,QAAA,EAAS;AAAA,MACxB,CAAA;AAAA,MACA,MAAM,SAAA,GAAY;AAChB,QAAA,MAAM,KAAA,GAAQ,MAAM,QAAA,EAAS;AAE7B,QAAA,IAAI,YAAA,IAAgB,WAAA,KAAgB,KAAA,EAAO,OAAO,YAAA;AAClD,QAAA,WAAA,GAAc,KAAA;AACd,QAAA,YAAA,GAAeA,0CAAA,CAA0B;AAAA,UACvC,QAAQ,OAAA,CAAQ,MAAA;AAAA,UAChB,SAAS,OAAA,CAAQ,OAAA;AAAA,UACjB,mBAAA,EAAqB;AAAA,SACtB,CAAA;AACD,QAAA,OAAO,YAAA;AAAA,MACT,CAAA;AAAA,MACA,MAAM,sBAAsB,IAAA,EAAM;AAChC,QAAA,MAAM,MAAA,GAAS,MAAM,yBAAA,IAA6B,KAAA;AAClD,QAAA,MAAM,KAAA,GAAQ,MAAA,GAAS,MAAM,QAAA,EAAS,GAAI,MAAA;AAC1C,QAAA,OAAO;AAAA,UACL,QAAQ,OAAA,CAAQ,MAAA;AAAA,UAChB,SAAS,OAAA,CAAQ,OAAA;AAAA,UACjB,mBAAA,EAAqB;AAAA,SACvB;AAAA,MACF;AAAA,KACF;AAEA,IAAA,MAAM,mBAAA,GAAsB,6BAAA,CAA8B,MAAA,CAAO,SAAS,CAAA;AAE1E,IAAA,MAAM,MAAA,GAAS,OAAA;AACf,IAAA,IAAI,MAAA,IAAU,OAAO,MAAA,CAAO,GAAA,KAAQ,UAAA,EAAY;AAE9C,MAAA,MAAA,CAAO,GAAA,CAAI,iBAAiB,MAAM,CAAA;AAClC,MAAA,MAAA,CAAO,GAAA,CAAI,uBAAuB,mBAAmB,CAAA;AAAA,IACvD,CAAA,MAAA,IAAW,MAAA,IAAU,OAAO,MAAA,KAAW,QAAA,EAAU;AAE/C,MAAA,MAAA,CAAO,aAAA,GAAgB,MAAA;AACvB,MAAA,MAAA,CAAO,mBAAA,GAAsB,mBAAA;AAAA,IAC/B;AAEA,IAAA,OAAO,EAAE,aAAA,EAAe,MAAA,EAAQ,mBAAA,EAAoB;AAAA,EACtD,CAAA;AACF","file":"server.cjs","sourcesContent":["import { createWishlistStackClient, type WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from \"./types\";\n\nfunction createLazyWishlistStackClient(getClient: () => Promise<WishlistStackClient>): WishlistStackClient {\n return {\n lists: {\n getAll: (query) => getClient().then((c) => c.lists.getAll(query)),\n getById: (listId, query) => getClient().then((c) => c.lists.getById(listId, query)),\n getByIdAllItems: (listId, opts) => getClient().then((c) => c.lists.getByIdAllItems(listId, opts)),\n create: (body) => getClient().then((c) => c.lists.create(body)),\n update: (listId, body) => getClient().then((c) => c.lists.update(listId, body)),\n remove: (listId) => getClient().then((c) => c.lists.remove(listId)),\n duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),\n addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\n addItemsBatched: (listId, body, opts) =>\n getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),\n updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),\n removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),\n reorderItems: (listId, body) => getClient().then((c) => c.lists.reorderItems(listId, body)),\n share: (listId) => getClient().then((c) => c.lists.share(listId)),\n unshare: (listId) => getClient().then((c) => c.lists.unshare(listId)),\n addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body)),\n },\n groups: {\n getAll: (query) => getClient().then((c) => c.groups.getAll(query)),\n getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),\n create: (body) => getClient().then((c) => c.groups.create(body)),\n update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),\n remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),\n duplicate: (groupId) => getClient().then((c) => c.groups.duplicate(groupId)),\n reorder: (body) => getClient().then((c) => c.groups.reorder(body)),\n share: (groupId) => getClient().then((c) => c.groups.share(groupId)),\n unshare: (groupId) => getClient().then((c) => c.groups.unshare(groupId)),\n },\n shared: {\n getSharedList: (listId, query) => getClient().then((c) => c.shared.getSharedList(listId, query)),\n getSharedGroup: (groupId, query) => getClient().then((c) => c.shared.getSharedGroup(groupId, query)),\n },\n };\n}\n\nasync function defaultGetCustomerAccessToken(context: unknown): Promise<string | undefined> {\n const anyCtx = context as any;\n const customerAccount = anyCtx?.customerAccount;\n const fn = customerAccount?.getAccessToken;\n if (typeof fn !== \"function\") return undefined;\n try {\n const token = await fn.call(customerAccount);\n return typeof token === \"string\" ? token : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createWishlistStackServerContext(options: WishlistStackHydrogenOptions) {\n return function attachToContext(context: unknown): { wishlistStack: WishlistStackHydrogenServer; wishlistStackClient: WishlistStackClient } {\n if (!options.apiKey) {\n throw new Error(\"merchant api key is required. Pass it to createWishlistStackServerContext({ apiKey })\");\n }\n\n const getToken = async () => {\n if (options.getCustomerAccessToken) {\n const token = await options.getCustomerAccessToken(context);\n return typeof token === \"string\" ? token : undefined;\n }\n return await defaultGetCustomerAccessToken(context);\n };\n\n let cachedClient: WishlistStackClient | undefined;\n let cachedToken: string | undefined;\n\n const server: WishlistStackHydrogenServer = {\n async getCustomerAccessToken() {\n return await getToken();\n },\n async getClient() {\n const token = await getToken();\n // Cache by token value so calls within a single request reuse the client.\n if (cachedClient && cachedToken === token) return cachedClient;\n cachedToken = token;\n cachedClient = createWishlistStackClient({\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n });\n return cachedClient;\n },\n async bootstrapClientConfig(opts) {\n const expose = opts?.exposeCustomerAccessToken ?? false;\n const token = expose ? await getToken() : undefined;\n return {\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n };\n },\n };\n\n const wishlistStackClient = createLazyWishlistStackClient(server.getClient);\n\n const anyCtx = context as any;\n if (anyCtx && typeof anyCtx.set === \"function\") {\n // Context map style (some React Router middleware implementations).\n anyCtx.set(\"wishlistStack\", server);\n anyCtx.set(\"wishlistStackClient\", wishlistStackClient);\n } else if (anyCtx && typeof anyCtx === \"object\") {\n // Plain object style (Hydrogen load context is an object).\n anyCtx.wishlistStack = server;\n anyCtx.wishlistStackClient = wishlistStackClient;\n }\n\n return { wishlistStack: server, wishlistStackClient };\n };\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server.ts"],"names":["createWishlistStackClient"],"mappings":"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","file":"server.cjs","sourcesContent":["import { createWishlistStackClient, type WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from \"./types\";\n\nfunction createLazyWishlistStackClient(getClient: () => Promise<WishlistStackClient>): WishlistStackClient {\n return {\n lists: {\n getAll: (query) => getClient().then((c) => c.lists.getAll(query)),\n getById: (listId, query) => getClient().then((c) => c.lists.getById(listId, query)),\n getByIdAllItems: (listId, opts) => getClient().then((c) => c.lists.getByIdAllItems(listId, opts)),\n create: (body) => getClient().then((c) => c.lists.create(body)),\n update: (listId, body) => getClient().then((c) => c.lists.update(listId, body)),\n remove: (listId) => getClient().then((c) => c.lists.remove(listId)),\n duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),\n addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\n containsVariants: (listId, body) =>\n getClient().then((c) => c.lists.containsVariants(listId, body)),\n addItemsBatched: (listId, body, opts) =>\n getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),\n updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),\n removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),\n reorderItems: (listId, body) => getClient().then((c) => c.lists.reorderItems(listId, body)),\n share: (listId) => getClient().then((c) => c.lists.share(listId)),\n unshare: (listId) => getClient().then((c) => c.lists.unshare(listId)),\n addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body)),\n },\n groups: {\n getAll: (query) => getClient().then((c) => c.groups.getAll(query)),\n getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),\n create: (body) => getClient().then((c) => c.groups.create(body)),\n update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),\n remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),\n duplicate: (groupId) => getClient().then((c) => c.groups.duplicate(groupId)),\n reorder: (body) => getClient().then((c) => c.groups.reorder(body)),\n share: (groupId) => getClient().then((c) => c.groups.share(groupId)),\n unshare: (groupId) => getClient().then((c) => c.groups.unshare(groupId)),\n },\n shared: {\n getSharedList: (listId, query) => getClient().then((c) => c.shared.getSharedList(listId, query)),\n getSharedGroup: (groupId, query) => getClient().then((c) => c.shared.getSharedGroup(groupId, query)),\n },\n };\n}\n\nasync function defaultGetCustomerAccessToken(context: unknown): Promise<string | undefined> {\n const anyCtx = context as any;\n const customerAccount = anyCtx?.customerAccount;\n const fn = customerAccount?.getAccessToken;\n if (typeof fn !== \"function\") return undefined;\n try {\n const token = await fn.call(customerAccount);\n return typeof token === \"string\" ? token : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createWishlistStackServerContext(options: WishlistStackHydrogenOptions) {\n return function attachToContext(context: unknown): { wishlistStack: WishlistStackHydrogenServer; wishlistStackClient: WishlistStackClient } {\n if (!options.apiKey) {\n throw new Error(\"merchant api key is required. Pass it to createWishlistStackServerContext({ apiKey })\");\n }\n\n const getToken = async () => {\n if (options.getCustomerAccessToken) {\n const token = await options.getCustomerAccessToken(context);\n return typeof token === \"string\" ? token : undefined;\n }\n return await defaultGetCustomerAccessToken(context);\n };\n\n let cachedClient: WishlistStackClient | undefined;\n let cachedToken: string | undefined;\n\n const server: WishlistStackHydrogenServer = {\n async getCustomerAccessToken() {\n return await getToken();\n },\n async getClient() {\n const token = await getToken();\n // Cache by token value so calls within a single request reuse the client.\n if (cachedClient && cachedToken === token) return cachedClient;\n cachedToken = token;\n cachedClient = createWishlistStackClient({\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n });\n return cachedClient;\n },\n async bootstrapClientConfig(opts) {\n const expose = opts?.exposeCustomerAccessToken ?? false;\n const token = expose ? await getToken() : undefined;\n return {\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n };\n },\n };\n\n const wishlistStackClient = createLazyWishlistStackClient(server.getClient);\n\n const anyCtx = context as any;\n if (anyCtx && typeof anyCtx.set === \"function\") {\n // Context map style (some React Router middleware implementations).\n anyCtx.set(\"wishlistStack\", server);\n anyCtx.set(\"wishlistStackClient\", wishlistStackClient);\n } else if (anyCtx && typeof anyCtx === \"object\") {\n // Plain object style (Hydrogen load context is an object).\n anyCtx.wishlistStack = server;\n anyCtx.wishlistStackClient = wishlistStackClient;\n }\n\n return { wishlistStack: server, wishlistStackClient };\n };\n}\n"]}
|
package/dist/server.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WishlistStackClient } from '@sdg.la/wishlist-stack-sdk';
|
|
2
|
-
import {
|
|
2
|
+
import { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from './index.cjs';
|
|
3
3
|
|
|
4
4
|
declare function createWishlistStackServerContext(options: WishlistStackHydrogenOptions): (context: unknown) => {
|
|
5
5
|
wishlistStack: WishlistStackHydrogenServer;
|
package/dist/server.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { WishlistStackClient } from '@sdg.la/wishlist-stack-sdk';
|
|
2
|
-
import {
|
|
2
|
+
import { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from './index.js';
|
|
3
3
|
|
|
4
4
|
declare function createWishlistStackServerContext(options: WishlistStackHydrogenOptions): (context: unknown) => {
|
|
5
5
|
wishlistStack: WishlistStackHydrogenServer;
|
package/dist/server.js
CHANGED
|
@@ -12,6 +12,7 @@ function createLazyWishlistStackClient(getClient) {
|
|
|
12
12
|
remove: (listId) => getClient().then((c) => c.lists.remove(listId)),
|
|
13
13
|
duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),
|
|
14
14
|
addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),
|
|
15
|
+
containsVariants: (listId, body) => getClient().then((c) => c.lists.containsVariants(listId, body)),
|
|
15
16
|
addItemsBatched: (listId, body, opts) => getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),
|
|
16
17
|
updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),
|
|
17
18
|
removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server.ts"],"names":[],"mappings":"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","file":"server.js","sourcesContent":["import { createWishlistStackClient, type WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from \"./types\";\n\nfunction createLazyWishlistStackClient(getClient: () => Promise<WishlistStackClient>): WishlistStackClient {\n return {\n lists: {\n getAll: (query) => getClient().then((c) => c.lists.getAll(query)),\n getById: (listId, query) => getClient().then((c) => c.lists.getById(listId, query)),\n getByIdAllItems: (listId, opts) => getClient().then((c) => c.lists.getByIdAllItems(listId, opts)),\n create: (body) => getClient().then((c) => c.lists.create(body)),\n update: (listId, body) => getClient().then((c) => c.lists.update(listId, body)),\n remove: (listId) => getClient().then((c) => c.lists.remove(listId)),\n duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),\n addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\n addItemsBatched: (listId, body, opts) =>\n getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),\n updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),\n removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),\n reorderItems: (listId, body) => getClient().then((c) => c.lists.reorderItems(listId, body)),\n share: (listId) => getClient().then((c) => c.lists.share(listId)),\n unshare: (listId) => getClient().then((c) => c.lists.unshare(listId)),\n addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body)),\n },\n groups: {\n getAll: (query) => getClient().then((c) => c.groups.getAll(query)),\n getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),\n create: (body) => getClient().then((c) => c.groups.create(body)),\n update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),\n remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),\n duplicate: (groupId) => getClient().then((c) => c.groups.duplicate(groupId)),\n reorder: (body) => getClient().then((c) => c.groups.reorder(body)),\n share: (groupId) => getClient().then((c) => c.groups.share(groupId)),\n unshare: (groupId) => getClient().then((c) => c.groups.unshare(groupId)),\n },\n shared: {\n getSharedList: (listId, query) => getClient().then((c) => c.shared.getSharedList(listId, query)),\n getSharedGroup: (groupId, query) => getClient().then((c) => c.shared.getSharedGroup(groupId, query)),\n },\n };\n}\n\nasync function defaultGetCustomerAccessToken(context: unknown): Promise<string | undefined> {\n const anyCtx = context as any;\n const customerAccount = anyCtx?.customerAccount;\n const fn = customerAccount?.getAccessToken;\n if (typeof fn !== \"function\") return undefined;\n try {\n const token = await fn.call(customerAccount);\n return typeof token === \"string\" ? token : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createWishlistStackServerContext(options: WishlistStackHydrogenOptions) {\n return function attachToContext(context: unknown): { wishlistStack: WishlistStackHydrogenServer; wishlistStackClient: WishlistStackClient } {\n if (!options.apiKey) {\n throw new Error(\"merchant api key is required. Pass it to createWishlistStackServerContext({ apiKey })\");\n }\n\n const getToken = async () => {\n if (options.getCustomerAccessToken) {\n const token = await options.getCustomerAccessToken(context);\n return typeof token === \"string\" ? token : undefined;\n }\n return await defaultGetCustomerAccessToken(context);\n };\n\n let cachedClient: WishlistStackClient | undefined;\n let cachedToken: string | undefined;\n\n const server: WishlistStackHydrogenServer = {\n async getCustomerAccessToken() {\n return await getToken();\n },\n async getClient() {\n const token = await getToken();\n // Cache by token value so calls within a single request reuse the client.\n if (cachedClient && cachedToken === token) return cachedClient;\n cachedToken = token;\n cachedClient = createWishlistStackClient({\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n });\n return cachedClient;\n },\n async bootstrapClientConfig(opts) {\n const expose = opts?.exposeCustomerAccessToken ?? false;\n const token = expose ? await getToken() : undefined;\n return {\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n };\n },\n };\n\n const wishlistStackClient = createLazyWishlistStackClient(server.getClient);\n\n const anyCtx = context as any;\n if (anyCtx && typeof anyCtx.set === \"function\") {\n // Context map style (some React Router middleware implementations).\n anyCtx.set(\"wishlistStack\", server);\n anyCtx.set(\"wishlistStackClient\", wishlistStackClient);\n } else if (anyCtx && typeof anyCtx === \"object\") {\n // Plain object style (Hydrogen load context is an object).\n anyCtx.wishlistStack = server;\n anyCtx.wishlistStackClient = wishlistStackClient;\n }\n\n return { wishlistStack: server, wishlistStackClient };\n };\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server.ts"],"names":[],"mappings":"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","file":"server.js","sourcesContent":["import { createWishlistStackClient, type WishlistStackClient } from \"@sdg.la/wishlist-stack-sdk\";\nimport type { WishlistStackHydrogenOptions, WishlistStackHydrogenServer } from \"./types\";\n\nfunction createLazyWishlistStackClient(getClient: () => Promise<WishlistStackClient>): WishlistStackClient {\n return {\n lists: {\n getAll: (query) => getClient().then((c) => c.lists.getAll(query)),\n getById: (listId, query) => getClient().then((c) => c.lists.getById(listId, query)),\n getByIdAllItems: (listId, opts) => getClient().then((c) => c.lists.getByIdAllItems(listId, opts)),\n create: (body) => getClient().then((c) => c.lists.create(body)),\n update: (listId, body) => getClient().then((c) => c.lists.update(listId, body)),\n remove: (listId) => getClient().then((c) => c.lists.remove(listId)),\n duplicate: (listId, body) => getClient().then((c) => c.lists.duplicate(listId, body)),\n addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\n containsVariants: (listId, body) =>\n getClient().then((c) => c.lists.containsVariants(listId, body)),\n addItemsBatched: (listId, body, opts) =>\n getClient().then((c) => c.lists.addItemsBatched(listId, body, opts)),\n updateItem: (listId, itemId, body) => getClient().then((c) => c.lists.updateItem(listId, itemId, body)),\n removeItem: (listId, itemId) => getClient().then((c) => c.lists.removeItem(listId, itemId)),\n reorderItems: (listId, body) => getClient().then((c) => c.lists.reorderItems(listId, body)),\n share: (listId) => getClient().then((c) => c.lists.share(listId)),\n unshare: (listId) => getClient().then((c) => c.lists.unshare(listId)),\n addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body)),\n },\n groups: {\n getAll: (query) => getClient().then((c) => c.groups.getAll(query)),\n getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),\n create: (body) => getClient().then((c) => c.groups.create(body)),\n update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),\n remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),\n duplicate: (groupId) => getClient().then((c) => c.groups.duplicate(groupId)),\n reorder: (body) => getClient().then((c) => c.groups.reorder(body)),\n share: (groupId) => getClient().then((c) => c.groups.share(groupId)),\n unshare: (groupId) => getClient().then((c) => c.groups.unshare(groupId)),\n },\n shared: {\n getSharedList: (listId, query) => getClient().then((c) => c.shared.getSharedList(listId, query)),\n getSharedGroup: (groupId, query) => getClient().then((c) => c.shared.getSharedGroup(groupId, query)),\n },\n };\n}\n\nasync function defaultGetCustomerAccessToken(context: unknown): Promise<string | undefined> {\n const anyCtx = context as any;\n const customerAccount = anyCtx?.customerAccount;\n const fn = customerAccount?.getAccessToken;\n if (typeof fn !== \"function\") return undefined;\n try {\n const token = await fn.call(customerAccount);\n return typeof token === \"string\" ? token : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function createWishlistStackServerContext(options: WishlistStackHydrogenOptions) {\n return function attachToContext(context: unknown): { wishlistStack: WishlistStackHydrogenServer; wishlistStackClient: WishlistStackClient } {\n if (!options.apiKey) {\n throw new Error(\"merchant api key is required. Pass it to createWishlistStackServerContext({ apiKey })\");\n }\n\n const getToken = async () => {\n if (options.getCustomerAccessToken) {\n const token = await options.getCustomerAccessToken(context);\n return typeof token === \"string\" ? token : undefined;\n }\n return await defaultGetCustomerAccessToken(context);\n };\n\n let cachedClient: WishlistStackClient | undefined;\n let cachedToken: string | undefined;\n\n const server: WishlistStackHydrogenServer = {\n async getCustomerAccessToken() {\n return await getToken();\n },\n async getClient() {\n const token = await getToken();\n // Cache by token value so calls within a single request reuse the client.\n if (cachedClient && cachedToken === token) return cachedClient;\n cachedToken = token;\n cachedClient = createWishlistStackClient({\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n });\n return cachedClient;\n },\n async bootstrapClientConfig(opts) {\n const expose = opts?.exposeCustomerAccessToken ?? false;\n const token = expose ? await getToken() : undefined;\n return {\n apiKey: options.apiKey,\n baseUrl: options.baseUrl,\n customerAccessToken: token,\n };\n },\n };\n\n const wishlistStackClient = createLazyWishlistStackClient(server.getClient);\n\n const anyCtx = context as any;\n if (anyCtx && typeof anyCtx.set === \"function\") {\n // Context map style (some React Router middleware implementations).\n anyCtx.set(\"wishlistStack\", server);\n anyCtx.set(\"wishlistStackClient\", wishlistStackClient);\n } else if (anyCtx && typeof anyCtx === \"object\") {\n // Plain object style (Hydrogen load context is an object).\n anyCtx.wishlistStack = server;\n anyCtx.wishlistStackClient = wishlistStackClient;\n }\n\n return { wishlistStack: server, wishlistStackClient };\n };\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sdg.la/wishlist-stack-hydrogen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"description": "Hydrogen (react-router) integration for wishlist-stack-sdk",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
],
|
|
39
39
|
"sideEffects": false,
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@sdg.la/wishlist-stack-sdk": "^0.
|
|
41
|
+
"@sdg.la/wishlist-stack-sdk": "^0.16.0"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"react": ">=18",
|