@transai/connector-runner-dummy-node 0.1.2 → 0.2.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 (56) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/index.cjs +1 -1
  3. package/index.cjs.map +1 -1
  4. package/index.js +1 -1
  5. package/libs/connector-runtime-sdk/src/lib/sdk/files.sdk.interface.d.ts +18 -0
  6. package/libs/connector-runtime-sdk/src/lib/sdk/http-client.interface.d.ts +46 -0
  7. package/libs/connector-runtime-sdk/src/lib/sdk/index.d.ts +3 -0
  8. package/libs/connector-runtime-sdk/src/lib/sdk/offset-store.sdk.interface.d.ts +1 -0
  9. package/libs/connector-runtime-sdk/src/lib/sdk/processing.sdk.interface.d.ts +1 -0
  10. package/libs/connector-runtime-sdk/src/lib/sdk/sdk.interface.d.ts +15 -0
  11. package/libs/connector-runtime-sdk/src/lib/sdk/sender.sdk.interface.d.ts +2 -2
  12. package/libs/connector-runtime-sdk/src/lib/sdk/telemetry.sdk.interface.d.ts +15 -0
  13. package/libs/types/src/lib/http-status-codes.enum.d.ts +2 -1
  14. package/libs/types/src/lib/management-api/connector/connector.interface.d.ts +14 -102
  15. package/libs/types/src/lib/management-api/connector/connectors.interface.d.ts +14 -102
  16. package/libs/types/src/lib/management-api/dataset/collection.interface.d.ts +2 -8
  17. package/libs/types/src/lib/management-api/dataset/dataset.interface.d.ts +43 -659
  18. package/libs/types/src/lib/management-api/dataset/datasets.interface.d.ts +43 -659
  19. package/libs/types/src/lib/management-api/dataset/dimension.interface.d.ts +13 -167
  20. package/libs/types/src/lib/management-api/dataset/dimensions.interface.d.ts +13 -167
  21. package/libs/types/src/lib/management-api/dataset/filter.interface.d.ts +4 -24
  22. package/libs/types/src/lib/management-api/dataset/measure.interface.d.ts +5 -45
  23. package/libs/types/src/lib/management-api/dataset/measures.interface.d.ts +5 -45
  24. package/libs/types/src/lib/management-api/dataset/meta.interface.d.ts +1 -1
  25. package/libs/types/src/lib/management-api/dataset/pre-aggregate.interface.d.ts +10 -38
  26. package/libs/types/src/lib/management-api/dataset/pre-aggregations.interface.d.ts +11 -39
  27. package/libs/types/src/lib/management-api/dataset/relation.interface.d.ts +3 -27
  28. package/libs/types/src/lib/management-api/dataset/relations.interface.d.ts +3 -27
  29. package/libs/types/src/lib/management-api/dataset/segment.interface.d.ts +5 -33
  30. package/libs/types/src/lib/management-api/dataset/segments.interface.d.ts +5 -33
  31. package/libs/types/src/lib/management-api/dataset/switch.interface.d.ts +6 -56
  32. package/libs/types/src/lib/management-api/dataset/when-item.interface.d.ts +5 -31
  33. package/libs/types/src/lib/management-api/dataset/when-items.interface.d.ts +5 -31
  34. package/libs/types/src/lib/management-api/event-origin.interface.d.ts +2 -0
  35. package/libs/types/src/lib/management-api/index.d.ts +1 -1
  36. package/libs/types/src/lib/management-api/semantic-trigger/custom-cron-trigger-record.interface.d.ts +6 -0
  37. package/libs/types/src/lib/management-api/semantic-trigger/index.d.ts +1 -0
  38. package/libs/types/src/lib/management-api/semantic-trigger/semantic-trigger-filter.interface.d.ts +3 -11
  39. package/libs/types/src/lib/management-api/semantic-trigger/semantic-trigger-filters.interface.d.ts +4 -12
  40. package/libs/types/src/lib/management-api/semantic-trigger/semantic-trigger.interface.d.ts +7 -46
  41. package/libs/types/src/lib/management-api/semantic-trigger/semantic-triggers.interface.d.ts +7 -47
  42. package/libs/types/src/lib/management-api/template-implementation-overrides.interface.d.ts +65 -1069
  43. package/libs/types/src/lib/management-api/template-implementation.interface.d.ts +132 -2685
  44. package/libs/types/src/lib/management-api/template.interface.d.ts +65 -1079
  45. package/libs/types/src/lib/management-api/type-enums.d.ts +2 -2
  46. package/libs/types/src/lib/management-api/web/generic-filter.dto.d.ts +37 -0
  47. package/libs/types/src/lib/management-api/{pagination → web}/index.d.ts +1 -0
  48. package/libs/types/src/lib/management-api/workflow/action.interface.d.ts +13 -48
  49. package/libs/types/src/lib/management-api/workflow/offset.interface.d.ts +1 -3
  50. package/libs/types/src/lib/management-api/workflow/trigger-types.interface.d.ts +10 -1
  51. package/libs/types/src/lib/management-api/workflow/workflow-definition.interface.d.ts +9 -1
  52. package/libs/types/src/lib/management-api/workflow/workflow-run.d.ts +7 -2
  53. package/libs/types/src/lib/management-api/workflow/workflow.drawing.d.ts +2 -1
  54. package/libs/types/src/lib/types.d.ts +7 -1
  55. package/package.json +10 -1
  56. /package/libs/types/src/lib/management-api/{pagination → web}/paginated-response.interface.d.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,32 @@
1
+ ## 0.3.0 (2025-11-26)
2
+
3
+ ### 🚀 Features
4
+
5
+ - fix connector packages publish ([9b6c43a5](https://github.com/xip-online-applications/xod-core/commit/9b6c43a5))
6
+ - fix connector packages publish ([24714951](https://github.com/xip-online-applications/xod-core/commit/24714951))
7
+
8
+ ### 🧱 Updated Dependencies
9
+
10
+ - Updated @transai/connector-runtime-sdk to 0.2.0
11
+
12
+ ### ❤️ Thank You
13
+
14
+ - Youri Lefers @yourilefers
15
+
16
+ ## 0.2.0 (2025-11-19)
17
+
18
+ ### 🚀 Features
19
+
20
+ - fix connector packages publish ([517d2fd2](https://github.com/xip-online-applications/xod-core/commit/517d2fd2))
21
+
22
+ ### 🧱 Updated Dependencies
23
+
24
+ - Updated @transai/connector-runtime-sdk to 0.1.0
25
+
26
+ ### ❤️ Thank You
27
+
28
+ - Youri Lefers @yourilefers
29
+
1
30
  # Changelog
2
31
 
3
32
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
package/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var d=Object.create;var c=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var I=(n,o)=>{for(var e in o)c(n,e,{get:o[e],enumerable:!0})},p=(n,o,e,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of C(o))!u.call(n,t)&&t!==e&&c(n,t,{get:()=>o[t],enumerable:!(r=g(o,t))||r.enumerable});return n};var h=(n,o,e)=>(e=n!=null?d(b(n)):{},p(o||!n||!n.__esModule?c(e,"default",{value:n,enumerable:!0}):e,n)),y=n=>p(c({},"__esModule",{value:!0}),n);var v={};I(v,{ConnectorRunnerDummyNode:()=>f});module.exports=y(v);var s=h(require("node:process")),a=class{constructor(o,e){this.#o="connector-runtime";this.init=()=>Promise.resolve();this.start=()=>Promise.resolve();this.stop=()=>Promise.resolve();this.#e=e,s.on?s.on("message",r=>{r.cmd===this.#o&&e.logger.verbose(`${s.pid} Received message from parent process:`,r)}):e.logger.warn("IPC channel is not available. process.on is undefined."),s.send||e.logger.warn("IPC channel is not available. process.send is undefined."),o.actions?.forEach(r=>{if(r.config.templates===void 0)return;let t={};Object.entries(r.config.templates).forEach(([i,l])=>{try{t[i]=e.templating.compile(l)}catch(m){e.logger.error(`Error compiling template ${i} for action ${r.identifier}`,m)}}),r.config.parsedTemplates=t})}#o;#e;set callbackFunction(o){this.connectorSDK.receiver.registerCallback(this.#r(o))}get connectorSDK(){return this.#e}#r(o){return async e=>{let r=this.#e.receiver.getActionConfig(e);return r?o(e,r):this.#e.receiver.responses.badRequest("Action not found")(e)}}};var f=class extends a{constructor(){super(...arguments);this.CONNECTOR_INSTANCE="XOD_CONNECTOR_DUMMY_NODE_CONFIG";this.init=async()=>{let{config:e}=this.connectorSDK,r=e.failProbability||0;r>0&&this.connectorSDK.logger.debug("Fail probability set to",r);let t=()=>Math.random()<r;this.callbackFunction=async(i,l)=>(this.connectorSDK.logger.info("Received message: ",i.testRun?"(test run)":"",i.eventId,i.payload),t()?(this.connectorSDK.logger.error("Dummy process failed"),this.connectorSDK.receiver.responses.internalServerError("Dummy process failed")(i)):this.connectorSDK.receiver.responses.ok()(i))}}};0&&(module.exports={ConnectorRunnerDummyNode});
1
+ "use strict";var d=Object.create;var c=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var I=(n,o)=>{for(var e in o)c(n,e,{get:o[e],enumerable:!0})},l=(n,o,e,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of C(o))!u.call(n,t)&&t!==e&&c(n,t,{get:()=>o[t],enumerable:!(r=g(o,t))||r.enumerable});return n};var h=(n,o,e)=>(e=n!=null?d(b(n)):{},l(o||!n||!n.__esModule?c(e,"default",{value:n,enumerable:!0}):e,n)),y=n=>l(c({},"__esModule",{value:!0}),n);var v={};I(v,{ConnectorRunnerDummyNode:()=>f});module.exports=y(v);var s=h(require("node:process")),a=class{constructor(o,e){this.#o="connector-runtime";this.init=()=>Promise.resolve();this.start=()=>Promise.resolve();this.stop=()=>Promise.resolve();this.#e=e,s.on?s.on("message",r=>{r.cmd===this.#o&&e.logger.verbose(`${s.pid} Received message from parent process:`,r)}):e.logger.warn("IPC channel is not available. process.on is undefined."),s.send||e.logger.warn("IPC channel is not available. process.send is undefined."),o.actions?.forEach(r=>{if(r.config.templates===void 0)return;let t={};Object.entries(r.config.templates).forEach(([i,p])=>{try{t[i]=e.templating.compile(p)}catch(m){e.logger.error(`Error compiling template ${i} for action ${r.identifier}`,m)}}),r.config.parsedTemplates=t})}#o;#e;set callbackFunction(o){this.connectorSDK.receiver.registerCallback(this.#r(o))}get connectorSDK(){return this.#e}#r(o){return async e=>{let r=this.#e.receiver.getActionConfig(e);return r?o(e,r):this.#e.receiver.responses.badRequest("Action not found")(e)}}};var f=class extends a{constructor(){super(...arguments);this.CONNECTOR_INSTANCE="XOD_CONNECTOR_DUMMY_NODE_CONFIG";this.init=async()=>{let{config:e}=this.connectorSDK,r=e.failProbability||0;r>0&&this.connectorSDK.logger.debug("Fail probability set to",r);let t=()=>Math.random()<r;this.callbackFunction=async(i,p)=>(this.connectorSDK.logger.info("Received message: ",i.testRun?"(test run)":"",i.eventId,i.payload),t()?(this.connectorSDK.logger.error("Dummy process failed"),this.connectorSDK.receiver.responses.internalServerError("Dummy process failed")(i)):this.connectorSDK.receiver.responses.ok()(i))}}};0&&(module.exports={ConnectorRunnerDummyNode});
2
2
  //# sourceMappingURL=index.cjs.map
package/index.cjs.map CHANGED
@@ -3,5 +3,5 @@
3
3
  "sources": ["../../../libs/connector-runner-dummy-node/src/index.ts", "../../../libs/connector-runtime-sdk/src/lib/connector-runtime.ts", "../../../libs/connector-runner-dummy-node/src/lib/connector-runner-dummy-node.ts"],
4
4
  "sourcesContent": ["export * from './lib/connector-runner-dummy-node';\n", "import * as process from 'node:process';\n\nimport {\n KafkaCallbackResponse,\n BaseConnectorConfig,\n ActionInterface,\n ConnectorInterface,\n XodJobType,\n} from '@xip-online-data/types';\n\nimport { ConnectorRuntimeInterface } from './connector-runtime.interface';\nimport { CompileDelegate, ConnectorSDKInterface } from './sdk';\n\nexport interface IpcMessage {\n cmd: string;\n message: string;\n}\n\nexport abstract class ConnectorRuntimeSDK<\n T extends BaseConnectorConfig = BaseConnectorConfig,\n> implements ConnectorRuntimeInterface\n{\n readonly #IPC_CHANNEL = 'connector-runtime';\n\n readonly #connectorSDK: ConnectorSDKInterface<T>;\n\n constructor(\n connector: ConnectorInterface,\n connectorSDK: ConnectorSDKInterface,\n ) {\n this.#connectorSDK = connectorSDK as ConnectorSDKInterface<T>;\n\n if (process.on) {\n process.on('message', (message: IpcMessage) => {\n if (message.cmd === this.#IPC_CHANNEL) {\n connectorSDK.logger.verbose(\n `${process.pid} Received message from parent process:`,\n message,\n );\n }\n });\n } else {\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.on is undefined.',\n );\n }\n\n if (!process.send) {\n // Check if process.send is available\n connectorSDK.logger.warn(\n 'IPC channel is not available. process.send is undefined.',\n );\n }\n\n // eslint-disable-next-line no-restricted-syntax\n connector.actions?.forEach((action: ActionInterface) => {\n if (action.config['templates'] === undefined) {\n return;\n }\n\n const containers: {\n [key: string]: CompileDelegate;\n } = {};\n\n Object.entries(action.config['templates']).forEach(([key, value]) => {\n try {\n // eslint-disable-next-line security/detect-object-injection\n containers[key] = connectorSDK.templating.compile(value);\n } catch (error: unknown) {\n connectorSDK.logger.error(\n `Error compiling template ${key} for action ${action.identifier}`,\n error,\n );\n }\n });\n\n // eslint-disable-next-line no-param-reassign\n action.config['parsedTemplates'] = containers;\n });\n }\n\n public init: () => Promise<void> = () => Promise.resolve();\n\n public start: () => Promise<void> = () => Promise.resolve();\n\n public stop: () => Promise<void> = () => Promise.resolve();\n\n set callbackFunction(\n callback: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ) {\n this.connectorSDK.receiver.registerCallback(\n this.#enrichWithActionConfig(callback),\n );\n }\n\n protected get connectorSDK(): ConnectorSDKInterface<T> {\n return this.#connectorSDK;\n }\n\n #enrichWithActionConfig(\n callbackFunction: (\n message: XodJobType,\n action: ActionInterface,\n ) => Promise<KafkaCallbackResponse>,\n ): (message: XodJobType) => Promise<KafkaCallbackResponse> {\n return async (message: XodJobType) => {\n const action = this.#connectorSDK.receiver.getActionConfig(message);\n if (!action) {\n return this.#connectorSDK.receiver.responses.badRequest(\n 'Action not found',\n )(message);\n }\n return callbackFunction(message, action);\n };\n }\n}\n", "import { ConnectorRuntimeSDK } from '@transai/connector-runtime-sdk';\nimport {\n ActionInterface,\n BaseConnectorConfig,\n KafkaCallbackResponse,\n XodJobType,\n} from '@xip-online-data/types';\n\nexport class ConnectorRunnerDummyNode extends ConnectorRuntimeSDK<\n {\n failProbability?: number;\n } & BaseConnectorConfig\n> {\n readonly CONNECTOR_INSTANCE: string = 'XOD_CONNECTOR_DUMMY_NODE_CONFIG';\n\n override init = async (): Promise<void> => {\n const { config } = this.connectorSDK;\n\n const failProbability = config.failProbability || 0.0;\n if (failProbability > 0) {\n this.connectorSDK.logger.debug(\n 'Fail probability set to',\n failProbability,\n );\n }\n\n const dummyProcessFailed = (): boolean => {\n return Math.random() < failProbability;\n };\n\n this.callbackFunction = async (\n message: XodJobType,\n action: ActionInterface,\n ): Promise<KafkaCallbackResponse> => {\n this.connectorSDK.logger.info(\n 'Received message: ',\n message.testRun ? '(test run)' : '',\n message.eventId,\n message.payload,\n );\n\n if (dummyProcessFailed()) {\n this.connectorSDK.logger.error('Dummy process failed');\n return this.connectorSDK.receiver.responses.internalServerError(\n 'Dummy process failed',\n )(message);\n }\n\n return this.connectorSDK.receiver.responses.ok()(message);\n };\n };\n}\n"],
5
5
  "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8BAAAE,IAAA,eAAAC,EAAAH,GCAA,IAAAI,EAAyB,2BAkBHC,EAAf,KAGP,CAKE,YACEC,EACAC,EACA,CAPF,KAASC,GAAe,oBA2DxB,KAAO,KAA4B,IAAM,QAAQ,QAAQ,EAEzD,KAAO,MAA6B,IAAM,QAAQ,QAAQ,EAE1D,KAAO,KAA4B,IAAM,QAAQ,QAAQ,EAvDvD,KAAKC,GAAgBF,EAET,KACF,KAAG,UAAYG,GAAwB,CACzCA,EAAQ,MAAQ,KAAKF,IACvBD,EAAa,OAAO,QAClB,GAAW,KAAG,yCACdG,CACF,CAEJ,CAAC,EAEDH,EAAa,OAAO,KAClB,wDACF,EAGW,QAEXA,EAAa,OAAO,KAClB,0DACF,EAIFD,EAAU,SAAS,QAASK,GAA4B,CACtD,GAAIA,EAAO,OAAO,YAAiB,OACjC,OAGF,IAAMC,EAEF,CAAC,EAEL,OAAO,QAAQD,EAAO,OAAO,SAAY,EAAE,QAAQ,CAAC,CAACE,EAAKC,CAAK,IAAM,CACnE,GAAI,CAEFF,EAAWC,CAAG,EAAIN,EAAa,WAAW,QAAQO,CAAK,CACzD,OAASC,EAAgB,CACvBR,EAAa,OAAO,MAClB,4BAA4BM,CAAG,eAAeF,EAAO,UAAU,GAC/DI,CACF,CACF,CACF,CAAC,EAGDJ,EAAO,OAAO,gBAAqBC,CACrC,CAAC,CACH,CAzDSJ,GAEAC,GA+DT,IAAI,iBACFO,EAIA,CACA,KAAK,aAAa,SAAS,iBACzB,KAAKC,GAAwBD,CAAQ,CACvC,CACF,CAEA,IAAc,cAAyC,CACrD,OAAO,KAAKP,EACd,CAEAQ,GACEC,EAIyD,CACzD,MAAO,OAAOR,GAAwB,CACpC,IAAMC,EAAS,KAAKF,GAAc,SAAS,gBAAgBC,CAAO,EAClE,OAAKC,EAKEO,EAAiBR,EAASC,CAAM,EAJ9B,KAAKF,GAAc,SAAS,UAAU,WAC3C,kBACF,EAAEC,CAAO,CAGb,CACF,CACF,EC9GO,IAAMS,EAAN,cAAuCC,CAI5C,CAJK,kCAKL,KAAS,mBAA6B,kCAEtC,KAAS,KAAO,SAA2B,CACzC,GAAM,CAAE,OAAAC,CAAO,EAAI,KAAK,aAElBC,EAAkBD,EAAO,iBAAmB,EAC9CC,EAAkB,GACpB,KAAK,aAAa,OAAO,MACvB,0BACAA,CACF,EAGF,IAAMC,EAAqB,IAClB,KAAK,OAAO,EAAID,EAGzB,KAAK,iBAAmB,MACtBE,EACAC,KAEA,KAAK,aAAa,OAAO,KACvB,qBACAD,EAAQ,QAAU,aAAe,GACjCA,EAAQ,QACRA,EAAQ,OACV,EAEID,EAAmB,GACrB,KAAK,aAAa,OAAO,MAAM,sBAAsB,EAC9C,KAAK,aAAa,SAAS,UAAU,oBAC1C,sBACF,EAAEC,CAAO,GAGJ,KAAK,aAAa,SAAS,UAAU,GAAG,EAAEA,CAAO,EAE5D,EACF",
6
- "names": ["src_exports", "__export", "ConnectorRunnerDummyNode", "__toCommonJS", "process", "ConnectorRuntimeSDK", "connector", "connectorSDK", "#IPC_CHANNEL", "#connectorSDK", "message", "action", "containers", "key", "value", "error", "callback", "#enrichWithActionConfig", "callbackFunction", "ConnectorRunnerDummyNode", "ConnectorRuntimeSDK", "config", "failProbability", "dummyProcessFailed", "message", "action"]
6
+ "names": ["index_exports", "__export", "ConnectorRunnerDummyNode", "__toCommonJS", "process", "ConnectorRuntimeSDK", "connector", "connectorSDK", "#IPC_CHANNEL", "#connectorSDK", "message", "action", "containers", "key", "value", "error", "callback", "#enrichWithActionConfig", "callbackFunction", "ConnectorRunnerDummyNode", "ConnectorRuntimeSDK", "config", "failProbability", "dummyProcessFailed", "message", "action"]
7
7
  }
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import*as n from"node:process";var s=class{constructor(t,o){this.#o="connector-runtime";this.init=()=>Promise.resolve();this.start=()=>Promise.resolve();this.stop=()=>Promise.resolve();this.#e=o,n.on?n.on("message",e=>{e.cmd===this.#o&&o.logger.verbose(`${n.pid} Received message from parent process:`,e)}):o.logger.warn("IPC channel is not available. process.on is undefined."),n.send||o.logger.warn("IPC channel is not available. process.send is undefined."),t.actions?.forEach(e=>{if(e.config.templates===void 0)return;let i={};Object.entries(e.config.templates).forEach(([r,c])=>{try{i[r]=o.templating.compile(c)}catch(l){o.logger.error(`Error compiling template ${r} for action ${e.identifier}`,l)}}),e.config.parsedTemplates=i})}#o;#e;set callbackFunction(t){this.connectorSDK.receiver.registerCallback(this.#r(t))}get connectorSDK(){return this.#e}#r(t){return async o=>{let e=this.#e.receiver.getActionConfig(o);return e?t(o,e):this.#e.receiver.responses.badRequest("Action not found")(o)}}};var a=class extends s{constructor(){super(...arguments);this.CONNECTOR_INSTANCE="XOD_CONNECTOR_DUMMY_NODE_CONFIG";this.init=async()=>{let{config:o}=this.connectorSDK,e=o.failProbability||0;e>0&&this.connectorSDK.logger.debug("Fail probability set to",e);let i=()=>Math.random()<e;this.callbackFunction=async(r,c)=>(this.connectorSDK.logger.info("Received message: ",r.testRun?"(test run)":"",r.eventId,r.payload),i()?(this.connectorSDK.logger.error("Dummy process failed"),this.connectorSDK.receiver.responses.internalServerError("Dummy process failed")(r)):this.connectorSDK.receiver.responses.ok()(r))}}};export{a as ConnectorRunnerDummyNode};
1
+ import*as n from"node:process";var s=class{constructor(t,o){this.#o="connector-runtime";this.init=()=>Promise.resolve();this.start=()=>Promise.resolve();this.stop=()=>Promise.resolve();this.#e=o,n.on?n.on("message",e=>{e.cmd===this.#o&&o.logger.verbose(`${n.pid} Received message from parent process:`,e)}):o.logger.warn("IPC channel is not available. process.on is undefined."),n.send||o.logger.warn("IPC channel is not available. process.send is undefined."),t.actions?.forEach(e=>{if(e.config.templates===void 0)return;let i={};Object.entries(e.config.templates).forEach(([r,c])=>{try{i[r]=o.templating.compile(c)}catch(p){o.logger.error(`Error compiling template ${r} for action ${e.identifier}`,p)}}),e.config.parsedTemplates=i})}#o;#e;set callbackFunction(t){this.connectorSDK.receiver.registerCallback(this.#r(t))}get connectorSDK(){return this.#e}#r(t){return async o=>{let e=this.#e.receiver.getActionConfig(o);return e?t(o,e):this.#e.receiver.responses.badRequest("Action not found")(o)}}};var a=class extends s{constructor(){super(...arguments);this.CONNECTOR_INSTANCE="XOD_CONNECTOR_DUMMY_NODE_CONFIG";this.init=async()=>{let{config:o}=this.connectorSDK,e=o.failProbability||0;e>0&&this.connectorSDK.logger.debug("Fail probability set to",e);let i=()=>Math.random()<e;this.callbackFunction=async(r,c)=>(this.connectorSDK.logger.info("Received message: ",r.testRun?"(test run)":"",r.eventId,r.payload),i()?(this.connectorSDK.logger.error("Dummy process failed"),this.connectorSDK.receiver.responses.internalServerError("Dummy process failed")(r)):this.connectorSDK.receiver.responses.ok()(r))}}};export{a as ConnectorRunnerDummyNode};
2
2
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,18 @@
1
+ export interface FileInfo {
2
+ type: 'DIRECTORY' | 'FILE';
3
+ name: string;
4
+ size: number;
5
+ modifyTime: Date;
6
+ }
7
+ export interface FileHandleInterface {
8
+ get(): Buffer;
9
+ close(): boolean;
10
+ }
11
+ export interface FilesSDKInterface {
12
+ list(path: string): Promise<Array<FileInfo>>;
13
+ read(filePath: string): Promise<FileHandleInterface>;
14
+ write(filePath: string, data: FileHandleInterface | Buffer | string): Promise<boolean>;
15
+ delete(path: string): Promise<boolean>;
16
+ exists(path: string): Promise<boolean>;
17
+ pathAsDsn(path: string): string;
18
+ }
@@ -0,0 +1,46 @@
1
+ export interface HttpConfig {
2
+ baseUrl?: string;
3
+ contentType?: string;
4
+ timeout?: number;
5
+ }
6
+ export type HttpRequestOptions<D = string | object> = {
7
+ headers?: Record<string, string>;
8
+ params?: Record<string, string | number | boolean>;
9
+ data?: D;
10
+ withCredentials?: boolean;
11
+ };
12
+ export type HttpRequestOptionsFormatter<D = string | object> = (requestOptions: HttpRequestOptions<D>, method: HttpMethod, url: string) => Promise<HttpRequestOptions<D>> | HttpRequestOptions<D>;
13
+ export type HttpErrorResponseCallbackRequest<D = string | object> = {
14
+ client: HttpClientSDKInterface;
15
+ method: HttpMethod;
16
+ url: string;
17
+ options?: HttpRequestOptions<D>;
18
+ };
19
+ export type HttpErrorResponseCallback<R = unknown, D = string | object> = (error: HttpError, request: HttpErrorResponseCallbackRequest<D>) => HttpClientPromise<R>;
20
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
21
+ export type HttpResponseHeader = string | Array<string> | number | boolean | null;
22
+ export type HttpResponse<D = unknown> = {
23
+ status: number;
24
+ data: D;
25
+ headers?: Record<string, HttpResponseHeader>;
26
+ };
27
+ export type HttpError = {
28
+ status: number;
29
+ error?: string;
30
+ };
31
+ interface PromiseWithReason<T = unknown, R = unknown> extends Promise<T> {
32
+ then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: R) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
33
+ catch<TResult = never>(onrejected?: ((reason: R) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
34
+ }
35
+ export type HttpClientPromise<T> = PromiseWithReason<HttpResponse<T>, HttpError>;
36
+ export interface HttpClientSDKInterface {
37
+ get<R = unknown>(destination: string, options?: HttpRequestOptions): HttpClientPromise<R>;
38
+ post<R = unknown, D = string | object>(destination: string, data: D, options?: HttpRequestOptions<D>): HttpClientPromise<R>;
39
+ put<R = unknown, D = string | object>(destination: string, data: D, options?: HttpRequestOptions<D>): HttpClientPromise<R>;
40
+ patch<R = unknown, D = string | object>(destination: string, data: D, options?: HttpRequestOptions<D>): HttpClientPromise<R>;
41
+ delete<R = unknown>(destination: string, options?: HttpRequestOptions): HttpClientPromise<R>;
42
+ request<R = unknown, D = string | object>(method: HttpMethod, url: string, options?: HttpRequestOptions<D>): HttpClientPromise<R>;
43
+ setRequestOptionsFormatter<D = string | object>(formatter: HttpRequestOptionsFormatter<D>): HttpClientSDKInterface;
44
+ setErrorResponseHandler<R = unknown, D = string | object>(callback?: HttpErrorResponseCallback<R, D>): HttpClientSDKInterface;
45
+ }
46
+ export {};
@@ -1,7 +1,10 @@
1
1
  export * from './sdk.interface';
2
+ export * from './http-client.interface';
2
3
  export * from './logger.sdk.interface';
3
4
  export * from './offset-store.sdk.interface';
4
5
  export * from './processing.sdk.interface';
5
6
  export * from './receiver.sdk.interface';
6
7
  export * from './sender.sdk.interface';
8
+ export * from './telemetry.sdk.interface';
7
9
  export * from './templating.sdk.interface';
10
+ export * from './files.sdk.interface';
@@ -4,6 +4,7 @@ export interface StoredOffset {
4
4
  isoDate?: string;
5
5
  date?: string;
6
6
  rawTimestamp?: number | string;
7
+ [key: string]: string | number | undefined;
7
8
  }
8
9
  export interface OffsetStoreSDKInterface {
9
10
  getOffset(identifier: string): Promise<StoredOffset>;
@@ -1,5 +1,6 @@
1
1
  export interface IntervalHandler {
2
2
  name?: string;
3
+ onInit?: () => Promise<void> | void;
3
4
  onRun: () => Promise<void> | void;
4
5
  onStop?: () => Promise<void> | void;
5
6
  }
@@ -1,9 +1,12 @@
1
1
  import { BaseConnectorConfig } from '@xip-online-data/types';
2
+ import { FilesSDKInterface } from './files.sdk.interface';
3
+ import { HttpClientSDKInterface, HttpConfig } from './http-client.interface';
2
4
  import { LoggerSDKInterface } from './logger.sdk.interface';
3
5
  import { OffsetStoreSDKInterface } from './offset-store.sdk.interface';
4
6
  import { ProcessingSDKInterface } from './processing.sdk.interface';
5
7
  import { ReceiverSDKInterface } from './receiver.sdk.interface';
6
8
  import { SenderSDKInterface } from './sender.sdk.interface';
9
+ import { TelemetrySDKInterface } from './telemetry.sdk.interface';
7
10
  import { TemplatingSDKInterface } from './templating.sdk.interface';
8
11
  export interface ConnectorSDKInterface<T = BaseConnectorConfig> {
9
12
  get config(): T;
@@ -11,6 +14,18 @@ export interface ConnectorSDKInterface<T = BaseConnectorConfig> {
11
14
  get sender(): SenderSDKInterface;
12
15
  get receiver(): ReceiverSDKInterface;
13
16
  get templating(): TemplatingSDKInterface;
17
+ /**
18
+ * Service to schedule and manage processing tasks that need monitoring and retries.
19
+ */
14
20
  get processing(): ProcessingSDKInterface;
15
21
  get offsetStore(): OffsetStoreSDKInterface;
22
+ /**
23
+ * Ability to send telemetry data such as gauges and increments on how the connector is performing.
24
+ */
25
+ get telemetry(): TelemetrySDKInterface;
26
+ /**
27
+ * Get file service instance to access files using a specified DSN. If no DSN is provided, defaults to local file system tmp dir.
28
+ */
29
+ files(dsn?: string): FilesSDKInterface;
30
+ httpClient(httpConfig?: HttpConfig): HttpClientSDKInterface;
16
31
  }
@@ -17,6 +17,6 @@ export type Result = boolean | {
17
17
  };
18
18
  export interface SenderSDKInterface {
19
19
  metrics(metrics: Array<Metric>, metadata?: Metadata, context?: Context): Promise<Result>;
20
- metricsLegacy(metrics: Array<never>, metadata?: Metadata, context?: Context): Promise<Result>;
21
- documents(metrics: Array<object>, metadata?: Metadata, context?: Context): Promise<Result>;
20
+ metricsLegacy<T = never>(metrics: Array<T>, metadata?: Metadata, context?: Context): Promise<Result>;
21
+ documents<T = object>(documents: Array<T>, metadata?: Metadata, context?: Context): Promise<Result>;
22
22
  }
@@ -0,0 +1,15 @@
1
+ export interface TelemetrySDKInterface {
2
+ /**
3
+ * Increment a telemetry counter by 1.
4
+ */
5
+ increment(key: string): void;
6
+ /**
7
+ * Increment a telemetry counter by a specified value. 0 doesn't send any telemetry.
8
+ * A negative value will decrement the counter.
9
+ */
10
+ increment(key: string, value: number): void;
11
+ /**
12
+ * Send a gauge telemetry metric.
13
+ */
14
+ gauge(key: string, value: number): void;
15
+ }
@@ -59,5 +59,6 @@ export declare enum HttpStatusCode {
59
59
  InsufficientStorage = 507,
60
60
  LoopDetected = 508,
61
61
  NotExtended = 510,
62
- NetworkAuthenticationRequired = 511
62
+ NetworkAuthenticationRequired = 511,
63
+ Aborted = 512
63
64
  }
@@ -4,10 +4,10 @@ import { ConnectorOrigin } from '../type-enums';
4
4
  import { ActionInterface } from '../workflow';
5
5
  export declare const ConnectorSchema: z.ZodObject<{
6
6
  identifier: z.ZodString;
7
- connectorType: z.ZodNativeEnum<typeof ConfiguredConnectorTypes>;
7
+ connectorType: z.ZodEnum<typeof ConfiguredConnectorTypes>;
8
8
  name: z.ZodString;
9
9
  location: z.ZodString;
10
- config: z.ZodRecord<z.ZodString, z.ZodAny>;
10
+ config: z.ZodObject<{}, z.core.$loose>;
11
11
  enabled: z.ZodBoolean;
12
12
  actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
13
13
  identifier: z.ZodString;
@@ -17,112 +17,24 @@ export declare const ConnectorSchema: z.ZodObject<{
17
17
  config: z.ZodRecord<z.ZodString, z.ZodAny>;
18
18
  inputParameters: z.ZodArray<z.ZodObject<{
19
19
  name: z.ZodString;
20
- type: z.ZodEnum<["string", "number", "boolean", "array"]>;
20
+ description: z.ZodOptional<z.ZodString>;
21
+ type: z.ZodEnum<{
22
+ string: "string";
23
+ number: "number";
24
+ boolean: "boolean";
25
+ array: "array";
26
+ }>;
21
27
  required: z.ZodOptional<z.ZodBoolean>;
22
- items: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
23
- }, "strip", z.ZodTypeAny, {
24
- type: "string" | "number" | "boolean" | "array";
25
- name: string;
26
- required?: boolean | undefined;
27
- items?: any[] | undefined;
28
- }, {
29
- type: "string" | "number" | "boolean" | "array";
30
- name: string;
31
- required?: boolean | undefined;
32
- items?: any[] | undefined;
33
- }>, "many">;
28
+ items: z.ZodOptional<z.ZodArray<z.ZodAny>>;
29
+ }, z.core.$strip>>;
34
30
  outputParameters: z.ZodAny;
35
- mode: z.ZodOptional<z.ZodNativeEnum<typeof ConnectorOrigin>>;
31
+ mode: z.ZodOptional<z.ZodEnum<typeof ConnectorOrigin>>;
36
32
  createdAt: z.ZodOptional<z.ZodDate>;
37
33
  updatedAt: z.ZodOptional<z.ZodDate>;
38
- }, "strip", z.ZodTypeAny, {
39
- identifier: string;
40
- version: string;
41
- name: string;
42
- config: Record<string, any>;
43
- inputParameters: {
44
- type: "string" | "number" | "boolean" | "array";
45
- name: string;
46
- required?: boolean | undefined;
47
- items?: any[] | undefined;
48
- }[];
49
- mode?: ConnectorOrigin | undefined;
50
- createdAt?: Date | undefined;
51
- description?: string | undefined;
52
- outputParameters?: any;
53
- updatedAt?: Date | undefined;
54
- }, {
55
- identifier: string;
56
- version: string;
57
- name: string;
58
- config: Record<string, any>;
59
- inputParameters: {
60
- type: "string" | "number" | "boolean" | "array";
61
- name: string;
62
- required?: boolean | undefined;
63
- items?: any[] | undefined;
64
- }[];
65
- mode?: ConnectorOrigin | undefined;
66
- createdAt?: Date | undefined;
67
- description?: string | undefined;
68
- outputParameters?: any;
69
- updatedAt?: Date | undefined;
70
- }>, "many">>;
34
+ }, z.core.$strip>>>;
71
35
  createdAt: z.ZodOptional<z.ZodDate>;
72
36
  updatedAt: z.ZodOptional<z.ZodDate>;
73
- }, "strip", z.ZodTypeAny, {
74
- identifier: string;
75
- name: string;
76
- config: Record<string, any>;
77
- connectorType: ConfiguredConnectorTypes;
78
- location: string;
79
- enabled: boolean;
80
- createdAt?: Date | undefined;
81
- updatedAt?: Date | undefined;
82
- actions?: {
83
- identifier: string;
84
- version: string;
85
- name: string;
86
- config: Record<string, any>;
87
- inputParameters: {
88
- type: "string" | "number" | "boolean" | "array";
89
- name: string;
90
- required?: boolean | undefined;
91
- items?: any[] | undefined;
92
- }[];
93
- mode?: ConnectorOrigin | undefined;
94
- createdAt?: Date | undefined;
95
- description?: string | undefined;
96
- outputParameters?: any;
97
- updatedAt?: Date | undefined;
98
- }[] | undefined;
99
- }, {
100
- identifier: string;
101
- name: string;
102
- config: Record<string, any>;
103
- connectorType: ConfiguredConnectorTypes;
104
- location: string;
105
- enabled: boolean;
106
- createdAt?: Date | undefined;
107
- updatedAt?: Date | undefined;
108
- actions?: {
109
- identifier: string;
110
- version: string;
111
- name: string;
112
- config: Record<string, any>;
113
- inputParameters: {
114
- type: "string" | "number" | "boolean" | "array";
115
- name: string;
116
- required?: boolean | undefined;
117
- items?: any[] | undefined;
118
- }[];
119
- mode?: ConnectorOrigin | undefined;
120
- createdAt?: Date | undefined;
121
- description?: string | undefined;
122
- outputParameters?: any;
123
- updatedAt?: Date | undefined;
124
- }[] | undefined;
125
- }>;
37
+ }, z.core.$strip>;
126
38
  export interface ConnectorInterface<T = Partial<BaseConnectorConfig>> {
127
39
  identifier: string;
128
40
  connectorType: ConfiguredConnectorTypes;
@@ -2,10 +2,10 @@ import { z } from 'zod';
2
2
  import { ConnectorInterface } from '../index';
3
3
  export declare const ConnectorsSchema: z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodObject<{
4
4
  identifier: z.ZodString;
5
- connectorType: z.ZodNativeEnum<typeof import("../../types").ConfiguredConnectorTypes>;
5
+ connectorType: z.ZodEnum<typeof import("../../types").ConfiguredConnectorTypes>;
6
6
  name: z.ZodString;
7
7
  location: z.ZodString;
8
- config: z.ZodRecord<z.ZodString, z.ZodAny>;
8
+ config: z.ZodObject<{}, z.core.$loose>;
9
9
  enabled: z.ZodBoolean;
10
10
  actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
11
11
  identifier: z.ZodString;
@@ -15,112 +15,24 @@ export declare const ConnectorsSchema: z.ZodRecord<z.ZodString, z.ZodUnion<[z.Zo
15
15
  config: z.ZodRecord<z.ZodString, z.ZodAny>;
16
16
  inputParameters: z.ZodArray<z.ZodObject<{
17
17
  name: z.ZodString;
18
- type: z.ZodEnum<["string", "number", "boolean", "array"]>;
18
+ description: z.ZodOptional<z.ZodString>;
19
+ type: z.ZodEnum<{
20
+ string: "string";
21
+ number: "number";
22
+ boolean: "boolean";
23
+ array: "array";
24
+ }>;
19
25
  required: z.ZodOptional<z.ZodBoolean>;
20
- items: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
21
- }, "strip", z.ZodTypeAny, {
22
- type: "string" | "number" | "boolean" | "array";
23
- name: string;
24
- required?: boolean | undefined;
25
- items?: any[] | undefined;
26
- }, {
27
- type: "string" | "number" | "boolean" | "array";
28
- name: string;
29
- required?: boolean | undefined;
30
- items?: any[] | undefined;
31
- }>, "many">;
26
+ items: z.ZodOptional<z.ZodArray<z.ZodAny>>;
27
+ }, z.core.$strip>>;
32
28
  outputParameters: z.ZodAny;
33
- mode: z.ZodOptional<z.ZodNativeEnum<typeof import("../type-enums").ConnectorOrigin>>;
29
+ mode: z.ZodOptional<z.ZodEnum<typeof import("../type-enums").ConnectorOrigin>>;
34
30
  createdAt: z.ZodOptional<z.ZodDate>;
35
31
  updatedAt: z.ZodOptional<z.ZodDate>;
36
- }, "strip", z.ZodTypeAny, {
37
- identifier: string;
38
- version: string;
39
- name: string;
40
- config: Record<string, any>;
41
- inputParameters: {
42
- type: "string" | "number" | "boolean" | "array";
43
- name: string;
44
- required?: boolean | undefined;
45
- items?: any[] | undefined;
46
- }[];
47
- mode?: import("../type-enums").ConnectorOrigin | undefined;
48
- createdAt?: Date | undefined;
49
- description?: string | undefined;
50
- outputParameters?: any;
51
- updatedAt?: Date | undefined;
52
- }, {
53
- identifier: string;
54
- version: string;
55
- name: string;
56
- config: Record<string, any>;
57
- inputParameters: {
58
- type: "string" | "number" | "boolean" | "array";
59
- name: string;
60
- required?: boolean | undefined;
61
- items?: any[] | undefined;
62
- }[];
63
- mode?: import("../type-enums").ConnectorOrigin | undefined;
64
- createdAt?: Date | undefined;
65
- description?: string | undefined;
66
- outputParameters?: any;
67
- updatedAt?: Date | undefined;
68
- }>, "many">>;
32
+ }, z.core.$strip>>>;
69
33
  createdAt: z.ZodOptional<z.ZodDate>;
70
34
  updatedAt: z.ZodOptional<z.ZodDate>;
71
- }, "strip", z.ZodTypeAny, {
72
- identifier: string;
73
- name: string;
74
- config: Record<string, any>;
75
- connectorType: import("../../types").ConfiguredConnectorTypes;
76
- location: string;
77
- enabled: boolean;
78
- createdAt?: Date | undefined;
79
- updatedAt?: Date | undefined;
80
- actions?: {
81
- identifier: string;
82
- version: string;
83
- name: string;
84
- config: Record<string, any>;
85
- inputParameters: {
86
- type: "string" | "number" | "boolean" | "array";
87
- name: string;
88
- required?: boolean | undefined;
89
- items?: any[] | undefined;
90
- }[];
91
- mode?: import("../type-enums").ConnectorOrigin | undefined;
92
- createdAt?: Date | undefined;
93
- description?: string | undefined;
94
- outputParameters?: any;
95
- updatedAt?: Date | undefined;
96
- }[] | undefined;
97
- }, {
98
- identifier: string;
99
- name: string;
100
- config: Record<string, any>;
101
- connectorType: import("../../types").ConfiguredConnectorTypes;
102
- location: string;
103
- enabled: boolean;
104
- createdAt?: Date | undefined;
105
- updatedAt?: Date | undefined;
106
- actions?: {
107
- identifier: string;
108
- version: string;
109
- name: string;
110
- config: Record<string, any>;
111
- inputParameters: {
112
- type: "string" | "number" | "boolean" | "array";
113
- name: string;
114
- required?: boolean | undefined;
115
- items?: any[] | undefined;
116
- }[];
117
- mode?: import("../type-enums").ConnectorOrigin | undefined;
118
- createdAt?: Date | undefined;
119
- description?: string | undefined;
120
- outputParameters?: any;
121
- updatedAt?: Date | undefined;
122
- }[] | undefined;
123
- }>, z.ZodBoolean]>>;
35
+ }, z.core.$strip>, z.ZodBoolean]>>;
124
36
  export interface ConnectorsInterface {
125
37
  [key: string]: ConnectorInterface | boolean;
126
38
  }
@@ -2,14 +2,8 @@ import { z } from 'zod';
2
2
  import { FiltersInterface } from './filters.interface';
3
3
  export declare const CollectionSchema: z.ZodObject<{
4
4
  collection: z.ZodString;
5
- filters: z.ZodOptional<z.ZodType<FiltersInterface, z.ZodTypeDef, FiltersInterface>>;
6
- }, "strip", z.ZodTypeAny, {
7
- collection: string;
8
- filters?: FiltersInterface | undefined;
9
- }, {
10
- collection: string;
11
- filters?: FiltersInterface | undefined;
12
- }>;
5
+ filters: z.ZodOptional<z.ZodType<FiltersInterface, unknown, z.core.$ZodTypeInternals<FiltersInterface, unknown>>>;
6
+ }, z.core.$strip>;
13
7
  export interface CollectionInterface {
14
8
  collection: string;
15
9
  filters?: FiltersInterface;