bukku-client 0.1.0-test.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.
Files changed (231) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +85 -0
  3. package/dist/accounting/accounts/index.d.ts +52 -0
  4. package/dist/accounting/accounts/index.d.ts.map +1 -0
  5. package/dist/accounting/accounts/index.js +72 -0
  6. package/dist/accounting/accounts/index.js.map +1 -0
  7. package/dist/accounting/accounts/type.d.ts +125 -0
  8. package/dist/accounting/accounts/type.d.ts.map +1 -0
  9. package/dist/accounting/accounts/type.js +4 -0
  10. package/dist/accounting/accounts/type.js.map +1 -0
  11. package/dist/accounting/index.d.ts +10 -0
  12. package/dist/accounting/index.d.ts.map +1 -0
  13. package/dist/accounting/index.js +16 -0
  14. package/dist/accounting/index.js.map +1 -0
  15. package/dist/accounting/journal-entries/index.d.ts +52 -0
  16. package/dist/accounting/journal-entries/index.d.ts.map +1 -0
  17. package/dist/accounting/journal-entries/index.js +72 -0
  18. package/dist/accounting/journal-entries/index.js.map +1 -0
  19. package/dist/accounting/journal-entries/type.d.ts +151 -0
  20. package/dist/accounting/journal-entries/type.d.ts.map +1 -0
  21. package/dist/accounting/journal-entries/type.js +4 -0
  22. package/dist/accounting/journal-entries/type.js.map +1 -0
  23. package/dist/common/type.d.ts +105 -0
  24. package/dist/common/type.d.ts.map +1 -0
  25. package/dist/common/type.js +3 -0
  26. package/dist/common/type.js.map +1 -0
  27. package/dist/contacts/contacts/index.d.ts +57 -0
  28. package/dist/contacts/contacts/index.d.ts.map +1 -0
  29. package/dist/contacts/contacts/index.js +82 -0
  30. package/dist/contacts/contacts/index.js.map +1 -0
  31. package/dist/contacts/contacts/type.d.ts +286 -0
  32. package/dist/contacts/contacts/type.d.ts.map +1 -0
  33. package/dist/contacts/contacts/type.js +4 -0
  34. package/dist/contacts/contacts/type.js.map +1 -0
  35. package/dist/contacts/groups/index.d.ts +42 -0
  36. package/dist/contacts/groups/index.d.ts.map +1 -0
  37. package/dist/contacts/groups/index.js +59 -0
  38. package/dist/contacts/groups/index.js.map +1 -0
  39. package/dist/contacts/groups/type.d.ts +34 -0
  40. package/dist/contacts/groups/type.d.ts.map +1 -0
  41. package/dist/contacts/groups/type.js +4 -0
  42. package/dist/contacts/groups/type.js.map +1 -0
  43. package/dist/contacts/index.d.ts +10 -0
  44. package/dist/contacts/index.d.ts.map +1 -0
  45. package/dist/contacts/index.js +15 -0
  46. package/dist/contacts/index.js.map +1 -0
  47. package/dist/control-panel/index.d.ts +15 -0
  48. package/dist/control-panel/index.d.ts.map +1 -0
  49. package/dist/control-panel/index.js +35 -0
  50. package/dist/control-panel/index.js.map +1 -0
  51. package/dist/control-panel/locations/index.d.ts +51 -0
  52. package/dist/control-panel/locations/index.d.ts.map +1 -0
  53. package/dist/control-panel/locations/index.js +70 -0
  54. package/dist/control-panel/locations/index.js.map +1 -0
  55. package/dist/control-panel/locations/type.d.ts +91 -0
  56. package/dist/control-panel/locations/type.d.ts.map +1 -0
  57. package/dist/control-panel/locations/type.js +4 -0
  58. package/dist/control-panel/locations/type.js.map +1 -0
  59. package/dist/control-panel/tag-groups/index.d.ts +44 -0
  60. package/dist/control-panel/tag-groups/index.d.ts.map +1 -0
  61. package/dist/control-panel/tag-groups/index.js +63 -0
  62. package/dist/control-panel/tag-groups/index.js.map +1 -0
  63. package/dist/control-panel/tag-groups/type.d.ts +64 -0
  64. package/dist/control-panel/tag-groups/type.d.ts.map +1 -0
  65. package/dist/control-panel/tag-groups/type.js +4 -0
  66. package/dist/control-panel/tag-groups/type.js.map +1 -0
  67. package/dist/control-panel/tags/index.d.ts +43 -0
  68. package/dist/control-panel/tags/index.d.ts.map +1 -0
  69. package/dist/control-panel/tags/index.js +60 -0
  70. package/dist/control-panel/tags/index.js.map +1 -0
  71. package/dist/control-panel/tags/type.d.ts +60 -0
  72. package/dist/control-panel/tags/type.d.ts.map +1 -0
  73. package/dist/control-panel/tags/type.js +4 -0
  74. package/dist/control-panel/tags/type.js.map +1 -0
  75. package/dist/files/index.d.ts +29 -0
  76. package/dist/files/index.d.ts.map +1 -0
  77. package/dist/files/index.js +42 -0
  78. package/dist/files/index.js.map +1 -0
  79. package/dist/files/type.d.ts +50 -0
  80. package/dist/files/type.d.ts.map +1 -0
  81. package/dist/files/type.js +4 -0
  82. package/dist/files/type.js.map +1 -0
  83. package/dist/index.d.ts +73 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +130 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/lists/index.d.ts +24 -0
  88. package/dist/lists/index.d.ts.map +1 -0
  89. package/dist/lists/index.js +33 -0
  90. package/dist/lists/index.js.map +1 -0
  91. package/dist/lists/type.d.ts +781 -0
  92. package/dist/lists/type.d.ts.map +1 -0
  93. package/dist/lists/type.js +3 -0
  94. package/dist/lists/type.js.map +1 -0
  95. package/dist/products/groups/index.d.ts +42 -0
  96. package/dist/products/groups/index.d.ts.map +1 -0
  97. package/dist/products/groups/index.js +59 -0
  98. package/dist/products/groups/index.js.map +1 -0
  99. package/dist/products/groups/type.d.ts +53 -0
  100. package/dist/products/groups/type.d.ts.map +1 -0
  101. package/dist/products/groups/type.js +5 -0
  102. package/dist/products/groups/type.js.map +1 -0
  103. package/dist/products/index.d.ts +10 -0
  104. package/dist/products/index.d.ts.map +1 -0
  105. package/dist/products/index.js +15 -0
  106. package/dist/products/index.js.map +1 -0
  107. package/dist/products/products/index.d.ts +51 -0
  108. package/dist/products/products/index.d.ts.map +1 -0
  109. package/dist/products/products/index.js +70 -0
  110. package/dist/products/products/index.js.map +1 -0
  111. package/dist/products/products/type.d.ts +270 -0
  112. package/dist/products/products/type.d.ts.map +1 -0
  113. package/dist/products/products/type.js +4 -0
  114. package/dist/products/products/type.js.map +1 -0
  115. package/dist/purchases/bills/index.d.ts +51 -0
  116. package/dist/purchases/bills/index.d.ts.map +1 -0
  117. package/dist/purchases/bills/index.js +75 -0
  118. package/dist/purchases/bills/index.js.map +1 -0
  119. package/dist/purchases/bills/type.d.ts +254 -0
  120. package/dist/purchases/bills/type.d.ts.map +1 -0
  121. package/dist/purchases/bills/type.js +4 -0
  122. package/dist/purchases/bills/type.js.map +1 -0
  123. package/dist/purchases/credit-notes/index.d.ts +51 -0
  124. package/dist/purchases/credit-notes/index.d.ts.map +1 -0
  125. package/dist/purchases/credit-notes/index.js +71 -0
  126. package/dist/purchases/credit-notes/index.js.map +1 -0
  127. package/dist/purchases/credit-notes/type.d.ts +204 -0
  128. package/dist/purchases/credit-notes/type.d.ts.map +1 -0
  129. package/dist/purchases/credit-notes/type.js +4 -0
  130. package/dist/purchases/credit-notes/type.js.map +1 -0
  131. package/dist/purchases/goods-received-notes/index.d.ts +51 -0
  132. package/dist/purchases/goods-received-notes/index.d.ts.map +1 -0
  133. package/dist/purchases/goods-received-notes/index.js +71 -0
  134. package/dist/purchases/goods-received-notes/index.js.map +1 -0
  135. package/dist/purchases/goods-received-notes/type.d.ts +184 -0
  136. package/dist/purchases/goods-received-notes/type.d.ts.map +1 -0
  137. package/dist/purchases/goods-received-notes/type.js +4 -0
  138. package/dist/purchases/goods-received-notes/type.js.map +1 -0
  139. package/dist/purchases/index.d.ts +18 -0
  140. package/dist/purchases/index.d.ts.map +1 -0
  141. package/dist/purchases/index.js +23 -0
  142. package/dist/purchases/index.js.map +1 -0
  143. package/dist/purchases/payments/index.d.ts +51 -0
  144. package/dist/purchases/payments/index.d.ts.map +1 -0
  145. package/dist/purchases/payments/index.js +71 -0
  146. package/dist/purchases/payments/index.js.map +1 -0
  147. package/dist/purchases/payments/type.d.ts +183 -0
  148. package/dist/purchases/payments/type.d.ts.map +1 -0
  149. package/dist/purchases/payments/type.js +4 -0
  150. package/dist/purchases/payments/type.js.map +1 -0
  151. package/dist/purchases/purchase-orders/index.d.ts +51 -0
  152. package/dist/purchases/purchase-orders/index.d.ts.map +1 -0
  153. package/dist/purchases/purchase-orders/index.js +71 -0
  154. package/dist/purchases/purchase-orders/index.js.map +1 -0
  155. package/dist/purchases/purchase-orders/type.d.ts +182 -0
  156. package/dist/purchases/purchase-orders/type.d.ts.map +1 -0
  157. package/dist/purchases/purchase-orders/type.js +4 -0
  158. package/dist/purchases/purchase-orders/type.js.map +1 -0
  159. package/dist/purchases/refunds/index.d.ts +51 -0
  160. package/dist/purchases/refunds/index.d.ts.map +1 -0
  161. package/dist/purchases/refunds/index.js +71 -0
  162. package/dist/purchases/refunds/index.js.map +1 -0
  163. package/dist/purchases/refunds/type.d.ts +181 -0
  164. package/dist/purchases/refunds/type.d.ts.map +1 -0
  165. package/dist/purchases/refunds/type.js +4 -0
  166. package/dist/purchases/refunds/type.js.map +1 -0
  167. package/dist/sales/credit-notes/index.d.ts +52 -0
  168. package/dist/sales/credit-notes/index.d.ts.map +1 -0
  169. package/dist/sales/credit-notes/index.js +72 -0
  170. package/dist/sales/credit-notes/index.js.map +1 -0
  171. package/dist/sales/credit-notes/type.d.ts +304 -0
  172. package/dist/sales/credit-notes/type.d.ts.map +1 -0
  173. package/dist/sales/credit-notes/type.js +4 -0
  174. package/dist/sales/credit-notes/type.js.map +1 -0
  175. package/dist/sales/delivery-orders/index.d.ts +51 -0
  176. package/dist/sales/delivery-orders/index.d.ts.map +1 -0
  177. package/dist/sales/delivery-orders/index.js +72 -0
  178. package/dist/sales/delivery-orders/index.js.map +1 -0
  179. package/dist/sales/delivery-orders/type.d.ts +212 -0
  180. package/dist/sales/delivery-orders/type.d.ts.map +1 -0
  181. package/dist/sales/delivery-orders/type.js +4 -0
  182. package/dist/sales/delivery-orders/type.js.map +1 -0
  183. package/dist/sales/index.d.ts +20 -0
  184. package/dist/sales/index.d.ts.map +1 -0
  185. package/dist/sales/index.js +24 -0
  186. package/dist/sales/index.js.map +1 -0
  187. package/dist/sales/invoices/index.d.ts +52 -0
  188. package/dist/sales/invoices/index.d.ts.map +1 -0
  189. package/dist/sales/invoices/index.js +73 -0
  190. package/dist/sales/invoices/index.js.map +1 -0
  191. package/dist/sales/invoices/type.d.ts +335 -0
  192. package/dist/sales/invoices/type.d.ts.map +1 -0
  193. package/dist/sales/invoices/type.js +4 -0
  194. package/dist/sales/invoices/type.js.map +1 -0
  195. package/dist/sales/payments/index.d.ts +52 -0
  196. package/dist/sales/payments/index.d.ts.map +1 -0
  197. package/dist/sales/payments/index.js +72 -0
  198. package/dist/sales/payments/index.js.map +1 -0
  199. package/dist/sales/payments/type.d.ts +242 -0
  200. package/dist/sales/payments/type.d.ts.map +1 -0
  201. package/dist/sales/payments/type.js +4 -0
  202. package/dist/sales/payments/type.js.map +1 -0
  203. package/dist/sales/quotations/index.d.ts +51 -0
  204. package/dist/sales/quotations/index.d.ts.map +1 -0
  205. package/dist/sales/quotations/index.js +71 -0
  206. package/dist/sales/quotations/index.js.map +1 -0
  207. package/dist/sales/quotations/type.d.ts +202 -0
  208. package/dist/sales/quotations/type.d.ts.map +1 -0
  209. package/dist/sales/quotations/type.js +3 -0
  210. package/dist/sales/quotations/type.js.map +1 -0
  211. package/dist/sales/refunds/index.d.ts +52 -0
  212. package/dist/sales/refunds/index.d.ts.map +1 -0
  213. package/dist/sales/refunds/index.js +72 -0
  214. package/dist/sales/refunds/index.js.map +1 -0
  215. package/dist/sales/refunds/type.d.ts +225 -0
  216. package/dist/sales/refunds/type.d.ts.map +1 -0
  217. package/dist/sales/refunds/type.js +4 -0
  218. package/dist/sales/refunds/type.js.map +1 -0
  219. package/dist/sales/sales-orders/index.d.ts +52 -0
  220. package/dist/sales/sales-orders/index.d.ts.map +1 -0
  221. package/dist/sales/sales-orders/index.js +72 -0
  222. package/dist/sales/sales-orders/index.js.map +1 -0
  223. package/dist/sales/sales-orders/type.d.ts +202 -0
  224. package/dist/sales/sales-orders/type.d.ts.map +1 -0
  225. package/dist/sales/sales-orders/type.js +4 -0
  226. package/dist/sales/sales-orders/type.js.map +1 -0
  227. package/dist/types.d.ts +17 -0
  228. package/dist/types.d.ts.map +1 -0
  229. package/dist/types.js +4 -0
  230. package/dist/types.js.map +1 -0
  231. package/package.json +44 -0
@@ -0,0 +1,151 @@
1
+ import { BukkuFileAttachment, BukkuAttachedFileResponse, BukkuListPagination } from "../../common/type";
2
+ /**
3
+ * Represents a journal item when creating or updating a Journal Entry.
4
+ * Based on the `journal_items` array in the POST/PUT /journal_entries request body.
5
+ */
6
+ export interface BukkuJournalItemParams {
7
+ /** The id of the journal item, required when updating an existing item within a journal entry. Omit for new items. */
8
+ id?: number;
9
+ account_id: number;
10
+ credit_amount?: number | null;
11
+ debit_amount?: number | null;
12
+ description?: string;
13
+ line: number;
14
+ tax_code_id?: number;
15
+ }
16
+ /**
17
+ * Parameters for creating a new Journal Entry.
18
+ * Based on POST /journal_entries
19
+ */
20
+ export interface BukkuJournalEntryCreateParams {
21
+ contact_id?: number;
22
+ currency_code: string;
23
+ date: string;
24
+ description?: string;
25
+ exchange_rate: number;
26
+ files?: BukkuFileAttachment[];
27
+ internal_note?: string;
28
+ journal_items: BukkuJournalItemParams[];
29
+ number?: string;
30
+ number2?: string;
31
+ remarks?: string;
32
+ status: "draft" | "pending_approval" | "ready";
33
+ tag_ids?: number[];
34
+ }
35
+ /**
36
+ * Parameters for updating an existing Journal Entry.
37
+ * Based on PUT /journal_entries/{transactionId}
38
+ * Note: The API documentation implies the request body schema is the same as create.
39
+ * `number` is typically required for PUT, and `status` is also listed as required.
40
+ */
41
+ export interface BukkuJournalEntryUpdateParams {
42
+ contact_id?: number;
43
+ currency_code: string;
44
+ date: string;
45
+ description?: string;
46
+ exchange_rate: number;
47
+ files?: BukkuFileAttachment[];
48
+ internal_note?: string;
49
+ journal_items: BukkuJournalItemParams[];
50
+ number: string;
51
+ number2?: string;
52
+ remarks?: string;
53
+ status: "draft" | "pending_approval" | "ready";
54
+ tag_ids?: number[];
55
+ }
56
+ /**
57
+ * Parameters for updating the status of an existing Journal Entry.
58
+ * Based on PATCH /journal_entries/{transactionId}
59
+ */
60
+ export interface BukkuJournalEntryStatusUpdateParams {
61
+ status: "draft" | "pending_approval" | "ready" | "void";
62
+ }
63
+ /**
64
+ * Represents a journal item as returned by the API within a Journal Entry.
65
+ */
66
+ export interface BukkuJournalItemResponse {
67
+ id: number;
68
+ line: number;
69
+ account_id: number;
70
+ account_name: string;
71
+ account_code: string;
72
+ description: string | null;
73
+ debit_amount: number | null;
74
+ credit_amount: number | null;
75
+ }
76
+ /**
77
+ * Represents a Journal Entry object as returned by the API.
78
+ * Based on the `transaction` object in the response sample for POST /journal_entries.
79
+ */
80
+ export interface BukkuJournalEntry {
81
+ id: number;
82
+ contact_id: number | null;
83
+ number: string;
84
+ number2: string | null;
85
+ date: string;
86
+ currency_code: string;
87
+ currency_symbol: string;
88
+ exchange_rate: number;
89
+ tag_ids: number[] | null;
90
+ tag_names: string[] | null;
91
+ journal_items: BukkuJournalItemResponse[];
92
+ remarks: string | null;
93
+ description: string | null;
94
+ internal_note: string | null;
95
+ files: BukkuAttachedFileResponse[] | null;
96
+ amount: number;
97
+ status: string;
98
+ type: string;
99
+ reconciliations: any[];
100
+ void_reason: string | null;
101
+ voided_at: string | null;
102
+ snapshotted_at: string | null;
103
+ }
104
+ /**
105
+ * Represents the API response structure when a journal entry is created or retrieved.
106
+ */
107
+ export interface BukkuJournalEntryResponse {
108
+ transaction: BukkuJournalEntry;
109
+ }
110
+ /**
111
+ * Parameters for listing Journal Entries.
112
+ * Based on GET /journal_entries query parameters.
113
+ */
114
+ export interface BukkuJournalEntryListParams {
115
+ date_from?: string;
116
+ date_to?: string;
117
+ search?: string;
118
+ status?: "all" | "draft" | "pending_approval" | "ready" | "void";
119
+ page?: number;
120
+ page_size?: number;
121
+ sort_dir?: "asc" | "desc";
122
+ [key: string]: any;
123
+ }
124
+ /**
125
+ * Represents a summary of a Journal Entry as it appears in a list.
126
+ * This structure needs to be confirmed with an actual API response sample for the list endpoint.
127
+ * For now, using fields commonly found in list items and from the detailed BukkuJournalEntry.
128
+ */
129
+ export interface BukkuJournalEntryListItem {
130
+ id: number;
131
+ number: string;
132
+ number2: string | null;
133
+ date: string;
134
+ contact_id: number | null;
135
+ description: string | null;
136
+ remarks: string | null;
137
+ currency_code: string;
138
+ currency_symbol: string;
139
+ exchange_rate: number;
140
+ amount: number;
141
+ status: string;
142
+ tag_names: string[] | null;
143
+ }
144
+ /**
145
+ * Represents the API response structure for listing journal entries.
146
+ */
147
+ export interface BukkuJournalEntryListApiResponse {
148
+ paging: BukkuListPagination;
149
+ transactions: BukkuJournalEntryListItem[];
150
+ }
151
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../../src/accounting/journal-entries/type.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // src/accounting/journal-entries/type.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../../src/accounting/journal-entries/type.ts"],"names":[],"mappings":";AAAA,yCAAyC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Represents a file attached to a transaction, as returned in API responses.
3
+ */
4
+ export interface BukkuAttachedFileResponse {
5
+ id: number;
6
+ file_id: number;
7
+ file: BukkuFileDetailsResponse[];
8
+ is_shared: boolean;
9
+ created_at: string;
10
+ }
11
+ /**
12
+ * Detailed information about an uploaded file, as returned in API responses.
13
+ */
14
+ export interface BukkuFileDetailsResponse {
15
+ id: number;
16
+ url: string;
17
+ filename: string;
18
+ mime_type: string;
19
+ size: number;
20
+ created_at: string;
21
+ }
22
+ /**
23
+ * Details for sending an email with a transaction.
24
+ * This object is used if an email should be sent when the transaction (e.g., quotation) is created/updated.
25
+ */
26
+ export interface BukkuEmailDetails {
27
+ /** The recipient email addresses in an array, required if email object is present. */
28
+ to_addresses: string[];
29
+ /** The cc email address recipients in an array. */
30
+ cc_addresses?: string[];
31
+ /** The reply-to email address for the email. */
32
+ reply_to_address?: string;
33
+ /** The email subject, if not provided, it will be taking the system default. */
34
+ subject?: string;
35
+ /** The personal message that can be appended to the email content. */
36
+ message?: string;
37
+ /** Whether to attach the transaction PDF to email, default to false. */
38
+ attach_pdf?: boolean;
39
+ /** The form design of the attached pdf, if not provided, it will be taking the system default. */
40
+ form_design_id?: number;
41
+ }
42
+ /**
43
+ * Represents a file to be attached to a transaction.
44
+ * This structure is used when specifying existing files (by file_id) to attach.
45
+ */
46
+ export interface BukkuFileAttachment {
47
+ /** The id of the file to be attached to the transaction. */
48
+ file_id: number;
49
+ /** Set to true to attach the file when sharing the transaction. */
50
+ is_shared: boolean;
51
+ }
52
+ /**
53
+ * Represents the pagination information returned by Bukku list APIs.
54
+ */
55
+ export interface BukkuListPagination {
56
+ current_page: number;
57
+ per_page: number;
58
+ total: number;
59
+ }
60
+ /**
61
+ * Represents a form item in a transaction like a quotation or invoice.
62
+ * Based on the detailed schema for form_items.
63
+ */
64
+ export interface BukkuFormItem {
65
+ /** The id of the item, required when you're updating an item. */
66
+ id?: number;
67
+ /** The type of the item, leave null for normal item. */
68
+ type?: "bundle" | "subtitle" | "subtotal" | "bundle_item" | null;
69
+ /** The account of the item, required for normal item. */
70
+ account_id?: number;
71
+ /** The description of the item, required for normal / bundle & subtitle items. */
72
+ description?: string;
73
+ /** The service date of the item, following format YYYY-MM-DD. */
74
+ service_date?: string;
75
+ /** The product of the item. */
76
+ product_id?: number;
77
+ /** The product unit / UOM of the product, leave blank to use the product's default unit. */
78
+ product_unit_id?: number;
79
+ /** The location of the product, used for inventory product, leave blank to use the system default location. */
80
+ location_id?: number;
81
+ /** The unit price of the item, supports up to 4 decimal points, required for normal items. */
82
+ unit_price?: number;
83
+ /** The quantity of the item, supports up to 4 decimal points, required for normal items. */
84
+ quantity?: number;
85
+ /** The discount of the item, supports value (eg. 255.12) or percentage (eg. 10%). Max 14 chars. */
86
+ discount?: string;
87
+ /** The tax code of the item. */
88
+ tax_code_id?: number;
89
+ /** The child items, used by bundle. */
90
+ children?: BukkuFormItem[];
91
+ line?: number;
92
+ account_name?: string;
93
+ product_name?: string;
94
+ product_sku?: string;
95
+ product_bin_location?: string;
96
+ product_unit_label?: string;
97
+ location_code?: string;
98
+ /** The total amount for this line item before tax and net amount, usually (quantity * unit_price). */
99
+ amount?: number;
100
+ discount_amount?: number;
101
+ tax_code?: string;
102
+ tax_amount?: number;
103
+ net_amount?: number;
104
+ }
105
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/common/type.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,wBAAwB,EAAE,CAAC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kGAAkG;IAClG,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,iEAAiE;IACjE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wDAAwD;IACxD,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,IAAI,CAAC;IACjE,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,+GAA+G;IAC/G,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mGAAmG;IACnG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAG3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sGAAsG;IACtG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.js","sourceRoot":"","sources":["../../src/common/type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,57 @@
1
+ import type { BukkuAPIRequestFunction } from "../../types";
2
+ import { BukkuContact, BukkuContactCreateParams, BukkuContactListParams, BukkuContactListApiResponse, BukkuContactUpdateParams } from "./type";
3
+ export declare class ContactsContactsAPI {
4
+ private _request;
5
+ constructor(_request: BukkuAPIRequestFunction);
6
+ /**
7
+ * Creates a new contact.
8
+ * Endpoint: POST /contacts
9
+ * @param data - The data for the new contact.
10
+ * @returns A promise that resolves to the created contact.
11
+ */
12
+ create(data: BukkuContactCreateParams): Promise<BukkuContact>;
13
+ /**
14
+ * Retrieves a paginated list of contacts.
15
+ * Endpoint: GET /contacts (assumed, common pattern)
16
+ * @param params - Optional parameters for filtering and pagination.
17
+ * @returns A promise that resolves to the API response for listing contacts.
18
+ */
19
+ list(params?: BukkuContactListParams): Promise<BukkuContactListApiResponse>;
20
+ /**
21
+ * Retrieves a specific contact by its ID.
22
+ * Endpoint: GET /contacts/{id} (assumed, common pattern)
23
+ * @param id - The ID of the contact to retrieve.
24
+ * @returns A promise that resolves to the contact.
25
+ */
26
+ get(id: string | number): Promise<BukkuContact>;
27
+ /**
28
+ * Updates an existing contact.
29
+ * Endpoint: PUT /contacts/{id} (assumed, common pattern)
30
+ * @param id - The ID of the contact to update.
31
+ * @param data - The data to update the contact with.
32
+ * @returns A promise that resolves to the updated contact.
33
+ */
34
+ update(id: string | number, data: BukkuContactUpdateParams): Promise<BukkuContact>;
35
+ /**
36
+ * Deletes a contact.
37
+ * Endpoint: DELETE /contacts/{id} (assumed, common pattern)
38
+ * @param id - The ID of the contact to delete.
39
+ * @returns A promise that resolves when the contact is deleted.
40
+ */
41
+ delete(id: string | number): Promise<void>;
42
+ /**
43
+ * Archives a contact.
44
+ * Endpoint: PATCH /contacts/{id}/archive (common pattern for archival)
45
+ * Alternatively, it might be part of the PUT update operation with an is_archived flag.
46
+ * For now, assuming a dedicated endpoint or handled by general update.
47
+ * This method could be implemented if a specific archive endpoint exists.
48
+ */
49
+ archive(id: string | number): Promise<BukkuContact>;
50
+ /**
51
+ * Unarchives a contact.
52
+ * Endpoint: PATCH /contacts/{id}/unarchive (common pattern for unarchival)
53
+ * This method could be implemented if a specific unarchive endpoint exists.
54
+ */
55
+ unarchive(id: string | number): Promise<BukkuContact>;
56
+ }
57
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contacts/contacts/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,wBAAwB,EAExB,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACzB,MAAM,QAAQ,CAAC;AAEhB,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,uBAAuB;IAErD;;;;;OAKG;IACG,MAAM,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;IASnE;;;;;OAKG;IACG,IAAI,CACR,MAAM,CAAC,EAAE,sBAAsB,GAC9B,OAAO,CAAC,2BAA2B,CAAC;IASvC;;;;;OAKG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAQrD;;;;;;OAMG;IACG,MAAM,CACV,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,YAAY,CAAC;IASxB;;;;;OAKG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;;;;;OAMG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IASzD;;;;OAIG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAQ5D"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ // src/contacts/index.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ContactsContactsAPI = void 0;
5
+ class ContactsContactsAPI {
6
+ constructor(_request) {
7
+ this._request = _request;
8
+ }
9
+ /**
10
+ * Creates a new contact.
11
+ * Endpoint: POST /contacts
12
+ * @param data - The data for the new contact.
13
+ * @returns A promise that resolves to the created contact.
14
+ */
15
+ async create(data) {
16
+ const response = await this._request("/contacts", // API doc path
17
+ "POST", data);
18
+ return response.contact;
19
+ }
20
+ /**
21
+ * Retrieves a paginated list of contacts.
22
+ * Endpoint: GET /contacts (assumed, common pattern)
23
+ * @param params - Optional parameters for filtering and pagination.
24
+ * @returns A promise that resolves to the API response for listing contacts.
25
+ */
26
+ async list(params) {
27
+ return this._request("/contacts", // API doc path
28
+ "GET", undefined, params);
29
+ }
30
+ /**
31
+ * Retrieves a specific contact by its ID.
32
+ * Endpoint: GET /contacts/{id} (assumed, common pattern)
33
+ * @param id - The ID of the contact to retrieve.
34
+ * @returns A promise that resolves to the contact.
35
+ */
36
+ async get(id) {
37
+ const response = await this._request(`/contacts/${id}`, "GET");
38
+ return response.contact;
39
+ }
40
+ /**
41
+ * Updates an existing contact.
42
+ * Endpoint: PUT /contacts/{id} (assumed, common pattern)
43
+ * @param id - The ID of the contact to update.
44
+ * @param data - The data to update the contact with.
45
+ * @returns A promise that resolves to the updated contact.
46
+ */
47
+ async update(id, data) {
48
+ const response = await this._request(`/contacts/${id}`, "PUT", data);
49
+ return response.contact;
50
+ }
51
+ /**
52
+ * Deletes a contact.
53
+ * Endpoint: DELETE /contacts/{id} (assumed, common pattern)
54
+ * @param id - The ID of the contact to delete.
55
+ * @returns A promise that resolves when the contact is deleted.
56
+ */
57
+ async delete(id) {
58
+ await this._request(`/contacts/${id}`, "DELETE");
59
+ }
60
+ /**
61
+ * Archives a contact.
62
+ * Endpoint: PATCH /contacts/{id}/archive (common pattern for archival)
63
+ * Alternatively, it might be part of the PUT update operation with an is_archived flag.
64
+ * For now, assuming a dedicated endpoint or handled by general update.
65
+ * This method could be implemented if a specific archive endpoint exists.
66
+ */
67
+ async archive(id) {
68
+ const response = await this._request(`/contacts/${id}`, "PATCH", { is_archived: true });
69
+ return response.contact;
70
+ }
71
+ /**
72
+ * Unarchives a contact.
73
+ * Endpoint: PATCH /contacts/{id}/unarchive (common pattern for unarchival)
74
+ * This method could be implemented if a specific unarchive endpoint exists.
75
+ */
76
+ async unarchive(id) {
77
+ const response = await this._request(`/contacts/${id}`, "PATCH", { is_archived: false });
78
+ return response.contact;
79
+ }
80
+ }
81
+ exports.ContactsContactsAPI = ContactsContactsAPI;
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contacts/contacts/index.ts"],"names":[],"mappings":";AAAA,wBAAwB;;;AAYxB,MAAa,mBAAmB;IAC9B,YAAoB,QAAiC;QAAjC,aAAQ,GAAR,QAAQ,CAAyB;IAAG,CAAC;IAEzD;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,IAA8B;QACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAClC,WAAW,EAAE,eAAe;QAC5B,MAAM,EACN,IAAI,CACL,CAAC;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CACR,MAA+B;QAE/B,OAAO,IAAI,CAAC,QAAQ,CAClB,WAAW,EAAE,eAAe;QAC5B,KAAK,EACL,SAAS,EACT,MAAM,CACP,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAC,EAAmB;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAClC,aAAa,EAAE,EAAE,EACjB,KAAK,CACN,CAAC;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,MAAM,CACV,EAAmB,EACnB,IAA8B;QAE9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAClC,aAAa,EAAE,EAAE,EACjB,KAAK,EACL,IAAI,CACL,CAAC;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,CAAC,EAAmB;QAC9B,MAAM,IAAI,CAAC,QAAQ,CAAO,aAAa,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,EAAmB;QAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAClC,aAAa,EAAE,EAAE,EACjB,OAAO,EACP,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAC;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,EAAmB;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAClC,aAAa,EAAE,EAAE,EACjB,OAAO,EACP,EAAE,WAAW,EAAE,KAAK,EAAE,CACvB,CAAC;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;CACF;AA3GD,kDA2GC"}