@thegraphitelab/n8n-nodes-servicetitan 0.12.0 → 0.12.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.
Files changed (118) hide show
  1. package/dist/nodes/ServiceTitan/ServiceTitan.node.js +3 -3
  2. package/dist/nodes/ServiceTitan/ServiceTitan.node.js.map +1 -1
  3. package/dist/nodes/ServiceTitan/ServiceTitanTrigger.node.js +3 -3
  4. package/dist/nodes/ServiceTitan/ServiceTitanTrigger.node.js.map +1 -1
  5. package/dist/nodes/ServiceTitan/descriptions/base.d.ts +3 -0
  6. package/dist/nodes/ServiceTitan/descriptions/base.js +50 -0
  7. package/dist/nodes/ServiceTitan/descriptions/base.js.map +1 -0
  8. package/dist/nodes/ServiceTitan/v1/ServiceTitanTriggerV1.node.js +4 -2
  9. package/dist/nodes/ServiceTitan/v1/ServiceTitanTriggerV1.node.js.map +1 -1
  10. package/dist/nodes/ServiceTitan/v1/ServiceTitanV1.node.js +4 -2
  11. package/dist/nodes/ServiceTitan/v1/ServiceTitanV1.node.js.map +1 -1
  12. package/dist/nodes/ServiceTitan/v1/descriptions/node.description.d.ts +1 -19
  13. package/dist/nodes/ServiceTitan/v1/descriptions/node.description.js +5 -60
  14. package/dist/nodes/ServiceTitan/v1/descriptions/node.description.js.map +1 -1
  15. package/dist/nodes/ServiceTitan/v1/descriptions/trigger.description.js +4 -13
  16. package/dist/nodes/ServiceTitan/v1/descriptions/trigger.description.js.map +1 -1
  17. package/dist/nodes/ServiceTitan/v1/generated/manifests.d.ts +890 -0
  18. package/dist/nodes/ServiceTitan/v1/generated/manifests.js +5 -0
  19. package/dist/nodes/ServiceTitan/v1/generated/manifests.js.map +1 -0
  20. package/dist/nodes/ServiceTitan/v1/manifest.d.ts +2 -0
  21. package/dist/nodes/ServiceTitan/v1/manifest.js +9 -0
  22. package/dist/nodes/ServiceTitan/v1/manifest.js.map +1 -0
  23. package/dist/nodes/core/factories/read/get.d.ts +1 -1
  24. package/dist/nodes/core/factories/read/getArray.d.ts +1 -1
  25. package/dist/nodes/core/factories/read/getMany.d.ts +1 -1
  26. package/dist/nodes/core/factories/read/properties.d.ts +1 -1
  27. package/dist/nodes/core/factories/read/read.d.ts +1 -1
  28. package/dist/nodes/core/factories/router.d.ts +5 -0
  29. package/dist/nodes/core/factories/router.js +31 -0
  30. package/dist/nodes/core/factories/router.js.map +1 -0
  31. package/dist/nodes/core/factories/write/delete.d.ts +1 -1
  32. package/dist/nodes/core/factories/write/delete.js.map +1 -1
  33. package/dist/nodes/core/factories/write/poll.d.ts +1 -1
  34. package/dist/nodes/core/factories/write/utils.d.ts +1 -1
  35. package/dist/nodes/core/factories/write/write.d.ts +1 -1
  36. package/dist/nodes/core/helpers/array.js.map +1 -0
  37. package/dist/nodes/core/manifest/getDescription.d.ts +5 -0
  38. package/dist/nodes/core/manifest/getDescription.js +92 -0
  39. package/dist/nodes/core/manifest/getDescription.js.map +1 -0
  40. package/dist/nodes/core/manifest/getExecute.d.ts +4 -0
  41. package/dist/nodes/core/manifest/getExecute.js +84 -0
  42. package/dist/nodes/core/manifest/getExecute.js.map +1 -0
  43. package/dist/nodes/core/manifest/getPoll.d.ts +4 -0
  44. package/dist/nodes/core/manifest/getPoll.js +40 -0
  45. package/dist/nodes/core/manifest/getPoll.js.map +1 -0
  46. package/dist/nodes/core/manifest/types.d.ts +23 -0
  47. package/dist/nodes/core/{types.js.map → manifest/types.js.map} +1 -1
  48. package/dist/nodes/core/types/separate.js +3 -0
  49. package/dist/nodes/core/types/separate.js.map +1 -0
  50. package/dist/nodes/core/types/shared/dialect.d.ts +16 -0
  51. package/dist/nodes/core/{types.js → types/shared/dialect.js} +1 -1
  52. package/dist/nodes/core/types/shared/dialect.js.map +1 -0
  53. package/dist/nodes/core/types/shared/operation.d.ts +75 -0
  54. package/dist/nodes/core/types/shared/operation.js +5 -0
  55. package/dist/nodes/core/types/shared/operation.js.map +1 -0
  56. package/dist/nodes/core/types/shared/resource.d.ts +18 -0
  57. package/dist/nodes/core/types/shared/resource.js +5 -0
  58. package/dist/nodes/core/types/shared/resource.js.map +1 -0
  59. package/dist/nodes/core/types/shared/selection.d.ts +9 -0
  60. package/dist/nodes/core/types/shared/selection.js +5 -0
  61. package/dist/nodes/core/types/shared/selection.js.map +1 -0
  62. package/dist/nodes/core/types/shared/sourced.d.ts +7 -0
  63. package/dist/nodes/core/types/shared/sourced.js +3 -0
  64. package/dist/nodes/core/types/shared/sourced.js.map +1 -0
  65. package/dist/nodes/core/types/shared/trigger.d.ts +21 -0
  66. package/dist/nodes/core/types/shared/trigger.js +5 -0
  67. package/dist/nodes/core/types/shared/trigger.js.map +1 -0
  68. package/dist/package.json +1 -1
  69. package/package.json +1 -1
  70. package/dist/nodes/ServiceTitan/v1/actions/_generated/get.d.ts +0 -6
  71. package/dist/nodes/ServiceTitan/v1/actions/_generated/get.js +0 -7178
  72. package/dist/nodes/ServiceTitan/v1/actions/_generated/get.js.map +0 -1
  73. package/dist/nodes/ServiceTitan/v1/actions/_generated/triggers.d.ts +0 -6
  74. package/dist/nodes/ServiceTitan/v1/actions/_generated/triggers.js +0 -3211
  75. package/dist/nodes/ServiceTitan/v1/actions/_generated/triggers.js.map +0 -1
  76. package/dist/nodes/ServiceTitan/v1/actions/factories/read/export.d.ts +0 -4
  77. package/dist/nodes/ServiceTitan/v1/actions/factories/read/export.js +0 -9
  78. package/dist/nodes/ServiceTitan/v1/actions/factories/read/export.js.map +0 -1
  79. package/dist/nodes/ServiceTitan/v1/actions/factories/read/get.d.ts +0 -5
  80. package/dist/nodes/ServiceTitan/v1/actions/factories/read/get.js +0 -9
  81. package/dist/nodes/ServiceTitan/v1/actions/factories/read/get.js.map +0 -1
  82. package/dist/nodes/ServiceTitan/v1/actions/factories/read/getArray.d.ts +0 -5
  83. package/dist/nodes/ServiceTitan/v1/actions/factories/read/getArray.js +0 -9
  84. package/dist/nodes/ServiceTitan/v1/actions/factories/read/getArray.js.map +0 -1
  85. package/dist/nodes/ServiceTitan/v1/actions/factories/read/getMany.d.ts +0 -5
  86. package/dist/nodes/ServiceTitan/v1/actions/factories/read/getMany.js +0 -9
  87. package/dist/nodes/ServiceTitan/v1/actions/factories/read/getMany.js.map +0 -1
  88. package/dist/nodes/ServiceTitan/v1/actions/factories/write/delete.d.ts +0 -5
  89. package/dist/nodes/ServiceTitan/v1/actions/factories/write/delete.js +0 -9
  90. package/dist/nodes/ServiceTitan/v1/actions/factories/write/delete.js.map +0 -1
  91. package/dist/nodes/ServiceTitan/v1/actions/factories/write/deleteWithBody.d.ts +0 -5
  92. package/dist/nodes/ServiceTitan/v1/actions/factories/write/deleteWithBody.js +0 -11
  93. package/dist/nodes/ServiceTitan/v1/actions/factories/write/deleteWithBody.js.map +0 -1
  94. package/dist/nodes/ServiceTitan/v1/actions/factories/write/patch.d.ts +0 -5
  95. package/dist/nodes/ServiceTitan/v1/actions/factories/write/patch.js +0 -11
  96. package/dist/nodes/ServiceTitan/v1/actions/factories/write/patch.js.map +0 -1
  97. package/dist/nodes/ServiceTitan/v1/actions/factories/write/poll.d.ts +0 -6
  98. package/dist/nodes/ServiceTitan/v1/actions/factories/write/poll.js +0 -9
  99. package/dist/nodes/ServiceTitan/v1/actions/factories/write/poll.js.map +0 -1
  100. package/dist/nodes/ServiceTitan/v1/actions/factories/write/post.d.ts +0 -5
  101. package/dist/nodes/ServiceTitan/v1/actions/factories/write/post.js +0 -10
  102. package/dist/nodes/ServiceTitan/v1/actions/factories/write/post.js.map +0 -1
  103. package/dist/nodes/ServiceTitan/v1/actions/factories/write/put.d.ts +0 -5
  104. package/dist/nodes/ServiceTitan/v1/actions/factories/write/put.js +0 -11
  105. package/dist/nodes/ServiceTitan/v1/actions/factories/write/put.js.map +0 -1
  106. package/dist/nodes/ServiceTitan/v1/actions/pollRouter.d.ts +0 -2
  107. package/dist/nodes/ServiceTitan/v1/actions/pollRouter.js +0 -19
  108. package/dist/nodes/ServiceTitan/v1/actions/pollRouter.js.map +0 -1
  109. package/dist/nodes/ServiceTitan/v1/actions/router.d.ts +0 -2
  110. package/dist/nodes/ServiceTitan/v1/actions/router.js +0 -39
  111. package/dist/nodes/ServiceTitan/v1/actions/router.js.map +0 -1
  112. package/dist/nodes/ServiceTitan/v1/actions/types.d.ts +0 -1
  113. package/dist/nodes/ServiceTitan/v1/actions/types.js.map +0 -1
  114. package/dist/nodes/ServiceTitan/v1/helpers/array.js.map +0 -1
  115. /package/dist/nodes/{ServiceTitan/v1 → core}/helpers/array.d.ts +0 -0
  116. /package/dist/nodes/{ServiceTitan/v1 → core}/helpers/array.js +0 -0
  117. /package/dist/nodes/{ServiceTitan/v1/actions → core/manifest}/types.js +0 -0
  118. /package/dist/nodes/core/{types.d.ts → types/separate.d.ts} +0 -0
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceTitan = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
- const node_description_1 = require("./v1/descriptions/node.description");
5
+ const base_1 = require("./descriptions/base");
6
6
  const ServiceTitanV1_node_1 = require("./v1/ServiceTitanV1.node");
7
7
  class ServiceTitan extends n8n_workflow_1.VersionedNodeType {
8
8
  constructor() {
9
9
  const nodeVersions = {
10
- 1: new ServiceTitanV1_node_1.ServiceTitanV1(node_description_1.baseDescription),
10
+ 1: new ServiceTitanV1_node_1.ServiceTitanV1(base_1.baseDescription),
11
11
  };
12
- super(nodeVersions, node_description_1.baseDescription);
12
+ super(nodeVersions, base_1.baseDescription);
13
13
  }
14
14
  }
15
15
  exports.ServiceTitan = ServiceTitan;
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceTitan.node.js","sourceRoot":"","sources":["../../../nodes/ServiceTitan/ServiceTitan.node.ts"],"names":[],"mappings":";;;AAAA,+CAAqE;AACrE,yEAAqE;AACrE,kEAA0D;AAE1D,MAAa,YAAa,SAAQ,gCAAiB;IACjD;QACE,MAAM,YAAY,GAAuC;YACvD,CAAC,EAAE,IAAI,oCAAc,CAAC,kCAAe,CAAC;SACvC,CAAC;QAEF,KAAK,CAAC,YAAY,EAAE,kCAAe,CAAC,CAAC;IACvC,CAAC;CACF;AARD,oCAQC"}
1
+ {"version":3,"file":"ServiceTitan.node.js","sourceRoot":"","sources":["../../../nodes/ServiceTitan/ServiceTitan.node.ts"],"names":[],"mappings":";;;AAAA,+CAAqE;AACrE,8CAAsD;AACtD,kEAA0D;AAE1D,MAAa,YAAa,SAAQ,gCAAiB;IACjD;QACE,MAAM,YAAY,GAAuC;YACvD,CAAC,EAAE,IAAI,oCAAc,CAAC,sBAAe,CAAC;SACvC,CAAC;QAEF,KAAK,CAAC,YAAY,EAAE,sBAAe,CAAC,CAAC;IACvC,CAAC;CACF;AARD,oCAQC"}
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceTitanTrigger = void 0;
4
4
  const n8n_workflow_1 = require("n8n-workflow");
5
- const node_description_1 = require("./v1/descriptions/node.description");
6
5
  const ServiceTitanTriggerV1_node_1 = require("./v1/ServiceTitanTriggerV1.node");
6
+ const base_1 = require("./descriptions/base");
7
7
  class ServiceTitanTrigger extends n8n_workflow_1.VersionedNodeType {
8
8
  constructor() {
9
9
  const nodeVersions = {
10
- 1: new ServiceTitanTriggerV1_node_1.ServiceTitanTriggerV1(node_description_1.triggerBaseDescription),
10
+ 1: new ServiceTitanTriggerV1_node_1.ServiceTitanTriggerV1(base_1.triggerBaseDescription),
11
11
  };
12
- super(nodeVersions, node_description_1.triggerBaseDescription);
12
+ super(nodeVersions, base_1.triggerBaseDescription);
13
13
  }
14
14
  }
15
15
  exports.ServiceTitanTrigger = ServiceTitanTrigger;
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceTitanTrigger.node.js","sourceRoot":"","sources":["../../../nodes/ServiceTitan/ServiceTitanTrigger.node.ts"],"names":[],"mappings":";;;AAAA,+CAAqE;AACrE,yEAA4E;AAC5E,gFAAwE;AAExE,MAAa,mBAAoB,SAAQ,gCAAiB;IACtD;QACI,MAAM,YAAY,GAAuC;YACrD,CAAC,EAAE,IAAI,kDAAqB,CAAC,yCAAsB,CAAC;SACvD,CAAC;QAEF,KAAK,CAAC,YAAY,EAAE,yCAAsB,CAAC,CAAC;IAChD,CAAC;CACJ;AARD,kDAQC"}
1
+ {"version":3,"file":"ServiceTitanTrigger.node.js","sourceRoot":"","sources":["../../../nodes/ServiceTitan/ServiceTitanTrigger.node.ts"],"names":[],"mappings":";;;AAAA,+CAAqE;AACrE,gFAAwE;AACxE,8CAA6D;AAE7D,MAAa,mBAAoB,SAAQ,gCAAiB;IACtD;QACI,MAAM,YAAY,GAAuC;YACrD,CAAC,EAAE,IAAI,kDAAqB,CAAC,6BAAsB,CAAC;SACvD,CAAC;QAEF,KAAK,CAAC,YAAY,EAAE,6BAAsB,CAAC,CAAC;IAChD,CAAC;CACJ;AARD,kDAQC"}
@@ -0,0 +1,3 @@
1
+ import { INodeTypeBaseDescription } from "n8n-workflow";
2
+ export declare const baseDescription: INodeTypeBaseDescription;
3
+ export declare const triggerBaseDescription: INodeTypeBaseDescription;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.triggerBaseDescription = exports.baseDescription = void 0;
4
+ // Version-agnostic base descriptions for the ServiceTitan nodes. These live
5
+ // OUTSIDE any version folder because they describe the node *family* (name,
6
+ // icon, and which version is the default), not any single version. The
7
+ // VersionedNodeType wrappers (ServiceTitan.node.ts / ServiceTitanTrigger.node.ts)
8
+ // pass these to `super()`, so `defaultVersion` here is the single switch that
9
+ // decides which version new nodes are created on. Flip it when a new version is
10
+ // ready to become the default.
11
+ //
12
+ // Naming convention notes:
13
+ // - File basename `ServiceTitan.node.ts` must match the exported class name
14
+ // `ServiceTitan` — n8n's community-node loader does
15
+ // `new require(file)[fileBasename]()` to instantiate.
16
+ // - `description.name` is `'serviceTitan'` (camelCase of the file basename).
17
+ // n8n's picker merges trigger+action into one app tile iff
18
+ // `triggerName.replace('Trigger', '') === actionName`, so the trigger MUST be
19
+ // `'serviceTitanTrigger'` to render as a single ServiceTitan tile — and it
20
+ // therefore MUST NOT reuse the action's `name` ("serviceTitan"), or the two
21
+ // node types collide and the community loader drops one.
22
+ // - Collision risk with a future official n8n ServiceTitan node is handled by
23
+ // the npm scope: community packages are addressed as `<packageName>.<name>`,
24
+ // so `@thegraphitelab/n8n-nodes-servicetitan.serviceTitan` never collides with
25
+ // `n8n-nodes-base.serviceTitan` if n8n ever ships one.
26
+ exports.baseDescription = {
27
+ displayName: "ServiceTitan",
28
+ name: "serviceTitan",
29
+ group: ["transform"],
30
+ icon: {
31
+ light: "file:servicetitan.svg",
32
+ dark: "file:servicetitan.dark.svg",
33
+ },
34
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
35
+ description: "Interact with ServiceTitan API",
36
+ defaultVersion: 1,
37
+ };
38
+ exports.triggerBaseDescription = {
39
+ displayName: "ServiceTitan Trigger",
40
+ name: "serviceTitanTrigger",
41
+ group: ["trigger"],
42
+ icon: {
43
+ light: "file:servicetitan.svg",
44
+ dark: "file:servicetitan.dark.svg",
45
+ },
46
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
47
+ description: "Starts a workflow on ServiceTitan events",
48
+ defaultVersion: 1,
49
+ };
50
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../nodes/ServiceTitan/descriptions/base.ts"],"names":[],"mappings":";;;AAGA,4EAA4E;AAC5E,4EAA4E;AAC5E,uEAAuE;AACvE,kFAAkF;AAClF,8EAA8E;AAC9E,gFAAgF;AAChF,+BAA+B;AAC/B,EAAE;AACF,2BAA2B;AAC3B,4EAA4E;AAC5E,sDAAsD;AACtD,wDAAwD;AACxD,6EAA6E;AAC7E,6DAA6D;AAC7D,gFAAgF;AAChF,6EAA6E;AAC7E,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAC9E,+EAA+E;AAC/E,iFAAiF;AACjF,yDAAyD;AAE5C,QAAA,eAAe,GAA6B;IACrD,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,CAAC,WAAW,CAAC;IACpB,IAAI,EAAE;QACF,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,4BAA4B;KACrC;IACD,QAAQ,EAAE,8DAA8D;IACxE,WAAW,EAAE,gCAAgC;IAC7C,cAAc,EAAE,CAAC;CACpB,CAAC;AAEW,QAAA,sBAAsB,GAA6B;IAC5D,WAAW,EAAE,sBAAsB;IACnC,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,CAAC,SAAS,CAAC;IAClB,IAAI,EAAE;QACF,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,4BAA4B;KACrC;IACD,QAAQ,EAAE,8DAA8D;IACxE,WAAW,EAAE,0CAA0C;IACvD,cAAc,EAAE,CAAC;CACpB,CAAC"}
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ServiceTitanTriggerV1 = void 0;
4
- const pollRouter_1 = require("./actions/pollRouter");
4
+ const router_1 = require("../../core/factories/router");
5
5
  const trigger_description_1 = require("./descriptions/trigger.description");
6
6
  const methods_1 = require("./methods/methods");
7
+ const transport_1 = require("./transport");
8
+ const manifest_1 = require("./manifest");
7
9
  /* eslint-disable @n8n/community-nodes/icon-validation --
8
10
  Icon lives on the versioned wrapper's description/baseDescription and is merged
9
11
  in via the constructor; this static rule can't see spreads, so it false-positives. */
@@ -15,7 +17,7 @@ class ServiceTitanTriggerV1 {
15
17
  this.methods = methods_1.serviceTitanMethods;
16
18
  }
17
19
  async poll() {
18
- return pollRouter_1.pollRouter.call(this);
20
+ return (0, router_1.pollRouter)(this, manifest_1.serviceTitanV1Manifest, transport_1.serviceTitanTransport);
19
21
  }
20
22
  }
21
23
  exports.ServiceTitanTriggerV1 = ServiceTitanTriggerV1;
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceTitanTriggerV1.node.js","sourceRoot":"","sources":["../../../../nodes/ServiceTitan/v1/ServiceTitanTriggerV1.node.ts"],"names":[],"mappings":";;;AAOA,qDAAkD;AAClD,4EAAwE;AACxE,+CAAwD;AAExD;;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,uBAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACJ;AAbD,sDAaC"}
1
+ {"version":3,"file":"ServiceTitanTriggerV1.node.js","sourceRoot":"","sources":["../../../../nodes/ServiceTitan/v1/ServiceTitanTriggerV1.node.ts"],"names":[],"mappings":";;;AAOA,wDAAyD;AACzD,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,mBAAU,EAAC,IAAI,EAAE,iCAAsB,EAAE,iCAAqB,CAAC,CAAC;IAC3E,CAAC;CACJ;AAbD,sDAaC"}
@@ -2,7 +2,9 @@
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
- const router_1 = require("./actions/router");
5
+ const router_1 = require("../../core/factories/router");
6
+ const transport_1 = require("./transport");
7
+ const manifest_1 = require("./manifest");
6
8
  /* eslint-disable @n8n/community-nodes/icon-validation --
7
9
  Icon lives on the versioned wrapper's description/baseDescription and is merged
8
10
  in via the constructor; this static rule can't see spreads, so it false-positives. */
@@ -12,7 +14,7 @@ class ServiceTitanV1 {
12
14
  this.description = { ...baseDescription, ...node_description_1.description };
13
15
  }
14
16
  async execute() {
15
- return await router_1.router.call(this);
17
+ return await (0, router_1.router)(this, manifest_1.serviceTitanV1Manifest, transport_1.serviceTitanTransport);
16
18
  }
17
19
  }
18
20
  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,6CAA0C;AAE1C;;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,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ;AATD,wCASC"}
1
+ {"version":3,"file":"ServiceTitanV1.node.js","sourceRoot":"","sources":["../../../../nodes/ServiceTitan/v1/ServiceTitanV1.node.ts"],"names":[],"mappings":";;;AAOA,sEAA8D;AAC9D,wDAAqD;AACrD,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,eAAM,EAAC,IAAI,EAAE,iCAAsB,EAAE,iCAAqB,CAAC,CAAC;IAC7E,CAAC;CACJ;AATD,wCASC"}
@@ -1,20 +1,2 @@
1
- import { INodeTypeDescription, INodeTypeBaseDescription } from "n8n-workflow";
2
- export declare const baseDescription: INodeTypeBaseDescription;
3
- export declare const triggerBaseDescription: INodeTypeBaseDescription;
4
- /**
5
- * Action node for ServiceTitan.
6
- *
7
- * Naming convention notes:
8
- * - File basename `ServiceTitan.node.ts` must match the exported class name
9
- * `ServiceTitan` — n8n's community-node loader does
10
- * `new require(file)[fileBasename]()` to instantiate.
11
- * - `description.name` is `'serviceTitan'` (camelCase of the file basename).
12
- * n8n's picker merges trigger+action into one app tile iff
13
- * `triggerName.replace('Trigger', '') === actionName`, so the trigger MUST
14
- * be `'serviceTitanTrigger'` for them to render as a single ServiceTitan tile.
15
- * - Collision risk with a future official n8n ServiceTitan node is handled by
16
- * the npm scope: community packages are addressed as
17
- * `<packageName>.<name>`, so `@thegraphitelab/n8n-nodes-servicetitan.serviceTitan`
18
- * never collides with `n8n-nodes-base.serviceTitan` if n8n ever ships one.
19
- */
1
+ import { INodeTypeDescription } from "n8n-workflow";
20
2
  export declare const description: INodeTypeDescription;
@@ -1,56 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.description = exports.triggerBaseDescription = exports.baseDescription = void 0;
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
- const get_1 = require("../actions/_generated/get");
7
- exports.baseDescription = {
8
- displayName: "ServiceTitan",
9
- name: "serviceTitan",
10
- group: ["transform"],
11
- icon: {
12
- light: "file:servicetitan.svg",
13
- dark: "file:servicetitan.dark.svg",
14
- },
15
- subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
16
- description: "Interact with ServiceTitan API",
17
- defaultVersion: 1,
18
- };
19
- // Separate base description for the TRIGGER node. n8n registers node types by
20
- // the VersionedNodeType base `name`, so the trigger MUST NOT reuse the action's
21
- // `baseDescription` (name "serviceTitan") — sharing the name collides the two
22
- // node types and the community loader drops one (actions vanished, triggers
23
- // remained). Its own name "serviceTitanTrigger" keeps both registered, and the
24
- // action/trigger tile still merges since
25
- // "serviceTitanTrigger".replace("Trigger","") === "serviceTitan".
26
- exports.triggerBaseDescription = {
27
- displayName: "ServiceTitan Trigger",
28
- name: "serviceTitanTrigger",
29
- group: ["trigger"],
30
- icon: {
31
- light: "file:servicetitan.svg",
32
- dark: "file:servicetitan.dark.svg",
33
- },
34
- subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
35
- description: "Starts a workflow on ServiceTitan events",
36
- defaultVersion: 1,
37
- };
38
- /**
39
- * Action node for ServiceTitan.
40
- *
41
- * Naming convention notes:
42
- * - File basename `ServiceTitan.node.ts` must match the exported class name
43
- * `ServiceTitan` — n8n's community-node loader does
44
- * `new require(file)[fileBasename]()` to instantiate.
45
- * - `description.name` is `'serviceTitan'` (camelCase of the file basename).
46
- * n8n's picker merges trigger+action into one app tile iff
47
- * `triggerName.replace('Trigger', '') === actionName`, so the trigger MUST
48
- * be `'serviceTitanTrigger'` for them to render as a single ServiceTitan tile.
49
- * - Collision risk with a future official n8n ServiceTitan node is handled by
50
- * the npm scope: community packages are addressed as
51
- * `<packageName>.<name>`, so `@thegraphitelab/n8n-nodes-servicetitan.serviceTitan`
52
- * never collides with `n8n-nodes-base.serviceTitan` if n8n ever ships one.
53
- */
6
+ const getDescription_1 = require("../../../core/manifest/getDescription");
7
+ const transport_1 = require("../transport");
8
+ const manifest_1 = require("../manifest");
54
9
  exports.description = {
55
10
  displayName: "ServiceTitan",
56
11
  name: "serviceTitan",
@@ -81,16 +36,6 @@ exports.description = {
81
36
  Accept: "application/json",
82
37
  },
83
38
  },
84
- properties: [
85
- {
86
- displayName: "Resource",
87
- name: "resource",
88
- type: "options",
89
- noDataExpression: true,
90
- options: get_1.resourceSelectOptions,
91
- default: "customer",
92
- },
93
- ...get_1.properties,
94
- ],
39
+ properties: (0, getDescription_1.getActionProperties)(manifest_1.serviceTitanV1Manifest, transport_1.serviceTitanTransport, "customer"),
95
40
  };
96
41
  //# 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,+CAIsB;AAEtB,mDAGmC;AAEtB,QAAA,eAAe,GAA6B;IACvD,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,CAAC,WAAW,CAAC;IACpB,IAAI,EAAE;QACJ,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,4BAA4B;KACnC;IACD,QAAQ,EAAE,8DAA8D;IACxE,WAAW,EAAE,gCAAgC;IAC7C,cAAc,EAAE,CAAC;CAClB,CAAC;AAEF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,4EAA4E;AAC5E,+EAA+E;AAC/E,yCAAyC;AACzC,kEAAkE;AACrD,QAAA,sBAAsB,GAA6B;IAC9D,WAAW,EAAE,sBAAsB;IACnC,IAAI,EAAE,qBAAqB;IAC3B,KAAK,EAAE,CAAC,SAAS,CAAC;IAClB,IAAI,EAAE;QACJ,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,4BAA4B;KACnC;IACD,QAAQ,EAAE,8DAA8D;IACxE,WAAW,EAAE,0CAA0C;IACvD,cAAc,EAAE,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACU,QAAA,WAAW,GAAyB;IAC/C,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE;QACJ,KAAK,EAAE,uBAAuB;QAC9B,IAAI,EAAE,4BAA4B;KACnC;IACD,KAAK,EAAE,CAAC,WAAW,CAAC;IACpB,OAAO,EAAE,CAAC;IACV,QAAQ,EACN,iFAAiF;IACnF,WAAW,EAAE,oCAAoC;IACjD,QAAQ,EAAE;QACR,IAAI,EAAE,cAAc;KACrB;IACD,YAAY,EAAE,IAAI;IAClB,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;IACnC,WAAW,EAAE;QACX;YACE,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,IAAI;SACf;KACF;IACD,eAAe,EAAE;QACf,OAAO,EACL,oHAAoH;QACtH,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B;KACF;IACD,UAAU,EAAE;QACV;YACE,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,SAAS;YACf,gBAAgB,EAAE,IAAI;YACtB,OAAO,EAAE,2BAAqB;YAC9B,OAAO,EAAE,UAAU;SACpB;QACD,GAAG,gBAAmB;KACvB;CACF,CAAC"}
1
+ {"version":3,"file":"node.description.js","sourceRoot":"","sources":["../../../../../nodes/ServiceTitan/v1/descriptions/node.description.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,+CAAyE;AAEzE,0EAA4E;AAC5E,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,9 @@ 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
- const triggers_1 = require("../actions/_generated/triggers");
6
+ const getDescription_1 = require("../../../core/manifest/getDescription");
7
+ const transport_1 = require("../transport");
8
+ const manifest_1 = require("../manifest");
7
9
  exports.triggerDescription = {
8
10
  displayName: "ServiceTitan Trigger",
9
11
  name: "serviceTitanTrigger",
@@ -28,17 +30,6 @@ exports.triggerDescription = {
28
30
  required: true,
29
31
  },
30
32
  ],
31
- properties: [
32
- // eslint-disable-next-line n8n-nodes-base/node-param-default-missing -- default is computed from resourceSelectOptions at load time; this rule only recognizes a literal default
33
- {
34
- displayName: "Resource",
35
- name: "resource",
36
- type: "options",
37
- noDataExpression: true,
38
- default: triggers_1.resourceSelectOptions[0]?.value ?? "",
39
- options: triggers_1.resourceSelectOptions,
40
- },
41
- ...triggers_1.properties,
42
- ],
33
+ properties: (0, getDescription_1.getTriggerProperties)(manifest_1.serviceTitanV1Manifest, transport_1.serviceTitanTransport, "customer"),
43
34
  };
44
35
  //# 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,6DAGwC;AAE3B,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;QACR,iLAAiL;QACjL;YACI,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,SAAS;YACf,gBAAgB,EAAE,IAAI;YACtB,OAAO,EAAE,gCAAqB,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;YAC9C,OAAO,EAAE,gCAAqB;SACjC;QACD,GAAG,qBAAmB;KACzB;CACJ,CAAC"}
1
+ {"version":3,"file":"trigger.description.js","sourceRoot":"","sources":["../../../../../nodes/ServiceTitan/v1/descriptions/trigger.description.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,+CAAyE;AACzE,0EAA6E;AAC7E,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"}