@thegraphitelab/n8n-nodes-servicetitan 0.13.0 → 0.14.1
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/README.md +6 -5
- package/dist/nodes/ServiceTitan/v1/ServiceTitanTriggerV1.node.js +5 -2
- package/dist/nodes/ServiceTitan/v1/ServiceTitanTriggerV1.node.js.map +1 -1
- package/dist/nodes/ServiceTitan/v1/ServiceTitanV1.node.js +5 -2
- package/dist/nodes/ServiceTitan/v1/ServiceTitanV1.node.js.map +1 -1
- package/dist/nodes/ServiceTitan/v1/descriptions/node.description.js +5 -2
- package/dist/nodes/ServiceTitan/v1/descriptions/node.description.js.map +1 -1
- package/dist/nodes/ServiceTitan/v1/descriptions/trigger.description.js +5 -2
- package/dist/nodes/ServiceTitan/v1/descriptions/trigger.description.js.map +1 -1
- package/dist/nodes/ServiceTitan/v1/generated/manifests.js +1 -1
- package/dist/nodes/ServiceTitan/v1/generated/manifests.js.map +1 -1
- package/dist/nodes/ServiceTitan/v1/manifest.d.ts +1 -1
- package/dist/nodes/ServiceTitan/v1/manifest.js.map +1 -1
- package/dist/nodes/ServiceTitan/v1/transport/config.d.ts +1 -1
- package/dist/nodes/ServiceTitan/v1/transport/config.js +4 -0
- package/dist/nodes/ServiceTitan/v1/transport/config.js.map +1 -1
- package/dist/nodes/ServiceTitan/v1/transport/index.d.ts +1 -1
- package/dist/nodes/ServiceTitan/v1/transport/index.js +5 -2
- package/dist/nodes/ServiceTitan/v1/transport/index.js.map +1 -1
- package/dist/package.json +4 -1
- package/package.json +4 -1
- package/dist/nodes/core/factories/read/export.d.ts +0 -6
- package/dist/nodes/core/factories/read/export.js +0 -26
- package/dist/nodes/core/factories/read/export.js.map +0 -1
- package/dist/nodes/core/factories/read/filters.d.ts +0 -2
- package/dist/nodes/core/factories/read/filters.js +0 -14
- package/dist/nodes/core/factories/read/filters.js.map +0 -1
- package/dist/nodes/core/factories/read/get.d.ts +0 -7
- package/dist/nodes/core/factories/read/get.js +0 -41
- package/dist/nodes/core/factories/read/get.js.map +0 -1
- package/dist/nodes/core/factories/read/getArray.d.ts +0 -7
- package/dist/nodes/core/factories/read/getArray.js +0 -30
- package/dist/nodes/core/factories/read/getArray.js.map +0 -1
- package/dist/nodes/core/factories/read/getMany.d.ts +0 -7
- package/dist/nodes/core/factories/read/getMany.js +0 -33
- package/dist/nodes/core/factories/read/getMany.js.map +0 -1
- package/dist/nodes/core/factories/read/properties.d.ts +0 -17
- package/dist/nodes/core/factories/read/properties.js +0 -123
- package/dist/nodes/core/factories/read/properties.js.map +0 -1
- package/dist/nodes/core/factories/read/read.d.ts +0 -18
- package/dist/nodes/core/factories/read/read.js +0 -21
- package/dist/nodes/core/factories/read/read.js.map +0 -1
- package/dist/nodes/core/factories/router.d.ts +0 -5
- package/dist/nodes/core/factories/router.js +0 -31
- package/dist/nodes/core/factories/router.js.map +0 -1
- package/dist/nodes/core/factories/write/action.d.ts +0 -7
- package/dist/nodes/core/factories/write/action.js +0 -22
- package/dist/nodes/core/factories/write/action.js.map +0 -1
- package/dist/nodes/core/factories/write/delete.d.ts +0 -7
- package/dist/nodes/core/factories/write/delete.js +0 -33
- package/dist/nodes/core/factories/write/delete.js.map +0 -1
- package/dist/nodes/core/factories/write/poll.d.ts +0 -11
- package/dist/nodes/core/factories/write/poll.js +0 -206
- package/dist/nodes/core/factories/write/poll.js.map +0 -1
- package/dist/nodes/core/factories/write/utils.d.ts +0 -6
- package/dist/nodes/core/factories/write/utils.js +0 -65
- package/dist/nodes/core/factories/write/utils.js.map +0 -1
- package/dist/nodes/core/factories/write/write.d.ts +0 -7
- package/dist/nodes/core/factories/write/write.js +0 -217
- package/dist/nodes/core/factories/write/write.js.map +0 -1
- package/dist/nodes/core/helpers/array.d.ts +0 -1
- package/dist/nodes/core/helpers/array.js +0 -7
- package/dist/nodes/core/helpers/array.js.map +0 -1
- package/dist/nodes/core/helpers/customFields.d.ts +0 -13
- package/dist/nodes/core/helpers/customFields.js +0 -36
- package/dist/nodes/core/helpers/customFields.js.map +0 -1
- package/dist/nodes/core/helpers/reduce.d.ts +0 -5
- package/dist/nodes/core/helpers/reduce.js +0 -20
- package/dist/nodes/core/helpers/reduce.js.map +0 -1
- package/dist/nodes/core/helpers/string.d.ts +0 -2
- package/dist/nodes/core/helpers/string.js +0 -21
- package/dist/nodes/core/helpers/string.js.map +0 -1
- package/dist/nodes/core/manifest/getDescription.d.ts +0 -5
- package/dist/nodes/core/manifest/getDescription.js +0 -92
- package/dist/nodes/core/manifest/getDescription.js.map +0 -1
- package/dist/nodes/core/manifest/getExecute.d.ts +0 -6
- package/dist/nodes/core/manifest/getExecute.js +0 -89
- package/dist/nodes/core/manifest/getExecute.js.map +0 -1
- package/dist/nodes/core/manifest/getPoll.d.ts +0 -4
- package/dist/nodes/core/manifest/getPoll.js +0 -40
- package/dist/nodes/core/manifest/getPoll.js.map +0 -1
- package/dist/nodes/core/manifest/types.d.ts +0 -23
- package/dist/nodes/core/manifest/types.js +0 -3
- package/dist/nodes/core/manifest/types.js.map +0 -1
- package/dist/nodes/core/transport/constructRequest.d.ts +0 -2
- package/dist/nodes/core/transport/constructRequest.js +0 -21
- package/dist/nodes/core/transport/constructRequest.js.map +0 -1
- package/dist/nodes/core/transport/createTransport.d.ts +0 -21
- package/dist/nodes/core/transport/createTransport.js +0 -56
- package/dist/nodes/core/transport/createTransport.js.map +0 -1
- package/dist/nodes/core/types/separate.d.ts +0 -68
- package/dist/nodes/core/types/separate.js +0 -3
- package/dist/nodes/core/types/separate.js.map +0 -1
- package/dist/nodes/core/types/shared/dialect.d.ts +0 -16
- package/dist/nodes/core/types/shared/dialect.js +0 -3
- package/dist/nodes/core/types/shared/dialect.js.map +0 -1
- package/dist/nodes/core/types/shared/operation.d.ts +0 -76
- package/dist/nodes/core/types/shared/operation.js +0 -5
- package/dist/nodes/core/types/shared/operation.js.map +0 -1
- package/dist/nodes/core/types/shared/resource.d.ts +0 -19
- package/dist/nodes/core/types/shared/resource.js +0 -5
- package/dist/nodes/core/types/shared/resource.js.map +0 -1
- package/dist/nodes/core/types/shared/selection.d.ts +0 -9
- package/dist/nodes/core/types/shared/selection.js +0 -5
- package/dist/nodes/core/types/shared/selection.js.map +0 -1
- package/dist/nodes/core/types/shared/sourced.d.ts +0 -7
- package/dist/nodes/core/types/shared/sourced.js +0 -3
- package/dist/nodes/core/types/shared/sourced.js.map +0 -1
- package/dist/nodes/core/types/shared/trigger.d.ts +0 -21
- package/dist/nodes/core/types/shared/trigger.js +0 -5
- package/dist/nodes/core/types/shared/trigger.js.map +0 -1
package/README.md
CHANGED
|
@@ -67,13 +67,14 @@ Polling-based with `modifiedOnOrAfter` cursor and a boundary-id dedup set to avo
|
|
|
67
67
|
|
|
68
68
|
## Architecture
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
Manifest-driven. The shared engine lives in **[`@thegraphitelab/n8n-nodes-core`](../n8n-nodes-core/)** (a runtime dependency, pulled in automatically when n8n installs this package); this package supplies only ServiceTitan's specifics:
|
|
71
71
|
|
|
72
|
-
- `
|
|
73
|
-
- `
|
|
74
|
-
- `
|
|
72
|
+
- `nodes/ServiceTitan/v1/generated/manifests.ts` — the **generated** manifest: every resource/operation and trigger, each described declaratively by a `shape`. Build output from `n8n-codegen` — do not hand-edit.
|
|
73
|
+
- `nodes/ServiceTitan/v1/transport/config.ts` — the `TransportConfig` the engine reads: credential key, base URL, pagination/cursor rules, and `pathContext` (maps the credential's `tenantId` into the `{tenant}` path placeholder).
|
|
74
|
+
- `nodes/ServiceTitan/v1/*.node.ts` + `descriptions/` — the action and trigger node wrappers, which call the engine's `router` / `pollRouter` and `getActionProperties` / `getTriggerProperties`.
|
|
75
|
+
- `credentials/` — the ServiceTitan API credential.
|
|
75
76
|
|
|
76
|
-
|
|
77
|
+
The engine compiles the manifest into n8n operations, poll triggers, property descriptions, and the authenticated HTTP transport. Adding or refreshing coverage is a codegen regenerate + rebuild (see the [repo root README](../../README.md#how-the-nodes-are-generated)), not a hand-edit.
|
|
77
78
|
|
|
78
79
|
## Custom fields behavior
|
|
79
80
|
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ServiceTitanTriggerV1 = void 0;
|
|
4
|
-
|
|
4
|
+
/* eslint-disable @n8n/community-nodes/no-restricted-imports --
|
|
5
|
+
* This is the best solution to share core functionality across integrations
|
|
6
|
+
*/
|
|
7
|
+
const n8n_nodes_core_1 = require("@thegraphitelab/n8n-nodes-core");
|
|
5
8
|
const trigger_description_1 = require("./descriptions/trigger.description");
|
|
6
9
|
const methods_1 = require("./methods/methods");
|
|
7
10
|
const transport_1 = require("./transport");
|
|
@@ -17,7 +20,7 @@ class ServiceTitanTriggerV1 {
|
|
|
17
20
|
this.methods = methods_1.serviceTitanMethods;
|
|
18
21
|
}
|
|
19
22
|
async poll() {
|
|
20
|
-
return (0,
|
|
23
|
+
return (0, n8n_nodes_core_1.pollRouter)(this, manifest_1.serviceTitanV1Manifest, transport_1.serviceTitanTransport);
|
|
21
24
|
}
|
|
22
25
|
}
|
|
23
26
|
exports.ServiceTitanTriggerV1 = ServiceTitanTriggerV1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceTitanTriggerV1.node.js","sourceRoot":"","sources":["../../../../nodes/ServiceTitan/v1/ServiceTitanTriggerV1.node.ts"],"names":[],"mappings":";;;AAOA,
|
|
1
|
+
{"version":3,"file":"ServiceTitanTriggerV1.node.js","sourceRoot":"","sources":["../../../../nodes/ServiceTitan/v1/ServiceTitanTriggerV1.node.ts"],"names":[],"mappings":";;;AAOA;;GAEG;AACH,mEAA4D;AAC5D,4EAAwE;AACxE,+CAAwD;AACxD,2CAAoD;AACpD,yCAAoD;AAEpD;;0FAE0F;AAC1F,MAAa,qBAAqB;IAC9B,WAAW,CAAuB;IAElC,OAAO,CAAC;IAER,YAAY,eAAyC;QACjD,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,wCAAkB,EAAE,CAAC;QACjE,IAAI,CAAC,OAAO,GAAG,6BAAmB,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,IAAI;QACN,OAAO,IAAA,2BAAU,EAAC,IAAI,EAAE,iCAAsB,EAAE,iCAAqB,CAAC,CAAC;IAC3E,CAAC;CACJ;AAbD,sDAaC"}
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ServiceTitanV1 = void 0;
|
|
4
4
|
const node_description_1 = require("./descriptions/node.description");
|
|
5
|
-
|
|
5
|
+
/* eslint-disable @n8n/community-nodes/no-restricted-imports --
|
|
6
|
+
* This is the best solution to share core functionality across integrations
|
|
7
|
+
*/
|
|
8
|
+
const n8n_nodes_core_1 = require("@thegraphitelab/n8n-nodes-core");
|
|
6
9
|
const transport_1 = require("./transport");
|
|
7
10
|
const manifest_1 = require("./manifest");
|
|
8
11
|
/* eslint-disable @n8n/community-nodes/icon-validation --
|
|
@@ -14,7 +17,7 @@ class ServiceTitanV1 {
|
|
|
14
17
|
this.description = { ...baseDescription, ...node_description_1.description };
|
|
15
18
|
}
|
|
16
19
|
async execute() {
|
|
17
|
-
return await (0,
|
|
20
|
+
return await (0, n8n_nodes_core_1.router)(this, manifest_1.serviceTitanV1Manifest, transport_1.serviceTitanTransport);
|
|
18
21
|
}
|
|
19
22
|
}
|
|
20
23
|
exports.ServiceTitanV1 = ServiceTitanV1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceTitanV1.node.js","sourceRoot":"","sources":["../../../../nodes/ServiceTitan/v1/ServiceTitanV1.node.ts"],"names":[],"mappings":";;;AAOA,sEAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"ServiceTitanV1.node.js","sourceRoot":"","sources":["../../../../nodes/ServiceTitan/v1/ServiceTitanV1.node.ts"],"names":[],"mappings":";;;AAOA,sEAA8D;AAC9D;;GAEG;AACH,mEAAwD;AACxD,2CAAoD;AACpD,yCAAoD;AACpD;;0FAE0F;AAC1F,MAAa,cAAc;IACvB,WAAW,CAAuB;IAClC,YAAY,eAAyC;QACjD,IAAI,CAAC,WAAW,GAAG,EAAE,GAAG,eAAe,EAAE,GAAG,8BAAW,EAAE,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAO,MAAM,IAAA,uBAAM,EACf,IAAI,EACJ,iCAAsB,EACtB,iCAAqB,CACxB,CAAC;IACN,CAAC;CACJ;AAbD,wCAaC"}
|
|
@@ -3,7 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.description = void 0;
|
|
4
4
|
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
|
|
5
5
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
-
|
|
6
|
+
/* eslint-disable @n8n/community-nodes/no-restricted-imports --
|
|
7
|
+
* This is the best solution to share core functionality across integrations
|
|
8
|
+
*/
|
|
9
|
+
const n8n_nodes_core_1 = require("@thegraphitelab/n8n-nodes-core");
|
|
7
10
|
const transport_1 = require("../transport");
|
|
8
11
|
const manifest_1 = require("../manifest");
|
|
9
12
|
exports.description = {
|
|
@@ -36,6 +39,6 @@ exports.description = {
|
|
|
36
39
|
Accept: "application/json",
|
|
37
40
|
},
|
|
38
41
|
},
|
|
39
|
-
properties: (0,
|
|
42
|
+
properties: (0, n8n_nodes_core_1.getActionProperties)(manifest_1.serviceTitanV1Manifest, transport_1.serviceTitanTransport, "customer"),
|
|
40
43
|
};
|
|
41
44
|
//# sourceMappingURL=node.description.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.description.js","sourceRoot":"","sources":["../../../../../nodes/ServiceTitan/v1/descriptions/node.description.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,+CAAyE;AAEzE,
|
|
1
|
+
{"version":3,"file":"node.description.js","sourceRoot":"","sources":["../../../../../nodes/ServiceTitan/v1/descriptions/node.description.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,+CAAyE;AAEzE;;GAEG;AACH,mEAAqE;AACrE,4CAAqD;AACrD,0CAAqD;AAExC,QAAA,WAAW,GAAyB;IAC7C,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACF,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,4BAA4B;KACrC;IACD,KAAK,EAAE,CAAC,WAAW,CAAC;IACpB,OAAO,EAAE,CAAC;IACV,QAAQ,EACJ,iFAAiF;IACrF,WAAW,EAAE,oCAAoC;IACjD,QAAQ,EAAE;QACN,IAAI,EAAE,cAAc;KACvB;IACD,YAAY,EAAE,IAAI;IAClB,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;IACnC,WAAW,EAAE;QACT;YACI,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,IAAI;SACjB;KACJ;IACD,eAAe,EAAE;QACb,OAAO,EACH,oHAAoH;QACxH,OAAO,EAAE;YACL,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC7B;KACJ;IACD,UAAU,EAAE,IAAA,oCAAmB,EAC3B,iCAAsB,EACtB,iCAAqB,EACrB,UAAU,CACb;CACJ,CAAC"}
|
|
@@ -3,7 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.triggerDescription = void 0;
|
|
4
4
|
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
|
|
5
5
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
-
|
|
6
|
+
/* eslint-disable @n8n/community-nodes/no-restricted-imports --
|
|
7
|
+
* This is the best solution to share core functionality across integrations
|
|
8
|
+
*/
|
|
9
|
+
const n8n_nodes_core_1 = require("@thegraphitelab/n8n-nodes-core");
|
|
7
10
|
const transport_1 = require("../transport");
|
|
8
11
|
const manifest_1 = require("../manifest");
|
|
9
12
|
exports.triggerDescription = {
|
|
@@ -30,6 +33,6 @@ exports.triggerDescription = {
|
|
|
30
33
|
required: true,
|
|
31
34
|
},
|
|
32
35
|
],
|
|
33
|
-
properties: (0,
|
|
36
|
+
properties: (0, n8n_nodes_core_1.getTriggerProperties)(manifest_1.serviceTitanV1Manifest, transport_1.serviceTitanTransport, "customer"),
|
|
34
37
|
};
|
|
35
38
|
//# sourceMappingURL=trigger.description.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger.description.js","sourceRoot":"","sources":["../../../../../nodes/ServiceTitan/v1/descriptions/trigger.description.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,+CAAyE;AACzE,
|
|
1
|
+
{"version":3,"file":"trigger.description.js","sourceRoot":"","sources":["../../../../../nodes/ServiceTitan/v1/descriptions/trigger.description.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,+CAAyE;AACzE;;GAEG;AACH,mEAAsE;AACtE,4CAAqD;AACrD,0CAAqD;AAExC,QAAA,kBAAkB,GAAyB;IACpD,WAAW,EAAE,sBAAsB;IACnC,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE;QACF,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,4BAA4B;KACrC;IACD,KAAK,EAAE,CAAC,SAAS,CAAC;IAClB,OAAO,EAAE,CAAC;IACV,WAAW,EACP,sEAAsE;IAC1E,QAAQ,EACJ,iFAAiF;IACrF,QAAQ,EAAE;QACN,IAAI,EAAE,sBAAsB;KAC/B;IACD,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,IAAI;IAClB,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;IACnC,WAAW,EAAE;QACT;YACI,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,IAAI;SACjB;KACJ;IACD,UAAU,EAAE,IAAA,qCAAoB,EAC5B,iCAAsB,EACtB,iCAAqB,EACrB,UAAU,CACb;CACJ,CAAC"}
|