@applitools/core 4.68.0 → 4.68.1

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,155 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.68.1](https://github.com/Applitools-Dev/sdk/compare/js/core@4.68.0...js/core@4.68.1) (2026-08-10)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
9
+ * omit the empty os from the figma reference env so the design baseline persists | AD-15527 ([#4067](https://github.com/Applitools-Dev/sdk/issues/4067)) ([8395814](https://github.com/Applitools-Dev/sdk/commit/8395814feb6b20eee1c1322dc1539aa4642663d8))
10
+ * use an authoritative CSS viewport in classic mode | FLD-4814 ([#4047](https://github.com/Applitools-Dev/sdk/issues/4047)) ([c46497e](https://github.com/Applitools-Dev/sdk/commit/c46497e573fd7fd2da4913452239beea082b148f))
11
+
12
+
13
+ ### Dependencies
14
+
15
+ * @applitools/utils bumped to 1.15.2
16
+ #### Bug Fixes
17
+
18
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
19
+ * @applitools/logger bumped to 2.3.1
20
+ #### Bug Fixes
21
+
22
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
23
+
24
+
25
+
26
+ * @applitools/dom-shared bumped to 1.2.3
27
+ #### Bug Fixes
28
+
29
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
30
+ * @applitools/dom-snapshot bumped to 4.17.9
31
+ #### Bug Fixes
32
+
33
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
34
+
35
+
36
+
37
+ * @applitools/socket bumped to 1.3.16
38
+ #### Bug Fixes
39
+
40
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
41
+
42
+
43
+
44
+ * @applitools/req bumped to 1.11.3
45
+ #### Bug Fixes
46
+
47
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
48
+
49
+
50
+
51
+ * @applitools/image bumped to 1.3.1
52
+ #### Bug Fixes
53
+
54
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
55
+
56
+
57
+
58
+ * @applitools/snippets bumped to 2.9.6
59
+ #### Bug Fixes
60
+
61
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
62
+
63
+
64
+
65
+ * @applitools/dom-capture bumped to 11.8.5
66
+ #### Bug Fixes
67
+
68
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
69
+
70
+
71
+
72
+ * @applitools/driver bumped to 1.26.8
73
+ #### Bug Fixes
74
+
75
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
76
+ * use an authoritative CSS viewport in classic mode | FLD-4814 ([#4047](https://github.com/Applitools-Dev/sdk/issues/4047)) ([c46497e](https://github.com/Applitools-Dev/sdk/commit/c46497e573fd7fd2da4913452239beea082b148f))
77
+
78
+
79
+
80
+ * @applitools/spec-driver-webdriver bumped to 1.6.8
81
+ #### Bug Fixes
82
+
83
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
84
+
85
+
86
+
87
+ * @applitools/spec-driver-selenium bumped to 1.8.8
88
+ #### Bug Fixes
89
+
90
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
91
+
92
+
93
+
94
+ * @applitools/spec-driver-playwright bumped to 1.9.8
95
+ #### Bug Fixes
96
+
97
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
98
+
99
+
100
+
101
+ * @applitools/spec-driver-puppeteer bumped to 1.8.8
102
+ #### Bug Fixes
103
+
104
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
105
+
106
+
107
+
108
+ * @applitools/screenshoter bumped to 3.12.28
109
+ #### Bug Fixes
110
+
111
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
112
+
113
+
114
+
115
+ * @applitools/nml-client bumped to 1.11.40
116
+ #### Bug Fixes
117
+
118
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
119
+
120
+
121
+
122
+ * @applitools/tunnel-client bumped to 1.12.3
123
+ #### Bug Fixes
124
+
125
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
126
+
127
+
128
+
129
+ * @applitools/ufg-client bumped to 1.23.1
130
+ #### Bug Fixes
131
+
132
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
133
+
134
+
135
+
136
+ * @applitools/core-base bumped to 1.38.1
137
+ #### Bug Fixes
138
+
139
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
140
+
141
+
142
+
143
+ * @applitools/ec-client bumped to 1.12.42
144
+ #### Bug Fixes
145
+
146
+ * apply the figma UFG environments rewrite to the renders | AD-15528 ([#4072](https://github.com/Applitools-Dev/sdk/issues/4072)) ([bd6b143](https://github.com/Applitools-Dev/sdk/commit/bd6b143f855750ae93701f8e44da6129ff7ae84c))
147
+
148
+
149
+
150
+ * @applitools/test-server bumped to 1.4.7
151
+
152
+
3
153
  ## [4.68.0](https://github.com/Applitools-Dev/sdk/compare/js/core@4.67.2...js/core@4.68.0) (2026-08-05)
4
154
 
5
155
 
@@ -26,10 +26,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.makeCheckAndClose = void 0;
27
27
  const driver_1 = require("@applitools/driver");
28
28
  const utils = __importStar(require("@applitools/utils"));
29
- function makeCheckAndClose({ type: defaultType = 'classic', eyes, target: defaultTarget, spec, logger: mainLogger, }) {
29
+ function makeCheckAndClose({ type: defaultType = 'classic', eyes, target: defaultTarget, environments: openEnvironments, spec, logger: mainLogger, }) {
30
30
  return async function checkAndClose({ type = defaultType, target = defaultTarget, settings = {}, config, logger = mainLogger, } = {}) {
31
31
  logger = logger.extend(mainLogger, { tags: [`check-and-close-${type}-${utils.general.shortid()}`] });
32
+ // Same environments precedence as in check.ts.
33
+ const explicitEnvironments = settings != null && 'environments' in settings;
32
34
  settings = { ...config === null || config === void 0 ? void 0 : config.screenshot, ...config === null || config === void 0 ? void 0 : config.check, ...config === null || config === void 0 ? void 0 : config.close, ...settings };
35
+ if (type === 'ufg' && (openEnvironments === null || openEnvironments === void 0 ? void 0 : openEnvironments.length) && !explicitEnvironments) {
36
+ ;
37
+ settings.environments = openEnvironments;
38
+ }
33
39
  const driver = (0, driver_1.isDriver)(target, spec)
34
40
  ? await (0, driver_1.makeDriver)({ spec, driver: target, reset: target === defaultTarget, logger })
35
41
  : null;
package/dist/check.js CHANGED
@@ -32,13 +32,20 @@ const defaults_1 = require("./automation/utils/defaults");
32
32
  const utils = __importStar(require("@applitools/utils"));
33
33
  const lang = __importStar(require("./lang"));
34
34
  const chalk_1 = __importDefault(require("chalk"));
35
- function makeCheck({ type: defaultType = 'classic', eyes, target: defaultTarget, spec, logger: mainLogger, }) {
35
+ function makeCheck({ type: defaultType = 'classic', eyes, target: defaultTarget, environments: openEnvironments, spec, logger: mainLogger, }) {
36
36
  let stepIndex = 0;
37
37
  return async function check({ type = defaultType, target = defaultTarget, settings, config, logger = mainLogger, } = {}) {
38
38
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
39
39
  var _t, _u, _v, _w, _x;
40
40
  logger = logger.extend(mainLogger, { tags: [`check-${type}-${utils.general.shortid()}`] });
41
+ // Open-time environments (possibly rewritten by the figma seam) win over the config's per-check
42
+ // re-send; environments passed explicitly to this call win over both.
43
+ const explicitEnvironments = settings != null && 'environments' in settings;
41
44
  settings = { ...config === null || config === void 0 ? void 0 : config.screenshot, ...config === null || config === void 0 ? void 0 : config.check, ...settings };
45
+ if (type === 'ufg' && (openEnvironments === null || openEnvironments === void 0 ? void 0 : openEnvironments.length) && !explicitEnvironments) {
46
+ ;
47
+ settings.environments = openEnvironments;
48
+ }
42
49
  (_a = settings.fully) !== null && _a !== void 0 ? _a : (settings.fully = !settings.region && (!settings.frames || settings.frames.length === 0));
43
50
  (_b = settings.waitBeforeCapture) !== null && _b !== void 0 ? _b : (settings.waitBeforeCapture = defaults_1.DEFAULT_WAIT_BEFORE_CAPTURE);
44
51
  (_c = settings.hideScrollbars) !== null && _c !== void 0 ? _c : (settings.hideScrollbars = true);
@@ -34,8 +34,23 @@ async function extractDefaultEnvironments({ driver, settings, }) {
34
34
  try {
35
35
  const driverEnvironment = await driver.getEnvironment();
36
36
  const viewport = await driver.getViewport();
37
- // scale layout viewport by visualViewport.scale to get visible CSS viewport (avoids double-scaling spec drivers that already return CSS pixels)
38
- environment.viewportSize = utils.geometry.scale(viewport.viewportSize, viewport.viewportScale);
37
+ // The reported viewport is part of the baseline key: it must stay identical to the historical
38
+ // derivation (`layout viewport × visualViewport.scale`) for every viewport already reported
39
+ // correctly (FLD-4359). The framework-reported CSS viewport may substitute only to correct
40
+ // sub-pixel rounding noise in that derivation (FLD-4814): integral on both axes, within < 1px
41
+ // per axis, and viewportScale <= 1 — the residue bound the backward-compatibility proof depends
42
+ // on. The value must come from getCssViewportSize(), never getViewportSize(), whose fallback is
43
+ // the unscaled layout viewport. Full derivation, proof and history: llm-docs/CLASSIC.md →
44
+ // Reported viewport.
45
+ const derivedViewportSize = utils.geometry.scale(viewport.viewportSize, viewport.viewportScale);
46
+ const cssViewportSize = await driver.getCssViewportSize();
47
+ const corroboratesDerivedSize = !!cssViewportSize &&
48
+ viewport.viewportScale <= 1 &&
49
+ Number.isInteger(cssViewportSize.width) &&
50
+ Number.isInteger(cssViewportSize.height) &&
51
+ Math.abs(cssViewportSize.width - derivedViewportSize.width) < 1 &&
52
+ Math.abs(cssViewportSize.height - derivedViewportSize.height) < 1;
53
+ environment.viewportSize = corroboratesDerivedSize ? cssViewportSize : derivedViewportSize;
39
54
  environment.environmentId = utils.general.guid();
40
55
  if (driverEnvironment.isEC)
41
56
  environment.ecSessionId = (_a = (await driver.getSessionId())) !== null && _a !== void 0 ? _a : undefined;
@@ -105,7 +105,7 @@ async function setFigmaBaselineFlow(figmaUrls, originalConfig, deps, mode = 'aut
105
105
  batch: originalConfig.batch,
106
106
  appName: originalConfig.appName,
107
107
  testName: originalConfig.testName,
108
- environment: { hostingApp: 'Figma', os: '', viewportSize: figmaViewport },
108
+ environment: { hostingApp: 'Figma', viewportSize: figmaViewport },
109
109
  properties: (0, utils_1.figmaMetadataToProperties)(realResults[0].metadata, mode),
110
110
  baselineEnvName: figmaEnvName,
111
111
  saveNewTests: true,
package/dist/open-eyes.js CHANGED
@@ -184,8 +184,8 @@ function makeOpenEyes({ type: defaultType = 'classic', clients, batch, removeDup
184
184
  var _a, _b;
185
185
  return ({
186
186
  getTypedEyes,
187
- check: (0, check_1.makeCheck)({ type, eyes, target: driver, spec, logger }),
188
- checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ type, eyes, target: driver, spec, logger }),
187
+ check: (0, check_1.makeCheck)({ type, eyes, target: driver, environments: settings.environments, spec, logger }),
188
+ checkAndClose: (0, check_and_close_1.makeCheckAndClose)({ type, eyes, target: driver, environments: settings.environments, spec, logger }),
189
189
  close: (0, close_1.makeClose)({ eyes, environments: (_a = config === null || config === void 0 ? void 0 : config.check) === null || _a === void 0 ? void 0 : _a.environments, logger }),
190
190
  abort: (0, abort_1.makeAbort)({ eyes, environments: (_b = config === null || config === void 0 ? void 0 : config.check) === null || _b === void 0 ? void 0 : _b.environments, logger }),
191
191
  getResults: (0, get_eyes_results_1.makeGetEyesResults)({ eyes, logger }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "4.68.0",
3
+ "version": "4.68.1",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"
@@ -61,20 +61,20 @@
61
61
  "setup:standalone": "sh -c 'yarn chromedriver --port=4444 --verbose &'"
62
62
  },
63
63
  "dependencies": {
64
- "@applitools/core-base": "1.38.0",
65
- "@applitools/dom-capture": "11.8.4",
66
- "@applitools/dom-snapshot": "4.17.8",
67
- "@applitools/driver": "1.26.7",
68
- "@applitools/ec-client": "1.12.41",
69
- "@applitools/image": "1.3.0",
70
- "@applitools/logger": "2.3.0",
71
- "@applitools/nml-client": "1.11.39",
72
- "@applitools/req": "1.11.2",
73
- "@applitools/screenshoter": "3.12.27",
74
- "@applitools/snippets": "2.9.5",
75
- "@applitools/socket": "1.3.15",
76
- "@applitools/ufg-client": "1.23.0",
77
- "@applitools/utils": "1.15.1",
64
+ "@applitools/core-base": "1.38.1",
65
+ "@applitools/dom-capture": "11.8.5",
66
+ "@applitools/dom-snapshot": "4.17.9",
67
+ "@applitools/driver": "1.26.8",
68
+ "@applitools/ec-client": "1.12.42",
69
+ "@applitools/image": "1.3.1",
70
+ "@applitools/logger": "2.3.1",
71
+ "@applitools/nml-client": "1.11.40",
72
+ "@applitools/req": "1.11.3",
73
+ "@applitools/screenshoter": "3.12.28",
74
+ "@applitools/snippets": "2.9.6",
75
+ "@applitools/socket": "1.3.16",
76
+ "@applitools/ufg-client": "1.23.1",
77
+ "@applitools/utils": "1.15.2",
78
78
  "abort-controller": "3.0.0",
79
79
  "chalk": "4.1.2",
80
80
  "node-fetch": "2.6.7",
@@ -84,13 +84,13 @@
84
84
  },
85
85
  "devDependencies": {
86
86
  "@applitools/bongo": "^5.10.0",
87
- "@applitools/spec-driver-playwright": "^1.9.7",
88
- "@applitools/spec-driver-puppeteer": "^1.8.7",
89
- "@applitools/spec-driver-selenium": "^1.8.7",
90
- "@applitools/spec-driver-webdriver": "^1.6.7",
91
- "@applitools/test-server": "^1.4.6",
87
+ "@applitools/spec-driver-playwright": "^1.9.8",
88
+ "@applitools/spec-driver-puppeteer": "^1.8.8",
89
+ "@applitools/spec-driver-selenium": "^1.8.8",
90
+ "@applitools/spec-driver-webdriver": "^1.6.8",
91
+ "@applitools/test-server": "^1.4.7",
92
92
  "@applitools/test-utils": "^1.5.17",
93
- "@applitools/tunnel-client": "^1.12.2",
93
+ "@applitools/tunnel-client": "^1.12.3",
94
94
  "@swc-node/register": "^1.6.8",
95
95
  "@types/mocha": "^10.0.7",
96
96
  "@types/node": "^12.20.55",
@@ -1,14 +1,15 @@
1
- import type { Target, DriverTarget, Eyes, Config, CheckSettings, CloseSettings } from './types';
1
+ import type { Target, DriverTarget, Eyes, Config, CheckSettings, CloseSettings, Environment } from './types';
2
2
  import { type Logger } from '@applitools/logger';
3
3
  import { type SpecType, type SpecDriver } from '@applitools/driver';
4
4
  type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
5
5
  type?: TType;
6
6
  eyes: Eyes<TSpec, TType>;
7
7
  target?: DriverTarget<TSpec>;
8
+ environments?: Environment[];
8
9
  spec?: SpecDriver<TSpec>;
9
10
  logger: Logger;
10
11
  };
11
- export declare function makeCheckAndClose<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
12
+ export declare function makeCheckAndClose<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, eyes, target: defaultTarget, environments: openEnvironments, spec, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
12
13
  type?: TType | undefined;
13
14
  target?: Target<TSpec, TType> | undefined;
14
15
  settings?: (CheckSettings<TSpec, TDefaultType> & CloseSettings<TDefaultType> & CheckSettings<TSpec, TType> & CloseSettings<TType>) | undefined;
package/types/check.d.ts CHANGED
@@ -1,14 +1,15 @@
1
- import type { Target, DriverTarget, Eyes, Config, CheckSettings } from './types';
1
+ import type { Target, DriverTarget, Eyes, Config, CheckSettings, Environment } from './types';
2
2
  import { type Logger } from '@applitools/logger';
3
3
  import { type SpecType, type SpecDriver } from '@applitools/driver';
4
4
  type Options<TSpec extends SpecType, TType extends 'classic' | 'ufg'> = {
5
5
  type?: TType;
6
6
  eyes: Eyes<TSpec, TType>;
7
7
  target?: DriverTarget<TSpec>;
8
+ environments?: Environment[];
8
9
  spec?: SpecDriver<TSpec>;
9
10
  logger: Logger;
10
11
  };
11
- export declare function makeCheck<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, eyes, target: defaultTarget, spec, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
12
+ export declare function makeCheck<TSpec extends SpecType, TDefaultType extends 'classic' | 'ufg'>({ type: defaultType, eyes, target: defaultTarget, environments: openEnvironments, spec, logger: mainLogger, }: Options<TSpec, TDefaultType>): <TType extends "classic" | "ufg" = TDefaultType>({ type, target, settings, config, logger, }?: {
12
13
  type?: TType | undefined;
13
14
  target?: Target<TSpec, TType> | undefined;
14
15
  settings?: CheckSettings<TSpec, TType> | undefined;