sunpeak 0.18.7 → 0.18.12
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/README.md +12 -0
- package/bin/commands/dev.mjs +3 -3
- package/bin/commands/inspect.mjs +4 -1
- package/bin/lib/sandbox-server.mjs +31 -1
- package/dist/chatgpt/index.cjs +1 -2
- package/dist/chatgpt/index.js +1 -2
- package/dist/claude/index.cjs +1 -2
- package/dist/claude/index.js +1 -2
- package/dist/host/chatgpt/index.cjs +1 -2
- package/dist/host/chatgpt/index.cjs.map +1 -1
- package/dist/host/chatgpt/index.js +1 -2
- package/dist/host/chatgpt/index.js.map +1 -1
- package/dist/index.cjs +93 -93
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +54 -54
- package/dist/index.js.map +1 -1
- package/dist/inspector/hosts.d.ts +12 -0
- package/dist/inspector/index.cjs +1 -2
- package/dist/inspector/index.js +1 -2
- package/dist/{inspector-CKc58UuI.cjs → inspector-8nPV2A-z.cjs} +104 -54
- package/dist/inspector-8nPV2A-z.cjs.map +1 -0
- package/dist/{inspector-DZrN0kej.js → inspector-Cdo5BK2D.js} +103 -53
- package/dist/inspector-Cdo5BK2D.js.map +1 -0
- package/dist/mcp/index.cjs +85 -71
- package/dist/mcp/index.cjs.map +1 -1
- package/dist/mcp/index.js +79 -65
- package/dist/mcp/index.js.map +1 -1
- package/dist/{protocol-DJmRaBzO.js → protocol-BfAACnv0.js} +14 -9
- package/dist/{protocol-DJmRaBzO.js.map → protocol-BfAACnv0.js.map} +1 -1
- package/dist/{protocol-jbxhzcnS.cjs → protocol-C7kTcBr_.cjs} +14 -9
- package/dist/{protocol-jbxhzcnS.cjs.map → protocol-C7kTcBr_.cjs.map} +1 -1
- package/dist/style.css +36 -1
- package/dist/{use-app-BNbz1uzj.js → use-app-CfP9VypY.js} +107 -56
- package/dist/use-app-CfP9VypY.js.map +1 -0
- package/dist/{use-app-Dqh20JPP.cjs → use-app-CzcYw1Kz.cjs} +165 -114
- package/dist/use-app-CzcYw1Kz.cjs.map +1 -0
- package/package.json +7 -7
- package/template/README.md +12 -0
- package/template/dist/albums/albums.html +16 -15
- package/template/dist/albums/albums.json +1 -1
- package/template/dist/carousel/carousel.html +20 -19
- package/template/dist/carousel/carousel.json +1 -1
- package/template/dist/map/map.html +7 -6
- package/template/dist/map/map.json +1 -1
- package/template/dist/review/review.html +6 -5
- package/template/dist/review/review.json +1 -1
- package/template/node_modules/.bin/vite +2 -2
- package/template/node_modules/.bin/vitest +2 -2
- package/template/node_modules/.vite/deps/_metadata.json +4 -4
- package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps.js +49 -49
- package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps.js.map +1 -1
- package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_app-bridge.js +49 -49
- package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_app-bridge.js.map +1 -1
- package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_react.js +89 -89
- package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_react.js.map +1 -1
- package/template/node_modules/.vite-mcp/deps/@testing-library_react.js +9 -6
- package/template/node_modules/.vite-mcp/deps/@testing-library_react.js.map +1 -1
- package/template/node_modules/.vite-mcp/deps/_metadata.json +26 -26
- package/template/node_modules/.vite-mcp/deps/{protocol-CTflwIfG.js → protocol-B_qKkui_.js} +14 -9
- package/template/node_modules/.vite-mcp/deps/protocol-B_qKkui_.js.map +1 -0
- package/template/node_modules/.vite-mcp/deps/vitest.js +366 -128
- package/template/node_modules/.vite-mcp/deps/vitest.js.map +1 -1
- package/template/package.json +2 -2
- package/template/src/resources/carousel/carousel.test.tsx +16 -2
- package/template/src/resources/carousel/carousel.tsx +42 -14
- package/template/src/resources/carousel/components/carousel.tsx +20 -0
- package/template/src/resources/carousel/components/index.ts +1 -0
- package/template/src/resources/carousel/components/place-detail.tsx +153 -0
- package/template/tests/e2e/carousel.spec.ts +125 -0
- package/template/tests/live/carousel.spec.ts +2 -2
- package/template/tests/simulations/show-carousel.json +54 -5
- package/dist/inspector-CKc58UuI.cjs.map +0 -1
- package/dist/inspector-DZrN0kej.js.map +0 -1
- package/dist/use-app-BNbz1uzj.js.map +0 -1
- package/dist/use-app-Dqh20JPP.cjs.map +0 -1
- package/template/node_modules/.vite-mcp/deps/protocol-CTflwIfG.js.map +0 -1
|
@@ -82,7 +82,7 @@ function C({ force: e } = {}) {
|
|
|
82
82
|
}
|
|
83
83
|
var y = C();
|
|
84
84
|
//#endregion
|
|
85
|
-
//#region ../../../node_modules/.pnpm/@vitest+pretty-format@4.1.
|
|
85
|
+
//#region ../../../node_modules/.pnpm/@vitest+pretty-format@4.1.2/node_modules/@vitest/pretty-format/dist/index.js
|
|
86
86
|
function _mergeNamespaces(n, m) {
|
|
87
87
|
m.forEach(function(e) {
|
|
88
88
|
e && typeof e !== "string" && !Array.isArray(e) && Object.keys(e).forEach(function(k) {
|
|
@@ -845,11 +845,18 @@ function findPlugin(plugins, val) {
|
|
|
845
845
|
return null;
|
|
846
846
|
}
|
|
847
847
|
function printer(val, config, indentation, depth, refs, hasCalledToJSON) {
|
|
848
|
+
let result;
|
|
848
849
|
const plugin = findPlugin(config.plugins, val);
|
|
849
|
-
if (plugin !== null)
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
850
|
+
if (plugin !== null) result = printPlugin(plugin, val, config, indentation, depth, refs);
|
|
851
|
+
else {
|
|
852
|
+
const basicResult = printBasicValue(val, config.printFunctionName, config.escapeRegex, config.escapeString);
|
|
853
|
+
if (basicResult !== null) result = basicResult;
|
|
854
|
+
else result = printComplexValue(val, config, indentation, depth, refs, hasCalledToJSON);
|
|
855
|
+
}
|
|
856
|
+
config._outputLengthPerDepth[depth] ??= 0;
|
|
857
|
+
config._outputLengthPerDepth[depth] += result.length;
|
|
858
|
+
if (config._outputLengthPerDepth[depth] > config.maxOutputLength) config.maxDepth = 0;
|
|
859
|
+
return result;
|
|
853
860
|
}
|
|
854
861
|
var DEFAULT_THEME = {
|
|
855
862
|
comment: "gray",
|
|
@@ -867,6 +874,7 @@ var DEFAULT_OPTIONS = {
|
|
|
867
874
|
highlight: false,
|
|
868
875
|
indent: 2,
|
|
869
876
|
maxDepth: Number.POSITIVE_INFINITY,
|
|
877
|
+
maxOutputLength: 1e6,
|
|
870
878
|
maxWidth: Number.POSITIVE_INFINITY,
|
|
871
879
|
min: false,
|
|
872
880
|
plugins: [],
|
|
@@ -922,7 +930,9 @@ function getConfig(options) {
|
|
|
922
930
|
printFunctionName: getPrintFunctionName(options),
|
|
923
931
|
printShadowRoot: options?.printShadowRoot ?? true,
|
|
924
932
|
spacingInner: options?.min ? " " : "\n",
|
|
925
|
-
spacingOuter: options?.min ? "" : "\n"
|
|
933
|
+
spacingOuter: options?.min ? "" : "\n",
|
|
934
|
+
maxOutputLength: options?.maxOutputLength ?? DEFAULT_OPTIONS.maxOutputLength,
|
|
935
|
+
_outputLengthPerDepth: []
|
|
926
936
|
};
|
|
927
937
|
}
|
|
928
938
|
function createIndent(indent) {
|
|
@@ -955,7 +965,7 @@ var plugins = {
|
|
|
955
965
|
Error: ErrorPlugin
|
|
956
966
|
};
|
|
957
967
|
//#endregion
|
|
958
|
-
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.
|
|
968
|
+
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.2/node_modules/@vitest/utils/dist/display.js
|
|
959
969
|
var ansiColors$1 = {
|
|
960
970
|
bold: ["1", "22"],
|
|
961
971
|
dim: ["2", "22"],
|
|
@@ -1509,7 +1519,7 @@ function objDisplay$1(obj, options = {}) {
|
|
|
1509
1519
|
return str;
|
|
1510
1520
|
}
|
|
1511
1521
|
//#endregion
|
|
1512
|
-
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.
|
|
1522
|
+
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.2/node_modules/@vitest/utils/dist/helpers.js
|
|
1513
1523
|
/**
|
|
1514
1524
|
* Get original stacktrace without source map support the most performant way.
|
|
1515
1525
|
* - Create only 1 stack frame.
|
|
@@ -2985,7 +2995,7 @@ function getCommonAndChangedSubstrings(diffs, op, hasCommonDiff) {
|
|
|
2985
2995
|
return diffs.reduce((reduced, diff) => reduced + (diff[0] === 0 ? diff[1] : diff[0] === op ? hasCommonDiff ? y.inverse(diff[1]) : diff[1] : ""), "");
|
|
2986
2996
|
}
|
|
2987
2997
|
//#endregion
|
|
2988
|
-
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.
|
|
2998
|
+
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.2/node_modules/@vitest/utils/dist/serialize.js
|
|
2989
2999
|
var IS_RECORD_SYMBOL$1 = "@@__IMMUTABLE_RECORD__@@";
|
|
2990
3000
|
var IS_COLLECTION_SYMBOL = "@@__IMMUTABLE_ITERABLE__@@";
|
|
2991
3001
|
function isImmutable(v) {
|
|
@@ -3059,7 +3069,7 @@ function normalizeErrorMessage(message) {
|
|
|
3059
3069
|
return message.replace(/\(0\s?,\s?__vite_ssr_import_\d+__.(\w+)\)/g, "$1").replace(/__(vite_ssr_import|vi_import)_\d+__\./g, "").replace(/getByTestId('__vitest_\d+__')/g, "page");
|
|
3060
3070
|
}
|
|
3061
3071
|
//#endregion
|
|
3062
|
-
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.
|
|
3072
|
+
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.2/node_modules/@vitest/utils/dist/error.js
|
|
3063
3073
|
function processError(_err, diffOptions, seen = /* @__PURE__ */ new WeakSet()) {
|
|
3064
3074
|
if (!_err || typeof _err !== "object") return { message: String(_err) };
|
|
3065
3075
|
const err = _err;
|
|
@@ -3082,7 +3092,7 @@ function processError(_err, diffOptions, seen = /* @__PURE__ */ new WeakSet()) {
|
|
|
3082
3092
|
}
|
|
3083
3093
|
}
|
|
3084
3094
|
//#endregion
|
|
3085
|
-
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.
|
|
3095
|
+
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.2/node_modules/@vitest/utils/dist/timers.js
|
|
3086
3096
|
var SAFE_TIMERS_SYMBOL = Symbol("vitest:SAFE_TIMERS");
|
|
3087
3097
|
function getSafeTimers() {
|
|
3088
3098
|
const { setTimeout: safeSetTimeout, setInterval: safeSetInterval, clearInterval: safeClearInterval, clearTimeout: safeClearTimeout, setImmediate: safeSetImmediate, clearImmediate: safeClearImmediate, queueMicrotask: safeQueueMicrotask } = globalThis[SAFE_TIMERS_SYMBOL] || globalThis;
|
|
@@ -3116,7 +3126,7 @@ function delay(timeout, scheduler = setTimeout) {
|
|
|
3116
3126
|
return new Promise((resolve) => scheduler(resolve, timeout));
|
|
3117
3127
|
}
|
|
3118
3128
|
//#endregion
|
|
3119
|
-
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.
|
|
3129
|
+
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.2/node_modules/@vitest/utils/dist/chunk-pathe.M-eThtNZ.js
|
|
3120
3130
|
var _DRIVE_LETTER_START_RE$2 = /^[A-Za-z]:\//;
|
|
3121
3131
|
function normalizeWindowsPath$2(input = "") {
|
|
3122
3132
|
if (!input) return input;
|
|
@@ -3195,7 +3205,7 @@ var isAbsolute$2 = function(p) {
|
|
|
3195
3205
|
return _IS_ABSOLUTE_RE$2.test(p);
|
|
3196
3206
|
};
|
|
3197
3207
|
//#endregion
|
|
3198
|
-
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.
|
|
3208
|
+
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.2/node_modules/@vitest/utils/dist/source-map.js
|
|
3199
3209
|
var comma$1 = ",".charCodeAt(0);
|
|
3200
3210
|
var chars$1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
3201
3211
|
var intToChar$1 = new Uint8Array(64);
|
|
@@ -3669,93 +3679,7 @@ var dirname$1 = function(p) {
|
|
|
3669
3679
|
};
|
|
3670
3680
|
globalThis.process?.platform;
|
|
3671
3681
|
//#endregion
|
|
3672
|
-
//#region ../../../node_modules/.pnpm/@vitest+runner@4.1.
|
|
3673
|
-
var kChainableContext = Symbol("kChainableContext");
|
|
3674
|
-
function getChainableContext(chainable) {
|
|
3675
|
-
return chainable?.[kChainableContext];
|
|
3676
|
-
}
|
|
3677
|
-
function createChainable(keys, fn, context) {
|
|
3678
|
-
function create(context) {
|
|
3679
|
-
const chain = function(...args) {
|
|
3680
|
-
return fn.apply(context, args);
|
|
3681
|
-
};
|
|
3682
|
-
Object.assign(chain, fn);
|
|
3683
|
-
Object.defineProperty(chain, kChainableContext, {
|
|
3684
|
-
value: {
|
|
3685
|
-
withContext: () => chain.bind(context),
|
|
3686
|
-
getFixtures: () => context.fixtures,
|
|
3687
|
-
setContext: (key, value) => {
|
|
3688
|
-
context[key] = value;
|
|
3689
|
-
},
|
|
3690
|
-
mergeContext: (ctx) => {
|
|
3691
|
-
Object.assign(context, ctx);
|
|
3692
|
-
}
|
|
3693
|
-
},
|
|
3694
|
-
enumerable: false
|
|
3695
|
-
});
|
|
3696
|
-
for (const key of keys) Object.defineProperty(chain, key, { get() {
|
|
3697
|
-
return create({
|
|
3698
|
-
...context,
|
|
3699
|
-
[key]: true
|
|
3700
|
-
});
|
|
3701
|
-
} });
|
|
3702
|
-
return chain;
|
|
3703
|
-
}
|
|
3704
|
-
const chain = create(context ?? {});
|
|
3705
|
-
Object.defineProperty(chain, "fn", {
|
|
3706
|
-
value: fn,
|
|
3707
|
-
enumerable: false
|
|
3708
|
-
});
|
|
3709
|
-
return chain;
|
|
3710
|
-
}
|
|
3711
|
-
function findTestFileStackTrace(testFilePath, error) {
|
|
3712
|
-
const lines = error.split("\n").slice(1);
|
|
3713
|
-
for (const line of lines) {
|
|
3714
|
-
const stack = parseSingleStack(line);
|
|
3715
|
-
if (stack && stack.file === testFilePath) return stack;
|
|
3716
|
-
}
|
|
3717
|
-
}
|
|
3718
|
-
function validateTags(config, tags) {
|
|
3719
|
-
if (!config.strictTags) return;
|
|
3720
|
-
const availableTags = new Set(config.tags.map((tag) => tag.name));
|
|
3721
|
-
for (const tag of tags) if (!availableTags.has(tag)) throw createNoTagsError(config.tags, tag);
|
|
3722
|
-
}
|
|
3723
|
-
function createNoTagsError(availableTags, tag, prefix = "tag") {
|
|
3724
|
-
if (!availableTags.length) throw new Error(`The Vitest config does't define any "tags", cannot apply "${tag}" ${prefix} for this test. See: https://vitest.dev/guide/test-tags`);
|
|
3725
|
-
throw new Error(`The ${prefix} "${tag}" is not defined in the configuration. Available tags are:\n${availableTags.map((t) => `- ${t.name}${t.description ? `: ${t.description}` : ""}`).join("\n")}`);
|
|
3726
|
-
}
|
|
3727
|
-
function isTestCase(s) {
|
|
3728
|
-
return s.type === "test";
|
|
3729
|
-
}
|
|
3730
|
-
function getTests(suite) {
|
|
3731
|
-
const tests = [];
|
|
3732
|
-
const arraySuites = toArray(suite);
|
|
3733
|
-
for (const s of arraySuites) if (isTestCase(s)) tests.push(s);
|
|
3734
|
-
else for (const task of s.tasks) if (isTestCase(task)) tests.push(task);
|
|
3735
|
-
else {
|
|
3736
|
-
const taskTests = getTests(task);
|
|
3737
|
-
for (const test of taskTests) tests.push(test);
|
|
3738
|
-
}
|
|
3739
|
-
return tests;
|
|
3740
|
-
}
|
|
3741
|
-
function getNames(task) {
|
|
3742
|
-
const names = [task.name];
|
|
3743
|
-
let current = task;
|
|
3744
|
-
while (current?.suite) {
|
|
3745
|
-
current = current.suite;
|
|
3746
|
-
if (current?.name) names.unshift(current.name);
|
|
3747
|
-
}
|
|
3748
|
-
if (current !== task.file) names.unshift(task.file.name);
|
|
3749
|
-
return names;
|
|
3750
|
-
}
|
|
3751
|
-
function getTestName(task, separator = " > ") {
|
|
3752
|
-
return getNames(task).slice(1).join(separator);
|
|
3753
|
-
}
|
|
3754
|
-
function createTaskName(names, separator = " > ") {
|
|
3755
|
-
return names.filter((name) => name !== void 0).join(separator);
|
|
3756
|
-
}
|
|
3757
|
-
//#endregion
|
|
3758
|
-
//#region ../../../node_modules/.pnpm/@vitest+runner@4.1.0/node_modules/@vitest/runner/dist/index.js
|
|
3682
|
+
//#region ../../../node_modules/.pnpm/@vitest+runner@4.1.2/node_modules/@vitest/runner/dist/chunk-artifact.js
|
|
3759
3683
|
var PendingError = class extends Error {
|
|
3760
3684
|
code = "VITEST_PENDING";
|
|
3761
3685
|
taskId;
|
|
@@ -3796,6 +3720,7 @@ function setHooks(key, hooks) {
|
|
|
3796
3720
|
function getHooks(key) {
|
|
3797
3721
|
return hooksMap.get(key);
|
|
3798
3722
|
}
|
|
3723
|
+
var FIXTURE_STACK_TRACE_KEY = Symbol.for("VITEST_FIXTURE_STACK_TRACE");
|
|
3799
3724
|
var TestFixtures = class TestFixtures {
|
|
3800
3725
|
_suiteContexts;
|
|
3801
3726
|
_overrides = /* @__PURE__ */ new WeakMap();
|
|
@@ -3829,6 +3754,9 @@ var TestFixtures = class TestFixtures {
|
|
|
3829
3754
|
static getFileContexts(file) {
|
|
3830
3755
|
return TestFixtures._definitions.map((f) => f.getFileContext(file));
|
|
3831
3756
|
}
|
|
3757
|
+
static isFixtureOptions(obj) {
|
|
3758
|
+
return isObject(obj) && Object.keys(obj).some((key) => TestFixtures._fixtureOptionKeys.includes(key));
|
|
3759
|
+
}
|
|
3832
3760
|
constructor(registrations) {
|
|
3833
3761
|
this._registrations = registrations ?? /* @__PURE__ */ new Map();
|
|
3834
3762
|
this._suiteContexts = /* @__PURE__ */ new WeakMap();
|
|
@@ -3872,7 +3800,7 @@ var TestFixtures = class TestFixtures {
|
|
|
3872
3800
|
let options;
|
|
3873
3801
|
let value;
|
|
3874
3802
|
let _options;
|
|
3875
|
-
if (Array.isArray(fn) && fn.length >= 2 &&
|
|
3803
|
+
if (Array.isArray(fn) && fn.length >= 2 && TestFixtures.isFixtureOptions(fn[1])) {
|
|
3876
3804
|
_options = fn[1];
|
|
3877
3805
|
options = {
|
|
3878
3806
|
auto: _options.auto ?? false,
|
|
@@ -3907,6 +3835,7 @@ var TestFixtures = class TestFixtures {
|
|
|
3907
3835
|
deps,
|
|
3908
3836
|
parent
|
|
3909
3837
|
};
|
|
3838
|
+
if (isFixtureFunction(value)) Object.assign(value, { [FIXTURE_STACK_TRACE_KEY]: /* @__PURE__ */ new Error("STACK_TRACE_ERROR") });
|
|
3910
3839
|
registrations.set(name, item);
|
|
3911
3840
|
if (item.scope === "worker" && (runner.pool === "vmThreads" || runner.pool === "vmForks")) item.scope = "file";
|
|
3912
3841
|
});
|
|
@@ -3989,7 +3918,7 @@ function isFixtureFunction(value) {
|
|
|
3989
3918
|
}
|
|
3990
3919
|
function resolveTestFixtureValue(fixture, context, cleanupFnArray) {
|
|
3991
3920
|
if (!isFixtureFunction(fixture.value)) return fixture.value;
|
|
3992
|
-
return resolveFixtureFunction(fixture.value, context, cleanupFnArray);
|
|
3921
|
+
return resolveFixtureFunction(fixture.value, fixture.name, context, cleanupFnArray);
|
|
3993
3922
|
}
|
|
3994
3923
|
var scopedFixturePromiseCache = /* @__PURE__ */ new WeakMap();
|
|
3995
3924
|
async function resolveScopeFixtureValue(fixtures, suite, fixture) {
|
|
@@ -4004,7 +3933,7 @@ async function resolveScopeFixtureValue(fixtures, suite, fixture) {
|
|
|
4004
3933
|
if (scopedFixturePromiseCache.has(fixture)) return scopedFixturePromiseCache.get(fixture);
|
|
4005
3934
|
if (!cleanupFnArrayMap.has(fixtureContext)) cleanupFnArrayMap.set(fixtureContext, []);
|
|
4006
3935
|
const cleanupFnFileArray = cleanupFnArrayMap.get(fixtureContext);
|
|
4007
|
-
const promise = resolveFixtureFunction(fixture.value, fixture.scope === "file" ? {
|
|
3936
|
+
const promise = resolveFixtureFunction(fixture.value, fixture.name, fixture.scope === "file" ? {
|
|
4008
3937
|
...workerContext,
|
|
4009
3938
|
...fileContext
|
|
4010
3939
|
} : fixtureContext, cleanupFnFileArray).then((value) => {
|
|
@@ -4015,8 +3944,9 @@ async function resolveScopeFixtureValue(fixtures, suite, fixture) {
|
|
|
4015
3944
|
scopedFixturePromiseCache.set(fixture, promise);
|
|
4016
3945
|
return promise;
|
|
4017
3946
|
}
|
|
4018
|
-
async function resolveFixtureFunction(fixtureFn, context, cleanupFnArray) {
|
|
3947
|
+
async function resolveFixtureFunction(fixtureFn, fixtureName, context, cleanupFnArray) {
|
|
4019
3948
|
const useFnArgPromise = createDefer();
|
|
3949
|
+
const stackTraceError = FIXTURE_STACK_TRACE_KEY in fixtureFn && fixtureFn[FIXTURE_STACK_TRACE_KEY] instanceof Error ? fixtureFn[FIXTURE_STACK_TRACE_KEY] : void 0;
|
|
4020
3950
|
let isUseFnArgResolved = false;
|
|
4021
3951
|
const fixtureReturn = fixtureFn(context, async (useFnArg) => {
|
|
4022
3952
|
isUseFnArgResolved = true;
|
|
@@ -4027,6 +3957,12 @@ async function resolveFixtureFunction(fixtureFn, context, cleanupFnArray) {
|
|
|
4027
3957
|
await fixtureReturn;
|
|
4028
3958
|
});
|
|
4029
3959
|
await useReturnPromise;
|
|
3960
|
+
}).then(() => {
|
|
3961
|
+
if (!isUseFnArgResolved) {
|
|
3962
|
+
const error = /* @__PURE__ */ new Error(`Fixture "${fixtureName}" returned without calling "use". Make sure to call "use" in every code path of the fixture function.`);
|
|
3963
|
+
if (stackTraceError?.stack) error.stack = error.message + stackTraceError.stack.replace(stackTraceError.message, "");
|
|
3964
|
+
useFnArgPromise.reject(error);
|
|
3965
|
+
}
|
|
4030
3966
|
}).catch((e) => {
|
|
4031
3967
|
if (!isUseFnArgResolved) {
|
|
4032
3968
|
useFnArgPromise.reject(e);
|
|
@@ -4122,6 +4058,44 @@ var _test;
|
|
|
4122
4058
|
function getCurrentTest() {
|
|
4123
4059
|
return _test;
|
|
4124
4060
|
}
|
|
4061
|
+
var kChainableContext = Symbol("kChainableContext");
|
|
4062
|
+
function getChainableContext(chainable) {
|
|
4063
|
+
return chainable?.[kChainableContext];
|
|
4064
|
+
}
|
|
4065
|
+
function createChainable(keys, fn, context) {
|
|
4066
|
+
function create(context) {
|
|
4067
|
+
const chain = function(...args) {
|
|
4068
|
+
return fn.apply(context, args);
|
|
4069
|
+
};
|
|
4070
|
+
Object.assign(chain, fn);
|
|
4071
|
+
Object.defineProperty(chain, kChainableContext, {
|
|
4072
|
+
value: {
|
|
4073
|
+
withContext: () => chain.bind(context),
|
|
4074
|
+
getFixtures: () => context.fixtures,
|
|
4075
|
+
setContext: (key, value) => {
|
|
4076
|
+
context[key] = value;
|
|
4077
|
+
},
|
|
4078
|
+
mergeContext: (ctx) => {
|
|
4079
|
+
Object.assign(context, ctx);
|
|
4080
|
+
}
|
|
4081
|
+
},
|
|
4082
|
+
enumerable: false
|
|
4083
|
+
});
|
|
4084
|
+
for (const key of keys) Object.defineProperty(chain, key, { get() {
|
|
4085
|
+
return create({
|
|
4086
|
+
...context,
|
|
4087
|
+
[key]: true
|
|
4088
|
+
});
|
|
4089
|
+
} });
|
|
4090
|
+
return chain;
|
|
4091
|
+
}
|
|
4092
|
+
const chain = create(context ?? {});
|
|
4093
|
+
Object.defineProperty(chain, "fn", {
|
|
4094
|
+
value: fn,
|
|
4095
|
+
enumerable: false
|
|
4096
|
+
});
|
|
4097
|
+
return chain;
|
|
4098
|
+
}
|
|
4125
4099
|
function getDefaultHookTimeout() {
|
|
4126
4100
|
return getRunner().config.hookTimeout;
|
|
4127
4101
|
}
|
|
@@ -4386,6 +4360,262 @@ function createTestHook(name, handler) {
|
|
|
4386
4360
|
return handler(current, fn, timeout);
|
|
4387
4361
|
};
|
|
4388
4362
|
}
|
|
4363
|
+
function findTestFileStackTrace(testFilePath, error) {
|
|
4364
|
+
const lines = error.split("\n").slice(1);
|
|
4365
|
+
for (const line of lines) {
|
|
4366
|
+
const stack = parseSingleStack(line);
|
|
4367
|
+
if (stack && stack.file === testFilePath) return stack;
|
|
4368
|
+
}
|
|
4369
|
+
}
|
|
4370
|
+
var filterMap = /* @__PURE__ */ new WeakMap();
|
|
4371
|
+
/**
|
|
4372
|
+
* @experimental
|
|
4373
|
+
*/
|
|
4374
|
+
function matchesTags(testTags) {
|
|
4375
|
+
const runner = getRunner();
|
|
4376
|
+
const tagsFilter = runner._currentSpecification?.testTagsFilter ?? runner.config.tagsFilter;
|
|
4377
|
+
if (!tagsFilter) return true;
|
|
4378
|
+
let tagsFilterPredicate = filterMap.get(tagsFilter);
|
|
4379
|
+
if (!tagsFilterPredicate) {
|
|
4380
|
+
tagsFilterPredicate = createTagsFilter(tagsFilter, runner.config.tags);
|
|
4381
|
+
filterMap.set(tagsFilter, tagsFilterPredicate);
|
|
4382
|
+
}
|
|
4383
|
+
return tagsFilterPredicate(testTags);
|
|
4384
|
+
}
|
|
4385
|
+
function validateTags(config, tags) {
|
|
4386
|
+
if (!config.strictTags) return;
|
|
4387
|
+
const availableTags = new Set(config.tags.map((tag) => tag.name));
|
|
4388
|
+
for (const tag of tags) if (!availableTags.has(tag)) throw createNoTagsError(config.tags, tag);
|
|
4389
|
+
}
|
|
4390
|
+
function createNoTagsError(availableTags, tag, prefix = "tag") {
|
|
4391
|
+
if (!availableTags.length) throw new Error(`The Vitest config does't define any "tags", cannot apply "${tag}" ${prefix} for this test. See: https://vitest.dev/guide/test-tags`);
|
|
4392
|
+
throw new Error(`The ${prefix} "${tag}" is not defined in the configuration. Available tags are:\n${availableTags.map((t) => `- ${t.name}${t.description ? `: ${t.description}` : ""}`).join("\n")}`);
|
|
4393
|
+
}
|
|
4394
|
+
function createTagsFilter(tagsExpr, availableTags) {
|
|
4395
|
+
const matchers = tagsExpr.map((expr) => parseTagsExpression(expr, availableTags));
|
|
4396
|
+
return (testTags) => {
|
|
4397
|
+
return matchers.every((matcher) => matcher(testTags));
|
|
4398
|
+
};
|
|
4399
|
+
}
|
|
4400
|
+
function parseTagsExpression(expr, availableTags) {
|
|
4401
|
+
const stream = new TokenStream(tokenize(expr), expr);
|
|
4402
|
+
const ast = parseOrExpression(stream, availableTags);
|
|
4403
|
+
if (stream.peek().type !== "EOF") throw new Error(`Invalid tags expression: unexpected "${formatToken(stream.peek())}" in "${expr}"`);
|
|
4404
|
+
return (tags) => evaluateNode(ast, tags);
|
|
4405
|
+
}
|
|
4406
|
+
function formatToken(token) {
|
|
4407
|
+
switch (token.type) {
|
|
4408
|
+
case "TAG": return token.value;
|
|
4409
|
+
default: return formatTokenType(token.type);
|
|
4410
|
+
}
|
|
4411
|
+
}
|
|
4412
|
+
function tokenize(expr) {
|
|
4413
|
+
const tokens = [];
|
|
4414
|
+
let i = 0;
|
|
4415
|
+
while (i < expr.length) {
|
|
4416
|
+
if (expr[i] === " " || expr[i] === " ") {
|
|
4417
|
+
i++;
|
|
4418
|
+
continue;
|
|
4419
|
+
}
|
|
4420
|
+
if (expr[i] === "(") {
|
|
4421
|
+
tokens.push({ type: "LPAREN" });
|
|
4422
|
+
i++;
|
|
4423
|
+
continue;
|
|
4424
|
+
}
|
|
4425
|
+
if (expr[i] === ")") {
|
|
4426
|
+
tokens.push({ type: "RPAREN" });
|
|
4427
|
+
i++;
|
|
4428
|
+
continue;
|
|
4429
|
+
}
|
|
4430
|
+
if (expr[i] === "!") {
|
|
4431
|
+
tokens.push({ type: "NOT" });
|
|
4432
|
+
i++;
|
|
4433
|
+
continue;
|
|
4434
|
+
}
|
|
4435
|
+
if (expr.slice(i, i + 2) === "&&") {
|
|
4436
|
+
tokens.push({ type: "AND" });
|
|
4437
|
+
i += 2;
|
|
4438
|
+
continue;
|
|
4439
|
+
}
|
|
4440
|
+
if (expr.slice(i, i + 2) === "||") {
|
|
4441
|
+
tokens.push({ type: "OR" });
|
|
4442
|
+
i += 2;
|
|
4443
|
+
continue;
|
|
4444
|
+
}
|
|
4445
|
+
if (/^and(?:\s|\)|$)/i.test(expr.slice(i))) {
|
|
4446
|
+
tokens.push({ type: "AND" });
|
|
4447
|
+
i += 3;
|
|
4448
|
+
continue;
|
|
4449
|
+
}
|
|
4450
|
+
if (/^or(?:\s|\)|$)/i.test(expr.slice(i))) {
|
|
4451
|
+
tokens.push({ type: "OR" });
|
|
4452
|
+
i += 2;
|
|
4453
|
+
continue;
|
|
4454
|
+
}
|
|
4455
|
+
if (/^not\s/i.test(expr.slice(i))) {
|
|
4456
|
+
tokens.push({ type: "NOT" });
|
|
4457
|
+
i += 3;
|
|
4458
|
+
continue;
|
|
4459
|
+
}
|
|
4460
|
+
let tag = "";
|
|
4461
|
+
while (i < expr.length && expr[i] !== " " && expr[i] !== " " && expr[i] !== "(" && expr[i] !== ")" && expr[i] !== "!" && expr[i] !== "&" && expr[i] !== "|") {
|
|
4462
|
+
const remaining = expr.slice(i);
|
|
4463
|
+
if (tag === "" && (/^and(?:\s|\)|$)/i.test(remaining) || /^or(?:\s|\)|$)/i.test(remaining) || /^not\s/i.test(remaining))) break;
|
|
4464
|
+
tag += expr[i];
|
|
4465
|
+
i++;
|
|
4466
|
+
}
|
|
4467
|
+
if (tag) tokens.push({
|
|
4468
|
+
type: "TAG",
|
|
4469
|
+
value: tag
|
|
4470
|
+
});
|
|
4471
|
+
}
|
|
4472
|
+
tokens.push({ type: "EOF" });
|
|
4473
|
+
return tokens;
|
|
4474
|
+
}
|
|
4475
|
+
var TokenStream = class {
|
|
4476
|
+
pos = 0;
|
|
4477
|
+
constructor(tokens, expr) {
|
|
4478
|
+
this.tokens = tokens;
|
|
4479
|
+
this.expr = expr;
|
|
4480
|
+
}
|
|
4481
|
+
peek() {
|
|
4482
|
+
return this.tokens[this.pos];
|
|
4483
|
+
}
|
|
4484
|
+
next() {
|
|
4485
|
+
return this.tokens[this.pos++];
|
|
4486
|
+
}
|
|
4487
|
+
expect(type) {
|
|
4488
|
+
const token = this.next();
|
|
4489
|
+
if (token.type !== type) {
|
|
4490
|
+
if (type === "RPAREN" && token.type === "EOF") throw new Error(`Invalid tags expression: missing closing ")" in "${this.expr}"`);
|
|
4491
|
+
throw new Error(`Invalid tags expression: expected "${formatTokenType(type)}" but got "${formatToken(token)}" in "${this.expr}"`);
|
|
4492
|
+
}
|
|
4493
|
+
return token;
|
|
4494
|
+
}
|
|
4495
|
+
unexpectedToken() {
|
|
4496
|
+
const token = this.peek();
|
|
4497
|
+
if (token.type === "EOF") throw new Error(`Invalid tags expression: unexpected end of expression in "${this.expr}"`);
|
|
4498
|
+
throw new Error(`Invalid tags expression: unexpected "${formatToken(token)}" in "${this.expr}"`);
|
|
4499
|
+
}
|
|
4500
|
+
};
|
|
4501
|
+
function formatTokenType(type) {
|
|
4502
|
+
switch (type) {
|
|
4503
|
+
case "TAG": return "tag";
|
|
4504
|
+
case "AND": return "and";
|
|
4505
|
+
case "OR": return "or";
|
|
4506
|
+
case "NOT": return "not";
|
|
4507
|
+
case "LPAREN": return "(";
|
|
4508
|
+
case "RPAREN": return ")";
|
|
4509
|
+
case "EOF": return "end of expression";
|
|
4510
|
+
}
|
|
4511
|
+
}
|
|
4512
|
+
function parseOrExpression(stream, availableTags) {
|
|
4513
|
+
let left = parseAndExpression(stream, availableTags);
|
|
4514
|
+
while (stream.peek().type === "OR") {
|
|
4515
|
+
stream.next();
|
|
4516
|
+
const right = parseAndExpression(stream, availableTags);
|
|
4517
|
+
left = {
|
|
4518
|
+
type: "or",
|
|
4519
|
+
left,
|
|
4520
|
+
right
|
|
4521
|
+
};
|
|
4522
|
+
}
|
|
4523
|
+
return left;
|
|
4524
|
+
}
|
|
4525
|
+
function parseAndExpression(stream, availableTags) {
|
|
4526
|
+
let left = parseUnaryExpression(stream, availableTags);
|
|
4527
|
+
while (stream.peek().type === "AND") {
|
|
4528
|
+
stream.next();
|
|
4529
|
+
const right = parseUnaryExpression(stream, availableTags);
|
|
4530
|
+
left = {
|
|
4531
|
+
type: "and",
|
|
4532
|
+
left,
|
|
4533
|
+
right
|
|
4534
|
+
};
|
|
4535
|
+
}
|
|
4536
|
+
return left;
|
|
4537
|
+
}
|
|
4538
|
+
function parseUnaryExpression(stream, availableTags) {
|
|
4539
|
+
if (stream.peek().type === "NOT") {
|
|
4540
|
+
stream.next();
|
|
4541
|
+
return {
|
|
4542
|
+
type: "not",
|
|
4543
|
+
operand: parseUnaryExpression(stream, availableTags)
|
|
4544
|
+
};
|
|
4545
|
+
}
|
|
4546
|
+
return parsePrimaryExpression(stream, availableTags);
|
|
4547
|
+
}
|
|
4548
|
+
function parsePrimaryExpression(stream, availableTags) {
|
|
4549
|
+
const token = stream.peek();
|
|
4550
|
+
if (token.type === "LPAREN") {
|
|
4551
|
+
stream.next();
|
|
4552
|
+
const expr = parseOrExpression(stream, availableTags);
|
|
4553
|
+
stream.expect("RPAREN");
|
|
4554
|
+
return expr;
|
|
4555
|
+
}
|
|
4556
|
+
if (token.type === "TAG") {
|
|
4557
|
+
stream.next();
|
|
4558
|
+
const tagValue = token.value;
|
|
4559
|
+
return {
|
|
4560
|
+
type: "tag",
|
|
4561
|
+
value: tagValue,
|
|
4562
|
+
pattern: resolveTagPattern(tagValue, availableTags)
|
|
4563
|
+
};
|
|
4564
|
+
}
|
|
4565
|
+
stream.unexpectedToken();
|
|
4566
|
+
}
|
|
4567
|
+
function createWildcardRegex(pattern) {
|
|
4568
|
+
return new RegExp(`^${pattern.replace(/[.+?^${}()|[\]\\]/g, "\\$&").replace(/\*/g, ".*")}$`);
|
|
4569
|
+
}
|
|
4570
|
+
function resolveTagPattern(tagPattern, availableTags) {
|
|
4571
|
+
if (tagPattern.includes("*")) {
|
|
4572
|
+
const regex = createWildcardRegex(tagPattern);
|
|
4573
|
+
if (!availableTags.some((tag) => regex.test(tag.name))) throw createNoTagsError(availableTags, tagPattern, "tag pattern");
|
|
4574
|
+
return regex;
|
|
4575
|
+
}
|
|
4576
|
+
if (!availableTags.length || !availableTags.some((tag) => tag.name === tagPattern)) throw createNoTagsError(availableTags, tagPattern, "tag pattern");
|
|
4577
|
+
return null;
|
|
4578
|
+
}
|
|
4579
|
+
function evaluateNode(node, tags) {
|
|
4580
|
+
switch (node.type) {
|
|
4581
|
+
case "tag":
|
|
4582
|
+
if (node.pattern) return tags.some((tag) => node.pattern.test(tag));
|
|
4583
|
+
return tags.includes(node.value);
|
|
4584
|
+
case "not": return !evaluateNode(node.operand, tags);
|
|
4585
|
+
case "and": return evaluateNode(node.left, tags) && evaluateNode(node.right, tags);
|
|
4586
|
+
case "or": return evaluateNode(node.left, tags) || evaluateNode(node.right, tags);
|
|
4587
|
+
}
|
|
4588
|
+
}
|
|
4589
|
+
function isTestCase(s) {
|
|
4590
|
+
return s.type === "test";
|
|
4591
|
+
}
|
|
4592
|
+
function getTests(suite) {
|
|
4593
|
+
const tests = [];
|
|
4594
|
+
const arraySuites = toArray(suite);
|
|
4595
|
+
for (const s of arraySuites) if (isTestCase(s)) tests.push(s);
|
|
4596
|
+
else for (const task of s.tasks) if (isTestCase(task)) tests.push(task);
|
|
4597
|
+
else {
|
|
4598
|
+
const taskTests = getTests(task);
|
|
4599
|
+
for (const test of taskTests) tests.push(test);
|
|
4600
|
+
}
|
|
4601
|
+
return tests;
|
|
4602
|
+
}
|
|
4603
|
+
function getNames(task) {
|
|
4604
|
+
const names = [task.name];
|
|
4605
|
+
let current = task;
|
|
4606
|
+
while (current?.suite) {
|
|
4607
|
+
current = current.suite;
|
|
4608
|
+
if (current?.name) names.unshift(current.name);
|
|
4609
|
+
}
|
|
4610
|
+
if (current !== task.file) names.unshift(task.file.name);
|
|
4611
|
+
return names;
|
|
4612
|
+
}
|
|
4613
|
+
function getTestName(task, separator = " > ") {
|
|
4614
|
+
return getNames(task).slice(1).join(separator);
|
|
4615
|
+
}
|
|
4616
|
+
function createTaskName(names, separator = " > ") {
|
|
4617
|
+
return names.filter((name) => name !== void 0).join(separator);
|
|
4618
|
+
}
|
|
4389
4619
|
/**
|
|
4390
4620
|
* Creates a suite of tests, allowing for grouping and hierarchical organization of tests.
|
|
4391
4621
|
* Suites can contain both tests and other suites, enabling complex test structures.
|
|
@@ -4843,7 +5073,7 @@ function createTaskCollector(fn) {
|
|
|
4843
5073
|
if (maybeFn !== void 0) {
|
|
4844
5074
|
fixtureOptions = optionsOrFn;
|
|
4845
5075
|
fixtureValue = maybeFn;
|
|
4846
|
-
} else if (optionsOrFn !== null && typeof optionsOrFn === "object" && !Array.isArray(optionsOrFn) && (
|
|
5076
|
+
} else if (optionsOrFn !== null && typeof optionsOrFn === "object" && !Array.isArray(optionsOrFn) && TestFixtures.isFixtureOptions(optionsOrFn)) {
|
|
4847
5077
|
fixtureOptions = optionsOrFn;
|
|
4848
5078
|
fixtureValue = {};
|
|
4849
5079
|
} else {
|
|
@@ -5267,7 +5497,7 @@ function manageArtifactAttachment(attachment) {
|
|
|
5267
5497
|
if (attachment.body instanceof Uint8Array) attachment.body = encodeUint8Array(attachment.body);
|
|
5268
5498
|
}
|
|
5269
5499
|
//#endregion
|
|
5270
|
-
//#region ../../../node_modules/.pnpm/vitest@4.1.
|
|
5500
|
+
//#region ../../../node_modules/.pnpm/vitest@4.1.2_@types+node@25.5.0_jsdom@29.0.1_vite@8.0.3_@types+node@25.5.0_esbuild@0.27.4_jiti@2.6.1_tsx@4.21.0_/node_modules/vitest/dist/chunks/utils.BX5Fg8C4.js
|
|
5271
5501
|
var NAME_WORKER_STATE = "__vitest_worker__";
|
|
5272
5502
|
function getWorkerState() {
|
|
5273
5503
|
const workerState = globalThis[NAME_WORKER_STATE];
|
|
@@ -5307,7 +5537,7 @@ async function waitForImportsToResolve() {
|
|
|
5307
5537
|
await waitForImportsToResolve();
|
|
5308
5538
|
}
|
|
5309
5539
|
//#endregion
|
|
5310
|
-
//#region ../../../node_modules/.pnpm/vitest@4.1.
|
|
5540
|
+
//#region ../../../node_modules/.pnpm/vitest@4.1.2_@types+node@25.5.0_jsdom@29.0.1_vite@8.0.3_@types+node@25.5.0_esbuild@0.27.4_jiti@2.6.1_tsx@4.21.0_/node_modules/vitest/dist/chunks/benchmark.CX_oY03V.js
|
|
5311
5541
|
var benchFns = /* @__PURE__ */ new WeakMap();
|
|
5312
5542
|
var benchOptsMap = /* @__PURE__ */ new WeakMap();
|
|
5313
5543
|
function getBenchOptions(key) {
|
|
@@ -5340,7 +5570,7 @@ function formatName(name) {
|
|
|
5340
5570
|
return typeof name === "string" ? name : typeof name === "function" ? name.name || "<anonymous>" : String(name);
|
|
5341
5571
|
}
|
|
5342
5572
|
//#endregion
|
|
5343
|
-
//#region ../../../node_modules/.pnpm/@vitest+spy@4.1.
|
|
5573
|
+
//#region ../../../node_modules/.pnpm/@vitest+spy@4.1.2/node_modules/@vitest/spy/dist/index.js
|
|
5344
5574
|
function isMockFunction(fn) {
|
|
5345
5575
|
return typeof fn === "function" && "_isMockFunction" in fn && fn._isMockFunction === true;
|
|
5346
5576
|
}
|
|
@@ -8605,7 +8835,7 @@ function use(fn) {
|
|
|
8605
8835
|
}
|
|
8606
8836
|
__name(use, "use");
|
|
8607
8837
|
//#endregion
|
|
8608
|
-
//#region ../../../node_modules/.pnpm/@vitest+expect@4.1.
|
|
8838
|
+
//#region ../../../node_modules/.pnpm/@vitest+expect@4.1.2/node_modules/@vitest/expect/dist/index.js
|
|
8609
8839
|
var ChaiStyleAssertions = (chai, utils) => {
|
|
8610
8840
|
function defProperty(name, delegateTo) {
|
|
8611
8841
|
utils.addProperty(chai.Assertion.prototype, name, function() {
|
|
@@ -8622,15 +8852,14 @@ var ChaiStyleAssertions = (chai, utils) => {
|
|
|
8622
8852
|
});
|
|
8623
8853
|
}
|
|
8624
8854
|
function defMethod(name, delegateTo) {
|
|
8625
|
-
utils.
|
|
8855
|
+
utils.addMethod(chai.Assertion.prototype, name, function(...args) {
|
|
8626
8856
|
const jestMethod = chai.Assertion.prototype[delegateTo];
|
|
8627
8857
|
if (!jestMethod) throw new Error(`Cannot delegate to ${String(delegateTo)}: method not found. Ensure JestChaiExpect plugin is loaded first.`);
|
|
8628
8858
|
return jestMethod.call(this, ...args);
|
|
8629
|
-
}
|
|
8859
|
+
});
|
|
8630
8860
|
}
|
|
8631
8861
|
defProperty("called", "toHaveBeenCalled");
|
|
8632
8862
|
defProperty("calledOnce", "toHaveBeenCalledOnce");
|
|
8633
|
-
defProperty("returned", "toHaveReturned");
|
|
8634
8863
|
defPropertyWithArgs("calledTwice", "toHaveBeenCalledTimes", 2);
|
|
8635
8864
|
defPropertyWithArgs("calledThrice", "toHaveBeenCalledTimes", 3);
|
|
8636
8865
|
defMethod("callCount", "toHaveBeenCalledTimes");
|
|
@@ -8638,6 +8867,7 @@ var ChaiStyleAssertions = (chai, utils) => {
|
|
|
8638
8867
|
defMethod("calledOnceWith", "toHaveBeenCalledExactlyOnceWith");
|
|
8639
8868
|
defMethod("lastCalledWith", "toHaveBeenLastCalledWith");
|
|
8640
8869
|
defMethod("nthCalledWith", "toHaveBeenNthCalledWith");
|
|
8870
|
+
defMethod("returned", "toHaveReturned");
|
|
8641
8871
|
defMethod("returnedWith", "toHaveReturnedWith");
|
|
8642
8872
|
defMethod("returnedTimes", "toHaveReturnedTimes");
|
|
8643
8873
|
defMethod("lastReturnedWith", "toHaveLastReturnedWith");
|
|
@@ -9892,7 +10122,7 @@ var JestChaiExpect = (chai, utils) => {
|
|
|
9892
10122
|
}).catch((err) => {
|
|
9893
10123
|
if (isError(err) && error.stack) err.stack = error.stack.replace(error.message, err.message);
|
|
9894
10124
|
throw err;
|
|
9895
|
-
}), createAssertionMessage(utils, this, !!args.length), error);
|
|
10125
|
+
}), createAssertionMessage(utils, this, !!args.length), error, utils.flag(this, "soft"));
|
|
9896
10126
|
};
|
|
9897
10127
|
} });
|
|
9898
10128
|
return proxy;
|
|
@@ -9923,7 +10153,7 @@ var JestChaiExpect = (chai, utils) => {
|
|
|
9923
10153
|
}).catch((err) => {
|
|
9924
10154
|
if (isError(err) && error.stack) err.stack = error.stack.replace(error.message, err.message);
|
|
9925
10155
|
throw err;
|
|
9926
|
-
}), createAssertionMessage(utils, this, !!args.length), error);
|
|
10156
|
+
}), createAssertionMessage(utils, this, !!args.length), error, utils.flag(this, "soft"));
|
|
9927
10157
|
};
|
|
9928
10158
|
} });
|
|
9929
10159
|
return proxy;
|
|
@@ -9986,10 +10216,11 @@ function getMatcherState(assertion, expect) {
|
|
|
9986
10216
|
};
|
|
9987
10217
|
}
|
|
9988
10218
|
var JestExtendError = class extends Error {
|
|
9989
|
-
constructor(message, actual, expected) {
|
|
10219
|
+
constructor(message, actual, expected, context) {
|
|
9990
10220
|
super(message);
|
|
9991
10221
|
this.actual = actual;
|
|
9992
10222
|
this.expected = expected;
|
|
10223
|
+
this.context = context;
|
|
9993
10224
|
}
|
|
9994
10225
|
};
|
|
9995
10226
|
function JestExtendPlugin(c, expect, matchers) {
|
|
@@ -9998,11 +10229,17 @@ function JestExtendPlugin(c, expect, matchers) {
|
|
|
9998
10229
|
function expectWrapper(...args) {
|
|
9999
10230
|
const { state, isNot, obj, customMessage } = getMatcherState(this, expect);
|
|
10000
10231
|
const result = expectAssertion.call(state, obj, ...args);
|
|
10001
|
-
if (result && typeof result === "object" && typeof result.then === "function") return result.then(({ pass, message, actual, expected }) => {
|
|
10002
|
-
if (pass && isNot || !pass && !isNot) throw new JestExtendError(customMessage != null ? customMessage : message(), actual, expected
|
|
10232
|
+
if (result && typeof result === "object" && typeof result.then === "function") return result.then(({ pass, message, actual, expected, meta }) => {
|
|
10233
|
+
if (pass && isNot || !pass && !isNot) throw new JestExtendError(customMessage != null ? customMessage : message(), actual, expected, {
|
|
10234
|
+
assertionName: expectAssertionName,
|
|
10235
|
+
meta
|
|
10236
|
+
});
|
|
10237
|
+
});
|
|
10238
|
+
const { pass, message, actual, expected, meta } = result;
|
|
10239
|
+
if (pass && isNot || !pass && !isNot) throw new JestExtendError(customMessage != null ? customMessage : message(), actual, expected, {
|
|
10240
|
+
assertionName: expectAssertionName,
|
|
10241
|
+
meta
|
|
10003
10242
|
});
|
|
10004
|
-
const { pass, message, actual, expected } = result;
|
|
10005
|
-
if (pass && isNot || !pass && !isNot) throw new JestExtendError(customMessage != null ? customMessage : message(), actual, expected);
|
|
10006
10243
|
}
|
|
10007
10244
|
const softWrapper = wrapAssertion(utils, expectAssertionName, expectWrapper);
|
|
10008
10245
|
utils.addMethod(globalThis[JEST_MATCHERS_OBJECT].matchers, expectAssertionName, softWrapper);
|
|
@@ -10053,7 +10290,7 @@ var JestExtend = (chai, utils) => {
|
|
|
10053
10290
|
});
|
|
10054
10291
|
};
|
|
10055
10292
|
//#endregion
|
|
10056
|
-
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.
|
|
10293
|
+
//#region ../../../node_modules/.pnpm/@vitest+utils@4.1.2/node_modules/@vitest/utils/dist/offset.js
|
|
10057
10294
|
var lineSplitRE = /\r?\n/;
|
|
10058
10295
|
function positionToOffset(source, lineNumber, columnNumber) {
|
|
10059
10296
|
const lines = source.split(lineSplitRE);
|
|
@@ -10077,7 +10314,7 @@ function offsetToLineNumber(source, offset) {
|
|
|
10077
10314
|
return line + 1;
|
|
10078
10315
|
}
|
|
10079
10316
|
//#endregion
|
|
10080
|
-
//#region ../../../node_modules/.pnpm/@vitest+snapshot@4.1.
|
|
10317
|
+
//#region ../../../node_modules/.pnpm/@vitest+snapshot@4.1.2/node_modules/@vitest/snapshot/dist/index.js
|
|
10081
10318
|
async function saveInlineSnapshots(environment, snapshots) {
|
|
10082
10319
|
const MagicString = (await import("./magic-string.es-Cklsmr-5.js")).default;
|
|
10083
10320
|
const files = new Set(snapshots.map((i) => i.file));
|
|
@@ -10732,10 +10969,10 @@ var SnapshotClient = class {
|
|
|
10732
10969
|
}
|
|
10733
10970
|
};
|
|
10734
10971
|
//#endregion
|
|
10735
|
-
//#region ../../../node_modules/.pnpm/vitest@4.1.
|
|
10972
|
+
//#region ../../../node_modules/.pnpm/vitest@4.1.2_@types+node@25.5.0_jsdom@29.0.1_vite@8.0.3_@types+node@25.5.0_esbuild@0.27.4_jiti@2.6.1_tsx@4.21.0_/node_modules/vitest/dist/chunks/_commonjsHelpers.D26ty3Ew.js
|
|
10736
10973
|
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
10737
10974
|
//#endregion
|
|
10738
|
-
//#region ../../../node_modules/.pnpm/vitest@4.1.
|
|
10975
|
+
//#region ../../../node_modules/.pnpm/vitest@4.1.2_@types+node@25.5.0_jsdom@29.0.1_vite@8.0.3_@types+node@25.5.0_esbuild@0.27.4_jiti@2.6.1_tsx@4.21.0_/node_modules/vitest/dist/chunks/rpc.MzXet3jl.js
|
|
10739
10976
|
var RealDate = Date;
|
|
10740
10977
|
var now = null;
|
|
10741
10978
|
var MockDate = class MockDate extends RealDate {
|
|
@@ -10788,7 +11025,7 @@ function rpc() {
|
|
|
10788
11025
|
return rpc;
|
|
10789
11026
|
}
|
|
10790
11027
|
//#endregion
|
|
10791
|
-
//#region ../../../node_modules/.pnpm/vitest@4.1.
|
|
11028
|
+
//#region ../../../node_modules/.pnpm/vitest@4.1.2_@types+node@25.5.0_jsdom@29.0.1_vite@8.0.3_@types+node@25.5.0_esbuild@0.27.4_jiti@2.6.1_tsx@4.21.0_/node_modules/vitest/dist/chunks/test.p_J6dB8a.js
|
|
10792
11029
|
var unsupported = [
|
|
10793
11030
|
"matchSnapshot",
|
|
10794
11031
|
"toMatchSnapshot",
|
|
@@ -13658,6 +13895,7 @@ var TestRunner = class {
|
|
|
13658
13895
|
static getTestFn = getFn;
|
|
13659
13896
|
static setSuiteHooks = getHooks;
|
|
13660
13897
|
static setTestFn = getFn;
|
|
13898
|
+
static matchesTags = matchesTags;
|
|
13661
13899
|
/**
|
|
13662
13900
|
* @deprecated
|
|
13663
13901
|
*/
|
|
@@ -13676,7 +13914,7 @@ function clearModuleMocks(config) {
|
|
|
13676
13914
|
if (unstubGlobals) vi.unstubAllGlobals();
|
|
13677
13915
|
}
|
|
13678
13916
|
//#endregion
|
|
13679
|
-
//#region ../../../node_modules/.pnpm/vite@8.0.
|
|
13917
|
+
//#region ../../../node_modules/.pnpm/vite@8.0.3_@types+node@25.5.0_esbuild@0.27.4_jiti@2.6.1_tsx@4.21.0/node_modules/vite/dist/node/module-runner.js
|
|
13680
13918
|
var SOURCEMAPPING_URL = "sourceMa";
|
|
13681
13919
|
SOURCEMAPPING_URL += "ppingURL";
|
|
13682
13920
|
var isWindows = typeof process < "u" && process.platform === "win32";
|
|
@@ -13742,7 +13980,7 @@ var isAbsolute = function(p) {
|
|
|
13742
13980
|
}, dirname = function(p) {
|
|
13743
13981
|
let segments = normalizeWindowsPath(p).replace(/\/$/, "").split("/").slice(0, -1);
|
|
13744
13982
|
return segments.length === 1 && _DRIVE_LETTER_RE.test(segments[0]) && (segments[0] += "/"), segments.join("/") || (isAbsolute(p) ? "/" : ".");
|
|
13745
|
-
}, decodeBase64 = typeof
|
|
13983
|
+
}, textDecoder = new TextDecoder(), decodeBase64 = typeof Buffer == "function" && typeof Buffer.from == "function" ? (base64) => Buffer.from(base64, "base64").toString("utf-8") : (base64) => textDecoder.decode(Uint8Array.from(atob(base64), (c) => c.charCodeAt(0)));
|
|
13746
13984
|
var posixDirname = dirname, posixResolve = resolve, chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", intToChar = new Uint8Array(64), charToInt = new Uint8Array(128);
|
|
13747
13985
|
for (let i = 0; i < chars.length; i++) {
|
|
13748
13986
|
let c = chars.charCodeAt(i);
|
|
@@ -13881,7 +14119,7 @@ new Proxy({}, { get(_, p) {
|
|
|
13881
14119
|
throw Error(`[module runner] Dynamic access of "import.meta.env" is not supported. Please, use "import.meta.env.${String(p)}" instead.`);
|
|
13882
14120
|
} });
|
|
13883
14121
|
//#endregion
|
|
13884
|
-
//#region ../../../node_modules/.pnpm/vitest@4.1.
|
|
14122
|
+
//#region ../../../node_modules/.pnpm/vitest@4.1.2_@types+node@25.5.0_jsdom@29.0.1_vite@8.0.3_@types+node@25.5.0_esbuild@0.27.4_jiti@2.6.1_tsx@4.21.0_/node_modules/vitest/dist/chunks/evaluatedModules.Dg1zASAC.js
|
|
13885
14123
|
var VitestEvaluatedModules = class extends EvaluatedModules {
|
|
13886
14124
|
getModuleSourceMapById(id) {
|
|
13887
14125
|
const map = super.getModuleSourceMapById(id);
|
|
@@ -13914,7 +14152,7 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
|
13914
14152
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13915
14153
|
}));
|
|
13916
14154
|
//#endregion
|
|
13917
|
-
//#region ../../../node_modules/.pnpm/vitest@4.1.
|
|
14155
|
+
//#region ../../../node_modules/.pnpm/vitest@4.1.2_@types+node@25.5.0_jsdom@29.0.1_vite@8.0.3_@types+node@25.5.0_esbuild@0.27.4_jiti@2.6.1_tsx@4.21.0_/node_modules/vitest/dist/chunks/index.DOa3dzoN.js
|
|
13918
14156
|
var import_dist = (/* @__PURE__ */ __commonJSMin(((exports) => {
|
|
13919
14157
|
var __createBinding = exports && exports.__createBinding || (Object.create ? (function(o, m, k, k2) {
|
|
13920
14158
|
if (k2 === void 0) k2 = k;
|