@shopnex/cj-plugin 1.0.6 → 1.0.8

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.
Files changed (69) hide show
  1. package/dist/CjCollection.d.ts +21 -0
  2. package/dist/CjCollection.js +113 -0
  3. package/dist/CjCollection.js.map +1 -0
  4. package/dist/api-client.d.ts +1 -1
  5. package/dist/api-client.js +5 -5
  6. package/dist/api-client.js.map +1 -1
  7. package/dist/error-handler.js.map +1 -1
  8. package/dist/error-types.js.map +1 -1
  9. package/dist/index.d.ts +1 -3
  10. package/dist/index.js +8 -24
  11. package/dist/index.js.map +1 -1
  12. package/dist/rsc/ApiToken.d.ts +1 -1
  13. package/dist/rsc/ApiToken.js.map +1 -1
  14. package/dist/rsc/ApiToken.scss +1 -2
  15. package/dist/sdk/access-token.d.ts +1 -1
  16. package/dist/sdk/access-token.js +11 -11
  17. package/dist/sdk/access-token.js.map +1 -1
  18. package/dist/{auth.js → sdk/auth.js} +11 -12
  19. package/dist/sdk/auth.js.map +1 -0
  20. package/dist/sdk/cj-sdk.d.ts +18 -4
  21. package/dist/sdk/cj-sdk.js +42 -4
  22. package/dist/sdk/cj-sdk.js.map +1 -1
  23. package/dist/sdk/dispute/dispute-types.js.map +1 -1
  24. package/dist/sdk/dispute/dispute.d.ts +2 -2
  25. package/dist/sdk/dispute/dispute.js +12 -14
  26. package/dist/sdk/dispute/dispute.js.map +1 -1
  27. package/dist/sdk/inventory/inventory-types.js.map +1 -1
  28. package/dist/sdk/inventory/inventory.d.ts +2 -2
  29. package/dist/sdk/inventory/inventory.js +9 -10
  30. package/dist/sdk/inventory/inventory.js.map +1 -1
  31. package/dist/sdk/orders/orders.d.ts +2 -2
  32. package/dist/sdk/orders/orders.js +32 -32
  33. package/dist/sdk/orders/orders.js.map +1 -1
  34. package/dist/sdk/products/product-types.d.ts +14 -3
  35. package/dist/sdk/products/product-types.js +1 -3
  36. package/dist/sdk/products/product-types.js.map +1 -1
  37. package/dist/sdk/products/products.d.ts +7 -1
  38. package/dist/sdk/products/products.js +51 -2
  39. package/dist/sdk/products/products.js.map +1 -1
  40. package/dist/sdk/settings/settings-api.d.ts +1 -1
  41. package/dist/sdk/settings/settings-api.js +4 -4
  42. package/dist/sdk/settings/settings-api.js.map +1 -1
  43. package/dist/sdk/settings/settings-types.js.map +1 -1
  44. package/dist/sdk/variants/variant-types.js.map +1 -1
  45. package/dist/sdk/variants/variants.d.ts +2 -2
  46. package/dist/sdk/variants/variants.js +16 -18
  47. package/dist/sdk/variants/variants.js.map +1 -1
  48. package/dist/service/access-token.d.ts +2 -0
  49. package/dist/service/access-token.js +53 -0
  50. package/dist/service/access-token.js.map +1 -0
  51. package/dist/service/create-order.hook.js +5 -2
  52. package/dist/service/create-order.hook.js.map +1 -1
  53. package/dist/service/sync-products.d.ts +7 -2
  54. package/dist/service/sync-products.js +99 -100
  55. package/dist/service/sync-products.js.map +1 -1
  56. package/dist/ui/refund-button.d.ts +1 -1
  57. package/dist/ui/refund-button.js +2 -2
  58. package/dist/ui/refund-button.js.map +1 -1
  59. package/dist/util/get-product-id.d.ts +1 -0
  60. package/dist/util/get-product-id.js +10 -0
  61. package/dist/util/get-product-id.js.map +1 -0
  62. package/dist/util/manage-tokens.js.map +1 -1
  63. package/package.json +5 -2
  64. package/LICENSE.md +0 -9
  65. package/dist/auth.js.map +0 -1
  66. package/dist/cj-settings.d.ts +0 -9
  67. package/dist/cj-settings.js +0 -99
  68. package/dist/cj-settings.js.map +0 -1
  69. /package/dist/{auth.d.ts → sdk/auth.d.ts} +0 -0
@@ -0,0 +1,21 @@
1
+ import { type CollectionConfig } from "payload";
2
+ export type CjCollectionProps = {
3
+ overrides?: Partial<CollectionConfig>;
4
+ };
5
+ export type CjData = {
6
+ id: string;
7
+ emailAddress?: string;
8
+ apiToken?: string;
9
+ refreshToken?: string;
10
+ refreshTokenExpiry?: string | Date;
11
+ accessToken?: string;
12
+ accessTokenExpiry?: string | Date;
13
+ pod?: {
14
+ id: string;
15
+ relationTo: "media";
16
+ };
17
+ items: {
18
+ productUrl: string;
19
+ }[];
20
+ };
21
+ export declare const CjCollection: ({ overrides, }: CjCollectionProps) => CollectionConfig;
@@ -0,0 +1,113 @@
1
+ import { deepMergeWithCombinedArrays } from "payload";
2
+ import { syncProducts } from "./service/sync-products";
3
+ import { EncryptedField } from "@shopnex/utils";
4
+ import { getTenantFromCookie } from "@shopnex/utils/helpers";
5
+ import { getProductId } from "./util/get-product-id";
6
+ export const CjCollection = ({ overrides = {} })=>{
7
+ const baseConfig = {
8
+ slug: "cj-settings",
9
+ access: {},
10
+ admin: {
11
+ group: "Plugins",
12
+ useAsTitle: "emailAddress"
13
+ },
14
+ fields: [
15
+ {
16
+ label: "Credentials",
17
+ type: "collapsible",
18
+ fields: [
19
+ {
20
+ type: "row",
21
+ fields: [
22
+ {
23
+ name: "emailAddress",
24
+ type: "email"
25
+ },
26
+ EncryptedField({
27
+ name: "apiToken",
28
+ type: "text"
29
+ })
30
+ ]
31
+ },
32
+ {
33
+ type: "row",
34
+ fields: [
35
+ EncryptedField({
36
+ name: "refreshToken",
37
+ type: "text"
38
+ }),
39
+ {
40
+ name: "refreshTokenExpiry",
41
+ type: "date"
42
+ }
43
+ ]
44
+ },
45
+ {
46
+ type: "row",
47
+ fields: [
48
+ EncryptedField({
49
+ name: "accessToken",
50
+ type: "text"
51
+ }),
52
+ {
53
+ name: "accessTokenExpiry",
54
+ type: "date"
55
+ }
56
+ ]
57
+ }
58
+ ]
59
+ },
60
+ {
61
+ label: "Logo Area POD",
62
+ name: "pod",
63
+ type: "upload",
64
+ relationTo: "media"
65
+ },
66
+ {
67
+ name: "items",
68
+ type: "array",
69
+ admin: {
70
+ description: "A list of product URLs to sync with CJ Dropshipping"
71
+ },
72
+ fields: [
73
+ {
74
+ name: "productUrl",
75
+ type: "text"
76
+ }
77
+ ],
78
+ label: "Products",
79
+ labels: {
80
+ plural: "Product URLs",
81
+ singular: "Product URL"
82
+ }
83
+ }
84
+ ],
85
+ hooks: {
86
+ beforeChange: [
87
+ async ({ data, req })=>{
88
+ const productIds = data.items?.map((item)=>{
89
+ const productId = getProductId(item.productUrl);
90
+ return productId;
91
+ }).filter((productId)=>typeof productId === "string");
92
+ if (!productIds) return;
93
+ const shopId = getTenantFromCookie(req.headers);
94
+ if (productIds.length > 0) {
95
+ await syncProducts({
96
+ productIds,
97
+ payload: req.payload,
98
+ shopId: shopId,
99
+ data
100
+ });
101
+ }
102
+ }
103
+ ]
104
+ },
105
+ labels: {
106
+ singular: "CJ Dropshipping",
107
+ plural: "CJ Dropshipping"
108
+ }
109
+ };
110
+ return deepMergeWithCombinedArrays(baseConfig, overrides);
111
+ };
112
+
113
+ //# sourceMappingURL=CjCollection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/CjCollection.ts"],"sourcesContent":["import {\n deepMergeWithCombinedArrays,\n type CollectionBeforeChangeHook,\n type CollectionConfig,\n} from \"payload\";\nimport { syncProducts } from \"./service/sync-products\";\nimport { EncryptedField } from \"@shopnex/utils\";\nimport { getTenantFromCookie } from \"@shopnex/utils/helpers\";\nimport { getProductId } from \"./util/get-product-id\";\n\nexport type CjCollectionProps = {\n overrides?: Partial<CollectionConfig>;\n};\n\nexport type CjData = {\n id: string;\n emailAddress?: string;\n apiToken?: string;\n refreshToken?: string;\n refreshTokenExpiry?: string | Date;\n accessToken?: string;\n accessTokenExpiry?: string | Date;\n pod?: {\n id: string;\n relationTo: \"media\";\n };\n items: {\n productUrl: string;\n }[];\n};\n\nexport const CjCollection = ({\n overrides = {},\n}: CjCollectionProps): CollectionConfig => {\n const baseConfig: CollectionConfig = {\n slug: \"cj-settings\",\n access: {}, // will be deep-merged\n admin: {\n group: \"Plugins\",\n useAsTitle: \"emailAddress\",\n },\n fields: [\n {\n label: \"Credentials\",\n type: \"collapsible\",\n fields: [\n {\n type: \"row\",\n fields: [\n {\n name: \"emailAddress\",\n type: \"email\",\n },\n EncryptedField({\n name: \"apiToken\",\n type: \"text\",\n }),\n ],\n },\n {\n type: \"row\",\n fields: [\n EncryptedField({\n name: \"refreshToken\",\n type: \"text\",\n }),\n {\n name: \"refreshTokenExpiry\",\n type: \"date\",\n },\n ],\n },\n {\n type: \"row\",\n fields: [\n EncryptedField({\n name: \"accessToken\",\n type: \"text\",\n }),\n {\n name: \"accessTokenExpiry\",\n type: \"date\",\n },\n ],\n },\n ],\n },\n {\n label: \"Logo Area POD\",\n name: \"pod\",\n type: \"upload\",\n relationTo: \"media\",\n },\n {\n name: \"items\",\n type: \"array\",\n admin: {\n description:\n \"A list of product URLs to sync with CJ Dropshipping\",\n },\n fields: [\n {\n name: \"productUrl\",\n type: \"text\",\n },\n ],\n label: \"Products\",\n labels: {\n plural: \"Product URLs\",\n singular: \"Product URL\",\n },\n },\n ],\n hooks: {\n beforeChange: [\n async ({ data, req }) => {\n const productIds = data.items\n ?.map((item: any) => {\n const productId = getProductId(item.productUrl);\n return productId;\n })\n .filter((productId) => typeof productId === \"string\");\n\n if (!productIds) return;\n\n const shopId = getTenantFromCookie(req.headers);\n\n if (productIds.length > 0) {\n await syncProducts({\n productIds,\n payload: req.payload,\n shopId: shopId as number,\n data,\n });\n }\n },\n ] as CollectionBeforeChangeHook<CjData>[],\n },\n labels: {\n singular: \"CJ Dropshipping\",\n plural: \"CJ Dropshipping\",\n },\n };\n\n return deepMergeWithCombinedArrays(baseConfig, overrides);\n};\n"],"names":["deepMergeWithCombinedArrays","syncProducts","EncryptedField","getTenantFromCookie","getProductId","CjCollection","overrides","baseConfig","slug","access","admin","group","useAsTitle","fields","label","type","name","relationTo","description","labels","plural","singular","hooks","beforeChange","data","req","productIds","items","map","item","productId","productUrl","filter","shopId","headers","length","payload"],"mappings":"AAAA,SACIA,2BAA2B,QAGxB,UAAU;AACjB,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SAASC,cAAc,QAAQ,iBAAiB;AAChD,SAASC,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,YAAY,QAAQ,wBAAwB;AAuBrD,OAAO,MAAMC,eAAe,CAAC,EACzBC,YAAY,CAAC,CAAC,EACE;IAChB,MAAMC,aAA+B;QACjCC,MAAM;QACNC,QAAQ,CAAC;QACTC,OAAO;YACHC,OAAO;YACPC,YAAY;QAChB;QACAC,QAAQ;YACJ;gBACIC,OAAO;gBACPC,MAAM;gBACNF,QAAQ;oBACJ;wBACIE,MAAM;wBACNF,QAAQ;4BACJ;gCACIG,MAAM;gCACND,MAAM;4BACV;4BACAb,eAAe;gCACXc,MAAM;gCACND,MAAM;4BACV;yBACH;oBACL;oBACA;wBACIA,MAAM;wBACNF,QAAQ;4BACJX,eAAe;gCACXc,MAAM;gCACND,MAAM;4BACV;4BACA;gCACIC,MAAM;gCACND,MAAM;4BACV;yBACH;oBACL;oBACA;wBACIA,MAAM;wBACNF,QAAQ;4BACJX,eAAe;gCACXc,MAAM;gCACND,MAAM;4BACV;4BACA;gCACIC,MAAM;gCACND,MAAM;4BACV;yBACH;oBACL;iBACH;YACL;YACA;gBACID,OAAO;gBACPE,MAAM;gBACND,MAAM;gBACNE,YAAY;YAChB;YACA;gBACID,MAAM;gBACND,MAAM;gBACNL,OAAO;oBACHQ,aACI;gBACR;gBACAL,QAAQ;oBACJ;wBACIG,MAAM;wBACND,MAAM;oBACV;iBACH;gBACDD,OAAO;gBACPK,QAAQ;oBACJC,QAAQ;oBACRC,UAAU;gBACd;YACJ;SACH;QACDC,OAAO;YACHC,cAAc;gBACV,OAAO,EAAEC,IAAI,EAAEC,GAAG,EAAE;oBAChB,MAAMC,aAAaF,KAAKG,KAAK,EACvBC,IAAI,CAACC;wBACH,MAAMC,YAAY1B,aAAayB,KAAKE,UAAU;wBAC9C,OAAOD;oBACX,GACCE,OAAO,CAACF,YAAc,OAAOA,cAAc;oBAEhD,IAAI,CAACJ,YAAY;oBAEjB,MAAMO,SAAS9B,oBAAoBsB,IAAIS,OAAO;oBAE9C,IAAIR,WAAWS,MAAM,GAAG,GAAG;wBACvB,MAAMlC,aAAa;4BACfyB;4BACAU,SAASX,IAAIW,OAAO;4BACpBH,QAAQA;4BACRT;wBACJ;oBACJ;gBACJ;aACH;QACL;QACAL,QAAQ;YACJE,UAAU;YACVD,QAAQ;QACZ;IACJ;IAEA,OAAOpB,4BAA4BO,YAAYD;AACnD,EAAE"}
@@ -1,2 +1,2 @@
1
- import { type AxiosInstance } from 'axios';
1
+ import { type AxiosInstance } from "axios";
2
2
  export declare const cjApiClient: AxiosInstance;
@@ -1,9 +1,9 @@
1
- import axios from 'axios';
2
- import { handleCJError } from './error-handler';
1
+ import axios from "axios";
2
+ import { handleCJError } from "./error-handler";
3
3
  export const cjApiClient = axios.create({
4
- baseURL: 'https://developers.cjdropshipping.com/api2.0/v1/',
4
+ baseURL: "https://developers.cjdropshipping.com/api2.0/v1/",
5
5
  headers: {
6
- 'Content-Type': 'application/json'
6
+ "Content-Type": "application/json"
7
7
  },
8
8
  timeout: 20000
9
9
  });
@@ -18,7 +18,7 @@ cjApiClient.interceptors.response.use((response)=>{
18
18
  // Handle CJ API errors
19
19
  handleCJError(error.response.data);
20
20
  } else if (error.request) {
21
- throw new Error('Network error: No response from CJ API');
21
+ throw new Error("Network error: No response from CJ API");
22
22
  } else {
23
23
  throw new Error(`Axios error: ${error.message}`);
24
24
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api-client.ts"],"sourcesContent":["import axios, { type AxiosError, type AxiosInstance, type AxiosResponse } from 'axios'\n\nimport { handleCJError } from './error-handler'\n\nexport const cjApiClient: AxiosInstance = axios.create({\n baseURL: 'https://developers.cjdropshipping.com/api2.0/v1/',\n headers: {\n 'Content-Type': 'application/json',\n },\n timeout: 20000,\n})\n \n// Response interceptor for automatic error handling\ncjApiClient.interceptors.response.use(\n (response: AxiosResponse) => {\n if (response.data.code !== 200) {\n handleCJError(response.data)\n }\n return response\n },\n (error: AxiosError) => {\n if (error.response) {\n // Handle CJ API errors\n handleCJError(error.response.data as { code: number; message?: string })\n } else if (error.request) {\n throw new Error('Network error: No response from CJ API')\n } else {\n throw new Error(`Axios error: ${error.message}`)\n }\n },\n)\n"],"names":["axios","handleCJError","cjApiClient","create","baseURL","headers","timeout","interceptors","response","use","data","code","error","request","Error","message"],"mappings":"AAAA,OAAOA,WAAwE,QAAO;AAEtF,SAASC,aAAa,QAAQ,kBAAiB;AAE/C,OAAO,MAAMC,cAA6BF,MAAMG,MAAM,CAAC;IACrDC,SAAS;IACTC,SAAS;QACP,gBAAgB;IAClB;IACAC,SAAS;AACX,GAAE;AAEF,oDAAoD;AACpDJ,YAAYK,YAAY,CAACC,QAAQ,CAACC,GAAG,CACnC,CAACD;IACC,IAAIA,SAASE,IAAI,CAACC,IAAI,KAAK,KAAK;QAC9BV,cAAcO,SAASE,IAAI;IAC7B;IACA,OAAOF;AACT,GACA,CAACI;IACC,IAAIA,MAAMJ,QAAQ,EAAE;QAClB,uBAAuB;QACvBP,cAAcW,MAAMJ,QAAQ,CAACE,IAAI;IACnC,OAAO,IAAIE,MAAMC,OAAO,EAAE;QACxB,MAAM,IAAIC,MAAM;IAClB,OAAO;QACL,MAAM,IAAIA,MAAM,CAAC,aAAa,EAAEF,MAAMG,OAAO,EAAE;IACjD;AACF"}
1
+ {"version":3,"sources":["../src/api-client.ts"],"sourcesContent":["import axios, {\n type AxiosError,\n type AxiosInstance,\n type AxiosResponse,\n} from \"axios\";\n\nimport { handleCJError } from \"./error-handler\";\n\nexport const cjApiClient: AxiosInstance = axios.create({\n baseURL: \"https://developers.cjdropshipping.com/api2.0/v1/\",\n headers: {\n \"Content-Type\": \"application/json\",\n },\n timeout: 20000,\n});\n\n// Response interceptor for automatic error handling\ncjApiClient.interceptors.response.use(\n (response: AxiosResponse) => {\n if (response.data.code !== 200) {\n handleCJError(response.data);\n }\n return response;\n },\n (error: AxiosError) => {\n if (error.response) {\n // Handle CJ API errors\n handleCJError(\n error.response.data as { code: number; message?: string }\n );\n } else if (error.request) {\n throw new Error(\"Network error: No response from CJ API\");\n } else {\n throw new Error(`Axios error: ${error.message}`);\n }\n }\n);\n"],"names":["axios","handleCJError","cjApiClient","create","baseURL","headers","timeout","interceptors","response","use","data","code","error","request","Error","message"],"mappings":"AAAA,OAAOA,WAIA,QAAQ;AAEf,SAASC,aAAa,QAAQ,kBAAkB;AAEhD,OAAO,MAAMC,cAA6BF,MAAMG,MAAM,CAAC;IACnDC,SAAS;IACTC,SAAS;QACL,gBAAgB;IACpB;IACAC,SAAS;AACb,GAAG;AAEH,oDAAoD;AACpDJ,YAAYK,YAAY,CAACC,QAAQ,CAACC,GAAG,CACjC,CAACD;IACG,IAAIA,SAASE,IAAI,CAACC,IAAI,KAAK,KAAK;QAC5BV,cAAcO,SAASE,IAAI;IAC/B;IACA,OAAOF;AACX,GACA,CAACI;IACG,IAAIA,MAAMJ,QAAQ,EAAE;QAChB,uBAAuB;QACvBP,cACIW,MAAMJ,QAAQ,CAACE,IAAI;IAE3B,OAAO,IAAIE,MAAMC,OAAO,EAAE;QACtB,MAAM,IAAIC,MAAM;IACpB,OAAO;QACH,MAAM,IAAIA,MAAM,CAAC,aAAa,EAAEF,MAAMG,OAAO,EAAE;IACnD;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/error-handler.ts"],"sourcesContent":["const CJ_ERROR_MESSAGES: Record<number, string> = {\n 200: \"Success\",\n 1600000: \"System busy. Please try again later.\",\n 1600001: \"No permission. CJ-Access-Token is invalid.\",\n 1600002: \"CJ-Access-Token not found.\",\n 1600003: \"Refresh token failed.\",\n 1600100: \"The interface has been taken offline. Contact admin.\",\n 1600101: \"Interface not found. Check the endpoint URL.\",\n 1600200: \"Call exceeded limit. Try again later.\",\n 1600201: \"Quota has been used up. Contact support.\",\n 1600300: \"Illegal parameter. Check API documentation.\",\n 1601000: \"User not found. Check your email.\",\n 1602000: \"Variant not found.\",\n 1602001: \"Product not found or offline.\",\n 1603000: \"Order creation failed. Contact CJ support.\",\n 1603001: \"Order confirmation failed. Contact CJ support.\",\n 1603002: \"Order deletion failed. Contact CJ support.\",\n 1603100: \"Order not found. Check CJ order ID.\",\n 1603101: \"Order payment failed. Contact CJ Order Center.\",\n 1604000: \"Insufficient balance.\",\n 1605000: \"Logistics not found.\",\n 1606000: \"Webhook setup failed. Already exists.\",\n 1606001: \"Webhook setup failed. Contact CJ support.\",\n 1607000: \"Webhook URL error. URL cannot be empty.\",\n};\n\n/**\n * Gets a human-readable error message for a given error code.\n */\nfunction getCJErrorMessage(code: number): string {\n return CJ_ERROR_MESSAGES[code] || `Unknown error: ${code}`;\n}\n\n/**\n * Throws a formatted error based on the API response.\n */\nfunction handleCJError(response: {\n code: number;\n message?: string;\n}): never {\n const errorMessage = response.message || getCJErrorMessage(response.code);\n const error = new Error(`CJ API Error (${response.code}): ${errorMessage}`);\n (error as any).code = response.code;\n throw error;\n}\n\nexport { getCJErrorMessage, handleCJError };\n"],"names":["CJ_ERROR_MESSAGES","getCJErrorMessage","code","handleCJError","response","errorMessage","message","error","Error"],"mappings":"AAAA,MAAMA,oBAA4C;IAC9C,KAAK;IACL,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;AACb;AAEA;;CAEC,GACD,SAASC,kBAAkBC,IAAY;IACnC,OAAOF,iBAAiB,CAACE,KAAK,IAAI,CAAC,eAAe,EAAEA,MAAM;AAC9D;AAEA;;CAEC,GACD,SAASC,cAAcC,QAGtB;IACG,MAAMC,eAAeD,SAASE,OAAO,IAAIL,kBAAkBG,SAASF,IAAI;IACxE,MAAMK,QAAQ,IAAIC,MAAM,CAAC,cAAc,EAAEJ,SAASF,IAAI,CAAC,GAAG,EAAEG,cAAc;IACzEE,MAAcL,IAAI,GAAGE,SAASF,IAAI;IACnC,MAAMK;AACV;AAEA,SAASN,iBAAiB,EAAEE,aAAa,GAAG"}
1
+ {"version":3,"sources":["../src/error-handler.ts"],"sourcesContent":["const CJ_ERROR_MESSAGES: Record<number, string> = {\n 200: \"Success\",\n 1600000: \"System busy. Please try again later.\",\n 1600001: \"No permission. CJ-Access-Token is invalid.\",\n 1600002: \"CJ-Access-Token not found.\",\n 1600003: \"Refresh token failed.\",\n 1600100: \"The interface has been taken offline. Contact admin.\",\n 1600101: \"Interface not found. Check the endpoint URL.\",\n 1600200: \"Call exceeded limit. Try again later.\",\n 1600201: \"Quota has been used up. Contact support.\",\n 1600300: \"Illegal parameter. Check API documentation.\",\n 1601000: \"User not found. Check your email.\",\n 1602000: \"Variant not found.\",\n 1602001: \"Product not found or offline.\",\n 1603000: \"Order creation failed. Contact CJ support.\",\n 1603001: \"Order confirmation failed. Contact CJ support.\",\n 1603002: \"Order deletion failed. Contact CJ support.\",\n 1603100: \"Order not found. Check CJ order ID.\",\n 1603101: \"Order payment failed. Contact CJ Order Center.\",\n 1604000: \"Insufficient balance.\",\n 1605000: \"Logistics not found.\",\n 1606000: \"Webhook setup failed. Already exists.\",\n 1606001: \"Webhook setup failed. Contact CJ support.\",\n 1607000: \"Webhook URL error. URL cannot be empty.\",\n};\n\n/**\n * Gets a human-readable error message for a given error code.\n */\nfunction getCJErrorMessage(code: number): string {\n return CJ_ERROR_MESSAGES[code] || `Unknown error: ${code}`;\n}\n\n/**\n * Throws a formatted error based on the API response.\n */\nfunction handleCJError(response: { code: number; message?: string }): never {\n const errorMessage = response.message || getCJErrorMessage(response.code);\n const error = new Error(`CJ API Error (${response.code}): ${errorMessage}`);\n (error as any).code = response.code;\n throw error;\n}\n\nexport { getCJErrorMessage, handleCJError };\n"],"names":["CJ_ERROR_MESSAGES","getCJErrorMessage","code","handleCJError","response","errorMessage","message","error","Error"],"mappings":"AAAA,MAAMA,oBAA4C;IAC9C,KAAK;IACL,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;AACb;AAEA;;CAEC,GACD,SAASC,kBAAkBC,IAAY;IACnC,OAAOF,iBAAiB,CAACE,KAAK,IAAI,CAAC,eAAe,EAAEA,MAAM;AAC9D;AAEA;;CAEC,GACD,SAASC,cAAcC,QAA4C;IAC/D,MAAMC,eAAeD,SAASE,OAAO,IAAIL,kBAAkBG,SAASF,IAAI;IACxE,MAAMK,QAAQ,IAAIC,MAAM,CAAC,cAAc,EAAEJ,SAASF,IAAI,CAAC,GAAG,EAAEG,cAAc;IACzEE,MAAcL,IAAI,GAAGE,SAASF,IAAI;IACnC,MAAMK;AACV;AAEA,SAASN,iBAAiB,EAAEE,aAAa,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/error-types.ts"],"sourcesContent":["/**\n * API Response Structure\n */\nexport type APIResponse<T> =\n | { data: T; error?: never }\n | { data?: never; error: string };\n\n/**\n * API Error Response Structure\n */\nexport interface ApiResponseError {\n code: number;\n result: boolean;\n message: string;\n data: null;\n requestId: string;\n}\n\n"],"names":[],"mappings":"AAAA;;CAEC,GAKD;;CAEC,GACD,WAMC"}
1
+ {"version":3,"sources":["../src/error-types.ts"],"sourcesContent":["/**\n * API Response Structure\n */\nexport type APIResponse<T> =\n | { data: T; error?: never }\n | { data?: never; error: string };\n\n/**\n * API Error Response Structure\n */\nexport interface ApiResponseError {\n code: number;\n result: boolean;\n message: string;\n data: null;\n requestId: string;\n}\n"],"names":[],"mappings":"AAAA;;CAEC,GAKD;;CAEC,GACD,WAMC"}
package/dist/index.d.ts CHANGED
@@ -1,13 +1,11 @@
1
1
  import type { Config } from "payload";
2
- import { CjCollectionProps, CjGlobalProps } from "./cj-settings";
2
+ import { CjCollectionProps } from "./CjCollection";
3
3
  interface PluginOptions {
4
4
  isEnabled?: boolean;
5
5
  cjApiKey: string;
6
6
  cjEmailAddress: string;
7
7
  cjRefreshToken?: string;
8
- isGlobal?: boolean;
9
8
  collectionOverrides?: CjCollectionProps["overrides"];
10
- globalOverrides?: CjGlobalProps["overrides"];
11
9
  orderCollectionSlug?: string;
12
10
  }
13
11
  export declare const cjPlugin: (pluginOptions: PluginOptions) => (config: Config) => Config;
package/dist/index.js CHANGED
@@ -1,8 +1,7 @@
1
1
  import { setTenantCredentials } from "./sdk/access-token";
2
2
  import { createOrderHook } from "./service/create-order.hook";
3
- import { CjConfigCollection, CjSettings } from "./cj-settings";
3
+ import { CjCollection } from "./CjCollection";
4
4
  export const cjPlugin = (pluginOptions)=>(config)=>{
5
- const isGlobal = pluginOptions.isGlobal ?? true;
6
5
  const isEnabled = pluginOptions.isEnabled ?? true;
7
6
  const ordersCollection = config.collections?.find((collection)=>collection.slug === (pluginOptions.orderCollectionSlug || "orders"));
8
7
  if (!ordersCollection) {
@@ -14,15 +13,9 @@ export const cjPlugin = (pluginOptions)=>(config)=>{
14
13
  if (!ordersCollection.hooks?.afterChange?.length) {
15
14
  ordersCollection.hooks.afterChange = [];
16
15
  }
17
- if (isGlobal) {
18
- config.globals?.push(CjSettings({
19
- overrides: pluginOptions.globalOverrides
20
- }));
21
- } else {
22
- config.collections?.push(CjConfigCollection({
23
- overrides: pluginOptions.collectionOverrides
24
- }));
25
- }
16
+ config.collections?.push(CjCollection({
17
+ overrides: pluginOptions.collectionOverrides
18
+ }));
26
19
  const productCollection = config.collections?.find((collection)=>collection.slug === "products");
27
20
  const sourceField = productCollection?.fields?.find((field)=>field.name === "source");
28
21
  sourceField.options.push({
@@ -41,19 +34,10 @@ export const cjPlugin = (pluginOptions)=>(config)=>{
41
34
  await incomingOnInit(payload);
42
35
  }
43
36
  const cjSettingsDocs = [];
44
- if (isGlobal) {
45
- setTenantCredentials("1", {
46
- emailAddress: pluginOptions.cjEmailAddress,
47
- password: pluginOptions.cjApiKey,
48
- refreshToken: pluginOptions.cjRefreshToken
49
- });
50
- return;
51
- } else {
52
- const cjSettings = await payload.find({
53
- collection: "cj-settings"
54
- });
55
- cjSettingsDocs.push(...cjSettings?.docs);
56
- }
37
+ const cjSettings = await payload.find({
38
+ collection: "cj-settings"
39
+ });
40
+ cjSettingsDocs.push(...cjSettings?.docs);
57
41
  cjSettingsDocs.forEach((config)=>{
58
42
  setTenantCredentials(config?.shop?.slug || "1", {
59
43
  emailAddress: config.email || process.env.CJ_EMAIL_ADDRESS,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Config, SelectField } from \"payload\";\nimport { setTenantCredentials } from \"./sdk/access-token\";\nimport { createOrderHook } from \"./service/create-order.hook\";\nimport { CjCollectionProps, CjConfigCollection, CjGlobalProps, CjSettings } from \"./cj-settings\";\n\ninterface PluginOptions {\n isEnabled?: boolean;\n cjApiKey: string;\n cjEmailAddress: string;\n cjRefreshToken?: string;\n isGlobal?: boolean;\n collectionOverrides?: CjCollectionProps[\"overrides\"];\n globalOverrides?: CjGlobalProps[\"overrides\"];\n orderCollectionSlug?: string;\n}\n\nexport const cjPlugin =\n (pluginOptions: PluginOptions) =>\n (config: Config): Config => {\n const isGlobal = pluginOptions.isGlobal ?? true;\n\n const isEnabled = pluginOptions.isEnabled ?? true;\n\n const ordersCollection = config.collections?.find(\n (collection) => collection.slug === (pluginOptions.orderCollectionSlug || \"orders\"),\n );\n\n if (!ordersCollection) {\n throw new Error(\"No orders collection found\");\n }\n\n if (!ordersCollection.hooks) {\n ordersCollection.hooks = {};\n }\n\n if (!ordersCollection.hooks?.afterChange?.length) {\n ordersCollection.hooks.afterChange = [];\n }\n\n if (isGlobal) {\n config.globals?.push(CjSettings({ overrides: pluginOptions.globalOverrides }));\n } else {\n config.collections?.push(\n CjConfigCollection({ overrides: pluginOptions.collectionOverrides }),\n );\n }\n const productCollection = config.collections?.find(\n (collection) => collection.slug === \"products\",\n );\n\n const sourceField = productCollection?.fields?.find(\n (field) => (field as SelectField).name === \"source\",\n ) as SelectField;\n\n sourceField.options.push({\n label: \"CJ\",\n value: \"cj\",\n });\n\n if (!isEnabled) {\n return config;\n }\n if (ordersCollection.hooks?.afterChange) {\n ordersCollection.hooks.afterChange.push(createOrderHook);\n }\n\n const incomingOnInit = config.onInit;\n\n config.onInit = async (payload) => {\n if (incomingOnInit) {\n await incomingOnInit(payload);\n }\n\n const cjSettingsDocs: any = [];\n\n if (isGlobal) {\n setTenantCredentials(\"1\", {\n emailAddress: pluginOptions.cjEmailAddress,\n password: pluginOptions.cjApiKey,\n refreshToken: pluginOptions.cjRefreshToken,\n });\n return;\n } else {\n const cjSettings = await payload.find({\n collection: \"cj-settings\" as any,\n });\n\n cjSettingsDocs.push(...cjSettings?.docs);\n }\n\n cjSettingsDocs.forEach((config: any) => {\n setTenantCredentials(config?.shop?.slug || \"1\", {\n emailAddress: config.email || process.env.CJ_EMAIL_ADDRESS,\n password: config.apiToken || process.env.CJ_PASSWORD,\n });\n });\n };\n\n return config;\n };\n"],"names":["setTenantCredentials","createOrderHook","CjConfigCollection","CjSettings","cjPlugin","pluginOptions","config","isGlobal","isEnabled","ordersCollection","collections","find","collection","slug","orderCollectionSlug","Error","hooks","afterChange","length","globals","push","overrides","globalOverrides","collectionOverrides","productCollection","sourceField","fields","field","name","options","label","value","incomingOnInit","onInit","payload","cjSettingsDocs","emailAddress","cjEmailAddress","password","cjApiKey","refreshToken","cjRefreshToken","cjSettings","docs","forEach","shop","email","process","env","CJ_EMAIL_ADDRESS","apiToken","CJ_PASSWORD"],"mappings":"AACA,SAASA,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAA4BC,kBAAkB,EAAiBC,UAAU,QAAQ,gBAAgB;AAajG,OAAO,MAAMC,WACT,CAACC,gBACD,CAACC;QACG,MAAMC,WAAWF,cAAcE,QAAQ,IAAI;QAE3C,MAAMC,YAAYH,cAAcG,SAAS,IAAI;QAE7C,MAAMC,mBAAmBH,OAAOI,WAAW,EAAEC,KACzC,CAACC,aAAeA,WAAWC,IAAI,KAAMR,CAAAA,cAAcS,mBAAmB,IAAI,QAAO;QAGrF,IAAI,CAACL,kBAAkB;YACnB,MAAM,IAAIM,MAAM;QACpB;QAEA,IAAI,CAACN,iBAAiBO,KAAK,EAAE;YACzBP,iBAAiBO,KAAK,GAAG,CAAC;QAC9B;QAEA,IAAI,CAACP,iBAAiBO,KAAK,EAAEC,aAAaC,QAAQ;YAC9CT,iBAAiBO,KAAK,CAACC,WAAW,GAAG,EAAE;QAC3C;QAEA,IAAIV,UAAU;YACVD,OAAOa,OAAO,EAAEC,KAAKjB,WAAW;gBAAEkB,WAAWhB,cAAciB,eAAe;YAAC;QAC/E,OAAO;YACHhB,OAAOI,WAAW,EAAEU,KAChBlB,mBAAmB;gBAAEmB,WAAWhB,cAAckB,mBAAmB;YAAC;QAE1E;QACA,MAAMC,oBAAoBlB,OAAOI,WAAW,EAAEC,KAC1C,CAACC,aAAeA,WAAWC,IAAI,KAAK;QAGxC,MAAMY,cAAcD,mBAAmBE,QAAQf,KAC3C,CAACgB,QAAU,AAACA,MAAsBC,IAAI,KAAK;QAG/CH,YAAYI,OAAO,CAACT,IAAI,CAAC;YACrBU,OAAO;YACPC,OAAO;QACX;QAEA,IAAI,CAACvB,WAAW;YACZ,OAAOF;QACX;QACA,IAAIG,iBAAiBO,KAAK,EAAEC,aAAa;YACrCR,iBAAiBO,KAAK,CAACC,WAAW,CAACG,IAAI,CAACnB;QAC5C;QAEA,MAAM+B,iBAAiB1B,OAAO2B,MAAM;QAEpC3B,OAAO2B,MAAM,GAAG,OAAOC;YACnB,IAAIF,gBAAgB;gBAChB,MAAMA,eAAeE;YACzB;YAEA,MAAMC,iBAAsB,EAAE;YAE9B,IAAI5B,UAAU;gBACVP,qBAAqB,KAAK;oBACtBoC,cAAc/B,cAAcgC,cAAc;oBAC1CC,UAAUjC,cAAckC,QAAQ;oBAChCC,cAAcnC,cAAcoC,cAAc;gBAC9C;gBACA;YACJ,OAAO;gBACH,MAAMC,aAAa,MAAMR,QAAQvB,IAAI,CAAC;oBAClCC,YAAY;gBAChB;gBAEAuB,eAAef,IAAI,IAAIsB,YAAYC;YACvC;YAEAR,eAAeS,OAAO,CAAC,CAACtC;gBACpBN,qBAAqBM,QAAQuC,MAAMhC,QAAQ,KAAK;oBAC5CuB,cAAc9B,OAAOwC,KAAK,IAAIC,QAAQC,GAAG,CAACC,gBAAgB;oBAC1DX,UAAUhC,OAAO4C,QAAQ,IAAIH,QAAQC,GAAG,CAACG,WAAW;gBACxD;YACJ;QACJ;QAEA,OAAO7C;IACX,EAAE"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Config, SelectField } from \"payload\";\nimport { setTenantCredentials } from \"./sdk/access-token\";\nimport { createOrderHook } from \"./service/create-order.hook\";\nimport { CjCollectionProps, CjCollection } from \"./CjCollection\";\n\ninterface PluginOptions {\n isEnabled?: boolean;\n cjApiKey: string;\n cjEmailAddress: string;\n cjRefreshToken?: string;\n collectionOverrides?: CjCollectionProps[\"overrides\"];\n orderCollectionSlug?: string;\n}\n\nexport const cjPlugin =\n (pluginOptions: PluginOptions) =>\n (config: Config): Config => {\n const isEnabled = pluginOptions.isEnabled ?? true;\n\n const ordersCollection = config.collections?.find(\n (collection) =>\n collection.slug ===\n (pluginOptions.orderCollectionSlug || \"orders\")\n );\n\n if (!ordersCollection) {\n throw new Error(\"No orders collection found\");\n }\n\n if (!ordersCollection.hooks) {\n ordersCollection.hooks = {};\n }\n\n if (!ordersCollection.hooks?.afterChange?.length) {\n ordersCollection.hooks.afterChange = [];\n }\n config.collections?.push(\n CjCollection({\n overrides: pluginOptions.collectionOverrides,\n })\n );\n const productCollection = config.collections?.find(\n (collection) => collection.slug === \"products\"\n );\n\n const sourceField = productCollection?.fields?.find(\n (field) => (field as SelectField).name === \"source\"\n ) as SelectField;\n\n sourceField.options.push({\n label: \"CJ\",\n value: \"cj\",\n });\n\n if (!isEnabled) {\n return config;\n }\n if (ordersCollection.hooks?.afterChange) {\n ordersCollection.hooks.afterChange.push(createOrderHook);\n }\n\n const incomingOnInit = config.onInit;\n\n config.onInit = async (payload) => {\n if (incomingOnInit) {\n await incomingOnInit(payload);\n }\n\n const cjSettingsDocs: any = [];\n\n const cjSettings = await payload.find({\n collection: \"cj-settings\" as any,\n });\n\n cjSettingsDocs.push(...cjSettings?.docs);\n\n cjSettingsDocs.forEach((config: any) => {\n setTenantCredentials(config?.shop?.slug || \"1\", {\n emailAddress: config.email || process.env.CJ_EMAIL_ADDRESS,\n password: config.apiToken || process.env.CJ_PASSWORD,\n });\n });\n };\n\n return config;\n };\n"],"names":["setTenantCredentials","createOrderHook","CjCollection","cjPlugin","pluginOptions","config","isEnabled","ordersCollection","collections","find","collection","slug","orderCollectionSlug","Error","hooks","afterChange","length","push","overrides","collectionOverrides","productCollection","sourceField","fields","field","name","options","label","value","incomingOnInit","onInit","payload","cjSettingsDocs","cjSettings","docs","forEach","shop","emailAddress","email","process","env","CJ_EMAIL_ADDRESS","password","apiToken","CJ_PASSWORD"],"mappings":"AACA,SAASA,oBAAoB,QAAQ,qBAAqB;AAC1D,SAASC,eAAe,QAAQ,8BAA8B;AAC9D,SAA4BC,YAAY,QAAQ,iBAAiB;AAWjE,OAAO,MAAMC,WACT,CAACC,gBACD,CAACC;QACG,MAAMC,YAAYF,cAAcE,SAAS,IAAI;QAE7C,MAAMC,mBAAmBF,OAAOG,WAAW,EAAEC,KACzC,CAACC,aACGA,WAAWC,IAAI,KACdP,CAAAA,cAAcQ,mBAAmB,IAAI,QAAO;QAGrD,IAAI,CAACL,kBAAkB;YACnB,MAAM,IAAIM,MAAM;QACpB;QAEA,IAAI,CAACN,iBAAiBO,KAAK,EAAE;YACzBP,iBAAiBO,KAAK,GAAG,CAAC;QAC9B;QAEA,IAAI,CAACP,iBAAiBO,KAAK,EAAEC,aAAaC,QAAQ;YAC9CT,iBAAiBO,KAAK,CAACC,WAAW,GAAG,EAAE;QAC3C;QACAV,OAAOG,WAAW,EAAES,KAChBf,aAAa;YACTgB,WAAWd,cAAce,mBAAmB;QAChD;QAEJ,MAAMC,oBAAoBf,OAAOG,WAAW,EAAEC,KAC1C,CAACC,aAAeA,WAAWC,IAAI,KAAK;QAGxC,MAAMU,cAAcD,mBAAmBE,QAAQb,KAC3C,CAACc,QAAU,AAACA,MAAsBC,IAAI,KAAK;QAG/CH,YAAYI,OAAO,CAACR,IAAI,CAAC;YACrBS,OAAO;YACPC,OAAO;QACX;QAEA,IAAI,CAACrB,WAAW;YACZ,OAAOD;QACX;QACA,IAAIE,iBAAiBO,KAAK,EAAEC,aAAa;YACrCR,iBAAiBO,KAAK,CAACC,WAAW,CAACE,IAAI,CAAChB;QAC5C;QAEA,MAAM2B,iBAAiBvB,OAAOwB,MAAM;QAEpCxB,OAAOwB,MAAM,GAAG,OAAOC;YACnB,IAAIF,gBAAgB;gBAChB,MAAMA,eAAeE;YACzB;YAEA,MAAMC,iBAAsB,EAAE;YAE9B,MAAMC,aAAa,MAAMF,QAAQrB,IAAI,CAAC;gBAClCC,YAAY;YAChB;YAEAqB,eAAed,IAAI,IAAIe,YAAYC;YAEnCF,eAAeG,OAAO,CAAC,CAAC7B;gBACpBL,qBAAqBK,QAAQ8B,MAAMxB,QAAQ,KAAK;oBAC5CyB,cAAc/B,OAAOgC,KAAK,IAAIC,QAAQC,GAAG,CAACC,gBAAgB;oBAC1DC,UAAUpC,OAAOqC,QAAQ,IAAIJ,QAAQC,GAAG,CAACI,WAAW;gBACxD;YACJ;QACJ;QAEA,OAAOtC;IACX,EAAE"}
@@ -5,5 +5,5 @@ interface ApiTokenProps {
5
5
  readOnly?: boolean;
6
6
  label?: string;
7
7
  }
8
- export declare function ApiToken({ path, readOnly, label }: ApiTokenProps): React.JSX.Element;
8
+ export declare function ApiToken({ path, readOnly, label, }: ApiTokenProps): React.JSX.Element;
9
9
  export {};
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/rsc/ApiToken.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { PasswordField } from \"@payloadcms/ui\";\nimport \"./ApiToken.scss\";\n\ninterface ApiTokenProps {\n path: string;\n readOnly?: boolean;\n label?: string;\n}\n\nexport function ApiToken({ path, readOnly, label = \"API Token\" }: ApiTokenProps) {\n return (\n <PasswordField\n autoComplete=\"new-password\"\n field={{\n name: \"password\",\n label: \"API Token\",\n }}\n indexPath=\"\"\n parentPath=\"\"\n parentSchemaPath=\"\"\n path={path}\n schemaPath=\"password\"\n />\n );\n}\n"],"names":["React","PasswordField","ApiToken","path","readOnly","label","autoComplete","field","name","indexPath","parentPath","parentSchemaPath","schemaPath"],"mappings":"AAAA;;AAEA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,OAAO,kBAAkB;AAQzB,OAAO,SAASC,SAAS,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,QAAQ,WAAW,EAAiB;IAC3E,qBACI,KAACJ;QACGK,cAAa;QACbC,OAAO;YACHC,MAAM;YACNH,OAAO;QACX;QACAI,WAAU;QACVC,YAAW;QACXC,kBAAiB;QACjBR,MAAMA;QACNS,YAAW;;AAGvB"}
1
+ {"version":3,"sources":["../../src/rsc/ApiToken.tsx"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { PasswordField } from \"@payloadcms/ui\";\nimport \"./ApiToken.scss\";\n\ninterface ApiTokenProps {\n path: string;\n readOnly?: boolean;\n label?: string;\n}\n\nexport function ApiToken({\n path,\n readOnly,\n label = \"API Token\",\n}: ApiTokenProps) {\n return (\n <PasswordField\n autoComplete=\"new-password\"\n field={{\n name: \"password\",\n label: \"API Token\",\n }}\n indexPath=\"\"\n parentPath=\"\"\n parentSchemaPath=\"\"\n path={path}\n schemaPath=\"password\"\n />\n );\n}\n"],"names":["React","PasswordField","ApiToken","path","readOnly","label","autoComplete","field","name","indexPath","parentPath","parentSchemaPath","schemaPath"],"mappings":"AAAA;;AAEA,OAAOA,WAAW,QAAQ;AAC1B,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,OAAO,kBAAkB;AAQzB,OAAO,SAASC,SAAS,EACrBC,IAAI,EACJC,QAAQ,EACRC,QAAQ,WAAW,EACP;IACZ,qBACI,KAACJ;QACGK,cAAa;QACbC,OAAO;YACHC,MAAM;YACNH,OAAO;QACX;QACAI,WAAU;QACVC,YAAW;QACXC,kBAAiB;QACjBR,MAAMA;QACNS,YAAW;;AAGvB"}
@@ -1,5 +1,4 @@
1
-
2
1
  .api-token {
3
2
  display: flex;
4
3
  flex: 1;
5
- }
4
+ }
@@ -5,6 +5,6 @@ type Credentials = {
5
5
  accessToken?: string;
6
6
  };
7
7
  export declare const getCurrentAccessToken: () => Promise<string>;
8
- export declare const setTenantCredentials: (shopId: string, creds: Credentials) => void;
8
+ export declare const setTenantCredentials: (shopId: string, credentials: Credentials) => void;
9
9
  export declare const getTenantAccessToken: (shopId: string) => Promise<string>;
10
10
  export {};
@@ -1,39 +1,39 @@
1
- import * as cjSdk from "./cj-sdk";
1
+ import { getAccessToken, refreshAccessToken } from "./auth";
2
2
  const tenantCredentialsMap = new Map();
3
3
  export const getCurrentAccessToken = async ()=>{
4
4
  const shopId = "1";
5
5
  const accessToken = await getTenantAccessToken(shopId);
6
6
  return accessToken;
7
7
  };
8
- export const setTenantCredentials = (shopId, creds)=>{
9
- tenantCredentialsMap.set(shopId, creds);
8
+ export const setTenantCredentials = (shopId, credentials)=>{
9
+ tenantCredentialsMap.set(shopId, credentials);
10
10
  };
11
11
  export const getTenantAccessToken = async (shopId)=>{
12
- const creds = tenantCredentialsMap.get(shopId) || {
12
+ const credentials = tenantCredentialsMap.get(shopId) || {
13
13
  emailAddress: process.env.CJ_EMAIL_ADDRESS || "",
14
14
  password: process.env.CJ_PASSWORD || "",
15
15
  refreshToken: process.env.CJ_REFRESH_TOKEN || ""
16
16
  };
17
- if (creds.accessToken) {
18
- return creds.accessToken;
17
+ if (credentials.accessToken) {
18
+ return credentials.accessToken;
19
19
  }
20
- if (!creds?.emailAddress || !creds?.password) {
20
+ if (!credentials?.emailAddress || !credentials?.password) {
21
21
  throw new Error(`Credentials for tenant ${shopId} are missing or incomplete`);
22
22
  }
23
- const { emailAddress, password, refreshToken } = creds;
23
+ const { emailAddress, password, refreshToken } = credentials;
24
24
  let newAccessToken;
25
25
  let newRefreshToken;
26
26
  if (!refreshToken) {
27
- const result = await cjSdk.getAccessToken(emailAddress, password);
27
+ const result = await getAccessToken(emailAddress, password);
28
28
  newAccessToken = result.accessToken;
29
29
  newRefreshToken = result.refreshToken;
30
30
  } else {
31
- const result = await cjSdk.refreshAccessToken(refreshToken);
31
+ const result = await refreshAccessToken(refreshToken);
32
32
  newAccessToken = result.accessToken;
33
33
  newRefreshToken = result.refreshToken;
34
34
  }
35
35
  tenantCredentialsMap.set(shopId, {
36
- ...creds,
36
+ ...credentials,
37
37
  accessToken: newAccessToken,
38
38
  refreshToken: newRefreshToken
39
39
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sdk/access-token.ts"],"sourcesContent":["import * as cjSdk from \"./cj-sdk\";\n\ntype Credentials = {\n emailAddress: string;\n password: string;\n refreshToken?: string;\n accessToken?: string;\n};\n\nconst tenantCredentialsMap = new Map<string, Credentials>();\n\nexport const getCurrentAccessToken = async () => {\n const shopId = \"1\";\n const accessToken = await getTenantAccessToken(shopId);\n return accessToken;\n};\n\nexport const setTenantCredentials = (shopId: string, creds: Credentials) => {\n tenantCredentialsMap.set(shopId, creds);\n};\n\nexport const getTenantAccessToken = async (shopId: string) => {\n const creds = tenantCredentialsMap.get(shopId) || {\n emailAddress: process.env.CJ_EMAIL_ADDRESS || \"\",\n password: process.env.CJ_PASSWORD || \"\",\n refreshToken: process.env.CJ_REFRESH_TOKEN || \"\",\n };\n\n if (creds.accessToken) {\n return creds.accessToken;\n }\n\n if (!creds?.emailAddress || !creds?.password) {\n throw new Error(`Credentials for tenant ${shopId} are missing or incomplete`);\n }\n\n const { emailAddress, password, refreshToken } = creds;\n\n let newAccessToken: string;\n let newRefreshToken: string | undefined;\n\n if (!refreshToken) {\n const result = await cjSdk.getAccessToken(emailAddress, password);\n newAccessToken = result.accessToken;\n newRefreshToken = result.refreshToken;\n } else {\n const result = await cjSdk.refreshAccessToken(refreshToken);\n newAccessToken = result.accessToken;\n newRefreshToken = result.refreshToken;\n }\n\n tenantCredentialsMap.set(shopId, {\n ...creds,\n accessToken: newAccessToken,\n refreshToken: newRefreshToken,\n });\n\n return newAccessToken;\n};\n"],"names":["cjSdk","tenantCredentialsMap","Map","getCurrentAccessToken","shopId","accessToken","getTenantAccessToken","setTenantCredentials","creds","set","get","emailAddress","process","env","CJ_EMAIL_ADDRESS","password","CJ_PASSWORD","refreshToken","CJ_REFRESH_TOKEN","Error","newAccessToken","newRefreshToken","result","getAccessToken","refreshAccessToken"],"mappings":"AAAA,YAAYA,WAAW,WAAW;AASlC,MAAMC,uBAAuB,IAAIC;AAEjC,OAAO,MAAMC,wBAAwB;IACjC,MAAMC,SAAS;IACf,MAAMC,cAAc,MAAMC,qBAAqBF;IAC/C,OAAOC;AACX,EAAE;AAEF,OAAO,MAAME,uBAAuB,CAACH,QAAgBI;IACjDP,qBAAqBQ,GAAG,CAACL,QAAQI;AACrC,EAAE;AAEF,OAAO,MAAMF,uBAAuB,OAAOF;IACvC,MAAMI,QAAQP,qBAAqBS,GAAG,CAACN,WAAW;QAC9CO,cAAcC,QAAQC,GAAG,CAACC,gBAAgB,IAAI;QAC9CC,UAAUH,QAAQC,GAAG,CAACG,WAAW,IAAI;QACrCC,cAAcL,QAAQC,GAAG,CAACK,gBAAgB,IAAI;IAClD;IAEA,IAAIV,MAAMH,WAAW,EAAE;QACnB,OAAOG,MAAMH,WAAW;IAC5B;IAEA,IAAI,CAACG,OAAOG,gBAAgB,CAACH,OAAOO,UAAU;QAC1C,MAAM,IAAII,MAAM,CAAC,uBAAuB,EAAEf,OAAO,0BAA0B,CAAC;IAChF;IAEA,MAAM,EAAEO,YAAY,EAAEI,QAAQ,EAAEE,YAAY,EAAE,GAAGT;IAEjD,IAAIY;IACJ,IAAIC;IAEJ,IAAI,CAACJ,cAAc;QACf,MAAMK,SAAS,MAAMtB,MAAMuB,cAAc,CAACZ,cAAcI;QACxDK,iBAAiBE,OAAOjB,WAAW;QACnCgB,kBAAkBC,OAAOL,YAAY;IACzC,OAAO;QACH,MAAMK,SAAS,MAAMtB,MAAMwB,kBAAkB,CAACP;QAC9CG,iBAAiBE,OAAOjB,WAAW;QACnCgB,kBAAkBC,OAAOL,YAAY;IACzC;IAEAhB,qBAAqBQ,GAAG,CAACL,QAAQ;QAC7B,GAAGI,KAAK;QACRH,aAAae;QACbH,cAAcI;IAClB;IAEA,OAAOD;AACX,EAAE"}
1
+ {"version":3,"sources":["../../src/sdk/access-token.ts"],"sourcesContent":["import { getAccessToken, refreshAccessToken } from \"./auth\";\n\ntype Credentials = {\n emailAddress: string;\n password: string;\n refreshToken?: string;\n accessToken?: string;\n};\n\nconst tenantCredentialsMap = new Map<string, Credentials>();\n\nexport const getCurrentAccessToken = async () => {\n const shopId = \"1\";\n const accessToken = await getTenantAccessToken(shopId);\n return accessToken;\n};\n\nexport const setTenantCredentials = (\n shopId: string,\n credentials: Credentials\n) => {\n tenantCredentialsMap.set(shopId, credentials);\n};\n\nexport const getTenantAccessToken = async (shopId: string) => {\n const credentials = tenantCredentialsMap.get(shopId) || {\n emailAddress: process.env.CJ_EMAIL_ADDRESS || \"\",\n password: process.env.CJ_PASSWORD || \"\",\n refreshToken: process.env.CJ_REFRESH_TOKEN || \"\",\n };\n\n if (credentials.accessToken) {\n return credentials.accessToken;\n }\n\n if (!credentials?.emailAddress || !credentials?.password) {\n throw new Error(\n `Credentials for tenant ${shopId} are missing or incomplete`\n );\n }\n\n const { emailAddress, password, refreshToken } = credentials;\n\n let newAccessToken: string;\n let newRefreshToken: string | undefined;\n\n if (!refreshToken) {\n const result = await getAccessToken(emailAddress, password);\n newAccessToken = result.accessToken;\n newRefreshToken = result.refreshToken;\n } else {\n const result = await refreshAccessToken(refreshToken);\n newAccessToken = result.accessToken;\n newRefreshToken = result.refreshToken;\n }\n\n tenantCredentialsMap.set(shopId, {\n ...credentials,\n accessToken: newAccessToken,\n refreshToken: newRefreshToken,\n });\n\n return newAccessToken;\n};\n"],"names":["getAccessToken","refreshAccessToken","tenantCredentialsMap","Map","getCurrentAccessToken","shopId","accessToken","getTenantAccessToken","setTenantCredentials","credentials","set","get","emailAddress","process","env","CJ_EMAIL_ADDRESS","password","CJ_PASSWORD","refreshToken","CJ_REFRESH_TOKEN","Error","newAccessToken","newRefreshToken","result"],"mappings":"AAAA,SAASA,cAAc,EAAEC,kBAAkB,QAAQ,SAAS;AAS5D,MAAMC,uBAAuB,IAAIC;AAEjC,OAAO,MAAMC,wBAAwB;IACjC,MAAMC,SAAS;IACf,MAAMC,cAAc,MAAMC,qBAAqBF;IAC/C,OAAOC;AACX,EAAE;AAEF,OAAO,MAAME,uBAAuB,CAChCH,QACAI;IAEAP,qBAAqBQ,GAAG,CAACL,QAAQI;AACrC,EAAE;AAEF,OAAO,MAAMF,uBAAuB,OAAOF;IACvC,MAAMI,cAAcP,qBAAqBS,GAAG,CAACN,WAAW;QACpDO,cAAcC,QAAQC,GAAG,CAACC,gBAAgB,IAAI;QAC9CC,UAAUH,QAAQC,GAAG,CAACG,WAAW,IAAI;QACrCC,cAAcL,QAAQC,GAAG,CAACK,gBAAgB,IAAI;IAClD;IAEA,IAAIV,YAAYH,WAAW,EAAE;QACzB,OAAOG,YAAYH,WAAW;IAClC;IAEA,IAAI,CAACG,aAAaG,gBAAgB,CAACH,aAAaO,UAAU;QACtD,MAAM,IAAII,MACN,CAAC,uBAAuB,EAAEf,OAAO,0BAA0B,CAAC;IAEpE;IAEA,MAAM,EAAEO,YAAY,EAAEI,QAAQ,EAAEE,YAAY,EAAE,GAAGT;IAEjD,IAAIY;IACJ,IAAIC;IAEJ,IAAI,CAACJ,cAAc;QACf,MAAMK,SAAS,MAAMvB,eAAeY,cAAcI;QAClDK,iBAAiBE,OAAOjB,WAAW;QACnCgB,kBAAkBC,OAAOL,YAAY;IACzC,OAAO;QACH,MAAMK,SAAS,MAAMtB,mBAAmBiB;QACxCG,iBAAiBE,OAAOjB,WAAW;QACnCgB,kBAAkBC,OAAOL,YAAY;IACzC;IAEAhB,qBAAqBQ,GAAG,CAACL,QAAQ;QAC7B,GAAGI,WAAW;QACdH,aAAae;QACbH,cAAcI;IAClB;IAEA,OAAOD;AACX,EAAE"}
@@ -1,45 +1,44 @@
1
- import { cjApiClient } from './api-client';
1
+ import { cjApiClient } from "../api-client";
2
2
  export async function getAccessToken(email, password) {
3
3
  try {
4
- const response = await cjApiClient.post('authentication/getAccessToken', {
4
+ const response = await cjApiClient.post("authentication/getAccessToken", {
5
5
  email,
6
6
  password
7
7
  });
8
8
  if (!response.data.data?.accessToken) {
9
- throw new Error('Failed to fetch access token');
9
+ throw new Error("Failed to fetch access token");
10
10
  }
11
11
  // TODO: add logger
12
12
  // console.log('Access Token:', response.data.data?.accessToken)
13
13
  return response.data.data;
14
14
  } catch (error) {
15
- console.error('Error fetching access token:', error);
16
- throw error // Rethrow for caller to handle
17
- ;
15
+ console.error("Error fetching access token:", error);
16
+ throw error; // Rethrow for caller to handle
18
17
  }
19
18
  }
20
19
  export async function refreshAccessToken(refreshToken) {
21
20
  try {
22
- const response = await cjApiClient.post('authentication/refreshAccessToken', {
21
+ const response = await cjApiClient.post("authentication/refreshAccessToken", {
23
22
  refreshToken
24
23
  });
25
24
  // TODO: add logger
26
25
  // console.info('New Access Token:', response.data.data.accessToken)
27
26
  return response.data.data;
28
27
  } catch (error) {
29
- console.error('Error refreshing access token:', error);
28
+ console.error("Error refreshing access token:", error);
30
29
  throw error;
31
30
  }
32
31
  }
33
32
  export async function logout(accessToken) {
34
33
  try {
35
- await cjApiClient.post('authentication/logout', {}, {
34
+ await cjApiClient.post("authentication/logout", {}, {
36
35
  headers: {
37
- 'CJ-Access-Token': accessToken
36
+ "CJ-Access-Token": accessToken
38
37
  }
39
38
  });
40
- console.log('Successfully logged out');
39
+ console.log("Successfully logged out");
41
40
  } catch (error) {
42
- console.error('Logout failed:', error);
41
+ console.error("Logout failed:", error);
43
42
  throw error;
44
43
  }
45
44
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/sdk/auth.ts"],"sourcesContent":["import type { AccessTokenResponse } from \"../types\";\n\nimport { cjApiClient } from \"../api-client\";\n\ninterface RefreshTokenResponse {\n code: number;\n data: {\n accessToken: string;\n accessTokenExpiryDate: string;\n createDate: string;\n refreshToken: string;\n refreshTokenExpiryDate: string;\n };\n message: string;\n requestId: string;\n result: boolean;\n}\n\ninterface LogoutResponse {\n code: number;\n data: boolean;\n message: string;\n requestId: string;\n result: boolean;\n}\n\nexport async function getAccessToken(email: string, password: string) {\n try {\n const response = await cjApiClient.post<AccessTokenResponse>(\n \"authentication/getAccessToken\",\n {\n email,\n password,\n }\n );\n\n if (!response.data.data?.accessToken) {\n throw new Error(\"Failed to fetch access token\");\n }\n // TODO: add logger\n // console.log('Access Token:', response.data.data?.accessToken)\n return response.data.data;\n } catch (error) {\n console.error(\"Error fetching access token:\", error);\n throw error; // Rethrow for caller to handle\n }\n}\n\nexport async function refreshAccessToken(refreshToken: string) {\n try {\n const response = await cjApiClient.post<RefreshTokenResponse>(\n \"authentication/refreshAccessToken\",\n {\n refreshToken,\n }\n );\n\n // TODO: add logger\n // console.info('New Access Token:', response.data.data.accessToken)\n return response.data.data;\n } catch (error) {\n console.error(\"Error refreshing access token:\", error);\n throw error;\n }\n}\n\nexport async function logout(accessToken: string) {\n try {\n await cjApiClient.post<LogoutResponse>(\n \"authentication/logout\",\n {},\n {\n headers: { \"CJ-Access-Token\": accessToken },\n }\n );\n\n console.log(\"Successfully logged out\");\n } catch (error) {\n console.error(\"Logout failed:\", error);\n throw error;\n }\n}\n"],"names":["cjApiClient","getAccessToken","email","password","response","post","data","accessToken","Error","error","console","refreshAccessToken","refreshToken","logout","headers","log"],"mappings":"AAEA,SAASA,WAAW,QAAQ,gBAAgB;AAwB5C,OAAO,eAAeC,eAAeC,KAAa,EAAEC,QAAgB;IAChE,IAAI;QACA,MAAMC,WAAW,MAAMJ,YAAYK,IAAI,CACnC,iCACA;YACIH;YACAC;QACJ;QAGJ,IAAI,CAACC,SAASE,IAAI,CAACA,IAAI,EAAEC,aAAa;YAClC,MAAM,IAAIC,MAAM;QACpB;QACA,mBAAmB;QACnB,gEAAgE;QAChE,OAAOJ,SAASE,IAAI,CAACA,IAAI;IAC7B,EAAE,OAAOG,OAAO;QACZC,QAAQD,KAAK,CAAC,gCAAgCA;QAC9C,MAAMA,OAAO,+BAA+B;IAChD;AACJ;AAEA,OAAO,eAAeE,mBAAmBC,YAAoB;IACzD,IAAI;QACA,MAAMR,WAAW,MAAMJ,YAAYK,IAAI,CACnC,qCACA;YACIO;QACJ;QAGJ,mBAAmB;QACnB,oEAAoE;QACpE,OAAOR,SAASE,IAAI,CAACA,IAAI;IAC7B,EAAE,OAAOG,OAAO;QACZC,QAAQD,KAAK,CAAC,kCAAkCA;QAChD,MAAMA;IACV;AACJ;AAEA,OAAO,eAAeI,OAAON,WAAmB;IAC5C,IAAI;QACA,MAAMP,YAAYK,IAAI,CAClB,yBACA,CAAC,GACD;YACIS,SAAS;gBAAE,mBAAmBP;YAAY;QAC9C;QAGJG,QAAQK,GAAG,CAAC;IAChB,EAAE,OAAON,OAAO;QACZC,QAAQD,KAAK,CAAC,kBAAkBA;QAChC,MAAMA;IACV;AACJ"}
@@ -1,4 +1,18 @@
1
- export { getAccessToken, logout, refreshAccessToken } from '../auth';
2
- export { confirmOrder, createOrder, deleteOrder, listOrders, queryOrder } from './orders/orders';
3
- export { getProductCategory, getProductDetails, getProductList } from './products/products';
4
- export { getSettings } from './settings/settings-api';
1
+ export type CjSdk = ReturnType<typeof cjSdk>;
2
+ export declare function cjSdk({ accessToken }: {
3
+ accessToken: string;
4
+ }): {
5
+ orders: {
6
+ confirmOrder: (params: any) => Promise<import("../error-types").APIResponse<string>>;
7
+ createOrder: (params: any) => Promise<import("../error-types").APIResponse<import("./orders/order-types").CreateOrderResponse>>;
8
+ deleteOrder: (params: any) => Promise<import("../error-types").APIResponse<{
9
+ data: string;
10
+ }>>;
11
+ listOrders: (params: any) => Promise<import("../error-types").APIResponse<import("./orders/order-types").ListOrderResponse>>;
12
+ queryOrder: (params: any) => Promise<import("../error-types").APIResponse<import("./orders/order-types").QueryOrderResponse>>;
13
+ };
14
+ products: {
15
+ getProductDetails: (params: any) => Promise<import("../error-types").APIResponse<import("./products/product-types").ProductDetails>>;
16
+ getProductStockByVid: (params: any) => Promise<import("../error-types").APIResponse<import("./products/product-types").StockInfo[]>>;
17
+ };
18
+ };
@@ -1,6 +1,44 @@
1
- export { getAccessToken, logout, refreshAccessToken } from '../auth';
2
- export { confirmOrder, createOrder, deleteOrder, listOrders, queryOrder } from './orders/orders';
3
- export { getProductCategory, getProductDetails, getProductList } from './products/products';
4
- export { getSettings } from './settings/settings-api';
1
+ import { confirmOrder, createOrder, deleteOrder, listOrders, queryOrder } from "./orders/orders";
2
+ import { getProductDetails, getProductStockByVid } from "./products/products";
3
+ export function cjSdk({ accessToken }) {
4
+ return {
5
+ orders: {
6
+ confirmOrder: (params)=>confirmOrder({
7
+ ...params,
8
+ accessToken
9
+ }),
10
+ createOrder: (params)=>createOrder({
11
+ ...params,
12
+ accessToken
13
+ }),
14
+ deleteOrder: (params)=>deleteOrder({
15
+ ...params,
16
+ accessToken
17
+ }),
18
+ listOrders: (params)=>listOrders({
19
+ ...params,
20
+ accessToken
21
+ }),
22
+ queryOrder: (params)=>queryOrder({
23
+ ...params,
24
+ accessToken
25
+ })
26
+ },
27
+ products: {
28
+ // getProductCategory: (params) =>
29
+ // getProductCategory({ ...params, accessToken }),
30
+ getProductDetails: (params)=>getProductDetails({
31
+ ...params,
32
+ accessToken
33
+ }),
34
+ // getProductList: (params) =>
35
+ // getProductList({ ...params, accessToken }),
36
+ getProductStockByVid: (params)=>getProductStockByVid({
37
+ ...params,
38
+ accessToken
39
+ })
40
+ }
41
+ };
42
+ }
5
43
 
6
44
  //# sourceMappingURL=cj-sdk.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/sdk/cj-sdk.ts"],"sourcesContent":["export { getAccessToken, logout, refreshAccessToken } from '../auth'\nexport { confirmOrder, createOrder, deleteOrder, listOrders, queryOrder } from './orders/orders'\nexport { getProductCategory, getProductDetails, getProductList } from './products/products'\nexport { getSettings } from './settings/settings-api'\n"],"names":["getAccessToken","logout","refreshAccessToken","confirmOrder","createOrder","deleteOrder","listOrders","queryOrder","getProductCategory","getProductDetails","getProductList","getSettings"],"mappings":"AAAA,SAASA,cAAc,EAAEC,MAAM,EAAEC,kBAAkB,QAAQ,UAAS;AACpE,SAASC,YAAY,EAAEC,WAAW,EAAEC,WAAW,EAAEC,UAAU,EAAEC,UAAU,QAAQ,kBAAiB;AAChG,SAASC,kBAAkB,EAAEC,iBAAiB,EAAEC,cAAc,QAAQ,sBAAqB;AAC3F,SAASC,WAAW,QAAQ,0BAAyB"}
1
+ {"version":3,"sources":["../../src/sdk/cj-sdk.ts"],"sourcesContent":["import {\n confirmOrder,\n createOrder,\n deleteOrder,\n listOrders,\n queryOrder,\n} from \"./orders/orders\";\nimport {\n getProductCategory,\n getProductDetails,\n getProductList,\n getProductStockByVid,\n} from \"./products/products\";\nimport { getSettings } from \"./settings/settings-api\";\n\nexport type CjSdk = ReturnType<typeof cjSdk>;\n\nexport function cjSdk({ accessToken }: { accessToken: string }) {\n return {\n orders: {\n confirmOrder: (params: any) =>\n confirmOrder({ ...params, accessToken }),\n createOrder: (params: any) =>\n createOrder({ ...params, accessToken }),\n deleteOrder: (params: any) =>\n deleteOrder({ ...params, accessToken }),\n listOrders: (params: any) => listOrders({ ...params, accessToken }),\n queryOrder: (params: any) => queryOrder({ ...params, accessToken }),\n },\n products: {\n // getProductCategory: (params) =>\n // getProductCategory({ ...params, accessToken }),\n getProductDetails: (params: any) =>\n getProductDetails({ ...params, accessToken }),\n // getProductList: (params) =>\n // getProductList({ ...params, accessToken }),\n getProductStockByVid: (params: any) =>\n getProductStockByVid({ ...params, accessToken }),\n },\n // settings: {\n // getSettings: () => getSettings({ accessToken }),\n // },\n };\n}\n"],"names":["confirmOrder","createOrder","deleteOrder","listOrders","queryOrder","getProductDetails","getProductStockByVid","cjSdk","accessToken","orders","params","products"],"mappings":"AAAA,SACIA,YAAY,EACZC,WAAW,EACXC,WAAW,EACXC,UAAU,EACVC,UAAU,QACP,kBAAkB;AACzB,SAEIC,iBAAiB,EAEjBC,oBAAoB,QACjB,sBAAsB;AAK7B,OAAO,SAASC,MAAM,EAAEC,WAAW,EAA2B;IAC1D,OAAO;QACHC,QAAQ;YACJT,cAAc,CAACU,SACXV,aAAa;oBAAE,GAAGU,MAAM;oBAAEF;gBAAY;YAC1CP,aAAa,CAACS,SACVT,YAAY;oBAAE,GAAGS,MAAM;oBAAEF;gBAAY;YACzCN,aAAa,CAACQ,SACVR,YAAY;oBAAE,GAAGQ,MAAM;oBAAEF;gBAAY;YACzCL,YAAY,CAACO,SAAgBP,WAAW;oBAAE,GAAGO,MAAM;oBAAEF;gBAAY;YACjEJ,YAAY,CAACM,SAAgBN,WAAW;oBAAE,GAAGM,MAAM;oBAAEF;gBAAY;QACrE;QACAG,UAAU;YACN,kCAAkC;YAClC,sDAAsD;YACtDN,mBAAmB,CAACK,SAChBL,kBAAkB;oBAAE,GAAGK,MAAM;oBAAEF;gBAAY;YAC/C,8BAA8B;YAC9B,kDAAkD;YAClDF,sBAAsB,CAACI,SACnBJ,qBAAqB;oBAAE,GAAGI,MAAM;oBAAEF;gBAAY;QACtD;IAIJ;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sdk/dispute/dispute-types.ts"],"sourcesContent":["// disputes-types.ts\nexport interface CreateDisputeRequest {\n businessDisputeId: string\n disputeReasonId: number\n expectType: number\n imageUrl?: string[]\n messageText: string\n orderId: string\n productInfoList: {\n lineItemId: string\n price?: number // If necessary\n quantity: number\n }[]\n refundType: number\n videoUrl?: string[]\n}\n\nexport interface DisputeAPIResponse {\n code: number\n data: any // Adjust based on the actual structure\n message: string\n redirectUri?: string\n requestId?: string\n result: boolean\n}\n\n// dispute-types.ts\nexport interface ConfirmDisputeRequest {\n orderId: string\n productInfoList: {\n lineItemId: string\n price?: number // If necessary\n quantity: number\n }[]\n}\n\nexport interface ConfirmDisputeResponse {\n code: number\n data: {\n disputeReasonList: {\n disputeReasonId: number\n reasonName: string\n }[]\n expectResultOptionList: string[]\n maxAmount: number\n maxIossHandTaxAmount: number\n maxIossTaxAmount: number\n maxPostage: number\n maxProductPrice: number\n orderId: string\n orderNumber: string\n productInfoList: {\n canChoose: boolean\n cjImage: string\n cjProductId: string\n cjProductName: string\n cjVariantId: string\n lineItemId: string\n price: number\n quantity: number\n sku: string\n supplierName: string\n }[]\n }\n message: string\n requestId: string\n result: boolean\n success: boolean\n}\n"],"names":[],"mappings":"AAAA,oBAAoB;AAoCpB,WAgCC"}
1
+ {"version":3,"sources":["../../../src/sdk/dispute/dispute-types.ts"],"sourcesContent":["// disputes-types.ts\nexport interface CreateDisputeRequest {\n businessDisputeId: string;\n disputeReasonId: number;\n expectType: number;\n imageUrl?: string[];\n messageText: string;\n orderId: string;\n productInfoList: {\n lineItemId: string;\n price?: number; // If necessary\n quantity: number;\n }[];\n refundType: number;\n videoUrl?: string[];\n}\n\nexport interface DisputeAPIResponse {\n code: number;\n data: any; // Adjust based on the actual structure\n message: string;\n redirectUri?: string;\n requestId?: string;\n result: boolean;\n}\n\n// dispute-types.ts\nexport interface ConfirmDisputeRequest {\n orderId: string;\n productInfoList: {\n lineItemId: string;\n price?: number; // If necessary\n quantity: number;\n }[];\n}\n\nexport interface ConfirmDisputeResponse {\n code: number;\n data: {\n disputeReasonList: {\n disputeReasonId: number;\n reasonName: string;\n }[];\n expectResultOptionList: string[];\n maxAmount: number;\n maxIossHandTaxAmount: number;\n maxIossTaxAmount: number;\n maxPostage: number;\n maxProductPrice: number;\n orderId: string;\n orderNumber: string;\n productInfoList: {\n canChoose: boolean;\n cjImage: string;\n cjProductId: string;\n cjProductName: string;\n cjVariantId: string;\n lineItemId: string;\n price: number;\n quantity: number;\n sku: string;\n supplierName: string;\n }[];\n };\n message: string;\n requestId: string;\n result: boolean;\n success: boolean;\n}\n"],"names":[],"mappings":"AAAA,oBAAoB;AAoCpB,WAgCC"}
@@ -1,4 +1,4 @@
1
- import type { APIResponse } from '../../error-types';
2
- import type { ConfirmDisputeRequest, ConfirmDisputeResponse, CreateDisputeRequest, DisputeAPIResponse } from './dispute-types.ts';
1
+ import type { APIResponse } from "../../error-types";
2
+ import type { ConfirmDisputeRequest, ConfirmDisputeResponse, CreateDisputeRequest, DisputeAPIResponse } from "./dispute-types.ts";
3
3
  export declare function createDispute(requestData: CreateDisputeRequest): Promise<APIResponse<DisputeAPIResponse>>;
4
4
  export declare function confirmDispute(requestData: ConfirmDisputeRequest): Promise<APIResponse<ConfirmDisputeResponse>>;