@ripwords/myinvois-client 0.2.3 → 0.2.4

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 (49) hide show
  1. package/dist/api/documentTypeManagement.d.ts +3 -3
  2. package/dist/api/notificationManagement.d.ts +2 -2
  3. package/dist/api/taxpayerValidation.d.ts +3 -3
  4. package/dist/api/taxpayerValidation.js +1 -1
  5. package/dist/documentTypeManagement-DXRLfTsW.cjs.map +1 -1
  6. package/dist/index.cjs +1 -1
  7. package/dist/index.cjs.map +1 -1
  8. package/dist/index.d.ts +6 -6
  9. package/dist/index.js +1 -1
  10. package/dist/index10.cjs +16 -187
  11. package/dist/index10.cjs.map +1 -1
  12. package/dist/index12.cjs +25 -16
  13. package/dist/index12.cjs.map +1 -1
  14. package/dist/index13.cjs +24 -0
  15. package/dist/{index19.cjs.map → index13.cjs.map} +1 -1
  16. package/dist/index15.cjs +0 -29
  17. package/dist/index16.cjs +0 -25
  18. package/dist/index17.cjs +5 -0
  19. package/dist/index18.cjs +5 -33
  20. package/dist/index19.cjs +4 -23
  21. package/dist/index2.cjs +61 -4
  22. package/dist/{index8.cjs.map → index2.cjs.map} +1 -1
  23. package/dist/index20.cjs +3 -0
  24. package/dist/index21.cjs +3 -0
  25. package/dist/index22.cjs +5 -0
  26. package/dist/index3.cjs +531 -5
  27. package/dist/index3.cjs.map +1 -0
  28. package/dist/index4.cjs +195 -4
  29. package/dist/index4.cjs.map +1 -0
  30. package/dist/index5.cjs +0 -3
  31. package/dist/index6.cjs +24 -2
  32. package/dist/index6.cjs.map +1 -0
  33. package/dist/index63.cts.map +1 -1
  34. package/dist/index64.cts.map +1 -1
  35. package/dist/index66.cts.map +1 -1
  36. package/dist/index67.cts.map +1 -1
  37. package/dist/index7.cjs +0 -5
  38. package/dist/index8.cjs +0 -62
  39. package/dist/index9.cjs +23 -526
  40. package/dist/index9.cjs.map +1 -1
  41. package/dist/notificationManagement-C_qrFwWL.cjs.map +1 -1
  42. package/dist/{taxpayerValidation-DdeXCvPT.cjs → taxpayerValidation-CSuifcY1.cjs} +2 -15
  43. package/dist/taxpayerValidation-CSuifcY1.cjs.map +1 -0
  44. package/dist/{taxpayerValidation-DI4B6kWx.js → taxpayerValidation-DiLGJg1l.js} +1 -14
  45. package/package.json +1 -1
  46. package/dist/index15.cjs.map +0 -1
  47. package/dist/index16.cjs.map +0 -1
  48. package/dist/index18.cjs.map +0 -1
  49. package/dist/taxpayerValidation-DdeXCvPT.cjs.map +0 -1
@@ -14,20 +14,7 @@ async function tinSearch(context, params) {
14
14
  const queryString = queryParams.toString();
15
15
  try {
16
16
  const response = await fetch(`/api/v1.0/taxpayer/search/tin?${queryString}`, { method: "GET" });
17
- if (response.status === 200) return await response.json();
18
- if (response.status === 400) {
19
- const errorData$1 = await response.json();
20
- if (debug) console.error("TIN search failed - search criteria not conclusive or invalid parameters:", errorData$1);
21
- return errorData$1;
22
- }
23
- if (response.status === 404) {
24
- const errorData$1 = await response.json();
25
- if (debug) console.error("TIN search failed - no TIN found for given search criteria:", errorData$1);
26
- return errorData$1;
27
- }
28
- const errorData = await response.json();
29
- if (debug) console.error("TIN search failed with status:", response.status, errorData);
30
- return errorData;
17
+ return await response.json();
31
18
  } catch (error) {
32
19
  if (debug) console.error("TIN search error:", error);
33
20
  throw error;
@@ -70,4 +57,4 @@ Object.defineProperty(exports, 'verifyTin', {
70
57
  return verifyTin;
71
58
  }
72
59
  });
73
- //# sourceMappingURL=taxpayerValidation-DdeXCvPT.cjs.map
60
+ //# sourceMappingURL=taxpayerValidation-CSuifcY1.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taxpayerValidation-CSuifcY1.cjs","names":["context: TaxpayerContext","params: TinSearchParams","tin: string","idType: RegistrationType","idValue: string","qrCodeText: string"],"sources":["../src/api/taxpayerValidation.ts"],"sourcesContent":["import type {\n Fetch,\n RegistrationType,\n TaxpayerQRCodeResponse,\n TinSearchParams,\n TinSearchResponse,\n} from '../types'\n\ninterface TaxpayerContext {\n fetch: Fetch\n debug: boolean\n}\n\nexport async function tinSearch(\n context: TaxpayerContext,\n params: TinSearchParams,\n): Promise<TinSearchResponse> {\n const { fetch, debug } = context\n const { taxpayerName, idType, idValue } = params\n\n // Validate input parameters according to API requirements\n if (!taxpayerName && (!idType || !idValue)) {\n throw new Error(\n 'Either taxpayerName must be provided, or both idType and idValue must be provided',\n )\n }\n\n if ((idType && !idValue) || (!idType && idValue)) {\n throw new Error('idType and idValue must be provided together')\n }\n\n // Build query parameters\n const queryParams = new URLSearchParams()\n\n if (taxpayerName) {\n queryParams.append('taxpayerName', taxpayerName)\n }\n\n if (idType && idValue) {\n queryParams.append('idType', idType)\n queryParams.append('idValue', idValue)\n }\n\n const queryString = queryParams.toString()\n\n try {\n const response = await fetch(\n `/api/v1.0/taxpayer/search/tin?${queryString}`,\n {\n method: 'GET',\n },\n )\n return (await response.json()) as TinSearchResponse\n } catch (error) {\n if (debug) {\n console.error('TIN search error:', error)\n }\n throw error\n }\n}\n\nexport async function verifyTin(\n context: TaxpayerContext,\n tin: string,\n idType: RegistrationType,\n idValue: string,\n): Promise<boolean> {\n const { fetch, debug } = context\n\n try {\n const response = await fetch(\n `/api/v1.0/taxpayer/validate/${tin}?idType=${idType}&idValue=${idValue}`,\n {\n method: 'GET',\n },\n )\n\n if (response.status === 200) {\n return true\n }\n\n return false\n } catch (error) {\n if (debug) {\n console.error(error)\n }\n return false\n }\n}\n\nexport async function taxpayerQRCode(\n context: TaxpayerContext,\n qrCodeText: string,\n): Promise<TaxpayerQRCodeResponse> {\n const { fetch } = context\n\n const base64EncodedQRCodeText = Buffer.from(qrCodeText).toString('base64')\n\n const response = await fetch(\n `/api/v1.0/taxpayer/qrcodeinfo/${base64EncodedQRCodeText}`,\n )\n\n return response.json()\n}\n"],"mappings":";;AAaA,eAAsB,UACpBA,SACAC,QAC4B;CAC5B,MAAM,EAAE,OAAO,OAAO,GAAG;CACzB,MAAM,EAAE,cAAc,QAAQ,SAAS,GAAG;AAG1C,MAAK,kBAAkB,WAAW,SAChC,OAAM,IAAI,MACR;AAIJ,KAAK,WAAW,YAAc,UAAU,QACtC,OAAM,IAAI,MAAM;CAIlB,MAAM,cAAc,IAAI;AAExB,KAAI,aACF,aAAY,OAAO,gBAAgB,aAAa;AAGlD,KAAI,UAAU,SAAS;AACrB,cAAY,OAAO,UAAU,OAAO;AACpC,cAAY,OAAO,WAAW,QAAQ;CACvC;CAED,MAAM,cAAc,YAAY,UAAU;AAE1C,KAAI;EACF,MAAM,WAAW,MAAM,OACpB,gCAAgC,YAAY,GAC7C,EACE,QAAQ,MACT,EACF;AACD,SAAQ,MAAM,SAAS,MAAM;CAC9B,SAAQ,OAAO;AACd,MAAI,MACF,SAAQ,MAAM,qBAAqB,MAAM;AAE3C,QAAM;CACP;AACF;AAED,eAAsB,UACpBD,SACAE,KACAC,QACAC,SACkB;CAClB,MAAM,EAAE,OAAO,OAAO,GAAG;AAEzB,KAAI;EACF,MAAM,WAAW,MAAM,OACpB,8BAA8B,IAAI,UAAU,OAAO,WAAW,QAAQ,GACvE,EACE,QAAQ,MACT,EACF;AAED,MAAI,SAAS,WAAW,IACtB,QAAO;AAGT,SAAO;CACR,SAAQ,OAAO;AACd,MAAI,MACF,SAAQ,MAAM,MAAM;AAEtB,SAAO;CACR;AACF;AAED,eAAsB,eACpBJ,SACAK,YACiC;CACjC,MAAM,EAAE,OAAO,GAAG;CAElB,MAAM,0BAA0B,OAAO,KAAK,WAAW,CAAC,SAAS,SAAS;CAE1E,MAAM,WAAW,MAAM,OACpB,gCAAgC,wBAAwB,EAC1D;AAED,QAAO,SAAS,MAAM;AACvB"}
@@ -13,20 +13,7 @@ async function tinSearch(context, params) {
13
13
  const queryString = queryParams.toString();
14
14
  try {
15
15
  const response = await fetch(`/api/v1.0/taxpayer/search/tin?${queryString}`, { method: "GET" });
16
- if (response.status === 200) return await response.json();
17
- if (response.status === 400) {
18
- const errorData$1 = await response.json();
19
- if (debug) console.error("TIN search failed - search criteria not conclusive or invalid parameters:", errorData$1);
20
- return errorData$1;
21
- }
22
- if (response.status === 404) {
23
- const errorData$1 = await response.json();
24
- if (debug) console.error("TIN search failed - no TIN found for given search criteria:", errorData$1);
25
- return errorData$1;
26
- }
27
- const errorData = await response.json();
28
- if (debug) console.error("TIN search failed with status:", response.status, errorData);
29
- return errorData;
16
+ return await response.json();
30
17
  } catch (error) {
31
18
  if (debug) console.error("TIN search error:", error);
32
19
  throw error;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ripwords/myinvois-client",
3
- "version": "0.2.3",
3
+ "version": "0.2.4",
4
4
  "description": "MyInvois client",
5
5
  "scripts": {
6
6
  "build": "tsdown",
@@ -1 +0,0 @@
1
- {"version":3,"file":"index15.cjs","names":[],"sources":["../src/types/notifications.d.ts"],"sourcesContent":["export type NotificationType = 3 | 6 | 7 | 8 | 10 | 11 | 15 | 26 | 33 | 34 | 35\n\nexport enum NotificationTypeEnum {\n 'Profile data validation' = 3,\n 'Document received' = 6,\n 'Document validated' = 7,\n 'Document cancelled' = 8,\n 'User profile changed' = 10,\n 'Taxpayer profile changed' = 11,\n 'Document rejection initiated' = 15,\n 'ERP data validation' = 26,\n 'Documents processing summary' = 33,\n 'Document Template Published' = 34,\n 'Document Template Deletion' = 35,\n}\n\nexport type NotificationStatus = 1 | 2 | 3 | 4 | 5\n\nexport enum NotificationStatusEnum {\n 'New' = 1,\n 'Pending' = 2,\n 'Batched' = 3,\n 'Delivered' = 4,\n 'Error' = 5,\n}\n\nexport type NotificationDeliveryAttempt = {\n attemptDateTime: string\n status: string\n statusDetails: string\n}\n\nexport type NotificationMetadata = {\n hasNext: boolean\n}\n\nexport type Notification = {\n notificationId: string\n receiverNName: string\n notificationDeliveryId: string\n creationDateTime: string\n receivedDateTime: string\n notificationSubject: string\n deliveredDateTime: string\n typeId: string\n typeName: string\n finalMessage: string\n address: string\n language: string\n status: string\n deliveryAttempts: NotificationDeliveryAttempt[]\n}\n\nexport type NotificationResponse = {\n notifications: Notification[]\n metadata: NotificationMetadata\n}\n\nexport type NotificationSearchParams = {\n dateFrom?: string\n dateTo?: string\n type?: NotificationType\n language?: string\n status?: NotificationStatus\n pageNo?: number\n pageSize?: number\n}\n"],"mappings":";;AAEA,IAAY,wEAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACD;AAID,IAAY,4EAAL;AACL;AACA;AACA;AACA;AACA;;AACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index16.cjs","names":[],"sources":["../src/types/payment-modes.d.ts"],"sourcesContent":["/**\n * Represents the allowed codes for payment modes.\n * Based on the documentation: https://sdk.myinvois.hasil.gov.my/codes/payment-methods/\n */\nexport type PaymentModeCode =\n | '01' // Cash\n | '02' // Cheque\n | '03' // Bank Transfer\n | '04' // Credit Card\n | '05' // Debit Card\n | '06' // e-Wallet / Digital Wallet\n | '07' // Digital Bank\n | '08' // Others\n\n/**\n * Enum representing the allowed payment mode codes with descriptive names.\n * Provides a more readable way to reference payment modes.\n *\n * @example\n * const mode = PaymentModeCodeEnum.Cash;\n * console.log(mode); // Output: \"01\"\n */\nexport enum PaymentModeCodeEnum {\n Cash = '01',\n Cheque = '02',\n BankTransfer = '03',\n CreditCard = '04',\n DebitCard = '05',\n EWalletDigitalWallet = '06',\n DigitalBank = '07',\n Others = '08',\n}\n\n/**\n * Interface representing a payment mode entry.\n * Contains the code and its corresponding description.\n */\nexport interface PaymentMode {\n code: PaymentModeCode\n description: string\n}\n"],"mappings":";;;;;;;;;;AAsBA,IAAY,sEAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index18.cjs","names":[],"sources":["../src/types/state-codes.d.ts"],"sourcesContent":["/**\n * Represents the allowed codes for Malaysian states and federal territories.\n * Based on the documentation: https://sdk.myinvois.hasil.gov.my/codes/state-codes/\n */\nexport type StateCode =\n | '01' // Johor\n | '02' // Kedah\n | '03' // Kelantan\n | '04' // Melaka\n | '05' // Negeri Sembilan\n | '06' // Pahang\n | '07' // Pulau Pinang\n | '08' // Perak\n | '09' // Perlis\n | '10' // Selangor\n | '11' // Terengganu\n | '12' // Sabah\n | '13' // Sarawak\n | '14' // Wilayah Persekutuan Kuala Lumpur\n | '15' // Wilayah Persekutuan Labuan\n | '16' // Wilayah Persekutuan Putrajaya\n | '17' // Not Applicable\n\n/**\n * Enum representing the allowed state codes with descriptive names.\n * Provides a more readable way to reference states.\n *\n * @example\n * const code = StateCodeEnum.Selangor;\n * console.log(code); // Output: \"10\"\n */\nexport enum StateCodeEnum {\n Johor = '01',\n Kedah = '02',\n Kelantan = '03',\n Melaka = '04',\n NegeriSembilan = '05',\n Pahang = '06',\n PulauPinang = '07',\n Perak = '08',\n Perlis = '09',\n Selangor = '10',\n Terengganu = '11',\n Sabah = '12',\n Sarawak = '13',\n WPKualaLumpur = '14',\n WPLabuan = '15',\n WPPutrajaya = '16',\n NotApplicable = '17',\n}\n\n/**\n * Interface representing a state code entry.\n * Contains the code and its corresponding name.\n */\nexport interface State {\n code: StateCode\n name: string\n}\n"],"mappings":";;;;;;;;;;AA+BA,IAAY,0DAAL;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"taxpayerValidation-DdeXCvPT.cjs","names":["context: TaxpayerContext","params: TinSearchParams","errorData","tin: string","idType: RegistrationType","idValue: string","qrCodeText: string"],"sources":["../src/api/taxpayerValidation.ts"],"sourcesContent":["import type {\n Fetch,\n RegistrationType,\n StandardError,\n TaxpayerQRCodeResponse,\n TinSearchParams,\n TinSearchResponse,\n} from '../types'\n\ninterface TaxpayerContext {\n fetch: Fetch\n debug: boolean\n}\n\nexport async function tinSearch(\n context: TaxpayerContext,\n params: TinSearchParams,\n): Promise<TinSearchResponse | StandardError> {\n const { fetch, debug } = context\n const { taxpayerName, idType, idValue } = params\n\n // Validate input parameters according to API requirements\n if (!taxpayerName && (!idType || !idValue)) {\n throw new Error(\n 'Either taxpayerName must be provided, or both idType and idValue must be provided',\n )\n }\n\n if ((idType && !idValue) || (!idType && idValue)) {\n throw new Error('idType and idValue must be provided together')\n }\n\n // Build query parameters\n const queryParams = new URLSearchParams()\n\n if (taxpayerName) {\n queryParams.append('taxpayerName', taxpayerName)\n }\n\n if (idType && idValue) {\n queryParams.append('idType', idType)\n queryParams.append('idValue', idValue)\n }\n\n const queryString = queryParams.toString()\n\n try {\n const response = await fetch(\n `/api/v1.0/taxpayer/search/tin?${queryString}`,\n {\n method: 'GET',\n },\n )\n\n if (response.status === 200) {\n return (await response.json()) as TinSearchResponse\n }\n\n // Handle specific error cases mentioned in the API documentation\n if (response.status === 400) {\n const errorData = (await response.json()) as StandardError\n if (debug) {\n console.error(\n 'TIN search failed - search criteria not conclusive or invalid parameters:',\n errorData,\n )\n }\n return errorData\n }\n\n if (response.status === 404) {\n const errorData = (await response.json()) as StandardError\n if (debug) {\n console.error(\n 'TIN search failed - no TIN found for given search criteria:',\n errorData,\n )\n }\n return errorData\n }\n\n // Handle other error status codes\n const errorData = (await response.json()) as StandardError\n if (debug) {\n console.error(\n 'TIN search failed with status:',\n response.status,\n errorData,\n )\n }\n return errorData\n } catch (error) {\n if (debug) {\n console.error('TIN search error:', error)\n }\n throw error\n }\n}\n\nexport async function verifyTin(\n context: TaxpayerContext,\n tin: string,\n idType: RegistrationType,\n idValue: string,\n): Promise<boolean> {\n const { fetch, debug } = context\n\n try {\n const response = await fetch(\n `/api/v1.0/taxpayer/validate/${tin}?idType=${idType}&idValue=${idValue}`,\n {\n method: 'GET',\n },\n )\n\n if (response.status === 200) {\n return true\n }\n\n return false\n } catch (error) {\n if (debug) {\n console.error(error)\n }\n return false\n }\n}\n\nexport async function taxpayerQRCode(\n context: TaxpayerContext,\n qrCodeText: string,\n): Promise<TaxpayerQRCodeResponse | StandardError> {\n const { fetch } = context\n\n const base64EncodedQRCodeText = Buffer.from(qrCodeText).toString('base64')\n\n const response = await fetch(\n `/api/v1.0/taxpayer/qrcodeinfo/${base64EncodedQRCodeText}`,\n )\n\n return response.json()\n}\n"],"mappings":";;AAcA,eAAsB,UACpBA,SACAC,QAC4C;CAC5C,MAAM,EAAE,OAAO,OAAO,GAAG;CACzB,MAAM,EAAE,cAAc,QAAQ,SAAS,GAAG;AAG1C,MAAK,kBAAkB,WAAW,SAChC,OAAM,IAAI,MACR;AAIJ,KAAK,WAAW,YAAc,UAAU,QACtC,OAAM,IAAI,MAAM;CAIlB,MAAM,cAAc,IAAI;AAExB,KAAI,aACF,aAAY,OAAO,gBAAgB,aAAa;AAGlD,KAAI,UAAU,SAAS;AACrB,cAAY,OAAO,UAAU,OAAO;AACpC,cAAY,OAAO,WAAW,QAAQ;CACvC;CAED,MAAM,cAAc,YAAY,UAAU;AAE1C,KAAI;EACF,MAAM,WAAW,MAAM,OACpB,gCAAgC,YAAY,GAC7C,EACE,QAAQ,MACT,EACF;AAED,MAAI,SAAS,WAAW,IACtB,QAAQ,MAAM,SAAS,MAAM;AAI/B,MAAI,SAAS,WAAW,KAAK;GAC3B,MAAMC,cAAa,MAAM,SAAS,MAAM;AACxC,OAAI,MACF,SAAQ,MACN,6EACAA,YACD;AAEH,UAAOA;EACR;AAED,MAAI,SAAS,WAAW,KAAK;GAC3B,MAAMA,cAAa,MAAM,SAAS,MAAM;AACxC,OAAI,MACF,SAAQ,MACN,+DACAA,YACD;AAEH,UAAOA;EACR;EAGD,MAAM,YAAa,MAAM,SAAS,MAAM;AACxC,MAAI,MACF,SAAQ,MACN,kCACA,SAAS,QACT,UACD;AAEH,SAAO;CACR,SAAQ,OAAO;AACd,MAAI,MACF,SAAQ,MAAM,qBAAqB,MAAM;AAE3C,QAAM;CACP;AACF;AAED,eAAsB,UACpBF,SACAG,KACAC,QACAC,SACkB;CAClB,MAAM,EAAE,OAAO,OAAO,GAAG;AAEzB,KAAI;EACF,MAAM,WAAW,MAAM,OACpB,8BAA8B,IAAI,UAAU,OAAO,WAAW,QAAQ,GACvE,EACE,QAAQ,MACT,EACF;AAED,MAAI,SAAS,WAAW,IACtB,QAAO;AAGT,SAAO;CACR,SAAQ,OAAO;AACd,MAAI,MACF,SAAQ,MAAM,MAAM;AAEtB,SAAO;CACR;AACF;AAED,eAAsB,eACpBL,SACAM,YACiD;CACjD,MAAM,EAAE,OAAO,GAAG;CAElB,MAAM,0BAA0B,OAAO,KAAK,WAAW,CAAC,SAAS,SAAS;CAE1E,MAAM,WAAW,MAAM,OACpB,gCAAgC,wBAAwB,EAC1D;AAED,QAAO,SAAS,MAAM;AACvB"}