@rechargeapps/storefront-client 1.86.1 → 1.88.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/dist/cjs/api/address.js +1 -1
- package/dist/cjs/api/address.js.map +1 -1
- package/dist/cjs/api/auth.js +1 -1
- package/dist/cjs/api/bundleData.js +1 -1
- package/dist/cjs/utils/request.js +7 -4
- package/dist/cjs/utils/request.js.map +1 -1
- package/dist/esm/api/address.js +1 -1
- package/dist/esm/api/address.js.map +1 -1
- package/dist/esm/api/auth.js +1 -1
- package/dist/esm/api/bundleData.js +1 -1
- package/dist/esm/utils/request.js +7 -4
- package/dist/esm/utils/request.js.map +1 -1
- package/dist/index.d.ts +13 -3
- package/dist/umd/recharge-client.min.js +10 -10
- package/package.json +6 -5
package/dist/cjs/api/address.js
CHANGED
|
@@ -29,7 +29,7 @@ async function createAddress(session, createRequest) {
|
|
|
29
29
|
const { address } = await request.rechargeApiRequest(
|
|
30
30
|
"post",
|
|
31
31
|
`/addresses`,
|
|
32
|
-
{ data: { customer_id: session.customerId ? Number(session.customerId) : void 0
|
|
32
|
+
{ data: { ...createRequest, customer_id: session.customerId ? Number(session.customerId) : void 0 } },
|
|
33
33
|
request.getInternalSession(session, "createAddress")
|
|
34
34
|
);
|
|
35
35
|
return address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","sources":["../../../src/api/address.ts"],"sourcesContent":["import { getInternalSession, rechargeApiRequest } from '../utils/request';\nimport {\n AddressResponse,\n AddressListParams,\n CreateAddressRequest,\n UpdateAddressRequest,\n AddressListResponse,\n MergeAddressesRequest,\n SkipFutureChargeAddressRequest,\n SkipFutureChargeAddressResponse,\n GetAddressOptions,\n Session,\n UpdateAddressParams,\n} from '../types';\n\n/** Returns all addresses from the store, or addresses for the customer given in the parameter. */\nexport function listAddresses(session: Session, query?: AddressListParams) {\n return rechargeApiRequest<AddressListResponse>(\n 'get',\n `/addresses`,\n { query },\n getInternalSession(session, 'listAddresses')\n );\n}\n\n/** Retrieves address for customer based on specified address id. */\nexport async function getAddress(session: Session, id: string | number, options?: GetAddressOptions) {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'get',\n `/addresses`,\n {\n id,\n query: { include: options?.include },\n },\n getInternalSession(session, 'getAddress')\n );\n return address;\n}\n\n/** Create a new address for a customer. */\nexport async function createAddress(session: Session, createRequest: CreateAddressRequest) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'post',\n `/addresses`,\n { data: { customer_id: session.customerId ? Number(session.customerId) : undefined
|
|
1
|
+
{"version":3,"file":"address.js","sources":["../../../src/api/address.ts"],"sourcesContent":["import { getInternalSession, rechargeApiRequest } from '../utils/request';\nimport {\n AddressResponse,\n AddressListParams,\n CreateAddressRequest,\n UpdateAddressRequest,\n AddressListResponse,\n MergeAddressesRequest,\n SkipFutureChargeAddressRequest,\n SkipFutureChargeAddressResponse,\n GetAddressOptions,\n Session,\n UpdateAddressParams,\n} from '../types';\n\n/** Returns all addresses from the store, or addresses for the customer given in the parameter. */\nexport function listAddresses(session: Session, query?: AddressListParams) {\n return rechargeApiRequest<AddressListResponse>(\n 'get',\n `/addresses`,\n { query },\n getInternalSession(session, 'listAddresses')\n );\n}\n\n/** Retrieves address for customer based on specified address id. */\nexport async function getAddress(session: Session, id: string | number, options?: GetAddressOptions) {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'get',\n `/addresses`,\n {\n id,\n query: { include: options?.include },\n },\n getInternalSession(session, 'getAddress')\n );\n return address;\n}\n\n/** Create a new address for a customer. */\nexport async function createAddress(session: Session, createRequest: CreateAddressRequest) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'post',\n `/addresses`,\n { data: { ...createRequest, customer_id: session.customerId ? Number(session.customerId) : undefined } },\n getInternalSession(session, 'createAddress')\n );\n return address;\n}\n\n/** Updates an existing address to match the specified parameters. */\nexport async function updateAddress(\n session: Session,\n id: string | number,\n updateRequest: UpdateAddressRequest,\n query?: UpdateAddressParams\n) {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'put',\n `/addresses`,\n { id, data: updateRequest, query },\n getInternalSession(session, 'updateAddress')\n );\n return address;\n}\n\n/** Apply discount code to an address. Addresses are currently limited to a single discount. */\nexport async function applyDiscountToAddress(\n session: Session,\n id: string | number,\n discountCode: string,\n query?: UpdateAddressParams\n) {\n return updateAddress(\n getInternalSession(session, 'applyDiscountToAddress'),\n id,\n {\n discounts: [{ code: discountCode }],\n },\n query\n );\n}\n\n/** Removes all discounts from an address. */\nexport async function removeDiscountsFromAddress(session: Session, id: string | number, query?: UpdateAddressParams) {\n if (id === undefined || id === '') {\n throw new Error('Id is required');\n }\n return updateAddress(getInternalSession(session, 'removeDiscountsFromAddress'), id, { discounts: [] }, query);\n}\n\n/** Deletes an address. Only Addresses with no active Subscriptions can be deleted. */\nexport function deleteAddress(session: Session, id: string | number) {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n return rechargeApiRequest<void>('delete', `/addresses`, { id }, getInternalSession(session, 'deleteAddress'));\n}\n\n/**\n * Merges up to 10 source addresses into 1 target address.\n */\nexport async function mergeAddresses(session: Session, mergeRequest: MergeAddressesRequest) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'post',\n `/addresses/merge`,\n {\n data: mergeRequest,\n },\n getInternalSession(session, 'mergeAddresses')\n );\n return address;\n}\n\n/**\n * Skip a Charge in the future for one or multiple Subscriptions associated with the Address.\n */\nexport async function skipFutureCharge(\n session: Session,\n id: string | number,\n skipRequest: SkipFutureChargeAddressRequest\n) {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { charge } = await rechargeApiRequest<SkipFutureChargeAddressResponse>(\n 'post',\n `/addresses/${id}/charges/skip`,\n {\n data: skipRequest,\n },\n getInternalSession(session, 'skipFutureCharge')\n );\n return charge;\n}\n"],"names":["rechargeApiRequest","getInternalSession"],"mappings":"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"}
|
package/dist/cjs/api/auth.js
CHANGED
|
@@ -181,7 +181,7 @@ async function rechargeAdminRequest(method, url, { id, query, data, headers } =
|
|
|
181
181
|
...storefrontAccessToken ? { "X-Recharge-Storefront-Access-Token": storefrontAccessToken } : {},
|
|
182
182
|
...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
|
|
183
183
|
...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {},
|
|
184
|
-
"X-Recharge-Sdk-Version": "1.
|
|
184
|
+
"X-Recharge-Sdk-Version": "1.88.0",
|
|
185
185
|
...headers ? headers : {}
|
|
186
186
|
};
|
|
187
187
|
return request.request(method, `${rechargeBaseUrl}${url}`, { id, query, data, headers: reqHeaders });
|
|
@@ -15,7 +15,7 @@ async function loadFromOnlineStore(id, country_code) {
|
|
|
15
15
|
const { appName, appVersion } = options.getOptions();
|
|
16
16
|
const headers = {
|
|
17
17
|
"X-Recharge-Sdk-Fn": "loadFromOnlineStore",
|
|
18
|
-
"X-Recharge-Sdk-Version": "1.
|
|
18
|
+
"X-Recharge-Sdk-Version": "1.88.0",
|
|
19
19
|
...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
|
|
20
20
|
...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {}
|
|
21
21
|
};
|
|
@@ -9,11 +9,12 @@ var error = require('./error.js');
|
|
|
9
9
|
|
|
10
10
|
function stringifyQuery(str) {
|
|
11
11
|
return stringify(str, {
|
|
12
|
-
|
|
12
|
+
encodeValuesOnly: true,
|
|
13
13
|
indices: false,
|
|
14
14
|
arrayFormat: "comma"
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
|
+
const RESERVED_QUERY_KEYS = /* @__PURE__ */ new Set(["shop_url"]);
|
|
17
18
|
function getInternalSession(session, fnName) {
|
|
18
19
|
return {
|
|
19
20
|
...session,
|
|
@@ -49,14 +50,16 @@ async function rechargeApiRequest(method, url, { id, query, data, headers } = {}
|
|
|
49
50
|
"X-Recharge-Sdk-Fn": session.internalFnCall,
|
|
50
51
|
...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
|
|
51
52
|
...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {},
|
|
52
|
-
"X-Recharge-Sdk-Version": "1.
|
|
53
|
+
"X-Recharge-Sdk-Version": "1.88.0",
|
|
53
54
|
"X-Request-Id": session.internalRequestId,
|
|
54
55
|
...session.tmp_fn_identifier ? { "X-Recharge-Sdk-Fn-Identifier": session.tmp_fn_identifier } : {},
|
|
55
56
|
...headers ? headers : {}
|
|
56
57
|
};
|
|
58
|
+
const callerQuery = query;
|
|
59
|
+
const sanitizedCallerQuery = callerQuery ? Object.fromEntries(Object.entries(callerQuery).filter(([k]) => !RESERVED_QUERY_KEYS.has(k))) : void 0;
|
|
57
60
|
const localQuery = {
|
|
58
|
-
|
|
59
|
-
|
|
61
|
+
...sanitizedCallerQuery,
|
|
62
|
+
shop_url: storeIdentifier
|
|
60
63
|
};
|
|
61
64
|
try {
|
|
62
65
|
return await request(method, `${rechargeBaseUrl}${url}`, { id, query: localQuery, data, headers: reqHeaders });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sources":["../../../src/utils/request.ts"],"sourcesContent":["import 'isomorphic-fetch';\n\nimport { nanoid } from 'nanoid/non-secure';\nimport stringify from 'qs/lib/stringify';\n\nimport { Method, RequestHeaders, RequestOptions, InternalSession, Session } from '../types';\nimport { getOptions } from './options';\nimport { RECHARGE_API_URL, RECHARGE_CDN_URL, SHOPIFY_APP_PROXY_URL } from '../constants/api';\nimport { RechargeRequestError } from './error';\n\nfunction stringifyQuery(str: unknown): string {\n return stringify(str, {\n encode: false,\n indices: false,\n arrayFormat: 'comma',\n });\n}\n\n/** @internal */\nexport function getInternalSession(session: Session | InternalSession, fnName: string): InternalSession {\n return {\n ...session,\n internalFnCall: (session as InternalSession).internalFnCall ?? fnName,\n internalRequestId: (session as InternalSession).internalRequestId ?? nanoid(),\n };\n}\n\nexport async function cdnRequest<T>(method: Method, url: string, requestOptions: RequestOptions = {}): Promise<T> {\n const opts = getOptions();\n return request(method, `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}${url}`, requestOptions);\n}\n\nexport async function rechargeApiRequest<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {},\n session: InternalSession\n): Promise<T> {\n const {\n environment,\n environmentUri,\n storeIdentifier,\n loginRetryFn,\n __unstable_twoFactorRetryFn,\n appName,\n appVersion,\n } = getOptions();\n if (!storeIdentifier) {\n throw new Error('InitRecharge has not been called and/or no store identifier has been defined.');\n }\n const token = session.apiToken;\n if (!token) {\n throw new Error('No API token defined on session.');\n }\n const rechargeBaseUrl = RECHARGE_API_URL(environment, environmentUri);\n const reqHeaders: RequestHeaders = {\n 'X-Recharge-Access-Token': token,\n 'X-Recharge-Version': '2021-11',\n 'X-Recharge-Sdk-Fn': session.internalFnCall,\n ...(appName ? { 'X-Recharge-Sdk-App-Name': appName } : {}),\n ...(appVersion ? { 'X-Recharge-Sdk-App-Version': appVersion } : {}),\n 'X-Recharge-Sdk-Version': '__SDK_VERSION__',\n 'X-Request-Id': session.internalRequestId,\n ...(session.tmp_fn_identifier ? { 'X-Recharge-Sdk-Fn-Identifier': session.tmp_fn_identifier } : {}),\n ...(headers ? headers : {}),\n };\n\n const localQuery = {\n shop_url: storeIdentifier,\n ...(query as any),\n };\n\n try {\n // await to catch any errors\n return await request<T>(method, `${rechargeBaseUrl}${url}`, { id, query: localQuery, data, headers: reqHeaders });\n } catch (error: unknown) {\n if (loginRetryFn && error instanceof RechargeRequestError && error.status === 401) {\n // call loginRetryFn and retry request on 401\n return loginRetryFn().then(session => {\n if (session) {\n return request(method, `${rechargeBaseUrl}${url}`, {\n id,\n query: localQuery,\n data,\n headers: {\n ...reqHeaders,\n 'X-Recharge-Access-Token': session.apiToken,\n },\n });\n }\n throw error;\n });\n } else if (__unstable_twoFactorRetryFn && error instanceof RechargeRequestError && error.status === 423) {\n // trigger two-factor authentication flow and retry request on 423\n return __unstable_twoFactorRetryFn().then(session => {\n if (session) {\n return request(method, `${rechargeBaseUrl}${url}`, {\n id,\n query: localQuery,\n data,\n headers: {\n ...reqHeaders,\n 'X-Recharge-Access-Token': session.apiToken,\n },\n });\n }\n throw error;\n });\n }\n throw error;\n }\n}\n\nexport async function shopifyAppProxyRequest<T>(\n method: Method,\n url: string,\n requestOptions: RequestOptions = {}\n): Promise<T> {\n return request(method, `${SHOPIFY_APP_PROXY_URL}${url}`, requestOptions);\n}\n\nexport async function request<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {}\n): Promise<T> {\n let reqUrl = url.trim();\n\n if (id) {\n reqUrl = [reqUrl, `${id}`.trim()].join('/');\n }\n\n if (query) {\n let exQuery;\n [reqUrl, exQuery] = reqUrl.split('?');\n const fullQuery = [exQuery, stringifyQuery(query)].join('&').replace(/^&/, '');\n reqUrl = `${reqUrl}${fullQuery ? `?${fullQuery}` : ''}`;\n }\n\n let reqBody;\n if (data && method !== 'get') {\n reqBody = JSON.stringify(data);\n }\n\n const reqHeaders: RequestHeaders = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'X-Recharge-App': 'storefront-client',\n ...(headers ? headers : {}),\n };\n\n const response = await fetch(reqUrl, {\n method,\n headers: reqHeaders,\n body: reqBody,\n });\n\n let result;\n try {\n result = await response.json();\n } catch (e) {\n // If we get here, it means we were a no content response.\n }\n\n if (!response.ok) {\n if (response.status === 502 || response.status === 504) {\n throw new RechargeRequestError('A gateway error occurred while making the request', response.status);\n } else if (result && result.error) {\n throw new RechargeRequestError(result.error, response.status);\n } else if (result && result.errors) {\n throw new RechargeRequestError(JSON.stringify(result.errors), response.status);\n } else {\n throw new RechargeRequestError('A connection error occurred while making the request');\n }\n }\n\n return result as T;\n}\n"],"names":["nanoid","getOptions","RECHARGE_CDN_URL","RECHARGE_API_URL","error","RechargeRequestError","session","SHOPIFY_APP_PROXY_URL"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"request.js","sources":["../../../src/utils/request.ts"],"sourcesContent":["import 'isomorphic-fetch';\n\nimport { nanoid } from 'nanoid/non-secure';\nimport stringify from 'qs/lib/stringify';\n\nimport { Method, RequestHeaders, RequestOptions, InternalSession, Session } from '../types';\nimport { getOptions } from './options';\nimport { RECHARGE_API_URL, RECHARGE_CDN_URL, SHOPIFY_APP_PROXY_URL } from '../constants/api';\nimport { RechargeRequestError } from './error';\n\nfunction stringifyQuery(str: unknown): string {\n return stringify(str, {\n encodeValuesOnly: true,\n indices: false,\n arrayFormat: 'comma',\n });\n}\n\nconst RESERVED_QUERY_KEYS = new Set(['shop_url']);\n\n/** @internal */\nexport function getInternalSession(session: Session | InternalSession, fnName: string): InternalSession {\n return {\n ...session,\n internalFnCall: (session as InternalSession).internalFnCall ?? fnName,\n internalRequestId: (session as InternalSession).internalRequestId ?? nanoid(),\n };\n}\n\nexport async function cdnRequest<T>(method: Method, url: string, requestOptions: RequestOptions = {}): Promise<T> {\n const opts = getOptions();\n return request(method, `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}${url}`, requestOptions);\n}\n\nexport async function rechargeApiRequest<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {},\n session: InternalSession\n): Promise<T> {\n const {\n environment,\n environmentUri,\n storeIdentifier,\n loginRetryFn,\n __unstable_twoFactorRetryFn,\n appName,\n appVersion,\n } = getOptions();\n if (!storeIdentifier) {\n throw new Error('InitRecharge has not been called and/or no store identifier has been defined.');\n }\n const token = session.apiToken;\n if (!token) {\n throw new Error('No API token defined on session.');\n }\n const rechargeBaseUrl = RECHARGE_API_URL(environment, environmentUri);\n const reqHeaders: RequestHeaders = {\n 'X-Recharge-Access-Token': token,\n 'X-Recharge-Version': '2021-11',\n 'X-Recharge-Sdk-Fn': session.internalFnCall,\n ...(appName ? { 'X-Recharge-Sdk-App-Name': appName } : {}),\n ...(appVersion ? { 'X-Recharge-Sdk-App-Version': appVersion } : {}),\n 'X-Recharge-Sdk-Version': '__SDK_VERSION__',\n 'X-Request-Id': session.internalRequestId,\n ...(session.tmp_fn_identifier ? { 'X-Recharge-Sdk-Fn-Identifier': session.tmp_fn_identifier } : {}),\n ...(headers ? headers : {}),\n };\n\n const callerQuery = query as Record<string, unknown> | undefined;\n const sanitizedCallerQuery = callerQuery\n ? Object.fromEntries(Object.entries(callerQuery).filter(([k]) => !RESERVED_QUERY_KEYS.has(k)))\n : undefined;\n\n const localQuery = {\n ...sanitizedCallerQuery,\n shop_url: storeIdentifier,\n };\n\n try {\n // await to catch any errors\n return await request<T>(method, `${rechargeBaseUrl}${url}`, { id, query: localQuery, data, headers: reqHeaders });\n } catch (error: unknown) {\n if (loginRetryFn && error instanceof RechargeRequestError && error.status === 401) {\n // call loginRetryFn and retry request on 401\n return loginRetryFn().then(session => {\n if (session) {\n return request(method, `${rechargeBaseUrl}${url}`, {\n id,\n query: localQuery,\n data,\n headers: {\n ...reqHeaders,\n 'X-Recharge-Access-Token': session.apiToken,\n },\n });\n }\n throw error;\n });\n } else if (__unstable_twoFactorRetryFn && error instanceof RechargeRequestError && error.status === 423) {\n // trigger two-factor authentication flow and retry request on 423\n return __unstable_twoFactorRetryFn().then(session => {\n if (session) {\n return request(method, `${rechargeBaseUrl}${url}`, {\n id,\n query: localQuery,\n data,\n headers: {\n ...reqHeaders,\n 'X-Recharge-Access-Token': session.apiToken,\n },\n });\n }\n throw error;\n });\n }\n throw error;\n }\n}\n\nexport async function shopifyAppProxyRequest<T>(\n method: Method,\n url: string,\n requestOptions: RequestOptions = {}\n): Promise<T> {\n return request(method, `${SHOPIFY_APP_PROXY_URL}${url}`, requestOptions);\n}\n\nexport async function request<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {}\n): Promise<T> {\n let reqUrl = url.trim();\n\n if (id) {\n reqUrl = [reqUrl, `${id}`.trim()].join('/');\n }\n\n if (query) {\n let exQuery;\n [reqUrl, exQuery] = reqUrl.split('?');\n const fullQuery = [exQuery, stringifyQuery(query)].join('&').replace(/^&/, '');\n reqUrl = `${reqUrl}${fullQuery ? `?${fullQuery}` : ''}`;\n }\n\n let reqBody;\n if (data && method !== 'get') {\n reqBody = JSON.stringify(data);\n }\n\n const reqHeaders: RequestHeaders = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'X-Recharge-App': 'storefront-client',\n ...(headers ? headers : {}),\n };\n\n const response = await fetch(reqUrl, {\n method,\n headers: reqHeaders,\n body: reqBody,\n });\n\n let result;\n try {\n result = await response.json();\n } catch (e) {\n // If we get here, it means we were a no content response.\n }\n\n if (!response.ok) {\n if (response.status === 502 || response.status === 504) {\n throw new RechargeRequestError('A gateway error occurred while making the request', response.status);\n } else if (result && result.error) {\n throw new RechargeRequestError(result.error, response.status);\n } else if (result && result.errors) {\n throw new RechargeRequestError(JSON.stringify(result.errors), response.status);\n } else {\n throw new RechargeRequestError('A connection error occurred while making the request');\n }\n }\n\n return result as T;\n}\n"],"names":["nanoid","getOptions","RECHARGE_CDN_URL","RECHARGE_API_URL","error","RechargeRequestError","session","SHOPIFY_APP_PROXY_URL"],"mappings":"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"}
|
package/dist/esm/api/address.js
CHANGED
|
@@ -27,7 +27,7 @@ async function createAddress(session, createRequest) {
|
|
|
27
27
|
const { address } = await rechargeApiRequest(
|
|
28
28
|
"post",
|
|
29
29
|
`/addresses`,
|
|
30
|
-
{ data: { customer_id: session.customerId ? Number(session.customerId) : void 0
|
|
30
|
+
{ data: { ...createRequest, customer_id: session.customerId ? Number(session.customerId) : void 0 } },
|
|
31
31
|
getInternalSession(session, "createAddress")
|
|
32
32
|
);
|
|
33
33
|
return address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","sources":["../../../src/api/address.ts"],"sourcesContent":["import { getInternalSession, rechargeApiRequest } from '../utils/request';\nimport {\n AddressResponse,\n AddressListParams,\n CreateAddressRequest,\n UpdateAddressRequest,\n AddressListResponse,\n MergeAddressesRequest,\n SkipFutureChargeAddressRequest,\n SkipFutureChargeAddressResponse,\n GetAddressOptions,\n Session,\n UpdateAddressParams,\n} from '../types';\n\n/** Returns all addresses from the store, or addresses for the customer given in the parameter. */\nexport function listAddresses(session: Session, query?: AddressListParams) {\n return rechargeApiRequest<AddressListResponse>(\n 'get',\n `/addresses`,\n { query },\n getInternalSession(session, 'listAddresses')\n );\n}\n\n/** Retrieves address for customer based on specified address id. */\nexport async function getAddress(session: Session, id: string | number, options?: GetAddressOptions) {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'get',\n `/addresses`,\n {\n id,\n query: { include: options?.include },\n },\n getInternalSession(session, 'getAddress')\n );\n return address;\n}\n\n/** Create a new address for a customer. */\nexport async function createAddress(session: Session, createRequest: CreateAddressRequest) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'post',\n `/addresses`,\n { data: { customer_id: session.customerId ? Number(session.customerId) : undefined
|
|
1
|
+
{"version":3,"file":"address.js","sources":["../../../src/api/address.ts"],"sourcesContent":["import { getInternalSession, rechargeApiRequest } from '../utils/request';\nimport {\n AddressResponse,\n AddressListParams,\n CreateAddressRequest,\n UpdateAddressRequest,\n AddressListResponse,\n MergeAddressesRequest,\n SkipFutureChargeAddressRequest,\n SkipFutureChargeAddressResponse,\n GetAddressOptions,\n Session,\n UpdateAddressParams,\n} from '../types';\n\n/** Returns all addresses from the store, or addresses for the customer given in the parameter. */\nexport function listAddresses(session: Session, query?: AddressListParams) {\n return rechargeApiRequest<AddressListResponse>(\n 'get',\n `/addresses`,\n { query },\n getInternalSession(session, 'listAddresses')\n );\n}\n\n/** Retrieves address for customer based on specified address id. */\nexport async function getAddress(session: Session, id: string | number, options?: GetAddressOptions) {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'get',\n `/addresses`,\n {\n id,\n query: { include: options?.include },\n },\n getInternalSession(session, 'getAddress')\n );\n return address;\n}\n\n/** Create a new address for a customer. */\nexport async function createAddress(session: Session, createRequest: CreateAddressRequest) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'post',\n `/addresses`,\n { data: { ...createRequest, customer_id: session.customerId ? Number(session.customerId) : undefined } },\n getInternalSession(session, 'createAddress')\n );\n return address;\n}\n\n/** Updates an existing address to match the specified parameters. */\nexport async function updateAddress(\n session: Session,\n id: string | number,\n updateRequest: UpdateAddressRequest,\n query?: UpdateAddressParams\n) {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'put',\n `/addresses`,\n { id, data: updateRequest, query },\n getInternalSession(session, 'updateAddress')\n );\n return address;\n}\n\n/** Apply discount code to an address. Addresses are currently limited to a single discount. */\nexport async function applyDiscountToAddress(\n session: Session,\n id: string | number,\n discountCode: string,\n query?: UpdateAddressParams\n) {\n return updateAddress(\n getInternalSession(session, 'applyDiscountToAddress'),\n id,\n {\n discounts: [{ code: discountCode }],\n },\n query\n );\n}\n\n/** Removes all discounts from an address. */\nexport async function removeDiscountsFromAddress(session: Session, id: string | number, query?: UpdateAddressParams) {\n if (id === undefined || id === '') {\n throw new Error('Id is required');\n }\n return updateAddress(getInternalSession(session, 'removeDiscountsFromAddress'), id, { discounts: [] }, query);\n}\n\n/** Deletes an address. Only Addresses with no active Subscriptions can be deleted. */\nexport function deleteAddress(session: Session, id: string | number) {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n return rechargeApiRequest<void>('delete', `/addresses`, { id }, getInternalSession(session, 'deleteAddress'));\n}\n\n/**\n * Merges up to 10 source addresses into 1 target address.\n */\nexport async function mergeAddresses(session: Session, mergeRequest: MergeAddressesRequest) {\n const { address } = await rechargeApiRequest<AddressResponse>(\n 'post',\n `/addresses/merge`,\n {\n data: mergeRequest,\n },\n getInternalSession(session, 'mergeAddresses')\n );\n return address;\n}\n\n/**\n * Skip a Charge in the future for one or multiple Subscriptions associated with the Address.\n */\nexport async function skipFutureCharge(\n session: Session,\n id: string | number,\n skipRequest: SkipFutureChargeAddressRequest\n) {\n if (id === undefined || id === '') {\n throw new Error('ID is required');\n }\n const { charge } = await rechargeApiRequest<SkipFutureChargeAddressResponse>(\n 'post',\n `/addresses/${id}/charges/skip`,\n {\n data: skipRequest,\n },\n getInternalSession(session, 'skipFutureCharge')\n );\n return charge;\n}\n"],"names":[],"mappings":"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"}
|
package/dist/esm/api/auth.js
CHANGED
|
@@ -179,7 +179,7 @@ async function rechargeAdminRequest(method, url, { id, query, data, headers } =
|
|
|
179
179
|
...storefrontAccessToken ? { "X-Recharge-Storefront-Access-Token": storefrontAccessToken } : {},
|
|
180
180
|
...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
|
|
181
181
|
...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {},
|
|
182
|
-
"X-Recharge-Sdk-Version": "1.
|
|
182
|
+
"X-Recharge-Sdk-Version": "1.88.0",
|
|
183
183
|
...headers ? headers : {}
|
|
184
184
|
};
|
|
185
185
|
return request(method, `${rechargeBaseUrl}${url}`, { id, query, data, headers: reqHeaders });
|
|
@@ -13,7 +13,7 @@ async function loadFromOnlineStore(id, country_code) {
|
|
|
13
13
|
const { appName, appVersion } = getOptions();
|
|
14
14
|
const headers = {
|
|
15
15
|
"X-Recharge-Sdk-Fn": "loadFromOnlineStore",
|
|
16
|
-
"X-Recharge-Sdk-Version": "1.
|
|
16
|
+
"X-Recharge-Sdk-Version": "1.88.0",
|
|
17
17
|
...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
|
|
18
18
|
...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {}
|
|
19
19
|
};
|
|
@@ -7,11 +7,12 @@ import { RechargeRequestError } from './error.js';
|
|
|
7
7
|
|
|
8
8
|
function stringifyQuery(str) {
|
|
9
9
|
return stringify(str, {
|
|
10
|
-
|
|
10
|
+
encodeValuesOnly: true,
|
|
11
11
|
indices: false,
|
|
12
12
|
arrayFormat: "comma"
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
|
+
const RESERVED_QUERY_KEYS = /* @__PURE__ */ new Set(["shop_url"]);
|
|
15
16
|
function getInternalSession(session, fnName) {
|
|
16
17
|
return {
|
|
17
18
|
...session,
|
|
@@ -47,14 +48,16 @@ async function rechargeApiRequest(method, url, { id, query, data, headers } = {}
|
|
|
47
48
|
"X-Recharge-Sdk-Fn": session.internalFnCall,
|
|
48
49
|
...appName ? { "X-Recharge-Sdk-App-Name": appName } : {},
|
|
49
50
|
...appVersion ? { "X-Recharge-Sdk-App-Version": appVersion } : {},
|
|
50
|
-
"X-Recharge-Sdk-Version": "1.
|
|
51
|
+
"X-Recharge-Sdk-Version": "1.88.0",
|
|
51
52
|
"X-Request-Id": session.internalRequestId,
|
|
52
53
|
...session.tmp_fn_identifier ? { "X-Recharge-Sdk-Fn-Identifier": session.tmp_fn_identifier } : {},
|
|
53
54
|
...headers ? headers : {}
|
|
54
55
|
};
|
|
56
|
+
const callerQuery = query;
|
|
57
|
+
const sanitizedCallerQuery = callerQuery ? Object.fromEntries(Object.entries(callerQuery).filter(([k]) => !RESERVED_QUERY_KEYS.has(k))) : void 0;
|
|
55
58
|
const localQuery = {
|
|
56
|
-
|
|
57
|
-
|
|
59
|
+
...sanitizedCallerQuery,
|
|
60
|
+
shop_url: storeIdentifier
|
|
58
61
|
};
|
|
59
62
|
try {
|
|
60
63
|
return await request(method, `${rechargeBaseUrl}${url}`, { id, query: localQuery, data, headers: reqHeaders });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sources":["../../../src/utils/request.ts"],"sourcesContent":["import 'isomorphic-fetch';\n\nimport { nanoid } from 'nanoid/non-secure';\nimport stringify from 'qs/lib/stringify';\n\nimport { Method, RequestHeaders, RequestOptions, InternalSession, Session } from '../types';\nimport { getOptions } from './options';\nimport { RECHARGE_API_URL, RECHARGE_CDN_URL, SHOPIFY_APP_PROXY_URL } from '../constants/api';\nimport { RechargeRequestError } from './error';\n\nfunction stringifyQuery(str: unknown): string {\n return stringify(str, {\n encode: false,\n indices: false,\n arrayFormat: 'comma',\n });\n}\n\n/** @internal */\nexport function getInternalSession(session: Session | InternalSession, fnName: string): InternalSession {\n return {\n ...session,\n internalFnCall: (session as InternalSession).internalFnCall ?? fnName,\n internalRequestId: (session as InternalSession).internalRequestId ?? nanoid(),\n };\n}\n\nexport async function cdnRequest<T>(method: Method, url: string, requestOptions: RequestOptions = {}): Promise<T> {\n const opts = getOptions();\n return request(method, `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}${url}`, requestOptions);\n}\n\nexport async function rechargeApiRequest<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {},\n session: InternalSession\n): Promise<T> {\n const {\n environment,\n environmentUri,\n storeIdentifier,\n loginRetryFn,\n __unstable_twoFactorRetryFn,\n appName,\n appVersion,\n } = getOptions();\n if (!storeIdentifier) {\n throw new Error('InitRecharge has not been called and/or no store identifier has been defined.');\n }\n const token = session.apiToken;\n if (!token) {\n throw new Error('No API token defined on session.');\n }\n const rechargeBaseUrl = RECHARGE_API_URL(environment, environmentUri);\n const reqHeaders: RequestHeaders = {\n 'X-Recharge-Access-Token': token,\n 'X-Recharge-Version': '2021-11',\n 'X-Recharge-Sdk-Fn': session.internalFnCall,\n ...(appName ? { 'X-Recharge-Sdk-App-Name': appName } : {}),\n ...(appVersion ? { 'X-Recharge-Sdk-App-Version': appVersion } : {}),\n 'X-Recharge-Sdk-Version': '__SDK_VERSION__',\n 'X-Request-Id': session.internalRequestId,\n ...(session.tmp_fn_identifier ? { 'X-Recharge-Sdk-Fn-Identifier': session.tmp_fn_identifier } : {}),\n ...(headers ? headers : {}),\n };\n\n const localQuery = {\n shop_url: storeIdentifier,\n ...(query as any),\n };\n\n try {\n // await to catch any errors\n return await request<T>(method, `${rechargeBaseUrl}${url}`, { id, query: localQuery, data, headers: reqHeaders });\n } catch (error: unknown) {\n if (loginRetryFn && error instanceof RechargeRequestError && error.status === 401) {\n // call loginRetryFn and retry request on 401\n return loginRetryFn().then(session => {\n if (session) {\n return request(method, `${rechargeBaseUrl}${url}`, {\n id,\n query: localQuery,\n data,\n headers: {\n ...reqHeaders,\n 'X-Recharge-Access-Token': session.apiToken,\n },\n });\n }\n throw error;\n });\n } else if (__unstable_twoFactorRetryFn && error instanceof RechargeRequestError && error.status === 423) {\n // trigger two-factor authentication flow and retry request on 423\n return __unstable_twoFactorRetryFn().then(session => {\n if (session) {\n return request(method, `${rechargeBaseUrl}${url}`, {\n id,\n query: localQuery,\n data,\n headers: {\n ...reqHeaders,\n 'X-Recharge-Access-Token': session.apiToken,\n },\n });\n }\n throw error;\n });\n }\n throw error;\n }\n}\n\nexport async function shopifyAppProxyRequest<T>(\n method: Method,\n url: string,\n requestOptions: RequestOptions = {}\n): Promise<T> {\n return request(method, `${SHOPIFY_APP_PROXY_URL}${url}`, requestOptions);\n}\n\nexport async function request<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {}\n): Promise<T> {\n let reqUrl = url.trim();\n\n if (id) {\n reqUrl = [reqUrl, `${id}`.trim()].join('/');\n }\n\n if (query) {\n let exQuery;\n [reqUrl, exQuery] = reqUrl.split('?');\n const fullQuery = [exQuery, stringifyQuery(query)].join('&').replace(/^&/, '');\n reqUrl = `${reqUrl}${fullQuery ? `?${fullQuery}` : ''}`;\n }\n\n let reqBody;\n if (data && method !== 'get') {\n reqBody = JSON.stringify(data);\n }\n\n const reqHeaders: RequestHeaders = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'X-Recharge-App': 'storefront-client',\n ...(headers ? headers : {}),\n };\n\n const response = await fetch(reqUrl, {\n method,\n headers: reqHeaders,\n body: reqBody,\n });\n\n let result;\n try {\n result = await response.json();\n } catch (e) {\n // If we get here, it means we were a no content response.\n }\n\n if (!response.ok) {\n if (response.status === 502 || response.status === 504) {\n throw new RechargeRequestError('A gateway error occurred while making the request', response.status);\n } else if (result && result.error) {\n throw new RechargeRequestError(result.error, response.status);\n } else if (result && result.errors) {\n throw new RechargeRequestError(JSON.stringify(result.errors), response.status);\n } else {\n throw new RechargeRequestError('A connection error occurred while making the request');\n }\n }\n\n return result as T;\n}\n"],"names":["session"],"mappings":";;;;;;;AAUA,SAAS,eAAe,GAAsB,EAAA;AAC5C,EAAA,OAAO,UAAU,GAAK,EAAA;AAAA,IACpB,MAAQ,EAAA,KAAA;AAAA,IACR,OAAS,EAAA,KAAA;AAAA,IACT,WAAa,EAAA,OAAA;AAAA,GACd,CAAA,CAAA;AACH,CAAA;AAGgB,SAAA,kBAAA,CAAmB,SAAoC,MAAiC,EAAA;AACtG,EAAO,OAAA;AAAA,IACL,GAAG,OAAA;AAAA,IACH,cAAA,EAAiB,QAA4B,cAAkB,IAAA,MAAA;AAAA,IAC/D,iBAAA,EAAoB,OAA4B,CAAA,iBAAA,IAAqB,MAAO,EAAA;AAAA,GAC9E,CAAA;AACF,CAAA;AAEA,eAAsB,UAAc,CAAA,MAAA,EAAgB,GAAa,EAAA,cAAA,GAAiC,EAAgB,EAAA;AAChH,EAAA,MAAM,OAAO,UAAW,EAAA,CAAA;AACxB,EAAA,OAAO,OAAQ,CAAA,MAAA,EAAQ,CAAG,EAAA,gBAAA,CAAiB,IAAK,CAAA,WAAW,CAAC,CAAA,OAAA,EAAU,IAAK,CAAA,eAAe,CAAG,EAAA,GAAG,IAAI,cAAc,CAAA,CAAA;AACpH,CAAA;AAEsB,eAAA,kBAAA,CACpB,MACA,EAAA,GAAA,EACA,EAAE,EAAA,EAAI,KAAO,EAAA,IAAA,EAAM,OAAQ,EAAA,GAAoB,EAAC,EAChD,OACY,EAAA;AACZ,EAAM,MAAA;AAAA,IACJ,WAAA;AAAA,IACA,cAAA;AAAA,IACA,eAAA;AAAA,IACA,YAAA;AAAA,IACA,2BAAA;AAAA,IACA,OAAA;AAAA,IACA,UAAA;AAAA,MACE,UAAW,EAAA,CAAA;AACf,EAAA,IAAI,CAAC,eAAiB,EAAA;AACpB,IAAM,MAAA,IAAI,MAAM,+EAA+E,CAAA,CAAA;AAAA,GACjG;AACA,EAAA,MAAM,QAAQ,OAAQ,CAAA,QAAA,CAAA;AACtB,EAAA,IAAI,CAAC,KAAO,EAAA;AACV,IAAM,MAAA,IAAI,MAAM,kCAAkC,CAAA,CAAA;AAAA,GACpD;AACA,EAAM,MAAA,eAAA,GAAkB,gBAAiB,CAAA,WAAA,EAAa,cAAc,CAAA,CAAA;AACpE,EAAA,MAAM,UAA6B,GAAA;AAAA,IACjC,yBAA2B,EAAA,KAAA;AAAA,IAC3B,oBAAsB,EAAA,SAAA;AAAA,IACtB,qBAAqB,OAAQ,CAAA,cAAA;AAAA,IAC7B,GAAI,OAAU,GAAA,EAAE,yBAA2B,EAAA,OAAA,KAAY,EAAC;AAAA,IACxD,GAAI,UAAa,GAAA,EAAE,4BAA8B,EAAA,UAAA,KAAe,EAAC;AAAA,IACjE,wBAA0B,EAAA,QAAA;AAAA,IAC1B,gBAAgB,OAAQ,CAAA,iBAAA;AAAA,IACxB,GAAI,QAAQ,iBAAoB,GAAA,EAAE,gCAAgC,OAAQ,CAAA,iBAAA,KAAsB,EAAC;AAAA,IACjG,GAAI,OAAU,GAAA,OAAA,GAAU,EAAC;AAAA,GAC3B,CAAA;AAEA,EAAA,MAAM,UAAa,GAAA;AAAA,IACjB,QAAU,EAAA,eAAA;AAAA,IACV,GAAI,KAAA;AAAA,GACN,CAAA;AAEA,EAAI,IAAA;AAEF,IAAA,OAAO,MAAM,OAAA,CAAW,MAAQ,EAAA,CAAA,EAAG,eAAe,CAAG,EAAA,GAAG,CAAI,CAAA,EAAA,EAAE,IAAI,KAAO,EAAA,UAAA,EAAY,IAAM,EAAA,OAAA,EAAS,YAAY,CAAA,CAAA;AAAA,WACzG,KAAgB,EAAA;AACvB,IAAA,IAAI,YAAgB,IAAA,KAAA,YAAiB,oBAAwB,IAAA,KAAA,CAAM,WAAW,GAAK,EAAA;AAEjF,MAAA,OAAO,YAAa,EAAA,CAAE,IAAK,CAAA,CAAAA,QAAW,KAAA;AACpC,QAAA,IAAIA,QAAS,EAAA;AACX,UAAA,OAAO,QAAQ,MAAQ,EAAA,CAAA,EAAG,eAAe,CAAA,EAAG,GAAG,CAAI,CAAA,EAAA;AAAA,YACjD,EAAA;AAAA,YACA,KAAO,EAAA,UAAA;AAAA,YACP,IAAA;AAAA,YACA,OAAS,EAAA;AAAA,cACP,GAAG,UAAA;AAAA,cACH,2BAA2BA,QAAQ,CAAA,QAAA;AAAA,aACrC;AAAA,WACD,CAAA,CAAA;AAAA,SACH;AACA,QAAM,MAAA,KAAA,CAAA;AAAA,OACP,CAAA,CAAA;AAAA,eACQ,2BAA+B,IAAA,KAAA,YAAiB,oBAAwB,IAAA,KAAA,CAAM,WAAW,GAAK,EAAA;AAEvG,MAAA,OAAO,2BAA4B,EAAA,CAAE,IAAK,CAAA,CAAAA,QAAW,KAAA;AACnD,QAAA,IAAIA,QAAS,EAAA;AACX,UAAA,OAAO,QAAQ,MAAQ,EAAA,CAAA,EAAG,eAAe,CAAA,EAAG,GAAG,CAAI,CAAA,EAAA;AAAA,YACjD,EAAA;AAAA,YACA,KAAO,EAAA,UAAA;AAAA,YACP,IAAA;AAAA,YACA,OAAS,EAAA;AAAA,cACP,GAAG,UAAA;AAAA,cACH,2BAA2BA,QAAQ,CAAA,QAAA;AAAA,aACrC;AAAA,WACD,CAAA,CAAA;AAAA,SACH;AACA,QAAM,MAAA,KAAA,CAAA;AAAA,OACP,CAAA,CAAA;AAAA,KACH;AACA,IAAM,MAAA,KAAA,CAAA;AAAA,GACR;AACF,CAAA;AAEA,eAAsB,sBACpB,CAAA,MAAA,EACA,GACA,EAAA,cAAA,GAAiC,EACrB,EAAA;AACZ,EAAA,OAAO,QAAQ,MAAQ,EAAA,CAAA,EAAG,qBAAqB,CAAG,EAAA,GAAG,IAAI,cAAc,CAAA,CAAA;AACzE,CAAA;AAEsB,eAAA,OAAA,CACpB,MACA,EAAA,GAAA,EACA,EAAE,EAAA,EAAI,OAAO,IAAM,EAAA,OAAA,EAA4B,GAAA,EACnC,EAAA;AACZ,EAAI,IAAA,MAAA,GAAS,IAAI,IAAK,EAAA,CAAA;AAEtB,EAAA,IAAI,EAAI,EAAA;AACN,IAAS,MAAA,GAAA,CAAC,QAAQ,CAAG,EAAA,EAAE,GAAG,IAAK,EAAC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAAA,GAC5C;AAEA,EAAA,IAAI,KAAO,EAAA;AACT,IAAI,IAAA,OAAA,CAAA;AACJ,IAAA,CAAC,MAAQ,EAAA,OAAO,CAAI,GAAA,MAAA,CAAO,MAAM,GAAG,CAAA,CAAA;AACpC,IAAA,MAAM,SAAY,GAAA,CAAC,OAAS,EAAA,cAAA,CAAe,KAAK,CAAC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA,CAAE,OAAQ,CAAA,IAAA,EAAM,EAAE,CAAA,CAAA;AAC7E,IAAA,MAAA,GAAS,GAAG,MAAM,CAAA,EAAG,YAAY,CAAI,CAAA,EAAA,SAAS,KAAK,EAAE,CAAA,CAAA,CAAA;AAAA,GACvD;AAEA,EAAI,IAAA,OAAA,CAAA;AACJ,EAAI,IAAA,IAAA,IAAQ,WAAW,KAAO,EAAA;AAC5B,IAAU,OAAA,GAAA,IAAA,CAAK,UAAU,IAAI,CAAA,CAAA;AAAA,GAC/B;AAEA,EAAA,MAAM,UAA6B,GAAA;AAAA,IACjC,MAAQ,EAAA,kBAAA;AAAA,IACR,cAAgB,EAAA,kBAAA;AAAA,IAChB,gBAAkB,EAAA,mBAAA;AAAA,IAClB,GAAI,OAAU,GAAA,OAAA,GAAU,EAAC;AAAA,GAC3B,CAAA;AAEA,EAAM,MAAA,QAAA,GAAW,MAAM,KAAA,CAAM,MAAQ,EAAA;AAAA,IACnC,MAAA;AAAA,IACA,OAAS,EAAA,UAAA;AAAA,IACT,IAAM,EAAA,OAAA;AAAA,GACP,CAAA,CAAA;AAED,EAAI,IAAA,MAAA,CAAA;AACJ,EAAI,IAAA;AACF,IAAS,MAAA,GAAA,MAAM,SAAS,IAAK,EAAA,CAAA;AAAA,WACtB,CAAG,EAAA;AAAA,GAEZ;AAEA,EAAI,IAAA,CAAC,SAAS,EAAI,EAAA;AAChB,IAAA,IAAI,QAAS,CAAA,MAAA,KAAW,GAAO,IAAA,QAAA,CAAS,WAAW,GAAK,EAAA;AACtD,MAAA,MAAM,IAAI,oBAAA,CAAqB,mDAAqD,EAAA,QAAA,CAAS,MAAM,CAAA,CAAA;AAAA,KACrG,MAAA,IAAW,MAAU,IAAA,MAAA,CAAO,KAAO,EAAA;AACjC,MAAA,MAAM,IAAI,oBAAA,CAAqB,MAAO,CAAA,KAAA,EAAO,SAAS,MAAM,CAAA,CAAA;AAAA,KAC9D,MAAA,IAAW,MAAU,IAAA,MAAA,CAAO,MAAQ,EAAA;AAClC,MAAM,MAAA,IAAI,qBAAqB,IAAK,CAAA,SAAA,CAAU,OAAO,MAAM,CAAA,EAAG,SAAS,MAAM,CAAA,CAAA;AAAA,KACxE,MAAA;AACL,MAAM,MAAA,IAAI,qBAAqB,sDAAsD,CAAA,CAAA;AAAA,KACvF;AAAA,GACF;AAEA,EAAO,OAAA,MAAA,CAAA;AACT;;;;"}
|
|
1
|
+
{"version":3,"file":"request.js","sources":["../../../src/utils/request.ts"],"sourcesContent":["import 'isomorphic-fetch';\n\nimport { nanoid } from 'nanoid/non-secure';\nimport stringify from 'qs/lib/stringify';\n\nimport { Method, RequestHeaders, RequestOptions, InternalSession, Session } from '../types';\nimport { getOptions } from './options';\nimport { RECHARGE_API_URL, RECHARGE_CDN_URL, SHOPIFY_APP_PROXY_URL } from '../constants/api';\nimport { RechargeRequestError } from './error';\n\nfunction stringifyQuery(str: unknown): string {\n return stringify(str, {\n encodeValuesOnly: true,\n indices: false,\n arrayFormat: 'comma',\n });\n}\n\nconst RESERVED_QUERY_KEYS = new Set(['shop_url']);\n\n/** @internal */\nexport function getInternalSession(session: Session | InternalSession, fnName: string): InternalSession {\n return {\n ...session,\n internalFnCall: (session as InternalSession).internalFnCall ?? fnName,\n internalRequestId: (session as InternalSession).internalRequestId ?? nanoid(),\n };\n}\n\nexport async function cdnRequest<T>(method: Method, url: string, requestOptions: RequestOptions = {}): Promise<T> {\n const opts = getOptions();\n return request(method, `${RECHARGE_CDN_URL(opts.environment)}/store/${opts.storeIdentifier}${url}`, requestOptions);\n}\n\nexport async function rechargeApiRequest<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {},\n session: InternalSession\n): Promise<T> {\n const {\n environment,\n environmentUri,\n storeIdentifier,\n loginRetryFn,\n __unstable_twoFactorRetryFn,\n appName,\n appVersion,\n } = getOptions();\n if (!storeIdentifier) {\n throw new Error('InitRecharge has not been called and/or no store identifier has been defined.');\n }\n const token = session.apiToken;\n if (!token) {\n throw new Error('No API token defined on session.');\n }\n const rechargeBaseUrl = RECHARGE_API_URL(environment, environmentUri);\n const reqHeaders: RequestHeaders = {\n 'X-Recharge-Access-Token': token,\n 'X-Recharge-Version': '2021-11',\n 'X-Recharge-Sdk-Fn': session.internalFnCall,\n ...(appName ? { 'X-Recharge-Sdk-App-Name': appName } : {}),\n ...(appVersion ? { 'X-Recharge-Sdk-App-Version': appVersion } : {}),\n 'X-Recharge-Sdk-Version': '__SDK_VERSION__',\n 'X-Request-Id': session.internalRequestId,\n ...(session.tmp_fn_identifier ? { 'X-Recharge-Sdk-Fn-Identifier': session.tmp_fn_identifier } : {}),\n ...(headers ? headers : {}),\n };\n\n const callerQuery = query as Record<string, unknown> | undefined;\n const sanitizedCallerQuery = callerQuery\n ? Object.fromEntries(Object.entries(callerQuery).filter(([k]) => !RESERVED_QUERY_KEYS.has(k)))\n : undefined;\n\n const localQuery = {\n ...sanitizedCallerQuery,\n shop_url: storeIdentifier,\n };\n\n try {\n // await to catch any errors\n return await request<T>(method, `${rechargeBaseUrl}${url}`, { id, query: localQuery, data, headers: reqHeaders });\n } catch (error: unknown) {\n if (loginRetryFn && error instanceof RechargeRequestError && error.status === 401) {\n // call loginRetryFn and retry request on 401\n return loginRetryFn().then(session => {\n if (session) {\n return request(method, `${rechargeBaseUrl}${url}`, {\n id,\n query: localQuery,\n data,\n headers: {\n ...reqHeaders,\n 'X-Recharge-Access-Token': session.apiToken,\n },\n });\n }\n throw error;\n });\n } else if (__unstable_twoFactorRetryFn && error instanceof RechargeRequestError && error.status === 423) {\n // trigger two-factor authentication flow and retry request on 423\n return __unstable_twoFactorRetryFn().then(session => {\n if (session) {\n return request(method, `${rechargeBaseUrl}${url}`, {\n id,\n query: localQuery,\n data,\n headers: {\n ...reqHeaders,\n 'X-Recharge-Access-Token': session.apiToken,\n },\n });\n }\n throw error;\n });\n }\n throw error;\n }\n}\n\nexport async function shopifyAppProxyRequest<T>(\n method: Method,\n url: string,\n requestOptions: RequestOptions = {}\n): Promise<T> {\n return request(method, `${SHOPIFY_APP_PROXY_URL}${url}`, requestOptions);\n}\n\nexport async function request<T>(\n method: Method,\n url: string,\n { id, query, data, headers }: RequestOptions = {}\n): Promise<T> {\n let reqUrl = url.trim();\n\n if (id) {\n reqUrl = [reqUrl, `${id}`.trim()].join('/');\n }\n\n if (query) {\n let exQuery;\n [reqUrl, exQuery] = reqUrl.split('?');\n const fullQuery = [exQuery, stringifyQuery(query)].join('&').replace(/^&/, '');\n reqUrl = `${reqUrl}${fullQuery ? `?${fullQuery}` : ''}`;\n }\n\n let reqBody;\n if (data && method !== 'get') {\n reqBody = JSON.stringify(data);\n }\n\n const reqHeaders: RequestHeaders = {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'X-Recharge-App': 'storefront-client',\n ...(headers ? headers : {}),\n };\n\n const response = await fetch(reqUrl, {\n method,\n headers: reqHeaders,\n body: reqBody,\n });\n\n let result;\n try {\n result = await response.json();\n } catch (e) {\n // If we get here, it means we were a no content response.\n }\n\n if (!response.ok) {\n if (response.status === 502 || response.status === 504) {\n throw new RechargeRequestError('A gateway error occurred while making the request', response.status);\n } else if (result && result.error) {\n throw new RechargeRequestError(result.error, response.status);\n } else if (result && result.errors) {\n throw new RechargeRequestError(JSON.stringify(result.errors), response.status);\n } else {\n throw new RechargeRequestError('A connection error occurred while making the request');\n }\n }\n\n return result as T;\n}\n"],"names":["session"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1624,6 +1624,8 @@ interface UpdateSubscriptionRequest extends Partial<Pick<Subscription, 'charge_i
|
|
|
1624
1624
|
cancellation_reason?: string;
|
|
1625
1625
|
/** Additional comments for cancellation reason. Only accepted when status is 'cancelled'. */
|
|
1626
1626
|
cancellation_reason_comments?: string;
|
|
1627
|
+
/** When TRUE, the dynamic pricing of the updated subscription will not reset and will continue to be the same. */
|
|
1628
|
+
persist_dynamic_pricing?: boolean;
|
|
1627
1629
|
}> {
|
|
1628
1630
|
}
|
|
1629
1631
|
interface BasicSubscriptionParams {
|
|
@@ -2085,8 +2087,6 @@ interface SkipChargeParams {
|
|
|
2085
2087
|
}
|
|
2086
2088
|
|
|
2087
2089
|
interface CreateAddressRequest {
|
|
2088
|
-
/** Unique numeric identifier for the customer associated with the address, if not provided will be auto-filled from Session */
|
|
2089
|
-
customer_id?: number;
|
|
2090
2090
|
/** The street associated with the Address. Minimum length is 1 character. */
|
|
2091
2091
|
address1: string;
|
|
2092
2092
|
/** Any additional information associated with the Address. */
|
|
@@ -2128,7 +2128,7 @@ interface CreateAddressRequest {
|
|
|
2128
2128
|
/** Set to true when this address is being used for redeeming gifts. */
|
|
2129
2129
|
is_gift?: boolean;
|
|
2130
2130
|
}
|
|
2131
|
-
interface CreateRecipientAddress extends Omit<CreateAddressRequest, '
|
|
2131
|
+
interface CreateRecipientAddress extends Omit<CreateAddressRequest, 'discounts' | 'order_attributes' | 'order_notes' | 'payment_method_id' | 'presentment_currency' | 'shipping_lines_override'> {
|
|
2132
2132
|
email: string;
|
|
2133
2133
|
}
|
|
2134
2134
|
interface UpdateAddressParams {
|
|
@@ -3837,6 +3837,16 @@ interface CustomerPortalSettings {
|
|
|
3837
3837
|
edit_shipping_address: BooleanNumbers;
|
|
3838
3838
|
/** Whether the store is using the customer portal extension or not. */
|
|
3839
3839
|
enable_customer_account_full_page_extension: boolean;
|
|
3840
|
+
/** Whether customer portal analytics is enabled or not. */
|
|
3841
|
+
enable_customer_portal_analytics: BooleanNumbers;
|
|
3842
|
+
/** @internal */
|
|
3843
|
+
enable_address_picker_modal: BooleanNumbers;
|
|
3844
|
+
/** @internal */
|
|
3845
|
+
enable_affinity_subscriptions_page_schema: BooleanNumbers;
|
|
3846
|
+
/** @internal */
|
|
3847
|
+
enable_affinity_account_page_schema: BooleanNumbers;
|
|
3848
|
+
/** @internal */
|
|
3849
|
+
customer_portal_page_view_templates_published: string[];
|
|
3840
3850
|
/** Whether enhanced slots are enabled or not. */
|
|
3841
3851
|
enable_enhanced_slots: boolean;
|
|
3842
3852
|
/** Whether market pricing is enabled or not. */
|