@seleniumhq/side-runtime 4.0.0-alpha.0

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 (85) hide show
  1. package/dist/callstack.d.ts +23 -0
  2. package/dist/callstack.d.ts.map +1 -0
  3. package/dist/callstack.js +40 -0
  4. package/dist/callstack.js.map +1 -0
  5. package/dist/errors/assertion.d.ts +4 -0
  6. package/dist/errors/assertion.d.ts.map +1 -0
  7. package/dist/errors/assertion.js +28 -0
  8. package/dist/errors/assertion.js.map +1 -0
  9. package/dist/errors/index.d.ts +3 -0
  10. package/dist/errors/index.d.ts.map +1 -0
  11. package/dist/errors/index.js +27 -0
  12. package/dist/errors/index.js.map +1 -0
  13. package/dist/errors/verification.d.ts +4 -0
  14. package/dist/errors/verification.d.ts.map +1 -0
  15. package/dist/errors/verification.js +28 -0
  16. package/dist/errors/verification.js.map +1 -0
  17. package/dist/index.d.ts +17 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +54 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/playback-tree/command-leveler.d.ts +7 -0
  22. package/dist/playback-tree/command-leveler.d.ts.map +1 -0
  23. package/dist/playback-tree/command-leveler.js +73 -0
  24. package/dist/playback-tree/command-leveler.js.map +1 -0
  25. package/dist/playback-tree/command-node.d.ts +54 -0
  26. package/dist/playback-tree/command-node.d.ts.map +1 -0
  27. package/dist/playback-tree/command-node.js +185 -0
  28. package/dist/playback-tree/command-node.js.map +1 -0
  29. package/dist/playback-tree/commands.d.ts +42 -0
  30. package/dist/playback-tree/commands.d.ts.map +1 -0
  31. package/dist/playback-tree/commands.js +137 -0
  32. package/dist/playback-tree/commands.js.map +1 -0
  33. package/dist/playback-tree/control-flow-syntax-error.d.ts +5 -0
  34. package/dist/playback-tree/control-flow-syntax-error.d.ts.map +1 -0
  35. package/dist/playback-tree/control-flow-syntax-error.js +27 -0
  36. package/dist/playback-tree/control-flow-syntax-error.js.map +1 -0
  37. package/dist/playback-tree/index.d.ts +15 -0
  38. package/dist/playback-tree/index.d.ts.map +1 -0
  39. package/dist/playback-tree/index.js +161 -0
  40. package/dist/playback-tree/index.js.map +1 -0
  41. package/dist/playback-tree/state.d.ts +9 -0
  42. package/dist/playback-tree/state.d.ts.map +1 -0
  43. package/dist/playback-tree/state.js +38 -0
  44. package/dist/playback-tree/state.js.map +1 -0
  45. package/dist/playback-tree/syntax-validation.d.ts +4 -0
  46. package/dist/playback-tree/syntax-validation.d.ts.map +1 -0
  47. package/dist/playback-tree/syntax-validation.js +95 -0
  48. package/dist/playback-tree/syntax-validation.js.map +1 -0
  49. package/dist/playback.d.ts +167 -0
  50. package/dist/playback.d.ts.map +1 -0
  51. package/dist/playback.js +627 -0
  52. package/dist/playback.js.map +1 -0
  53. package/dist/plugins.d.ts +6 -0
  54. package/dist/plugins.d.ts.map +1 -0
  55. package/dist/plugins.js +24 -0
  56. package/dist/plugins.js.map +1 -0
  57. package/dist/preprocessors.d.ts +10 -0
  58. package/dist/preprocessors.d.ts.map +1 -0
  59. package/dist/preprocessors.js +179 -0
  60. package/dist/preprocessors.js.map +1 -0
  61. package/dist/recording-syncronizer-webdriver.d.ts +15 -0
  62. package/dist/recording-syncronizer-webdriver.d.ts.map +1 -0
  63. package/dist/recording-syncronizer-webdriver.js +33 -0
  64. package/dist/recording-syncronizer-webdriver.js.map +1 -0
  65. package/dist/recording-syncronizer.d.ts +22 -0
  66. package/dist/recording-syncronizer.d.ts.map +1 -0
  67. package/dist/recording-syncronizer.js +68 -0
  68. package/dist/recording-syncronizer.js.map +1 -0
  69. package/dist/types.d.ts +60 -0
  70. package/dist/types.d.ts.map +1 -0
  71. package/dist/types.js +6 -0
  72. package/dist/types.js.map +1 -0
  73. package/dist/utils.d.ts +2 -0
  74. package/dist/utils.d.ts.map +1 -0
  75. package/dist/utils.js +24 -0
  76. package/dist/utils.js.map +1 -0
  77. package/dist/variables.d.ts +10 -0
  78. package/dist/variables.d.ts.map +1 -0
  79. package/dist/variables.js +41 -0
  80. package/dist/variables.js.map +1 -0
  81. package/dist/webdriver.d.ts +173 -0
  82. package/dist/webdriver.d.ts.map +1 -0
  83. package/dist/webdriver.js +1007 -0
  84. package/dist/webdriver.js.map +1 -0
  85. package/package.json +37 -0
@@ -0,0 +1,23 @@
1
+ import { CommandShape, TestShape } from '@seleniumhq/side-model';
2
+ import { PlaybackTree } from './playback-tree';
3
+ import { CommandNode } from './playback-tree/command-node';
4
+ declare const stack: unique symbol;
5
+ export interface Caller {
6
+ position: CommandNode['next'];
7
+ tree: PlaybackTree;
8
+ commands: CommandShape[];
9
+ }
10
+ export interface CallShape {
11
+ callee: Partial<TestShape>;
12
+ caller?: Caller;
13
+ }
14
+ export default class Callstack {
15
+ constructor();
16
+ [stack]: CallShape[];
17
+ get length(): number;
18
+ call(procedure: CallShape): void;
19
+ unwind(): CallShape;
20
+ top(): CallShape;
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=callstack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callstack.d.ts","sourceRoot":"","sources":["../src/callstack.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAE1D,QAAA,MAAM,KAAK,eAAkB,CAAA;AAE7B,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IAC7B,IAAI,EAAE,YAAY,CAAA;IAClB,QAAQ,EAAE,YAAY,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,CAAC,OAAO,OAAO,SAAS;;IAI5B,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;IACpB,IAAI,MAAM,WAET;IAED,IAAI,CAAC,SAAS,EAAE,SAAS;IAIzB,MAAM,IAAI,SAAS;IAKnB,GAAG;CAGJ"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ // Licensed to the Software Freedom Conservancy (SFC) under one
3
+ // or more contributor license agreements. See the NOTICE file
4
+ // distributed with this work for additional information
5
+ // regarding copyright ownership. The SFC licenses this file
6
+ // to you under the Apache License, Version 2.0 (the
7
+ // "License"); you may not use this file except in compliance
8
+ // with the License. You may obtain a copy of the License at
9
+ //
10
+ // http://www.apache.org/licenses/LICENSE-2.0
11
+ //
12
+ // Unless required by applicable law or agreed to in writing,
13
+ // software distributed under the License is distributed on an
14
+ // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ // KIND, either express or implied. See the License for the
16
+ // specific language governing permissions and limitations
17
+ // under the License.
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ const stack = Symbol('stack');
20
+ class Callstack {
21
+ constructor() {
22
+ this[stack] = [];
23
+ }
24
+ get length() {
25
+ return this[stack].length;
26
+ }
27
+ call(procedure) {
28
+ this[stack].push(procedure);
29
+ }
30
+ unwind() {
31
+ if (!this.length)
32
+ throw new Error('Call stack is empty');
33
+ return this[stack].pop();
34
+ }
35
+ top() {
36
+ return this[stack][this[stack].length - 1];
37
+ }
38
+ }
39
+ exports.default = Callstack;
40
+ //# sourceMappingURL=callstack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callstack.js","sourceRoot":"","sources":["../src/callstack.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,wDAAwD;AACxD,6DAA6D;AAC7D,oDAAoD;AACpD,6DAA6D;AAC7D,6DAA6D;AAC7D,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,4DAA4D;AAC5D,0DAA0D;AAC1D,qBAAqB;;AAMrB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;AAa7B,MAAqB,SAAS;IAC5B;QACE,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;IAClB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAA;IAC3B,CAAC;IAED,IAAI,CAAC,SAAoB;QACvB,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACxD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAe,CAAA;IACvC,CAAC;IAED,GAAG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC5C,CAAC;CACF;AArBD,4BAqBC"}
@@ -0,0 +1,4 @@
1
+ export default class AssertionError extends Error {
2
+ constructor(...argv: string[]);
3
+ }
4
+ //# sourceMappingURL=assertion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion.d.ts","sourceRoot":"","sources":["../../src/errors/assertion.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK;gBACnC,GAAG,IAAI,EAAE,MAAM,EAAE;CAO9B"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ // Licensed to the Software Freedom Conservancy (SFC) under one
3
+ // or more contributor license agreements. See the NOTICE file
4
+ // distributed with this work for additional information
5
+ // regarding copyright ownership. The SFC licenses this file
6
+ // to you under the Apache License, Version 2.0 (the
7
+ // "License"); you may not use this file except in compliance
8
+ // with the License. You may obtain a copy of the License at
9
+ //
10
+ // http://www.apache.org/licenses/LICENSE-2.0
11
+ //
12
+ // Unless required by applicable law or agreed to in writing,
13
+ // software distributed under the License is distributed on an
14
+ // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ // KIND, either express or implied. See the License for the
16
+ // specific language governing permissions and limitations
17
+ // under the License.
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ class AssertionError extends Error {
20
+ constructor(...argv) {
21
+ super(argv.join(' '));
22
+ if (Error.captureStackTrace) {
23
+ Error.captureStackTrace(this, AssertionError);
24
+ }
25
+ }
26
+ }
27
+ exports.default = AssertionError;
28
+ //# sourceMappingURL=assertion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertion.js","sourceRoot":"","sources":["../../src/errors/assertion.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,wDAAwD;AACxD,6DAA6D;AAC7D,oDAAoD;AACpD,6DAA6D;AAC7D,6DAA6D;AAC7D,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,4DAA4D;AAC5D,0DAA0D;AAC1D,qBAAqB;;AAErB,MAAqB,cAAe,SAAQ,KAAK;IAC/C,YAAY,GAAG,IAAc;QAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAErB,IAAI,KAAK,CAAC,iBAAiB,EAAE;YAC3B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;SAC9C;IACH,CAAC;CACF;AARD,iCAQC"}
@@ -0,0 +1,3 @@
1
+ export { default as AssertionError } from './assertion';
2
+ export { default as VerificationError } from './verification';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // Licensed to the Software Freedom Conservancy (SFC) under one
3
+ // or more contributor license agreements. See the NOTICE file
4
+ // distributed with this work for additional information
5
+ // regarding copyright ownership. The SFC licenses this file
6
+ // to you under the Apache License, Version 2.0 (the
7
+ // "License"); you may not use this file except in compliance
8
+ // with the License. You may obtain a copy of the License at
9
+ //
10
+ // http://www.apache.org/licenses/LICENSE-2.0
11
+ //
12
+ // Unless required by applicable law or agreed to in writing,
13
+ // software distributed under the License is distributed on an
14
+ // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ // KIND, either express or implied. See the License for the
16
+ // specific language governing permissions and limitations
17
+ // under the License.
18
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.VerificationError = exports.AssertionError = void 0;
23
+ var assertion_1 = require("./assertion");
24
+ Object.defineProperty(exports, "AssertionError", { enumerable: true, get: function () { return __importDefault(assertion_1).default; } });
25
+ var verification_1 = require("./verification");
26
+ Object.defineProperty(exports, "VerificationError", { enumerable: true, get: function () { return __importDefault(verification_1).default; } });
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,wDAAwD;AACxD,6DAA6D;AAC7D,oDAAoD;AACpD,6DAA6D;AAC7D,6DAA6D;AAC7D,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,4DAA4D;AAC5D,0DAA0D;AAC1D,qBAAqB;;;;;;AAErB,yCAAuD;AAA9C,4HAAA,OAAO,OAAkB;AAClC,+CAA6D;AAApD,kIAAA,OAAO,OAAqB"}
@@ -0,0 +1,4 @@
1
+ export default class VerificationError extends Error {
2
+ constructor(...argv: string[]);
3
+ }
4
+ //# sourceMappingURL=verification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../src/errors/verification.ts"],"names":[],"mappings":"AAiBA,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,KAAK;gBACtC,GAAG,IAAI,EAAE,MAAM,EAAE;CAO9B"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ // Licensed to the Software Freedom Conservancy (SFC) under one
3
+ // or more contributor license agreements. See the NOTICE file
4
+ // distributed with this work for additional information
5
+ // regarding copyright ownership. The SFC licenses this file
6
+ // to you under the Apache License, Version 2.0 (the
7
+ // "License"); you may not use this file except in compliance
8
+ // with the License. You may obtain a copy of the License at
9
+ //
10
+ // http://www.apache.org/licenses/LICENSE-2.0
11
+ //
12
+ // Unless required by applicable law or agreed to in writing,
13
+ // software distributed under the License is distributed on an
14
+ // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ // KIND, either express or implied. See the License for the
16
+ // specific language governing permissions and limitations
17
+ // under the License.
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ class VerificationError extends Error {
20
+ constructor(...argv) {
21
+ super(argv.join(' '));
22
+ if (Error.captureStackTrace) {
23
+ Error.captureStackTrace(this, VerificationError);
24
+ }
25
+ }
26
+ }
27
+ exports.default = VerificationError;
28
+ //# sourceMappingURL=verification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/errors/verification.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,wDAAwD;AACxD,6DAA6D;AAC7D,oDAAoD;AACpD,6DAA6D;AAC7D,6DAA6D;AAC7D,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,4DAA4D;AAC5D,0DAA0D;AAC1D,qBAAqB;;AAErB,MAAqB,iBAAkB,SAAQ,KAAK;IAClD,YAAY,GAAG,IAAc;QAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAErB,IAAI,KAAK,CAAC,iBAAiB,EAAE;YAC3B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAA;SACjD;IACH,CAAC;CACF;AARD,oCAQC"}
@@ -0,0 +1,17 @@
1
+ export { default as Playback } from './playback';
2
+ export { default as Variables } from './variables';
3
+ export { default as WebDriverExecutor } from './webdriver';
4
+ import createRecorderSyncronizer from './recording-syncronizer';
5
+ import createRecorderSyncronizerForWebdriverExecutor from './recording-syncronizer-webdriver';
6
+ export * from './playback';
7
+ export * from './plugins';
8
+ export * from './types';
9
+ export declare const CommandType: {
10
+ readonly LOOP: "loop";
11
+ readonly CONDITIONAL: "conditional";
12
+ };
13
+ export declare const RecordingSyncronizers: {
14
+ createRecorderSyncronizer: typeof createRecorderSyncronizer;
15
+ createRecorderSyncronizerForWebdriverExecutor: typeof createRecorderSyncronizerForWebdriverExecutor;
16
+ };
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE1D,OAAO,yBAAyB,MAAM,yBAAyB,CAAA;AAC/D,OAAO,6CAA6C,MAAM,mCAAmC,CAAA;AAE7F,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,eAAO,MAAM,WAAW;;;CAAe,CAAA;AACvC,eAAO,MAAM,qBAAqB;;;CAGjC,CAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ // Licensed to the Software Freedom Conservancy (SFC) under one
3
+ // or more contributor license agreements. See the NOTICE file
4
+ // distributed with this work for additional information
5
+ // regarding copyright ownership. The SFC licenses this file
6
+ // to you under the Apache License, Version 2.0 (the
7
+ // "License"); you may not use this file except in compliance
8
+ // with the License. You may obtain a copy of the License at
9
+ //
10
+ // http://www.apache.org/licenses/LICENSE-2.0
11
+ //
12
+ // Unless required by applicable law or agreed to in writing,
13
+ // software distributed under the License is distributed on an
14
+ // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ // KIND, either express or implied. See the License for the
16
+ // specific language governing permissions and limitations
17
+ // under the License.
18
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ var desc = Object.getOwnPropertyDescriptor(m, k);
21
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
22
+ desc = { enumerable: true, get: function() { return m[k]; } };
23
+ }
24
+ Object.defineProperty(o, k2, desc);
25
+ }) : (function(o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ o[k2] = m[k];
28
+ }));
29
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
30
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
31
+ };
32
+ var __importDefault = (this && this.__importDefault) || function (mod) {
33
+ return (mod && mod.__esModule) ? mod : { "default": mod };
34
+ };
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.RecordingSyncronizers = exports.CommandType = exports.WebDriverExecutor = exports.Variables = exports.Playback = void 0;
37
+ var playback_1 = require("./playback");
38
+ Object.defineProperty(exports, "Playback", { enumerable: true, get: function () { return __importDefault(playback_1).default; } });
39
+ var variables_1 = require("./variables");
40
+ Object.defineProperty(exports, "Variables", { enumerable: true, get: function () { return __importDefault(variables_1).default; } });
41
+ var webdriver_1 = require("./webdriver");
42
+ Object.defineProperty(exports, "WebDriverExecutor", { enumerable: true, get: function () { return __importDefault(webdriver_1).default; } });
43
+ const command_node_1 = require("./playback-tree/command-node");
44
+ const recording_syncronizer_1 = __importDefault(require("./recording-syncronizer"));
45
+ const recording_syncronizer_webdriver_1 = __importDefault(require("./recording-syncronizer-webdriver"));
46
+ __exportStar(require("./playback"), exports);
47
+ __exportStar(require("./plugins"), exports);
48
+ __exportStar(require("./types"), exports);
49
+ exports.CommandType = command_node_1.CommandType;
50
+ exports.RecordingSyncronizers = {
51
+ createRecorderSyncronizer: recording_syncronizer_1.default,
52
+ createRecorderSyncronizerForWebdriverExecutor: recording_syncronizer_webdriver_1.default,
53
+ };
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,wDAAwD;AACxD,6DAA6D;AAC7D,oDAAoD;AACpD,6DAA6D;AAC7D,6DAA6D;AAC7D,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,6DAA6D;AAC7D,8DAA8D;AAC9D,yDAAyD;AACzD,4DAA4D;AAC5D,0DAA0D;AAC1D,qBAAqB;;;;;;;;;;;;;;;;;;;;AAErB,uCAAgD;AAAvC,qHAAA,OAAO,OAAY;AAC5B,yCAAkD;AAAzC,uHAAA,OAAO,OAAa;AAC7B,yCAA0D;AAAjD,+HAAA,OAAO,OAAqB;AACrC,+DAA0E;AAC1E,oFAA+D;AAC/D,wGAA6F;AAE7F,6CAA0B;AAC1B,4CAAyB;AACzB,0CAAuB;AACV,QAAA,WAAW,GAAG,0BAAY,CAAA;AAC1B,QAAA,qBAAqB,GAAG;IACnC,yBAAyB,EAAzB,+BAAyB;IACzB,6CAA6C,EAA7C,yCAA6C;CAC9C,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { CommandShape } from '@seleniumhq/side-model';
2
+ export declare function deriveCommandLevels(commandStack: CommandShape[]): number[];
3
+ export declare type LevelCommand = (command: CommandShape, level: number, levels: number[]) => ({
4
+ level: number;
5
+ levels: number[];
6
+ });
7
+ //# sourceMappingURL=command-leveler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-leveler.d.ts","sourceRoot":"","sources":["../../src/playback-tree/command-leveler.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAErD,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,EAAE,CAS1E;AAED,oBAAY,YAAY,GAAG,CACzB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EAAE,KACb,CAAC;IACJ,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB,CAAC,CAAA"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ // Licensed to the Software Freedom Conservancy (SFC) under one
3
+ // or more contributor license agreements. See the NOTICE file
4
+ // distributed with this work for additional information
5
+ // regarding copyright ownership. The SFC licenses this file
6
+ // to you under the Apache License, Version 2.0 (the
7
+ // "License"); you may not use this file except in compliance
8
+ // with the License. You may obtain a copy of the License at
9
+ //
10
+ // http://www.apache.org/licenses/LICENSE-2.0
11
+ //
12
+ // Unless required by applicable law or agreed to in writing,
13
+ // software distributed under the License is distributed on an
14
+ // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ // KIND, either express or implied. See the License for the
16
+ // specific language governing permissions and limitations
17
+ // under the License.
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.deriveCommandLevels = void 0;
20
+ const commands_1 = require("./commands");
21
+ function deriveCommandLevels(commandStack) {
22
+ let level = 0;
23
+ let levels = [];
24
+ commandStack.forEach(function (command) {
25
+ const result = levelCommand(command, level, levels);
26
+ level = result.level;
27
+ levels = result.levels;
28
+ });
29
+ return levels;
30
+ }
31
+ exports.deriveCommandLevels = deriveCommandLevels;
32
+ const levelDefault = (_command, level, _levels) => {
33
+ let levels = [..._levels];
34
+ levels.push(level);
35
+ return { level, levels };
36
+ };
37
+ const levelBranchOpen = (_command, level, _levels) => {
38
+ let levels = [..._levels];
39
+ levels.push(level);
40
+ level++;
41
+ return { level, levels };
42
+ };
43
+ const levelBranchEnd = (_command, level, _levels) => {
44
+ let levels = [..._levels];
45
+ level--;
46
+ levels.push(level);
47
+ return { level, levels };
48
+ };
49
+ const levelElse = (_command, level, _levels) => {
50
+ let levels = [..._levels];
51
+ level--;
52
+ levels.push(level);
53
+ level++;
54
+ return { level, levels };
55
+ };
56
+ const levelCommand = (command, level, levels) => {
57
+ if (!command.skip && commandLevelers[command.command]) {
58
+ return commandLevelers[command.command](command, level, levels);
59
+ }
60
+ return levelDefault(command, level, levels);
61
+ };
62
+ const commandLevelers = {
63
+ [commands_1.ControlFlowCommandNames.do]: levelBranchOpen,
64
+ [commands_1.ControlFlowCommandNames.else]: levelElse,
65
+ [commands_1.ControlFlowCommandNames.elseIf]: levelElse,
66
+ [commands_1.ControlFlowCommandNames.end]: levelBranchEnd,
67
+ [commands_1.ControlFlowCommandNames.forEach]: levelBranchOpen,
68
+ [commands_1.ControlFlowCommandNames.if]: levelBranchOpen,
69
+ [commands_1.ControlFlowCommandNames.repeatIf]: levelBranchEnd,
70
+ [commands_1.ControlFlowCommandNames.times]: levelBranchOpen,
71
+ [commands_1.ControlFlowCommandNames.while]: levelBranchOpen,
72
+ };
73
+ //# sourceMappingURL=command-leveler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-leveler.js","sourceRoot":"","sources":["../../src/playback-tree/command-leveler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { Fn } from '@seleniumhq/side-commons';
2
+ import { CommandShape } from '@seleniumhq/side-model';
3
+ import { WebDriverExecutor } from '..';
4
+ import { CommandNodeOptions } from '../types';
5
+ import Variables from '../variables';
6
+ import { WebDriverExecutorCondEvalResult } from '../webdriver';
7
+ export interface CommandExecutorOptions {
8
+ executorOverride?: Fn;
9
+ }
10
+ export interface CommandExecutionResult {
11
+ next?: Fn;
12
+ skipped?: boolean;
13
+ value?: any;
14
+ }
15
+ export declare class CommandNode {
16
+ constructor(command: CommandShape, { emitControlFlowEvent }?: CommandNodeOptions);
17
+ command: CommandShape;
18
+ emitControlFlowEvent: Fn;
19
+ next?: CommandNode;
20
+ left?: CommandNode;
21
+ right?: CommandNode;
22
+ index: number;
23
+ level: number;
24
+ timesVisited: number;
25
+ isControlFlow(): boolean;
26
+ isTerminal(): boolean;
27
+ shouldSkip(): boolean;
28
+ execute(commandExecutor: WebDriverExecutor, args?: CommandExecutorOptions): Promise<{
29
+ next: Fn | CommandNode | undefined;
30
+ skipped: boolean | undefined;
31
+ }>;
32
+ _executeCommand(commandExecutor: WebDriverExecutor, { executorOverride }?: CommandExecutorOptions): Promise<any>;
33
+ _executeCoreCommand(commandExecutor: WebDriverExecutor, timeout: number): Promise<unknown>;
34
+ _executionResult(result?: CommandExecutionResult): {
35
+ next: Fn | CommandNode | undefined;
36
+ skipped: boolean | undefined;
37
+ };
38
+ evaluateForEach(variables: Variables): boolean | string;
39
+ _evaluate(commandExecutor: WebDriverExecutor): {
40
+ next: CommandNode | undefined;
41
+ } | Promise<{
42
+ next: CommandNode | undefined;
43
+ }>;
44
+ _evaluationResult(result: WebDriverExecutorCondEvalResult): {
45
+ next: CommandNode | undefined;
46
+ };
47
+ _incrementTimesVisited(): void;
48
+ _isRetryLimit(): boolean;
49
+ }
50
+ export declare const CommandType: {
51
+ readonly LOOP: "loop";
52
+ readonly CONDITIONAL: "conditional";
53
+ };
54
+ //# sourceMappingURL=command-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-node.d.ts","sourceRoot":"","sources":["../../src/playback-tree/command-node.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAA;AAEtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,SAAS,MAAM,cAAc,CAAA;AACpC,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAA;AAG9D,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,CAAC,EAAE,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,EAAE,CAAA;IACT,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,GAAG,CAAA;CACZ;AAED,qBAAa,WAAW;gBAEpB,OAAO,EAAE,YAAY,EACrB,EAAE,oBAAoB,EAAE,GAAE,kBAAuB;IAanD,OAAO,EAAE,YAAY,CAAA;IACrB,oBAAoB,EAAE,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,IAAI,CAAC,EAAE,WAAW,CAAA;IAClB,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IAWpB,aAAa,IAAI,OAAO;IAIxB,UAAU,IAAI,OAAO;IAOrB,UAAU,IAAI,OAAO;IAIrB,OAAO,CAAC,eAAe,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,sBAAsB;;;;IAoBnE,eAAe,CACnB,eAAe,EAAE,iBAAiB,EAClC,EAAE,gBAAgB,EAAE,GAAE,sBAA2B;IAsB7C,mBAAmB,CACvB,eAAe,EAAE,iBAAiB,EAClC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IAmBnB,gBAAgB,CAAC,MAAM,GAAE,sBAA2B;;;;IAQpD,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM;IAyBvD,SAAS,CAAC,eAAe,EAAE,iBAAiB;;;;;IA6B5C,iBAAiB,CAAC,MAAM,EAAE,+BAA+B;;;IAYzD,sBAAsB;IAItB,aAAa;CAWd;AAED,eAAO,MAAM,WAAW;;;CAGd,CAAA"}
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ // Licensed to the Software Freedom Conservancy (SFC) under one
3
+ // or more contributor license agreements. See the NOTICE file
4
+ // distributed with this work for additional information
5
+ // regarding copyright ownership. The SFC licenses this file
6
+ // to you under the Apache License, Version 2.0 (the
7
+ // "License"); you may not use this file except in compliance
8
+ // with the License. You may obtain a copy of the License at
9
+ //
10
+ // http://www.apache.org/licenses/LICENSE-2.0
11
+ //
12
+ // Unless required by applicable law or agreed to in writing,
13
+ // software distributed under the License is distributed on an
14
+ // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ // KIND, either express or implied. See the License for the
16
+ // specific language governing permissions and limitations
17
+ // under the License.
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.CommandType = exports.CommandNode = void 0;
20
+ const preprocessors_1 = require("../preprocessors");
21
+ const commands_1 = require("./commands");
22
+ class CommandNode {
23
+ constructor(command, { emitControlFlowEvent } = {}) {
24
+ this.command = command;
25
+ this.next = undefined;
26
+ this.left = undefined;
27
+ this.right = undefined;
28
+ this.index = 0;
29
+ this.level = 0;
30
+ this.timesVisited = 0;
31
+ this.emitControlFlowEvent = emitControlFlowEvent
32
+ ? emitControlFlowEvent
33
+ : () => { };
34
+ }
35
+ /* I'm not sure what this does yet, so I'm putting it on a shelf atm
36
+ isExtCommand(executor: CommandNode): boolean {
37
+ return !!(
38
+ typeof executor.isExtCommand === 'function' &&
39
+ executor.isExtCommand(this.command.command)
40
+ )
41
+ }
42
+ */
43
+ isControlFlow() {
44
+ return !!(this.left || this.right);
45
+ }
46
+ isTerminal() {
47
+ return (commands_1.ControlFlowCommandChecks.isTerminal(this.command) ||
48
+ this.command.command === '');
49
+ }
50
+ shouldSkip() {
51
+ return Boolean(this.command.skip || this.command.command.startsWith('//'));
52
+ }
53
+ execute(commandExecutor, args) {
54
+ if (this._isRetryLimit()) {
55
+ return Promise.reject(new Error('Max retry limit exceeded. To override it, specify a new limit in the value input field.'));
56
+ }
57
+ if (this.shouldSkip()) {
58
+ return Promise.resolve(this._executionResult({ skipped: true }));
59
+ }
60
+ return commandExecutor.beforeCommand(this.command).then(() => {
61
+ return this._executeCommand(commandExecutor, args).then((result) => {
62
+ return commandExecutor.afterCommand(this.command).then(() => {
63
+ return this._executionResult(result);
64
+ });
65
+ });
66
+ });
67
+ }
68
+ async _executeCommand(commandExecutor, { executorOverride } = {}) {
69
+ if (executorOverride) {
70
+ return executorOverride(this.command.target, this.command.value);
71
+ }
72
+ else if (this.isControlFlow()) {
73
+ return Promise.resolve(this._evaluate(commandExecutor));
74
+ }
75
+ else if (this.isTerminal()) {
76
+ return Promise.resolve();
77
+ }
78
+ else {
79
+ if (commandExecutor.customCommands[this.command.command]) {
80
+ return commandExecutor.customCommands[this.command.command].execute(this.command, commandExecutor);
81
+ }
82
+ return this._executeCoreCommand(commandExecutor, Date.now() + commandExecutor.implicitWait);
83
+ }
84
+ }
85
+ async _executeCoreCommand(commandExecutor, timeout) {
86
+ try {
87
+ // @ts-expect-error
88
+ return await commandExecutor[commandExecutor.name(this.command.command)](this.command.target, this.command.value, this.command);
89
+ }
90
+ catch (e) {
91
+ console.warn('Unexpected error occured during command:', this.command.command);
92
+ if (Date.now() > timeout)
93
+ throw e;
94
+ console.error(e);
95
+ return this._executeCoreCommand(commandExecutor, timeout);
96
+ }
97
+ }
98
+ _executionResult(result = {}) {
99
+ this._incrementTimesVisited();
100
+ return {
101
+ next: this.isControlFlow() ? result.next : this.next,
102
+ skipped: result.skipped,
103
+ };
104
+ }
105
+ evaluateForEach(variables) {
106
+ let collection = variables.get((0, preprocessors_1.interpolateScript)(this.command.target, variables).script);
107
+ if (!collection)
108
+ return 'Invalid variable provided.';
109
+ variables.set((0, preprocessors_1.interpolateScript)(this.command.value, variables).script, collection[this.timesVisited]);
110
+ const result = this.timesVisited < collection.length;
111
+ if (result)
112
+ this.emitControlFlowEvent({
113
+ commandId: this.command.id,
114
+ type: exports.CommandType.LOOP,
115
+ index: this.timesVisited,
116
+ iterator: collection[this.timesVisited],
117
+ collection,
118
+ });
119
+ // Reset timesVisited if loop ends, needed to support forEach recursion.
120
+ // It's set to -1 since the incrementer will pick it up. Setting it to
121
+ // 0 when called on a subsequent interation.
122
+ else
123
+ this.timesVisited = -1;
124
+ return result;
125
+ }
126
+ _evaluate(commandExecutor) {
127
+ let expression = (0, preprocessors_1.interpolateScript)(this.command.target, commandExecutor.variables);
128
+ if (commands_1.ControlFlowCommandChecks.isTimes(this.command)) {
129
+ const number = Math.floor(+expression);
130
+ if (isNaN(number)) {
131
+ return Promise.reject(new Error('Invalid number provided as a target.'));
132
+ }
133
+ return this._evaluationResult({ value: this.timesVisited < number });
134
+ }
135
+ else if (commands_1.ControlFlowCommandChecks.isForEach(this.command)) {
136
+ const result = this.evaluateForEach(commandExecutor.variables);
137
+ if (!result) {
138
+ this.emitControlFlowEvent({
139
+ commandId: this.command.id,
140
+ type: exports.CommandType.LOOP,
141
+ end: true,
142
+ });
143
+ }
144
+ return this._evaluationResult({
145
+ value: Boolean(result),
146
+ });
147
+ }
148
+ return commandExecutor.evaluateConditional(expression).then((result) => {
149
+ return this._evaluationResult(result);
150
+ });
151
+ }
152
+ _evaluationResult(result) {
153
+ if (result.value) {
154
+ return {
155
+ next: this.right,
156
+ };
157
+ }
158
+ else {
159
+ return {
160
+ next: this.left,
161
+ };
162
+ }
163
+ }
164
+ _incrementTimesVisited() {
165
+ if (commands_1.ControlFlowCommandChecks.isLoop(this.command))
166
+ this.timesVisited++;
167
+ }
168
+ _isRetryLimit() {
169
+ if (commands_1.ControlFlowCommandChecks.isLoop(this.command)) {
170
+ let limit = 1000;
171
+ let value = Math.floor(+this.command.value);
172
+ if (this.command.value && !isNaN(value)) {
173
+ limit = value;
174
+ }
175
+ return this.timesVisited >= limit;
176
+ }
177
+ return false;
178
+ }
179
+ }
180
+ exports.CommandNode = CommandNode;
181
+ exports.CommandType = {
182
+ LOOP: 'loop',
183
+ CONDITIONAL: 'conditional',
184
+ };
185
+ //# sourceMappingURL=command-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-node.js","sourceRoot":"","sources":["../../src/playback-tree/command-node.ts"],"names":[],"mappings":"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"}