n8n-nodes-peak-test 0.1.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 (44) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +127 -0
  3. package/dist/assets/PEAK.svg +13 -0
  4. package/dist/credentials/PEAKApi.credentials.d.ts +7 -0
  5. package/dist/credentials/PEAKApi.credentials.js +40 -0
  6. package/dist/credentials/PEAKApi.credentials.js.map +1 -0
  7. package/dist/helpers/time.d.ts +2 -0
  8. package/dist/helpers/time.js +23 -0
  9. package/dist/helpers/time.js.map +1 -0
  10. package/dist/nodes/ClientToken/CreateClientToken.node.d.ts +5 -0
  11. package/dist/nodes/ClientToken/CreateClientToken.node.js +128 -0
  12. package/dist/nodes/ClientToken/CreateClientToken.node.js.map +1 -0
  13. package/dist/nodes/Contact/GetContact.node.d.ts +5 -0
  14. package/dist/nodes/Contact/GetContact.node.js +145 -0
  15. package/dist/nodes/Contact/GetContact.node.js.map +1 -0
  16. package/dist/nodes/DailyJournal/CreateDailyJournal.node.d.ts +5 -0
  17. package/dist/nodes/DailyJournal/CreateDailyJournal.node.js +139 -0
  18. package/dist/nodes/DailyJournal/CreateDailyJournal.node.js.map +1 -0
  19. package/dist/nodes/DailyJournal/GetAccountCode.node.d.ts +5 -0
  20. package/dist/nodes/DailyJournal/GetAccountCode.node.js +118 -0
  21. package/dist/nodes/DailyJournal/GetAccountCode.node.js.map +1 -0
  22. package/dist/nodes/Invoice/CreateExpense.node.d.ts +5 -0
  23. package/dist/nodes/Invoice/CreateExpense.node.js +139 -0
  24. package/dist/nodes/Invoice/CreateExpense.node.js.map +1 -0
  25. package/dist/nodes/Invoice/CreateInvoice.node.d.ts +5 -0
  26. package/dist/nodes/Invoice/CreateInvoice.node.js +140 -0
  27. package/dist/nodes/Invoice/CreateInvoice.node.js.map +1 -0
  28. package/dist/nodes/Invoice/CreateInvoice.node.json +13 -0
  29. package/dist/nodes/PaymentMethod/GetPaymentMethod.node.d.ts +5 -0
  30. package/dist/nodes/PaymentMethod/GetPaymentMethod.node.js +145 -0
  31. package/dist/nodes/PaymentMethod/GetPaymentMethod.node.js.map +1 -0
  32. package/dist/nodes/Product/GetProduct.node.d.ts +5 -0
  33. package/dist/nodes/Product/GetProduct.node.js +146 -0
  34. package/dist/nodes/Product/GetProduct.node.js.map +1 -0
  35. package/dist/nodes/Product/GetService.node.d.ts +5 -0
  36. package/dist/nodes/Product/GetService.node.js +145 -0
  37. package/dist/nodes/Product/GetService.node.js.map +1 -0
  38. package/dist/nodes/Receipt/CreateReceipt.node.d.ts +5 -0
  39. package/dist/nodes/Receipt/CreateReceipt.node.js +139 -0
  40. package/dist/nodes/Receipt/CreateReceipt.node.js.map +1 -0
  41. package/dist/nodes/Receipt/CreateReceipt.node.json +13 -0
  42. package/dist/tsconfig.tsbuildinfo +1 -0
  43. package/index.js +0 -0
  44. package/package.json +75 -0
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateDailyJournal = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const time_1 = require("../../helpers/time");
6
+ class CreateDailyJournal {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: 'PEAK Create Daily Journal',
10
+ name: 'createDailyJournal',
11
+ icon: 'file:../../assets/PEAK.svg',
12
+ group: ['output'],
13
+ version: 1,
14
+ subtitle: '={{$parameter["operation"]}}',
15
+ description: 'Send JSON payload to create daily journal via PEAK API',
16
+ defaults: {
17
+ name: 'Create DailyJournal',
18
+ },
19
+ inputs: ['main'],
20
+ outputs: ['main'],
21
+ credentials: [{ name: 'PEAKApi', required: true }],
22
+ usableAsTool: true,
23
+ properties: [
24
+ {
25
+ displayName: 'Server Environment',
26
+ name: 'serverEnvironment',
27
+ type: 'options',
28
+ typeOptions: { rows: 1 },
29
+ default: 'production',
30
+ required: true,
31
+ description: 'Product ID to retrieve',
32
+ options: [
33
+ {
34
+ name: 'UAT',
35
+ value: 'uat',
36
+ },
37
+ {
38
+ name: 'Production',
39
+ value: 'production',
40
+ },
41
+ ],
42
+ },
43
+ {
44
+ displayName: 'JSON Body',
45
+ name: 'jsonBody',
46
+ type: 'string',
47
+ typeOptions: { rows: 10 },
48
+ default: '{\n "merchantId": "241027",\n "issueDate": "2025-10-16",\n "items": []\n}',
49
+ required: true,
50
+ description: 'Raw JSON payload (you can map from previous node with {{$json}})',
51
+ },
52
+ {
53
+ displayName: 'Client Token (override)',
54
+ name: 'clientTokenOverride',
55
+ type: 'string',
56
+ typeOptions: { password: true },
57
+ default: '',
58
+ description: 'Optional override (useful when token refreshes every 24h)',
59
+ },
60
+ ],
61
+ };
62
+ }
63
+ async execute() {
64
+ const items = this.getInputData();
65
+ const returnData = [];
66
+ const creds = (await this.getCredentials('PEAKApi'));
67
+ const userToken = creds.userToken;
68
+ const connectId = creds.connectId;
69
+ let endpointUrl = 'https://peakengineapidev.azurewebsites.net/api/v1/dailyJournals';
70
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
71
+ try {
72
+ const serverEnv = this.getNodeParameter('serverEnvironment', itemIndex, '');
73
+ const jsonBodyStr = this.getNodeParameter('jsonBody', itemIndex);
74
+ const clientTokenOverride = this.getNodeParameter('clientTokenOverride', itemIndex, '');
75
+ if (serverEnv === 'production') {
76
+ endpointUrl = endpointUrl.replace('peakengineapidev.azurewebsites.net', 'api.peakaccount.com');
77
+ }
78
+ const clientToken = clientTokenOverride || creds.clientToken;
79
+ if (!clientToken)
80
+ throw new Error('Client Token is required (credentials or override).');
81
+ let bodyObj;
82
+ try {
83
+ bodyObj = JSON.parse(jsonBodyStr);
84
+ if (typeof bodyObj !== 'object' || bodyObj === null) {
85
+ throw new Error('JSON Body must be an object.');
86
+ }
87
+ }
88
+ catch {
89
+ throw new Error('Invalid JSON Body.');
90
+ }
91
+ const timeStamp = (0, time_1.formatTimestamp)(new Date(), false);
92
+ const timeSignature = (0, time_1.hmacSha1Hex)(connectId, timeStamp);
93
+ const headers = {
94
+ 'User-Token': userToken,
95
+ 'Client-Token': clientToken,
96
+ 'Time-Stamp': timeStamp,
97
+ 'Time-Signature': timeSignature,
98
+ 'Content-Type': 'application/json',
99
+ };
100
+ const options = {
101
+ method: 'POST',
102
+ url: endpointUrl,
103
+ headers,
104
+ body: bodyObj,
105
+ json: true,
106
+ };
107
+ const response = await this.helpers.httpRequest(options);
108
+ returnData.push({
109
+ json: {
110
+ success: true,
111
+ statusCode: 200,
112
+ data: response,
113
+ headers,
114
+ },
115
+ });
116
+ }
117
+ catch (error) {
118
+ if (this.continueOnFail()) {
119
+ returnData.push({
120
+ json: { error: error.message },
121
+ pairedItem: { item: itemIndex },
122
+ });
123
+ }
124
+ else {
125
+ if (error.context) {
126
+ error.context.itemIndex = itemIndex;
127
+ throw error;
128
+ }
129
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
130
+ itemIndex,
131
+ });
132
+ }
133
+ }
134
+ }
135
+ return [returnData];
136
+ }
137
+ }
138
+ exports.CreateDailyJournal = CreateDailyJournal;
139
+ //# sourceMappingURL=CreateDailyJournal.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateDailyJournal.node.js","sourceRoot":"","sources":["../../../nodes/DailyJournal/CreateDailyJournal.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class GetAccountCode implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetAccountCode = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const time_1 = require("../../helpers/time");
6
+ class GetAccountCode {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: 'PEAK Get Account Code',
10
+ name: 'getAccountCode',
11
+ icon: 'file:../../assets/PEAK.svg',
12
+ group: ['input'],
13
+ version: 1,
14
+ subtitle: '={{$parameter["operation"]}}',
15
+ description: 'Send parameter to get account code via PEAK API',
16
+ defaults: {
17
+ name: 'Get AccountCode',
18
+ },
19
+ inputs: ['main'],
20
+ outputs: ['main'],
21
+ credentials: [{ name: 'PEAKApi', required: true }],
22
+ usableAsTool: true,
23
+ properties: [
24
+ {
25
+ displayName: 'Server Environment',
26
+ name: 'serverEnvironment',
27
+ type: 'options',
28
+ typeOptions: { rows: 1 },
29
+ default: 'production',
30
+ required: true,
31
+ description: 'AccountCode ID to retrieve',
32
+ options: [
33
+ {
34
+ name: 'UAT',
35
+ value: 'uat',
36
+ },
37
+ {
38
+ name: 'Production',
39
+ value: 'production',
40
+ },
41
+ ],
42
+ },
43
+ {
44
+ displayName: 'Client Token (override)',
45
+ name: 'clientTokenOverride',
46
+ type: 'string',
47
+ typeOptions: { password: true },
48
+ default: '',
49
+ description: 'Optional override (useful when token refreshes every 24h)',
50
+ },
51
+ ],
52
+ };
53
+ }
54
+ async execute() {
55
+ const items = this.getInputData();
56
+ const returnData = [];
57
+ const creds = (await this.getCredentials('PEAKApi'));
58
+ const userToken = creds.userToken;
59
+ const connectId = creds.connectId;
60
+ let endpointUrl = 'https://peakengineapidev.azurewebsites.net/api/v1/dailyjournals/accountcode';
61
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
62
+ try {
63
+ const serverEnv = this.getNodeParameter('serverEnvironment', itemIndex, '');
64
+ const clientTokenOverride = this.getNodeParameter('clientTokenOverride', itemIndex, '');
65
+ if (serverEnv === 'production') {
66
+ endpointUrl = endpointUrl.replace('peakengineapidev.azurewebsites.net', 'api.peakaccount.com');
67
+ }
68
+ const clientToken = clientTokenOverride || creds.clientToken;
69
+ if (!clientToken)
70
+ throw new Error('Client Token is required (credentials or override).');
71
+ const timeStamp = (0, time_1.formatTimestamp)(new Date(), false);
72
+ const timeSignature = (0, time_1.hmacSha1Hex)(connectId, timeStamp);
73
+ const headers = {
74
+ 'User-Token': userToken,
75
+ 'Client-Token': clientToken,
76
+ 'Time-Stamp': timeStamp,
77
+ 'Time-Signature': timeSignature,
78
+ 'Content-Type': 'application/json',
79
+ };
80
+ const options = {
81
+ method: 'GET',
82
+ url: endpointUrl,
83
+ headers,
84
+ json: true,
85
+ };
86
+ const response = await this.helpers.httpRequest(options);
87
+ returnData.push({
88
+ json: {
89
+ success: true,
90
+ statusCode: 200,
91
+ data: response,
92
+ headers,
93
+ },
94
+ });
95
+ }
96
+ catch (error) {
97
+ if (this.continueOnFail()) {
98
+ returnData.push({
99
+ json: { error: error.message },
100
+ pairedItem: { item: itemIndex },
101
+ });
102
+ }
103
+ else {
104
+ if (error.context) {
105
+ error.context.itemIndex = itemIndex;
106
+ throw error;
107
+ }
108
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
109
+ itemIndex,
110
+ });
111
+ }
112
+ }
113
+ }
114
+ return [returnData];
115
+ }
116
+ }
117
+ exports.GetAccountCode = GetAccountCode;
118
+ //# sourceMappingURL=GetAccountCode.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetAccountCode.node.js","sourceRoot":"","sources":["../../../nodes/DailyJournal/GetAccountCode.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class CreateExpense implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateExpense = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const time_1 = require("../../helpers/time");
6
+ class CreateExpense {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: 'PEAK Create Expense',
10
+ name: 'createExpense',
11
+ icon: 'file:../../assets/PEAK.svg',
12
+ group: ['output'],
13
+ version: 1,
14
+ subtitle: '={{$parameter["operation"]}}',
15
+ description: 'Send JSON payload to create expense via PEAK API',
16
+ defaults: {
17
+ name: 'Create Expense',
18
+ },
19
+ inputs: ['main'],
20
+ outputs: ['main'],
21
+ credentials: [{ name: 'PEAKApi', required: true }],
22
+ usableAsTool: true,
23
+ properties: [
24
+ {
25
+ displayName: 'Server Environment',
26
+ name: 'serverEnvironment',
27
+ type: 'options',
28
+ typeOptions: { rows: 1 },
29
+ default: 'production',
30
+ required: true,
31
+ description: 'Product ID to retrieve',
32
+ options: [
33
+ {
34
+ name: 'UAT',
35
+ value: 'uat',
36
+ },
37
+ {
38
+ name: 'Production',
39
+ value: 'production',
40
+ },
41
+ ],
42
+ },
43
+ {
44
+ displayName: 'JSON Body',
45
+ name: 'jsonBody',
46
+ type: 'string',
47
+ typeOptions: { rows: 10 },
48
+ default: '{\n "merchantId": "241027",\n "issueDate": "2025-10-16",\n "items": []\n}',
49
+ required: true,
50
+ description: 'Raw JSON payload (you can map from previous node with {{$json}})',
51
+ },
52
+ {
53
+ displayName: 'Client Token (override)',
54
+ name: 'clientTokenOverride',
55
+ type: 'string',
56
+ typeOptions: { password: true },
57
+ default: '',
58
+ description: 'Optional override (useful when token refreshes every 24h)',
59
+ },
60
+ ],
61
+ };
62
+ }
63
+ async execute() {
64
+ const items = this.getInputData();
65
+ const returnData = [];
66
+ const creds = (await this.getCredentials('PEAKApi'));
67
+ const userToken = creds.userToken;
68
+ const connectId = creds.connectId;
69
+ let endpointUrl = 'https://peakengineapidev.azurewebsites.net/api/v1/expenses';
70
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
71
+ try {
72
+ const serverEnv = this.getNodeParameter('serverEnvironment', itemIndex, '');
73
+ const jsonBodyStr = this.getNodeParameter('jsonBody', itemIndex);
74
+ const clientTokenOverride = this.getNodeParameter('clientTokenOverride', itemIndex, '');
75
+ if (serverEnv === 'production') {
76
+ endpointUrl = endpointUrl.replace('peakengineapidev.azurewebsites.net', 'api.peakaccount.com');
77
+ }
78
+ const clientToken = clientTokenOverride || creds.clientToken;
79
+ if (!clientToken)
80
+ throw new Error('Client Token is required (credentials or override).');
81
+ let bodyObj;
82
+ try {
83
+ bodyObj = JSON.parse(jsonBodyStr);
84
+ if (typeof bodyObj !== 'object' || bodyObj === null) {
85
+ throw new Error('JSON Body must be an object.');
86
+ }
87
+ }
88
+ catch {
89
+ throw new Error('Invalid JSON Body.');
90
+ }
91
+ const timeStamp = (0, time_1.formatTimestamp)(new Date(), false);
92
+ const timeSignature = (0, time_1.hmacSha1Hex)(connectId, timeStamp);
93
+ const headers = {
94
+ 'User-Token': userToken,
95
+ 'Client-Token': clientToken,
96
+ 'Time-Stamp': timeStamp,
97
+ 'Time-Signature': timeSignature,
98
+ 'Content-Type': 'application/json',
99
+ };
100
+ const options = {
101
+ method: 'POST',
102
+ url: endpointUrl,
103
+ headers,
104
+ body: bodyObj,
105
+ json: true,
106
+ };
107
+ const response = await this.helpers.httpRequest(options);
108
+ returnData.push({
109
+ json: {
110
+ success: true,
111
+ statusCode: 200,
112
+ data: response,
113
+ headers,
114
+ },
115
+ });
116
+ }
117
+ catch (error) {
118
+ if (this.continueOnFail()) {
119
+ returnData.push({
120
+ json: { error: error.message },
121
+ pairedItem: { item: itemIndex },
122
+ });
123
+ }
124
+ else {
125
+ if (error.context) {
126
+ error.context.itemIndex = itemIndex;
127
+ throw error;
128
+ }
129
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
130
+ itemIndex,
131
+ });
132
+ }
133
+ }
134
+ }
135
+ return [returnData];
136
+ }
137
+ }
138
+ exports.CreateExpense = CreateExpense;
139
+ //# sourceMappingURL=CreateExpense.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateExpense.node.js","sourceRoot":"","sources":["../../../nodes/Invoice/CreateExpense.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class CreateInvoice implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateInvoice = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const time_1 = require("../../helpers/time");
6
+ class CreateInvoice {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: 'PEAK Create Invoice',
10
+ name: 'createInvoice',
11
+ icon: 'file:../../assets/PEAK.svg',
12
+ group: ['output'],
13
+ version: 1,
14
+ subtitle: '={{$parameter["operation"]}}',
15
+ description: 'Send JSON payload to create invoice via PEAK API',
16
+ defaults: {
17
+ name: 'Create Invoice',
18
+ },
19
+ inputs: ['main'],
20
+ outputs: ['main'],
21
+ credentials: [{ name: 'PEAKApi', required: true }],
22
+ usableAsTool: true,
23
+ properties: [
24
+ {
25
+ displayName: 'Server Environment',
26
+ name: 'serverEnvironment',
27
+ type: 'options',
28
+ typeOptions: { rows: 1 },
29
+ default: 'production',
30
+ required: true,
31
+ description: 'Product ID to retrieve',
32
+ options: [
33
+ {
34
+ name: 'UAT',
35
+ value: 'uat',
36
+ },
37
+ {
38
+ name: 'Production',
39
+ value: 'production',
40
+ },
41
+ ],
42
+ },
43
+ {
44
+ displayName: 'JSON Body',
45
+ name: 'jsonBody',
46
+ type: 'string',
47
+ typeOptions: { rows: 10 },
48
+ default: '{\n "merchantId": "241027",\n "issueDate": "2025-10-16",\n "items": []\n}',
49
+ required: true,
50
+ description: 'Raw JSON payload (you can map from previous node with {{$json}})',
51
+ },
52
+ {
53
+ displayName: 'Client Token (override)',
54
+ name: 'clientTokenOverride',
55
+ type: 'string',
56
+ typeOptions: { password: true },
57
+ default: '',
58
+ description: 'Optional override (useful when token refreshes every 24h)',
59
+ },
60
+ ],
61
+ };
62
+ }
63
+ async execute() {
64
+ const items = this.getInputData();
65
+ const returnData = [];
66
+ const creds = (await this.getCredentials('PEAKApi'));
67
+ const userToken = creds.userToken;
68
+ const connectId = creds.connectId;
69
+ let endpointUrl = 'https://peakengineapidev.azurewebsites.net/api/v1/invoices';
70
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
71
+ try {
72
+ const serverEnv = this.getNodeParameter('serverEnvironment', itemIndex, '');
73
+ const jsonBodyStr = this.getNodeParameter('jsonBody', itemIndex);
74
+ const clientTokenOverride = this.getNodeParameter('clientTokenOverride', itemIndex, '');
75
+ if (serverEnv === 'production') {
76
+ endpointUrl = endpointUrl.replace('peakengineapidev.azurewebsites.net', 'api.peakaccount.com');
77
+ }
78
+ const clientToken = clientTokenOverride || creds.clientToken;
79
+ if (!clientToken)
80
+ throw new Error('Client Token is required (credentials or override).');
81
+ let bodyObj;
82
+ try {
83
+ bodyObj = JSON.parse(jsonBodyStr);
84
+ if (typeof bodyObj !== 'object' || bodyObj === null) {
85
+ throw new Error('JSON Body must be an object.');
86
+ }
87
+ }
88
+ catch {
89
+ throw new Error('Invalid JSON Body.');
90
+ }
91
+ const timeStamp = (0, time_1.formatTimestamp)(new Date(), false);
92
+ const timeSignature = (0, time_1.hmacSha1Hex)(connectId, timeStamp);
93
+ const headers = {
94
+ 'User-Token': userToken,
95
+ 'Client-Token': clientToken,
96
+ 'Time-Stamp': timeStamp,
97
+ 'Time-Signature': timeSignature,
98
+ 'Content-Type': 'application/json',
99
+ 'x-peak-integrator': 'n8n',
100
+ };
101
+ const options = {
102
+ method: 'POST',
103
+ url: endpointUrl,
104
+ headers,
105
+ body: bodyObj,
106
+ json: true,
107
+ };
108
+ const response = await this.helpers.httpRequest(options);
109
+ returnData.push({
110
+ json: {
111
+ success: true,
112
+ statusCode: 200,
113
+ data: response,
114
+ headers,
115
+ },
116
+ });
117
+ }
118
+ catch (error) {
119
+ if (this.continueOnFail()) {
120
+ returnData.push({
121
+ json: { error: error.message },
122
+ pairedItem: { item: itemIndex },
123
+ });
124
+ }
125
+ else {
126
+ if (error.context) {
127
+ error.context.itemIndex = itemIndex;
128
+ throw error;
129
+ }
130
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
131
+ itemIndex,
132
+ });
133
+ }
134
+ }
135
+ }
136
+ return [returnData];
137
+ }
138
+ }
139
+ exports.CreateInvoice = CreateInvoice;
140
+ //# sourceMappingURL=CreateInvoice.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateInvoice.node.js","sourceRoot":"","sources":["../../../nodes/Invoice/CreateInvoice.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ {
2
+ "nodeClassDescription": {
3
+ "displayName": "Create Invoice",
4
+ "name": "createInvoice",
5
+ "icon": "file:../../assets/PEAK.svg",
6
+ "codex": {
7
+ "categories": ["PEAK"],
8
+ "subcategories": {
9
+ "PEAK": ["Document Actions"]
10
+ }
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class GetPaymentMethod implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }