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
package/dist/botium-es.js CHANGED
@@ -8,7 +8,6 @@ import sanitizeFilename from 'sanitize-filename';
8
8
  import moment from 'moment';
9
9
  import randomatic from 'randomatic';
10
10
  import lodash from 'lodash';
11
- import boolean$1 from 'boolean';
12
11
  import events from 'events';
13
12
  import debug$o from 'debug';
14
13
  import isClass from 'is-class';
@@ -34,8 +33,49 @@ import undici from 'undici';
34
33
  import express from 'express';
35
34
  import bodyParser from 'body-parser';
36
35
 
36
+ /**
37
+ * Converts a value to a boolean.
38
+ * Similar to the 'boolean' npm package implementation.
39
+ *
40
+ * @param {*} value - The value to convert to boolean
41
+ * @returns {boolean} The boolean representation of the value
42
+ */
43
+ function boolean$1(value) {
44
+ // Handle null and undefined
45
+ if (value == null) {
46
+ return false;
47
+ }
48
+
49
+ // Handle boolean values
50
+ if (typeof value === 'boolean') {
51
+ return value;
52
+ }
53
+
54
+ // Handle numbers
55
+ if (typeof value === 'number') {
56
+ return value !== 0 && !isNaN(value);
57
+ }
58
+
59
+ // Handle strings
60
+ if (typeof value === 'string') {
61
+ const normalized = value.trim().toLowerCase();
62
+ if (normalized === 'true' || normalized === 'yes' || normalized === 'on' || normalized === '1') {
63
+ return true;
64
+ }
65
+ if (normalized === 'false' || normalized === 'no' || normalized === 'off' || normalized === '0' || normalized === '') {
66
+ return false;
67
+ }
68
+ }
69
+
70
+ // For all other values, use JavaScript's truthiness
71
+ return Boolean(value);
72
+ }
73
+ var boolean_1 = {
74
+ boolean: boolean$1
75
+ };
76
+
37
77
  var name = "botium-core";
38
- var version$1 = "1.15.10";
78
+ var version$1 = "1.15.13";
39
79
  var description = "The Selenium for Chatbots";
40
80
  var main = "index.js";
41
81
  var module = "dist/botium-es.js";
@@ -48,8 +88,6 @@ var scripts = {
48
88
  eslint: "eslint \"./src/**/*.js\" \"./test/**/*.js\"",
49
89
  "eslint-fix": "eslint --fix \"./src/**/*.js\" \"./test/**/*.js\"",
50
90
  newpatch: "npm version patch",
51
- agent: "node ./src/grid/agent/agent.js",
52
- "agent-jsdoc": "swagger-jsdoc -d ./src/grid/agent/swaggerDef.json -o ./src/grid/agent/swagger.json ./src/grid/agent/routes.js",
53
91
  link: "npm link botium-connector-dialogflow botium-connector-webdriverio botium-connector-directline3 botium-connector-watson botium-connector-alexa-smapi botium-connector-echo",
54
92
  test: "cross-env NODE_PATH=\"./test/plugins/plugindir/fromfolder:./test/plugins/plugindir/fromfile:./test/security/resources\" mocha \"./test/**/*.spec.js\"",
55
93
  "coverage:report": "nyc report --reporter=lcov npm test",
@@ -66,66 +104,63 @@ var bugs = {
66
104
  };
67
105
  var homepage = "https://www.botium.ai";
68
106
  var dependencies = {
69
- "@babel/runtime": "^7.23.9",
70
- async: "^3.2.5",
71
- "body-parser": "^1.20.2",
72
- boolean: "^3.2.0",
107
+ "@babel/runtime": "^7.28.6",
108
+ async: "^3.2.6",
109
+ "body-parser": "^2.2.2",
73
110
  bottleneck: "^2.19.5",
74
- "csv-parse": "^5.5.3",
75
- debug: "^4.3.4",
76
- express: "^4.18.2",
111
+ "csv-parse": "^6.1.0",
112
+ debug: "^4.4.3",
113
+ express: "^5.2.1",
77
114
  globby: "11.0.4",
78
- ioredis: "^5.3.2",
115
+ ioredis: "^5.10.0",
79
116
  "is-class": "^0.0.9",
80
117
  "is-json": "^2.0.1",
81
- jsonpath: "^1.1.1",
82
- lodash: "^4.17.21",
83
- "markdown-it": "^14.0.0",
84
- "mime-types": "^2.1.35",
118
+ jsonpath: "^1.3.0",
119
+ lodash: "^4.17.23",
120
+ "markdown-it": "^14.1.1",
121
+ "mime-types": "^3.0.2",
85
122
  mkdirp: "^3.0.1",
86
123
  moment: "^2.30.1",
87
- "moment-timezone": "^0.5.45",
124
+ "moment-timezone": "^0.6.0",
88
125
  mustache: "^4.2.0",
89
126
  "promise-retry": "^2.0.1",
90
127
  "promise.allsettled": "^1.0.7",
91
128
  randomatic: "^3.1.1",
92
- rimraf: "^5.0.5",
129
+ rimraf: "^6.1.3",
93
130
  "sanitize-filename": "^1.6.3",
94
131
  slugify: "^1.6.6",
95
- "socket.io": "^4.7.4",
96
- "socket.io-client": "^4.7.4",
132
+ "socket.io": "^4.8.3",
133
+ "socket.io-client": "^4.8.3",
97
134
  "socketio-auth": "^0.1.1",
98
- "swagger-jsdoc": "^6.2.8",
99
- "swagger-ui-express": "^5.0.0",
100
- tinyglobby: "^0.2.10",
101
- undici: "^6.21.0",
135
+ tinyglobby: "^0.2.15",
136
+ undici: "^7.22.0",
102
137
  uuid: "^9.0.1",
103
138
  "word-error-rate": "0.0.7",
104
139
  "write-yaml": "^1.0.0",
105
140
  xlsx: "^0.18.5",
106
- xregexp: "^5.1.1",
107
- yaml: "^2.3.4"
141
+ xregexp: "^5.1.2",
142
+ yaml: "^2.8.2"
108
143
  };
109
144
  var devDependencies = {
110
- "@babel/core": "^7.23.9",
111
- "@babel/node": "^7.23.9",
112
- "@babel/plugin-transform-runtime": "^7.23.9",
113
- "@babel/preset-env": "^7.23.9",
145
+ "@babel/core": "^7.29.0",
146
+ "@babel/node": "^7.29.0",
147
+ "@babel/plugin-transform-runtime": "^7.29.0",
148
+ "@babel/preset-env": "^7.29.0",
114
149
  chai: "4.3.10",
115
- "chai-as-promised": "^7.1.1",
116
- "cross-env": "^7.0.3",
117
- eslint: "^8.56.0",
150
+ "chai-as-promised": "^7.1.2",
151
+ "cross-env": "^10.1.0",
152
+ eslint: "^8.57.1",
118
153
  "eslint-config-standard": "^17.1.0",
119
- "eslint-plugin-import": "^2.29.1",
120
- "eslint-plugin-mocha": "^10.2.0",
154
+ "eslint-plugin-import": "^2.32.0",
155
+ "eslint-plugin-mocha": "^10.5.0",
121
156
  "eslint-plugin-n": "^16.6.2",
122
- "eslint-plugin-promise": "^6.1.1",
157
+ "eslint-plugin-promise": "^6.6.0",
123
158
  "eslint-plugin-standard": "^4.1.0",
124
- mocha: "^10.3.0",
125
- nock: "^14.0.0-beta.19",
126
- "npm-check-updates": "^16.14.15",
127
- nyc: "^15.1.0",
128
- rollup: "2.79.1",
159
+ mocha: "^11.7.5",
160
+ nock: "^14.0.11",
161
+ "npm-check-updates": "^19.6.3",
162
+ nyc: "^18.0.0",
163
+ rollup: "2.80.0",
129
164
  "rollup-plugin-babel": "^4.4.0",
130
165
  "rollup-plugin-commonjs": "^10.1.0",
131
166
  "rollup-plugin-json": "^4.0.0",
@@ -859,9 +894,7 @@ var Events = {
859
894
  MESSAGE_RECEIVEDFROMBOT: 'MESSAGE_RECEIVEDFROMBOT',
860
895
  MESSAGE_RECEIVEFROMBOT_ERROR: 'MESSAGE_RECEIVEFROMBOT_ERROR',
861
896
  MESSAGE_ATTACHMENT: 'MESSAGE_ATTACHMENT',
862
- MESSAGE_TRANSCRIPT: 'MESSAGE_TRANSCRIPT',
863
- // Botium Agent Events
864
- TOOMUCHWORKERS_ERROR: 'TOOMUCHWORKERS_ERROR'
897
+ MESSAGE_TRANSCRIPT: 'MESSAGE_TRANSCRIPT'
865
898
  };
866
899
  Events.CONTAINER_BUILDING;
867
900
  Events.CONTAINER_BUILT;
@@ -883,7 +916,6 @@ Events.MESSAGE_RECEIVEDFROMBOT;
883
916
  Events.MESSAGE_RECEIVEFROMBOT_ERROR;
884
917
  Events.MESSAGE_ATTACHMENT;
885
918
  Events.MESSAGE_TRANSCRIPT;
886
- Events.TOOMUCHWORKERS_ERROR;
887
919
 
888
920
  function commonjsRequire () {
889
921
  throw new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs');
@@ -1497,18 +1529,21 @@ class BotiumMockAsserter$1 {
1497
1529
  this.name = fromJson.name;
1498
1530
  this.args = lodash.cloneDeep(fromJson.args);
1499
1531
  this.not = fromJson.not;
1532
+ this.resolvedArgs = fromJson.resolvedArgs || null;
1500
1533
  }
1501
1534
  }
1502
1535
  class BotiumMockUserInput$1 {
1503
1536
  constructor(fromJson = {}) {
1504
1537
  this.name = fromJson.name;
1505
1538
  this.args = lodash.cloneDeep(fromJson.args);
1539
+ this.resolvedArgs = fromJson.resolvedArgs || null;
1506
1540
  }
1507
1541
  }
1508
1542
  class BotiumMockLogicHook$1 {
1509
1543
  constructor(fromJson = {}) {
1510
1544
  this.name = fromJson.name;
1511
1545
  this.args = lodash.cloneDeep(fromJson.args);
1546
+ this.resolvedArgs = fromJson.resolvedArgs || null;
1512
1547
  }
1513
1548
  }
1514
1549
  var BotiumMockScripting = {
@@ -3491,6 +3526,16 @@ class Convo$6 {
3491
3526
  } finally {
3492
3527
  if (convoStep.sender !== 'begin' && convoStep.sender !== 'end' && !skipTranscriptStep) {
3493
3528
  transcriptStep.scriptingMemory = Object.assign({}, scriptingMemory);
3529
+ if (container.caps[Capabilities.SCRIPTING_ENABLE_MEMORY] && transcriptStep.expected) {
3530
+ const _resolveItemArgs = items => {
3531
+ (items || []).forEach(item => {
3532
+ item.resolvedArgs = ScriptingMemory.applyToArgs(item.args, scriptingMemory, container.caps);
3533
+ });
3534
+ };
3535
+ _resolveItemArgs(transcriptStep.expected.asserters);
3536
+ _resolveItemArgs(transcriptStep.expected.logicHooks);
3537
+ _resolveItemArgs(transcriptStep.expected.userInputs);
3538
+ }
3494
3539
  transcriptStep.stepEnd = new Date();
3495
3540
  transcriptSteps.push(transcriptStep);
3496
3541
  }
@@ -7767,10 +7812,6 @@ var GridContainer_1 = class GridContainer extends BaseContainer_1 {
7767
7812
  debug$6(`unauthorized ${err.message}`);
7768
7813
  socketComplete(`Grid Access not authorized: ${err.message}`);
7769
7814
  });
7770
- this.socket.on(Events.TOOMUCHWORKERS_ERROR, err => {
7771
- debug$6(`TOOMUCHWORKERS_ERROR ${err.message}`);
7772
- socketComplete(`Grid Access not possible: ${err.message}`);
7773
- });
7774
7815
  this.socket.on(Events.CONTAINER_BUILT, () => {
7775
7816
  debug$6(Events.CONTAINER_BUILT);
7776
7817
  socketComplete();
@@ -9401,7 +9442,7 @@ const {
9401
9442
  } = rimraf$1;
9402
9443
  const {
9403
9444
  boolean
9404
- } = boolean$1;
9445
+ } = boolean_1;
9405
9446
  const debug$1 = debug$o('botium-core-BotDriver');
9406
9447
  const {
9407
9448
  version