diff --git a/src/Framework/Framework/Configuration/DotvvmRuntimeConfiguration.cs b/src/Framework/Framework/Configuration/DotvvmRuntimeConfiguration.cs
index 359a5dcd26..2426fb3de6 100644
--- a/src/Framework/Framework/Configuration/DotvvmRuntimeConfiguration.cs
+++ b/src/Framework/Framework/Configuration/DotvvmRuntimeConfiguration.cs
@@ -22,6 +22,18 @@ public class DotvvmRuntimeConfiguration
[JsonProperty("reloadMarkupFiles")]
public DotvvmGlobal3StateFeatureFlag ReloadMarkupFiles { get; } = new("Dotvvm3StateFeatureFlag.ReloadMarkupFiles");
+ ///
+ /// When enabled, command and staticCommand requests are compressed client-side and DotVVM accepts the compressed requests.
+ /// It is enabled by default in Production mode.
+ /// See to limit the impact of potential decompression bomb. Although compression may be enabled only for specific routes, DotVVM does not check authentication before decompressing the request.
+ ///
+ [JsonProperty("compressPostbacks")]
+ public Dotvvm3StateFeatureFlag CompressPostbacks { get; } = new("DotvvmFeatureFlag.CompressPostbacks");
+
+ /// Maximum size of command/staticCommand request body after decompression (does not affect file upload). Default = 128MB, lower limit is a basic protection against decompression bomb attack. Set to -1 to disable the limit.
+ [JsonProperty("maxPostbackSizeBytes")]
+ public long MaxPostbackSizeBytes { get; set; } = 1024 * 1024 * 128; // 128 MB
+
///
/// Initializes a new instance of the class.
///
diff --git a/src/Framework/Framework/Controls/Infrastructure/BodyResourceLinks.cs b/src/Framework/Framework/Controls/Infrastructure/BodyResourceLinks.cs
index 294806c42a..c5d7dcbdb8 100644
--- a/src/Framework/Framework/Controls/Infrastructure/BodyResourceLinks.cs
+++ b/src/Framework/Framework/Controls/Infrastructure/BodyResourceLinks.cs
@@ -33,7 +33,12 @@ protected override void RenderControl(IHtmlWriter writer, IDotvvmRequestContext
// init on load
var initCode = $"window.dotvvm.init({JsonConvert.ToString(CultureInfo.CurrentCulture.Name, '"', StringEscapeHandling.EscapeHtml)});";
- if (context.Configuration.ExperimentalFeatures.KnockoutDeferUpdates.IsEnabledForRoute(context.Route?.RouteName))
+ var config = context.Configuration;
+ if (!config.Runtime.CompressPostbacks.IsEnabledForRoute(context.Route?.RouteName, defaultValue: !config.Debug))
+ {
+ initCode = $"dotvvm.options.compressPOST=false;\n{initCode}";
+ }
+ if (config.ExperimentalFeatures.KnockoutDeferUpdates.IsEnabledForRoute(context.Route?.RouteName))
{
initCode = $"ko.options.deferUpdates = true;\n{initCode}";
}
diff --git a/src/Framework/Framework/Hosting/DotvvmPresenter.cs b/src/Framework/Framework/Hosting/DotvvmPresenter.cs
index 755cab055c..dee997e54a 100644
--- a/src/Framework/Framework/Hosting/DotvvmPresenter.cs
+++ b/src/Framework/Framework/Hosting/DotvvmPresenter.cs
@@ -200,7 +200,7 @@ public async Task ProcessRequestCore(IDotvvmRequestContext context)
{
// perform the postback
string postData;
- using (var sr = new StreamReader(context.HttpContext.Request.Body))
+ using (var sr = new StreamReader(ReadRequestBody(context.HttpContext.Request, context.Route?.RouteName)))
{
postData = await sr.ReadToEndAsync();
}
@@ -344,7 +344,7 @@ public async Task ProcessStaticCommandRequest(IDotvvmRequestContext context)
try
{
JObject postData;
- using (var jsonReader = new JsonTextReader(new StreamReader(context.HttpContext.Request.Body)))
+ using (var jsonReader = new JsonTextReader(new StreamReader(ReadRequestBody(context.HttpContext.Request, routeName: null))))
{
postData = await JObject.LoadAsync(jsonReader);
}
@@ -548,6 +548,25 @@ Try refreshing the page to get rid of the error.
}
}
+ Stream ReadRequestBody(IHttpRequest request, string? routeName)
+ {
+ request.Headers.TryGetValue("Content-Encoding", out var encodingValue);
+ var encoding = encodingValue?.FirstOrDefault();
+ var limitLengthHelp = "To increase the maximum request size, use the DotvvmConfiguration.Runtime.MaxPostbackSizeBytes option.";
+ if (encoding is null)
+ return LimitLengthStream.LimitLength(request.Body, configuration.Runtime.MaxPostbackSizeBytes, limitLengthHelp);
+ if (encoding is "gzip")
+ {
+ var enabled = routeName is null ? this.configuration.Runtime.CompressPostbacks.IsEnabledForAnyRoute(defaultValue: true) : this.configuration.Runtime.CompressPostbacks.IsEnabledForRoute(routeName, defaultValue: true);
+ if (!enabled)
+ throw new Exception($"Content-Encoding: gzip must be enabled in DotvvmConfiguration.Runtime.CompressPostbacks.");
+ var gzipStream = new System.IO.Compression.GZipStream(request.Body, System.IO.Compression.CompressionMode.Decompress);
+ return LimitLengthStream.LimitLength(gzipStream, configuration.Runtime.MaxPostbackSizeBytes, limitLengthHelp);
+ }
+ else
+ throw new Exception($"Unsupported Content-Encoding {encoding}");
+ }
+
[Obsolete("Use context.RequestType == DotvvmRequestType.StaticCommand")]
public static bool DetermineIsStaticCommand(IDotvvmRequestContext context) =>
context.RequestType == DotvvmRequestType.StaticCommand;
diff --git a/src/Framework/Framework/Resources/Scripts/dotvvm-base.ts b/src/Framework/Framework/Resources/Scripts/dotvvm-base.ts
index be6158b450..6abad6881b 100644
--- a/src/Framework/Framework/Resources/Scripts/dotvvm-base.ts
+++ b/src/Framework/Framework/Resources/Scripts/dotvvm-base.ts
@@ -10,6 +10,10 @@ import { replaceTypeInfo } from './metadata/typeMap'
import { StateManager } from './state-manager'
+export const options = {
+ compressPOST: true
+}
+
type DotvvmCoreState = {
_culture: string
_viewModelCache?: any
diff --git a/src/Framework/Framework/Resources/Scripts/dotvvm-root.ts b/src/Framework/Framework/Resources/Scripts/dotvvm-root.ts
index 9b8fe16ad1..e8efaaa2ba 100644
--- a/src/Framework/Framework/Resources/Scripts/dotvvm-root.ts
+++ b/src/Framework/Framework/Resources/Scripts/dotvvm-root.ts
@@ -1,4 +1,4 @@
-import { initCore, getViewModel, getViewModelObservable, initBindings, getCulture, getState, getStateManager } from "./dotvvm-base"
+import { initCore, getViewModel, getViewModelObservable, initBindings, getCulture, getState, getStateManager, options } from "./dotvvm-base"
import * as events from './events'
import * as spa from "./spa/spa"
import * as validation from './validation/validation'
@@ -121,6 +121,7 @@ const dotvvmExports = {
logPostBackScriptError,
level
},
+ options,
translations: translations as any,
StateManager,
DotvvmEvent,
diff --git a/src/Framework/Framework/Resources/Scripts/postback/http.ts b/src/Framework/Framework/Resources/Scripts/postback/http.ts
index 0acf8d3a90..fb3d98ad3d 100644
--- a/src/Framework/Framework/Resources/Scripts/postback/http.ts
+++ b/src/Framework/Framework/Resources/Scripts/postback/http.ts
@@ -1,4 +1,4 @@
-import { getVirtualDirectory, getViewModel, getState, getStateManager } from '../dotvvm-base';
+import { getVirtualDirectory, getViewModel, getState, getStateManager, options } from '../dotvvm-base';
import { DotvvmPostbackError } from '../shared-classes';
import { logInfoVerbose, logWarning } from '../utils/logging';
import { keys } from '../utils/objects';
@@ -25,6 +25,10 @@ export async function postJSON(url: string, postData: any, signal: AbortSigna
headers.append('Content-Type', 'application/json');
headers.append('X-DotVVM-PostBack', 'true');
appendAdditionalHeaders(headers, additionalHeaders);
+ if (postData.length > 1000 && options.compressPOST) {
+ postData = await compressString(postData)
+ headers.append('Content-Encoding', 'gzip')
+ }
return await fetchJson(url, { body: postData, headers: headers, method: "POST", signal });
}
@@ -103,3 +107,12 @@ function appendAdditionalHeaders(headers: Headers, additionalHeaders?: { [key: s
}
}
}
+
+function compressString(data: string) {
+ if (!window.CompressionStream) {
+ return data
+ }
+ const blob = new Blob([data], { type: 'text/plain' })
+ const stream = blob.stream().pipeThrough(new CompressionStream('gzip'))
+ return new Response(stream).blob()
+}
diff --git a/src/Framework/Framework/Utils/LimitLengthStream.cs b/src/Framework/Framework/Utils/LimitLengthStream.cs
new file mode 100644
index 0000000000..6143872b2e
--- /dev/null
+++ b/src/Framework/Framework/Utils/LimitLengthStream.cs
@@ -0,0 +1,96 @@
+using System;
+using System.IO;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace DotVVM.Framework.Utils
+{
+ internal class LimitLengthStream : Stream
+ {
+ private readonly Stream innerStream;
+ private readonly long maxLength;
+ private readonly string comment;
+ private long position;
+
+ public LimitLengthStream(Stream innerStream, long maxLength, string errorComment)
+ {
+ this.innerStream = innerStream;
+ this.maxLength = maxLength;
+ this.comment = errorComment;
+ }
+
+ private void MovePosition(long offset)
+ {
+ position += offset;
+ if (position > maxLength)
+ throw new InvalidOperationException($"The stream is limited to {maxLength} bytes: {comment}");
+ }
+
+ public long RemainingAllowedLength => maxLength - position;
+
+
+ public override bool CanRead => innerStream.CanRead;
+
+ public override bool CanSeek => false;
+
+ public override bool CanWrite => false;
+
+ public override long Length => innerStream.Length;
+
+ public override long Position
+ {
+ get => innerStream.Position;
+ set => throw new NotImplementedException();
+ }
+
+ public override void Flush() => innerStream.Flush();
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ var read = innerStream.Read(buffer, offset, (int)Math.Min(count, RemainingAllowedLength + 1));
+ MovePosition(read);
+ return read;
+ }
+
+ public override async Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)
+ {
+ var read = await innerStream.ReadAsync(buffer, offset, (int)Math.Min(count, RemainingAllowedLength + 1), cancellationToken);
+ MovePosition(read);
+ return read;
+ }
+#if DotNetCore
+ public override int Read(Span buffer)
+ {
+ var read = innerStream.Read(buffer.Slice(0, (int)Math.Min(buffer.Length, RemainingAllowedLength + 1)));
+ MovePosition(read);
+ return read;
+ }
+
+ public override async ValueTask ReadAsync(Memory buffer, CancellationToken cancellationToken = default)
+ {
+ var read = await innerStream.ReadAsync(buffer.Slice(0, (int)Math.Min(buffer.Length, RemainingAllowedLength + 1)), cancellationToken);
+ MovePosition(read);
+ return read;
+ }
+#endif
+ public override long Seek(long offset, SeekOrigin origin) => throw new System.NotImplementedException();
+ public override void SetLength(long value) => throw new System.NotImplementedException();
+ public override void Write(byte[] buffer, int offset, int count) => throw new System.NotImplementedException();
+
+ public static Stream LimitLength(Stream s, long maxLength, string errorComment)
+ {
+ if (maxLength < 0 || maxLength == long.MaxValue)
+ return s;
+
+ if (s.CanSeek)
+ {
+ if (s.Length > maxLength)
+ throw new InvalidOperationException($"The stream is limited to {maxLength} bytes: {errorComment}");
+ return s;
+ }
+ else
+ {
+ return new LimitLengthStream(s, maxLength, errorComment);
+ }
+ }
+ }
+}
diff --git a/src/Framework/Framework/build.js b/src/Framework/Framework/build.js
index c4aaa4476d..3ff35cfece 100644
--- a/src/Framework/Framework/build.js
+++ b/src/Framework/Framework/build.js
@@ -11,8 +11,8 @@ async function build({ debug, spa, output, input = "dotvvm-root.ts" }) {
entryPoints: [`./Resources/Scripts/${input}`],
outfile: `./obj/javascript/${output}/dotvvm-root.js`,
define: {
- "compileConstants.isSpa": spa,
- "compileConstants.debug": debug,
+ "compileConstants.isSpa": String(spa),
+ "compileConstants.debug": String(debug),
},
target: [
'es2020'
diff --git a/src/Framework/Framework/package.json b/src/Framework/Framework/package.json
index da5367c90c..562ebd258a 100644
--- a/src/Framework/Framework/package.json
+++ b/src/Framework/Framework/package.json
@@ -2,9 +2,10 @@
"license": "Apache-2.0",
"packageManager": "yarn@3.1.1",
"devDependencies": {
- "@types/jest": "26.0.14",
+ "@types/jest": "29.0.0",
"@types/knockout": "^3.4.72",
- "esbuild": "^0.14.39",
+ "@types/node": "20.11.5",
+ "esbuild": "^0.19.11",
"fast-check": "2.5.0",
"jest": "26.5.3",
"jest-github-actions-reporter": "^1.0.3",
@@ -12,8 +13,8 @@
"promise": "8.1.0",
"symbol-es6": "^0.1.2",
"systemjs": "6.7.1",
- "ts-jest": "26.4.1",
- "typescript": "4.7.4"
+ "ts-jest": "29.1.1",
+ "typescript": "5.3.3"
},
"scripts": {
"build": "node ./build.js",
diff --git a/src/Framework/Framework/tsconfig.json b/src/Framework/Framework/tsconfig.json
index 0353d4f4c3..63b83162f8 100644
--- a/src/Framework/Framework/tsconfig.json
+++ b/src/Framework/Framework/tsconfig.json
@@ -8,11 +8,11 @@
"removeComments": false,
"sourceMap": true,
"inlineSources": true,
- "target": "ES2018",
+ "target": "ES2020",
"declaration": true,
"moduleResolution": "node",
"strictNullChecks": true,
- "lib": [ "dom", "es2015.promise", "es5", "es6" ],
+ "lib": [ "dom", "ES2020" ],
"module": "ES2015"
},
"exclude": ["obj/**", "Resources/Scripts/tests", "node_modules/**"],
diff --git a/src/Framework/Framework/yarn.lock b/src/Framework/Framework/yarn.lock
index 74be957b9e..0cbceb173f 100644
--- a/src/Framework/Framework/yarn.lock
+++ b/src/Framework/Framework/yarn.lock
@@ -41,6 +41,16 @@ __metadata:
languageName: node
linkType: hard
+"@babel/code-frame@npm:^7.12.13":
+ version: 7.23.5
+ resolution: "@babel/code-frame@npm:7.23.5"
+ dependencies:
+ "@babel/highlight": ^7.23.4
+ chalk: ^2.4.2
+ checksum: d90981fdf56a2824a9b14d19a4c0e8db93633fd488c772624b4e83e0ceac6039a27cd298a247c3214faa952bf803ba23696172ae7e7235f3b97f43ba278c569a
+ languageName: node
+ linkType: hard
+
"@babel/code-frame@npm:^7.22.13":
version: 7.22.13
resolution: "@babel/code-frame@npm:7.22.13"
@@ -273,6 +283,17 @@ __metadata:
languageName: node
linkType: hard
+"@babel/highlight@npm:^7.23.4":
+ version: 7.23.4
+ resolution: "@babel/highlight@npm:7.23.4"
+ dependencies:
+ "@babel/helper-validator-identifier": ^7.22.20
+ chalk: ^2.4.2
+ js-tokens: ^4.0.0
+ checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89
+ languageName: node
+ linkType: hard
+
"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.16.7, @babel/parser@npm:^7.17.3":
version: 7.17.3
resolution: "@babel/parser@npm:7.17.3"
@@ -503,6 +524,167 @@ __metadata:
languageName: node
linkType: hard
+"@esbuild/aix-ppc64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/aix-ppc64@npm:0.19.11"
+ conditions: os=aix & cpu=ppc64
+ languageName: node
+ linkType: hard
+
+"@esbuild/android-arm64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/android-arm64@npm:0.19.11"
+ conditions: os=android & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/android-arm@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/android-arm@npm:0.19.11"
+ conditions: os=android & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@esbuild/android-x64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/android-x64@npm:0.19.11"
+ conditions: os=android & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/darwin-arm64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/darwin-arm64@npm:0.19.11"
+ conditions: os=darwin & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/darwin-x64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/darwin-x64@npm:0.19.11"
+ conditions: os=darwin & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/freebsd-arm64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/freebsd-arm64@npm:0.19.11"
+ conditions: os=freebsd & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/freebsd-x64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/freebsd-x64@npm:0.19.11"
+ conditions: os=freebsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-arm64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/linux-arm64@npm:0.19.11"
+ conditions: os=linux & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-arm@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/linux-arm@npm:0.19.11"
+ conditions: os=linux & cpu=arm
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-ia32@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/linux-ia32@npm:0.19.11"
+ conditions: os=linux & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-loong64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/linux-loong64@npm:0.19.11"
+ conditions: os=linux & cpu=loong64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-mips64el@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/linux-mips64el@npm:0.19.11"
+ conditions: os=linux & cpu=mips64el
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-ppc64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/linux-ppc64@npm:0.19.11"
+ conditions: os=linux & cpu=ppc64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-riscv64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/linux-riscv64@npm:0.19.11"
+ conditions: os=linux & cpu=riscv64
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-s390x@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/linux-s390x@npm:0.19.11"
+ conditions: os=linux & cpu=s390x
+ languageName: node
+ linkType: hard
+
+"@esbuild/linux-x64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/linux-x64@npm:0.19.11"
+ conditions: os=linux & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/netbsd-x64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/netbsd-x64@npm:0.19.11"
+ conditions: os=netbsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/openbsd-x64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/openbsd-x64@npm:0.19.11"
+ conditions: os=openbsd & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/sunos-x64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/sunos-x64@npm:0.19.11"
+ conditions: os=sunos & cpu=x64
+ languageName: node
+ linkType: hard
+
+"@esbuild/win32-arm64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/win32-arm64@npm:0.19.11"
+ conditions: os=win32 & cpu=arm64
+ languageName: node
+ linkType: hard
+
+"@esbuild/win32-ia32@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/win32-ia32@npm:0.19.11"
+ conditions: os=win32 & cpu=ia32
+ languageName: node
+ linkType: hard
+
+"@esbuild/win32-x64@npm:0.19.11":
+ version: 0.19.11
+ resolution: "@esbuild/win32-x64@npm:0.19.11"
+ conditions: os=win32 & cpu=x64
+ languageName: node
+ linkType: hard
+
"@gar/promisify@npm:^1.0.1":
version: 1.1.3
resolution: "@gar/promisify@npm:1.1.3"
@@ -592,6 +774,15 @@ __metadata:
languageName: node
linkType: hard
+"@jest/expect-utils@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/expect-utils@npm:29.7.0"
+ dependencies:
+ jest-get-type: ^29.6.3
+ checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed
+ languageName: node
+ linkType: hard
+
"@jest/fake-timers@npm:^26.6.2":
version: 26.6.2
resolution: "@jest/fake-timers@npm:26.6.2"
@@ -653,6 +844,15 @@ __metadata:
languageName: node
linkType: hard
+"@jest/schemas@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/schemas@npm:29.6.3"
+ dependencies:
+ "@sinclair/typebox": ^0.27.8
+ checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93
+ languageName: node
+ linkType: hard
+
"@jest/source-map@npm:^26.6.2":
version: 26.6.2
resolution: "@jest/source-map@npm:26.6.2"
@@ -712,28 +912,30 @@ __metadata:
languageName: node
linkType: hard
-"@jest/types@npm:^25.5.0":
- version: 25.5.0
- resolution: "@jest/types@npm:25.5.0"
+"@jest/types@npm:^26.6.2":
+ version: 26.6.2
+ resolution: "@jest/types@npm:26.6.2"
dependencies:
"@types/istanbul-lib-coverage": ^2.0.0
- "@types/istanbul-reports": ^1.1.1
+ "@types/istanbul-reports": ^3.0.0
+ "@types/node": "*"
"@types/yargs": ^15.0.0
- chalk: ^3.0.0
- checksum: 785b67521a2c54f290ad4b53f49fec6b14fa25828bf26a838f7bbe08dd42122f27f71a620ea9a33286346786e9b120dd370abf589e6ef8c5fde9dc56906880b1
+ chalk: ^4.0.0
+ checksum: a0bd3d2f22f26ddb23f41fddf6e6a30bf4fab2ce79ec1cb6ce6fdfaf90a72e00f4c71da91ec61e13db3b10c41de22cf49d07c57ff2b59171d64b29f909c1d8d6
languageName: node
linkType: hard
-"@jest/types@npm:^26.6.2":
- version: 26.6.2
- resolution: "@jest/types@npm:26.6.2"
+"@jest/types@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/types@npm:29.6.3"
dependencies:
+ "@jest/schemas": ^29.6.3
"@types/istanbul-lib-coverage": ^2.0.0
"@types/istanbul-reports": ^3.0.0
"@types/node": "*"
- "@types/yargs": ^15.0.0
+ "@types/yargs": ^17.0.8
chalk: ^4.0.0
- checksum: a0bd3d2f22f26ddb23f41fddf6e6a30bf4fab2ce79ec1cb6ce6fdfaf90a72e00f4c71da91ec61e13db3b10c41de22cf49d07c57ff2b59171d64b29f909c1d8d6
+ checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc
languageName: node
linkType: hard
@@ -823,6 +1025,13 @@ __metadata:
languageName: node
linkType: hard
+"@sinclair/typebox@npm:^0.27.8":
+ version: 0.27.8
+ resolution: "@sinclair/typebox@npm:0.27.8"
+ checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1
+ languageName: node
+ linkType: hard
+
"@sinonjs/commons@npm:^1.7.0":
version: 1.8.3
resolution: "@sinonjs/commons@npm:1.8.3"
@@ -914,16 +1123,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/istanbul-reports@npm:^1.1.1":
- version: 1.1.2
- resolution: "@types/istanbul-reports@npm:1.1.2"
- dependencies:
- "@types/istanbul-lib-coverage": "*"
- "@types/istanbul-lib-report": "*"
- checksum: 00866e815d1e68d0a590d691506937b79d8d65ad8eab5ed34dbfee66136c7c0f4ea65327d32046d5fe469f22abea2b294987591dc66365ebc3991f7e413b2d78
- languageName: node
- linkType: hard
-
"@types/istanbul-reports@npm:^3.0.0":
version: 3.0.1
resolution: "@types/istanbul-reports@npm:3.0.1"
@@ -933,23 +1132,13 @@ __metadata:
languageName: node
linkType: hard
-"@types/jest@npm:26.0.14":
- version: 26.0.14
- resolution: "@types/jest@npm:26.0.14"
- dependencies:
- jest-diff: ^25.2.1
- pretty-format: ^25.2.1
- checksum: 9d9c4bd3ae68c95b71c22b6d340d6174e9c9d017ffe15fc66dae29dc0486f7d862706d6450a1bff1dcc26916c445d527f98233c319eef1ec78c36c7ab6195b12
- languageName: node
- linkType: hard
-
-"@types/jest@npm:26.x":
- version: 26.0.24
- resolution: "@types/jest@npm:26.0.24"
+"@types/jest@npm:29.0.0":
+ version: 29.0.0
+ resolution: "@types/jest@npm:29.0.0"
dependencies:
- jest-diff: ^26.0.0
- pretty-format: ^26.0.0
- checksum: ae39675412f08d884926254e9b12bfd2b5a4e4d204c94d3148cb942174a474930d0c60540133c968f22241d4712b7940c96cbc883096eb326a4d5b206fb78bd0
+ expect: ^29.0.0
+ pretty-format: ^29.0.0
+ checksum: b20c4b38c7c963862d82c21c0a1ae2b96015afb1511c835da43e8fd53659ca884f8103a2159be2ce74d2888472a1ac93d20d08ec1ac0970385cbb74c46d47585
languageName: node
linkType: hard
@@ -967,6 +1156,15 @@ __metadata:
languageName: node
linkType: hard
+"@types/node@npm:20.11.5":
+ version: 20.11.5
+ resolution: "@types/node@npm:20.11.5"
+ dependencies:
+ undici-types: ~5.26.4
+ checksum: a542727de1334ae20a3ca034b0ecf4b464a57ca01efc4f9cf43bd9ab93896125ab3c2de060ecd8f6ae23b86c6bf3463f681b643e69c032c6a662d376c98a6092
+ languageName: node
+ linkType: hard
+
"@types/normalize-package-data@npm:^2.4.0":
version: 2.4.1
resolution: "@types/normalize-package-data@npm:2.4.1"
@@ -1004,6 +1202,15 @@ __metadata:
languageName: node
linkType: hard
+"@types/yargs@npm:^17.0.8":
+ version: 17.0.32
+ resolution: "@types/yargs@npm:17.0.32"
+ dependencies:
+ "@types/yargs-parser": "*"
+ checksum: 4505bdebe8716ff383640c6e928f855b5d337cb3c68c81f7249fc6b983d0aa48de3eee26062b84f37e0d75a5797bc745e0c6e76f42f81771252a758c638f36ba
+ languageName: node
+ linkType: hard
+
"abab@npm:^2.0.3, abab@npm:^2.0.5":
version: 2.0.5
resolution: "abab@npm:2.0.5"
@@ -1117,6 +1324,13 @@ __metadata:
languageName: node
linkType: hard
+"ansi-styles@npm:^5.0.0":
+ version: 5.2.0
+ resolution: "ansi-styles@npm:5.2.0"
+ checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469
+ languageName: node
+ linkType: hard
+
"anymatch@npm:^2.0.0":
version: 2.0.0
resolution: "anymatch@npm:2.0.0"
@@ -1348,7 +1562,7 @@ __metadata:
languageName: node
linkType: hard
-"braces@npm:^3.0.1":
+"braces@npm:^3.0.1, braces@npm:^3.0.2":
version: 3.0.2
resolution: "braces@npm:3.0.2"
dependencies:
@@ -1397,7 +1611,7 @@ __metadata:
languageName: node
linkType: hard
-"buffer-from@npm:1.x, buffer-from@npm:^1.0.0":
+"buffer-from@npm:^1.0.0":
version: 1.1.2
resolution: "buffer-from@npm:1.1.2"
checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb
@@ -1495,16 +1709,6 @@ __metadata:
languageName: node
linkType: hard
-"chalk@npm:^3.0.0":
- version: 3.0.0
- resolution: "chalk@npm:3.0.0"
- dependencies:
- ansi-styles: ^4.1.0
- supports-color: ^7.1.0
- checksum: 8e3ddf3981c4da405ddbd7d9c8d91944ddf6e33d6837756979f7840a29272a69a5189ecae0ff84006750d6d1e92368d413335eab4db5476db6e6703a1d1e0505
- languageName: node
- linkType: hard
-
"chalk@npm:^4.0.0":
version: 4.1.2
resolution: "chalk@npm:4.1.2"
@@ -1536,6 +1740,13 @@ __metadata:
languageName: node
linkType: hard
+"ci-info@npm:^3.2.0":
+ version: 3.9.0
+ resolution: "ci-info@npm:3.9.0"
+ checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87
+ languageName: node
+ linkType: hard
+
"cjs-module-lexer@npm:^0.6.0":
version: 0.6.0
resolution: "cjs-module-lexer@npm:0.6.0"
@@ -1854,13 +2065,6 @@ __metadata:
languageName: node
linkType: hard
-"diff-sequences@npm:^25.2.6":
- version: 25.2.6
- resolution: "diff-sequences@npm:25.2.6"
- checksum: 082c1eb691cc8bffdeca10e1df561fe85c3786420c135d05d5642fdada7dafbc3f77372a67cc3aff6313c272d76d646df768554873d897cf1d15a63dd232e7aa
- languageName: node
- linkType: hard
-
"diff-sequences@npm:^26.6.2":
version: 26.6.2
resolution: "diff-sequences@npm:26.6.2"
@@ -1868,6 +2072,13 @@ __metadata:
languageName: node
linkType: hard
+"diff-sequences@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "diff-sequences@npm:29.6.3"
+ checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa
+ languageName: node
+ linkType: hard
+
"domexception@npm:^2.0.1":
version: 2.0.1
resolution: "domexception@npm:2.0.1"
@@ -1939,214 +2150,83 @@ __metadata:
languageName: node
linkType: hard
-"esbuild-android-64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-android-64@npm:0.14.39"
- conditions: os=android & cpu=x64
- languageName: node
- linkType: hard
-
-"esbuild-android-arm64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-android-arm64@npm:0.14.39"
- conditions: os=android & cpu=arm64
- languageName: node
- linkType: hard
-
-"esbuild-darwin-64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-darwin-64@npm:0.14.39"
- conditions: os=darwin & cpu=x64
- languageName: node
- linkType: hard
-
-"esbuild-darwin-arm64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-darwin-arm64@npm:0.14.39"
- conditions: os=darwin & cpu=arm64
- languageName: node
- linkType: hard
-
-"esbuild-freebsd-64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-freebsd-64@npm:0.14.39"
- conditions: os=freebsd & cpu=x64
- languageName: node
- linkType: hard
-
-"esbuild-freebsd-arm64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-freebsd-arm64@npm:0.14.39"
- conditions: os=freebsd & cpu=arm64
- languageName: node
- linkType: hard
-
-"esbuild-linux-32@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-linux-32@npm:0.14.39"
- conditions: os=linux & cpu=ia32
- languageName: node
- linkType: hard
-
-"esbuild-linux-64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-linux-64@npm:0.14.39"
- conditions: os=linux & cpu=x64
- languageName: node
- linkType: hard
-
-"esbuild-linux-arm64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-linux-arm64@npm:0.14.39"
- conditions: os=linux & cpu=arm64
- languageName: node
- linkType: hard
-
-"esbuild-linux-arm@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-linux-arm@npm:0.14.39"
- conditions: os=linux & cpu=arm
- languageName: node
- linkType: hard
-
-"esbuild-linux-mips64le@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-linux-mips64le@npm:0.14.39"
- conditions: os=linux & cpu=mips64el
- languageName: node
- linkType: hard
-
-"esbuild-linux-ppc64le@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-linux-ppc64le@npm:0.14.39"
- conditions: os=linux & cpu=ppc64
- languageName: node
- linkType: hard
-
-"esbuild-linux-riscv64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-linux-riscv64@npm:0.14.39"
- conditions: os=linux & cpu=riscv64
- languageName: node
- linkType: hard
-
-"esbuild-linux-s390x@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-linux-s390x@npm:0.14.39"
- conditions: os=linux & cpu=s390x
- languageName: node
- linkType: hard
-
-"esbuild-netbsd-64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-netbsd-64@npm:0.14.39"
- conditions: os=netbsd & cpu=x64
- languageName: node
- linkType: hard
-
-"esbuild-openbsd-64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-openbsd-64@npm:0.14.39"
- conditions: os=openbsd & cpu=x64
- languageName: node
- linkType: hard
-
-"esbuild-sunos-64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-sunos-64@npm:0.14.39"
- conditions: os=sunos & cpu=x64
- languageName: node
- linkType: hard
-
-"esbuild-windows-32@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-windows-32@npm:0.14.39"
- conditions: os=win32 & cpu=ia32
- languageName: node
- linkType: hard
-
-"esbuild-windows-64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-windows-64@npm:0.14.39"
- conditions: os=win32 & cpu=x64
- languageName: node
- linkType: hard
-
-"esbuild-windows-arm64@npm:0.14.39":
- version: 0.14.39
- resolution: "esbuild-windows-arm64@npm:0.14.39"
- conditions: os=win32 & cpu=arm64
- languageName: node
- linkType: hard
-
-"esbuild@npm:^0.14.39":
- version: 0.14.39
- resolution: "esbuild@npm:0.14.39"
- dependencies:
- esbuild-android-64: 0.14.39
- esbuild-android-arm64: 0.14.39
- esbuild-darwin-64: 0.14.39
- esbuild-darwin-arm64: 0.14.39
- esbuild-freebsd-64: 0.14.39
- esbuild-freebsd-arm64: 0.14.39
- esbuild-linux-32: 0.14.39
- esbuild-linux-64: 0.14.39
- esbuild-linux-arm: 0.14.39
- esbuild-linux-arm64: 0.14.39
- esbuild-linux-mips64le: 0.14.39
- esbuild-linux-ppc64le: 0.14.39
- esbuild-linux-riscv64: 0.14.39
- esbuild-linux-s390x: 0.14.39
- esbuild-netbsd-64: 0.14.39
- esbuild-openbsd-64: 0.14.39
- esbuild-sunos-64: 0.14.39
- esbuild-windows-32: 0.14.39
- esbuild-windows-64: 0.14.39
- esbuild-windows-arm64: 0.14.39
+"esbuild@npm:^0.19.11":
+ version: 0.19.11
+ resolution: "esbuild@npm:0.19.11"
+ dependencies:
+ "@esbuild/aix-ppc64": 0.19.11
+ "@esbuild/android-arm": 0.19.11
+ "@esbuild/android-arm64": 0.19.11
+ "@esbuild/android-x64": 0.19.11
+ "@esbuild/darwin-arm64": 0.19.11
+ "@esbuild/darwin-x64": 0.19.11
+ "@esbuild/freebsd-arm64": 0.19.11
+ "@esbuild/freebsd-x64": 0.19.11
+ "@esbuild/linux-arm": 0.19.11
+ "@esbuild/linux-arm64": 0.19.11
+ "@esbuild/linux-ia32": 0.19.11
+ "@esbuild/linux-loong64": 0.19.11
+ "@esbuild/linux-mips64el": 0.19.11
+ "@esbuild/linux-ppc64": 0.19.11
+ "@esbuild/linux-riscv64": 0.19.11
+ "@esbuild/linux-s390x": 0.19.11
+ "@esbuild/linux-x64": 0.19.11
+ "@esbuild/netbsd-x64": 0.19.11
+ "@esbuild/openbsd-x64": 0.19.11
+ "@esbuild/sunos-x64": 0.19.11
+ "@esbuild/win32-arm64": 0.19.11
+ "@esbuild/win32-ia32": 0.19.11
+ "@esbuild/win32-x64": 0.19.11
dependenciesMeta:
- esbuild-android-64:
+ "@esbuild/aix-ppc64":
+ optional: true
+ "@esbuild/android-arm":
+ optional: true
+ "@esbuild/android-arm64":
optional: true
- esbuild-android-arm64:
+ "@esbuild/android-x64":
optional: true
- esbuild-darwin-64:
+ "@esbuild/darwin-arm64":
optional: true
- esbuild-darwin-arm64:
+ "@esbuild/darwin-x64":
optional: true
- esbuild-freebsd-64:
+ "@esbuild/freebsd-arm64":
optional: true
- esbuild-freebsd-arm64:
+ "@esbuild/freebsd-x64":
optional: true
- esbuild-linux-32:
+ "@esbuild/linux-arm":
optional: true
- esbuild-linux-64:
+ "@esbuild/linux-arm64":
optional: true
- esbuild-linux-arm:
+ "@esbuild/linux-ia32":
optional: true
- esbuild-linux-arm64:
+ "@esbuild/linux-loong64":
optional: true
- esbuild-linux-mips64le:
+ "@esbuild/linux-mips64el":
optional: true
- esbuild-linux-ppc64le:
+ "@esbuild/linux-ppc64":
optional: true
- esbuild-linux-riscv64:
+ "@esbuild/linux-riscv64":
optional: true
- esbuild-linux-s390x:
+ "@esbuild/linux-s390x":
optional: true
- esbuild-netbsd-64:
+ "@esbuild/linux-x64":
optional: true
- esbuild-openbsd-64:
+ "@esbuild/netbsd-x64":
optional: true
- esbuild-sunos-64:
+ "@esbuild/openbsd-x64":
optional: true
- esbuild-windows-32:
+ "@esbuild/sunos-x64":
optional: true
- esbuild-windows-64:
+ "@esbuild/win32-arm64":
optional: true
- esbuild-windows-arm64:
+ "@esbuild/win32-ia32":
+ optional: true
+ "@esbuild/win32-x64":
optional: true
bin:
esbuild: bin/esbuild
- checksum: 400d97fb3ede3bdd6a50f28fd7d18d9a009a46dcf59c3988b87842f421ae36fa9a3c81bb0acd6ab07059143bc4b5f0c429f8a4129d1dc687e00aa497eb10f77b
+ checksum: ae949a796d1d06b55275ae7491ce137857468f69a93d8cc9c0943d2a701ac54e14dbb250a2ba56f2ad98283669578f1ec3bd85a4681910a5ff29a2470c3bd62c
languageName: node
linkType: hard
@@ -2289,6 +2369,19 @@ __metadata:
languageName: node
linkType: hard
+"expect@npm:^29.0.0":
+ version: 29.7.0
+ resolution: "expect@npm:29.7.0"
+ dependencies:
+ "@jest/expect-utils": ^29.7.0
+ jest-get-type: ^29.6.3
+ jest-matcher-utils: ^29.7.0
+ jest-message-util: ^29.7.0
+ jest-util: ^29.7.0
+ checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c
+ languageName: node
+ linkType: hard
+
"extend-shallow@npm:^2.0.1":
version: 2.0.1
resolution: "extend-shallow@npm:2.0.1"
@@ -2547,6 +2640,13 @@ __metadata:
languageName: node
linkType: hard
+"graceful-fs@npm:^4.2.9":
+ version: 4.2.11
+ resolution: "graceful-fs@npm:4.2.11"
+ checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7
+ languageName: node
+ linkType: hard
+
"growly@npm:^1.3.0":
version: 1.3.0
resolution: "growly@npm:1.3.0"
@@ -3131,19 +3231,7 @@ __metadata:
languageName: node
linkType: hard
-"jest-diff@npm:^25.2.1":
- version: 25.5.0
- resolution: "jest-diff@npm:25.5.0"
- dependencies:
- chalk: ^3.0.0
- diff-sequences: ^25.2.6
- jest-get-type: ^25.2.6
- pretty-format: ^25.5.0
- checksum: b7e9739b0fc2ba89a044e6cf4dd5a53f4bb00800a153cbc6eb9b4e91da3241bf0cb2ced007fd220182f41be4bbb7dd645b7c8b9fdb299b2720056209d7d56960
- languageName: node
- linkType: hard
-
-"jest-diff@npm:^26.0.0, jest-diff@npm:^26.6.2":
+"jest-diff@npm:^26.6.2":
version: 26.6.2
resolution: "jest-diff@npm:26.6.2"
dependencies:
@@ -3155,6 +3243,18 @@ __metadata:
languageName: node
linkType: hard
+"jest-diff@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-diff@npm:29.7.0"
+ dependencies:
+ chalk: ^4.0.0
+ diff-sequences: ^29.6.3
+ jest-get-type: ^29.6.3
+ pretty-format: ^29.7.0
+ checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77
+ languageName: node
+ linkType: hard
+
"jest-docblock@npm:^26.0.0":
version: 26.0.0
resolution: "jest-docblock@npm:26.0.0"
@@ -3206,13 +3306,6 @@ __metadata:
languageName: node
linkType: hard
-"jest-get-type@npm:^25.2.6":
- version: 25.2.6
- resolution: "jest-get-type@npm:25.2.6"
- checksum: d1f59027b0baa6b8a6f4b3f900de1a77714647351907981ea57c16340e6a58a9c702b580055331af25ee3872768f1241c0616de9777a63e4eb32fc409dcbf9ac
- languageName: node
- linkType: hard
-
"jest-get-type@npm:^26.3.0":
version: 26.3.0
resolution: "jest-get-type@npm:26.3.0"
@@ -3220,6 +3313,13 @@ __metadata:
languageName: node
linkType: hard
+"jest-get-type@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "jest-get-type@npm:29.6.3"
+ checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205
+ languageName: node
+ linkType: hard
+
"jest-github-actions-reporter@npm:^1.0.3":
version: 1.0.3
resolution: "jest-github-actions-reporter@npm:1.0.3"
@@ -3314,6 +3414,18 @@ __metadata:
languageName: node
linkType: hard
+"jest-matcher-utils@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-matcher-utils@npm:29.7.0"
+ dependencies:
+ chalk: ^4.0.0
+ jest-diff: ^29.7.0
+ jest-get-type: ^29.6.3
+ pretty-format: ^29.7.0
+ checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd
+ languageName: node
+ linkType: hard
+
"jest-message-util@npm:^26.6.2":
version: 26.6.2
resolution: "jest-message-util@npm:26.6.2"
@@ -3331,6 +3443,23 @@ __metadata:
languageName: node
linkType: hard
+"jest-message-util@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-message-util@npm:29.7.0"
+ dependencies:
+ "@babel/code-frame": ^7.12.13
+ "@jest/types": ^29.6.3
+ "@types/stack-utils": ^2.0.0
+ chalk: ^4.0.0
+ graceful-fs: ^4.2.9
+ micromatch: ^4.0.4
+ pretty-format: ^29.7.0
+ slash: ^3.0.0
+ stack-utils: ^2.0.3
+ checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930
+ languageName: node
+ linkType: hard
+
"jest-mock@npm:^26.6.2":
version: 26.6.2
resolution: "jest-mock@npm:26.6.2"
@@ -3486,7 +3615,7 @@ __metadata:
languageName: node
linkType: hard
-"jest-util@npm:^26.1.0, jest-util@npm:^26.6.2":
+"jest-util@npm:^26.6.2":
version: 26.6.2
resolution: "jest-util@npm:26.6.2"
dependencies:
@@ -3500,6 +3629,20 @@ __metadata:
languageName: node
linkType: hard
+"jest-util@npm:^29.0.0, jest-util@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-util@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ chalk: ^4.0.0
+ ci-info: ^3.2.0
+ graceful-fs: ^4.2.9
+ picomatch: ^2.2.3
+ checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca
+ languageName: node
+ linkType: hard
+
"jest-validate@npm:^26.6.2":
version: 26.6.2
resolution: "jest-validate@npm:26.6.2"
@@ -3628,7 +3771,7 @@ __metadata:
languageName: node
linkType: hard
-"json5@npm:2.x, json5@npm:^2.1.2":
+"json5@npm:^2.1.2, json5@npm:^2.2.3":
version: 2.2.3
resolution: "json5@npm:2.2.3"
bin:
@@ -3835,6 +3978,16 @@ __metadata:
languageName: node
linkType: hard
+"micromatch@npm:^4.0.4":
+ version: 4.0.5
+ resolution: "micromatch@npm:4.0.5"
+ dependencies:
+ braces: ^3.0.2
+ picomatch: ^2.3.1
+ checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc
+ languageName: node
+ linkType: hard
+
"mime-db@npm:1.51.0":
version: 1.51.0
resolution: "mime-db@npm:1.51.0"
@@ -3954,7 +4107,7 @@ __metadata:
languageName: node
linkType: hard
-"mkdirp@npm:1.x, mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4":
+"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4":
version: 1.0.4
resolution: "mkdirp@npm:1.0.4"
bin:
@@ -4325,7 +4478,7 @@ __metadata:
languageName: node
linkType: hard
-"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3":
+"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1":
version: 2.3.1
resolution: "picomatch@npm:2.3.1"
checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf
@@ -4362,19 +4515,7 @@ __metadata:
languageName: node
linkType: hard
-"pretty-format@npm:^25.2.1, pretty-format@npm:^25.5.0":
- version: 25.5.0
- resolution: "pretty-format@npm:25.5.0"
- dependencies:
- "@jest/types": ^25.5.0
- ansi-regex: ^5.0.0
- ansi-styles: ^4.0.0
- react-is: ^16.12.0
- checksum: 76f022d2c911d9733a961467545f5aef2cae892da289fff92ba6a6868a10df4d8ef79794ff791e353f67f0edfa85765240f1e7d552e27c94029ae6af1c95174b
- languageName: node
- linkType: hard
-
-"pretty-format@npm:^26.0.0, pretty-format@npm:^26.6.2":
+"pretty-format@npm:^26.6.2":
version: 26.6.2
resolution: "pretty-format@npm:26.6.2"
dependencies:
@@ -4386,6 +4527,17 @@ __metadata:
languageName: node
linkType: hard
+"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "pretty-format@npm:29.7.0"
+ dependencies:
+ "@jest/schemas": ^29.6.3
+ ansi-styles: ^5.0.0
+ react-is: ^18.0.0
+ checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6
+ languageName: node
+ linkType: hard
+
"promise-inflight@npm:^1.0.1":
version: 1.0.1
resolution: "promise-inflight@npm:1.0.1"
@@ -4460,13 +4612,6 @@ __metadata:
languageName: node
linkType: hard
-"react-is@npm:^16.12.0":
- version: 16.13.1
- resolution: "react-is@npm:16.13.1"
- checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f
- languageName: node
- linkType: hard
-
"react-is@npm:^17.0.1":
version: 17.0.2
resolution: "react-is@npm:17.0.2"
@@ -4474,6 +4619,13 @@ __metadata:
languageName: node
linkType: hard
+"react-is@npm:^18.0.0":
+ version: 18.2.0
+ resolution: "react-is@npm:18.2.0"
+ checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e
+ languageName: node
+ linkType: hard
+
"read-pkg-up@npm:^7.0.1":
version: 7.0.1
resolution: "read-pkg-up@npm:7.0.1"
@@ -4638,9 +4790,10 @@ __metadata:
version: 0.0.0-use.local
resolution: "root-workspace-0b6124@workspace:."
dependencies:
- "@types/jest": 26.0.14
+ "@types/jest": 29.0.0
"@types/knockout": ^3.4.72
- esbuild: ^0.14.39
+ "@types/node": 20.11.5
+ esbuild: ^0.19.11
fast-check: 2.5.0
jest: 26.5.3
jest-github-actions-reporter: ^1.0.3
@@ -4648,8 +4801,8 @@ __metadata:
promise: 8.1.0
symbol-es6: ^0.1.2
systemjs: 6.7.1
- ts-jest: 26.4.1
- typescript: 4.7.4
+ ts-jest: 29.1.1
+ typescript: 5.3.3
languageName: unknown
linkType: soft
@@ -4727,7 +4880,16 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:7.x, semver@npm:^7.3.2, semver@npm:^7.3.5":
+"semver@npm:^6.0.0, semver@npm:^6.3.0":
+ version: 6.3.1
+ resolution: "semver@npm:6.3.1"
+ bin:
+ semver: bin/semver.js
+ checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.3.2, semver@npm:^7.3.5":
version: 7.3.5
resolution: "semver@npm:7.3.5"
dependencies:
@@ -4738,12 +4900,14 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:^6.0.0, semver@npm:^6.3.0":
- version: 6.3.1
- resolution: "semver@npm:6.3.1"
+"semver@npm:^7.5.3":
+ version: 7.5.4
+ resolution: "semver@npm:7.5.4"
+ dependencies:
+ lru-cache: ^6.0.0
bin:
semver: bin/semver.js
- checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2
+ checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3
languageName: node
linkType: hard
@@ -5009,6 +5173,15 @@ __metadata:
languageName: node
linkType: hard
+"stack-utils@npm:^2.0.3":
+ version: 2.0.6
+ resolution: "stack-utils@npm:2.0.6"
+ dependencies:
+ escape-string-regexp: ^2.0.0
+ checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7
+ languageName: node
+ linkType: hard
+
"static-extend@npm:^0.1.1":
version: 0.1.2
resolution: "static-extend@npm:0.1.2"
@@ -5252,27 +5425,36 @@ __metadata:
languageName: node
linkType: hard
-"ts-jest@npm:26.4.1":
- version: 26.4.1
- resolution: "ts-jest@npm:26.4.1"
+"ts-jest@npm:29.1.1":
+ version: 29.1.1
+ resolution: "ts-jest@npm:29.1.1"
dependencies:
- "@types/jest": 26.x
bs-logger: 0.x
- buffer-from: 1.x
fast-json-stable-stringify: 2.x
- jest-util: ^26.1.0
- json5: 2.x
+ jest-util: ^29.0.0
+ json5: ^2.2.3
lodash.memoize: 4.x
make-error: 1.x
- mkdirp: 1.x
- semver: 7.x
- yargs-parser: 20.x
+ semver: ^7.5.3
+ yargs-parser: ^21.0.1
peerDependencies:
- jest: ">=26 <27"
- typescript: ">=3.8 <5.0"
+ "@babel/core": ">=7.0.0-beta.0 <8"
+ "@jest/types": ^29.0.0
+ babel-jest: ^29.0.0
+ jest: ^29.0.0
+ typescript: ">=4.3 <6"
+ peerDependenciesMeta:
+ "@babel/core":
+ optional: true
+ "@jest/types":
+ optional: true
+ babel-jest:
+ optional: true
+ esbuild:
+ optional: true
bin:
ts-jest: cli.js
- checksum: ea9f0ec0f9f931938fbd44467e4c80a2eec4161795a32548dc0349a0f224ad7343ffe4eb7a53e7bc14c5b6427bbc21c7875c8a7c86244b014fd8607ad5404f32
+ checksum: a8c9e284ed4f819526749f6e4dc6421ec666f20ab44d31b0f02b4ed979975f7580b18aea4813172d43e39b29464a71899f8893dd29b06b4a351a3af8ba47b402
languageName: node
linkType: hard
@@ -5329,23 +5511,30 @@ __metadata:
languageName: node
linkType: hard
-"typescript@npm:4.7.4":
- version: 4.7.4
- resolution: "typescript@npm:4.7.4"
+"typescript@npm:5.3.3":
+ version: 5.3.3
+ resolution: "typescript@npm:5.3.3"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
- checksum: 5750181b1cd7e6482c4195825547e70f944114fb47e58e4aa7553e62f11b3f3173766aef9c281783edfd881f7b8299cf35e3ca8caebe73d8464528c907a164df
+ checksum: 2007ccb6e51bbbf6fde0a78099efe04dc1c3dfbdff04ca3b6a8bc717991862b39fd6126c0c3ebf2d2d98ac5e960bcaa873826bb2bb241f14277034148f41f6a2
languageName: node
linkType: hard
-"typescript@patch:typescript@4.7.4#~builtin":
- version: 4.7.4
- resolution: "typescript@patch:typescript@npm%3A4.7.4#~builtin::version=4.7.4&hash=bda367"
+"typescript@patch:typescript@5.3.3#~builtin":
+ version: 5.3.3
+ resolution: "typescript@patch:typescript@npm%3A5.3.3#~builtin::version=5.3.3&hash=bda367"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
- checksum: 96d3030cb01143570567cb4f3a616b10df65f658f0e74e853e77a089a6a954e35c800be7db8b9bfe9a1ae05d9c2897e281359f65e4caa1caf266368e1c4febd3
+ checksum: f61375590b3162599f0f0d5b8737877ac0a7bc52761dbb585d67e7b8753a3a4c42d9a554c4cc929f591ffcf3a2b0602f65ae3ce74714fd5652623a816862b610
+ languageName: node
+ linkType: hard
+
+"undici-types@npm:~5.26.4":
+ version: 5.26.5
+ resolution: "undici-types@npm:5.26.5"
+ checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487
languageName: node
linkType: hard
@@ -5650,13 +5839,6 @@ __metadata:
languageName: node
linkType: hard
-"yargs-parser@npm:20.x":
- version: 20.2.9
- resolution: "yargs-parser@npm:20.2.9"
- checksum: 8bb69015f2b0ff9e17b2c8e6bfe224ab463dd00ca211eece72a4cd8a906224d2703fb8a326d36fdd0e68701e201b2a60ed7cf81ce0fd9b3799f9fe7745977ae3
- languageName: node
- linkType: hard
-
"yargs-parser@npm:^18.1.2":
version: 18.1.3
resolution: "yargs-parser@npm:18.1.3"
@@ -5667,6 +5849,13 @@ __metadata:
languageName: node
linkType: hard
+"yargs-parser@npm:^21.0.1":
+ version: 21.1.1
+ resolution: "yargs-parser@npm:21.1.1"
+ checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c
+ languageName: node
+ linkType: hard
+
"yargs@npm:^15.4.1":
version: 15.4.1
resolution: "yargs@npm:15.4.1"
diff --git a/src/Tests/ControlTests/testoutputs/ViewModulesServerSideTests.IncludeViewModule.html b/src/Tests/ControlTests/testoutputs/ViewModulesServerSideTests.IncludeViewModule.html
index f92075b260..944b1ec558 100644
--- a/src/Tests/ControlTests/testoutputs/ViewModulesServerSideTests.IncludeViewModule.html
+++ b/src/Tests/ControlTests/testoutputs/ViewModulesServerSideTests.IncludeViewModule.html
@@ -36,6 +36,6 @@
],
"typeMetadata": {}
}">
-
+