@sdg.la/wishlist-stack-hydrogen 0.9.7 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/middleware.cjs +2 -2
- package/dist/middleware.cjs.map +1 -1
- package/dist/middleware.js +2 -2
- package/dist/middleware.js.map +1 -1
- package/dist/server.cjs +2 -2
- package/dist/server.cjs.map +1 -1
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -20,8 +20,8 @@ function createLazyWishlistStackClient(getClient) {
|
|
|
20
20
|
addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body))
|
|
21
21
|
},
|
|
22
22
|
groups: {
|
|
23
|
-
getAll: () => getClient().then((c) => c.groups.getAll()),
|
|
24
|
-
getById: (groupId) => getClient().then((c) => c.groups.getById(groupId)),
|
|
23
|
+
getAll: (query) => getClient().then((c) => c.groups.getAll(query)),
|
|
24
|
+
getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),
|
|
25
25
|
create: (body) => getClient().then((c) => c.groups.create(body)),
|
|
26
26
|
update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),
|
|
27
27
|
remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),
|
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) => getClient().then((c) => c.lists.getById(listId)),\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 addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\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: () => getClient().then((c) => c.groups.getAll()),\n getById: (groupId) => getClient().then((c) => c.groups.getById(groupId)),\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 reorder: (groupId, body) => getClient().then((c) => c.groups.reorder(groupId, 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) => getClient().then((c) => c.shared.getSharedList(listId)),\n getSharedGroup: (groupId) => getClient().then((c) => c.shared.getSharedGroup(groupId)),\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) => getClient().then((c) => c.lists.getById(listId)),\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 addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\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 reorder: (groupId, body) => getClient().then((c) => c.groups.reorder(groupId, 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) => getClient().then((c) => c.shared.getSharedList(listId)),\n getSharedGroup: (groupId) => getClient().then((c) => c.shared.getSharedGroup(groupId)),\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"]}
|
package/dist/index.js
CHANGED
|
@@ -19,8 +19,8 @@ function createLazyWishlistStackClient(getClient) {
|
|
|
19
19
|
addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body))
|
|
20
20
|
},
|
|
21
21
|
groups: {
|
|
22
|
-
getAll: () => getClient().then((c) => c.groups.getAll()),
|
|
23
|
-
getById: (groupId) => getClient().then((c) => c.groups.getById(groupId)),
|
|
22
|
+
getAll: (query) => getClient().then((c) => c.groups.getAll(query)),
|
|
23
|
+
getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),
|
|
24
24
|
create: (body) => getClient().then((c) => c.groups.create(body)),
|
|
25
25
|
update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),
|
|
26
26
|
remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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) => getClient().then((c) => c.lists.getById(listId)),\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 addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\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: () => getClient().then((c) => c.groups.getAll()),\n getById: (groupId) => getClient().then((c) => c.groups.getById(groupId)),\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 reorder: (groupId, body) => getClient().then((c) => c.groups.reorder(groupId, 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) => getClient().then((c) => c.shared.getSharedList(listId)),\n getSharedGroup: (groupId) => getClient().then((c) => c.shared.getSharedGroup(groupId)),\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) => getClient().then((c) => c.lists.getById(listId)),\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 addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\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 reorder: (groupId, body) => getClient().then((c) => c.groups.reorder(groupId, 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) => getClient().then((c) => c.shared.getSharedList(listId)),\n getSharedGroup: (groupId) => getClient().then((c) => c.shared.getSharedGroup(groupId)),\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"]}
|
package/dist/middleware.cjs
CHANGED
|
@@ -20,8 +20,8 @@ function createLazyWishlistStackClient(getClient) {
|
|
|
20
20
|
addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body))
|
|
21
21
|
},
|
|
22
22
|
groups: {
|
|
23
|
-
getAll: () => getClient().then((c) => c.groups.getAll()),
|
|
24
|
-
getById: (groupId) => getClient().then((c) => c.groups.getById(groupId)),
|
|
23
|
+
getAll: (query) => getClient().then((c) => c.groups.getAll(query)),
|
|
24
|
+
getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),
|
|
25
25
|
create: (body) => getClient().then((c) => c.groups.create(body)),
|
|
26
26
|
update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),
|
|
27
27
|
remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),
|
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) => getClient().then((c) => c.lists.getById(listId)),\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 addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\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: () => getClient().then((c) => c.groups.getAll()),\n getById: (groupId) => getClient().then((c) => c.groups.getById(groupId)),\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 reorder: (groupId, body) => getClient().then((c) => c.groups.reorder(groupId, 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) => getClient().then((c) => c.shared.getSharedList(listId)),\n getSharedGroup: (groupId) => getClient().then((c) => c.shared.getSharedGroup(groupId)),\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) => getClient().then((c) => c.lists.getById(listId)),\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 addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\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 reorder: (groupId, body) => getClient().then((c) => c.groups.reorder(groupId, 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) => getClient().then((c) => c.shared.getSharedList(listId)),\n getSharedGroup: (groupId) => getClient().then((c) => c.shared.getSharedGroup(groupId)),\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"]}
|
package/dist/middleware.js
CHANGED
|
@@ -18,8 +18,8 @@ function createLazyWishlistStackClient(getClient) {
|
|
|
18
18
|
addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body))
|
|
19
19
|
},
|
|
20
20
|
groups: {
|
|
21
|
-
getAll: () => getClient().then((c) => c.groups.getAll()),
|
|
22
|
-
getById: (groupId) => getClient().then((c) => c.groups.getById(groupId)),
|
|
21
|
+
getAll: (query) => getClient().then((c) => c.groups.getAll(query)),
|
|
22
|
+
getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),
|
|
23
23
|
create: (body) => getClient().then((c) => c.groups.create(body)),
|
|
24
24
|
update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),
|
|
25
25
|
remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),
|
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) => getClient().then((c) => c.lists.getById(listId)),\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 addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\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: () => getClient().then((c) => c.groups.getAll()),\n getById: (groupId) => getClient().then((c) => c.groups.getById(groupId)),\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 reorder: (groupId, body) => getClient().then((c) => c.groups.reorder(groupId, 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) => getClient().then((c) => c.shared.getSharedList(listId)),\n getSharedGroup: (groupId) => getClient().then((c) => c.shared.getSharedGroup(groupId)),\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) => getClient().then((c) => c.lists.getById(listId)),\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 addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\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 reorder: (groupId, body) => getClient().then((c) => c.groups.reorder(groupId, 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) => getClient().then((c) => c.shared.getSharedList(listId)),\n getSharedGroup: (groupId) => getClient().then((c) => c.shared.getSharedGroup(groupId)),\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"]}
|
package/dist/server.cjs
CHANGED
|
@@ -20,8 +20,8 @@ function createLazyWishlistStackClient(getClient) {
|
|
|
20
20
|
addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body))
|
|
21
21
|
},
|
|
22
22
|
groups: {
|
|
23
|
-
getAll: () => getClient().then((c) => c.groups.getAll()),
|
|
24
|
-
getById: (groupId) => getClient().then((c) => c.groups.getById(groupId)),
|
|
23
|
+
getAll: (query) => getClient().then((c) => c.groups.getAll(query)),
|
|
24
|
+
getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),
|
|
25
25
|
create: (body) => getClient().then((c) => c.groups.create(body)),
|
|
26
26
|
update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),
|
|
27
27
|
remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),
|
package/dist/server.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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) => getClient().then((c) => c.lists.getById(listId)),\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 addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\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: () => getClient().then((c) => c.groups.getAll()),\n getById: (groupId) => getClient().then((c) => c.groups.getById(groupId)),\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 reorder: (groupId, body) => getClient().then((c) => c.groups.reorder(groupId, 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) => getClient().then((c) => c.shared.getSharedList(listId)),\n getSharedGroup: (groupId) => getClient().then((c) => c.shared.getSharedGroup(groupId)),\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) => getClient().then((c) => c.lists.getById(listId)),\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 addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\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 reorder: (groupId, body) => getClient().then((c) => c.groups.reorder(groupId, 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) => getClient().then((c) => c.shared.getSharedList(listId)),\n getSharedGroup: (groupId) => getClient().then((c) => c.shared.getSharedGroup(groupId)),\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"]}
|
package/dist/server.js
CHANGED
|
@@ -18,8 +18,8 @@ function createLazyWishlistStackClient(getClient) {
|
|
|
18
18
|
addItemsLegacy: (id, body) => getClient().then((c) => c.lists.addItemsLegacy(id, body))
|
|
19
19
|
},
|
|
20
20
|
groups: {
|
|
21
|
-
getAll: () => getClient().then((c) => c.groups.getAll()),
|
|
22
|
-
getById: (groupId) => getClient().then((c) => c.groups.getById(groupId)),
|
|
21
|
+
getAll: (query) => getClient().then((c) => c.groups.getAll(query)),
|
|
22
|
+
getById: (groupId, query) => getClient().then((c) => c.groups.getById(groupId, query)),
|
|
23
23
|
create: (body) => getClient().then((c) => c.groups.create(body)),
|
|
24
24
|
update: (groupId, body) => getClient().then((c) => c.groups.update(groupId, body)),
|
|
25
25
|
remove: (groupId) => getClient().then((c) => c.groups.remove(groupId)),
|
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) => getClient().then((c) => c.lists.getById(listId)),\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 addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\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: () => getClient().then((c) => c.groups.getAll()),\n getById: (groupId) => getClient().then((c) => c.groups.getById(groupId)),\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 reorder: (groupId, body) => getClient().then((c) => c.groups.reorder(groupId, 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) => getClient().then((c) => c.shared.getSharedList(listId)),\n getSharedGroup: (groupId) => getClient().then((c) => c.shared.getSharedGroup(groupId)),\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) => getClient().then((c) => c.lists.getById(listId)),\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 addItems: (listId, body) => getClient().then((c) => c.lists.addItems(listId, body)),\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 reorder: (groupId, body) => getClient().then((c) => c.groups.reorder(groupId, 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) => getClient().then((c) => c.shared.getSharedList(listId)),\n getSharedGroup: (groupId) => getClient().then((c) => c.shared.getSharedGroup(groupId)),\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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sdg.la/wishlist-stack-hydrogen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.1",
|
|
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.10.1"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"react": ">=18",
|