@things-factory/integration-base 6.2.86 → 6.2.88

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 (127) hide show
  1. package/dist-server/engine/connector/echo-back-connector.js +1 -1
  2. package/dist-server/engine/connector/echo-back-connector.js.map +1 -1
  3. package/dist-server/engine/connector/echo-back-server.js +1 -1
  4. package/dist-server/engine/connector/echo-back-server.js.map +1 -1
  5. package/dist-server/engine/connector/graphql-connector.js.map +1 -1
  6. package/dist-server/engine/connector/http-connector.js.map +1 -1
  7. package/dist-server/engine/connector/mqtt-connector.js.map +1 -1
  8. package/dist-server/engine/connector/mssql-connector.js.map +1 -1
  9. package/dist-server/engine/connector/mysql-connector.js +3 -3
  10. package/dist-server/engine/connector/mysql-connector.js.map +1 -1
  11. package/dist-server/engine/connector/operato-connector.js.map +1 -1
  12. package/dist-server/engine/connector/oracle-connector.js.map +1 -1
  13. package/dist-server/engine/connector/postgresql-connector.js.map +1 -1
  14. package/dist-server/engine/connector/socket-server.js +1 -1
  15. package/dist-server/engine/connector/socket-server.js.map +1 -1
  16. package/dist-server/engine/connector/sqlite-connector.js.map +1 -1
  17. package/dist-server/engine/task/book-up-scenario.js.map +1 -1
  18. package/dist-server/engine/task/csv-readline.js.map +1 -1
  19. package/dist-server/engine/task/data-accessor.js.map +1 -1
  20. package/dist-server/engine/task/data-mapper.js.map +1 -1
  21. package/dist-server/engine/task/database-query.js.map +1 -1
  22. package/dist-server/engine/task/echo-receive.js.map +1 -1
  23. package/dist-server/engine/task/echo-send.js.map +1 -1
  24. package/dist-server/engine/task/empty-check.js.map +1 -1
  25. package/dist-server/engine/task/end.js.map +1 -1
  26. package/dist-server/engine/task/floating-point.js.map +1 -1
  27. package/dist-server/engine/task/goto.js.map +1 -1
  28. package/dist-server/engine/task/graphql-mutate.js.map +1 -1
  29. package/dist-server/engine/task/graphql-query.js.map +1 -1
  30. package/dist-server/engine/task/headless-post.js.map +1 -1
  31. package/dist-server/engine/task/headless-scrap.js.map +1 -1
  32. package/dist-server/engine/task/http-get.js.map +1 -1
  33. package/dist-server/engine/task/http-post.js.map +1 -1
  34. package/dist-server/engine/task/jsonata.js +1 -1
  35. package/dist-server/engine/task/jsonata.js.map +1 -1
  36. package/dist-server/engine/task/local-graphql-mutate.js.map +1 -1
  37. package/dist-server/engine/task/local-graphql-query.js.map +1 -1
  38. package/dist-server/engine/task/log.js.map +1 -1
  39. package/dist-server/engine/task/mqtt-publish.js.map +1 -1
  40. package/dist-server/engine/task/mqtt-subscribe.js.map +1 -1
  41. package/dist-server/engine/task/oracle-procedure.js.map +1 -1
  42. package/dist-server/engine/task/pick-pending-scenario.js.map +1 -1
  43. package/dist-server/engine/task/publish.js.map +1 -1
  44. package/dist-server/engine/task/random.js.map +1 -1
  45. package/dist-server/engine/task/reset-pending-queue.js.map +1 -1
  46. package/dist-server/engine/task/script.js.map +1 -1
  47. package/dist-server/engine/task/set-domain.js.map +1 -1
  48. package/dist-server/engine/task/sleep.js.map +1 -1
  49. package/dist-server/engine/task/socket-listener.js.map +1 -1
  50. package/dist-server/engine/task/state-read.js.map +1 -1
  51. package/dist-server/engine/task/state-write.js.map +1 -1
  52. package/dist-server/engine/task/stop-scenario.js.map +1 -1
  53. package/dist-server/engine/task/sub-scenario.js.map +1 -1
  54. package/dist-server/engine/task/switch-goto.js.map +1 -1
  55. package/dist-server/engine/task/switch-range-goto.js.map +1 -1
  56. package/dist-server/engine/task/switch-range-scenario.js.map +1 -1
  57. package/dist-server/engine/task/switch-range-set.js.map +1 -1
  58. package/dist-server/engine/task/switch-scenario.js.map +1 -1
  59. package/dist-server/engine/task/switch-set.js.map +1 -1
  60. package/dist-server/engine/task/throw.js.map +1 -1
  61. package/dist-server/engine/task/variables.js.map +1 -1
  62. package/dist-server/engine/types.js.map +1 -1
  63. package/dist-server/service/connection/connection-type.js +34 -5
  64. package/dist-server/service/connection/connection-type.js.map +1 -1
  65. package/dist-server/service/step/step-type.js +41 -28
  66. package/dist-server/service/step/step-type.js.map +1 -1
  67. package/dist-server/tsconfig.tsbuildinfo +1 -1
  68. package/package.json +8 -7
  69. package/server/engine/connector/echo-back-connector.ts +4 -3
  70. package/server/engine/connector/echo-back-server.ts +5 -4
  71. package/server/engine/connector/graphql-connector.ts +4 -3
  72. package/server/engine/connector/http-connector.ts +4 -3
  73. package/server/engine/connector/mqtt-connector.ts +4 -3
  74. package/server/engine/connector/mssql-connector.ts +4 -3
  75. package/server/engine/connector/mysql-connector.ts +8 -6
  76. package/server/engine/connector/operato-connector.ts +5 -3
  77. package/server/engine/connector/oracle-connector.ts +6 -3
  78. package/server/engine/connector/postgresql-connector.ts +4 -3
  79. package/server/engine/connector/socket-server.ts +5 -4
  80. package/server/engine/connector/sqlite-connector.ts +5 -3
  81. package/server/engine/task/book-up-scenario.ts +3 -1
  82. package/server/engine/task/csv-readline.ts +4 -1
  83. package/server/engine/task/data-accessor.ts +4 -1
  84. package/server/engine/task/data-mapper.ts +4 -1
  85. package/server/engine/task/database-query.ts +3 -1
  86. package/server/engine/task/echo-receive.ts +4 -1
  87. package/server/engine/task/echo-send.ts +3 -1
  88. package/server/engine/task/empty-check.ts +4 -1
  89. package/server/engine/task/end.ts +4 -1
  90. package/server/engine/task/floating-point.ts +4 -1
  91. package/server/engine/task/goto.ts +4 -1
  92. package/server/engine/task/graphql-mutate.ts +3 -1
  93. package/server/engine/task/graphql-query.ts +3 -1
  94. package/server/engine/task/headless-post.ts +4 -1
  95. package/server/engine/task/headless-scrap.ts +3 -1
  96. package/server/engine/task/http-get.ts +3 -1
  97. package/server/engine/task/http-post.ts +3 -1
  98. package/server/engine/task/jsonata.ts +5 -2
  99. package/server/engine/task/local-graphql-mutate.ts +5 -1
  100. package/server/engine/task/local-graphql-query.ts +3 -1
  101. package/server/engine/task/log.ts +3 -1
  102. package/server/engine/task/mqtt-publish.ts +3 -1
  103. package/server/engine/task/mqtt-subscribe.ts +3 -1
  104. package/server/engine/task/oracle-procedure.ts +3 -1
  105. package/server/engine/task/pick-pending-scenario.ts +3 -1
  106. package/server/engine/task/publish.ts +3 -1
  107. package/server/engine/task/random.ts +4 -1
  108. package/server/engine/task/reset-pending-queue.ts +3 -1
  109. package/server/engine/task/script.ts +4 -1
  110. package/server/engine/task/set-domain.ts +4 -1
  111. package/server/engine/task/sleep.ts +3 -1
  112. package/server/engine/task/socket-listener.ts +3 -1
  113. package/server/engine/task/state-read.ts +3 -1
  114. package/server/engine/task/state-write.ts +3 -1
  115. package/server/engine/task/stop-scenario.ts +3 -1
  116. package/server/engine/task/sub-scenario.ts +3 -1
  117. package/server/engine/task/switch-goto.ts +4 -1
  118. package/server/engine/task/switch-range-goto.ts +3 -1
  119. package/server/engine/task/switch-range-scenario.ts +3 -1
  120. package/server/engine/task/switch-range-set.ts +3 -1
  121. package/server/engine/task/switch-scenario.ts +3 -1
  122. package/server/engine/task/switch-set.ts +3 -1
  123. package/server/engine/task/throw.ts +3 -1
  124. package/server/engine/task/variables.ts +3 -1
  125. package/server/engine/types.ts +81 -4
  126. package/server/service/connection/connection-type.ts +67 -0
  127. package/server/service/step/step-type.ts +78 -22
@@ -1 +1 @@
1
- {"version":3,"file":"floating-point.js","sourceRoot":"","sources":["../../../server/engine/task/floating-point.ts"],"names":[],"mappings":";;;AAAA,8DAA6B;AAC7B,iDAA8C;AAC9C,oDAA+C;AAE/C,KAAK,UAAU,aAAa,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IACjD,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EACnD,GAAG,IAAI,CAAA;IAER,MAAM,KAAK,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACpC,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;KAC9C;IAED,MAAM,IAAI,GAAG,MAAM,KAAK,QAAQ,CAAA;IAChC,MAAM,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEhD,IAAI,MAAM,CAAA;IAEV,IAAI,SAAS,IAAI,OAAO,EAAE;QACxB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC7B,iBAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;KACxD;SAAM;QACL,MAAM,GAAG,iBAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;KACxD;IAED,OAAO;QACL,IAAI,EAAE,MAAM;KACb,CAAA;AACH,CAAC;AAED,aAAa,CAAC,aAAa,GAAG;IAC5B;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SAC3B;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;SAC3B;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;SAC7B;KACF;CACF,CAAA;AAED,aAAa,CAAC,aAAa,GAAG,IAAI,CAAA;AAClC,aAAa,CAAC,IAAI,GAAG,iCAAiC,CAAA;AAEtD,4BAAY,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA","sourcesContent":["import ieee754 from 'ieee754'\nimport { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\n\nasync function FloatingPoint(step, { logger, data }) {\n var {\n params: { accessor, operation, endian, floatType }\n } = step\n\n const value = access(accessor, data)\n if (typeof value === 'undefined') {\n throw new Error('accessor value not a found')\n }\n\n const isLE = endian === 'little'\n const nBytes = floatType === 'float' ? 4 : 8\n const mantissa = floatType === 'float' ? 23 : 52\n\n var result\n\n if (operation == 'write') {\n result = Buffer.alloc(nBytes)\n ieee754.write(result, value, 0, isLE, mantissa, nBytes)\n } else {\n result = ieee754.read(value, 0, isLE, mantissa, nBytes)\n }\n\n return {\n data: result\n }\n}\n\nFloatingPoint.parameterSpec = [\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n },\n {\n type: 'select',\n name: 'operation',\n label: 'operation',\n property: {\n options: ['read', 'write']\n }\n },\n {\n type: 'select',\n name: 'endian',\n label: 'endian',\n property: {\n options: ['little', 'big']\n }\n },\n {\n type: 'select',\n name: 'floatType',\n label: 'float type',\n property: {\n options: ['float', 'double']\n }\n }\n]\n\nFloatingPoint.connectorFree = true\nFloatingPoint.help = 'integration/task/floating-point'\n\nTaskRegistry.registerTaskHandler('floating-point', FloatingPoint)\n"]}
1
+ {"version":3,"file":"floating-point.js","sourceRoot":"","sources":["../../../server/engine/task/floating-point.ts"],"names":[],"mappings":";;;AAAA,8DAA6B;AAC7B,iDAA8C;AAC9C,oDAA+C;AAK/C,KAAK,UAAU,aAAa,CAAC,IAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAW;IACrE,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,EACnD,GAAG,IAAI,CAAA;IAER,MAAM,KAAK,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACpC,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;KAC9C;IAED,MAAM,IAAI,GAAG,MAAM,KAAK,QAAQ,CAAA;IAChC,MAAM,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,MAAM,QAAQ,GAAG,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAEhD,IAAI,MAAM,CAAA;IAEV,IAAI,SAAS,IAAI,OAAO,EAAE;QACxB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC7B,iBAAO,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;KACxD;SAAM;QACL,MAAM,GAAG,iBAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;KACxD;IAED,OAAO;QACL,IAAI,EAAE,MAAM;KACb,CAAA;AACH,CAAC;AAED,aAAa,CAAC,aAAa,GAAG;IAC5B;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SAC3B;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;SAC3B;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,YAAY;QACnB,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;SAC7B;KACF;CACF,CAAA;AAED,aAAa,CAAC,aAAa,GAAG,IAAI,CAAA;AAClC,aAAa,CAAC,IAAI,GAAG,iCAAiC,CAAA;AAEtD,4BAAY,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA","sourcesContent":["import ieee754 from 'ieee754'\nimport { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\n\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function FloatingPoint(step: InputStep, { logger, data }: Context) {\n var {\n params: { accessor, operation, endian, floatType }\n } = step\n\n const value = access(accessor, data)\n if (typeof value === 'undefined') {\n throw new Error('accessor value not a found')\n }\n\n const isLE = endian === 'little'\n const nBytes = floatType === 'float' ? 4 : 8\n const mantissa = floatType === 'float' ? 23 : 52\n\n var result\n\n if (operation == 'write') {\n result = Buffer.alloc(nBytes)\n ieee754.write(result, value, 0, isLE, mantissa, nBytes)\n } else {\n result = ieee754.read(value, 0, isLE, mantissa, nBytes)\n }\n\n return {\n data: result\n }\n}\n\nFloatingPoint.parameterSpec = [\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n },\n {\n type: 'select',\n name: 'operation',\n label: 'operation',\n property: {\n options: ['read', 'write']\n }\n },\n {\n type: 'select',\n name: 'endian',\n label: 'endian',\n property: {\n options: ['little', 'big']\n }\n },\n {\n type: 'select',\n name: 'floatType',\n label: 'float type',\n property: {\n options: ['float', 'double']\n }\n }\n]\n\nFloatingPoint.connectorFree = true\nFloatingPoint.help = 'integration/task/floating-point'\n\nTaskRegistry.registerTaskHandler('floating-point', FloatingPoint)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"goto.js","sourceRoot":"","sources":["../../../server/engine/task/goto.ts"],"names":[],"mappings":";;AAAA,oDAA+C;AAE/C,KAAK,UAAU,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE;IAClC,IAAI,EACF,MAAM,EAAE,EAAE,IAAI,EAAE,EACjB,GAAG,IAAI,CAAA;IAER,OAAO;QACL,IAAI,EAAE,IAAI;KACX,CAAA;AACH,CAAC;AAED,IAAI,CAAC,aAAa,GAAG;IACnB;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;CACF,CAAA;AAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;AACzB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;AAEnC,4BAAY,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\n\nasync function Goto(step, { logger }) {\n var {\n params: { goto }\n } = step\n\n return {\n next: goto\n }\n}\n\nGoto.parameterSpec = [\n {\n type: 'scenario-step-input',\n name: 'goto',\n label: 'goto'\n }\n]\n\nGoto.connectorFree = true\nGoto.help = 'integration/task/goto'\n\nTaskRegistry.registerTaskHandler('goto', Goto)\n"]}
1
+ {"version":3,"file":"goto.js","sourceRoot":"","sources":["../../../server/engine/task/goto.ts"],"names":[],"mappings":";;AAAA,oDAA+C;AAK/C,KAAK,UAAU,IAAI,CAAC,IAAe,EAAE,EAAE,MAAM,EAAW;IACtD,IAAI,EACF,MAAM,EAAE,EAAE,IAAI,EAAE,EACjB,GAAG,IAAI,CAAA;IAER,OAAO;QACL,IAAI,EAAE,IAAI;KACX,CAAA;AACH,CAAC;AAED,IAAI,CAAC,aAAa,GAAG;IACnB;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;CACF,CAAA;AAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;AACzB,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;AAEnC,4BAAY,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\n\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function Goto(step: InputStep, { logger }: Context) {\n var {\n params: { goto }\n } = step\n\n return {\n next: goto\n }\n}\n\nGoto.parameterSpec = [\n {\n type: 'scenario-step-input',\n name: 'goto',\n label: 'goto'\n }\n]\n\nGoto.connectorFree = true\nGoto.help = 'integration/task/goto'\n\nTaskRegistry.registerTaskHandler('goto', Goto)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-mutate.js","sourceRoot":"","sources":["../../../server/engine/task/graphql-mutate.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,6BAAwB;AAExB,iDAA8C;AAE9C,8DAAyD;AACzD,oDAA+C;AAE/C,KAAK,UAAU,aAAa,CAAC,IAAI,EAAE,OAAO;IACxC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC9D,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,WAAW,IAAI,EAAE,CAAA;IAE9E,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEpD,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAA;IAEvC,IAAI,MAAM,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAE1F,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACvF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QAC/C,QAAQ,EAAE,IAAA,qBAAG,EAAA;QACT,QAAQ;KACX;QACD,SAAS,EAAE,cAAc;QACzB,OAAO;KACR,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,YAAY;KACnB,CAAA;AACH,CAAC;AAED,aAAa,CAAC,aAAa,GAAG;IAC5B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AACD,aAAa,CAAC,IAAI,GAAG,iCAAiC,CAAA;AAEtD,4BAAY,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { VM } from 'vm2'\n\nimport { access } from '@things-factory/utils'\n\nimport { ConnectionManager } from '../connection-manager'\nimport { TaskRegistry } from '../task-registry'\n\nasync function GraphqlMutate(step, context) {\n var { connection: connectionName, params: stepOptions } = step\n var { mutation, variables: variablesAccessorMap, headers } = stepOptions || {}\n\n var { domain, user, data, variables, lng } = context\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n mutation = vm.run('`' + mutation + '`')\n\n var client = ConnectionManager.getConnectionInstanceByName(context.domain, connectionName)\n\n const queryVariables = Object.keys(variablesAccessorMap || {}).reduce((variables, key) => {\n const accessor = variablesAccessorMap[key]\n variables[key] = access(accessor, data)\n return variables\n }, {})\n\n var { data: mutateResult } = await client.mutate({\n mutation: gql`\n ${mutation}\n `,\n variables: queryVariables,\n headers\n })\n\n return {\n data: mutateResult\n }\n}\n\nGraphqlMutate.parameterSpec = [\n {\n type: 'graphql',\n name: 'mutation',\n label: 'mutation'\n },\n {\n type: 'key-values',\n name: 'variables',\n label: 'variables'\n },\n {\n type: 'key-values',\n name: 'headers',\n label: 'headers'\n }\n]\nGraphqlMutate.help = 'integration/task/graphql-mutate'\n\nTaskRegistry.registerTaskHandler('graphql-mutate', GraphqlMutate)\n"]}
1
+ {"version":3,"file":"graphql-mutate.js","sourceRoot":"","sources":["../../../server/engine/task/graphql-mutate.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,6BAAwB;AAExB,iDAA8C;AAE9C,8DAAyD;AACzD,oDAA+C;AAI/C,KAAK,UAAU,aAAa,CAAC,IAAe,EAAE,OAAgB;IAC5D,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC9D,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,WAAW,IAAI,EAAE,CAAA;IAE9E,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEpD,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAA;IAEvC,IAAI,MAAM,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAE1F,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACvF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QAC/C,QAAQ,EAAE,IAAA,qBAAG,EAAA;QACT,QAAQ;KACX;QACD,SAAS,EAAE,cAAc;QACzB,OAAO;KACR,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,YAAY;KACnB,CAAA;AACH,CAAC;AAED,aAAa,CAAC,aAAa,GAAG;IAC5B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AACD,aAAa,CAAC,IAAI,GAAG,iCAAiC,CAAA;AAEtD,4BAAY,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { VM } from 'vm2'\n\nimport { access } from '@things-factory/utils'\n\nimport { ConnectionManager } from '../connection-manager'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function GraphqlMutate(step: InputStep, context: Context) {\n var { connection: connectionName, params: stepOptions } = step\n var { mutation, variables: variablesAccessorMap, headers } = stepOptions || {}\n\n var { domain, user, data, variables, lng } = context\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n mutation = vm.run('`' + mutation + '`')\n\n var client = ConnectionManager.getConnectionInstanceByName(context.domain, connectionName)\n\n const queryVariables = Object.keys(variablesAccessorMap || {}).reduce((variables, key) => {\n const accessor = variablesAccessorMap[key]\n variables[key] = access(accessor, data)\n return variables\n }, {})\n\n var { data: mutateResult } = await client.mutate({\n mutation: gql`\n ${mutation}\n `,\n variables: queryVariables,\n headers\n })\n\n return {\n data: mutateResult\n }\n}\n\nGraphqlMutate.parameterSpec = [\n {\n type: 'graphql',\n name: 'mutation',\n label: 'mutation'\n },\n {\n type: 'key-values',\n name: 'variables',\n label: 'variables'\n },\n {\n type: 'key-values',\n name: 'headers',\n label: 'headers'\n }\n]\nGraphqlMutate.help = 'integration/task/graphql-mutate'\n\nTaskRegistry.registerTaskHandler('graphql-mutate', GraphqlMutate)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-query.js","sourceRoot":"","sources":["../../../server/engine/task/graphql-query.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,6BAAwB;AAExB,iDAA8C;AAE9C,8DAAyD;AACzD,oDAA+C;AAE/C,KAAK,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO;IACvC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC9D,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,WAAW,IAAI,EAAE,CAAA;IAC3E,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEpD,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;IAEjC,IAAI,MAAM,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAElF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACvF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAC7C,KAAK,EAAE,IAAA,qBAAG,EAAA;QACN,KAAK;KACR;QACD,SAAS,EAAE,cAAc;QACzB,OAAO;KACR,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,WAAW;KAClB,CAAA;AACH,CAAC;AAED,YAAY,CAAC,aAAa,GAAG;IAC3B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;KACf;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AAED,YAAY,CAAC,IAAI,GAAG,gCAAgC,CAAA;AAEpD,4BAAY,CAAC,mBAAmB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { VM } from 'vm2'\n\nimport { access } from '@things-factory/utils'\n\nimport { ConnectionManager } from '../connection-manager'\nimport { TaskRegistry } from '../task-registry'\n\nasync function GraphqlQuery(step, context) {\n var { connection: connectionName, params: stepOptions } = step\n var { query, variables: variablesAccessorMap, headers } = stepOptions || {}\n var { domain, user, data, variables, lng } = context\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n query = vm.run('`' + query + '`')\n\n var client = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n const queryVariables = Object.keys(variablesAccessorMap || {}).reduce((variables, key) => {\n const accessor = variablesAccessorMap[key]\n variables[key] = access(accessor, data)\n return variables\n }, {})\n\n var { data: queryResult } = await client.query({\n query: gql`\n ${query}\n `,\n variables: queryVariables,\n headers\n })\n\n return {\n data: queryResult\n }\n}\n\nGraphqlQuery.parameterSpec = [\n {\n type: 'graphql',\n name: 'query',\n label: 'query'\n },\n {\n type: 'key-values',\n name: 'variables',\n label: 'variables'\n },\n {\n type: 'key-values',\n name: 'headers',\n label: 'headers'\n }\n]\n\nGraphqlQuery.help = 'integration/task/graphql-query'\n\nTaskRegistry.registerTaskHandler('graphql-query', GraphqlQuery)\n"]}
1
+ {"version":3,"file":"graphql-query.js","sourceRoot":"","sources":["../../../server/engine/task/graphql-query.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,6BAAwB;AAExB,iDAA8C;AAE9C,8DAAyD;AACzD,oDAA+C;AAI/C,KAAK,UAAU,YAAY,CAAC,IAAe,EAAE,OAAgB;IAC3D,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC9D,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,WAAW,IAAI,EAAE,CAAA;IAC3E,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEpD,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;IAEjC,IAAI,MAAM,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAElF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACvF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QAC7C,KAAK,EAAE,IAAA,qBAAG,EAAA;QACN,KAAK;KACR;QACD,SAAS,EAAE,cAAc;QACzB,OAAO;KACR,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,WAAW;KAClB,CAAA;AACH,CAAC;AAED,YAAY,CAAC,aAAa,GAAG;IAC3B;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;KACf;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AAED,YAAY,CAAC,IAAI,GAAG,gCAAgC,CAAA;AAEpD,4BAAY,CAAC,mBAAmB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { VM } from 'vm2'\n\nimport { access } from '@things-factory/utils'\n\nimport { ConnectionManager } from '../connection-manager'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function GraphqlQuery(step: InputStep, context: Context) {\n var { connection: connectionName, params: stepOptions } = step\n var { query, variables: variablesAccessorMap, headers } = stepOptions || {}\n var { domain, user, data, variables, lng } = context\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n query = vm.run('`' + query + '`')\n\n var client = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n const queryVariables = Object.keys(variablesAccessorMap || {}).reduce((variables, key) => {\n const accessor = variablesAccessorMap[key]\n variables[key] = access(accessor, data)\n return variables\n }, {})\n\n var { data: queryResult } = await client.query({\n query: gql`\n ${query}\n `,\n variables: queryVariables,\n headers\n })\n\n return {\n data: queryResult\n }\n}\n\nGraphqlQuery.parameterSpec = [\n {\n type: 'graphql',\n name: 'query',\n label: 'query'\n },\n {\n type: 'key-values',\n name: 'variables',\n label: 'variables'\n },\n {\n type: 'key-values',\n name: 'headers',\n label: 'headers'\n }\n]\n\nGraphqlQuery.help = 'integration/task/graphql-query'\n\nTaskRegistry.registerTaskHandler('graphql-query', GraphqlQuery)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"headless-post.js","sourceRoot":"","sources":["../../../server/engine/task/headless-post.ts"],"names":[],"mappings":"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","sourcesContent":["import https from 'https'\nimport { URL } from 'url'\n\nimport { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\n\nimport { getHeadlessPool } from './utils/headless-pool-for-scenario'\n\nasync function HeadlessPost(step, { logger, data, domain }) {\n var { connection: connectionName, params: stepOptions } = step\n var { headers: requestHeaders, contentType, path, accessor } = stepOptions || {}\n\n var connection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n if (!connection) {\n throw new Error(`connection '${connectionName}' is not established.`)\n }\n\n var { endpoint, params: connectionParams, authHeaders = {} } = connection\n\n var headers = {\n ...authHeaders,\n ...requestHeaders\n }\n\n var body = access(accessor, data)\n if (contentType && body) {\n headers['content-type'] = contentType\n switch (contentType) {\n case 'text/plain':\n body = JSON.stringify(body)\n break\n case 'application/json':\n body = JSON.stringify(body)\n break\n case 'application/x-www-form-urlencoded':\n const searchParams = new URLSearchParams()\n for (const prop in body) {\n searchParams.set(prop, body[prop])\n }\n body = searchParams\n break\n }\n }\n\n var options: any = {\n method: 'POST',\n headers,\n body\n }\n\n var { rejectUnauthorized } = connectionParams\n\n if (!rejectUnauthorized) {\n const httpsAgent = new https.Agent({\n rejectUnauthorized\n })\n options.agent = httpsAgent\n }\n\n const browser = (await getHeadlessPool().acquire()) as any\n const page = await browser.newPage()\n\n try {\n page.on('console', async msg => {\n console.log(`[browser ${msg.type()}] ${msg.text()}`)\n })\n\n page.on('requestfailed', request => {\n console.log('Request failed:', request.url())\n })\n\n await page.goto(endpoint, { waitUntil: 'networkidle2' })\n\n const response = await page.evaluate(\n async (urlString, options) => {\n const response = await fetch(urlString, options)\n\n if (response.ok && response.headers.get('content-type').includes('application/json')) {\n return await response.json()\n } else {\n return await response.text()\n }\n },\n new URL(path, endpoint),\n options\n )\n\n return {\n data: response\n }\n } catch (e) {\n console.error(e)\n } finally {\n page.close()\n getHeadlessPool().release(browser)\n }\n}\n\nHeadlessPost.parameterSpec = [\n {\n type: 'string',\n name: 'path',\n label: 'path'\n },\n {\n type: 'http-headers',\n name: 'headers',\n label: 'headers'\n },\n {\n type: 'select',\n name: 'contentType',\n label: 'content-type',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'application/json',\n value: 'application/json'\n },\n {\n display: 'text/plain',\n value: 'text/plain'\n },\n {\n display: 'application/x-www-form-urlencoded',\n value: 'application/x-www-form-urlencoded'\n }\n ]\n }\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nTaskRegistry.registerTaskHandler('headless-post', HeadlessPost)\n"]}
1
+ {"version":3,"file":"headless-post.js","sourceRoot":"","sources":["../../../server/engine/task/headless-post.ts"],"names":[],"mappings":"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","sourcesContent":["import https from 'https'\nimport { URL } from 'url'\n\nimport { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\n\nimport { getHeadlessPool } from './utils/headless-pool-for-scenario'\n\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function HeadlessPost(step: InputStep, { logger, data, domain }: Context) {\n var { connection: connectionName, params: stepOptions } = step\n var { headers: requestHeaders, contentType, path, accessor } = stepOptions || {}\n\n var connection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n if (!connection) {\n throw new Error(`connection '${connectionName}' is not established.`)\n }\n\n var { endpoint, params: connectionParams, authHeaders = {} } = connection\n\n var headers = {\n ...authHeaders,\n ...requestHeaders\n }\n\n var body = access(accessor, data)\n if (contentType && body) {\n headers['content-type'] = contentType\n switch (contentType) {\n case 'text/plain':\n body = JSON.stringify(body)\n break\n case 'application/json':\n body = JSON.stringify(body)\n break\n case 'application/x-www-form-urlencoded':\n const searchParams = new URLSearchParams()\n for (const prop in body) {\n searchParams.set(prop, body[prop])\n }\n body = searchParams\n break\n }\n }\n\n var options: any = {\n method: 'POST',\n headers,\n body\n }\n\n var { rejectUnauthorized } = connectionParams\n\n if (!rejectUnauthorized) {\n const httpsAgent = new https.Agent({\n rejectUnauthorized\n })\n options.agent = httpsAgent\n }\n\n const browser = (await getHeadlessPool().acquire()) as any\n const page = await browser.newPage()\n\n try {\n page.on('console', async msg => {\n console.log(`[browser ${msg.type()}] ${msg.text()}`)\n })\n\n page.on('requestfailed', request => {\n console.log('Request failed:', request.url())\n })\n\n await page.goto(endpoint, { waitUntil: 'networkidle2' })\n\n const response = await page.evaluate(\n async (urlString, options) => {\n const response = await fetch(urlString, options)\n\n if (response.ok && response.headers.get('content-type').includes('application/json')) {\n return await response.json()\n } else {\n return await response.text()\n }\n },\n new URL(path, endpoint),\n options\n )\n\n return {\n data: response\n }\n } catch (e) {\n console.error(e)\n } finally {\n page.close()\n getHeadlessPool().release(browser)\n }\n}\n\nHeadlessPost.parameterSpec = [\n {\n type: 'string',\n name: 'path',\n label: 'path'\n },\n {\n type: 'http-headers',\n name: 'headers',\n label: 'headers'\n },\n {\n type: 'select',\n name: 'contentType',\n label: 'content-type',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'application/json',\n value: 'application/json'\n },\n {\n display: 'text/plain',\n value: 'text/plain'\n },\n {\n display: 'application/x-www-form-urlencoded',\n value: 'application/x-www-form-urlencoded'\n }\n ]\n }\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nTaskRegistry.registerTaskHandler('headless-post', HeadlessPost)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"headless-scrap.js","sourceRoot":"","sources":["../../../server/engine/task/headless-scrap.ts"],"names":[],"mappings":"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","sourcesContent":["import { URL } from 'url'\n\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\n\nimport { getHeadlessPool } from './utils/headless-pool-for-scenario'\n\nasync function HeadlessScrap(step, { logger, data, domain }) {\n var { connection: connectionName, params: stepOptions } = step\n var { headers: requestHeaders, path, selectors = [] } = stepOptions || {}\n\n var connection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n if (!connection) {\n throw new Error(`connection '${connectionName}' is not established.`)\n }\n\n var { endpoint, params: connectionParams, authHeaders = {} } = connection\n\n var headers = {\n ...authHeaders,\n ...requestHeaders\n }\n\n const browser = (await getHeadlessPool().acquire()) as any\n const page = await browser.newPage()\n\n try {\n page.on('console', async msg => {\n console.log(`[browser ${msg.type()}] ${msg.text()}`)\n })\n\n page.on('requestfailed', request => {\n console.log('Request failed:', request.url())\n })\n\n await page.setExtraHTTPHeaders(headers)\n await page.goto(new URL(path, endpoint), { waitUntil: 'networkidle2' })\n\n const result = {}\n\n for (const selector of selectors) {\n const { text, value } = selector\n result[text] = await page.$$eval(value, elements => {\n return elements.map(element => element.textContent.trim())\n })\n }\n\n return {\n data: result\n }\n } catch (e) {\n console.error(e)\n } finally {\n page.close()\n getHeadlessPool().release(browser)\n }\n}\n\nHeadlessScrap.parameterSpec = [\n {\n type: 'string',\n name: 'path',\n label: 'path'\n },\n {\n type: 'http-headers',\n name: 'headers',\n label: 'headers'\n },\n {\n type: 'options',\n name: 'selectors',\n label: 'selectors'\n }\n]\n\nTaskRegistry.registerTaskHandler('headless-scrap', HeadlessScrap)\n"]}
1
+ {"version":3,"file":"headless-scrap.js","sourceRoot":"","sources":["../../../server/engine/task/headless-scrap.ts"],"names":[],"mappings":"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","sourcesContent":["import { URL } from 'url'\n\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\n\nimport { getHeadlessPool } from './utils/headless-pool-for-scenario'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function HeadlessScrap(step: InputStep, { logger, data, domain }: Context) {\n var { connection: connectionName, params: stepOptions } = step\n var { headers: requestHeaders, path, selectors = [] } = stepOptions || {}\n\n var connection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n if (!connection) {\n throw new Error(`connection '${connectionName}' is not established.`)\n }\n\n var { endpoint, params: connectionParams, authHeaders = {} } = connection\n\n var headers = {\n ...authHeaders,\n ...requestHeaders\n }\n\n const browser = (await getHeadlessPool().acquire()) as any\n const page = await browser.newPage()\n\n try {\n page.on('console', async msg => {\n console.log(`[browser ${msg.type()}] ${msg.text()}`)\n })\n\n page.on('requestfailed', request => {\n console.log('Request failed:', request.url())\n })\n\n await page.setExtraHTTPHeaders(headers)\n await page.goto(new URL(path, endpoint), { waitUntil: 'networkidle2' })\n\n const result = {}\n\n for (const selector of selectors) {\n const { text, value } = selector\n result[text] = await page.$$eval(value, elements => {\n return elements.map(element => element.textContent.trim())\n })\n }\n\n return {\n data: result\n }\n } catch (e) {\n console.error(e)\n } finally {\n page.close()\n getHeadlessPool().release(browser)\n }\n}\n\nHeadlessScrap.parameterSpec = [\n {\n type: 'string',\n name: 'path',\n label: 'path'\n },\n {\n type: 'http-headers',\n name: 'headers',\n label: 'headers'\n },\n {\n type: 'options',\n name: 'selectors',\n label: 'selectors'\n }\n]\n\nTaskRegistry.registerTaskHandler('headless-scrap', HeadlessScrap)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"http-get.js","sourceRoot":"","sources":["../../../server/engine/task/http-get.ts"],"names":[],"mappings":"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","sourcesContent":["import fetch from 'node-fetch'\nimport { VM } from 'vm2'\nimport { URL } from 'url'\nimport https from 'https'\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\nimport { substitute } from './utils/substitute'\n\nasync function HttpGet(step, { logger, data, domain, user, variables, lng }) {\n var { connection: connectionName, params: stepOptions } = step\n var { headers: requestHeaders, searchParams = {}, path } = stepOptions || {}\n var connection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n if (!connection) {\n throw new Error(`connection '${connectionName}' is not established.`)\n }\n\n var { endpoint, params: connectionParams, authHeaders = {} } = connection\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n path = vm.run('`' + path + '`')\n\n requestHeaders =\n requestHeaders &&\n Object.entries(requestHeaders as { [key: string]: string }).reduce((sum, [key, value]) => {\n sum[key] = vm.run('`' + value + '`')\n return sum\n }, {})\n\n searchParams =\n searchParams &&\n Object.entries(searchParams as { [key: string]: string }).reduce((sum, [key, value]) => {\n sum[key] = vm.run('`' + value + '`')\n return sum\n }, {})\n\n var url = new URL(path, endpoint)\n if (searchParams) {\n Object.keys(searchParams).forEach(key => {\n let value = substitute(searchParams[key], data)\n url.searchParams.append(key, value)\n })\n }\n\n var fetchOptions: any = {\n method: 'GET',\n headers: {\n ...requestHeaders,\n ...authHeaders\n }\n }\n\n var { rejectUnauthorized } = connectionParams\n\n if (!rejectUnauthorized) {\n const httpsAgent = new https.Agent({\n rejectUnauthorized\n })\n fetchOptions.agent = httpsAgent\n }\n\n var response = await fetch(url, fetchOptions)\n\n return {\n data:\n response.ok && response.headers.get('content-type').includes('application/json')\n ? await response.json()\n : await response.text()\n }\n}\n\nHttpGet.parameterSpec = [\n {\n type: 'string',\n name: 'path',\n label: 'path'\n },\n {\n type: 'http-headers',\n name: 'headers',\n label: 'headers'\n },\n {\n type: 'http-parameters',\n name: 'searchParams',\n label: 'search-params'\n }\n]\n\nHttpGet.help = 'integration/task/http-get'\n\nTaskRegistry.registerTaskHandler('http-get', HttpGet)\n"]}
1
+ {"version":3,"file":"http-get.js","sourceRoot":"","sources":["../../../server/engine/task/http-get.ts"],"names":[],"mappings":";;;AAAA,oEAA8B;AAC9B,6BAAwB;AACxB,6BAAyB;AACzB,0DAAyB;AACzB,oDAA+C;AAC/C,8DAAyD;AACzD,mDAA+C;AAI/C,KAAK,UAAU,OAAO,CAAC,IAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAW;IAC7F,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC9D,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,YAAY,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,WAAW,IAAI,EAAE,CAAA;IAC5E,IAAI,UAAU,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAEtF,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,eAAe,cAAc,uBAAuB,CAAC,CAAA;KACtE;IAED,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,UAAU,CAAA;IAEzE,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAA;IAE/B,cAAc;QACZ,cAAc;YACd,MAAM,CAAC,OAAO,CAAC,cAA2C,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACvF,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;gBACpC,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;IAER,YAAY;QACV,YAAY;YACZ,MAAM,CAAC,OAAO,CAAC,YAAyC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACrF,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;gBACpC,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;IAER,IAAI,GAAG,GAAG,IAAI,SAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACjC,IAAI,YAAY,EAAE;QAChB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACtC,IAAI,KAAK,GAAG,IAAA,uBAAU,EAAC,YAAY,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAA;YAC/C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;KACH;IAED,IAAI,YAAY,GAAQ;QACtB,MAAM,EAAE,KAAK;QACb,OAAO,kCACF,cAAc,GACd,WAAW,CACf;KACF,CAAA;IAED,IAAI,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,CAAA;IAE7C,IAAI,CAAC,kBAAkB,EAAE;QACvB,MAAM,UAAU,GAAG,IAAI,eAAK,CAAC,KAAK,CAAC;YACjC,kBAAkB;SACnB,CAAC,CAAA;QACF,YAAY,CAAC,KAAK,GAAG,UAAU,CAAA;KAChC;IAED,IAAI,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAE7C,OAAO;QACL,IAAI,EACF,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC9E,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE;YACvB,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE;KAC5B,CAAA;AACH,CAAC;AAED,OAAO,CAAC,aAAa,GAAG;IACtB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,eAAe;KACvB;CACF,CAAA;AAED,OAAO,CAAC,IAAI,GAAG,2BAA2B,CAAA;AAE1C,4BAAY,CAAC,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA","sourcesContent":["import fetch from 'node-fetch'\nimport { VM } from 'vm2'\nimport { URL } from 'url'\nimport https from 'https'\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\nimport { substitute } from './utils/substitute'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function HttpGet(step: InputStep, { logger, data, domain, user, variables, lng }: Context) {\n var { connection: connectionName, params: stepOptions } = step\n var { headers: requestHeaders, searchParams = {}, path } = stepOptions || {}\n var connection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n if (!connection) {\n throw new Error(`connection '${connectionName}' is not established.`)\n }\n\n var { endpoint, params: connectionParams, authHeaders = {} } = connection\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n path = vm.run('`' + path + '`')\n\n requestHeaders =\n requestHeaders &&\n Object.entries(requestHeaders as { [key: string]: string }).reduce((sum, [key, value]) => {\n sum[key] = vm.run('`' + value + '`')\n return sum\n }, {})\n\n searchParams =\n searchParams &&\n Object.entries(searchParams as { [key: string]: string }).reduce((sum, [key, value]) => {\n sum[key] = vm.run('`' + value + '`')\n return sum\n }, {})\n\n var url = new URL(path, endpoint)\n if (searchParams) {\n Object.keys(searchParams).forEach(key => {\n let value = substitute(searchParams[key], data)\n url.searchParams.append(key, value)\n })\n }\n\n var fetchOptions: any = {\n method: 'GET',\n headers: {\n ...requestHeaders,\n ...authHeaders\n }\n }\n\n var { rejectUnauthorized } = connectionParams\n\n if (!rejectUnauthorized) {\n const httpsAgent = new https.Agent({\n rejectUnauthorized\n })\n fetchOptions.agent = httpsAgent\n }\n\n var response = await fetch(url, fetchOptions)\n\n return {\n data:\n response.ok && response.headers.get('content-type').includes('application/json')\n ? await response.json()\n : await response.text()\n }\n}\n\nHttpGet.parameterSpec = [\n {\n type: 'string',\n name: 'path',\n label: 'path'\n },\n {\n type: 'http-headers',\n name: 'headers',\n label: 'headers'\n },\n {\n type: 'http-parameters',\n name: 'searchParams',\n label: 'search-params'\n }\n]\n\nHttpGet.help = 'integration/task/http-get'\n\nTaskRegistry.registerTaskHandler('http-get', HttpGet)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"http-post.js","sourceRoot":"","sources":["../../../server/engine/task/http-post.ts"],"names":[],"mappings":";;;AAAA,oEAA8B;AAC9B,6BAAyB;AACzB,6BAAwB;AACxB,iDAA8C;AAC9C,oDAA+C;AAC/C,8DAAyD;AACzD,0DAAyB;AAEzB,KAAK,UAAU,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;IAC1E,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAA;IAC9D,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,WAAW,IAAI,EAAE,CAAA;IAEhF,IAAI,UAAU,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAEtF,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,eAAe,cAAc,uBAAuB,CAAC,CAAA;KACtE;IAED,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,UAAU,CAAA;IAEzE,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAA;IAC/B,cAAc;QACZ,cAAc;YACd,MAAM,CAAC,OAAO,CAAC,cAA2C,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACvF,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;gBACpC,OAAO,GAAG,CAAA;YACZ,CAAC,EAAE,EAAE,CAAC,CAAA;IAER,IAAI,GAAG,GAAG,IAAI,SAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IACjC,IAAI,OAAO,mCACN,WAAW,GACX,cAAc,CAClB,CAAA;IAED,IAAI,IAAI,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACjC,IAAI,WAAW,IAAI,IAAI,EAAE;QACvB,OAAO,CAAC,cAAc,CAAC,GAAG,WAAW,CAAA;QACrC,QAAQ,WAAW,EAAE;YACnB,KAAK,YAAY;gBACf,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;gBAC3B,MAAK;YACP,KAAK,kBAAkB;gBACrB,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;gBAC3B,MAAK;YACP,KAAK,mCAAmC;gBACtC,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAA;gBAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;oBACvB,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;iBACnC;gBACD,IAAI,GAAG,YAAY,CAAA;gBACnB,MAAK;SACR;KACF;IAED,IAAI,YAAY,GAAQ;QACtB,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI;KACL,CAAA;IAED,IAAI,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,CAAA;IAE7C,IAAI,CAAC,kBAAkB,EAAE;QACvB,MAAM,UAAU,GAAG,IAAI,eAAK,CAAC,KAAK,CAAC;YACjC,kBAAkB;SACnB,CAAC,CAAA;QACF,YAAY,CAAC,KAAK,GAAG,UAAU,CAAA;KAChC;IAED,IAAI,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAE7C,OAAO;QACL,IAAI,EACF,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YAC9E,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE;YACvB,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE;KAC5B,CAAA;AACH,CAAC;AAED,QAAQ,CAAC,aAAa,GAAG;IACvB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,cAAc;QACrB,QAAQ,EAAE;YACR,OAAO,EAAE;gBACP;oBACE,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,EAAE;iBACV;gBACD;oBACE,OAAO,EAAE,kBAAkB;oBAC3B,KAAK,EAAE,kBAAkB;iBAC1B;gBACD;oBACE,OAAO,EAAE,YAAY;oBACrB,KAAK,EAAE,YAAY;iBACpB;gBACD;oBACE,OAAO,EAAE,mCAAmC;oBAC5C,KAAK,EAAE,mCAAmC;iBAC3C;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,QAAQ,CAAC,IAAI,GAAG,4BAA4B,CAAA;AAE5C,4BAAY,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA","sourcesContent":["import fetch from 'node-fetch'\nimport { URL } from 'url'\nimport { VM } from 'vm2'\nimport { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\nimport https from 'https'\n\nasync function HttpPost(step, { logger, data, domain, user, variables, lng }) {\n var { connection: connectionName, params: stepOptions } = step\n var { headers: requestHeaders, contentType, path, accessor } = stepOptions || {}\n\n var connection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n if (!connection) {\n throw new Error(`connection '${connectionName}' is not established.`)\n }\n\n var { endpoint, params: connectionParams, authHeaders = {} } = connection\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n path = vm.run('`' + path + '`')\n requestHeaders =\n requestHeaders &&\n Object.entries(requestHeaders as { [key: string]: string }).reduce((sum, [key, value]) => {\n sum[key] = vm.run('`' + value + '`')\n return sum\n }, {})\n\n var url = new URL(path, endpoint)\n var headers = {\n ...authHeaders,\n ...requestHeaders\n }\n\n var body = access(accessor, data)\n if (contentType && body) {\n headers['content-type'] = contentType\n switch (contentType) {\n case 'text/plain':\n body = JSON.stringify(body)\n break\n case 'application/json':\n body = JSON.stringify(body)\n break\n case 'application/x-www-form-urlencoded':\n const searchParams = new URLSearchParams()\n for (const prop in body) {\n searchParams.set(prop, body[prop])\n }\n body = searchParams\n break\n }\n }\n\n var fetchOptions: any = {\n method: 'POST',\n headers,\n body\n }\n\n var { rejectUnauthorized } = connectionParams\n\n if (!rejectUnauthorized) {\n const httpsAgent = new https.Agent({\n rejectUnauthorized\n })\n fetchOptions.agent = httpsAgent\n }\n\n var response = await fetch(url, fetchOptions)\n\n return {\n data:\n response.ok && response.headers.get('content-type').includes('application/json')\n ? await response.json()\n : await response.text()\n }\n}\n\nHttpPost.parameterSpec = [\n {\n type: 'string',\n name: 'path',\n label: 'path'\n },\n {\n type: 'http-headers',\n name: 'headers',\n label: 'headers'\n },\n {\n type: 'select',\n name: 'contentType',\n label: 'content-type',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'application/json',\n value: 'application/json'\n },\n {\n display: 'text/plain',\n value: 'text/plain'\n },\n {\n display: 'application/x-www-form-urlencoded',\n value: 'application/x-www-form-urlencoded'\n }\n ]\n }\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nHttpPost.help = 'integration/task/http-post'\n\nTaskRegistry.registerTaskHandler('http-post', HttpPost)\n"]}
1
+ {"version":3,"file":"http-post.js","sourceRoot":"","sources":["../../../server/engine/task/http-post.ts"],"names":[],"mappings":"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","sourcesContent":["import fetch from 'node-fetch'\nimport { URL } from 'url'\nimport { VM } from 'vm2'\nimport { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\nimport https from 'https'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function HttpPost(step: InputStep, { logger, data, domain, user, variables, lng }: Context) {\n var { connection: connectionName, params: stepOptions } = step\n var { headers: requestHeaders, contentType, path, accessor } = stepOptions || {}\n\n var connection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n if (!connection) {\n throw new Error(`connection '${connectionName}' is not established.`)\n }\n\n var { endpoint, params: connectionParams, authHeaders = {} } = connection\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n path = vm.run('`' + path + '`')\n requestHeaders =\n requestHeaders &&\n Object.entries(requestHeaders as { [key: string]: string }).reduce((sum, [key, value]) => {\n sum[key] = vm.run('`' + value + '`')\n return sum\n }, {})\n\n var url = new URL(path, endpoint)\n var headers = {\n ...authHeaders,\n ...requestHeaders\n }\n\n var body = access(accessor, data)\n if (contentType && body) {\n headers['content-type'] = contentType\n switch (contentType) {\n case 'text/plain':\n body = JSON.stringify(body)\n break\n case 'application/json':\n body = JSON.stringify(body)\n break\n case 'application/x-www-form-urlencoded':\n const searchParams = new URLSearchParams()\n for (const prop in body) {\n searchParams.set(prop, body[prop])\n }\n body = searchParams\n break\n }\n }\n\n var fetchOptions: any = {\n method: 'POST',\n headers,\n body\n }\n\n var { rejectUnauthorized } = connectionParams\n\n if (!rejectUnauthorized) {\n const httpsAgent = new https.Agent({\n rejectUnauthorized\n })\n fetchOptions.agent = httpsAgent\n }\n\n var response = await fetch(url, fetchOptions)\n\n return {\n data:\n response.ok && response.headers.get('content-type').includes('application/json')\n ? await response.json()\n : await response.text()\n }\n}\n\nHttpPost.parameterSpec = [\n {\n type: 'string',\n name: 'path',\n label: 'path'\n },\n {\n type: 'http-headers',\n name: 'headers',\n label: 'headers'\n },\n {\n type: 'select',\n name: 'contentType',\n label: 'content-type',\n property: {\n options: [\n {\n display: '',\n value: ''\n },\n {\n display: 'application/json',\n value: 'application/json'\n },\n {\n display: 'text/plain',\n value: 'text/plain'\n },\n {\n display: 'application/x-www-form-urlencoded',\n value: 'application/x-www-form-urlencoded'\n }\n ]\n }\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nHttpPost.help = 'integration/task/http-post'\n\nTaskRegistry.registerTaskHandler('http-post', HttpPost)\n"]}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- const task_registry_1 = require("../task-registry");
5
4
  const jsonata_1 = tslib_1.__importDefault(require("jsonata"));
5
+ const task_registry_1 = require("../task-registry");
6
6
  async function JSonata(step, context) {
7
7
  var { params: { expression } } = step;
8
8
  const { domain, user, data, variables, lng, logger } = context;
@@ -1 +1 @@
1
- {"version":3,"file":"jsonata.js","sourceRoot":"","sources":["../../../server/engine/task/jsonata.ts"],"names":[],"mappings":";;;AAAA,oDAA+C;AAC/C,8DAA6B;AAE7B,KAAK,UAAU,OAAO,CAAC,IAAI,EAAE,OAAO;IAClC,IAAI,EACF,MAAM,EAAE,EAAE,UAAU,EAAE,EACvB,GAAG,IAAI,CAAA;IAER,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE9D,IAAI,MAAM,GAAG,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC,QAAQ,CAAC;QACxC,MAAM;QACN,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,SAAS;KACV,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,MAAM;KACb,CAAA;AACH,CAAC;AAED,OAAO,CAAC,aAAa,GAAG;IACtB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE;YACR,QAAQ,EAAE,YAAY;SACvB;KACF;CACF,CAAA;AAED,OAAO,CAAC,aAAa,GAAG,IAAI,CAAA;AAC5B,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAA;AAEzC,4BAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\nimport jsonata from 'jsonata'\n\nasync function JSonata(step, context) {\n var {\n params: { expression }\n } = step\n\n const { domain, user, data, variables, lng, logger } = context\n\n var result = jsonata(expression).evaluate({\n domain,\n user,\n lng,\n data,\n variables\n })\n\n return {\n data: result\n }\n}\n\nJSonata.parameterSpec = [\n {\n type: 'textarea',\n name: 'expression',\n label: 'jsonata-expression',\n property: {\n language: 'javascript'\n }\n }\n]\n\nJSonata.connectorFree = true\nJSonata.help = 'integration/task/jsonata'\n\nTaskRegistry.registerTaskHandler('jsonata', JSonata)\n"]}
1
+ {"version":3,"file":"jsonata.js","sourceRoot":"","sources":["../../../server/engine/task/jsonata.ts"],"names":[],"mappings":";;;AAAA,8DAA6B;AAE7B,oDAA+C;AAI/C,KAAK,UAAU,OAAO,CAAC,IAAe,EAAE,OAAgB;IACtD,IAAI,EACF,MAAM,EAAE,EAAE,UAAU,EAAE,EACvB,GAAG,IAAI,CAAA;IAER,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE9D,IAAI,MAAM,GAAG,IAAA,iBAAO,EAAC,UAAU,CAAC,CAAC,QAAQ,CAAC;QACxC,MAAM;QACN,IAAI;QACJ,GAAG;QACH,IAAI;QACJ,SAAS;KACV,CAAC,CAAA;IAEF,OAAO;QACL,IAAI,EAAE,MAAM;KACb,CAAA;AACH,CAAC;AAED,OAAO,CAAC,aAAa,GAAG;IACtB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE;YACR,QAAQ,EAAE,YAAY;SACvB;KACF;CACF,CAAA;AAED,OAAO,CAAC,aAAa,GAAG,IAAI,CAAA;AAC5B,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAA;AAEzC,4BAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA","sourcesContent":["import jsonata from 'jsonata'\n\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function JSonata(step: InputStep, context: Context) {\n var {\n params: { expression }\n } = step\n\n const { domain, user, data, variables, lng, logger } = context\n\n var result = jsonata(expression).evaluate({\n domain,\n user,\n lng,\n data,\n variables\n })\n\n return {\n data: result\n }\n}\n\nJSonata.parameterSpec = [\n {\n type: 'textarea',\n name: 'expression',\n label: 'jsonata-expression',\n property: {\n language: 'javascript'\n }\n }\n]\n\nJSonata.connectorFree = true\nJSonata.help = 'integration/task/jsonata'\n\nTaskRegistry.registerTaskHandler('jsonata', JSonata)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"local-graphql-mutate.js","sourceRoot":"","sources":["../../../server/engine/task/local-graphql-mutate.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,6BAAwB;AAExB,yDAAgD;AAChD,iDAAqD;AACrD,iDAA8C;AAE9C,oDAA+C;AAE/C,KAAK,UAAU,kBAAkB,CAAC,IAAI,EAAE,OAAO;IAC7C,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IACzE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEpE,IAAI;QACF,IAAI;YACJ,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;gBACjC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBACxB,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB,CAAC,CAAC,CAAA;IAEL,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAA;IAEvC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACvF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACvD,QAAQ,EAAE,IAAA,qBAAG,EAAA;QACT,QAAQ;KACX;QACD,SAAS,EAAE,cAAc;QACzB,OAAO;QACP,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,IAAI,EAAE,YAAY;KACnB,CAAA;AACH,CAAC;AAED,kBAAkB,CAAC,aAAa,GAAG;IACjC;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AAED,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAA;AACvC,kBAAkB,CAAC,IAAI,GAAG,uCAAuC,CAAA;AAEjE,4BAAY,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { VM } from 'vm2'\n\nimport { User } from '@things-factory/auth-base'\nimport { getRepository } from '@things-factory/shell'\nimport { access } from '@things-factory/utils'\n\nimport { TaskRegistry } from '../task-registry'\n\nasync function LocalGraphqlMutate(step, context) {\n var { params, updaterId } = step\n var { mutation, variables: variablesAccessorMap, headers } = params || {}\n var { logger, client, domain, user, data, variables, lng } = context\n\n user =\n user ||\n (await getRepository(User).findOne({\n where: { id: updaterId },\n relations: ['domains']\n }))\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n mutation = vm.run('`' + mutation + '`')\n\n const queryVariables = Object.keys(variablesAccessorMap || {}).reduce((variables, key) => {\n const accessor = variablesAccessorMap[key]\n variables[key] = access(accessor, data)\n return variables\n }, {})\n\n var { data: mutateResult, errors } = await client.mutate({\n mutation: gql`\n ${mutation}\n `,\n variables: queryVariables,\n headers,\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: mutateResult\n }\n}\n\nLocalGraphqlMutate.parameterSpec = [\n {\n type: 'graphql',\n name: 'mutation',\n label: 'mutation'\n },\n {\n type: 'key-values',\n name: 'variables',\n label: 'variables'\n },\n {\n type: 'key-values',\n name: 'headers',\n label: 'headers'\n }\n]\n\nLocalGraphqlMutate.connectorFree = true\nLocalGraphqlMutate.help = 'integration/task/local-graphql-mutate'\n\nTaskRegistry.registerTaskHandler('local-graphql-mutate', LocalGraphqlMutate)\n"]}
1
+ {"version":3,"file":"local-graphql-mutate.js","sourceRoot":"","sources":["../../../server/engine/task/local-graphql-mutate.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,6BAAwB;AAExB,yDAAgD;AAChD,iDAAqD;AACrD,iDAA8C;AAE9C,oDAA+C;AAM/C,KAAK,UAAU,kBAAkB,CAAC,IAAe,EAAE,OAAgB;IACjE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IACzE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEpE,IAAI;QACF,IAAI;YACJ,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;gBACjC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBACxB,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB,CAAC,CAAC,CAAA;IAEL,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,QAAQ,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,QAAQ,GAAG,GAAG,CAAC,CAAA;IAEvC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACvF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACvD,QAAQ,EAAE,IAAA,qBAAG,EAAA;QACT,QAAQ;KACX;QACD,SAAS,EAAE,cAAc;QACzB,OAAO;QACP,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,IAAI,EAAE,YAAY;KACnB,CAAA;AACH,CAAC;AAED,kBAAkB,CAAC,aAAa,GAAG;IACjC;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AAED,kBAAkB,CAAC,aAAa,GAAG,IAAI,CAAA;AACvC,kBAAkB,CAAC,IAAI,GAAG,uCAAuC,CAAA;AAEjE,4BAAY,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { VM } from 'vm2'\n\nimport { User } from '@things-factory/auth-base'\nimport { getRepository } from '@things-factory/shell'\nimport { access } from '@things-factory/utils'\n\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\n\n\nasync function LocalGraphqlMutate(step: InputStep, context: Context) {\n var { params, updaterId } = step\n var { mutation, variables: variablesAccessorMap, headers } = params || {}\n var { logger, client, domain, user, data, variables, lng } = context\n\n user =\n user ||\n (await getRepository(User).findOne({\n where: { id: updaterId },\n relations: ['domains']\n }))\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n mutation = vm.run('`' + mutation + '`')\n\n const queryVariables = Object.keys(variablesAccessorMap || {}).reduce((variables, key) => {\n const accessor = variablesAccessorMap[key]\n variables[key] = access(accessor, data)\n return variables\n }, {})\n\n var { data: mutateResult, errors } = await client.mutate({\n mutation: gql`\n ${mutation}\n `,\n variables: queryVariables,\n headers,\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: mutateResult\n }\n}\n\nLocalGraphqlMutate.parameterSpec = [\n {\n type: 'graphql',\n name: 'mutation',\n label: 'mutation'\n },\n {\n type: 'key-values',\n name: 'variables',\n label: 'variables'\n },\n {\n type: 'key-values',\n name: 'headers',\n label: 'headers'\n }\n]\n\nLocalGraphqlMutate.connectorFree = true\nLocalGraphqlMutate.help = 'integration/task/local-graphql-mutate'\n\nTaskRegistry.registerTaskHandler('local-graphql-mutate', LocalGraphqlMutate)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"local-graphql-query.js","sourceRoot":"","sources":["../../../server/engine/task/local-graphql-query.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,6BAAwB;AAExB,yDAAgD;AAChD,iDAAqD;AACrD,iDAA8C;AAE9C,oDAA+C;AAE/C,KAAK,UAAU,iBAAiB,CAAC,IAAI,EAAE,OAAO;IAC5C,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IACtE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEpE,IAAI;QACF,IAAI;YACJ,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;gBACjC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBACxB,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB,CAAC,CAAC,CAAA;IAEL,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;IAEjC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACvF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QACrD,KAAK,EAAE,IAAA,qBAAG,EAAA;QACN,KAAK;KACR;QACD,SAAS,EAAE,cAAc;QACzB,OAAO;QACP,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,IAAI,EAAE,WAAW;KAClB,CAAA;AACH,CAAC;AAED,iBAAiB,CAAC,aAAa,GAAG;IAChC;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;KACf;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AAED,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAA;AACtC,iBAAiB,CAAC,IAAI,GAAG,sCAAsC,CAAA;AAE/D,4BAAY,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { VM } from 'vm2'\n\nimport { User } from '@things-factory/auth-base'\nimport { getRepository } from '@things-factory/shell'\nimport { access } from '@things-factory/utils'\n\nimport { TaskRegistry } from '../task-registry'\n\nasync function LocalGraphqlQuery(step, context) {\n var { params, updaterId } = step\n var { query, variables: variablesAccessorMap, headers } = params || {}\n var { logger, client, domain, user, data, variables, lng } = context\n\n user =\n user ||\n (await getRepository(User).findOne({\n where: { id: updaterId },\n relations: ['domains']\n }))\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n query = vm.run('`' + query + '`')\n\n const queryVariables = Object.keys(variablesAccessorMap || {}).reduce((variables, key) => {\n const accessor = variablesAccessorMap[key]\n variables[key] = access(accessor, data)\n return variables\n }, {})\n\n var { data: queryResult, errors } = await client.query({\n query: gql`\n ${query}\n `,\n variables: queryVariables,\n headers,\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: queryResult\n }\n}\n\nLocalGraphqlQuery.parameterSpec = [\n {\n type: 'graphql',\n name: 'query',\n label: 'query'\n },\n {\n type: 'key-values',\n name: 'variables',\n label: 'variables'\n },\n {\n type: 'key-values',\n name: 'headers',\n label: 'headers'\n }\n]\n\nLocalGraphqlQuery.connectorFree = true\nLocalGraphqlQuery.help = 'integration/task/local-graphql-query'\n\nTaskRegistry.registerTaskHandler('local-graphql-query', LocalGraphqlQuery)\n"]}
1
+ {"version":3,"file":"local-graphql-query.js","sourceRoot":"","sources":["../../../server/engine/task/local-graphql-query.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,6BAAwB;AAExB,yDAAgD;AAChD,iDAAqD;AACrD,iDAA8C;AAE9C,oDAA+C;AAI/C,KAAK,UAAU,iBAAiB,CAAC,IAAe,EAAE,OAAgB;IAChE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IACtE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IAEpE,IAAI;QACF,IAAI;YACJ,CAAC,MAAM,IAAA,qBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;gBACjC,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;gBACxB,SAAS,EAAE,CAAC,SAAS,CAAC;aACvB,CAAC,CAAC,CAAA;IAEL,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,KAAK,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAA;IAEjC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACvF,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,CAAC,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;QACvC,OAAO,SAAS,CAAA;IAClB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QACrD,KAAK,EAAE,IAAA,qBAAG,EAAA;QACN,KAAK;KACR;QACD,SAAS,EAAE,cAAc;QACzB,OAAO;QACP,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,IAAI,EAAE,WAAW;KAClB,CAAA;AACH,CAAC;AAED,iBAAiB,CAAC,aAAa,GAAG;IAChC;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;KACf;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;CACF,CAAA;AAED,iBAAiB,CAAC,aAAa,GAAG,IAAI,CAAA;AACtC,iBAAiB,CAAC,IAAI,GAAG,sCAAsC,CAAA;AAE/D,4BAAY,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,iBAAiB,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { VM } from 'vm2'\n\nimport { User } from '@things-factory/auth-base'\nimport { getRepository } from '@things-factory/shell'\nimport { access } from '@things-factory/utils'\n\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function LocalGraphqlQuery(step: InputStep, context: Context) {\n var { params, updaterId } = step\n var { query, variables: variablesAccessorMap, headers } = params || {}\n var { logger, client, domain, user, data, variables, lng } = context\n\n user =\n user ||\n (await getRepository(User).findOne({\n where: { id: updaterId },\n relations: ['domains']\n }))\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n query = vm.run('`' + query + '`')\n\n const queryVariables = Object.keys(variablesAccessorMap || {}).reduce((variables, key) => {\n const accessor = variablesAccessorMap[key]\n variables[key] = access(accessor, data)\n return variables\n }, {})\n\n var { data: queryResult, errors } = await client.query({\n query: gql`\n ${query}\n `,\n variables: queryVariables,\n headers,\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: queryResult\n }\n}\n\nLocalGraphqlQuery.parameterSpec = [\n {\n type: 'graphql',\n name: 'query',\n label: 'query'\n },\n {\n type: 'key-values',\n name: 'variables',\n label: 'variables'\n },\n {\n type: 'key-values',\n name: 'headers',\n label: 'headers'\n }\n]\n\nLocalGraphqlQuery.connectorFree = true\nLocalGraphqlQuery.help = 'integration/task/local-graphql-query'\n\nTaskRegistry.registerTaskHandler('local-graphql-query', LocalGraphqlQuery)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../server/engine/task/log.ts"],"names":[],"mappings":";;AAAA,iDAAqE;AACrE,6BAAwB;AACxB,oDAA+C;AAE/C,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;IACrE,IAAI,EACF,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAE,EAC9C,GAAG,IAAI,CAAA;IAER,IAAI,IAAA,6BAAqB,EAAC,OAAO,CAAC,EAAE;QAClC,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;YAChB,OAAO,EAAE;gBACP,MAAM;gBACN,IAAI;gBACJ,GAAG;gBACH,IAAI;gBACJ,SAAS;aACV;SACF,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC,CAAA;KACtC;IAED,QAAQ,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAEjC,IAAI,QAAQ,EAAE;QACZ,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACzB,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;SAC7C;QACD,OAAO,IAAI,IAAI,GAAG,QAAQ,CAAA;KAC3B;IAED,QAAQ,KAAK,EAAE;QACb,KAAK,OAAO;YACV,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrB,OAAM;QACR,KAAK,MAAM;YACT,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACpB,OAAM;QACR;YACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KACvB;IAED,OAAO;QACL,IAAI,EAAE,OAAO;KACd,CAAA;AACH,CAAC;AAED,GAAG,CAAC,aAAa,GAAG;IAClB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;SACnC;KACF;CACF,CAAA;AAED,GAAG,CAAC,aAAa,GAAG,IAAI,CAAA;AACxB,GAAG,CAAC,IAAI,GAAG,sBAAsB,CAAA;AAEjC,4BAAY,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA","sourcesContent":["import { access, hasTemplateExpression } from '@things-factory/utils'\nimport { VM } from 'vm2'\nimport { TaskRegistry } from '../task-registry'\n\nasync function Log(step, { logger, data, variables, domain, user, lng }) {\n var {\n params: { message, accessor, level = 'info' }\n } = step\n\n if (hasTemplateExpression(message)) {\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n message = vm.run('`' + message + '`')\n }\n\n accessor = access(accessor, data)\n\n if (accessor) {\n if (accessor !== 'string') {\n accessor = JSON.stringify(accessor, null, 2)\n }\n message += ': ' + accessor\n }\n\n switch (level) {\n case 'error':\n logger.error(message)\n return\n case 'warn':\n logger.warn(message)\n return\n default:\n logger.info(message)\n }\n\n return {\n data: message\n }\n}\n\nLog.parameterSpec = [\n {\n type: 'string',\n name: 'message',\n label: 'message'\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n },\n {\n type: 'select',\n name: 'level',\n label: 'level',\n property: {\n options: ['info', 'warn', 'error']\n }\n }\n]\n\nLog.connectorFree = true\nLog.help = 'integration/task/log'\n\nTaskRegistry.registerTaskHandler('log', Log)\n"]}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../../server/engine/task/log.ts"],"names":[],"mappings":";;AAAA,iDAAqE;AACrE,6BAAwB;AACxB,oDAA+C;AAI/C,KAAK,UAAU,GAAG,CAAC,IAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAW;IACzF,IAAI,EACF,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,EAAE,EAC9C,GAAG,IAAI,CAAA;IAER,IAAI,IAAA,6BAAqB,EAAC,OAAO,CAAC,EAAE;QAClC,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;YAChB,OAAO,EAAE;gBACP,MAAM;gBACN,IAAI;gBACJ,GAAG;gBACH,IAAI;gBACJ,SAAS;aACV;SACF,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,OAAO,GAAG,GAAG,CAAC,CAAA;KACtC;IAED,QAAQ,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAEjC,IAAI,QAAQ,EAAE;QACZ,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACzB,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;SAC7C;QACD,OAAO,IAAI,IAAI,GAAG,QAAQ,CAAA;KAC3B;IAED,QAAQ,KAAK,EAAE;QACb,KAAK,OAAO;YACV,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACrB,OAAM;QACR,KAAK,MAAM;YACT,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACpB,OAAM;QACR;YACE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KACvB;IAED,OAAO;QACL,IAAI,EAAE,OAAO;KACd,CAAA;AACH,CAAC;AAED,GAAG,CAAC,aAAa,GAAG;IAClB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;KACjB;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE;YACR,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;SACnC;KACF;CACF,CAAA;AAED,GAAG,CAAC,aAAa,GAAG,IAAI,CAAA;AACxB,GAAG,CAAC,IAAI,GAAG,sBAAsB,CAAA;AAEjC,4BAAY,CAAC,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA","sourcesContent":["import { access, hasTemplateExpression } from '@things-factory/utils'\nimport { VM } from 'vm2'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function Log(step: InputStep, { logger, data, variables, domain, user, lng }: Context) {\n var {\n params: { message, accessor, level = 'info' }\n } = step\n\n if (hasTemplateExpression(message)) {\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n message = vm.run('`' + message + '`')\n }\n\n accessor = access(accessor, data)\n\n if (accessor) {\n if (accessor !== 'string') {\n accessor = JSON.stringify(accessor, null, 2)\n }\n message += ': ' + accessor\n }\n\n switch (level) {\n case 'error':\n logger.error(message)\n return\n case 'warn':\n logger.warn(message)\n return\n default:\n logger.info(message)\n }\n\n return {\n data: message\n }\n}\n\nLog.parameterSpec = [\n {\n type: 'string',\n name: 'message',\n label: 'message'\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n },\n {\n type: 'select',\n name: 'level',\n label: 'level',\n property: {\n options: ['info', 'warn', 'error']\n }\n }\n]\n\nLog.connectorFree = true\nLog.help = 'integration/task/log'\n\nTaskRegistry.registerTaskHandler('log', Log)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mqtt-publish.js","sourceRoot":"","sources":["../../../server/engine/task/mqtt-publish.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAC9C,oDAA+C;AAC/C,8DAAyD;AAEzD,KAAK,UAAU,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;IACvD,IAAI,EACF,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAC5B,GAAG,IAAI,CAAA;IAER,MAAM,EAAE,MAAM,EAAE,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACxF,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,KAAK,CAAC,6BAA6B,cAAc,EAAE,CAAC,CAAA;KAC3D;IAED,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;QACvB,MAAM,KAAK,CAAC,oDAAoD,KAAK,kBAAkB,QAAQ,GAAG,CAAC,CAAA;KACpG;IAED,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;IACpD,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAEpC,OAAO;QACL,IAAI,EAAE,OAAO;KACd,CAAA;AACH,CAAC;AAED,WAAW,CAAC,aAAa,GAAG;IAC1B;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;KACf;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,WAAW,CAAC,IAAI,GAAG,+BAA+B,CAAA;AAElD,4BAAY,CAAC,mBAAmB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA","sourcesContent":["import { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\n\nasync function MqttPublish(step, { logger, data, domain }) {\n var {\n connection: connectionName,\n params: { topic, accessor }\n } = step\n\n const { client } = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n if (!client) {\n throw Error(`connection is not found : ${connectionName}`)\n }\n\n if (!topic || !accessor) {\n throw Error(`topic and accessor should be defined: : topic - '${topic}', accessor - '${accessor}'`)\n }\n\n var message = JSON.stringify(access(accessor, data))\n await client.publish(topic, message)\n\n return {\n data: message\n }\n}\n\nMqttPublish.parameterSpec = [\n {\n type: 'string',\n name: 'topic',\n label: 'topic'\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nMqttPublish.help = 'integration/task/mqtt-publish'\n\nTaskRegistry.registerTaskHandler('mqtt-publish', MqttPublish)\n"]}
1
+ {"version":3,"file":"mqtt-publish.js","sourceRoot":"","sources":["../../../server/engine/task/mqtt-publish.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAC9C,oDAA+C;AAC/C,8DAAyD;AAIzD,KAAK,UAAU,WAAW,CAAC,IAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAW;IAC3E,IAAI,EACF,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAC5B,GAAG,IAAI,CAAA;IAER,MAAM,EAAE,MAAM,EAAE,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IACxF,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,KAAK,CAAC,6BAA6B,cAAc,EAAE,CAAC,CAAA;KAC3D;IAED,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;QACvB,MAAM,KAAK,CAAC,oDAAoD,KAAK,kBAAkB,QAAQ,GAAG,CAAC,CAAA;KACpG;IAED,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;IACpD,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IAEpC,OAAO;QACL,IAAI,EAAE,OAAO;KACd,CAAA;AACH,CAAC;AAED,WAAW,CAAC,aAAa,GAAG;IAC1B;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,OAAO;KACf;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,WAAW,CAAC,IAAI,GAAG,+BAA+B,CAAA;AAElD,4BAAY,CAAC,mBAAmB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA","sourcesContent":["import { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function MqttPublish(step: InputStep, { logger, data, domain }: Context) {\n var {\n connection: connectionName,\n params: { topic, accessor }\n } = step\n\n const { client } = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n if (!client) {\n throw Error(`connection is not found : ${connectionName}`)\n }\n\n if (!topic || !accessor) {\n throw Error(`topic and accessor should be defined: : topic - '${topic}', accessor - '${accessor}'`)\n }\n\n var message = JSON.stringify(access(accessor, data))\n await client.publish(topic, message)\n\n return {\n data: message\n }\n}\n\nMqttPublish.parameterSpec = [\n {\n type: 'string',\n name: 'topic',\n label: 'topic'\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nMqttPublish.help = 'integration/task/mqtt-publish'\n\nTaskRegistry.registerTaskHandler('mqtt-publish', MqttPublish)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mqtt-subscribe.js","sourceRoot":"","sources":["../../../server/engine/task/mqtt-subscribe.ts"],"names":[],"mappings":"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","sourcesContent":["import mqtt from 'async-mqtt'\n\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\nimport { sleep } from '@things-factory/utils'\n\nfunction convertDataFormat(data, format) {\n if (format == 'json') {\n return JSON.parse(data)\n } else {\n return data.toString()\n }\n}\n\nasync function MqttSubscribe(step, context) {\n const {\n connection: connectionName,\n params: { topic, dataFormat },\n name\n } = step\n\n const { domain, logger, closures, __mqtt_subscriber } = context\n if (!__mqtt_subscriber) {\n context.__mqtt_subscriber = {}\n }\n\n const {\n connection: {\n endpoint: uri,\n params: { user, password }\n }\n } = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n if (!topic) {\n throw Error(`topic is not found for ${connectionName}`)\n }\n\n /*\n * 1. subscriber list에서 subscriber를 찾는다. 없으면, 생성한다.\n * 2. client.once(...)로 메시지를 취한다.\n *\n * TODO 동일 브로커의 다중 subscribe 태스크에 대해서 완벽한 지원을 해야한다.\n * - 현재는 여러 태스크가 동일 topic을 subscribe 하는 경우에 정상동작하지 않을 것이다.\n */\n if (!context.__mqtt_subscriber[name]) {\n try {\n var broker = null\n if (user && password) {\n broker = await mqtt.connectAsync(uri, { username: user, password: password })\n } else {\n broker = await mqtt.connectAsync(uri)\n }\n\n logger.info(`mqtt-connector connection(${connectionName}:${uri}) is connected`)\n\n await broker.subscribe(topic)\n logger.info(`success subscribing topic '${topic}'`)\n\n var TOPIC\n var MESSAGE\n\n context.__mqtt_subscriber[name] = async () => {\n while (!MESSAGE) {\n await sleep(100)\n }\n\n var topic = TOPIC\n var message = MESSAGE\n\n TOPIC = null\n MESSAGE = null\n\n return {\n topic,\n message\n }\n }\n\n broker.on('message', async (messageTopic, message) => {\n if (topic !== messageTopic) {\n return\n }\n\n TOPIC = topic\n MESSAGE = convertDataFormat(message, dataFormat)\n\n // logger.info(`mqtt-subscribe :\\n'${message.toString()}'`)\n })\n\n closures.push(async () => {\n try {\n broker && (await broker.end())\n logger.info(`mqtt-connector connection(${connectionName}:${uri}) is disconnected`)\n } catch (e) {\n logger.error(e)\n }\n })\n } catch (e) {\n logger.error(e)\n }\n }\n\n var { message } = await context.__mqtt_subscriber[name]()\n\n return {\n data: message\n }\n}\n\nMqttSubscribe.parameterSpec = [\n {\n type: 'string',\n name: 'topic',\n label: 'topic'\n },\n {\n type: 'select',\n label: 'data-format',\n name: 'dataFormat',\n property: {\n options: [\n {\n display: 'Plain Text',\n value: 'text'\n },\n {\n display: 'JSON',\n value: 'json'\n }\n ]\n }\n }\n]\n\nMqttSubscribe.help = 'integration/task/mqtt-subscribe'\n\nTaskRegistry.registerTaskHandler('mqtt-subscribe', MqttSubscribe)\n"]}
1
+ {"version":3,"file":"mqtt-subscribe.js","sourceRoot":"","sources":["../../../server/engine/task/mqtt-subscribe.ts"],"names":[],"mappings":"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","sourcesContent":["import mqtt from 'async-mqtt'\n\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\nimport { sleep } from '@things-factory/utils'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nfunction convertDataFormat(data, format) {\n if (format == 'json') {\n return JSON.parse(data)\n } else {\n return data.toString()\n }\n}\n\nasync function MqttSubscribe(step: InputStep, context: Context) {\n const {\n connection: connectionName,\n params: { topic, dataFormat },\n name\n } = step\n\n const { domain, logger, closures, __mqtt_subscriber } = context\n if (!__mqtt_subscriber) {\n context.__mqtt_subscriber = {}\n }\n\n const {\n connection: {\n endpoint: uri,\n params: { user, password }\n }\n } = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n if (!topic) {\n throw Error(`topic is not found for ${connectionName}`)\n }\n\n /*\n * 1. subscriber list에서 subscriber를 찾는다. 없으면, 생성한다.\n * 2. client.once(...)로 메시지를 취한다.\n *\n * TODO 동일 브로커의 다중 subscribe 태스크에 대해서 완벽한 지원을 해야한다.\n * - 현재는 여러 태스크가 동일 topic을 subscribe 하는 경우에 정상동작하지 않을 것이다.\n */\n if (!context.__mqtt_subscriber[name]) {\n try {\n var broker = null\n if (user && password) {\n broker = await mqtt.connectAsync(uri, { username: user, password: password })\n } else {\n broker = await mqtt.connectAsync(uri)\n }\n\n logger.info(`mqtt-connector connection(${connectionName}:${uri}) is connected`)\n\n await broker.subscribe(topic)\n logger.info(`success subscribing topic '${topic}'`)\n\n var TOPIC\n var MESSAGE\n\n context.__mqtt_subscriber[name] = async () => {\n while (!MESSAGE) {\n await sleep(100)\n }\n\n var topic = TOPIC\n var message = MESSAGE\n\n TOPIC = null\n MESSAGE = null\n\n return {\n topic,\n message\n }\n }\n\n broker.on('message', async (messageTopic, message) => {\n if (topic !== messageTopic) {\n return\n }\n\n TOPIC = topic\n MESSAGE = convertDataFormat(message, dataFormat)\n\n // logger.info(`mqtt-subscribe :\\n'${message.toString()}'`)\n })\n\n closures.push(async () => {\n try {\n broker && (await broker.end())\n logger.info(`mqtt-connector connection(${connectionName}:${uri}) is disconnected`)\n } catch (e) {\n logger.error(e)\n }\n })\n } catch (e) {\n logger.error(e)\n }\n }\n\n var { message } = await context.__mqtt_subscriber[name]()\n\n return {\n data: message\n }\n}\n\nMqttSubscribe.parameterSpec = [\n {\n type: 'string',\n name: 'topic',\n label: 'topic'\n },\n {\n type: 'select',\n label: 'data-format',\n name: 'dataFormat',\n property: {\n options: [\n {\n display: 'Plain Text',\n value: 'text'\n },\n {\n display: 'JSON',\n value: 'json'\n }\n ]\n }\n }\n]\n\nMqttSubscribe.help = 'integration/task/mqtt-subscribe'\n\nTaskRegistry.registerTaskHandler('mqtt-subscribe', MqttSubscribe)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"oracle-procedure.js","sourceRoot":"","sources":["../../../server/engine/task/oracle-procedure.ts"],"names":[],"mappings":"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","sourcesContent":["import { VM } from 'vm2'\nimport { logger } from '@things-factory/env'\nimport { access } from '@things-factory/utils'\nimport { ConnectionManager } from '../connection-manager'\nimport { TaskRegistry } from '../task-registry'\n\ntry {\n var oracledb = require('oracledb')\n} catch (err) {\n logger.error('oracledb module loading failed')\n}\n\ntype ProcedureParameterType = {\n name: string\n dir: string\n type: string\n val?: any\n accessor?: string\n maxSize?: number\n}\n\ntype ValueType = {\n code?: string\n procedure?: string\n parameters?: ProcedureParameterType[]\n}\n\nconst TYPES = {\n Number: oracledb?.NUMBER,\n String: oracledb?.STRING,\n Date: oracledb?.DATE,\n Buffer: oracledb?.BUFFER,\n Blob: oracledb?.BLOB,\n Clob: oracledb?.CLOB,\n Cursor: oracledb?.CURSOR\n}\n\nconst DIR = {\n In: oracledb?.BIND_IN,\n Inout: oracledb?.BIND_INOUT,\n Out: oracledb?.BIND_OUT\n}\n\nasync function OracleProcedure(step, context) {\n var { domain, user, data, variables, lng } = context\n var { connection: connectionName, params } = step\n\n var { code = '', parameters = [] } = params.parameters as ValueType\n\n var dbconnection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n if (!code) {\n throw 'procedure code not defined'\n }\n\n code = vm.run('`' + code + '`')\n\n const procedureParameters =\n parameters &&\n parameters.reduce((sum, { name, val, dir, type, accessor, maxSize }) => {\n sum[name] = {\n dir: DIR[dir],\n type: TYPES[type]\n }\n\n const calculated = accessor ? access(accessor, data) || val : val\n\n if (calculated !== undefined) {\n sum[name].val =\n type == 'Date'\n ? new Date(calculated)\n : type == 'Number'\n ? Number(calculated)\n : type == 'String'\n ? String(calculated)\n : calculated\n }\n\n if (maxSize) {\n sum[name].maxSize = maxSize\n }\n\n return sum\n }, {})\n\n const result = await dbconnection.execute(code, procedureParameters)\n\n var taskResult = {}\n let paramKeys = Object.keys(procedureParameters)\n\n for (const paramKey of paramKeys) {\n if (procedureParameters[paramKey].dir === oracledb?.BIND_OUT) {\n if (procedureParameters[paramKey].type === oracledb?.CURSOR) {\n const resultSetTemp = result.outBinds[paramKey]\n taskResult[paramKey] = await resultSetTemp.getRows()\n await resultSetTemp.close()\n } else {\n taskResult[paramKey] = result.outBinds[paramKey]\n }\n }\n }\n\n return {\n data: taskResult\n }\n}\n\nOracleProcedure.parameterSpec = [\n {\n type: 'procedure-parameters',\n name: 'parameters',\n label: ''\n }\n]\n\nOracleProcedure.help = 'integration/task/oracle-procedure'\n\nTaskRegistry.registerTaskHandler('oracle-procedure', OracleProcedure)\n"]}
1
+ {"version":3,"file":"oracle-procedure.js","sourceRoot":"","sources":["../../../server/engine/task/oracle-procedure.ts"],"names":[],"mappings":";;AAAA,6BAAwB;AACxB,6CAA4C;AAC5C,iDAA8C;AAC9C,8DAAyD;AACzD,oDAA+C;AAI/C,IAAI;IACF,IAAI,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CACnC;AAAC,OAAO,GAAG,EAAE;IACZ,YAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;CAC/C;AAiBD,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM;IACxB,MAAM,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM;IACxB,IAAI,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI;IACpB,MAAM,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM;IACxB,IAAI,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI;IACpB,IAAI,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI;IACpB,MAAM,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM;CACzB,CAAA;AAED,MAAM,GAAG,GAAG;IACV,EAAE,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO;IACrB,KAAK,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU;IAC3B,GAAG,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ;CACxB,CAAA;AAED,KAAK,UAAU,eAAe,CAAC,IAAe,EAAE,OAAgB;IAC9D,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;IACpD,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAEjD,IAAI,EAAE,IAAI,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,MAAM,CAAC,UAAuB,CAAA;IAEnE,IAAI,YAAY,GAAG,sCAAiB,CAAC,2BAA2B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;IAExF,MAAM,EAAE,GAAG,IAAI,QAAE,CAAC;QAChB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,4BAA4B,CAAA;KACnC;IAED,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAA;IAE/B,MAAM,mBAAmB,GACvB,UAAU;QACV,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YACrE,GAAG,CAAC,IAAI,CAAC,GAAG;gBACV,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;gBACb,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;aAClB,CAAA;YAED,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;YAEjE,IAAI,UAAU,KAAK,SAAS,EAAE;gBAC5B,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG;oBACX,IAAI,IAAI,MAAM;wBACZ,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;wBACtB,CAAC,CAAC,IAAI,IAAI,QAAQ;4BAClB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;4BACpB,CAAC,CAAC,IAAI,IAAI,QAAQ;gCAClB,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;gCACpB,CAAC,CAAC,UAAU,CAAA;aACjB;YAED,IAAI,OAAO,EAAE;gBACX,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,OAAO,CAAA;aAC5B;YAED,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAAE,CAAC,CAAA;IAER,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAA;IAEpE,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAEhD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;QAChC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAK,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAA,EAAE;YAC5D,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC,IAAI,MAAK,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA,EAAE;gBAC3D,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBAC/C,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAA;gBACpD,MAAM,aAAa,CAAC,KAAK,EAAE,CAAA;aAC5B;iBAAM;gBACL,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;aACjD;SACF;KACF;IAED,OAAO;QACL,IAAI,EAAE,UAAU;KACjB,CAAA;AACH,CAAC;AAED,eAAe,CAAC,aAAa,GAAG;IAC9B;QACE,IAAI,EAAE,sBAAsB;QAC5B,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,EAAE;KACV;CACF,CAAA;AAED,eAAe,CAAC,IAAI,GAAG,mCAAmC,CAAA;AAE1D,4BAAY,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAA","sourcesContent":["import { VM } from 'vm2'\nimport { logger } from '@things-factory/env'\nimport { access } from '@things-factory/utils'\nimport { ConnectionManager } from '../connection-manager'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\ntry {\n var oracledb = require('oracledb')\n} catch (err) {\n logger.error('oracledb module loading failed')\n}\n\ntype ProcedureParameterType = {\n name: string\n dir: string\n type: string\n val?: any\n accessor?: string\n maxSize?: number\n}\n\ntype ValueType = {\n code?: string\n procedure?: string\n parameters?: ProcedureParameterType[]\n}\n\nconst TYPES = {\n Number: oracledb?.NUMBER,\n String: oracledb?.STRING,\n Date: oracledb?.DATE,\n Buffer: oracledb?.BUFFER,\n Blob: oracledb?.BLOB,\n Clob: oracledb?.CLOB,\n Cursor: oracledb?.CURSOR\n}\n\nconst DIR = {\n In: oracledb?.BIND_IN,\n Inout: oracledb?.BIND_INOUT,\n Out: oracledb?.BIND_OUT\n}\n\nasync function OracleProcedure(step: InputStep, context: Context) {\n var { domain, user, data, variables, lng } = context\n var { connection: connectionName, params } = step\n\n var { code = '', parameters = [] } = params.parameters as ValueType\n\n var dbconnection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n\n const vm = new VM({\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n if (!code) {\n throw 'procedure code not defined'\n }\n\n code = vm.run('`' + code + '`')\n\n const procedureParameters =\n parameters &&\n parameters.reduce((sum, { name, val, dir, type, accessor, maxSize }) => {\n sum[name] = {\n dir: DIR[dir],\n type: TYPES[type]\n }\n\n const calculated = accessor ? access(accessor, data) || val : val\n\n if (calculated !== undefined) {\n sum[name].val =\n type == 'Date'\n ? new Date(calculated)\n : type == 'Number'\n ? Number(calculated)\n : type == 'String'\n ? String(calculated)\n : calculated\n }\n\n if (maxSize) {\n sum[name].maxSize = maxSize\n }\n\n return sum\n }, {})\n\n const result = await dbconnection.execute(code, procedureParameters)\n\n var taskResult = {}\n let paramKeys = Object.keys(procedureParameters)\n\n for (const paramKey of paramKeys) {\n if (procedureParameters[paramKey].dir === oracledb?.BIND_OUT) {\n if (procedureParameters[paramKey].type === oracledb?.CURSOR) {\n const resultSetTemp = result.outBinds[paramKey]\n taskResult[paramKey] = await resultSetTemp.getRows()\n await resultSetTemp.close()\n } else {\n taskResult[paramKey] = result.outBinds[paramKey]\n }\n }\n }\n\n return {\n data: taskResult\n }\n}\n\nOracleProcedure.parameterSpec = [\n {\n type: 'procedure-parameters',\n name: 'parameters',\n label: ''\n }\n]\n\nOracleProcedure.help = 'integration/task/oracle-procedure'\n\nTaskRegistry.registerTaskHandler('oracle-procedure', OracleProcedure)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"pick-pending-scenario.js","sourceRoot":"","sources":["../../../server/engine/task/pick-pending-scenario.ts"],"names":[],"mappings":";;AAAA,iDAAqD;AACrD,iDAA6C;AAE7C,8DAA0D;AAC1D,wDAAmD;AACnD,oDAA+C;AAE/C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,uDAAuD,CAAC,CAAA;AAEvF,KAAK,UAAU,mBAAmB,CAAC,IAAI,EAAE,OAAO;IAC9C,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACtC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAE7C,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAA;IAEjC,MAAM,YAAY,GAAG,gCAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAE3D,2EAA2E;IAC3E,OAAO,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;QACnC,IAAI,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC5C,IAAI,KAAK,EAAE;YACT,MAAK;SACN;QAED,IAAI,MAAM,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACrD,IAAI,MAAM,IAAI,CAAC,EAAE;YACf,OAAO,EAAE,CAAA;SACV;QAED,MAAM,IAAA,aAAK,EAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;KACpC;IAED,IAAI,CAAC,KAAK,EAAE;QACV,OAAM;KACP;IAED,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAEnC,IAAI,WAAW,GAAG,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;QACtD,KAAK,EAAE;YACL,EAAE,EAAE,QAAQ;SACb;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,aAAa,WAAW,CAAC,IAAI,YAAY,CAAC,CAAA;IACtD,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,kCACxC,OAAO,KACV,IAAI,EAAE,EAAE,EACR,SAAS,IACT,CAAA;IACF,MAAM,CAAC,IAAI,CAAC,aAAa,WAAW,CAAC,IAAI,SAAS,CAAC,CAAA;IAEnD,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;KACtB,CAAA;AACH,CAAC;AAED,mBAAmB,CAAC,aAAa,GAAG;IAClC;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;KACb;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,eAAe;KAC7B;CACF,CAAA;AAED,mBAAmB,CAAC,aAAa,GAAG,IAAI,CAAA;AACxC,mBAAmB,CAAC,IAAI,GAAG,wCAAwC,CAAA;AAEnE,4BAAY,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\nimport { sleep } from '@things-factory/utils'\n\nimport { Scenario } from '../../service/scenario/scenario'\nimport { ScenarioEngine } from '../scenario-engine'\nimport { TaskRegistry } from '../task-registry'\n\nconst debug = require('debug')('things-factory:integration-base:pick-pending-scenario')\n\nasync function PickPendingScenario(step, context) {\n var { logger, load, domain } = context\n var { params } = step\n var { tag = '', waitFor = -1 } = params || {}\n\n waitFor = Number(waitFor) || -1\n const till = Date.now() + waitFor\n\n const pendingQueue = ScenarioEngine.getPendingQueue(domain)\n\n // long-term task need to check state whether this scenario is still going.\n while (true && context.checkState()) {\n var { stuff } = pendingQueue.pick(tag) || {}\n if (stuff) {\n break\n }\n\n let toTill = waitFor == -1 ? 1000 : till - Date.now()\n if (toTill <= 0) {\n return {}\n }\n\n await sleep(Math.min(1000, toTill))\n }\n\n if (!stuff) {\n return\n }\n\n var { scenario, variables } = stuff\n\n var subscenario = await getRepository(Scenario).findOne({\n where: {\n id: scenario\n },\n relations: ['steps', 'domain']\n })\n\n logger.info(`Scenario '${subscenario.name}' Started.`)\n var subContext = await load(step, subscenario, {\n ...context,\n data: {},\n variables\n })\n logger.info(`Scenario '${subscenario.name}' done.`)\n\n return {\n data: subContext.data\n }\n}\n\nPickPendingScenario.parameterSpec = [\n {\n type: 'string',\n name: 'tag',\n label: 'tag'\n },\n {\n type: 'number',\n name: 'waitFor',\n label: 'wait-for',\n placeHolder: 'milli-seconds'\n }\n]\n\nPickPendingScenario.connectorFree = true\nPickPendingScenario.help = 'integration/task/pick-pending-scenario'\n\nTaskRegistry.registerTaskHandler('pick-pending-scenario', PickPendingScenario)\n"]}
1
+ {"version":3,"file":"pick-pending-scenario.js","sourceRoot":"","sources":["../../../server/engine/task/pick-pending-scenario.ts"],"names":[],"mappings":";;AAAA,iDAAqD;AACrD,iDAA6C;AAE7C,8DAA0D;AAC1D,wDAAmD;AACnD,oDAA+C;AAI/C,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,uDAAuD,CAAC,CAAA;AAEvF,KAAK,UAAU,mBAAmB,CAAC,IAAe,EAAE,OAAgB;IAClE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACtC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,GAAG,MAAM,IAAI,EAAE,CAAA;IAE7C,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAA;IAEjC,MAAM,YAAY,GAAG,gCAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAE3D,2EAA2E;IAC3E,OAAO,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;QACnC,IAAI,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QAC5C,IAAI,KAAK,EAAE;YACT,MAAK;SACN;QAED,IAAI,MAAM,GAAG,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACrD,IAAI,MAAM,IAAI,CAAC,EAAE;YACf,OAAO,EAAE,CAAA;SACV;QAED,MAAM,IAAA,aAAK,EAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAA;KACpC;IAED,IAAI,CAAC,KAAK,EAAE;QACV,OAAM;KACP;IAED,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAEnC,IAAI,WAAW,GAAG,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;QACtD,KAAK,EAAE;YACL,EAAE,EAAE,QAAQ;SACb;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,aAAa,WAAW,CAAC,IAAI,YAAY,CAAC,CAAA;IACtD,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,kCACxC,OAAO,KACV,IAAI,EAAE,EAAE,EACR,SAAS,IACT,CAAA;IACF,MAAM,CAAC,IAAI,CAAC,aAAa,WAAW,CAAC,IAAI,SAAS,CAAC,CAAA;IAEnD,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;KACtB,CAAA;AACH,CAAC;AAED,mBAAmB,CAAC,aAAa,GAAG;IAClC;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;KACb;IACD;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,eAAe;KAC7B;CACF,CAAA;AAED,mBAAmB,CAAC,aAAa,GAAG,IAAI,CAAA;AACxC,mBAAmB,CAAC,IAAI,GAAG,wCAAwC,CAAA;AAEnE,4BAAY,CAAC,mBAAmB,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\nimport { sleep } from '@things-factory/utils'\n\nimport { Scenario } from '../../service/scenario/scenario'\nimport { ScenarioEngine } from '../scenario-engine'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nconst debug = require('debug')('things-factory:integration-base:pick-pending-scenario')\n\nasync function PickPendingScenario(step: InputStep, context: Context) {\n var { logger, load, domain } = context\n var { params } = step\n var { tag = '', waitFor = -1 } = params || {}\n\n waitFor = Number(waitFor) || -1\n const till = Date.now() + waitFor\n\n const pendingQueue = ScenarioEngine.getPendingQueue(domain)\n\n // long-term task need to check state whether this scenario is still going.\n while (true && context.checkState()) {\n var { stuff } = pendingQueue.pick(tag) || {}\n if (stuff) {\n break\n }\n\n let toTill = waitFor == -1 ? 1000 : till - Date.now()\n if (toTill <= 0) {\n return {}\n }\n\n await sleep(Math.min(1000, toTill))\n }\n\n if (!stuff) {\n return\n }\n\n var { scenario, variables } = stuff\n\n var subscenario = await getRepository(Scenario).findOne({\n where: {\n id: scenario\n },\n relations: ['steps', 'domain']\n })\n\n logger.info(`Scenario '${subscenario.name}' Started.`)\n var subContext = await load(step, subscenario, {\n ...context,\n data: {},\n variables\n })\n logger.info(`Scenario '${subscenario.name}' done.`)\n\n return {\n data: subContext.data\n }\n}\n\nPickPendingScenario.parameterSpec = [\n {\n type: 'string',\n name: 'tag',\n label: 'tag'\n },\n {\n type: 'number',\n name: 'waitFor',\n label: 'wait-for',\n placeHolder: 'milli-seconds'\n }\n]\n\nPickPendingScenario.connectorFree = true\nPickPendingScenario.help = 'integration/task/pick-pending-scenario'\n\nTaskRegistry.registerTaskHandler('pick-pending-scenario', PickPendingScenario)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../server/engine/task/publish.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAC9C,oDAA+C;AAE/C,KAAK,UAAU,OAAO,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;IACpD,IAAI,EACF,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAC1B,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;QACrB,MAAM,KAAK,CAAC,8CAA8C,GAAG,kBAAkB,QAAQ,GAAG,CAAC,CAAA;KAC5F;IAED,IAAI,KAAK,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAElC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAEnB,OAAO;QACL,IAAI,EAAE,KAAK;KACZ,CAAA;AACH,CAAC;AAED,OAAO,CAAC,aAAa,GAAG;IACtB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;KACb;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,OAAO,CAAC,aAAa,GAAG,IAAI,CAAA;AAC5B,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAA;AAEzC,4BAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA","sourcesContent":["import { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\n\nasync function Publish(step, { logger, publish, data }) {\n var {\n params: { tag, accessor }\n } = step\n\n if (!tag || !accessor) {\n throw Error(`tag and accessor should be defined: tag - '${tag}', accessor - '${accessor}'`)\n }\n\n var value = access(accessor, data)\n\n publish(tag, value)\n\n return {\n data: value\n }\n}\n\nPublish.parameterSpec = [\n {\n type: 'string',\n name: 'tag',\n label: 'tag'\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nPublish.connectorFree = true\nPublish.help = 'integration/task/publish'\n\nTaskRegistry.registerTaskHandler('publish', Publish)\n"]}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../server/engine/task/publish.ts"],"names":[],"mappings":";;AAAA,iDAA8C;AAC9C,oDAA+C;AAI/C,KAAK,UAAU,OAAO,CAAC,IAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAW;IACxE,IAAI,EACF,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAC1B,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE;QACrB,MAAM,KAAK,CAAC,8CAA8C,GAAG,kBAAkB,QAAQ,GAAG,CAAC,CAAA;KAC5F;IAED,IAAI,KAAK,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAElC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAEnB,OAAO;QACL,IAAI,EAAE,KAAK;KACZ,CAAA;AACH,CAAC;AAED,OAAO,CAAC,aAAa,GAAG;IACtB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;KACb;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,OAAO,CAAC,aAAa,GAAG,IAAI,CAAA;AAC5B,OAAO,CAAC,IAAI,GAAG,0BAA0B,CAAA;AAEzC,4BAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA","sourcesContent":["import { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function Publish(step: InputStep, { logger, publish, data }: Context) {\n var {\n params: { tag, accessor }\n } = step\n\n if (!tag || !accessor) {\n throw Error(`tag and accessor should be defined: tag - '${tag}', accessor - '${accessor}'`)\n }\n\n var value = access(accessor, data)\n\n publish(tag, value)\n\n return {\n data: value\n }\n}\n\nPublish.parameterSpec = [\n {\n type: 'string',\n name: 'tag',\n label: 'tag'\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nPublish.connectorFree = true\nPublish.help = 'integration/task/publish'\n\nTaskRegistry.registerTaskHandler('publish', Publish)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"random.js","sourceRoot":"","sources":["../../../server/engine/task/random.ts"],"names":[],"mappings":";;;AAAA,oDAA+C;AAC/C,4DAA2B;AAE3B,MAAM,OAAO,GAAG;IACd,uDAAuD;IACvD,kCAAkC;IAClC,8DAA8D;IAC9D,+DAA+D;IAC/D,6FAA6F;IAC7F,4HAA4H;IAC5H,2FAA2F;IAC3F,sEAAsE;IACtE,8CAA8C;CAC/C;KACE,IAAI,CAAC,GAAG,CAAC;KACT,KAAK,CAAC,GAAG,CAAC,CAAA;AAEb,KAAK,UAAU,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;IACnD,IAAI,EACF,MAAM,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,GAAG,CAAC,EAAE,EAC1C,GAAG,IAAI,CAAA;IAER,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAA;IAE3B,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;KACtC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,aAAa,GAAG;IACrB;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;SACrE;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,GAAG;KACjB;CACF,CAAA;AAED,MAAM,CAAC,aAAa,GAAG,IAAI,CAAA;AAC3B,MAAM,CAAC,IAAI,GAAG,yBAAyB,CAAA;AAEvC,4BAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\nimport Chance from 'chance'\n\nconst formats = [\n 'bool,character,floating,integer,letter,natural,string',\n 'paragraph,sentence,syllable,word',\n 'age,birthday,cf,cpf,first,gender,last,name,prefix,ssn,suffix',\n 'android_id,apple_token,bb_pin,wp7_anid,wp8_anid2,avatar,color',\n 'company,domain,email,fbid,google_analytics,hashtag,ip,ipv6,klout,profession,tld,twitter,url',\n 'address,altitude,areacode,city,coordinates,country,depth,geohash,latitude,longitude,phone,postal,province,state,street,zip',\n 'ampm,date,hammertime,hour,millisecond,minute,month,second,timestamp,timezone,weekday,year',\n 'cc,cc_type,currency,currency_pair,dollar,euro,exp,exp_month,exp_year',\n 'coin,d4,d6,d8,d10,d12,d20,d30,d100,guid,hash'\n]\n .join(',')\n .split(',')\n\nasync function Random(step, { logger, publish, data }) {\n var {\n params: { format = 'integer', count = 1 }\n } = step\n\n const chance = new Chance()\n\n return {\n data: chance.n(chance[format], count)\n }\n}\n\nRandom.parameterSpec = [\n {\n type: 'select',\n label: 'format',\n name: 'format',\n property: {\n options: formats.map(format => ({ display: format, value: format }))\n }\n },\n {\n type: 'number',\n label: 'count',\n name: 'count',\n placeholder: '1'\n }\n]\n\nRandom.connectorFree = true\nRandom.help = 'integration/task/random'\n\nTaskRegistry.registerTaskHandler('random', Random)\n"]}
1
+ {"version":3,"file":"random.js","sourceRoot":"","sources":["../../../server/engine/task/random.ts"],"names":[],"mappings":";;;AAAA,oDAA+C;AAC/C,4DAA2B;AAK3B,MAAM,OAAO,GAAG;IACd,uDAAuD;IACvD,kCAAkC;IAClC,8DAA8D;IAC9D,+DAA+D;IAC/D,6FAA6F;IAC7F,4HAA4H;IAC5H,2FAA2F;IAC3F,sEAAsE;IACtE,8CAA8C;CAC/C;KACE,IAAI,CAAC,GAAG,CAAC;KACT,KAAK,CAAC,GAAG,CAAC,CAAA;AAEb,KAAK,UAAU,MAAM,CAAC,IAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAW;IACvE,IAAI,EACF,MAAM,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,GAAG,CAAC,EAAE,EAC1C,GAAG,IAAI,CAAA;IAER,MAAM,MAAM,GAAG,IAAI,gBAAM,EAAE,CAAA;IAE3B,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC;KACtC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,aAAa,GAAG;IACrB;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE;YACR,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;SACrE;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,GAAG;KACjB;CACF,CAAA;AAED,MAAM,CAAC,aAAa,GAAG,IAAI,CAAA;AAC3B,MAAM,CAAC,IAAI,GAAG,yBAAyB,CAAA;AAEvC,4BAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\nimport Chance from 'chance'\n\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nconst formats = [\n 'bool,character,floating,integer,letter,natural,string',\n 'paragraph,sentence,syllable,word',\n 'age,birthday,cf,cpf,first,gender,last,name,prefix,ssn,suffix',\n 'android_id,apple_token,bb_pin,wp7_anid,wp8_anid2,avatar,color',\n 'company,domain,email,fbid,google_analytics,hashtag,ip,ipv6,klout,profession,tld,twitter,url',\n 'address,altitude,areacode,city,coordinates,country,depth,geohash,latitude,longitude,phone,postal,province,state,street,zip',\n 'ampm,date,hammertime,hour,millisecond,minute,month,second,timestamp,timezone,weekday,year',\n 'cc,cc_type,currency,currency_pair,dollar,euro,exp,exp_month,exp_year',\n 'coin,d4,d6,d8,d10,d12,d20,d30,d100,guid,hash'\n]\n .join(',')\n .split(',')\n\nasync function Random(step: InputStep, { logger, publish, data }: Context) {\n var {\n params: { format = 'integer', count = 1 }\n } = step\n\n const chance = new Chance()\n\n return {\n data: chance.n(chance[format], count)\n }\n}\n\nRandom.parameterSpec = [\n {\n type: 'select',\n label: 'format',\n name: 'format',\n property: {\n options: formats.map(format => ({ display: format, value: format }))\n }\n },\n {\n type: 'number',\n label: 'count',\n name: 'count',\n placeholder: '1'\n }\n]\n\nRandom.connectorFree = true\nRandom.help = 'integration/task/random'\n\nTaskRegistry.registerTaskHandler('random', Random)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"reset-pending-queue.js","sourceRoot":"","sources":["../../../server/engine/task/reset-pending-queue.ts"],"names":[],"mappings":";;AAAA,oDAA+C;AAC/C,wDAAmD;AAEnD,KAAK,UAAU,oBAAoB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE;IAClD,MAAM,YAAY,GAAG,gCAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAC3D,YAAY,CAAC,KAAK,EAAE,CAAA;IAEpB,OAAO,EAAE,CAAA;AACX,CAAC;AAED,oBAAoB,CAAC,aAAa,GAAG,EAAE,CAAA;AAEvC,oBAAoB,CAAC,aAAa,GAAG,IAAI,CAAA;AAEzC,4BAAY,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\nimport { ScenarioEngine } from '../scenario-engine'\n\nasync function ResetPendingScenario(step, { domain }) {\n const pendingQueue = ScenarioEngine.getPendingQueue(domain)\n pendingQueue.reset()\n\n return {}\n}\n\nResetPendingScenario.parameterSpec = []\n\nResetPendingScenario.connectorFree = true\n\nTaskRegistry.registerTaskHandler('reset-pending-scenario', ResetPendingScenario)\n"]}
1
+ {"version":3,"file":"reset-pending-queue.js","sourceRoot":"","sources":["../../../server/engine/task/reset-pending-queue.ts"],"names":[],"mappings":";;AAAA,oDAA+C;AAC/C,wDAAmD;AAInD,KAAK,UAAU,oBAAoB,CAAC,IAAe,EAAE,EAAE,MAAM,EAAW;IACtE,MAAM,YAAY,GAAG,gCAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAC3D,YAAY,CAAC,KAAK,EAAE,CAAA;IAEpB,OAAO,EAAE,CAAA;AACX,CAAC;AAED,oBAAoB,CAAC,aAAa,GAAG,EAAE,CAAA;AAEvC,oBAAoB,CAAC,aAAa,GAAG,IAAI,CAAA;AAEzC,4BAAY,CAAC,mBAAmB,CAAC,wBAAwB,EAAE,oBAAoB,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\nimport { ScenarioEngine } from '../scenario-engine'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function ResetPendingScenario(step: InputStep, { domain }: Context) {\n const pendingQueue = ScenarioEngine.getPendingQueue(domain)\n pendingQueue.reset()\n\n return {}\n}\n\nResetPendingScenario.parameterSpec = []\n\nResetPendingScenario.connectorFree = true\n\nTaskRegistry.registerTaskHandler('reset-pending-scenario', ResetPendingScenario)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"script.js","sourceRoot":"","sources":["../../../server/engine/task/script.ts"],"names":[],"mappings":";;AAAA,oDAA+C;AAC/C,6BAA4B;AAE5B,KAAK,UAAU,MAAM,CAAC,IAAI,EAAE,OAAO;IACjC,IAAI,EACF,MAAM,EAAE,EAAE,MAAM,EAAE,EACnB,GAAG,IAAI,CAAA;IAER,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE9D,MAAM,EAAE,GAAG,IAAI,YAAM,CAAC;QACpB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,0BAA0B,MAAM,QAAQ,CAAC,CAAA;IAEnE,OAAO;QACL,IAAI,EAAE,MAAM;KACb,CAAA;AACH,CAAC;AAED,MAAM,CAAC,aAAa,GAAG;IACrB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,YAAY;SACvB;KACF;CACF,CAAA;AAED,MAAM,CAAC,aAAa,GAAG,IAAI,CAAA;AAC3B,MAAM,CAAC,IAAI,GAAG,yBAAyB,CAAA;AAEvC,4BAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\nimport { NodeVM } from 'vm2'\n\nasync function Script(step, context) {\n var {\n params: { script }\n } = step\n\n const { domain, user, data, variables, lng, logger } = context\n\n const vm = new NodeVM({\n timeout: 5000,\n wrapper: 'none',\n console: 'inherit',\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n var result = await vm.run(`return (async () => {\\n${script}\\n})()`)\n\n return {\n data: result\n }\n}\n\nScript.parameterSpec = [\n {\n type: 'textarea',\n name: 'script',\n label: 'script',\n property: {\n language: 'javascript'\n }\n }\n]\n\nScript.connectorFree = true\nScript.help = 'integration/task/script'\n\nTaskRegistry.registerTaskHandler('script', Script)\n"]}
1
+ {"version":3,"file":"script.js","sourceRoot":"","sources":["../../../server/engine/task/script.ts"],"names":[],"mappings":";;AAAA,oDAA+C;AAC/C,6BAA4B;AAK5B,KAAK,UAAU,MAAM,CAAC,IAAe,EAAE,OAAgB;IACrD,IAAI,EACF,MAAM,EAAE,EAAE,MAAM,EAAE,EACnB,GAAG,IAAI,CAAA;IAER,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAE9D,MAAM,EAAE,GAAG,IAAI,YAAM,CAAC;QACpB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE;YACP,MAAM;YACN,IAAI;YACJ,GAAG;YACH,IAAI;YACJ,SAAS;SACV;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,0BAA0B,MAAM,QAAQ,CAAC,CAAA;IAEnE,OAAO;QACL,IAAI,EAAE,MAAM;KACb,CAAA;AACH,CAAC;AAED,MAAM,CAAC,aAAa,GAAG;IACrB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,YAAY;SACvB;KACF;CACF,CAAA;AAED,MAAM,CAAC,aAAa,GAAG,IAAI,CAAA;AAC3B,MAAM,CAAC,IAAI,GAAG,yBAAyB,CAAA;AAEvC,4BAAY,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\nimport { NodeVM } from 'vm2'\n\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function Script(step: InputStep, context: Context) {\n var {\n params: { script }\n } = step\n\n const { domain, user, data, variables, lng, logger } = context\n\n const vm = new NodeVM({\n timeout: 5000,\n wrapper: 'none',\n console: 'inherit',\n sandbox: {\n domain,\n user,\n lng,\n data,\n variables\n }\n })\n\n var result = await vm.run(`return (async () => {\\n${script}\\n})()`)\n\n return {\n data: result\n }\n}\n\nScript.parameterSpec = [\n {\n type: 'textarea',\n name: 'script',\n label: 'script',\n property: {\n language: 'javascript'\n }\n }\n]\n\nScript.connectorFree = true\nScript.help = 'integration/task/script'\n\nTaskRegistry.registerTaskHandler('script', Script)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"set-domain.js","sourceRoot":"","sources":["../../../server/engine/task/set-domain.ts"],"names":[],"mappings":";;AAAA,oDAA+C;AAC/C,iDAA6D;AAE7D,KAAK,UAAU,SAAS,CAAC,IAAI,EAAE,OAAO;IACpC,IAAI,EACF,MAAM,EAAE,EAAE,SAAS,EAAE,EACtB,GAAG,IAAI,CAAA;IAER,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;IAEtC,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,EAAE,CAAC,CAAA;IAErC,IAAI,SAAS,EAAE;QACb,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,MAAM,CAAA;KAClF;IAED,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,kBAAkB;KAC1C,CAAA;AACH,CAAC;AAED,SAAS,CAAC,aAAa,GAAG;IACxB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,WAAW;QACxB,KAAK,EAAE,WAAW;KACnB;CACF,CAAA;AAED,SAAS,CAAC,aAAa,GAAG,IAAI,CAAA;AAC9B,SAAS,CAAC,IAAI,GAAG,6BAA6B,CAAA;AAE9C,4BAAY,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nasync function SetDomain(step, context) {\n var {\n params: { subdomain }\n } = step\n\n var { logger, domain } = context || {}\n\n logger.info(`domain => ${subdomain}`)\n\n if (subdomain) {\n context.domain = (await getRepository(Domain).findOneBy({ subdomain })) || domain\n }\n\n return {\n data: domain.subdomain // previous domain\n }\n}\n\nSetDomain.parameterSpec = [\n {\n type: 'string',\n name: 'subdomain',\n placeholder: 'subdomain',\n label: 'subdomain'\n }\n]\n\nSetDomain.connectorFree = true\nSetDomain.help = 'integration/task/set-domain'\n\nTaskRegistry.registerTaskHandler('set-domain', SetDomain)\n"]}
1
+ {"version":3,"file":"set-domain.js","sourceRoot":"","sources":["../../../server/engine/task/set-domain.ts"],"names":[],"mappings":";;AAAA,oDAA+C;AAC/C,iDAA6D;AAK7D,KAAK,UAAU,SAAS,CAAC,IAAe,EAAE,OAAgB;IACxD,IAAI,EACF,MAAM,EAAE,EAAE,SAAS,EAAE,EACtB,GAAG,IAAI,CAAA;IAER,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;IAEtC,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,EAAE,CAAC,CAAA;IAErC,IAAI,SAAS,EAAE;QACb,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,MAAM,CAAA;KAClF;IAED,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,kBAAkB;KAC1C,CAAA;AACH,CAAC;AAED,SAAS,CAAC,aAAa,GAAG;IACxB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,WAAW;QACxB,KAAK,EAAE,WAAW;KACnB;CACF,CAAA;AAED,SAAS,CAAC,aAAa,GAAG,IAAI,CAAA;AAC9B,SAAS,CAAC,IAAI,GAAG,6BAA6B,CAAA;AAE9C,4BAAY,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA","sourcesContent":["import { TaskRegistry } from '../task-registry'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function SetDomain(step: InputStep, context: Context) {\n var {\n params: { subdomain }\n } = step\n\n var { logger, domain } = context || {}\n\n logger.info(`domain => ${subdomain}`)\n\n if (subdomain) {\n context.domain = (await getRepository(Domain).findOneBy({ subdomain })) || domain\n }\n\n return {\n data: domain.subdomain // previous domain\n }\n}\n\nSetDomain.parameterSpec = [\n {\n type: 'string',\n name: 'subdomain',\n placeholder: 'subdomain',\n label: 'subdomain'\n }\n]\n\nSetDomain.connectorFree = true\nSetDomain.help = 'integration/task/set-domain'\n\nTaskRegistry.registerTaskHandler('set-domain', SetDomain)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../server/engine/task/sleep.ts"],"names":[],"mappings":";;AAAA,iDAA6C;AAC7C,oDAA+C;AAE/C,KAAK,UAAU,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE;IACnC,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,EACrB,GAAG,IAAI,CAAA;IAER,MAAM,CAAC,IAAI,CAAC,SAAS,QAAQ,IAAI,CAAC,CAAA;IAElC,IAAI,QAAQ,EAAE;QACZ,MAAM,IAAA,aAAK,EAAC,QAAQ,CAAC,CAAA;KACtB;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;KACf,CAAA;AACH,CAAC;AAED,KAAK,CAAC,aAAa,GAAG;IACpB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,eAAe;QAC5B,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,KAAK,CAAC,aAAa,GAAG,IAAI,CAAA;AAC1B,KAAK,CAAC,IAAI,GAAG,wBAAwB,CAAA;AAErC,4BAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA","sourcesContent":["import { sleep } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\n\nasync function Sleep(step, { logger }) {\n var {\n params: { duration }\n } = step\n\n logger.info(`sleep ${duration}ms`)\n\n if (duration) {\n await sleep(duration)\n }\n\n return {\n data: duration\n }\n}\n\nSleep.parameterSpec = [\n {\n type: 'number',\n name: 'duration',\n placeholder: 'milli-seconds',\n label: 'duration'\n }\n]\n\nSleep.connectorFree = true\nSleep.help = 'integration/task/sleep'\n\nTaskRegistry.registerTaskHandler('sleep', Sleep)\n"]}
1
+ {"version":3,"file":"sleep.js","sourceRoot":"","sources":["../../../server/engine/task/sleep.ts"],"names":[],"mappings":";;AAAA,iDAA6C;AAC7C,oDAA+C;AAI/C,KAAK,UAAU,KAAK,CAAC,IAAe,EAAE,EAAE,MAAM,EAAW;IACvD,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,EACrB,GAAG,IAAI,CAAA;IAER,MAAM,CAAC,IAAI,CAAC,SAAS,QAAQ,IAAI,CAAC,CAAA;IAElC,IAAI,QAAQ,EAAE;QACZ,MAAM,IAAA,aAAK,EAAC,QAAQ,CAAC,CAAA;KACtB;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;KACf,CAAA;AACH,CAAC;AAED,KAAK,CAAC,aAAa,GAAG;IACpB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,eAAe;QAC5B,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,KAAK,CAAC,aAAa,GAAG,IAAI,CAAA;AAC1B,KAAK,CAAC,IAAI,GAAG,wBAAwB,CAAA;AAErC,4BAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA","sourcesContent":["import { sleep } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function Sleep(step: InputStep, { logger }: Context) {\n var {\n params: { duration }\n } = step\n\n logger.info(`sleep ${duration}ms`)\n\n if (duration) {\n await sleep(duration)\n }\n\n return {\n data: duration\n }\n}\n\nSleep.parameterSpec = [\n {\n type: 'number',\n name: 'duration',\n placeholder: 'milli-seconds',\n label: 'duration'\n }\n]\n\nSleep.connectorFree = true\nSleep.help = 'integration/task/sleep'\n\nTaskRegistry.registerTaskHandler('sleep', Sleep)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"socket-listener.js","sourceRoot":"","sources":["../../../server/engine/task/socket-listener.ts"],"names":[],"mappings":"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","sourcesContent":["import { sleep } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\n\nfunction convertDataFormat(data, format) {\n try {\n if (format == 'json') {\n return JSON.parse(data)\n } else if (format == 'csv') {\n return data.split(',')\n }\n } catch (e) {\n return data.toString()\n }\n\n return data\n}\n\nasync function SocketListener(step, context) {\n //get connection data\n const {\n connection: connectionName,\n params: { dataFormat = 'JSON' },\n name\n } = step\n\n const { domain, logger, closures, __socket_listener } = context\n logger.info('\\r\\n')\n if (!__socket_listener) {\n context.__socket_listener = {}\n }\n\n // get socket information from connection\n var connection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n if (!connection) {\n throw new Error(`connector '${connectionName}' is not established.`)\n }\n\n /*\n * 1. listner list에서 listner를 찾는다. 없으면, 생성한다.\n */\n if (!context.__socket_listener[name]) {\n try {\n var MESSAGES = []\n context.__socket_listener[name] = async () => {\n while (MESSAGES.length == 0) {\n await sleep(100)\n }\n var message = MESSAGES.shift()\n return {\n message\n }\n }\n\n await connection.addListener('socket-message-arrive', async message => {\n logger.info(message.toString())\n MESSAGES.push(convertDataFormat(message.toString(), dataFormat))\n })\n } catch (e) {\n logger.error(e)\n }\n }\n\n var { message } = await context.__socket_listener[name]()\n\n return {\n data: message\n }\n}\n\nSocketListener.parameterSpec = [\n {\n type: 'select',\n label: 'data-format',\n name: 'dataFormat',\n property: {\n options: [\n {\n display: 'CSV',\n value: 'csv'\n },\n {\n display: 'JSON',\n value: 'json'\n },\n {\n display: 'String',\n value: 'string'\n }\n ]\n }\n }\n]\nTaskRegistry.registerTaskHandler('socket-listener', SocketListener)\n"]}
1
+ {"version":3,"file":"socket-listener.js","sourceRoot":"","sources":["../../../server/engine/task/socket-listener.ts"],"names":[],"mappings":"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","sourcesContent":["import { sleep } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\nimport { ConnectionManager } from '../connection-manager'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nfunction convertDataFormat(data, format) {\n try {\n if (format == 'json') {\n return JSON.parse(data)\n } else if (format == 'csv') {\n return data.split(',')\n }\n } catch (e) {\n return data.toString()\n }\n\n return data\n}\n\nasync function SocketListener(step: InputStep, context: Context) {\n //get connection data\n const {\n connection: connectionName,\n params: { dataFormat = 'JSON' },\n name\n } = step\n\n const { domain, logger, closures, __socket_listener } = context\n logger.info('\\r\\n')\n if (!__socket_listener) {\n context.__socket_listener = {}\n }\n\n // get socket information from connection\n var connection = ConnectionManager.getConnectionInstanceByName(domain, connectionName)\n if (!connection) {\n throw new Error(`connector '${connectionName}' is not established.`)\n }\n\n /*\n * 1. listner list에서 listner를 찾는다. 없으면, 생성한다.\n */\n if (!context.__socket_listener[name]) {\n try {\n var MESSAGES = []\n context.__socket_listener[name] = async () => {\n while (MESSAGES.length == 0) {\n await sleep(100)\n }\n var message = MESSAGES.shift()\n return {\n message\n }\n }\n\n await connection.addListener('socket-message-arrive', async message => {\n logger.info(message.toString())\n MESSAGES.push(convertDataFormat(message.toString(), dataFormat))\n })\n } catch (e) {\n logger.error(e)\n }\n }\n\n var { message } = await context.__socket_listener[name]()\n\n return {\n data: message\n }\n}\n\nSocketListener.parameterSpec = [\n {\n type: 'select',\n label: 'data-format',\n name: 'dataFormat',\n property: {\n options: [\n {\n display: 'CSV',\n value: 'csv'\n },\n {\n display: 'JSON',\n value: 'json'\n },\n {\n display: 'String',\n value: 'string'\n }\n ]\n }\n }\n]\nTaskRegistry.registerTaskHandler('socket-listener', SocketListener)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"state-read.js","sourceRoot":"","sources":["../../../server/engine/task/state-read.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,oDAA+C;AAE/C,KAAK,UAAU,SAAS,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;;IAC5E,IAAI,EACF,MAAM,EAAE,EAAE,IAAI,EAAE,EACjB,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,KAAK,CAAC,mCAAmC,IAAI,GAAG,CAAC,CAAA;KACxD;IAED,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QACrD,KAAK,EAAE,IAAA,qBAAG,EAAA;;;;;;KAMT;QACD,SAAS,EAAE;YACT,IAAI;SACL;QACD,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,IAAI,EAAE,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,mBAAmB,0CAAE,KAAK;KAC9C,CAAA;AACH,CAAC;AAED,SAAS,CAAC,aAAa,GAAG;IACxB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;CACF,CAAA;AAED,SAAS,CAAC,aAAa,GAAG,IAAI,CAAA;AAC9B,SAAS,CAAC,IAAI,GAAG,6BAA6B,CAAA;AAE9C,4BAAY,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { TaskRegistry } from '../task-registry'\n\nasync function StateRead(step, { logger, publish, data, domain, user, client }) {\n var {\n params: { name }\n } = step\n\n if (!name) {\n throw Error(`name should be defined: name - '${name}'`)\n }\n\n var { data: queryResult, errors } = await client.query({\n query: gql`\n query ($name: String!) {\n stateRegisterByName(name: $name) {\n state\n }\n }\n `,\n variables: {\n name\n },\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: queryResult?.stateRegisterByName?.state\n }\n}\n\nStateRead.parameterSpec = [\n {\n type: 'string',\n name: 'name',\n label: 'name'\n }\n]\n\nStateRead.connectorFree = true\nStateRead.help = 'integration/task/state-read'\n\nTaskRegistry.registerTaskHandler('state-read', StateRead)\n"]}
1
+ {"version":3,"file":"state-read.js","sourceRoot":"","sources":["../../../server/engine/task/state-read.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,oDAA+C;AAI/C,KAAK,UAAU,SAAS,CAAC,IAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAW;;IAChG,IAAI,EACF,MAAM,EAAE,EAAE,IAAI,EAAE,EACjB,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,KAAK,CAAC,mCAAmC,IAAI,GAAG,CAAC,CAAA;KACxD;IAED,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC;QACrD,KAAK,EAAE,IAAA,qBAAG,EAAA;;;;;;KAMT;QACD,SAAS,EAAE;YACT,IAAI;SACL;QACD,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,IAAI,EAAE,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,mBAAmB,0CAAE,KAAK;KAC9C,CAAA;AACH,CAAC;AAED,SAAS,CAAC,aAAa,GAAG;IACxB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;CACF,CAAA;AAED,SAAS,CAAC,aAAa,GAAG,IAAI,CAAA;AAC9B,SAAS,CAAC,IAAI,GAAG,6BAA6B,CAAA;AAE9C,4BAAY,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function StateRead(step: InputStep, { logger, publish, data, domain, user, client }: Context) {\n var {\n params: { name }\n } = step\n\n if (!name) {\n throw Error(`name should be defined: name - '${name}'`)\n }\n\n var { data: queryResult, errors } = await client.query({\n query: gql`\n query ($name: String!) {\n stateRegisterByName(name: $name) {\n state\n }\n }\n `,\n variables: {\n name\n },\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: queryResult?.stateRegisterByName?.state\n }\n}\n\nStateRead.parameterSpec = [\n {\n type: 'string',\n name: 'name',\n label: 'name'\n }\n]\n\nStateRead.connectorFree = true\nStateRead.help = 'integration/task/state-read'\n\nTaskRegistry.registerTaskHandler('state-read', StateRead)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"state-write.js","sourceRoot":"","sources":["../../../server/engine/task/state-write.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,iDAA8C;AAC9C,oDAA+C;AAE/C,KAAK,UAAU,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;;IAC7E,IAAI,EACF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC3B,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;QACtB,MAAM,KAAK,CAAC,gDAAgD,IAAI,kBAAkB,QAAQ,GAAG,CAAC,CAAA;KAC/F;IAED,IAAI,KAAK,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAElC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACvD,QAAQ,EAAE,IAAA,qBAAG,EAAA;;;;;;KAMZ;QACD,SAAS,EAAE;YACT,IAAI;YACJ,KAAK;SACN;QACD,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,IAAI,EAAE,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,yBAAyB,0CAAE,KAAK;KACrD,CAAA;AACH,CAAC;AAED,UAAU,CAAC,aAAa,GAAG;IACzB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,UAAU,CAAC,aAAa,GAAG,IAAI,CAAA;AAC/B,UAAU,CAAC,IAAI,GAAG,8BAA8B,CAAA;AAEhD,4BAAY,CAAC,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\n\nasync function StateWrite(step, { logger, publish, data, domain, user, client }) {\n var {\n params: { name, accessor }\n } = step\n\n if (!name || !accessor) {\n throw Error(`name and accessor should be defined: name - '${name}', accessor - '${accessor}'`)\n }\n\n var state = access(accessor, data)\n\n var { data: mutateResult, errors } = await client.mutate({\n mutation: gql`\n mutation ($state: Object!, $name: String!) {\n updateStateRegisterByName(state: $state, name: $name) {\n state\n }\n }\n `,\n variables: {\n name,\n state\n },\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: mutateResult?.updateStateRegisterByName?.state\n }\n}\n\nStateWrite.parameterSpec = [\n {\n type: 'string',\n name: 'name',\n label: 'name'\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nStateWrite.connectorFree = true\nStateWrite.help = 'integration/task/state-write'\n\nTaskRegistry.registerTaskHandler('state-write', StateWrite)\n"]}
1
+ {"version":3,"file":"state-write.js","sourceRoot":"","sources":["../../../server/engine/task/state-write.ts"],"names":[],"mappings":";;;AAAA,sEAA6B;AAC7B,iDAA8C;AAC9C,oDAA+C;AAI/C,KAAK,UAAU,UAAU,CAAC,IAAe,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAW;;IACjG,IAAI,EACF,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC3B,GAAG,IAAI,CAAA;IAER,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;QACtB,MAAM,KAAK,CAAC,gDAAgD,IAAI,kBAAkB,QAAQ,GAAG,CAAC,CAAA;KAC/F;IAED,IAAI,KAAK,GAAG,IAAA,cAAM,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAElC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QACvD,QAAQ,EAAE,IAAA,qBAAG,EAAA;;;;;;KAMZ;QACD,SAAS,EAAE;YACT,IAAI;YACJ,KAAK;SACN;QACD,OAAO,EAAE;YACP,KAAK,EAAE;gBACL,MAAM;gBACN,IAAI;aACL;SACF;KACF,CAAC,CAAA;IAEF,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACrB,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;KACH;IAED,OAAO;QACL,IAAI,EAAE,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,yBAAyB,0CAAE,KAAK;KACrD,CAAA;AACH,CAAC;AAED,UAAU,CAAC,aAAa,GAAG;IACzB;QACE,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,MAAM;KACd;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAA;AAED,UAAU,CAAC,aAAa,GAAG,IAAI,CAAA;AAC/B,UAAU,CAAC,IAAI,GAAG,8BAA8B,CAAA;AAEhD,4BAAY,CAAC,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA","sourcesContent":["import gql from 'graphql-tag'\nimport { access } from '@things-factory/utils'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function StateWrite(step: InputStep, { logger, publish, data, domain, user, client }: Context) {\n var {\n params: { name, accessor }\n } = step\n\n if (!name || !accessor) {\n throw Error(`name and accessor should be defined: name - '${name}', accessor - '${accessor}'`)\n }\n\n var state = access(accessor, data)\n\n var { data: mutateResult, errors } = await client.mutate({\n mutation: gql`\n mutation ($state: Object!, $name: String!) {\n updateStateRegisterByName(state: $state, name: $name) {\n state\n }\n }\n `,\n variables: {\n name,\n state\n },\n context: {\n state: {\n domain,\n user\n }\n }\n })\n\n if (errors) {\n errors.forEach(error => {\n logger.error('GraphQL Error: %s', error)\n })\n }\n\n return {\n data: mutateResult?.updateStateRegisterByName?.state\n }\n}\n\nStateWrite.parameterSpec = [\n {\n type: 'string',\n name: 'name',\n label: 'name'\n },\n {\n type: 'scenario-step-input',\n name: 'accessor',\n label: 'accessor'\n }\n]\n\nStateWrite.connectorFree = true\nStateWrite.help = 'integration/task/state-write'\n\nTaskRegistry.registerTaskHandler('state-write', StateWrite)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"stop-scenario.js","sourceRoot":"","sources":["../../../server/engine/task/stop-scenario.ts"],"names":[],"mappings":";;AAAA,iDAAqD;AAErD,8DAA0D;AAC1D,yCAA6C;AAC7C,oDAA+C;AAE/C,KAAK,UAAU,YAAY,CAAC,IAAI,EAAE,OAAO;IACvC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAChC,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,EACrB,GAAG,IAAI,CAAA;IAER,sCAAsC;IACtC,IAAI,aAAa,GAAG,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;QACxD,KAAK,EAAE;YACL,EAAE,EAAE,QAAQ;SACb;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,uBAAc,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAA;IACxD,MAAM,CAAC,IAAI,CAAC,aAAa,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,2BAA2B,CAAC,CAAA;IAExE,OAAO;QACL,IAAI,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI;KAC1B,CAAA;AACH,CAAC;AAED,YAAY,CAAC,aAAa,GAAG;IAC3B;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE;YACR,SAAS,EAAE,WAAW;SACvB;KACF;CACF,CAAA;AAED,YAAY,CAAC,aAAa,GAAG,IAAI,CAAA;AAEjC,4BAAY,CAAC,mBAAmB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { Scenario } from '../../service/scenario/scenario'\nimport { ScenarioEngine } from '../../engine'\nimport { TaskRegistry } from '../task-registry'\n\nasync function StopScenario(step, context) {\n var { logger, domain } = context\n var {\n params: { scenario }\n } = step\n\n // find the name of the input scenario\n var foundScenario = await getRepository(Scenario).findOne({\n where: {\n id: scenario\n },\n relations: ['steps', 'domain']\n })\n\n await ScenarioEngine.unload(domain, foundScenario?.name)\n logger.info(`Scenario '${foundScenario?.name}' is about to be stopped.`)\n\n return {\n data: foundScenario?.name\n }\n}\n\nStopScenario.parameterSpec = [\n {\n type: 'entity-selector',\n name: 'scenario',\n label: 'scenario',\n property: {\n queryName: 'scenarios'\n }\n }\n]\n\nStopScenario.connectorFree = true\n\nTaskRegistry.registerTaskHandler('scenario-stop', StopScenario)\n"]}
1
+ {"version":3,"file":"stop-scenario.js","sourceRoot":"","sources":["../../../server/engine/task/stop-scenario.ts"],"names":[],"mappings":";;AAAA,iDAAqD;AAErD,8DAA0D;AAC1D,yCAA6C;AAC7C,oDAA+C;AAI/C,KAAK,UAAU,YAAY,CAAC,IAAe,EAAE,OAAgB;IAC3D,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IAChC,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,EACrB,GAAG,IAAI,CAAA;IAER,sCAAsC;IACtC,IAAI,aAAa,GAAG,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;QACxD,KAAK,EAAE;YACL,EAAE,EAAE,QAAQ;SACb;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,uBAAc,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CAAC,CAAA;IACxD,MAAM,CAAC,IAAI,CAAC,aAAa,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,2BAA2B,CAAC,CAAA;IAExE,OAAO;QACL,IAAI,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI;KAC1B,CAAA;AACH,CAAC;AAED,YAAY,CAAC,aAAa,GAAG;IAC3B;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE;YACR,SAAS,EAAE,WAAW;SACvB;KACF;CACF,CAAA;AAED,YAAY,CAAC,aAAa,GAAG,IAAI,CAAA;AAEjC,4BAAY,CAAC,mBAAmB,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\n\nimport { Scenario } from '../../service/scenario/scenario'\nimport { ScenarioEngine } from '../../engine'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function StopScenario(step: InputStep, context: Context) {\n var { logger, domain } = context\n var {\n params: { scenario }\n } = step\n\n // find the name of the input scenario\n var foundScenario = await getRepository(Scenario).findOne({\n where: {\n id: scenario\n },\n relations: ['steps', 'domain']\n })\n\n await ScenarioEngine.unload(domain, foundScenario?.name)\n logger.info(`Scenario '${foundScenario?.name}' is about to be stopped.`)\n\n return {\n data: foundScenario?.name\n }\n}\n\nStopScenario.parameterSpec = [\n {\n type: 'entity-selector',\n name: 'scenario',\n label: 'scenario',\n property: {\n queryName: 'scenarios'\n }\n }\n]\n\nStopScenario.connectorFree = true\n\nTaskRegistry.registerTaskHandler('scenario-stop', StopScenario)\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"sub-scenario.js","sourceRoot":"","sources":["../../../server/engine/task/sub-scenario.ts"],"names":[],"mappings":";;AAAA,iDAAqD;AACrD,iDAAyD;AAEzD,8DAA0D;AAC1D,oDAA+C;AAE/C,KAAK,UAAU,WAAW,CAAC,IAAI,EAAE,OAAO;IACtC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACpC,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAChC,GAAG,IAAI,CAAA;IAER,IAAI,WAAW,GAAG,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;QACtD,KAAK,EAAE;YACL,EAAE,EAAE,QAAQ;SACb;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,YAAY,CAAC,CAAA;IAC1D,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,kCACxC,OAAO,KACV,IAAI,EAAE,EAAE;QACR;;;UAGE;QACF,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,IAAA,cAAM,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAC7E,CAAA;IACF,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,SAAS,CAAC,CAAA;IAEvD,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;KACtB,CAAA;AACH,CAAC;AAED,WAAW,CAAC,aAAa,GAAG;IAC1B;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE;YACR,SAAS,EAAE,WAAW;SACvB;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;CACF,CAAA;AAED,WAAW,CAAC,aAAa,GAAG,IAAI,CAAA;AAEhC,4BAAY,CAAC,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\nimport { access, deepClone } from '@things-factory/utils'\n\nimport { Scenario } from '../../service/scenario/scenario'\nimport { TaskRegistry } from '../task-registry'\n\nasync function SubScenario(step, context) {\n var { logger, load, data } = context\n var {\n params: { scenario, variables }\n } = step\n\n var subscenario = await getRepository(Scenario).findOne({\n where: {\n id: scenario\n },\n relations: ['steps', 'domain']\n })\n\n logger.info(`Sub Scenario '${subscenario.name}' Started.`)\n var subContext = await load(step, subscenario, {\n ...context,\n data: {},\n /* \n FIXME variables 설정이 안된 경우에 subscenario의 variables는 undefined가 되는 것이 맞겠지만, \n 하위 호환성 유지를 위해서 부모의 variables를 사용함 \n */\n variables: variables ? deepClone(access(variables, data)) : context.variables\n })\n logger.info(`Sub Scenario '${subscenario.name}' done.`)\n\n return {\n data: subContext.data\n }\n}\n\nSubScenario.parameterSpec = [\n {\n type: 'entity-selector',\n name: 'scenario',\n label: 'scenario',\n property: {\n queryName: 'scenarios'\n }\n },\n {\n type: 'scenario-step-input',\n name: 'variables',\n label: 'variables'\n }\n]\n\nSubScenario.connectorFree = true\n\nTaskRegistry.registerTaskHandler('scenario', SubScenario)\n"]}
1
+ {"version":3,"file":"sub-scenario.js","sourceRoot":"","sources":["../../../server/engine/task/sub-scenario.ts"],"names":[],"mappings":";;AAAA,iDAAqD;AACrD,iDAAyD;AAEzD,8DAA0D;AAC1D,oDAA+C;AAI/C,KAAK,UAAU,WAAW,CAAC,IAAe,EAAE,OAAgB;IAC1D,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACpC,IAAI,EACF,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAChC,GAAG,IAAI,CAAA;IAER,IAAI,WAAW,GAAG,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;QACtD,KAAK,EAAE;YACL,EAAE,EAAE,QAAQ;SACb;QACD,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;KAC/B,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,YAAY,CAAC,CAAA;IAC1D,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,WAAW,kCACxC,OAAO,KACV,IAAI,EAAE,EAAE;QACR;;;UAGE;QACF,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,IAAA,iBAAS,EAAC,IAAA,cAAM,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,IAC7E,CAAA;IACF,MAAM,CAAC,IAAI,CAAC,iBAAiB,WAAW,CAAC,IAAI,SAAS,CAAC,CAAA;IAEvD,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,IAAI;KACtB,CAAA;AACH,CAAC;AAED,WAAW,CAAC,aAAa,GAAG;IAC1B;QACE,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE;YACR,SAAS,EAAE,WAAW;SACvB;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,WAAW;KACnB;CACF,CAAA;AAED,WAAW,CAAC,aAAa,GAAG,IAAI,CAAA;AAEhC,4BAAY,CAAC,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA","sourcesContent":["import { getRepository } from '@things-factory/shell'\nimport { access, deepClone } from '@things-factory/utils'\n\nimport { Scenario } from '../../service/scenario/scenario'\nimport { TaskRegistry } from '../task-registry'\nimport { InputStep } from '../../service/step/step-type'\nimport { Context } from '../types'\n\nasync function SubScenario(step: InputStep, context: Context) {\n var { logger, load, data } = context\n var {\n params: { scenario, variables }\n } = step\n\n var subscenario = await getRepository(Scenario).findOne({\n where: {\n id: scenario\n },\n relations: ['steps', 'domain']\n })\n\n logger.info(`Sub Scenario '${subscenario.name}' Started.`)\n var subContext = await load(step, subscenario, {\n ...context,\n data: {},\n /* \n FIXME variables 설정이 안된 경우에 subscenario의 variables는 undefined가 되는 것이 맞겠지만, \n 하위 호환성 유지를 위해서 부모의 variables를 사용함 \n */\n variables: variables ? deepClone(access(variables, data)) : context.variables\n })\n logger.info(`Sub Scenario '${subscenario.name}' done.`)\n\n return {\n data: subContext.data\n }\n}\n\nSubScenario.parameterSpec = [\n {\n type: 'entity-selector',\n name: 'scenario',\n label: 'scenario',\n property: {\n queryName: 'scenarios'\n }\n },\n {\n type: 'scenario-step-input',\n name: 'variables',\n label: 'variables'\n }\n]\n\nSubScenario.connectorFree = true\n\nTaskRegistry.registerTaskHandler('scenario', SubScenario)\n"]}