@klardaten/n8n-nodes-datevconnect 1.0.5 → 1.0.7

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/README.md +2 -0
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +156 -0
  5. package/dist/nodes/Accounting/Accounting.node.d.ts.map +1 -1
  6. package/dist/nodes/Accounting/Accounting.node.js +7 -1
  7. package/dist/nodes/Accounting/types.d.ts +2 -0
  8. package/dist/nodes/Accounting/types.d.ts.map +1 -1
  9. package/dist/nodes/DocumentManagement/DocumentManagement.node.d.ts.map +1 -1
  10. package/dist/nodes/DocumentManagement/DocumentManagement.node.js +7 -1
  11. package/dist/nodes/DocumentManagement/types.d.ts +2 -1
  12. package/dist/nodes/DocumentManagement/types.d.ts.map +1 -1
  13. package/dist/nodes/IdentityAndAccessManagement/IdentityAndAccessManagement.node.d.ts.map +1 -1
  14. package/dist/nodes/IdentityAndAccessManagement/IdentityAndAccessManagement.node.js +7 -1
  15. package/dist/nodes/IdentityAndAccessManagement/types.d.ts +2 -1
  16. package/dist/nodes/IdentityAndAccessManagement/types.d.ts.map +1 -1
  17. package/dist/nodes/MasterData/MasterData.node.d.ts.map +1 -1
  18. package/dist/nodes/MasterData/MasterData.node.js +7 -1
  19. package/dist/nodes/MasterData/types.d.ts +2 -1
  20. package/dist/nodes/MasterData/types.d.ts.map +1 -1
  21. package/dist/nodes/OrderManagement/OrderManagement.config.d.ts +3 -0
  22. package/dist/nodes/OrderManagement/OrderManagement.config.d.ts.map +1 -0
  23. package/dist/nodes/OrderManagement/OrderManagement.config.js +644 -0
  24. package/dist/nodes/OrderManagement/OrderManagement.node.d.ts +6 -0
  25. package/dist/nodes/OrderManagement/OrderManagement.node.d.ts.map +1 -0
  26. package/dist/nodes/OrderManagement/OrderManagement.node.js +92 -0
  27. package/dist/nodes/OrderManagement/handlers/BaseResourceHandler.d.ts +17 -0
  28. package/dist/nodes/OrderManagement/handlers/BaseResourceHandler.d.ts.map +1 -0
  29. package/dist/nodes/OrderManagement/handlers/BaseResourceHandler.js +48 -0
  30. package/dist/nodes/OrderManagement/handlers/ClientGroupResourceHandler.d.ts +8 -0
  31. package/dist/nodes/OrderManagement/handlers/ClientGroupResourceHandler.d.ts.map +1 -0
  32. package/dist/nodes/OrderManagement/handlers/ClientGroupResourceHandler.js +32 -0
  33. package/dist/nodes/OrderManagement/handlers/CostCenterResourceHandler.d.ts +8 -0
  34. package/dist/nodes/OrderManagement/handlers/CostCenterResourceHandler.d.ts.map +1 -0
  35. package/dist/nodes/OrderManagement/handlers/CostCenterResourceHandler.js +38 -0
  36. package/dist/nodes/OrderManagement/handlers/EmployeeResourceHandler.d.ts +12 -0
  37. package/dist/nodes/OrderManagement/handlers/EmployeeResourceHandler.d.ts.map +1 -0
  38. package/dist/nodes/OrderManagement/handlers/EmployeeResourceHandler.js +106 -0
  39. package/dist/nodes/OrderManagement/handlers/FeeResourceHandler.d.ts +9 -0
  40. package/dist/nodes/OrderManagement/handlers/FeeResourceHandler.d.ts.map +1 -0
  41. package/dist/nodes/OrderManagement/handlers/FeeResourceHandler.js +55 -0
  42. package/dist/nodes/OrderManagement/handlers/InvoiceResourceHandler.d.ts +9 -0
  43. package/dist/nodes/OrderManagement/handlers/InvoiceResourceHandler.d.ts.map +1 -0
  44. package/dist/nodes/OrderManagement/handlers/InvoiceResourceHandler.js +49 -0
  45. package/dist/nodes/OrderManagement/handlers/OrderResourceHandler.d.ts +24 -0
  46. package/dist/nodes/OrderManagement/handlers/OrderResourceHandler.d.ts.map +1 -0
  47. package/dist/nodes/OrderManagement/handlers/OrderResourceHandler.js +285 -0
  48. package/dist/nodes/OrderManagement/handlers/OrderTypeResourceHandler.d.ts +8 -0
  49. package/dist/nodes/OrderManagement/handlers/OrderTypeResourceHandler.d.ts.map +1 -0
  50. package/dist/nodes/OrderManagement/handlers/OrderTypeResourceHandler.js +34 -0
  51. package/dist/nodes/OrderManagement/handlers/SelfClientResourceHandler.d.ts +8 -0
  52. package/dist/nodes/OrderManagement/handlers/SelfClientResourceHandler.d.ts.map +1 -0
  53. package/dist/nodes/OrderManagement/handlers/SelfClientResourceHandler.js +36 -0
  54. package/dist/nodes/OrderManagement/types.d.ts +28 -0
  55. package/dist/nodes/OrderManagement/types.d.ts.map +1 -0
  56. package/dist/nodes/OrderManagement/types.js +2 -0
  57. package/dist/nodes/OrderManagement/utils.d.ts +14 -0
  58. package/dist/nodes/OrderManagement/utils.d.ts.map +1 -0
  59. package/dist/nodes/OrderManagement/utils.js +79 -0
  60. package/dist/src/services/accountingClient.d.ts.map +1 -1
  61. package/dist/src/services/accountingClient.js +2 -0
  62. package/dist/src/services/datevConnectClient.d.ts +3 -22
  63. package/dist/src/services/datevConnectClient.d.ts.map +1 -1
  64. package/dist/src/services/datevConnectClient.js +96 -180
  65. package/dist/src/services/documentManagementClient.d.ts +3 -1
  66. package/dist/src/services/documentManagementClient.d.ts.map +1 -1
  67. package/dist/src/services/documentManagementClient.js +28 -27
  68. package/dist/src/services/httpHelpers.d.ts +10 -0
  69. package/dist/src/services/httpHelpers.d.ts.map +1 -0
  70. package/dist/src/services/httpHelpers.js +180 -0
  71. package/dist/src/services/identityAndAccessManagementClient.d.ts +2 -1
  72. package/dist/src/services/identityAndAccessManagementClient.d.ts.map +1 -1
  73. package/dist/src/services/identityAndAccessManagementClient.js +4 -1
  74. package/dist/src/services/orderManagementClient.d.ts +189 -0
  75. package/dist/src/services/orderManagementClient.d.ts.map +1 -0
  76. package/dist/src/services/orderManagementClient.js +459 -0
  77. package/dist/src/services/shared.d.ts +39 -0
  78. package/dist/src/services/shared.d.ts.map +1 -0
  79. package/dist/src/services/shared.js +110 -0
  80. package/package.json +6 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/services/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElF,MAAM,MAAM,SAAS,GACjB,IAAI,GACJ,OAAO,GACP,MAAM,GACN,MAAM,GACN,SAAS,EAAE,GACX;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjC,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAqB,SAAQ,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IACrE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,eAAO,MAAM,iBAAiB,qBAAqB,CAAC;AACpD,eAAO,MAAM,oBAAoB,gCAAgC,CAAC;AAElE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMrD;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,WAAW,CAOrF;AAED,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC,CAiBlG;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GACnC,MAAM,CAwBR;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAgBtF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CAI3D;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAuB9F"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ /**
3
+ * Shared utilities for DATEV API clients
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DEFAULT_ERROR_PREFIX = exports.JSON_CONTENT_TYPE = void 0;
7
+ exports.normaliseBaseUrl = normaliseBaseUrl;
8
+ exports.buildHeaders = buildHeaders;
9
+ exports.readResponseBody = readResponseBody;
10
+ exports.extractErrorMessage = extractErrorMessage;
11
+ exports.ensureSuccess = ensureSuccess;
12
+ exports.buildApiUrl = buildApiUrl;
13
+ exports.authenticate = authenticate;
14
+ const httpHelpers_1 = require("./httpHelpers");
15
+ exports.JSON_CONTENT_TYPE = "application/json";
16
+ exports.DEFAULT_ERROR_PREFIX = "DATEVconnect request failed";
17
+ function normaliseBaseUrl(host) {
18
+ if (!host) {
19
+ throw new Error("DATEVconnect host must be provided");
20
+ }
21
+ return host.endsWith("/") ? host : `${host}/`;
22
+ }
23
+ function buildHeaders(headers) {
24
+ return Object.entries(headers).reduce((acc, [key, value]) => {
25
+ if (value) {
26
+ acc[key] = value;
27
+ }
28
+ return acc;
29
+ }, {});
30
+ }
31
+ async function readResponseBody(response) {
32
+ var _a;
33
+ const contentType = (_a = response.headers.get("content-type")) !== null && _a !== void 0 ? _a : "";
34
+ if (contentType.toLowerCase().includes(exports.JSON_CONTENT_TYPE)) {
35
+ try {
36
+ return (await response.json());
37
+ }
38
+ catch {
39
+ return undefined;
40
+ }
41
+ }
42
+ try {
43
+ const text = await response.text();
44
+ return text.length > 0 ? text : undefined;
45
+ }
46
+ catch {
47
+ return undefined;
48
+ }
49
+ }
50
+ function extractErrorMessage(response, body) {
51
+ const statusPart = `${response.status}${response.statusText ? ` ${response.statusText}` : ""}`.trim();
52
+ const prefix = `${exports.DEFAULT_ERROR_PREFIX}${statusPart ? ` (${statusPart})` : ""}`;
53
+ if (typeof body === "string" && body.trim().length > 0) {
54
+ return `${prefix}: ${body.trim()}`;
55
+ }
56
+ if (body && typeof body === "object") {
57
+ const errorDescription = "error_description" in body && typeof body.error_description === "string"
58
+ ? body.error_description
59
+ : undefined;
60
+ const message = ("message" in body && typeof body.message === "string"
61
+ ? body.message
62
+ : undefined) ||
63
+ ("error" in body && typeof body.error === "string" ? body.error : undefined);
64
+ if (message) {
65
+ return `${prefix}: ${message}${errorDescription ? `: ${errorDescription}` : ""}`;
66
+ }
67
+ }
68
+ return prefix;
69
+ }
70
+ async function ensureSuccess(response) {
71
+ const body = await readResponseBody(response);
72
+ if (!response.ok) {
73
+ throw new Error(extractErrorMessage(response, body));
74
+ }
75
+ if (body && typeof body === "object") {
76
+ return body;
77
+ }
78
+ if (body === undefined) {
79
+ return undefined;
80
+ }
81
+ throw new Error(`${exports.DEFAULT_ERROR_PREFIX}: Expected JSON response body.`);
82
+ }
83
+ function buildApiUrl(host, path) {
84
+ const baseUrl = normaliseBaseUrl(host);
85
+ const trimmedPath = path.startsWith("/") ? path.slice(1) : path;
86
+ return new URL(trimmedPath, baseUrl);
87
+ }
88
+ /**
89
+ * Authenticate with DATEV API
90
+ * Uses httpHelper (n8n's httpRequest) when available, falls back to fetchImpl for tests, or global fetch
91
+ */
92
+ async function authenticate(options) {
93
+ const { host, email, password, httpHelper, fetchImpl: providedFetchImpl } = options;
94
+ const baseUrl = normaliseBaseUrl(host);
95
+ const url = new URL("api/auth/login", baseUrl);
96
+ // Use httpHelper if provided (n8n runtime), else fetchImpl (tests), else global fetch (fallback)
97
+ const fetchImpl = httpHelper ? (0, httpHelpers_1.createFetchFromHttpHelper)(httpHelper) : (providedFetchImpl || fetch);
98
+ const response = await fetchImpl(url, {
99
+ method: "POST",
100
+ headers: buildHeaders({
101
+ "content-type": exports.JSON_CONTENT_TYPE,
102
+ }),
103
+ body: JSON.stringify({ email, password }),
104
+ });
105
+ const body = await ensureSuccess(response);
106
+ if (!body || typeof body !== "object" || !("access_token" in body) || typeof body.access_token !== "string") {
107
+ throw new Error(`${exports.DEFAULT_ERROR_PREFIX}: Authentication response missing access_token.`);
108
+ }
109
+ return body;
110
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@klardaten/n8n-nodes-datevconnect",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "n8n community node for DATEVconnect API via Klardaten Gateway",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/Klardaten/n8n-nodes-datevconnect#readme",
@@ -45,7 +45,8 @@
45
45
  "dist/nodes/MasterData/MasterData.node.js",
46
46
  "dist/nodes/Accounting/Accounting.node.js",
47
47
  "dist/nodes/DocumentManagement/DocumentManagement.node.js",
48
- "dist/nodes/IdentityAndAccessManagement/IdentityAndAccessManagement.node.js"
48
+ "dist/nodes/IdentityAndAccessManagement/IdentityAndAccessManagement.node.js",
49
+ "dist/nodes/OrderManagement/OrderManagement.node.js"
49
50
  ],
50
51
  "credentials": [
51
52
  "dist/credentials/DatevConnectApi.credentials.js"
@@ -57,13 +58,13 @@
57
58
  "main": "./dist/index.js",
58
59
  "types": "./dist/index.d.ts",
59
60
  "devDependencies": {
60
- "@n8n/node-cli": "*",
61
- "@types/node": "^24.10.0",
61
+ "@n8n/node-cli": "^0.17.0",
62
+ "@types/node": "^24.10.2",
62
63
  "bun": "^1.3.2",
63
64
  "bun-types": "^1.3.2",
64
65
  "eslint": "9.39.1",
65
66
  "nock": "14.0.10",
66
- "prettier": "3.6.2",
67
+ "prettier": "^3.7.4",
67
68
  "release-it": "^19.0.4",
68
69
  "typescript": "5.9.3"
69
70
  },