@activepieces/piece-netsuite 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/index.d.ts DELETED
@@ -1,15 +0,0 @@
1
- export declare const netsuiteAuth: import("@activepieces/pieces-framework").CustomAuthProperty<{
2
- accountId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
- consumerKey: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
- consumerSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
5
- tokenId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
6
- tokenSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
7
- }>;
8
- export declare const netsuite: import("@activepieces/pieces-framework").Piece<import("@activepieces/pieces-framework").CustomAuthProperty<{
9
- accountId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
10
- consumerKey: import("@activepieces/pieces-framework").ShortTextProperty<true>;
11
- consumerSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
12
- tokenId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
13
- tokenSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
14
- }>>;
15
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,YAAY;;;;;;EA6BvB,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;GA2CnB,CAAC"}
package/src/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,qEAKwC;AACxC,yDAAqD;AACrD,6DAAyD;AACzD,2DAAuD;AACvD,mEAA+D;AAC/D,iDAAqD;AACrD,+DAAwE;AACxE,8CAAuD;AAE1C,QAAA,YAAY,GAAG,4BAAS,CAAC,UAAU,CAAC;IAC/C,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE;QACL,SAAS,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC5B,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,0BAA0B;SACxC,CAAC;QACF,WAAW,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC9B,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,4BAA4B;SAC1C,CAAC;QACF,cAAc,EAAE,4BAAS,CAAC,UAAU,CAAC;YACnC,WAAW,EAAE,iBAAiB;YAC9B,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,+BAA+B;SAC7C,CAAC;QACF,OAAO,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC1B,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,wBAAwB;SACtC,CAAC;QACF,WAAW,EAAE,4BAAS,CAAC,UAAU,CAAC;YAChC,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,4BAA4B;SAC1C,CAAC;KACH;CACF,CAAC,CAAC;AAEU,QAAA,QAAQ,GAAG,IAAA,8BAAW,EAAC;IAClC,WAAW,EAAE,UAAU;IACvB,OAAO,EAAE,kDAAkD;IAC3D,UAAU,EAAE,CAAC,sBAAa,CAAC,UAAU,CAAC;IACtC,IAAI,EAAE,oBAAY;IAClB,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC;IACpC,OAAO,EAAE;QACP,sBAAS;QACT,0BAAW;QACX,wBAAU;QACV,gCAAc;QACd,IAAA,yCAAyB,EAAC;YACxB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC7B,OAAO,WAAW,SAAS,CAAC,SAAS,6BAA6B,CAAC;YACrE,CAAC;YACD,IAAI,EAAE,oBAAY;YAClB,WAAW,EAAE,CAAO,IAAI,EAAE,UAAU,EAAE,EAAE;gBACtC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;gBAE7B,MAAM,UAAU,GAAG,IAAA,yBAAiB,EAClC,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,WAAW,EACrB,SAAS,CAAC,cAAc,EACxB,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,WAAW,EACrB,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EACxB,UAAU,CAAC,QAAQ,CAAC,EACpB,UAAU,CAAC,aAAa,CAAC,CAC1B,CAAC;gBAEF,OAAO;oBACL,aAAa,EAAE,UAAU;oBACzB,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,4BAA4B;iBACrC,CAAC;YACJ,CAAC,CAAA;SACF,CAAC;KACH;IACD,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC"}
@@ -1,16 +0,0 @@
1
- export declare const executeDataset: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
2
- accountId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
- consumerKey: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
- consumerSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
5
- tokenId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
6
- tokenSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
7
- }>, {
8
- datasetId: import("@activepieces/pieces-framework").DropdownProperty<string, true, import("@activepieces/pieces-framework").CustomAuthProperty<{
9
- accountId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
10
- consumerKey: import("@activepieces/pieces-framework").ShortTextProperty<true>;
11
- consumerSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
12
- tokenId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
13
- tokenSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
14
- }>>;
15
- }>;
16
- //# sourceMappingURL=execute-dataset.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execute-dataset.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/execute-dataset.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;EAiDzB,CAAC"}
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.executeDataset = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const pieces_common_1 = require("@activepieces/pieces-common");
7
- const __1 = require("../..");
8
- const client_1 = require("../common/client");
9
- exports.executeDataset = (0, pieces_framework_1.createAction)({
10
- name: 'executeDataset',
11
- auth: __1.netsuiteAuth,
12
- displayName: 'Execute Dataset',
13
- description: 'Execute Dataset on NetSuite.',
14
- props: {
15
- datasetId: pieces_framework_1.Property.Dropdown({
16
- auth: __1.netsuiteAuth,
17
- displayName: 'Dataset',
18
- required: true,
19
- refreshers: [],
20
- options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
21
- if (!auth) {
22
- return {
23
- disabled: true,
24
- placeholder: 'Please connect your account first',
25
- options: [],
26
- };
27
- }
28
- const client = new client_1.NetSuiteClient(auth.props);
29
- const items = yield client.makePaginatedRequest({
30
- method: pieces_common_1.HttpMethod.GET,
31
- url: `${client.baseUrl}/services/rest/query/v1/dataset`,
32
- });
33
- return {
34
- disabled: false,
35
- options: items.map((item) => ({
36
- label: item.name,
37
- value: item.id,
38
- })),
39
- };
40
- }),
41
- }),
42
- },
43
- run(context) {
44
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
45
- const client = new client_1.NetSuiteClient(context.auth.props);
46
- const { datasetId } = context.propsValue;
47
- return client.makePaginatedRequest({
48
- method: pieces_common_1.HttpMethod.GET,
49
- url: `${client.baseUrl}/services/rest/query/v1/dataset/${datasetId}/result`,
50
- });
51
- });
52
- },
53
- });
54
- //# sourceMappingURL=execute-dataset.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execute-dataset.js","sourceRoot":"","sources":["../../../../src/lib/actions/execute-dataset.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAyD;AACzD,6BAAqC;AACrC,6CAAkD;AAErC,QAAA,cAAc,GAAG,IAAA,+BAAY,EAAC;IACzC,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE,gBAAY;IAClB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,8BAA8B;IAC3C,KAAK,EAAE;QACL,SAAS,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC3B,IAAI,EAAE,gBAAY;YAClB,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;gBACtB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO;wBACL,QAAQ,EAAE,IAAI;wBACd,WAAW,EAAE,mCAAmC;wBAChD,OAAO,EAAE,EAAE;qBACZ,CAAC;gBACJ,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,uBAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAE9C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAG5C;oBACD,MAAM,EAAE,0BAAU,CAAC,GAAG;oBACtB,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,iCAAiC;iBACxD,CAAC,CAAC;gBAEH,OAAO;oBACL,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;wBAC5B,KAAK,EAAE,IAAI,CAAC,IAAI;wBAChB,KAAK,EAAE,IAAI,CAAC,EAAE;qBACf,CAAC,CAAC;iBACJ,CAAC;YACJ,CAAC,CAAA;SACF,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,MAAM,GAAG,IAAI,uBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAEzC,OAAO,MAAM,CAAC,oBAAoB,CAAC;gBACjC,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,mCAAmC,SAAS,SAAS;aAC5E,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- export declare const getCustomer: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
2
- accountId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
- consumerKey: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
- consumerSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
5
- tokenId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
6
- tokenSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
7
- }>, {
8
- customerId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
9
- }>;
10
- //# sourceMappingURL=get-customer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-customer.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/get-customer.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW;;;;;;;;EAqBtB,CAAC"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCustomer = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const pieces_common_1 = require("@activepieces/pieces-common");
7
- const __1 = require("../..");
8
- const client_1 = require("../common/client");
9
- exports.getCustomer = (0, pieces_framework_1.createAction)({
10
- name: 'getCustomer',
11
- auth: __1.netsuiteAuth,
12
- displayName: 'Get Customer',
13
- description: 'Gets customer details from NetSuite.',
14
- props: {
15
- customerId: pieces_framework_1.Property.ShortText({
16
- displayName: 'Customer ID',
17
- required: true,
18
- description: 'The ID of the customer to retrieve.',
19
- }),
20
- },
21
- run(context) {
22
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
23
- const client = new client_1.NetSuiteClient(context.auth.props);
24
- const { customerId } = context.propsValue;
25
- return client.makeRequest({
26
- method: pieces_common_1.HttpMethod.GET,
27
- url: `${client.baseUrl}/services/rest/record/v1/customer/${customerId}`,
28
- });
29
- });
30
- },
31
- });
32
- //# sourceMappingURL=get-customer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-customer.js","sourceRoot":"","sources":["../../../../src/lib/actions/get-customer.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAyD;AACzD,6BAAqC;AACrC,6CAAkD;AAErC,QAAA,WAAW,GAAG,IAAA,+BAAY,EAAC;IACtC,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,gBAAY;IAClB,WAAW,EAAE,cAAc;IAC3B,WAAW,EAAE,sCAAsC;IACnD,KAAK,EAAE;QACL,UAAU,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC7B,WAAW,EAAE,aAAa;YAC1B,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qCAAqC;SACnD,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,MAAM,GAAG,IAAI,uBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAE1C,OAAO,MAAM,CAAC,WAAW,CAAC;gBACxB,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,qCAAqC,UAAU,EAAE;aACxE,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- export declare const getVendor: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
2
- accountId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
- consumerKey: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
- consumerSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
5
- tokenId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
6
- tokenSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
7
- }>, {
8
- vendorId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
9
- }>;
10
- //# sourceMappingURL=get-vendor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-vendor.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/get-vendor.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS;;;;;;;;EAqBpB,CAAC"}
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getVendor = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const pieces_common_1 = require("@activepieces/pieces-common");
7
- const __1 = require("../..");
8
- const client_1 = require("../common/client");
9
- exports.getVendor = (0, pieces_framework_1.createAction)({
10
- name: 'getVendor',
11
- auth: __1.netsuiteAuth,
12
- displayName: 'Get Vendor',
13
- description: 'Gets vendor details from NetSuite.',
14
- props: {
15
- vendorId: pieces_framework_1.Property.ShortText({
16
- displayName: 'Vendor ID',
17
- required: true,
18
- description: 'The ID of the vendor to retrieve.',
19
- }),
20
- },
21
- run(context) {
22
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
23
- const client = new client_1.NetSuiteClient(context.auth.props);
24
- const { vendorId } = context.propsValue;
25
- return client.makeRequest({
26
- method: pieces_common_1.HttpMethod.GET,
27
- url: `${client.baseUrl}/services/rest/record/v1/vendor/${vendorId}`,
28
- });
29
- });
30
- },
31
- });
32
- //# sourceMappingURL=get-vendor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get-vendor.js","sourceRoot":"","sources":["../../../../src/lib/actions/get-vendor.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAyD;AACzD,6BAAqC;AACrC,6CAAkD;AAErC,QAAA,SAAS,GAAG,IAAA,+BAAY,EAAC;IACpC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,gBAAY;IAClB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,oCAAoC;IACjD,KAAK,EAAE;QACL,QAAQ,EAAE,2BAAQ,CAAC,SAAS,CAAC;YAC3B,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,mCAAmC;SACjD,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,MAAM,GAAG,IAAI,uBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;YAExC,OAAO,MAAM,CAAC,WAAW,CAAC;gBACxB,MAAM,EAAE,0BAAU,CAAC,GAAG;gBACtB,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,mCAAmC,QAAQ,EAAE;aACpE,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -1,12 +0,0 @@
1
- export declare const runSuiteQL: import("@activepieces/pieces-framework").IAction<import("@activepieces/pieces-framework").CustomAuthProperty<{
2
- accountId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
3
- consumerKey: import("@activepieces/pieces-framework").ShortTextProperty<true>;
4
- consumerSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
5
- tokenId: import("@activepieces/pieces-framework").ShortTextProperty<true>;
6
- tokenSecret: import("@activepieces/pieces-framework").SecretTextProperty<true>;
7
- }>, {
8
- markdown: import("@activepieces/pieces-framework/dist/src/lib/property/input/markdown-property").MarkDownProperty;
9
- query: import("@activepieces/pieces-framework").ShortTextProperty<true>;
10
- args: import("@activepieces/pieces-framework").ArrayProperty<false>;
11
- }>;
12
- //# sourceMappingURL=run-suiteql.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-suiteql.d.ts","sourceRoot":"","sources":["../../../../src/lib/actions/run-suiteql.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,UAAU;;;;;;;;;;EAmDrB,CAAC"}
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runSuiteQL = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const pieces_common_1 = require("@activepieces/pieces-common");
7
- const __1 = require("../..");
8
- const client_1 = require("../common/client");
9
- const sql_formatter_1 = require("sql-formatter");
10
- const mkdown = `
11
- - **DO NOT** insert dynamic input directly into the query string. Instead, use :1, :2, :3 and add them in args for parameterized queries
12
- - Arguments are treated as string and inserted as a [Text Literal](https://docs.oracle.com/en/database/oracle/oracle-database/26/sqlrf/Literals.html)
13
- `;
14
- exports.runSuiteQL = (0, pieces_framework_1.createAction)({
15
- name: 'runSuiteQL',
16
- auth: __1.netsuiteAuth,
17
- displayName: 'Run SuiteQL Query',
18
- description: 'Run SuiteQL Query on NetSuite.',
19
- props: {
20
- markdown: pieces_framework_1.Property.MarkDown({
21
- value: mkdown,
22
- }),
23
- query: pieces_framework_1.Property.ShortText({
24
- displayName: 'Query',
25
- description: 'Please use :1, :2, :3 etc. for parameterized queries',
26
- required: true,
27
- }),
28
- args: pieces_framework_1.Property.Array({
29
- displayName: 'Arguments',
30
- description: 'Arguments to be used in the query',
31
- required: false,
32
- }),
33
- },
34
- run(context) {
35
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
36
- const client = new client_1.NetSuiteClient(context.auth.props);
37
- const query = context.propsValue.query;
38
- const args = context.propsValue.args || [];
39
- // numbered placeholders: https://github.com/sql-formatter-org/sql-formatter/blob/master/docs/params.md#numbered-placeholders
40
- const formattedArgs = args.reduce((acc, arg, idx) => {
41
- // numbered placeholders are 1 indexed
42
- const argNum = idx + 1;
43
- // use q notation to escape quotes
44
- acc[argNum] = `q'{${arg}}'`;
45
- return acc;
46
- }, {});
47
- // netsuite uses oracle sql: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_156257790831.html
48
- const formattedSQL = (0, sql_formatter_1.format)(query, {
49
- language: 'plsql',
50
- params: formattedArgs,
51
- });
52
- return client.makePaginatedRequest({
53
- method: pieces_common_1.HttpMethod.POST,
54
- url: `${client.baseUrl}/services/rest/query/v1/suiteql`,
55
- body: {
56
- q: formattedSQL,
57
- },
58
- });
59
- });
60
- },
61
- });
62
- //# sourceMappingURL=run-suiteql.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run-suiteql.js","sourceRoot":"","sources":["../../../../src/lib/actions/run-suiteql.ts"],"names":[],"mappings":";;;;AAAA,qEAAwE;AACxE,+DAAyD;AACzD,6BAAqC;AACrC,6CAAkD;AAClD,iDAAgE;AAEhE,MAAM,MAAM,GAAG;;;CAGd,CAAC;AAEW,QAAA,UAAU,GAAG,IAAA,+BAAY,EAAC;IACrC,IAAI,EAAE,YAAY;IAClB,IAAI,EAAE,gBAAY;IAClB,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,gCAAgC;IAC7C,KAAK,EAAE;QACL,QAAQ,EAAE,2BAAQ,CAAC,QAAQ,CAAC;YAC1B,KAAK,EAAE,MAAM;SACd,CAAC;QAEF,KAAK,EAAE,2BAAQ,CAAC,SAAS,CAAC;YACxB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,IAAI,EAAE,2BAAQ,CAAC,KAAK,CAAC;YACnB,WAAW,EAAE,WAAW;YACxB,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH;IACK,GAAG,CAAC,OAAO;;YACf,MAAM,MAAM,GAAG,IAAI,uBAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;YACvC,MAAM,IAAI,GAAc,OAAO,CAAC,UAAU,CAAC,IAAiB,IAAI,EAAE,CAAC;YAEnE,6HAA6H;YAC7H,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;gBAClD,sCAAsC;gBACtC,MAAM,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC;gBACvB,kCAAkC;gBAClC,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;gBAC5B,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAgB,CAAC,CAAC;YAErB,oHAAoH;YACpH,MAAM,YAAY,GAAG,IAAA,sBAAS,EAAC,KAAK,EAAE;gBACpC,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC,oBAAoB,CAAC;gBACjC,MAAM,EAAE,0BAAU,CAAC,IAAI;gBACvB,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,iCAAiC;gBACvD,IAAI,EAAE;oBACJ,CAAC,EAAE,YAAY;iBAChB;aACF,CAAC,CAAC;QACL,CAAC;KAAA;CACF,CAAC,CAAC"}
@@ -1,23 +0,0 @@
1
- import { HttpMethod, QueryParams } from '@activepieces/pieces-common';
2
- interface NetSuiteAuth {
3
- accountId: string;
4
- consumerKey: string;
5
- consumerSecret: string;
6
- tokenId: string;
7
- tokenSecret: string;
8
- }
9
- interface MakeRequestParams {
10
- method: HttpMethod;
11
- url: string;
12
- queryParams?: QueryParams;
13
- body?: unknown;
14
- }
15
- export declare class NetSuiteClient {
16
- private auth;
17
- constructor(auth: NetSuiteAuth);
18
- get baseUrl(): string;
19
- makeRequest<T>({ method, url, queryParams, body, }: MakeRequestParams): Promise<T>;
20
- makePaginatedRequest<T>({ method, url, body, }: Omit<MakeRequestParams, 'queryParams'>): Promise<T[]>;
21
- }
22
- export {};
23
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,WAAW,EACZ,MAAM,6BAA6B,CAAC;AAKrC,UAAU,YAAY;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,iBAAiB;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAOD,qBAAa,cAAc;IACzB,OAAO,CAAC,IAAI,CAAe;gBAEf,IAAI,EAAE,YAAY;IAI9B,IAAI,OAAO,IAAI,MAAM,CAEpB;IAEK,WAAW,CAAC,CAAC,EAAE,EACnB,MAAM,EACN,GAAG,EACH,WAAW,EACX,IAAI,GACL,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC;IA4B3B,oBAAoB,CAAC,CAAC,EAAE,EAC5B,MAAM,EACN,GAAG,EACH,IAAI,GACL,EAAE,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAyBzD"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NetSuiteClient = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_common_1 = require("@activepieces/pieces-common");
6
- const oauth_1 = require("./oauth");
7
- const PAGE_SIZE = 1000;
8
- class NetSuiteClient {
9
- constructor(auth) {
10
- this.auth = auth;
11
- }
12
- get baseUrl() {
13
- return `https://${this.auth.accountId}.suitetalk.api.netsuite.com`;
14
- }
15
- makeRequest(_a) {
16
- return tslib_1.__awaiter(this, arguments, void 0, function* ({ method, url, queryParams, body, }) {
17
- const authHeader = (0, oauth_1.createOAuthHeader)(this.auth.accountId, this.auth.consumerKey, this.auth.consumerSecret, this.auth.tokenId, this.auth.tokenSecret, url, method, queryParams);
18
- const response = yield pieces_common_1.httpClient.sendRequest({
19
- method,
20
- url,
21
- headers: {
22
- Authorization: authHeader,
23
- prefer: 'transient',
24
- Cookie: 'NS_ROUTING_VERSION=LAGGING',
25
- },
26
- queryParams,
27
- body,
28
- });
29
- return response.body;
30
- });
31
- }
32
- // paginate results: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_156414087576.html
33
- makePaginatedRequest(_a) {
34
- return tslib_1.__awaiter(this, arguments, void 0, function* ({ method, url, body, }) {
35
- var _b;
36
- const results = [];
37
- let pageOffset = 0;
38
- let hasMore = true;
39
- while (hasMore) {
40
- const queryParams = {
41
- limit: String(PAGE_SIZE),
42
- offset: String(pageOffset),
43
- };
44
- const response = yield this.makeRequest({
45
- method,
46
- url,
47
- queryParams,
48
- body,
49
- });
50
- results.push(...(response.items || []));
51
- hasMore = (_b = response.hasMore) !== null && _b !== void 0 ? _b : false;
52
- pageOffset += PAGE_SIZE;
53
- }
54
- return results;
55
- });
56
- }
57
- }
58
- exports.NetSuiteClient = NetSuiteClient;
59
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/lib/common/client.ts"],"names":[],"mappings":";;;;AAAA,+DAIqC;AACrC,mCAA4C;AAE5C,MAAM,SAAS,GAAG,IAAI,CAAC;AAsBvB,MAAa,cAAc;IAGzB,YAAY,IAAkB;QAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS,6BAA6B,CAAC;IACrE,CAAC;IAEK,WAAW;qEAAI,EACnB,MAAM,EACN,GAAG,EACH,WAAW,EACX,IAAI,GACc;YAClB,MAAM,UAAU,GAAG,IAAA,yBAAiB,EAClC,IAAI,CAAC,IAAI,CAAC,SAAS,EACnB,IAAI,CAAC,IAAI,CAAC,WAAW,EACrB,IAAI,CAAC,IAAI,CAAC,cAAc,EACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EACrB,GAAG,EACH,MAAM,EACN,WAAW,CACZ,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,0BAAU,CAAC,WAAW,CAAC;gBAC5C,MAAM;gBACN,GAAG;gBACH,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU;oBACzB,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,4BAA4B;iBACrC;gBACD,WAAW;gBACX,IAAI;aACL,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;KAAA;IAED,4GAA4G;IACtG,oBAAoB;qEAAI,EAC5B,MAAM,EACN,GAAG,EACH,IAAI,GACmC;;YACvC,MAAM,OAAO,GAAQ,EAAE,CAAC;YACxB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,OAAO,GAAG,IAAI,CAAC;YAEnB,OAAO,OAAO,EAAE,CAAC;gBACf,MAAM,WAAW,GAAG;oBAClB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;oBACxB,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC;iBAC3B,CAAC;gBAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAuB;oBAC5D,MAAM;oBACN,GAAG;oBACH,WAAW;oBACX,IAAI;iBACL,CAAC,CAAC;gBAEH,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxC,OAAO,GAAG,MAAA,QAAQ,CAAC,OAAO,mCAAI,KAAK,CAAC;gBACpC,UAAU,IAAI,SAAS,CAAC;YAC1B,CAAC;YAED,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;CACF;AAzED,wCAyEC"}
@@ -1,2 +0,0 @@
1
- export declare function createOAuthHeader(accountId: string, consumerKey: string, consumerSecret: string, tokenId: string, tokenSecret: string, requestUrl: string, httpMethod: string, queryParams?: Record<string, string | number | boolean>): string;
2
- //# sourceMappingURL=oauth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../../../../src/lib/common/oauth.ts"],"names":[],"mappings":"AAqFA,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACtD,MAAM,CA2BR"}
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createOAuthHeader = createOAuthHeader;
4
- const crypto_1 = require("crypto");
5
- const SIGN_METHOD = 'HMAC-SHA256';
6
- const OAUTH_VERSION = '1.0';
7
- // OAuth 1.0 (RFC 5849 §3.6) requires RFC 3986 percent-encoding, which encodes
8
- // '!', '*', "'", '(', ')' — characters that encodeURIComponent leaves unencoded.
9
- function oauthEncode(str) {
10
- return encodeURIComponent(str).replace(/[!'()*]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);
11
- }
12
- function generateNonce() {
13
- // Use CSPRNG instead of Math.random() for unpredictable nonces.
14
- return (0, crypto_1.randomBytes)(16).toString('hex');
15
- }
16
- function generateSignature(requestUrl, httpMethod, oauthNonce, timestamp, consumerKey, consumerSecret, tokenId, tokenSecret, queryParams) {
17
- // Parse URL to get base URL and existing query params
18
- const parsedUrl = new URL(requestUrl);
19
- const baseUrl = `${parsedUrl.origin}${parsedUrl.pathname}`;
20
- // Collect OAuth parameters
21
- const allParams = {
22
- oauth_consumer_key: consumerKey,
23
- oauth_nonce: oauthNonce,
24
- oauth_signature_method: SIGN_METHOD,
25
- oauth_timestamp: timestamp.toString(),
26
- oauth_token: tokenId,
27
- oauth_version: OAUTH_VERSION,
28
- };
29
- // Include query parameters from URL
30
- parsedUrl.searchParams.forEach((value, key) => {
31
- allParams[key] = value;
32
- });
33
- // Include additional query parameters (will override URL params if same key)
34
- if (queryParams) {
35
- Object.entries(queryParams).forEach(([key, value]) => {
36
- allParams[key] = String(value);
37
- });
38
- }
39
- // RFC 5849 §3.4.1.3: encode keys/values first, then sort the encoded pairs.
40
- // Sorting on raw strings would differ from sorting on encoded strings when
41
- // param names contain characters whose encoded form changes byte order (e.g. '{' → '%7B').
42
- const encodedPairs = Object.entries(allParams).map(([key, value]) => [oauthEncode(key), oauthEncode(value)]);
43
- encodedPairs.sort(([ka, va], [kb, vb]) => ka < kb ? -1 : ka > kb ? 1 : va < vb ? -1 : va > vb ? 1 : 0);
44
- const paramString = encodedPairs.map(([k, v]) => `${k}=${v}`).join('&');
45
- const signatureBaseString = [
46
- httpMethod.toUpperCase(),
47
- oauthEncode(baseUrl),
48
- oauthEncode(paramString),
49
- ].join('&');
50
- const signingKey = [
51
- oauthEncode(consumerSecret),
52
- oauthEncode(tokenSecret),
53
- ].join('&');
54
- const hmac = (0, crypto_1.createHmac)('sha256', signingKey);
55
- hmac.update(signatureBaseString);
56
- const signature = hmac.digest('base64');
57
- return oauthEncode(signature);
58
- }
59
- function createOAuthHeader(accountId, consumerKey, consumerSecret, tokenId, tokenSecret, requestUrl, httpMethod, queryParams) {
60
- const oauthNonce = generateNonce();
61
- const timestamp = Math.floor(Date.now() / 1000);
62
- const signature = generateSignature(requestUrl, httpMethod, oauthNonce, timestamp, consumerKey, consumerSecret, tokenId, tokenSecret, queryParams);
63
- const headerParams = [
64
- `realm="${accountId}"`,
65
- `oauth_token="${tokenId}"`,
66
- `oauth_consumer_key="${consumerKey}"`,
67
- `oauth_nonce="${oauthNonce}"`,
68
- `oauth_timestamp="${timestamp}"`,
69
- `oauth_signature_method="${SIGN_METHOD}"`,
70
- `oauth_version="${OAUTH_VERSION}"`,
71
- `oauth_signature="${signature}"`,
72
- ].join(',');
73
- return `OAuth ${headerParams}`;
74
- }
75
- //# sourceMappingURL=oauth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../../../src/lib/common/oauth.ts"],"names":[],"mappings":"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"}