botium-core 1.15.10 → 1.15.13

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 (84) hide show
  1. package/dist/botium-cjs.js +91 -51
  2. package/dist/botium-cjs.js.map +1 -1
  3. package/dist/botium-es.js +91 -50
  4. package/dist/botium-es.js.map +1 -1
  5. package/package.json +35 -40
  6. package/src/BotDriver.js +1 -1
  7. package/src/Events.js +1 -3
  8. package/src/containers/GridContainer.js +0 -4
  9. package/src/mocks/BotiumMockScripting.js +3 -0
  10. package/src/scripting/Convo.js +10 -0
  11. package/src/utils/boolean.js +39 -0
  12. package/test/compiler/compilercsv.spec.js +34 -0
  13. package/test/compiler/compilermarkdown.spec.js +11 -0
  14. package/test/compiler/compilertxt.spec.js +21 -0
  15. package/test/compiler/compilerxlsx.spec.js +27 -0
  16. package/test/compiler/precompilerjson.spec.js +1 -0
  17. package/test/compiler/precompilermarkdownrasa.spec.js +1 -0
  18. package/test/connectors/pluginconnectorcontainer.spec.js +1 -0
  19. package/test/connectors/simplerest.spec.js +3 -1
  20. package/test/convo/failure.spec.js +1 -0
  21. package/test/convo/fillAndApplyScriptingMemory.spec.js +56 -0
  22. package/test/convo/partialconvo.spec.js +3 -0
  23. package/test/convo/retry.spec.js +9 -0
  24. package/test/convo/retryasserter.spec.js +9 -0
  25. package/test/convo/transcript.spec.js +33 -0
  26. package/test/convo/tree.spec.js +5 -0
  27. package/test/driver/capabilities.spec.js +16 -0
  28. package/test/helpers/capabilitiesutils.spec.js +8 -0
  29. package/test/helpers/transcriptutils.spec.js +1 -0
  30. package/test/hooks/customhooks.spec.js +3 -0
  31. package/test/logichooks/hookfromsrc.spec.js +3 -0
  32. package/test/logichooks/textfromhook.spec.js +1 -0
  33. package/test/plugins/plugins.spec.js +3 -0
  34. package/test/scripting/asserters/buttonsAsserter.spec.js +15 -0
  35. package/test/scripting/asserters/cardsAsserter.spec.js +12 -0
  36. package/test/scripting/asserters/convoStepParameters.spec.js +11 -0
  37. package/test/scripting/asserters/entitiesAsserter.spec.js +1 -0
  38. package/test/scripting/asserters/entityValuesAsserter.spec.js +7 -0
  39. package/test/scripting/asserters/formsAsserter.spec.js +10 -0
  40. package/test/scripting/asserters/intentAsserter.spec.js +4 -0
  41. package/test/scripting/asserters/intentUniqueAsserter.spec.js +2 -0
  42. package/test/scripting/asserters/jsonpathAsserter.spec.js +25 -0
  43. package/test/scripting/asserters/mediaAsserter.spec.js +20 -0
  44. package/test/scripting/asserters/responseLengthAsserter.spec.js +4 -0
  45. package/test/scripting/asserters/textAsserter.spec.js +1 -0
  46. package/test/scripting/asserters/textContainsAllAsserter.spec.js +1 -0
  47. package/test/scripting/asserters/textContainsAnyAsserter.spec.js +1 -0
  48. package/test/scripting/asserters/textEqualsAsserter.spec.js +1 -0
  49. package/test/scripting/asserters/textRegexpAllAsserter.spec.js +1 -0
  50. package/test/scripting/asserters/textRegexpAnyAsserter.spec.js +1 -0
  51. package/test/scripting/asserters/textWildcardAllAsserter.spec.js +1 -0
  52. package/test/scripting/asserters/textWildcardAnyAsserter.spec.js +1 -0
  53. package/test/scripting/asserters/textWildcardExactAllAsserter.spec.js +1 -0
  54. package/test/scripting/asserters/textWildcardExactAnyAsserter.spec.js +1 -0
  55. package/test/scripting/asserters/werAsserter.spec.js +6 -0
  56. package/test/scripting/logichooks/convos/scripting_memory_resolved_args.convo.txt +11 -0
  57. package/test/scripting/logichooks/customConditionalStepLogicHook.spec.js +2 -0
  58. package/test/scripting/logichooks/localvsglobal.spec.js +1 -0
  59. package/test/scripting/logichooks/pauseLogic.spec.js +4 -0
  60. package/test/scripting/logichooks/setClearScriptingMemory.spec.js +17 -0
  61. package/test/scripting/logichooks/updateCustom.spec.js +2 -0
  62. package/test/scripting/matching/matchingmode.spec.js +48 -0
  63. package/test/scripting/scriptingModificator.spec.js +1 -0
  64. package/test/scripting/scriptingmemory/fillScriptingMemoryFromFile.spec.js +4 -0
  65. package/test/scripting/scriptingmemory/regexp.spec.js +1 -0
  66. package/test/scripting/scriptingmemory/useScriptingMemoryForAssertion.spec.js +3 -0
  67. package/test/scripting/txt/decompile.spec.js +20 -0
  68. package/test/scripting/userinputs/buttonInputConvos.spec.js +1 -0
  69. package/test/scripting/userinputs/defaultUserInputs.spec.js +13 -0
  70. package/test/scripting/userinputs/mediaInputConvos.spec.js +10 -0
  71. package/test/scripting/utteranceexpansion/associateByIndex.spec.js +2 -0
  72. package/test/security/allowUnsafe.spec.js +5 -0
  73. package/test/utils.spec.js +2 -0
  74. package/samples/postman/Botium Agent Sample.postman_collection.json +0 -834
  75. package/samples/postman/README.md +0 -5
  76. package/samples/postman/botiumFluent.js +0 -37
  77. package/src/grid/agent/AgentWorker.js +0 -204
  78. package/src/grid/agent/agent.js +0 -96
  79. package/src/grid/agent/agentworkerpool.js +0 -58
  80. package/src/grid/agent/routes.js +0 -353
  81. package/src/grid/agent/swagger.json +0 -327
  82. package/src/grid/agent/swaggerDef.json +0 -8
  83. package/src/grid/agent/views/index.html +0 -39
  84. package/test/grid/agent/client.js +0 -65
@@ -12,7 +12,6 @@ var sanitizeFilename = require('sanitize-filename');
12
12
  var moment = require('moment');
13
13
  var randomatic = require('randomatic');
14
14
  var lodash = require('lodash');
15
- var boolean$1 = require('boolean');
16
15
  var events = require('events');
17
16
  var debug$o = require('debug');
18
17
  var isClass = require('is-class');
@@ -50,7 +49,6 @@ var sanitizeFilename__default = /*#__PURE__*/_interopDefaultLegacy(sanitizeFilen
50
49
  var moment__default = /*#__PURE__*/_interopDefaultLegacy(moment);
51
50
  var randomatic__default = /*#__PURE__*/_interopDefaultLegacy(randomatic);
52
51
  var lodash__default = /*#__PURE__*/_interopDefaultLegacy(lodash);
53
- var boolean__default = /*#__PURE__*/_interopDefaultLegacy(boolean$1);
54
52
  var events__default = /*#__PURE__*/_interopDefaultLegacy(events);
55
53
  var debug__default = /*#__PURE__*/_interopDefaultLegacy(debug$o);
56
54
  var isClass__default = /*#__PURE__*/_interopDefaultLegacy(isClass);
@@ -76,8 +74,49 @@ var undici__default = /*#__PURE__*/_interopDefaultLegacy(undici);
76
74
  var express__default = /*#__PURE__*/_interopDefaultLegacy(express);
77
75
  var bodyParser__default = /*#__PURE__*/_interopDefaultLegacy(bodyParser);
78
76
 
77
+ /**
78
+ * Converts a value to a boolean.
79
+ * Similar to the 'boolean' npm package implementation.
80
+ *
81
+ * @param {*} value - The value to convert to boolean
82
+ * @returns {boolean} The boolean representation of the value
83
+ */
84
+ function boolean$1(value) {
85
+ // Handle null and undefined
86
+ if (value == null) {
87
+ return false;
88
+ }
89
+
90
+ // Handle boolean values
91
+ if (typeof value === 'boolean') {
92
+ return value;
93
+ }
94
+
95
+ // Handle numbers
96
+ if (typeof value === 'number') {
97
+ return value !== 0 && !isNaN(value);
98
+ }
99
+
100
+ // Handle strings
101
+ if (typeof value === 'string') {
102
+ const normalized = value.trim().toLowerCase();
103
+ if (normalized === 'true' || normalized === 'yes' || normalized === 'on' || normalized === '1') {
104
+ return true;
105
+ }
106
+ if (normalized === 'false' || normalized === 'no' || normalized === 'off' || normalized === '0' || normalized === '') {
107
+ return false;
108
+ }
109
+ }
110
+
111
+ // For all other values, use JavaScript's truthiness
112
+ return Boolean(value);
113
+ }
114
+ var boolean_1 = {
115
+ boolean: boolean$1
116
+ };
117
+
79
118
  var name = "botium-core";
80
- var version$1 = "1.15.10";
119
+ var version$1 = "1.15.13";
81
120
  var description = "The Selenium for Chatbots";
82
121
  var main = "index.js";
83
122
  var module$1 = "dist/botium-es.js";
@@ -90,8 +129,6 @@ var scripts = {
90
129
  eslint: "eslint \"./src/**/*.js\" \"./test/**/*.js\"",
91
130
  "eslint-fix": "eslint --fix \"./src/**/*.js\" \"./test/**/*.js\"",
92
131
  newpatch: "npm version patch",
93
- agent: "node ./src/grid/agent/agent.js",
94
- "agent-jsdoc": "swagger-jsdoc -d ./src/grid/agent/swaggerDef.json -o ./src/grid/agent/swagger.json ./src/grid/agent/routes.js",
95
132
  link: "npm link botium-connector-dialogflow botium-connector-webdriverio botium-connector-directline3 botium-connector-watson botium-connector-alexa-smapi botium-connector-echo",
96
133
  test: "cross-env NODE_PATH=\"./test/plugins/plugindir/fromfolder:./test/plugins/plugindir/fromfile:./test/security/resources\" mocha \"./test/**/*.spec.js\"",
97
134
  "coverage:report": "nyc report --reporter=lcov npm test",
@@ -108,66 +145,63 @@ var bugs = {
108
145
  };
109
146
  var homepage = "https://www.botium.ai";
110
147
  var dependencies = {
111
- "@babel/runtime": "^7.23.9",
112
- async: "^3.2.5",
113
- "body-parser": "^1.20.2",
114
- boolean: "^3.2.0",
148
+ "@babel/runtime": "^7.28.6",
149
+ async: "^3.2.6",
150
+ "body-parser": "^2.2.2",
115
151
  bottleneck: "^2.19.5",
116
- "csv-parse": "^5.5.3",
117
- debug: "^4.3.4",
118
- express: "^4.18.2",
152
+ "csv-parse": "^6.1.0",
153
+ debug: "^4.4.3",
154
+ express: "^5.2.1",
119
155
  globby: "11.0.4",
120
- ioredis: "^5.3.2",
156
+ ioredis: "^5.10.0",
121
157
  "is-class": "^0.0.9",
122
158
  "is-json": "^2.0.1",
123
- jsonpath: "^1.1.1",
124
- lodash: "^4.17.21",
125
- "markdown-it": "^14.0.0",
126
- "mime-types": "^2.1.35",
159
+ jsonpath: "^1.3.0",
160
+ lodash: "^4.17.23",
161
+ "markdown-it": "^14.1.1",
162
+ "mime-types": "^3.0.2",
127
163
  mkdirp: "^3.0.1",
128
164
  moment: "^2.30.1",
129
- "moment-timezone": "^0.5.45",
165
+ "moment-timezone": "^0.6.0",
130
166
  mustache: "^4.2.0",
131
167
  "promise-retry": "^2.0.1",
132
168
  "promise.allsettled": "^1.0.7",
133
169
  randomatic: "^3.1.1",
134
- rimraf: "^5.0.5",
170
+ rimraf: "^6.1.3",
135
171
  "sanitize-filename": "^1.6.3",
136
172
  slugify: "^1.6.6",
137
- "socket.io": "^4.7.4",
138
- "socket.io-client": "^4.7.4",
173
+ "socket.io": "^4.8.3",
174
+ "socket.io-client": "^4.8.3",
139
175
  "socketio-auth": "^0.1.1",
140
- "swagger-jsdoc": "^6.2.8",
141
- "swagger-ui-express": "^5.0.0",
142
- tinyglobby: "^0.2.10",
143
- undici: "^6.21.0",
176
+ tinyglobby: "^0.2.15",
177
+ undici: "^7.22.0",
144
178
  uuid: "^9.0.1",
145
179
  "word-error-rate": "0.0.7",
146
180
  "write-yaml": "^1.0.0",
147
181
  xlsx: "^0.18.5",
148
- xregexp: "^5.1.1",
149
- yaml: "^2.3.4"
182
+ xregexp: "^5.1.2",
183
+ yaml: "^2.8.2"
150
184
  };
151
185
  var devDependencies = {
152
- "@babel/core": "^7.23.9",
153
- "@babel/node": "^7.23.9",
154
- "@babel/plugin-transform-runtime": "^7.23.9",
155
- "@babel/preset-env": "^7.23.9",
186
+ "@babel/core": "^7.29.0",
187
+ "@babel/node": "^7.29.0",
188
+ "@babel/plugin-transform-runtime": "^7.29.0",
189
+ "@babel/preset-env": "^7.29.0",
156
190
  chai: "4.3.10",
157
- "chai-as-promised": "^7.1.1",
158
- "cross-env": "^7.0.3",
159
- eslint: "^8.56.0",
191
+ "chai-as-promised": "^7.1.2",
192
+ "cross-env": "^10.1.0",
193
+ eslint: "^8.57.1",
160
194
  "eslint-config-standard": "^17.1.0",
161
- "eslint-plugin-import": "^2.29.1",
162
- "eslint-plugin-mocha": "^10.2.0",
195
+ "eslint-plugin-import": "^2.32.0",
196
+ "eslint-plugin-mocha": "^10.5.0",
163
197
  "eslint-plugin-n": "^16.6.2",
164
- "eslint-plugin-promise": "^6.1.1",
198
+ "eslint-plugin-promise": "^6.6.0",
165
199
  "eslint-plugin-standard": "^4.1.0",
166
- mocha: "^10.3.0",
167
- nock: "^14.0.0-beta.19",
168
- "npm-check-updates": "^16.14.15",
169
- nyc: "^15.1.0",
170
- rollup: "2.79.1",
200
+ mocha: "^11.7.5",
201
+ nock: "^14.0.11",
202
+ "npm-check-updates": "^19.6.3",
203
+ nyc: "^18.0.0",
204
+ rollup: "2.80.0",
171
205
  "rollup-plugin-babel": "^4.4.0",
172
206
  "rollup-plugin-commonjs": "^10.1.0",
173
207
  "rollup-plugin-json": "^4.0.0",
@@ -901,9 +935,7 @@ var Events = {
901
935
  MESSAGE_RECEIVEDFROMBOT: 'MESSAGE_RECEIVEDFROMBOT',
902
936
  MESSAGE_RECEIVEFROMBOT_ERROR: 'MESSAGE_RECEIVEFROMBOT_ERROR',
903
937
  MESSAGE_ATTACHMENT: 'MESSAGE_ATTACHMENT',
904
- MESSAGE_TRANSCRIPT: 'MESSAGE_TRANSCRIPT',
905
- // Botium Agent Events
906
- TOOMUCHWORKERS_ERROR: 'TOOMUCHWORKERS_ERROR'
938
+ MESSAGE_TRANSCRIPT: 'MESSAGE_TRANSCRIPT'
907
939
  };
908
940
  Events.CONTAINER_BUILDING;
909
941
  Events.CONTAINER_BUILT;
@@ -925,7 +957,6 @@ Events.MESSAGE_RECEIVEDFROMBOT;
925
957
  Events.MESSAGE_RECEIVEFROMBOT_ERROR;
926
958
  Events.MESSAGE_ATTACHMENT;
927
959
  Events.MESSAGE_TRANSCRIPT;
928
- Events.TOOMUCHWORKERS_ERROR;
929
960
 
930
961
  function commonjsRequire () {
931
962
  throw new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs');
@@ -1539,18 +1570,21 @@ class BotiumMockAsserter$1 {
1539
1570
  this.name = fromJson.name;
1540
1571
  this.args = lodash__default["default"].cloneDeep(fromJson.args);
1541
1572
  this.not = fromJson.not;
1573
+ this.resolvedArgs = fromJson.resolvedArgs || null;
1542
1574
  }
1543
1575
  }
1544
1576
  class BotiumMockUserInput$1 {
1545
1577
  constructor(fromJson = {}) {
1546
1578
  this.name = fromJson.name;
1547
1579
  this.args = lodash__default["default"].cloneDeep(fromJson.args);
1580
+ this.resolvedArgs = fromJson.resolvedArgs || null;
1548
1581
  }
1549
1582
  }
1550
1583
  class BotiumMockLogicHook$1 {
1551
1584
  constructor(fromJson = {}) {
1552
1585
  this.name = fromJson.name;
1553
1586
  this.args = lodash__default["default"].cloneDeep(fromJson.args);
1587
+ this.resolvedArgs = fromJson.resolvedArgs || null;
1554
1588
  }
1555
1589
  }
1556
1590
  var BotiumMockScripting = {
@@ -3533,6 +3567,16 @@ class Convo$6 {
3533
3567
  } finally {
3534
3568
  if (convoStep.sender !== 'begin' && convoStep.sender !== 'end' && !skipTranscriptStep) {
3535
3569
  transcriptStep.scriptingMemory = Object.assign({}, scriptingMemory);
3570
+ if (container.caps[Capabilities.SCRIPTING_ENABLE_MEMORY] && transcriptStep.expected) {
3571
+ const _resolveItemArgs = items => {
3572
+ (items || []).forEach(item => {
3573
+ item.resolvedArgs = ScriptingMemory.applyToArgs(item.args, scriptingMemory, container.caps);
3574
+ });
3575
+ };
3576
+ _resolveItemArgs(transcriptStep.expected.asserters);
3577
+ _resolveItemArgs(transcriptStep.expected.logicHooks);
3578
+ _resolveItemArgs(transcriptStep.expected.userInputs);
3579
+ }
3536
3580
  transcriptStep.stepEnd = new Date();
3537
3581
  transcriptSteps.push(transcriptStep);
3538
3582
  }
@@ -7809,10 +7853,6 @@ var GridContainer_1 = class GridContainer extends BaseContainer_1 {
7809
7853
  debug$6(`unauthorized ${err.message}`);
7810
7854
  socketComplete(`Grid Access not authorized: ${err.message}`);
7811
7855
  });
7812
- this.socket.on(Events.TOOMUCHWORKERS_ERROR, err => {
7813
- debug$6(`TOOMUCHWORKERS_ERROR ${err.message}`);
7814
- socketComplete(`Grid Access not possible: ${err.message}`);
7815
- });
7816
7856
  this.socket.on(Events.CONTAINER_BUILT, () => {
7817
7857
  debug$6(Events.CONTAINER_BUILT);
7818
7858
  socketComplete();
@@ -9443,7 +9483,7 @@ const {
9443
9483
  } = rimraf__default["default"];
9444
9484
  const {
9445
9485
  boolean
9446
- } = boolean__default["default"];
9486
+ } = boolean_1;
9447
9487
  const debug$1 = debug__default["default"]('botium-core-BotDriver');
9448
9488
  const {
9449
9489
  version