@sprucelabs/heartwood-polish 7.0.8 → 7.0.10

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.
@@ -8,7 +8,7 @@ class SpruceError extends error_1.default {
8
8
  friendlyMessage() {
9
9
  const { options } = this;
10
10
  let message;
11
- switch (options?.code) {
11
+ switch (options === null || options === void 0 ? void 0 : options.code) {
12
12
  case 'INVALID_TARGET':
13
13
  message = `The target you passed was invalid! You passed:\n\n${JSON.stringify(options.target, undefined, 4)}`;
14
14
  break;
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const SpruceError_1 = __importDefault(require("../errors/SpruceError"));
7
7
  class StepGenerator {
8
- actions;
9
8
  constructor(actions) {
10
9
  this.actions = actions;
11
10
  }
@@ -10,14 +10,8 @@ const schema_1 = require("@sprucelabs/schema");
10
10
  const spruce_skill_utils_1 = require("@sprucelabs/spruce-skill-utils");
11
11
  const SpruceError_1 = __importDefault(require("../errors/SpruceError"));
12
12
  class StepLoader {
13
- cwd;
14
- packageJsonPath;
15
- namespace;
16
- polishFile;
17
- glob;
18
- static divider = '## HEARTWOOD-POLISH DIVIDER ##';
19
- static errorDivider = '## HEARTWOOD-POLISH ERROR DIVIDER ##';
20
13
  constructor(options) {
14
+ var _a;
21
15
  const { cwd } = (0, schema_1.assertOptions)(options, ['cwd']);
22
16
  this.cwd = cwd;
23
17
  this.packageJsonPath = spruce_skill_utils_1.diskUtil.resolvePath(this.cwd, 'package.json');
@@ -36,7 +30,7 @@ class StepLoader {
36
30
  });
37
31
  }
38
32
  const content = require(this.packageJsonPath);
39
- if (!content?.skill?.namespace) {
33
+ if (!((_a = content === null || content === void 0 ? void 0 : content.skill) === null || _a === void 0 ? void 0 : _a.namespace)) {
40
34
  throw new SpruceError_1.default({
41
35
  code: 'NAMESPACE_NOT_FOUND',
42
36
  friendlyMessage: `I could not find a skill.namespace in '${this.packageJsonPath}'`,
@@ -46,7 +40,7 @@ class StepLoader {
46
40
  this.namespace = content.skill.namespace;
47
41
  }
48
42
  async load(altNamespace) {
49
- this.glob = spruce_skill_utils_1.diskUtil.resolvePath(this.cwd, 'src', '**', `${altNamespace ?? this.namespace}.polish.ts`);
43
+ this.glob = spruce_skill_utils_1.diskUtil.resolvePath(this.cwd, 'src', '**', `${altNamespace !== null && altNamespace !== void 0 ? altNamespace : this.namespace}.polish.ts`);
50
44
  const matches = this.glob ? await (0, globby_1.default)(this.glob) : [];
51
45
  if (matches.length === 0) {
52
46
  throw new SpruceError_1.default({
@@ -88,21 +82,23 @@ class StepLoader {
88
82
  }
89
83
  static async execute(cmd, args) {
90
84
  return new Promise((resolve, reject) => {
85
+ var _a, _b;
91
86
  let stdout = '';
92
87
  let stderr = '';
93
88
  const child = (0, child_process_1.spawn)(cmd, args, {
94
89
  shell: true,
95
90
  });
96
- child.stdout?.addListener('data', (data) => {
91
+ (_a = child.stdout) === null || _a === void 0 ? void 0 : _a.addListener('data', (data) => {
97
92
  stdout += data;
98
93
  });
99
- child.stderr?.addListener('data', (data) => {
94
+ (_b = child.stderr) === null || _b === void 0 ? void 0 : _b.addListener('data', (data) => {
100
95
  stderr += data;
101
96
  });
102
97
  const closeHandler = (code) => {
103
98
  setTimeout(() => {
104
- child.stdout?.removeAllListeners();
105
- child.stderr?.removeAllListeners();
99
+ var _a, _b;
100
+ (_a = child.stdout) === null || _a === void 0 ? void 0 : _a.removeAllListeners();
101
+ (_b = child.stderr) === null || _b === void 0 ? void 0 : _b.removeAllListeners();
106
102
  child.removeAllListeners();
107
103
  if (code === 0) {
108
104
  stdout = stdout.replace(StepLoader.divider, '').trim();
@@ -127,3 +123,5 @@ class StepLoader {
127
123
  }
128
124
  }
129
125
  exports.StepLoader = StepLoader;
126
+ StepLoader.divider = '## HEARTWOOD-POLISH DIVIDER ##';
127
+ StepLoader.errorDivider = '## HEARTWOOD-POLISH ERROR DIVIDER ##';
@@ -3,9 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const schema_1 = require("@sprucelabs/schema");
4
4
  const TargetSelectorGenerator_1 = require("../targeting/TargetSelectorGenerator");
5
5
  class AbstractAction {
6
- page;
7
- baseUrl;
8
- targets;
9
6
  constructor(page, baseUrl) {
10
7
  (0, schema_1.assertOptions)({ page, baseUrl }, ['page', 'baseUrl']);
11
8
  this.page = page;
@@ -6,9 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const schema_1 = require("@sprucelabs/schema");
7
7
  const SpruceError_1 = __importDefault(require("../errors/SpruceError"));
8
8
  class ActionFactory {
9
- page;
10
- static actionMap = {};
11
- baseUrl;
12
9
  static setAction(name, Class) {
13
10
  this.actionMap[name] = Class;
14
11
  }
@@ -29,4 +26,5 @@ class ActionFactory {
29
26
  return new Class(this.page, this.baseUrl);
30
27
  }
31
28
  }
29
+ ActionFactory.actionMap = {};
32
30
  exports.default = ActionFactory;
@@ -8,11 +8,6 @@ const SpruceError_1 = __importDefault(require("../errors/SpruceError"));
8
8
  const AbstractAction_1 = __importDefault(require("./AbstractAction"));
9
9
  const ActionFactory_1 = __importDefault(require("./ActionFactory"));
10
10
  class AssertAction extends AbstractAction_1.default {
11
- static assertions = {};
12
- assertName;
13
- target;
14
- options;
15
- originalTarget;
16
11
  static addAssertion(name, cb) {
17
12
  this.assertions[name] = cb;
18
13
  }
@@ -51,9 +46,10 @@ class AssertAction extends AbstractAction_1.default {
51
46
  });
52
47
  }
53
48
  async getProperty(selector, name) {
49
+ var _a;
54
50
  const element = await this.page.$(selector);
55
- const prop = await element?.getProperty(name);
56
- const actual = await prop?.jsonValue?.();
51
+ const prop = await (element === null || element === void 0 ? void 0 : element.getProperty(name));
52
+ const actual = await ((_a = prop === null || prop === void 0 ? void 0 : prop.jsonValue) === null || _a === void 0 ? void 0 : _a.call(prop));
57
53
  return actual;
58
54
  }
59
55
  async getInnerHtml(selector) {
@@ -61,4 +57,5 @@ class AssertAction extends AbstractAction_1.default {
61
57
  }
62
58
  }
63
59
  exports.AssertAction = AssertAction;
60
+ AssertAction.assertions = {};
64
61
  ActionFactory_1.default.setAction('assert', AssertAction);
@@ -8,7 +8,6 @@ const AbstractAction_1 = __importDefault(require("./AbstractAction"));
8
8
  const ActionFactory_1 = __importDefault(require("./ActionFactory"));
9
9
  const clearField_1 = require("./clearField");
10
10
  class ClearTextAction extends AbstractAction_1.default {
11
- target;
12
11
  process(options) {
13
12
  this.target = this.targets.generate(options.target);
14
13
  }
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const AbstractAction_1 = __importDefault(require("./AbstractAction"));
7
7
  const ActionFactory_1 = __importDefault(require("./ActionFactory"));
8
8
  class ClickAction extends AbstractAction_1.default {
9
- targetSelector;
10
9
  process(options) {
11
10
  this.targetSelector = this.targets.generate(options.target);
12
11
  }
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const AbstractAction_1 = __importDefault(require("./AbstractAction"));
7
7
  const ActionFactory_1 = __importDefault(require("./ActionFactory"));
8
8
  class ConfigureAction extends AbstractAction_1.default {
9
- stepWaitMs;
10
9
  process(options) {
11
10
  const { stepWaitMs } = options;
12
11
  this.stepWaitMs = stepWaitMs;
@@ -7,8 +7,6 @@ const schema_1 = require("@sprucelabs/schema");
7
7
  const AbstractAction_1 = __importDefault(require("./AbstractAction"));
8
8
  const ActionFactory_1 = __importDefault(require("./ActionFactory"));
9
9
  class DragAndDropAction extends AbstractAction_1.default {
10
- destinationSelector;
11
- sourceSelector;
12
10
  process(options) {
13
11
  const { sourceTarget, destinationTarget } = (0, schema_1.assertOptions)(options, [
14
12
  'sourceTarget',
@@ -21,7 +19,7 @@ class DragAndDropAction extends AbstractAction_1.default {
21
19
  const source = await this.waitForSelector(this.sourceSelector);
22
20
  const destination = await this.waitForSelector(this.destinationSelector);
23
21
  const sourceBox = await source.boundingBox();
24
- const destinationBox = await destination?.boundingBox();
22
+ const destinationBox = await (destination === null || destination === void 0 ? void 0 : destination.boundingBox());
25
23
  await this.page.mouse.move(sourceBox.x + sourceBox.width / 2, sourceBox.y + sourceBox.height / 2);
26
24
  await this.page.mouse.down();
27
25
  await this.page.mouse.move(destinationBox.x + destinationBox.width / 2, destinationBox.y + destinationBox.height / 2, {
@@ -6,9 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const AbstractAction_1 = __importDefault(require("./AbstractAction"));
7
7
  const ActionFactory_1 = __importDefault(require("./ActionFactory"));
8
8
  class FileAction extends AbstractAction_1.default {
9
- targetSelector;
10
- target;
11
- absoluteFilePath;
12
9
  process(options) {
13
10
  const { target, absoluteFilePath } = options;
14
11
  this.target = this.targets.generate(target);
@@ -16,7 +13,7 @@ class FileAction extends AbstractAction_1.default {
16
13
  }
17
14
  async go() {
18
15
  const element = await this.page.$(this.target);
19
- await element?.uploadFile(this.absoluteFilePath);
16
+ await (element === null || element === void 0 ? void 0 : element.uploadFile(this.absoluteFilePath));
20
17
  }
21
18
  }
22
19
  exports.default = FileAction;
@@ -7,7 +7,6 @@ const schema_1 = require("@sprucelabs/schema");
7
7
  const AbstractAction_1 = __importDefault(require("./AbstractAction"));
8
8
  const ActionFactory_1 = __importDefault(require("./ActionFactory"));
9
9
  class RedirectAction extends AbstractAction_1.default {
10
- destinationId;
11
10
  process(options) {
12
11
  const { id } = (0, schema_1.assertOptions)(options, ['id']);
13
12
  this.destinationId = id;
@@ -8,8 +8,6 @@ const schema_1 = require("@sprucelabs/schema");
8
8
  const AbstractAction_1 = __importDefault(require("./AbstractAction"));
9
9
  const ActionFactory_1 = __importDefault(require("./ActionFactory"));
10
10
  class SelectAction extends AbstractAction_1.default {
11
- value;
12
- selectSelector;
13
11
  process(options) {
14
12
  const { value, target } = (0, schema_1.assertOptions)(options, ['target', 'value']);
15
13
  this.value = value;
@@ -8,13 +8,11 @@ const AbstractAction_1 = __importDefault(require("./AbstractAction"));
8
8
  const ActionFactory_1 = __importDefault(require("./ActionFactory"));
9
9
  const clearField_1 = require("./clearField");
10
10
  class TypeTextAction extends AbstractAction_1.default {
11
- selector;
12
- text;
13
- shouldClearFirst;
14
11
  process(options) {
12
+ var _a;
15
13
  this.selector = this.targets.generate(options.target);
16
14
  this.text = options.text;
17
- this.shouldClearFirst = options.shouldClearFirst ?? false;
15
+ this.shouldClearFirst = (_a = options.shouldClearFirst) !== null && _a !== void 0 ? _a : false;
18
16
  }
19
17
  async go() {
20
18
  await this.waitForSelector(this.selector);
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const AbstractAction_1 = __importDefault(require("./AbstractAction"));
7
7
  const ActionFactory_1 = __importDefault(require("./ActionFactory"));
8
8
  class WaitAction extends AbstractAction_1.default {
9
- waitMs;
10
9
  process(options) {
11
10
  const { waitMs } = options;
12
11
  this.waitMs = waitMs;
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const SpruceError_1 = __importDefault(require("../../errors/SpruceError"));
7
7
  const AssertAction_1 = require("../AssertAction");
8
8
  async function assertDoesNotInclude(options) {
9
+ var _a;
9
10
  const { targetSelector, value, getInnerHtml } = options;
10
- const actual = (await getInnerHtml(targetSelector)) ?? '';
11
+ const actual = (_a = (await getInnerHtml(targetSelector))) !== null && _a !== void 0 ? _a : '';
11
12
  const foundIdx = actual.indexOf(value);
12
13
  if (foundIdx > -1) {
13
14
  throw new SpruceError_1.default({
@@ -35,7 +35,7 @@ async function assertPresentSlide(options) {
35
35
  if (hasSlideNumber) {
36
36
  const selector = `${targetSelector} .swipe_dots_wrapper span.dot:nth-of-type(${slideIdx + 1}).current`;
37
37
  const className = await getProperty(selector, 'className');
38
- if ((className ?? '').length === 0) {
38
+ if ((className !== null && className !== void 0 ? className : '').length === 0) {
39
39
  throw new SpruceError_1.default({
40
40
  code: 'ASSERTION_FAILED',
41
41
  friendlyMessage: `I expected to find the 'current' slide as slide #${slideIdx}. I was looking for ${selector}.`,
package/build/polish.js CHANGED
@@ -27,6 +27,7 @@ void (async () => {
27
27
  await go();
28
28
  })();
29
29
  async function go() {
30
+ var _a;
30
31
  const stepLoader = new StepLoader_1.StepLoader({
31
32
  cwd: process.cwd(),
32
33
  });
@@ -54,7 +55,7 @@ async function go() {
54
55
  });
55
56
  }
56
57
  catch (err) {
57
- if (err?.options?.friendlyMessage) {
58
+ if ((_a = err === null || err === void 0 ? void 0 : err.options) === null || _a === void 0 ? void 0 : _a.friendlyMessage) {
58
59
  console.log('Error: ' + err.options.friendlyMessage);
59
60
  }
60
61
  else {
@@ -66,21 +67,21 @@ async function go() {
66
67
  }
67
68
  }
68
69
  function getNamespace() {
69
- return argv?.namespace;
70
+ return argv === null || argv === void 0 ? void 0 : argv.namespace;
70
71
  }
71
72
  function getBaseUrl() {
72
- return process.env.POLISH_BASE_URL || argv?.baseUrl || 'https://spruce.bot';
73
+ return process.env.POLISH_BASE_URL || (argv === null || argv === void 0 ? void 0 : argv.baseUrl) || 'https://spruce.bot';
73
74
  }
74
75
  function getIsHeadless() {
75
76
  return process.env.HEADLESS
76
77
  ? process.env.HEADLESS !== 'false'
77
- : argv?.isHeadless === 'true';
78
+ : (argv === null || argv === void 0 ? void 0 : argv.isHeadless) === 'true';
78
79
  }
79
80
  function getWindowSize() {
80
81
  const str = process.env.WINDOW_SIZE
81
82
  ? process.env.WINDOW_SIZE
82
- : argv?.windowSize;
83
- const [width, height] = (str ?? '1024,768').split(',');
83
+ : argv === null || argv === void 0 ? void 0 : argv.windowSize;
84
+ const [width, height] = (str !== null && str !== void 0 ? str : '1024,768').split(',');
84
85
  return {
85
86
  width: parseInt(width, 10),
86
87
  height: parseInt(height, 10),
@@ -2,17 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const schema_1 = require("@sprucelabs/schema");
4
4
  class Polisher {
5
- page;
6
- log;
7
- stepWaitMs = 250;
8
5
  constructor(options) {
6
+ this.stepWaitMs = 250;
9
7
  const { page, log, stepWaitMs } = (0, schema_1.assertOptions)(options, [
10
8
  'page',
11
9
  'log',
12
10
  ]);
13
11
  this.page = page;
14
12
  this.log = log;
15
- this.stepWaitMs = stepWaitMs ?? this.stepWaitMs;
13
+ this.stepWaitMs = stepWaitMs !== null && stepWaitMs !== void 0 ? stepWaitMs : this.stepWaitMs;
16
14
  this.page.on('console', (msg) => this.log.info(msg.text()));
17
15
  }
18
16
  async start(url, steps) {
@@ -6,48 +6,50 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TargetSelectorGenerator = void 0;
7
7
  const SpruceError_1 = __importDefault(require("../errors/SpruceError"));
8
8
  class TargetSelectorGenerator {
9
- componentSelectorMap = {
10
- Button: '.button',
11
- Toggle: 'button.toggle',
12
- Card: '.card',
13
- Calendar: '.bigcalendar',
14
- Dialog: '.dialog ',
15
- Field: '',
16
- ListRow: '.list__row',
17
- NavLink: '.dropdown button',
18
- NavMenu: 'nav ',
19
- SkillView: '.skill_view',
20
- ToolBelt: '.tool_belt__inner_column',
21
- Tool: '.tool',
22
- Dropdown: '.dropdown.visible',
23
- DrodownItem: 'li',
24
- ToolBeltTab: '.tool_belt__column .tab button',
25
- ListCell: '.list__cell',
26
- Checkbox: '[type="checkbox"]',
27
- CalendarTime: '.timeslot',
28
- CalendarTeammate: '.bigcalendar__day-col-visible',
29
- CalendarEvent: '.bigcalendar__event',
30
- CalendarEventSDrag: '.resize-s',
31
- CalendarEventNDrag: '.resize-n',
32
- CalendarDay: '.days li',
33
- };
34
- selectorStringMap = {
35
- Field: (id) => ` [name="${id}"]`,
36
- Card: (id) => `[data-id="${id}"]`,
37
- Tool: (id) => `[data-id="${id}"]`,
38
- ToolBelt: (id) => `[data-id="${id}"]`,
39
- CalendarTime: (id) => `[data-time="${id}"]`,
40
- CalendarDay: (id) => `[data-date="${id}"]`,
41
- ListRow: (id) => `.row_${id}`,
42
- Button: (id) => id === 'primary' || id === 'secondary' ? `.${id}` : `.btn_${id}`,
43
- NavLink: (id) => `.btn_${id}`,
44
- _default: (id) => `.${id}`,
45
- };
46
- selectorNumberMap = {
47
- DrodownItem: (id) => `:nth-of-type(${+id + 1}) button`,
48
- _default: (id) => `:nth-of-type(${+id + 1})`,
49
- CalendarEvent: (id) => `:nth-of-type(${+id + 2})`,
50
- };
9
+ constructor() {
10
+ this.componentSelectorMap = {
11
+ Button: '.button',
12
+ Toggle: 'button.toggle',
13
+ Card: '.card',
14
+ Calendar: '.bigcalendar',
15
+ Dialog: '.dialog ',
16
+ Field: '',
17
+ ListRow: '.list__row',
18
+ NavLink: '.dropdown button',
19
+ NavMenu: 'nav ',
20
+ SkillView: '.skill_view',
21
+ ToolBelt: '.tool_belt__inner_column',
22
+ Tool: '.tool',
23
+ Dropdown: '.dropdown.visible',
24
+ DrodownItem: 'li',
25
+ ToolBeltTab: '.tool_belt__column .tab button',
26
+ ListCell: '.list__cell',
27
+ Checkbox: '[type="checkbox"]',
28
+ CalendarTime: '.timeslot',
29
+ CalendarTeammate: '.bigcalendar__day-col-visible',
30
+ CalendarEvent: '.bigcalendar__event',
31
+ CalendarEventSDrag: '.resize-s',
32
+ CalendarEventNDrag: '.resize-n',
33
+ CalendarDay: '.days li',
34
+ };
35
+ this.selectorStringMap = {
36
+ Field: (id) => ` [name="${id}"]`,
37
+ Card: (id) => `[data-id="${id}"]`,
38
+ Tool: (id) => `[data-id="${id}"]`,
39
+ ToolBelt: (id) => `[data-id="${id}"]`,
40
+ CalendarTime: (id) => `[data-time="${id}"]`,
41
+ CalendarDay: (id) => `[data-date="${id}"]`,
42
+ ListRow: (id) => `.row_${id}`,
43
+ Button: (id) => id === 'primary' || id === 'secondary' ? `.${id}` : `.btn_${id}`,
44
+ NavLink: (id) => `.btn_${id}`,
45
+ _default: (id) => `.${id}`,
46
+ };
47
+ this.selectorNumberMap = {
48
+ DrodownItem: (id) => `:nth-of-type(${+id + 1}) button`,
49
+ _default: (id) => `:nth-of-type(${+id + 1})`,
50
+ CalendarEvent: (id) => `:nth-of-type(${+id + 2})`,
51
+ };
52
+ }
51
53
  generate(target) {
52
54
  const match = target
53
55
  .map((t) => {
@@ -95,11 +97,13 @@ class TargetSelectorGenerator {
95
97
  return match;
96
98
  }
97
99
  generateSelectorSuffixFromString(component, id) {
98
- const map = this.selectorStringMap[component] ?? this.selectorStringMap._default;
100
+ var _a;
101
+ const map = (_a = this.selectorStringMap[component]) !== null && _a !== void 0 ? _a : this.selectorStringMap._default;
99
102
  return map(id);
100
103
  }
101
104
  generateSelectorSuffixFromNumber(component, id) {
102
- const map = this.selectorNumberMap[component] ?? this.selectorNumberMap._default;
105
+ var _a;
106
+ const map = (_a = this.selectorNumberMap[component]) !== null && _a !== void 0 ? _a : this.selectorNumberMap._default;
103
107
  return map(id);
104
108
  }
105
109
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sprucelabs/heartwood-polish",
3
- "version": "7.0.8",
3
+ "version": "7.0.10",
4
4
  "main": "build/index.js",
5
5
  "license": "MIT",
6
6
  "access": "public",
@@ -44,22 +44,22 @@
44
44
  "watch.tsc": "tsc -w"
45
45
  },
46
46
  "dependencies": {
47
- "@sprucelabs/error": "^6.0.7",
48
- "@sprucelabs/globby": "^2.0.6",
49
- "@sprucelabs/schema": "^30.0.10",
50
- "@sprucelabs/spruce-core-schemas": "^40.0.8",
51
- "@sprucelabs/spruce-skill-utils": "^31.0.11",
47
+ "@sprucelabs/error": "^6.0.9",
48
+ "@sprucelabs/globby": "^2.0.8",
49
+ "@sprucelabs/schema": "^30.0.13",
50
+ "@sprucelabs/spruce-core-schemas": "^40.0.10",
51
+ "@sprucelabs/spruce-skill-utils": "^31.0.13",
52
52
  "puppeteer": "^22.7.0",
53
53
  "yargs": "^17.7.2"
54
54
  },
55
55
  "devDependencies": {
56
- "@sprucelabs/jest-json-reporter": "^8.0.6",
56
+ "@sprucelabs/jest-json-reporter": "^8.0.8",
57
57
  "@sprucelabs/jest-sheets-reporter": "^3.0.26",
58
58
  "@sprucelabs/resolve-path-aliases": "^2.0.10",
59
59
  "@sprucelabs/semantic-release": "^5.0.1",
60
60
  "@sprucelabs/spruce-test-fixtures": "^62.0.2",
61
- "@sprucelabs/test": "^9.0.6",
62
- "@sprucelabs/test-utils": "^5.0.8",
61
+ "@sprucelabs/test": "^9.0.7",
62
+ "@sprucelabs/test-utils": "^5.0.10",
63
63
  "@types/node": "^20.12.7",
64
64
  "chokidar-cli": "^3.0.0",
65
65
  "concurrently": "^8.2.2",
package/tsconfig.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "skipLibCheck": true,
4
4
  "module": "commonjs",
5
5
  "esModuleInterop": true,
6
- "target": "ES2022",
6
+ "target": "ES2019",
7
7
  "lib": [
8
8
  "DOM",
9
9
  "ES2022"