@activepieces/piece-coupa 0.0.2 → 0.0.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 (80) hide show
  1. package/package.json +7 -18
  2. package/src/i18n/de.json +106 -0
  3. package/src/i18n/es.json +106 -0
  4. package/src/i18n/fr.json +106 -0
  5. package/src/i18n/ja.json +106 -0
  6. package/src/i18n/nl.json +106 -0
  7. package/src/i18n/pt.json +106 -0
  8. package/src/i18n/zh.json +106 -0
  9. package/src/index.js +13 -74
  10. package/src/index.d.ts +0 -7
  11. package/src/index.d.ts.map +0 -1
  12. package/src/index.js.map +0 -1
  13. package/src/lib/actions/add-file-attachment.d.ts +0 -23
  14. package/src/lib/actions/add-file-attachment.d.ts.map +0 -1
  15. package/src/lib/actions/add-file-attachment.js +0 -127
  16. package/src/lib/actions/add-file-attachment.js.map +0 -1
  17. package/src/lib/actions/cancel-purchase-order.d.ts +0 -14
  18. package/src/lib/actions/cancel-purchase-order.d.ts.map +0 -1
  19. package/src/lib/actions/cancel-purchase-order.js +0 -35
  20. package/src/lib/actions/cancel-purchase-order.js.map +0 -1
  21. package/src/lib/actions/close-purchase-order.d.ts +0 -14
  22. package/src/lib/actions/close-purchase-order.d.ts.map +0 -1
  23. package/src/lib/actions/close-purchase-order.js +0 -35
  24. package/src/lib/actions/close-purchase-order.js.map +0 -1
  25. package/src/lib/actions/create-object.d.ts +0 -12
  26. package/src/lib/actions/create-object.d.ts.map +0 -1
  27. package/src/lib/actions/create-object.js +0 -44
  28. package/src/lib/actions/create-object.js.map +0 -1
  29. package/src/lib/actions/get-object-by-id.d.ts +0 -17
  30. package/src/lib/actions/get-object-by-id.d.ts.map +0 -1
  31. package/src/lib/actions/get-object-by-id.js +0 -44
  32. package/src/lib/actions/get-object-by-id.js.map +0 -1
  33. package/src/lib/actions/get-remit-to-addresses.d.ts +0 -15
  34. package/src/lib/actions/get-remit-to-addresses.d.ts.map +0 -1
  35. package/src/lib/actions/get-remit-to-addresses.js +0 -80
  36. package/src/lib/actions/get-remit-to-addresses.js.map +0 -1
  37. package/src/lib/actions/get-supplier-sites.d.ts +0 -14
  38. package/src/lib/actions/get-supplier-sites.d.ts.map +0 -1
  39. package/src/lib/actions/get-supplier-sites.js +0 -40
  40. package/src/lib/actions/get-supplier-sites.js.map +0 -1
  41. package/src/lib/actions/grant-approval.d.ts +0 -14
  42. package/src/lib/actions/grant-approval.d.ts.map +0 -1
  43. package/src/lib/actions/grant-approval.js +0 -35
  44. package/src/lib/actions/grant-approval.js.map +0 -1
  45. package/src/lib/actions/reject-approval.d.ts +0 -15
  46. package/src/lib/actions/reject-approval.d.ts.map +0 -1
  47. package/src/lib/actions/reject-approval.js +0 -48
  48. package/src/lib/actions/reject-approval.js.map +0 -1
  49. package/src/lib/actions/search-objects.d.ts +0 -11
  50. package/src/lib/actions/search-objects.d.ts.map +0 -1
  51. package/src/lib/actions/search-objects.js +0 -46
  52. package/src/lib/actions/search-objects.js.map +0 -1
  53. package/src/lib/actions/set-integration-run-status.d.ts +0 -10
  54. package/src/lib/actions/set-integration-run-status.d.ts.map +0 -1
  55. package/src/lib/actions/set-integration-run-status.js +0 -49
  56. package/src/lib/actions/set-integration-run-status.js.map +0 -1
  57. package/src/lib/actions/update-object.d.ts +0 -18
  58. package/src/lib/actions/update-object.d.ts.map +0 -1
  59. package/src/lib/actions/update-object.js +0 -46
  60. package/src/lib/actions/update-object.js.map +0 -1
  61. package/src/lib/auth.d.ts +0 -7
  62. package/src/lib/auth.d.ts.map +0 -1
  63. package/src/lib/auth.js +0 -50
  64. package/src/lib/auth.js.map +0 -1
  65. package/src/lib/common/client.d.ts +0 -34
  66. package/src/lib/common/client.d.ts.map +0 -1
  67. package/src/lib/common/client.js +0 -146
  68. package/src/lib/common/client.js.map +0 -1
  69. package/src/lib/common/props.d.ts +0 -47
  70. package/src/lib/common/props.d.ts.map +0 -1
  71. package/src/lib/common/props.js +0 -366
  72. package/src/lib/common/props.js.map +0 -1
  73. package/src/lib/common/utils.d.ts +0 -22
  74. package/src/lib/common/utils.d.ts.map +0 -1
  75. package/src/lib/common/utils.js +0 -182
  76. package/src/lib/common/utils.js.map +0 -1
  77. package/src/lib/triggers/new-or-updated-object.d.ts +0 -39
  78. package/src/lib/triggers/new-or-updated-object.d.ts.map +0 -1
  79. package/src/lib/triggers/new-or-updated-object.js +0 -101
  80. package/src/lib/triggers/new-or-updated-object.js.map +0 -1
@@ -1,366 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.remitToParentTypeProperty = exports.attachmentModuleProperty = exports.objectSelector = exports.pendingApprovalDropdown = exports.supplierDropdown = exports.contractDropdown = exports.purchaseOrderDropdown = exports.optionalQueryParamsProperty = exports.requestBodyHelp = exports.requestBodyProperty = exports.objectIdProperty = exports.customModuleResourceProperty = exports.moduleProperty = exports.COUPA_MODULE_OPTIONS = void 0;
4
- exports.resolveModuleResource = resolveModuleResource;
5
- exports.toCoupaModule = toCoupaModule;
6
- exports.parseOptionalQuery = parseOptionalQuery;
7
- const tslib_1 = require("tslib");
8
- const pieces_common_1 = require("@activepieces/pieces-common");
9
- const pieces_framework_1 = require("@activepieces/pieces-framework");
10
- const client_1 = require("./client");
11
- const auth_1 = require("../auth");
12
- const utils_1 = require("./utils");
13
- exports.COUPA_MODULE_OPTIONS = [
14
- { label: 'Purchase Orders', value: 'purchase_orders' },
15
- { label: 'Suppliers', value: 'suppliers' },
16
- { label: 'Contracts', value: 'contracts' },
17
- { label: 'Custom resource (type below)', value: '__custom__' },
18
- ];
19
- exports.moduleProperty = pieces_framework_1.Property.StaticDropdown({
20
- displayName: 'Module',
21
- description: 'Coupa module to work with: Purchase Orders, Suppliers, or Contracts. Pick "Custom resource" to target any other endpoint.',
22
- required: true,
23
- options: {
24
- disabled: false,
25
- options: exports.COUPA_MODULE_OPTIONS,
26
- },
27
- });
28
- exports.customModuleResourceProperty = pieces_framework_1.Property.ShortText({
29
- displayName: 'Custom Resource Path',
30
- description: 'API resource segment when Module is **Custom resource**, e.g. `invoices` or `approvals`.',
31
- required: false,
32
- });
33
- exports.objectIdProperty = pieces_framework_1.Property.Number({
34
- displayName: 'Object ID',
35
- description: 'Numeric Coupa ID of the record.',
36
- required: true,
37
- });
38
- exports.requestBodyProperty = pieces_framework_1.Property.Json({
39
- displayName: 'Request Body (JSON)',
40
- description: 'JSON payload sent to Coupa, using Coupa field names in kebab-case (e.g. `po-number`, `supplier-id`). See the examples above for each module.',
41
- required: true,
42
- });
43
- exports.requestBodyHelp = pieces_framework_1.Property.MarkDown({
44
- value: `**How to build the request body** — Coupa uses field names in **kebab-case**. Reference an existing record (like a supplier) by its numeric ID. Examples per module:
45
-
46
- **Purchase Orders**
47
- \`\`\`json
48
- { "po-number": "PO-1001", "supplier": { "id": 123 }, "order-lines": [{ "description": "Laptop", "quantity": 2, "price": 1500 }] }
49
- \`\`\`
50
-
51
- **Suppliers**
52
- \`\`\`json
53
- { "name": "Acme Corp", "display-name": "Acme", "status": "active" }
54
- \`\`\`
55
-
56
- **Contracts**
57
- \`\`\`json
58
- { "name": "Acme MSA 2025", "supplier": { "id": 123 }, "start-date": "2025-01-01", "end-date": "2025-12-31" }
59
- \`\`\``,
60
- });
61
- exports.optionalQueryParamsProperty = pieces_framework_1.Property.Json({
62
- displayName: 'Query Parameters (JSON)',
63
- description: 'Optional query filters, e.g. `{ "status[in]": "issued,closed", "exported": false }`.',
64
- required: false,
65
- });
66
- exports.purchaseOrderDropdown = pieces_framework_1.Property.Dropdown({
67
- displayName: 'Purchase Order',
68
- description: 'Select a purchase order from your Coupa instance (most recent 50).',
69
- required: true,
70
- refreshers: [],
71
- auth: auth_1.coupaAuth,
72
- options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
73
- if (!auth) {
74
- return {
75
- disabled: true,
76
- options: [],
77
- placeholder: 'Connect your Coupa account first',
78
- };
79
- }
80
- try {
81
- const client = new client_1.CoupaClient(auth.props);
82
- const orders = yield client.request({
83
- method: pieces_common_1.HttpMethod.GET,
84
- resourceUri: '/purchase_orders',
85
- query: {
86
- limit: 50,
87
- fields: '["id","po-number","number","status","total","supplier"]',
88
- },
89
- });
90
- const list = Array.isArray(orders) ? orders : [];
91
- if (list.length === 0) {
92
- return {
93
- disabled: false,
94
- options: [],
95
- placeholder: 'No purchase orders found in your instance.',
96
- };
97
- }
98
- return {
99
- disabled: false,
100
- options: list.map((order) => {
101
- var _a, _b, _c;
102
- const poNumber = (_b = (_a = order['po-number']) !== null && _a !== void 0 ? _a : order['number']) !== null && _b !== void 0 ? _b : order['id'];
103
- const status = (_c = order['status']) !== null && _c !== void 0 ? _c : 'unknown';
104
- return {
105
- label: `${poNumber} — ${status} (#${order['id']})`,
106
- value: String(order['id']),
107
- };
108
- }),
109
- };
110
- }
111
- catch (_b) {
112
- return {
113
- disabled: true,
114
- options: [],
115
- placeholder: 'Failed to load purchase orders. Check your connection and scopes.',
116
- };
117
- }
118
- }),
119
- });
120
- exports.contractDropdown = pieces_framework_1.Property.Dropdown({
121
- displayName: 'Contract',
122
- description: 'Select a contract from your Coupa instance (most recent 50).',
123
- required: true,
124
- refreshers: [],
125
- auth: auth_1.coupaAuth,
126
- options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
127
- if (!auth) {
128
- return {
129
- disabled: true,
130
- options: [],
131
- placeholder: 'Connect your Coupa account first',
132
- };
133
- }
134
- try {
135
- const client = new client_1.CoupaClient(auth.props);
136
- const contracts = yield client.request({
137
- method: pieces_common_1.HttpMethod.GET,
138
- resourceUri: '/contracts',
139
- query: {
140
- limit: 50,
141
- fields: '["id","name","number","status","supplier"]',
142
- },
143
- });
144
- const list = Array.isArray(contracts) ? contracts : [];
145
- if (list.length === 0) {
146
- return {
147
- disabled: false,
148
- options: [],
149
- placeholder: 'No contracts found in your instance.',
150
- };
151
- }
152
- return {
153
- disabled: false,
154
- options: list.map((contract) => {
155
- var _a, _b;
156
- return ({
157
- label: `${(_b = (_a = contract['name']) !== null && _a !== void 0 ? _a : contract['number']) !== null && _b !== void 0 ? _b : 'Contract'} (#${contract['id']})`,
158
- value: String(contract['id']),
159
- });
160
- }),
161
- };
162
- }
163
- catch (_b) {
164
- return {
165
- disabled: true,
166
- options: [],
167
- placeholder: 'Failed to load contracts. Check your connection and scopes.',
168
- };
169
- }
170
- }),
171
- });
172
- exports.supplierDropdown = pieces_framework_1.Property.Dropdown({
173
- displayName: 'Supplier',
174
- description: 'Select a supplier from your Coupa instance (most recent 50).',
175
- required: true,
176
- refreshers: [],
177
- auth: auth_1.coupaAuth,
178
- options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
179
- if (!auth) {
180
- return {
181
- disabled: true,
182
- options: [],
183
- placeholder: 'Connect your Coupa account first',
184
- };
185
- }
186
- try {
187
- const client = new client_1.CoupaClient(auth.props);
188
- const suppliers = yield client.request({
189
- method: pieces_common_1.HttpMethod.GET,
190
- resourceUri: '/suppliers',
191
- query: { limit: 50, fields: '["id","name","number","status"]' },
192
- });
193
- const list = Array.isArray(suppliers) ? suppliers : [];
194
- if (list.length === 0) {
195
- return {
196
- disabled: false,
197
- options: [],
198
- placeholder: 'No suppliers found in your instance.',
199
- };
200
- }
201
- return {
202
- disabled: false,
203
- options: list.map((supplier) => {
204
- var _a;
205
- return ({
206
- label: `${(_a = supplier['name']) !== null && _a !== void 0 ? _a : 'Supplier'} (#${supplier['id']})`,
207
- value: String(supplier['id']),
208
- });
209
- }),
210
- };
211
- }
212
- catch (_b) {
213
- return {
214
- disabled: true,
215
- options: [],
216
- placeholder: 'Failed to load suppliers. Check your connection and scopes.',
217
- };
218
- }
219
- }),
220
- });
221
- exports.pendingApprovalDropdown = pieces_framework_1.Property.Dropdown({
222
- displayName: 'Approval',
223
- description: 'Select a pending approval awaiting a decision. Shows the most recent 50 pending approvals.',
224
- required: true,
225
- refreshers: [],
226
- auth: auth_1.coupaAuth,
227
- options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
228
- if (!auth) {
229
- return {
230
- disabled: true,
231
- options: [],
232
- placeholder: 'Connect your Coupa account first',
233
- };
234
- }
235
- try {
236
- const client = new client_1.CoupaClient(auth.props);
237
- const approvals = yield client.request({
238
- method: pieces_common_1.HttpMethod.GET,
239
- resourceUri: '/approvals',
240
- query: {
241
- 'status[in]': 'pending_approval',
242
- limit: 50,
243
- fields: '["id","status","approvable-type","approvable-id","position"]',
244
- },
245
- });
246
- const list = Array.isArray(approvals) ? approvals : [];
247
- if (list.length === 0) {
248
- return {
249
- disabled: false,
250
- options: [],
251
- placeholder: 'No pending approvals found.',
252
- };
253
- }
254
- return {
255
- disabled: false,
256
- options: list.map((approval) => {
257
- var _a, _b;
258
- const type = (_a = approval['approvable-type']) !== null && _a !== void 0 ? _a : 'Record';
259
- const refId = (_b = approval['approvable-id']) !== null && _b !== void 0 ? _b : approval['id'];
260
- return {
261
- label: `${type} #${refId} (approval #${approval['id']})`,
262
- value: String(approval['id']),
263
- };
264
- }),
265
- };
266
- }
267
- catch (_b) {
268
- return {
269
- disabled: true,
270
- options: [],
271
- placeholder: 'Failed to load approvals. Check your connection and scopes.',
272
- };
273
- }
274
- }),
275
- });
276
- exports.objectSelector = pieces_framework_1.Property.DynamicProperties({
277
- displayName: 'Record',
278
- description: 'Pick the record by name. For a custom resource, enter its numeric ID.',
279
- required: true,
280
- refreshers: ['module'],
281
- auth: auth_1.coupaAuth,
282
- props: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ module }) {
283
- if (module === 'purchase_orders') {
284
- return { objectId: exports.purchaseOrderDropdown };
285
- }
286
- if (module === 'suppliers') {
287
- return { objectId: exports.supplierDropdown };
288
- }
289
- if (module === 'contracts') {
290
- return { objectId: exports.contractDropdown };
291
- }
292
- return { objectId: exports.objectIdProperty };
293
- }),
294
- });
295
- exports.attachmentModuleProperty = pieces_framework_1.Property.StaticDropdown({
296
- displayName: 'Module',
297
- description: 'The type of record to attach the file to.',
298
- required: true,
299
- options: {
300
- disabled: false,
301
- options: [
302
- { label: 'Purchase Order', value: 'purchase_orders' },
303
- { label: 'Supplier', value: 'suppliers' },
304
- { label: 'Contract', value: 'contracts' },
305
- ],
306
- },
307
- });
308
- exports.remitToParentTypeProperty = pieces_framework_1.Property.StaticDropdown({
309
- displayName: 'Parent Module',
310
- description: 'Where to look up remit-to addresses from: a Supplier directly, or the supplier linked to a Purchase Order.',
311
- required: true,
312
- options: {
313
- disabled: false,
314
- options: [
315
- { label: 'Supplier', value: 'suppliers' },
316
- { label: 'Purchase Order', value: 'purchase_orders' },
317
- ],
318
- },
319
- });
320
- function resolveModuleResource(module, customResource) {
321
- if (module === '__custom__') {
322
- if (!(customResource === null || customResource === void 0 ? void 0 : customResource.trim())) {
323
- throw new Error('Custom Resource Path is required when using a custom module.');
324
- }
325
- return customResource.trim().replace(/^\/+/, '').replace(/\/+$/, '');
326
- }
327
- if (!module) {
328
- throw new Error('Module is required.');
329
- }
330
- return module;
331
- }
332
- function toCoupaModule(module) {
333
- if (module === 'purchase_orders' || module === 'suppliers' || module === 'contracts') {
334
- return module;
335
- }
336
- throw new Error('Standard fields are only mapped for Purchase Orders, Suppliers, and Contracts modules.');
337
- }
338
- function parseOptionalQuery(queryJson) {
339
- if (!queryJson) {
340
- return {};
341
- }
342
- let parsed = queryJson;
343
- if (typeof queryJson === 'string') {
344
- try {
345
- parsed = JSON.parse(queryJson);
346
- }
347
- catch (_a) {
348
- throw new Error('Query Parameters must be valid JSON.');
349
- }
350
- }
351
- if (!(0, utils_1.isRecord)(parsed)) {
352
- return {};
353
- }
354
- const result = {};
355
- for (const [key, value] of Object.entries(parsed)) {
356
- if (value === undefined || value === null) {
357
- continue;
358
- }
359
- result[key] =
360
- typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean'
361
- ? value
362
- : String(value);
363
- }
364
- return result;
365
- }
366
- //# sourceMappingURL=props.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"props.js","sourceRoot":"","sources":["../../../../src/lib/common/props.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- export declare function normalizeInstanceUrl(instanceUrl: string): string;
2
- export declare function isRecord(value: unknown): value is Record<string, unknown>;
3
- export declare function getString(value: unknown): string | undefined;
4
- export declare function flattenRecord(value: unknown, prefix?: string, depth?: number): Record<string, unknown>;
5
- export declare function flattenRecords(records: unknown[]): Record<string, unknown>[];
6
- export declare function toStandardCoupaFields(record: Record<string, unknown>, module: CoupaModule): StandardCoupaFields;
7
- export declare function formatCoupaOutput(record: Record<string, unknown>, module: CoupaModule): Record<string, unknown>;
8
- export declare function formatCoupaOutputs(records: Record<string, unknown>[], module: CoupaModule): Record<string, unknown>[];
9
- export declare function parseJsonBody(body: unknown): unknown;
10
- export declare function formatCoupaError(error: unknown): string;
11
- export declare function getMimeType(filename: string, extension?: string): string;
12
- export type CoupaModule = 'purchase_orders' | 'suppliers' | 'contracts';
13
- export type StandardCoupaFields = {
14
- id: unknown;
15
- supplier_id: unknown;
16
- supplier_name: unknown;
17
- po_number: unknown;
18
- po_status: unknown;
19
- total_amount: unknown;
20
- contract_id: unknown;
21
- };
22
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE5D;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,EACd,MAAM,SAAK,EACX,KAAK,SAAI,GACR,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BzB;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAE5E;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,WAAW,GAClB,mBAAmB,CA+CrB;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,WAAW,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClC,MAAM,EAAE,WAAW,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAE3B;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAepD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAqBvD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAKxE;AAgDD,MAAM,MAAM,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,WAAW,CAAC;AAExE,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC"}
@@ -1,182 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeInstanceUrl = normalizeInstanceUrl;
4
- exports.isRecord = isRecord;
5
- exports.getString = getString;
6
- exports.flattenRecord = flattenRecord;
7
- exports.flattenRecords = flattenRecords;
8
- exports.toStandardCoupaFields = toStandardCoupaFields;
9
- exports.formatCoupaOutput = formatCoupaOutput;
10
- exports.formatCoupaOutputs = formatCoupaOutputs;
11
- exports.parseJsonBody = parseJsonBody;
12
- exports.formatCoupaError = formatCoupaError;
13
- exports.getMimeType = getMimeType;
14
- const MAX_FLATTEN_DEPTH = 4;
15
- function normalizeInstanceUrl(instanceUrl) {
16
- return instanceUrl
17
- .trim()
18
- .replace(/^https?:\/\//i, '')
19
- .replace(/\/+$/, '');
20
- }
21
- function isRecord(value) {
22
- return typeof value === 'object' && value !== null && !Array.isArray(value);
23
- }
24
- function getString(value) {
25
- return typeof value === 'string' ? value : undefined;
26
- }
27
- function flattenRecord(value, prefix = '', depth = 0) {
28
- if (value === null || value === undefined) {
29
- return prefix ? { [prefix]: value } : {};
30
- }
31
- if (Array.isArray(value)) {
32
- if (prefix) {
33
- return { [prefix]: JSON.stringify(value) };
34
- }
35
- return { items: JSON.stringify(value) };
36
- }
37
- if (!isRecord(value)) {
38
- return prefix ? { [prefix]: value } : { value };
39
- }
40
- if (depth >= MAX_FLATTEN_DEPTH) {
41
- return prefix ? { [prefix]: JSON.stringify(value) } : {};
42
- }
43
- const result = {};
44
- for (const [key, nested] of Object.entries(value)) {
45
- const nextKey = prefix ? `${prefix}_${key.replace(/-/g, '_')}` : key.replace(/-/g, '_');
46
- Object.assign(result, flattenRecord(nested, nextKey, depth + 1));
47
- }
48
- return result;
49
- }
50
- function flattenRecords(records) {
51
- return records.map((record) => flattenRecord(record));
52
- }
53
- function toStandardCoupaFields(record, module) {
54
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
55
- const supplier = record['supplier'];
56
- const contract = record['contract'];
57
- const fields = {
58
- id: (_a = record['id']) !== null && _a !== void 0 ? _a : null,
59
- supplier_id: (_d = (_c = (_b = readNestedId(supplier)) !== null && _b !== void 0 ? _b : record['supplier-id']) !== null && _c !== void 0 ? _c : record['supplier_id']) !== null && _d !== void 0 ? _d : null,
60
- supplier_name: (_g = (_f = (_e = readNestedName(supplier)) !== null && _e !== void 0 ? _e : record['supplier-name']) !== null && _f !== void 0 ? _f : record['supplier_name']) !== null && _g !== void 0 ? _g : null,
61
- po_number: null,
62
- po_status: null,
63
- total_amount: null,
64
- contract_id: (_k = (_j = (_h = readNestedId(contract)) !== null && _h !== void 0 ? _h : record['contract-id']) !== null && _j !== void 0 ? _j : record['contract_id']) !== null && _k !== void 0 ? _k : null,
65
- };
66
- if (module === 'purchase_orders') {
67
- fields.po_number =
68
- (_o = (_m = (_l = record['po-number']) !== null && _l !== void 0 ? _l : record['po_number']) !== null && _m !== void 0 ? _m : record['number']) !== null && _o !== void 0 ? _o : null;
69
- fields.po_status = (_p = record['status']) !== null && _p !== void 0 ? _p : null;
70
- fields.total_amount = (_q = record['total']) !== null && _q !== void 0 ? _q : null;
71
- }
72
- else if (module === 'suppliers') {
73
- fields.supplier_id = (_r = record['id']) !== null && _r !== void 0 ? _r : null;
74
- fields.supplier_name =
75
- (_u = (_t = (_s = record['name']) !== null && _s !== void 0 ? _s : record['display-name']) !== null && _t !== void 0 ? _t : record['display_name']) !== null && _u !== void 0 ? _u : null;
76
- fields.po_status = (_v = record['status']) !== null && _v !== void 0 ? _v : null;
77
- }
78
- else if (module === 'contracts') {
79
- fields.contract_id = (_w = record['id']) !== null && _w !== void 0 ? _w : null;
80
- fields.po_status = (_x = record['status']) !== null && _x !== void 0 ? _x : null;
81
- fields.total_amount =
82
- (_0 = (_z = (_y = record['total']) !== null && _y !== void 0 ? _y : record['contract-amount']) !== null && _z !== void 0 ? _z : record['contract_amount']) !== null && _0 !== void 0 ? _0 : null;
83
- }
84
- return fields;
85
- }
86
- function formatCoupaOutput(record, module) {
87
- const standard = toStandardCoupaFields(record, module);
88
- const flat = flattenRecord(record);
89
- return Object.assign(Object.assign({}, flat), standard);
90
- }
91
- function formatCoupaOutputs(records, module) {
92
- return records.map((record) => formatCoupaOutput(record, module));
93
- }
94
- function parseJsonBody(body) {
95
- if (body === undefined || body === null || body === '') {
96
- return {};
97
- }
98
- if (typeof body === 'object') {
99
- return body;
100
- }
101
- if (typeof body === 'string') {
102
- try {
103
- return JSON.parse(body);
104
- }
105
- catch (_a) {
106
- throw new Error('Request Body must be valid JSON.');
107
- }
108
- }
109
- return body;
110
- }
111
- function formatCoupaError(error) {
112
- const response = isRecord(error) ? error['response'] : undefined;
113
- let status;
114
- let body;
115
- if (isRecord(response)) {
116
- const statusValue = response['status'];
117
- status = typeof statusValue === 'number' ? statusValue : undefined;
118
- body = response['body'];
119
- }
120
- const suffix = status ? ` (${status})` : '';
121
- if (typeof body === 'string') {
122
- return `Coupa API error${suffix}: ${body}`;
123
- }
124
- if (body !== null && typeof body === 'object') {
125
- return `Coupa API error${suffix}: ${JSON.stringify(body)}`;
126
- }
127
- const message = isRecord(error) && typeof error['message'] === 'string'
128
- ? error['message']
129
- : 'Unknown error';
130
- return `Coupa API error${suffix}: ${message}`;
131
- }
132
- function getMimeType(filename, extension) {
133
- var _a, _b;
134
- const ext = ((_a = extension !== null && extension !== void 0 ? extension : filename.split('.').pop()) !== null && _a !== void 0 ? _a : '')
135
- .toLowerCase()
136
- .replace(/^\./, '');
137
- return (_b = MIME_TYPES_BY_EXTENSION[ext]) !== null && _b !== void 0 ? _b : 'application/octet-stream';
138
- }
139
- function readNestedId(value) {
140
- if (!isRecord(value)) {
141
- return null;
142
- }
143
- const id = value['id'];
144
- if (typeof id === 'number' || typeof id === 'string') {
145
- return id;
146
- }
147
- return null;
148
- }
149
- function readNestedName(value) {
150
- if (!isRecord(value)) {
151
- return null;
152
- }
153
- const name = value['name'];
154
- if (name === null || name === undefined) {
155
- return null;
156
- }
157
- return String(name);
158
- }
159
- const MIME_TYPES_BY_EXTENSION = {
160
- pdf: 'application/pdf',
161
- png: 'image/png',
162
- jpg: 'image/jpeg',
163
- jpeg: 'image/jpeg',
164
- gif: 'image/gif',
165
- webp: 'image/webp',
166
- svg: 'image/svg+xml',
167
- bmp: 'image/bmp',
168
- tiff: 'image/tiff',
169
- csv: 'text/csv',
170
- txt: 'text/plain',
171
- html: 'text/html',
172
- json: 'application/json',
173
- xml: 'application/xml',
174
- xls: 'application/vnd.ms-excel',
175
- xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
176
- doc: 'application/msword',
177
- docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
178
- ppt: 'application/vnd.ms-powerpoint',
179
- pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
180
- zip: 'application/zip',
181
- };
182
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/common/utils.ts"],"names":[],"mappings":"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"}
@@ -1,39 +0,0 @@
1
- import { TriggerStrategy } from '@activepieces/pieces-framework';
2
- export declare const newOrUpdatedObject: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, import("@activepieces/pieces-framework").CustomAuthProperty<{
3
- instanceUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
- clientId: import("@activepieces/pieces-framework").SecretTextProperty<true>;
5
- clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
6
- scope: import("@activepieces/pieces-framework").LongTextProperty<true>;
7
- }>, {
8
- module: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
9
- customResource: import("@activepieces/pieces-framework").ShortTextProperty<false>;
10
- additionalFilters: import("@activepieces/pieces-framework").JsonProperty<false>;
11
- }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, import("@activepieces/pieces-framework").CustomAuthProperty<{
12
- instanceUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
13
- clientId: import("@activepieces/pieces-framework").SecretTextProperty<true>;
14
- clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
15
- scope: import("@activepieces/pieces-framework").LongTextProperty<true>;
16
- }>, {
17
- module: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
18
- customResource: import("@activepieces/pieces-framework").ShortTextProperty<false>;
19
- additionalFilters: import("@activepieces/pieces-framework").JsonProperty<false>;
20
- }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.MANUAL, import("@activepieces/pieces-framework").CustomAuthProperty<{
21
- instanceUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
22
- clientId: import("@activepieces/pieces-framework").SecretTextProperty<true>;
23
- clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
24
- scope: import("@activepieces/pieces-framework").LongTextProperty<true>;
25
- }>, {
26
- module: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
27
- customResource: import("@activepieces/pieces-framework").ShortTextProperty<false>;
28
- additionalFilters: import("@activepieces/pieces-framework").JsonProperty<false>;
29
- }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, import("@activepieces/pieces-framework").CustomAuthProperty<{
30
- instanceUrl: import("@activepieces/pieces-framework").ShortTextProperty<true>;
31
- clientId: import("@activepieces/pieces-framework").SecretTextProperty<true>;
32
- clientSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
33
- scope: import("@activepieces/pieces-framework").LongTextProperty<true>;
34
- }>, {
35
- module: import("@activepieces/pieces-framework").StaticDropdownProperty<string, true>;
36
- customResource: import("@activepieces/pieces-framework").ShortTextProperty<false>;
37
- additionalFilters: import("@activepieces/pieces-framework").JsonProperty<false>;
38
- }>;
39
- //# sourceMappingURL=new-or-updated-object.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"new-or-updated-object.d.ts","sourceRoot":"","sources":["../../../../src/lib/triggers/new-or-updated-object.ts"],"names":[],"mappings":"AAMA,OAAO,EAGL,eAAe,EAEhB,MAAM,gCAAgC,CAAC;AA+ExC,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2C7B,CAAC"}