@axe-core/cli 4.7.4-cbd2a5f.0 → 4.8.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 (63) hide show
  1. package/.eslintrc.js +18 -0
  2. package/CHANGELOG.md +221 -0
  3. package/package.json +3 -7
  4. package/src/bin/cli.test.ts +420 -0
  5. package/src/bin/cli.ts +86 -0
  6. package/src/bin/index.ts +216 -0
  7. package/src/lib/axe-test-urls.test.ts +73 -0
  8. package/src/lib/axe-test-urls.ts +98 -0
  9. package/src/lib/events.test.ts +26 -0
  10. package/src/lib/events.ts +68 -0
  11. package/{dist/src/lib/index.d.ts → src/lib/index.ts} +1 -0
  12. package/src/lib/utils.test.ts +160 -0
  13. package/src/lib/utils.ts +147 -0
  14. package/src/lib/webdriver.test.ts +104 -0
  15. package/src/lib/webdriver.ts +43 -0
  16. package/src/testutils/axe-core@2.5.0.js +18929 -0
  17. package/src/testutils/index.ts +47 -0
  18. package/src/testutils/simple-clean.html +11 -0
  19. package/src/testutils/simple.html +12 -0
  20. package/src/types.ts +42 -0
  21. package/tsconfig.json +19 -0
  22. package/dist/package.json +0 -91
  23. package/dist/src/bin/cli.d.ts +0 -2
  24. package/dist/src/bin/cli.js +0 -40
  25. package/dist/src/bin/cli.js.map +0 -1
  26. package/dist/src/bin/cli.test.d.ts +0 -1
  27. package/dist/src/bin/cli.test.js +0 -259
  28. package/dist/src/bin/cli.test.js.map +0 -1
  29. package/dist/src/bin/index.d.ts +0 -5
  30. package/dist/src/bin/index.js +0 -168
  31. package/dist/src/bin/index.js.map +0 -1
  32. package/dist/src/lib/axe-test-urls.d.ts +0 -4
  33. package/dist/src/lib/axe-test-urls.js +0 -89
  34. package/dist/src/lib/axe-test-urls.js.map +0 -1
  35. package/dist/src/lib/axe-test-urls.test.d.ts +0 -1
  36. package/dist/src/lib/axe-test-urls.test.js +0 -73
  37. package/dist/src/lib/axe-test-urls.test.js.map +0 -1
  38. package/dist/src/lib/events.d.ts +0 -10
  39. package/dist/src/lib/events.js +0 -54
  40. package/dist/src/lib/events.js.map +0 -1
  41. package/dist/src/lib/events.test.d.ts +0 -1
  42. package/dist/src/lib/events.test.js +0 -31
  43. package/dist/src/lib/events.test.js.map +0 -1
  44. package/dist/src/lib/index.js +0 -36
  45. package/dist/src/lib/index.js.map +0 -1
  46. package/dist/src/lib/utils.d.ts +0 -15
  47. package/dist/src/lib/utils.js +0 -127
  48. package/dist/src/lib/utils.js.map +0 -1
  49. package/dist/src/lib/utils.test.d.ts +0 -1
  50. package/dist/src/lib/utils.test.js +0 -165
  51. package/dist/src/lib/utils.test.js.map +0 -1
  52. package/dist/src/lib/webdriver.d.ts +0 -4
  53. package/dist/src/lib/webdriver.js +0 -50
  54. package/dist/src/lib/webdriver.js.map +0 -1
  55. package/dist/src/lib/webdriver.test.d.ts +0 -1
  56. package/dist/src/lib/webdriver.test.js +0 -102
  57. package/dist/src/lib/webdriver.test.js.map +0 -1
  58. package/dist/src/testutils/index.d.ts +0 -19
  59. package/dist/src/testutils/index.js +0 -51
  60. package/dist/src/testutils/index.js.map +0 -1
  61. package/dist/src/types.d.ts +0 -37
  62. package/dist/src/types.js +0 -18
  63. package/dist/src/types.js.map +0 -1
@@ -1,127 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.italics = exports.green = exports.bold = exports.error = exports.link = exports.reporter = exports.selectorToString = exports.splitList = exports.getAxeVersion = exports.getAxeSource = exports.parseBrowser = exports.parseUrl = exports.saveOutcome = void 0;
7
- const fs_1 = __importDefault(require("fs"));
8
- const path_1 = __importDefault(require("path"));
9
- const colors_1 = __importDefault(require("colors"));
10
- const saveOutcome = (outcome, fileName, dir) => {
11
- if (typeof fileName !== 'string') {
12
- fileName = 'axe-results-' + Date.now() + '.json';
13
- }
14
- /* istanbul ignore if */
15
- if (typeof dir !== 'string') {
16
- dir = process.cwd();
17
- }
18
- else if (!path_1.default.isAbsolute(dir)) {
19
- dir = path_1.default.join(process.cwd(), dir);
20
- }
21
- const filePath = path_1.default.join(dir, fileName);
22
- /* istanbul ignore else */
23
- if (!fs_1.default.existsSync(filePath)) {
24
- fs_1.default.mkdirSync(dir, { recursive: true });
25
- }
26
- fs_1.default.writeFileSync(filePath, JSON.stringify(outcome, null, 2), 'utf-8');
27
- return filePath;
28
- };
29
- exports.saveOutcome = saveOutcome;
30
- const parseUrl = (url) => {
31
- if (!/[a-z]+:\/\//.test(url)) {
32
- return 'http://' + url;
33
- }
34
- return url;
35
- };
36
- exports.parseUrl = parseUrl;
37
- const parseBrowser = (browser) => {
38
- if (!browser) {
39
- return 'chrome-headless';
40
- }
41
- const l = browser.length;
42
- switch (browser.toLowerCase()) {
43
- case 'ff':
44
- case 'firefox'.substr(0, l):
45
- case 'gecko'.substr(0, l):
46
- case 'marionette'.substr(0, l):
47
- return 'firefox';
48
- case 'chrome'.substr(0, l):
49
- return 'chrome';
50
- case 'ie':
51
- case 'explorer'.substr(0, l):
52
- case 'internetexplorer'.substr(0, l):
53
- case 'internet_explorer'.substr(0, l):
54
- case 'internet-explorer'.substr(0, l):
55
- return 'ie';
56
- case 'safari'.substr(0, l):
57
- return 'safari';
58
- case 'edge'.substr(0, l):
59
- case 'microsoftedge'.substr(0, l):
60
- return 'MicrosoftEdge';
61
- default:
62
- throw new Error('Unknown browser ' + browser);
63
- }
64
- };
65
- exports.parseBrowser = parseBrowser;
66
- const getAxeSource = (axePath, dirname) => {
67
- // Abort if axePath should exist, and it isn't
68
- if (axePath && !fs_1.default.existsSync(axePath)) {
69
- return;
70
- }
71
- let cwd = dirname;
72
- if (!cwd) {
73
- cwd = process.cwd();
74
- }
75
- if (!dirname) {
76
- dirname = __dirname;
77
- }
78
- // Look for axe in current working directory
79
- if (!axePath) {
80
- axePath = path_1.default.join(cwd, 'axe.js');
81
- }
82
- if (!fs_1.default.existsSync(axePath)) {
83
- // Look for axe in CWD ./node_modules
84
- axePath = path_1.default.join(cwd, 'node_modules', 'axe-core', 'axe.js');
85
- }
86
- if (!fs_1.default.existsSync(axePath)) {
87
- // in local develop using npm workspaces axe-core is
88
- // hoisted to the root, but when published axe-core
89
- // will be in the node_modules for the cli
90
- axePath = require.resolve('axe-core/axe.js');
91
- }
92
- return fs_1.default.readFileSync(axePath, 'utf-8');
93
- };
94
- exports.getAxeSource = getAxeSource;
95
- const getAxeVersion = (source) => {
96
- const match = source.match(/\.version\s*=\s'([^']+)'/);
97
- return match ? match[1] : 'unknown version';
98
- };
99
- exports.getAxeVersion = getAxeVersion;
100
- const splitList = (val) => {
101
- return val.split(/[,;]/).map(str => str.trim());
102
- };
103
- exports.splitList = splitList;
104
- const selectorToString = (selectors, separator) => {
105
- separator = separator || ' ';
106
- return selectors
107
- .reduce((prev, curr) => prev.concat(curr), [])
108
- .join(separator);
109
- };
110
- exports.selectorToString = selectorToString;
111
- const reporter = (noReporter, silentMode) => {
112
- if (!noReporter || silentMode) {
113
- return () => { };
114
- }
115
- else {
116
- return (...args) => {
117
- console.log(...args);
118
- };
119
- }
120
- };
121
- exports.reporter = reporter;
122
- exports.link = colors_1.default.underline.blue;
123
- exports.error = colors_1.default.red.bold;
124
- exports.bold = colors_1.default.bold;
125
- exports.green = colors_1.default.green;
126
- exports.italics = colors_1.default.italic;
127
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- import 'mocha';
@@ -1,165 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- require("mocha");
30
- const chai_1 = require("chai");
31
- const tempy_1 = __importDefault(require("tempy"));
32
- const path_1 = require("path");
33
- const fs_1 = require("fs");
34
- const utils = __importStar(require("./utils"));
35
- describe('utils', () => {
36
- describe('parseUrl', () => {
37
- it('given a url without protocol', () => {
38
- const url = 'foobar.com';
39
- chai_1.assert.deepEqual(utils.parseUrl(url), `http://${url}`);
40
- });
41
- it('given a url with a protocol', () => {
42
- const url = 'http://foobar.com';
43
- chai_1.assert.deepEqual(utils.parseUrl(url), url);
44
- });
45
- });
46
- describe('parseBrowser', () => {
47
- it('given an unknown browser returns error', () => {
48
- chai_1.assert.throws(() => utils.parseBrowser('foobar'));
49
- });
50
- it('given no browser returns chrome-headless', () => {
51
- chai_1.assert.deepEqual(utils.parseBrowser(), 'chrome-headless');
52
- });
53
- describe('returns firefox', () => {
54
- const firefoxBrowsers = ['ff', 'firefox', 'gecko', 'marionette'];
55
- for (const firefoxBrowser of firefoxBrowsers) {
56
- it(`given ${firefoxBrowser} returns firefox`, () => {
57
- chai_1.assert.deepEqual(utils.parseBrowser(firefoxBrowser), 'firefox');
58
- });
59
- }
60
- });
61
- describe('returns chrome', () => {
62
- it('given chrome returns chrome', () => {
63
- chai_1.assert.deepEqual(utils.parseBrowser('chrome'), 'chrome');
64
- });
65
- });
66
- describe('returns ie', () => {
67
- const ieBrowsers = [
68
- 'ie',
69
- 'explorer',
70
- 'internetexplorer',
71
- 'internet_explorer',
72
- 'internet-explorer'
73
- ];
74
- for (const ieBrowser of ieBrowsers) {
75
- it(`given ${ieBrowser} returns ie`, () => {
76
- chai_1.assert.deepEqual(utils.parseBrowser(ieBrowser), 'ie');
77
- });
78
- }
79
- });
80
- describe('returns safari', () => {
81
- it('given safari return safari', () => {
82
- chai_1.assert.deepEqual(utils.parseBrowser('safari'), 'safari');
83
- });
84
- });
85
- describe('returns edge', () => {
86
- const edgeBrowsers = ['edge', 'microsoftedge'];
87
- for (const edgeBrowser of edgeBrowsers) {
88
- it(`given ${edgeBrowser} returns MicrosoftEdge`, () => {
89
- chai_1.assert.deepEqual(utils.parseBrowser(edgeBrowser), 'MicrosoftEdge');
90
- });
91
- }
92
- });
93
- });
94
- describe('getAxeSource', () => {
95
- describe('mock file', () => {
96
- function setupTree() {
97
- const tempDir = tempy_1.default.directory();
98
- const parentDirname = (0, path_1.join)(tempDir, 'node_modules', 'axe-core');
99
- (0, fs_1.mkdirSync)(parentDirname, { recursive: true });
100
- (0, fs_1.writeFileSync)((0, path_1.join)(parentDirname, 'axe.js'), 'parent');
101
- const cliDirname = (0, path_1.join)(tempDir, 'packages', 'cli');
102
- const nodeModDirname = (0, path_1.join)(cliDirname, 'node_modules', 'axe-core');
103
- (0, fs_1.mkdirSync)(nodeModDirname, { recursive: true });
104
- (0, fs_1.writeFileSync)((0, path_1.join)(nodeModDirname, 'axe.js'), 'node modules');
105
- const cwdDirname = (0, path_1.join)(tempDir, 'packages', 'cli', 'lib');
106
- (0, fs_1.mkdirSync)(cwdDirname);
107
- (0, fs_1.writeFileSync)((0, path_1.join)(cwdDirname, 'axe.js'), 'cwd');
108
- return {
109
- cliDirname,
110
- parentDirname,
111
- nodeModDirname,
112
- cwdDirname
113
- };
114
- }
115
- it('uses axe.js from the working directory if it exists', () => {
116
- const { cwdDirname } = setupTree();
117
- const axeSource = utils.getAxeSource(undefined, cwdDirname);
118
- chai_1.assert.include(axeSource, 'cwd');
119
- });
120
- it("falls back to axe-core from the working directory's node_modules if axe.js doesn't exist in the working directory", () => {
121
- const { cliDirname, cwdDirname } = setupTree();
122
- (0, fs_1.rmSync)((0, path_1.join)(cwdDirname, 'axe.js'));
123
- const axeSource = utils.getAxeSource(undefined, cliDirname);
124
- chai_1.assert.include(axeSource, 'node modules');
125
- });
126
- it("falls back to axe-core from our own package's node_modules if no working-directory based implementation exists", () => {
127
- const { cwdDirname, nodeModDirname } = setupTree();
128
- (0, fs_1.rmSync)((0, path_1.join)(cwdDirname, 'axe.js'));
129
- (0, fs_1.rmSync)((0, path_1.join)(nodeModDirname, 'axe.js'));
130
- const axeSource = utils.getAxeSource(undefined, cwdDirname);
131
- chai_1.assert.include(axeSource, 'parent');
132
- });
133
- });
134
- it('given no axe source use local source', () => {
135
- const axeSource = utils.getAxeSource();
136
- chai_1.assert.isNotNull(axeSource);
137
- });
138
- it('given invalid axe source throws error', () => {
139
- chai_1.assert.throws(() => utils.getAxeSource('././././'));
140
- });
141
- });
142
- describe('getAxeVersion', () => {
143
- it('given valid axe version returns only version', () => {
144
- chai_1.assert.deepEqual(utils.getAxeVersion(`axe.version = '4.1.1'`), '4.1.1');
145
- });
146
- it('given invalid axe version returns unknown version string', () => {
147
- chai_1.assert.deepEqual(utils.getAxeVersion(`axe = '4.1.1'`), 'unknown version');
148
- });
149
- });
150
- describe('splitList', () => {
151
- it('given a comma delimited string returns array', () => {
152
- const delimited = 'foo,bar,baz';
153
- const array = utils.splitList(delimited);
154
- chai_1.assert.isArray(array);
155
- chai_1.assert.deepEqual(array, ['foo', 'bar', 'baz']);
156
- });
157
- it('given a single string returns an array', () => {
158
- const string = 'foo';
159
- const array = utils.splitList(string);
160
- chai_1.assert.isArray(array);
161
- chai_1.assert.deepEqual(array, ['foo']);
162
- });
163
- });
164
- });
165
- //# sourceMappingURL=utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../src/lib/utils.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iBAAe;AACf,+BAA8B;AAC9B,kDAA0B;AAC1B,+BAA4B;AAC5B,2BAAsD;AAEtD,+CAAiC;AAEjC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,GAAG,GAAG,YAAY,CAAC;YACzB,aAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,GAAG,GAAG,mBAAmB,CAAC;YAChC,aAAM,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,aAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,aAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,EAAE,iBAAiB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;YAC/B,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACjE,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;gBAC5C,EAAE,CAAC,SAAS,cAAc,kBAAkB,EAAE,GAAG,EAAE;oBACjD,aAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC9B,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;gBACrC,aAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;YAC1B,MAAM,UAAU,GAAG;gBACjB,IAAI;gBACJ,UAAU;gBACV,kBAAkB;gBAClB,mBAAmB;gBACnB,mBAAmB;aACpB,CAAC;YAEF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;gBAClC,EAAE,CAAC,SAAS,SAAS,aAAa,EAAE,GAAG,EAAE;oBACvC,aAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC9B,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;gBACpC,aAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC3D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;YAC5B,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAC/C,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;gBACtC,EAAE,CAAC,SAAS,WAAW,wBAAwB,EAAE,GAAG,EAAE;oBACpD,aAAM,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;YACzB,SAAS,SAAS;gBAChB,MAAM,OAAO,GAAG,eAAK,CAAC,SAAS,EAAE,CAAC;gBAClC,MAAM,aAAa,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;gBAChE,IAAA,cAAS,EAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAEvD,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;gBACpD,MAAM,cAAc,GAAG,IAAA,WAAI,EACzB,UAAU,EACV,cAAc,EACd,UAAU,CACX,CAAC;gBACF,IAAA,cAAS,EAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/C,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC;gBAE9D,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC3D,IAAA,cAAS,EAAC,UAAU,CAAC,CAAC;gBACtB,IAAA,kBAAa,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;gBACjD,OAAO;oBACL,UAAU;oBACV,aAAa;oBACb,cAAc;oBACd,UAAU;iBACX,CAAC;YACJ,CAAC;YAED,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;gBAC7D,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,CAAC;gBACnC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC5D,aAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,mHAAmH,EAAE,GAAG,EAAE;gBAC3H,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,CAAC;gBAC/C,IAAA,WAAM,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACnC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC5D,aAAM,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,gHAAgH,EAAE,GAAG,EAAE;gBACxH,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,SAAS,EAAE,CAAC;gBACnD,IAAA,WAAM,EAAC,IAAA,WAAI,EAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACnC,IAAA,WAAM,EAAC,IAAA,WAAI,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACvC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBAC5D,aAAM,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;YACvC,aAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,aAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,aAAM,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,aAAM,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,iBAAiB,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;YACtD,MAAM,SAAS,GAAG,aAAa,CAAC;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACzC,aAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtB,aAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,MAAM,GAAG,KAAK,CAAC;YACrB,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACtC,aAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACtB,aAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- import { type WebDriver } from 'selenium-webdriver';
2
- import { WebdriverConfigParams } from '../types';
3
- declare const startDriver: (config: WebdriverConfigParams) => Promise<WebDriver>;
4
- export { startDriver };
@@ -1,50 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.startDriver = void 0;
16
- const path_1 = __importDefault(require("path"));
17
- const chromedriver_1 = __importDefault(require("chromedriver"));
18
- const selenium_webdriver_1 = require("selenium-webdriver");
19
- const chrome_1 = __importDefault(require("selenium-webdriver/chrome"));
20
- const startDriver = (config) => __awaiter(void 0, void 0, void 0, function* () {
21
- var _a;
22
- const scriptTimeout = config.timeout * 1000.0;
23
- let builder;
24
- /* istanbul ignore else */
25
- if (config.browser === 'chrome-headless') {
26
- const service = new chrome_1.default.ServiceBuilder(config.chromedriverPath || chromedriver_1.default.path);
27
- let options = new chrome_1.default.Options().headless();
28
- if ((_a = config.chromeOptions) === null || _a === void 0 ? void 0 : _a.length) {
29
- options = config.chromeOptions.reduce(function (options, arg) {
30
- return options.addArguments(arg);
31
- }, options);
32
- }
33
- if (config.chromePath) {
34
- options.setChromeBinaryPath(path_1.default.resolve(config.chromePath));
35
- }
36
- builder = new selenium_webdriver_1.Builder()
37
- .forBrowser('chrome')
38
- .setChromeOptions(options)
39
- .setChromeService(service);
40
- }
41
- else {
42
- builder = new selenium_webdriver_1.Builder().forBrowser(config.browser);
43
- }
44
- config.builder = builder;
45
- const driver = builder.build();
46
- yield driver.manage().setTimeouts({ script: scriptTimeout });
47
- return driver;
48
- });
49
- exports.startDriver = startDriver;
50
- //# sourceMappingURL=webdriver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webdriver.js","sourceRoot":"","sources":["../../../src/lib/webdriver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAwB;AACxB,gEAAwC;AACxC,2DAA6D;AAC7D,uEAA+C;AAG/C,MAAM,WAAW,GAAG,CAClB,MAA6B,EACT,EAAE;;IACtB,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;IAC9C,IAAI,OAAgB,CAAC;IACrB,0BAA0B;IAC1B,IAAI,MAAM,CAAC,OAAO,KAAK,iBAAiB,EAAE;QACxC,MAAM,OAAO,GAAG,IAAI,gBAAM,CAAC,cAAc,CACvC,MAAM,CAAC,gBAAgB,IAAI,sBAAY,CAAC,IAAI,CAC7C,CAAC;QAEF,IAAI,OAAO,GAAG,IAAI,gBAAM,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC9C,IAAI,MAAA,MAAM,CAAC,aAAa,0CAAE,MAAM,EAAE;YAChC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,OAAO,EAAE,GAAG;gBAC1D,OAAO,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC,EAAE,OAAO,CAAC,CAAC;SACb;QAED,IAAI,MAAM,CAAC,UAAU,EAAE;YACrB,OAAO,CAAC,mBAAmB,CAAC,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;SAC9D;QAED,OAAO,GAAG,IAAI,4BAAO,EAAE;aACpB,UAAU,CAAC,QAAQ,CAAC;aACpB,gBAAgB,CAAC,OAAO,CAAC;aACzB,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAC9B;SAAM;QACL,OAAO,GAAG,IAAI,4BAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACpD;IAED,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAC/B,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA,CAAC;AAEO,kCAAW"}
@@ -1 +0,0 @@
1
- import 'mocha';
@@ -1,102 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- require("mocha");
16
- const chai_1 = require("chai");
17
- const webdriver_1 = require("./webdriver");
18
- const chromedriver_1 = __importDefault(require("chromedriver"));
19
- const path_1 = __importDefault(require("path"));
20
- describe('startDriver', () => {
21
- let config;
22
- let browser;
23
- let driver;
24
- beforeEach(() => {
25
- browser = 'chrome-headless';
26
- config = {
27
- timeout: 90,
28
- get browser() {
29
- return browser;
30
- }
31
- };
32
- });
33
- afterEach(() => __awaiter(void 0, void 0, void 0, function* () {
34
- yield driver.quit();
35
- }));
36
- it('creates a driver', () => __awaiter(void 0, void 0, void 0, function* () {
37
- driver = yield (0, webdriver_1.startDriver)(config);
38
- chai_1.assert.isObject(driver);
39
- chai_1.assert.isFunction(driver.manage);
40
- }));
41
- xit('sets the config.browser as the browser', () => __awaiter(void 0, void 0, void 0, function* () {
42
- browser = 'chrome';
43
- driver = yield (0, webdriver_1.startDriver)(config);
44
- const capabilities = yield driver.getCapabilities();
45
- chai_1.assert.equal(capabilities.get('browserName'), browser);
46
- }));
47
- it('sets the browser as chrome with chrome-headless', () => __awaiter(void 0, void 0, void 0, function* () {
48
- browser = 'chrome-headless';
49
- driver = yield (0, webdriver_1.startDriver)(config);
50
- const capabilities = yield driver.getCapabilities();
51
- chai_1.assert.equal(capabilities.get('browserName'), 'chrome');
52
- }));
53
- it('uses the chromedriver path with chrome-headless', () => __awaiter(void 0, void 0, void 0, function* () {
54
- browser = 'chrome-headless';
55
- driver = yield (0, webdriver_1.startDriver)(config);
56
- const chromedriverPath = config.builder.chromeService_.exe_;
57
- chai_1.assert.equal(chromedriverPath, chromedriver_1.default.path);
58
- }));
59
- it('uses the passed in chromedriver path with chrome-headless', () => __awaiter(void 0, void 0, void 0, function* () {
60
- browser = 'chrome-headless';
61
- config.chromedriverPath = path_1.default.relative(process.cwd(), chromedriver_1.default.path);
62
- driver = yield (0, webdriver_1.startDriver)(config);
63
- const chromedriverPath = config.builder.chromeService_.exe_;
64
- chai_1.assert.notEqual(config.chromedriverPath, chromedriver_1.default.path);
65
- chai_1.assert.equal(chromedriverPath, config.chromedriverPath);
66
- }));
67
- it('passes the --no-sandbox argument to chromeOptions', () => __awaiter(void 0, void 0, void 0, function* () {
68
- var _a;
69
- browser = 'chrome-headless';
70
- config.chromeOptions = ['--no-sandbox'];
71
- driver = yield (0, webdriver_1.startDriver)(config);
72
- const options = (_a = config === null || config === void 0 ? void 0 : config.builder) === null || _a === void 0 ? void 0 : _a.getChromeOptions();
73
- chai_1.assert.isArray(options === null || options === void 0 ? void 0 : options.get('goog:chromeOptions').args);
74
- chai_1.assert.deepEqual(options === null || options === void 0 ? void 0 : options.get('goog:chromeOptions').args, [
75
- 'headless',
76
- '--no-sandbox'
77
- ]);
78
- }));
79
- it('passes multiple arguments argument to chromeOptions', () => __awaiter(void 0, void 0, void 0, function* () {
80
- var _b;
81
- browser = 'chrome-headless';
82
- config.chromeOptions = ['no-sandbox', 'disable-dev-shm-usage'];
83
- driver = yield (0, webdriver_1.startDriver)(config);
84
- const options = (_b = config === null || config === void 0 ? void 0 : config.builder) === null || _b === void 0 ? void 0 : _b.getChromeOptions();
85
- chai_1.assert.isArray(options === null || options === void 0 ? void 0 : options.get('goog:chromeOptions').args);
86
- chai_1.assert.deepEqual(options === null || options === void 0 ? void 0 : options.get('goog:chromeOptions').args, [
87
- 'headless',
88
- 'no-sandbox',
89
- 'disable-dev-shm-usage'
90
- ]);
91
- }));
92
- it('sets the --timeout flag', () => __awaiter(void 0, void 0, void 0, function* () {
93
- browser = 'chrome-headless';
94
- config.timeout = 10000;
95
- driver = yield (0, webdriver_1.startDriver)(config);
96
- config.builder;
97
- const timeoutValue = yield driver.manage().getTimeouts();
98
- chai_1.assert.isObject(timeoutValue);
99
- chai_1.assert.deepEqual(timeoutValue.script, 10000000);
100
- }));
101
- });
102
- //# sourceMappingURL=webdriver.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"webdriver.test.js","sourceRoot":"","sources":["../../../src/lib/webdriver.test.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import execa from 'execa';
2
- /**
3
- * Run the CLI with the given `args`.
4
- *
5
- * Will not reject if the CLI exits with a non-zero exit code. It is expected that you check the `.exitCode` value yourself.
6
- *
7
- * @param args CLI arguments to pass
8
- */
9
- declare const runCLI: (...args: string[]) => Promise<execa.ExecaChildProcess<string>>;
10
- export default runCLI;
11
- /**
12
- * Run the CLI with the given `args` and `options`.
13
- *
14
- * Set `DEBUG_CLI_TESTS` for additional debugging support (logging).
15
- *
16
- * @param args CLI arguments to pass
17
- * @param options Options for `execa`
18
- */
19
- export declare const runCLIWithOptions: (args: string[], options: execa.Options) => Promise<execa.ExecaChildProcess<string>>;
@@ -1,51 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.runCLIWithOptions = void 0;
16
- const execa_1 = __importDefault(require("execa"));
17
- const path_1 = __importDefault(require("path"));
18
- const fs_1 = __importDefault(require("fs"));
19
- const TS_NODE = require.resolve('ts-node/dist/bin.js');
20
- const CLI = path_1.default.resolve(__dirname, '..', 'bin', 'cli.ts');
21
- const PROJECT_FILE = path_1.default.join(__dirname, '..', 'tsconfig.json');
22
- /**
23
- * Run the CLI with the given `args`.
24
- *
25
- * Will not reject if the CLI exits with a non-zero exit code. It is expected that you check the `.exitCode` value yourself.
26
- *
27
- * @param args CLI arguments to pass
28
- */
29
- const runCLI = (...args) => (0, exports.runCLIWithOptions)(args, { reject: false });
30
- exports.default = runCLI;
31
- /**
32
- * Run the CLI with the given `args` and `options`.
33
- *
34
- * Set `DEBUG_CLI_TESTS` for additional debugging support (logging).
35
- *
36
- * @param args CLI arguments to pass
37
- * @param options Options for `execa`
38
- */
39
- const runCLIWithOptions = (args, options) => __awaiter(void 0, void 0, void 0, function* () {
40
- if ('DEBUG_CLI_TESTS' in process.env) {
41
- console.log('cli', args.join(' '));
42
- }
43
- const result = yield (0, execa_1.default)(TS_NODE, [CLI, ...args], options);
44
- if ('DEBUG_CLI_TESTS' in process.env) {
45
- fs_1.default.writeFileSync('./stdout.txt', result.stdout);
46
- fs_1.default.writeFileSync('./stderr.txt', result.stderr);
47
- }
48
- return result;
49
- });
50
- exports.runCLIWithOptions = runCLIWithOptions;
51
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testutils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,4CAAoB;AAEpB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;AACvD,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC3D,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;AAEjE;;;;;;GAMG;AAEH,MAAM,MAAM,GAAG,CAAC,GAAG,IAAc,EAA4C,EAAE,CAC7E,IAAA,yBAAiB,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAE7C,kBAAe,MAAM,CAAC;AAEtB;;;;;;;GAOG;AAEI,MAAM,iBAAiB,GAAG,CAC/B,IAAc,EACd,OAAsB,EACoB,EAAE;IAC5C,IAAI,iBAAiB,IAAI,OAAO,CAAC,GAAG,EAAE;QACpC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KACpC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,eAAK,EAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAE7D,IAAI,iBAAiB,IAAI,OAAO,CAAC,GAAG,EAAE;QACpC,YAAE,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAChD,YAAE,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;KACjD;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAA,CAAC;AAhBW,QAAA,iBAAiB,qBAgB5B"}
@@ -1,37 +0,0 @@
1
- import type { AxeResults } from 'axe-core';
2
- import type { WebDriver, Builder } from 'selenium-webdriver';
3
- export * from './lib';
4
- export interface EventParams {
5
- silentMode: boolean;
6
- timer: boolean;
7
- cliReporter: (...args: unknown[]) => void;
8
- verbose: boolean;
9
- exit: boolean;
10
- }
11
- export interface EventResponse {
12
- startTimer: (message: string) => void;
13
- endTimer: (message: string) => void;
14
- waitingMessage: (loadDelayTime: number) => void;
15
- onTestStart: (url: string) => void;
16
- onTestComplete: (results: AxeResults) => void;
17
- }
18
- export interface WebdriverConfigParams {
19
- browser: string;
20
- timeout: number;
21
- chromedriverPath?: string;
22
- chromePath?: string;
23
- path?: string;
24
- chromeOptions?: string[];
25
- builder?: Builder;
26
- }
27
- export interface ConfigParams {
28
- driver: WebDriver;
29
- timer?: boolean;
30
- loadDelay?: number;
31
- axeSource?: string;
32
- include?: string | string[];
33
- exclude?: string | string[];
34
- tags?: string | string[];
35
- rules?: string | string[];
36
- disable?: string | string[];
37
- }
package/dist/src/types.js DELETED
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./lib"), exports);
18
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,wCAAsB"}