From 3074e9bbf56cf95f6f3fd7783d7ce16532fa36a8 Mon Sep 17 00:00:00 2001 From: Alina Sireneva Date: Sun, 17 Mar 2024 21:46:51 +0300 Subject: [PATCH 1/4] build(deps): updated vitest --- package.json | 10 +- .../src/highlevel/utils/file-utils.test.ts | 12 +- .../src/__snapshots__/diff.test.ts.snap | 573 +++++++++++++ .../src/__snapshots__/utils.test.ts.snap | 21 + .../codegen/__snapshots__/errors.test.ts.snap | 80 +- .../codegen/__snapshots__/reader.test.ts.snap | 89 ++ .../codegen/__snapshots__/types.test.ts.snap | 299 ++++++- .../codegen/__snapshots__/writer.test.ts.snap | 59 ++ pnpm-lock.yaml | 800 ++++++++++++------ 9 files changed, 1685 insertions(+), 258 deletions(-) diff --git a/package.json b/package.json index d66c560a..3fd58dba 100644 --- a/package.json +++ b/package.json @@ -40,9 +40,9 @@ "@types/ws": "8.5.4", "@typescript-eslint/eslint-plugin": "6.4.0", "@typescript-eslint/parser": "6.4.0", - "@vitest/browser": "0.34.6", - "@vitest/coverage-v8": "0.34.6", - "@vitest/ui": "0.34.6", + "@vitest/browser": "1.4.0", + "@vitest/coverage-v8": "1.4.0", + "@vitest/ui": "1.4.0", "cjs-module-lexer": "1.2.3", "dotenv-flow": "3.2.0", "dpdm": "3.14.0", @@ -65,8 +65,8 @@ "tsconfig-paths": "4.2.0", "typedoc": "0.25.3", "typescript": "5.1.6", - "vite": "5.0.3", - "vitest": "0.34.6" + "vite": "5.1.6", + "vitest": "1.4.0" }, "prettier": "./.config/prettier.cjs", "eslintConfig": { diff --git a/packages/core/src/highlevel/utils/file-utils.test.ts b/packages/core/src/highlevel/utils/file-utils.test.ts index a0dc88b6..8f36b2bb 100644 --- a/packages/core/src/highlevel/utils/file-utils.test.ts +++ b/packages/core/src/highlevel/utils/file-utils.test.ts @@ -15,15 +15,11 @@ describe('isProbablyPlainText', () => { it('should return true for buffers only containing printable ascii', () => { expect(isProbablyPlainText(p.utf8Encode('hello this is some ascii text'))).to.be.true expect(isProbablyPlainText(p.utf8Encode('hello this is some ascii text\nwith unix new lines'))).to.be.true - expect(isProbablyPlainText(p.utf8Encode('hello this is some ascii text\r\nwith windows new lines'))).to.be + expect(isProbablyPlainText(p.utf8Encode('hello this is some ascii text\r\nwith windows new lines'))).to.be.true + expect(isProbablyPlainText(p.utf8Encode('hello this is some ascii text\n\twith unix new lines and tabs'))).to.be .true - expect(isProbablyPlainText(p.utf8Encode('hello this is some ascii text\n\twith unix new lines and tabs'))) + expect(isProbablyPlainText(p.utf8Encode('hello this is some ascii text\r\n\twith windows new lines and tabs'))) .to.be.true - expect( - isProbablyPlainText( - p.utf8Encode('hello this is some ascii text\r\n\twith windows new lines and tabs'), - ), - ).to.be.true }) it('should return false for buffers containing some binary data', () => { @@ -55,7 +51,7 @@ describe('svgPathToFile', () => { const path = 'M 0 0 L 100 0 L 100 100 L 0 100 L 0 0 Z' expect(p.utf8Decode(svgPathToFile(path))).toMatchInlineSnapshot( - '""', + '""', ) }) }) diff --git a/packages/tl-utils/src/__snapshots__/diff.test.ts.snap b/packages/tl-utils/src/__snapshots__/diff.test.ts.snap index feb1186d..b1f53b43 100644 --- a/packages/tl-utils/src/__snapshots__/diff.test.ts.snap +++ b/packages/tl-utils/src/__snapshots__/diff.test.ts.snap @@ -572,3 +572,576 @@ exports[`generateTlSchemasDifference > shows removed unions 1`] = ` }, } `; + +exports[`generateTlSchemasDifference shows added constructors 1`] = ` +{ + "classes": { + "added": [ + { + "arguments": [], + "id": 3847402009, + "kind": "class", + "name": "test2", + "type": "Test", + }, + ], + "modified": [], + "removed": [], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "unions": { + "added": [], + "modified": [ + { + "classes": { + "added": [ + { + "arguments": [], + "id": 3847402009, + "kind": "class", + "name": "test2", + "type": "Test", + }, + ], + "modified": [], + "removed": [], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "name": "Test", + }, + ], + "removed": [], + }, +} +`; + +exports[`generateTlSchemasDifference shows removed constructors 1`] = ` +{ + "classes": { + "added": [], + "modified": [], + "removed": [ + { + "arguments": [], + "id": 3847402009, + "kind": "class", + "name": "test2", + "type": "Test", + }, + ], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "unions": { + "added": [], + "modified": [ + { + "classes": { + "added": [], + "modified": [], + "removed": [ + { + "arguments": [], + "id": 3847402009, + "kind": "class", + "name": "test2", + "type": "Test", + }, + ], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "name": "Test", + }, + ], + "removed": [], + }, +} +`; + +exports[`generateTlSchemasDifference shows modified constructors 1`] = ` +{ + "classes": { + "added": [], + "modified": [ + { + "arguments": { + "added": [], + "modified": [ + { + "name": "foo", + "type": { + "new": "Foo", + "old": "int", + }, + }, + ], + "removed": [], + }, + "id": { + "new": 3348640942, + "old": 1331975629, + }, + "name": "test", + }, + ], + "removed": [], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "unions": { + "added": [], + "modified": [], + "removed": [], + }, +} +`; + +exports[`generateTlSchemasDifference shows removed unions 1`] = ` +{ + "classes": { + "added": [], + "modified": [ + { + "arguments": { + "added": [], + "modified": [ + { + "name": "foo", + "type": { + "new": "Foo", + "old": "int", + }, + }, + ], + "removed": [], + }, + "id": { + "new": 3348640942, + "old": 1331975629, + }, + "name": "test", + }, + ], + "removed": [ + { + "arguments": [], + "id": 3739166976, + "kind": "class", + "name": "test1", + "type": "Test1", + }, + ], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "unions": { + "added": [], + "modified": [], + "removed": [ + { + "classes": [ + { + "arguments": [], + "id": 3739166976, + "kind": "class", + "name": "test1", + "type": "Test1", + }, + ], + "name": "Test1", + }, + ], + }, +} +`; + +exports[`generateTlSchemasDifference shows added unions 1`] = ` +{ + "classes": { + "added": [ + { + "arguments": [], + "id": 3739166976, + "kind": "class", + "name": "test1", + "type": "Test1", + }, + ], + "modified": [ + { + "arguments": { + "added": [], + "modified": [ + { + "name": "foo", + "type": { + "new": "Foo", + "old": "int", + }, + }, + ], + "removed": [], + }, + "id": { + "new": 3348640942, + "old": 1331975629, + }, + "name": "test", + }, + ], + "removed": [], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "unions": { + "added": [ + { + "classes": [ + { + "arguments": [], + "id": 3739166976, + "kind": "class", + "name": "test1", + "type": "Test1", + }, + ], + "name": "Test1", + }, + ], + "modified": [], + "removed": [], + }, +} +`; + +exports[`generateTlSchemasDifference shows modified unions 1`] = ` +{ + "classes": { + "added": [ + { + "arguments": [], + "id": 3847402009, + "kind": "class", + "name": "test2", + "type": "Test", + }, + ], + "modified": [ + { + "arguments": { + "added": [], + "modified": [ + { + "name": "foo", + "type": { + "new": "Foo", + "old": "int", + }, + }, + ], + "removed": [], + }, + "id": { + "new": 3348640942, + "old": 1331975629, + }, + "name": "test", + }, + ], + "removed": [ + { + "arguments": [], + "id": 1809692154, + "kind": "class", + "name": "test1", + "type": "Test", + }, + ], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "unions": { + "added": [], + "modified": [ + { + "classes": { + "added": [ + { + "arguments": [], + "id": 3847402009, + "kind": "class", + "name": "test2", + "type": "Test", + }, + ], + "modified": [], + "removed": [ + { + "arguments": [], + "id": 1809692154, + "kind": "class", + "name": "test1", + "type": "Test", + }, + ], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "name": "Test", + }, + ], + "removed": [], + }, +} +`; + +exports[`generateTlSchemasDifference shows modified unions 2`] = ` +{ + "classes": { + "added": [ + { + "arguments": [ + { + "name": "foo", + "type": "Foo", + }, + ], + "id": 711487159, + "kind": "class", + "name": "test2", + "type": "Test", + }, + { + "arguments": [], + "id": 704164487, + "kind": "class", + "name": "test3", + "type": "Test", + }, + ], + "modified": [], + "removed": [ + { + "arguments": [ + { + "name": "foo", + "type": "int", + }, + ], + "id": 1331975629, + "kind": "class", + "name": "test", + "type": "Test", + }, + { + "arguments": [], + "id": 1809692154, + "kind": "class", + "name": "test1", + "type": "Test", + }, + ], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "unions": { + "added": [], + "modified": [ + { + "classes": { + "added": [ + { + "arguments": [ + { + "name": "foo", + "type": "Foo", + }, + ], + "id": 711487159, + "kind": "class", + "name": "test2", + "type": "Test", + }, + { + "arguments": [], + "id": 704164487, + "kind": "class", + "name": "test3", + "type": "Test", + }, + ], + "modified": [], + "removed": [ + { + "arguments": [ + { + "name": "foo", + "type": "int", + }, + ], + "id": 1331975629, + "kind": "class", + "name": "test", + "type": "Test", + }, + { + "arguments": [], + "id": 1809692154, + "kind": "class", + "name": "test1", + "type": "Test", + }, + ], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "name": "Test", + }, + ], + "removed": [], + }, +} +`; + +exports[`generateTlSchemasDifference shows modified unions 3`] = ` +{ + "classes": { + "added": [], + "modified": [ + { + "id": { + "new": 1997819349, + "old": 471282454, + }, + "name": "test", + }, + { + "id": { + "new": 3739166976, + "old": 1809692154, + }, + "name": "test1", + }, + ], + "removed": [], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "unions": { + "added": [ + { + "classes": [ + { + "arguments": [], + "id": 1997819349, + "kind": "class", + "name": "test", + "type": "Test1", + }, + { + "arguments": [], + "id": 3739166976, + "kind": "class", + "name": "test1", + "type": "Test1", + }, + ], + "name": "Test1", + }, + ], + "modified": [], + "removed": [ + { + "classes": [ + { + "arguments": [], + "id": 471282454, + "kind": "class", + "name": "test", + "type": "Test", + }, + { + "arguments": [], + "id": 1809692154, + "kind": "class", + "name": "test1", + "type": "Test", + }, + ], + "name": "Test", + }, + ], + }, +} +`; + +exports[`generateTlSchemasDifference shows modified methods 1`] = ` +{ + "classes": { + "added": [], + "modified": [], + "removed": [], + }, + "methods": { + "added": [], + "modified": [ + { + "id": { + "new": 3994885231, + "old": 471282454, + }, + "name": "test", + }, + ], + "removed": [], + }, + "unions": { + "added": [ + undefined, + ], + "modified": [], + "removed": [ + undefined, + ], + }, +} +`; diff --git a/packages/tl-utils/src/__snapshots__/utils.test.ts.snap b/packages/tl-utils/src/__snapshots__/utils.test.ts.snap index e0737422..1ed9ce06 100644 --- a/packages/tl-utils/src/__snapshots__/utils.test.ts.snap +++ b/packages/tl-utils/src/__snapshots__/utils.test.ts.snap @@ -29,3 +29,24 @@ exports[`groupTlEntriesByNamespace > should group entries correctly 1`] = ` ], } `; + +exports[`groupTlEntriesByNamespace should group entries correctly 1`] = ` +{ + "foo": [ + { + "arguments": [], + "id": 0, + "kind": "class", + "name": "foo.bar", + "type": "FooBar", + }, + { + "arguments": [], + "id": 0, + "kind": "class", + "name": "foo.baz", + "type": "FooBaz", + }, + ], +} +`; diff --git a/packages/tl-utils/src/codegen/__snapshots__/errors.test.ts.snap b/packages/tl-utils/src/codegen/__snapshots__/errors.test.ts.snap index 21326ea2..ec018883 100644 --- a/packages/tl-utils/src/codegen/__snapshots__/errors.test.ts.snap +++ b/packages/tl-utils/src/codegen/__snapshots__/errors.test.ts.snap @@ -32,7 +32,7 @@ export class RpcError extends Error { static fromTl(obj: object): RpcError; } ", - "const _descriptionsMap = JSON.parse('{\\"FLOOD_WAIT_%d\\":\\"Wait %d seconds\\"}') + "const _descriptionsMap = JSON.parse('{"FLOOD_WAIT_%d":"Wait %d seconds"}') class RpcError extends Error { constructor(code, text, description) { super(description || 'Unknown RPC error: [' + code + ':' + text + ']'); @@ -50,7 +50,7 @@ RpcError.fromTl = function (obj) { var err = new RpcError(obj.errorCode, obj.errorMessage); var match, param; - if ((match=err.text.match(/^FLOOD_WAIT_(\\\\d+)$/))!=null){ err.text = 'FLOOD_WAIT_%d'; param = err.duration = parseInt(match[1]) } + if ((match=err.text.match(/^FLOOD_WAIT_(\\d+)$/))!=null){ err.text = 'FLOOD_WAIT_%d'; param = err.duration = parseInt(match[1]) } else return err @@ -71,3 +71,79 @@ exports.RpcError = RpcError; ", ] `; + +exports[`generateCodeForErrors should correctly generate errors 1`] = ` +[ + +"type MtErrorText = + | 'USER_NOT_FOUND' + | 'FLOOD_WAIT_%d' + + | (string & {}) // to keep hints + +interface MtErrorArgMap { + 'FLOOD_WAIT_%d': { duration: number }, + +} + +type RpcErrorWithArgs = + RpcError & { text: T } & (T extends keyof MtErrorArgMap ? (RpcError & MtErrorArgMap[T]) : {}); + +export class RpcError extends Error { + static BAD_REQUEST: 400; + + + readonly code: number; + readonly text: MtErrorText; + readonly unknown: boolean; + constructor(code: number, text: MtErrorText); + + is(text: T): this is RpcErrorWithArgs; + static is(err: unknown): err is RpcError; + static is(err: unknown, text: T): err is RpcErrorWithArgs; + static create(code: number, text: T): RpcErrorWithArgs; + static fromTl(obj: object): RpcError; +} +" +, + +"const _descriptionsMap = JSON.parse('{"FLOOD_WAIT_%d":"Wait %d seconds"}') +class RpcError extends Error { + constructor(code, text, description) { + super(description || 'Unknown RPC error: [' + code + ':' + text + ']'); + this.code = code; + this.text = text; + } + + static is(err, text) { return err.constructor === RpcError && (!text || err.text === text); } + is(text) { return this.text === text; } +} +RpcError.fromTl = function (obj) { + if (obj.errorMessage in _descriptionsMap) { + return new RpcError(obj.errorCode, obj.errorMessage, _descriptionsMap[obj.errorMessage]); + } + + var err = new RpcError(obj.errorCode, obj.errorMessage); + var match, param; + if ((match=err.text.match(/^FLOOD_WAIT_(\d+)$/))!=null){ err.text = 'FLOOD_WAIT_%d'; param = err.duration = parseInt(match[1]) } + + else return err + + err.message = _descriptionsMap[err.text].replace('%d', param); + return err +} +RpcError.create = function(code, text) { + var desc = _descriptionsMap[text]; + var err = new RpcError(code, text, desc); + if (!desc) { + err.unknown = true; + } + return err; +} +RpcError.BAD_REQUEST = 400; + +exports.RpcError = RpcError; +" +, +] +`; diff --git a/packages/tl-utils/src/codegen/__snapshots__/reader.test.ts.snap b/packages/tl-utils/src/codegen/__snapshots__/reader.test.ts.snap index a38c8854..e063b51c 100644 --- a/packages/tl-utils/src/codegen/__snapshots__/reader.test.ts.snap +++ b/packages/tl-utils/src/codegen/__snapshots__/reader.test.ts.snap @@ -88,3 +88,92 @@ exports[`generateReaderCodeForTlEntry > generates code for constructors with vec exports[`generateReaderCodeForTlEntry > generates code for constructors without arguments 1`] = `"2875595611:function(r){return{_:'topPeerCategoryBotsPM'}},"`; exports[`generateReaderCodeForTlEntry > generates code with raw flags for constructors with flags 1`] = `"1554225816:function(r){var flags=r.uint(),flags2=r.uint();return{_:'test',flags:flags,flags2:flags2,}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors without arguments 1`] = `"2875595611:function(r){return{_:'topPeerCategoryBotsPM'}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with simple arguments 1`] = `"2299280777:function(r){return{_:'inputBotInlineMessageID',dcId:r.int(),id:r.long(),accessHash:r.long(),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with simple arguments 2`] = `"341499403:function(r){return{_:'contact',userId:r.long(),mutual:r.boolean(),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with simple arguments 3`] = `"2933316530:function(r){return{_:'maskCoords',n:r.int(),x:r.double(),y:r.double(),zoom:r.double(),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with true flags 1`] = `"649453030:function(r){var flags=r.uint();return{_:'messages.messageEditData',caption:!!(flags&1),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with optional arguments 1`] = `"1041346555:function(r){var flags=r.uint();return{_:'updates.channelDifferenceEmpty',final:!!(flags&1),pts:r.int(),timeout:flags&2?r.int():void 0,}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with arguments before flags field 1`] = `"2262925665:function(r){var id=r.long(),flags=r.uint();return{_:'poll',id:id,quiz:!!(flags&8),question:r.string(),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with multiple flags fields 1`] = `"1041346555:function(r){var flags=r.uint(),pts=r.int(),timeout=flags&2?r.int():void 0,flags2=r.uint();return{_:'updates.channelDifferenceEmpty',final:!!(flags&1),pts:pts,timeout:timeout,canDeleteChannel:!!(flags2&1),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with vector arguments 1`] = `"2131196633:function(r){return{_:'contacts.resolvedPeer',peer:r.object(),chats:r.vector(r.object),users:r.vector(r.object),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with optional vector arguments 1`] = `"2338894028:function(r){var flags=r.uint();return{_:'messages.getWebPagePreview',message:r.string(),entities:flags&8?r.vector(r.object):void 0,}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with generics 1`] = `"3667594509:function(r){return{_:'invokeWithLayer',layer:r.int(),query:r.object(),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for bare types 1`] = `"1945237724:function(r){return{_:'msg_container',messages:r.vector(m[155834844],1),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for bare types 2`] = `"2924480661:function(r){return{_:'future_salts',salts:r.vector(m[155834844]),current:r.object(),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for bare types 3`] = `"2924480661:function(r){return{_:'future_salts',salts:r.vector(m[155834844],1),current:m[155834844](r),}},"`; + +exports[`generateReaderCodeForTlEntry generates code with raw flags for constructors with flags 1`] = `"1554225816:function(r){var flags=r.uint(),flags2=r.uint();return{_:'test',flags:flags,flags2:flags2,}},"`; + +exports[`generateReaderCodeForTlEntries method return readers includes primitive return type parsing info 1`] = ` +"var m={ +1809692154:function(r){return{_:'test1'}}, +_results:{ +'test':function(r){return r.int()}, +}, +}" +`; + +exports[`generateReaderCodeForTlEntries method return readers includes primitive vectors return type parsing info 1`] = ` +"var m={ +_results:{ +'test':function(r){return r.vector(r.int)}, +}, +}" +`; + +exports[`generateReaderCodeForTlEntries method return readers includes primitive vectors return type parsing info 2`] = ` +"var m={ +_results:{ +'test':function(r){return r.vector(r.int)}, +}, +}" +`; + +exports[`generateReaderCodeForTlEntries method return readers doesn't include Bool parsing 1`] = ` +"var m={ +_results:{ +}, +}" +`; + +exports[`generateReaderCodeForTlEntries generates code for multiple entries 1`] = ` +"var m={ +471282454:function(r){return{_:'test'}}, +2119910527:function(r){return{_:'test2'}}, +}" +`; + +exports[`generateReaderCodeForTlEntries doesn't generate code for methods by default 1`] = ` +"var m={ +471282454:function(r){return{_:'test'}}, +}" +`; + +exports[`generateReaderCodeForTlEntries generates code for methods if asked to 1`] = ` +"var m={ +471282454:function(r){return{_:'test'}}, +2119910527:function(r){return{_:'test2'}}, +}" +`; + +exports[`generateReaderCodeForTlEntries updates readers used in bare vectors 1`] = ` +"var m={ +471282454:function(r=this){return{_:'test'}}, +3562390222:function(r){return{_:'test2',a:r.vector(m[471282454],1),}}, +}" +`; diff --git a/packages/tl-utils/src/codegen/__snapshots__/types.test.ts.snap b/packages/tl-utils/src/codegen/__snapshots__/types.test.ts.snap index b152a01d..1b571a40 100644 --- a/packages/tl-utils/src/codegen/__snapshots__/types.test.ts.snap +++ b/packages/tl-utils/src/codegen/__snapshots__/types.test.ts.snap @@ -188,7 +188,7 @@ type TlObject = exports[`generateTypescriptDefinitionsForTlSchema > writes schemas with methods 2`] = ` "ns.isAnyTest = _isAny('Test'); -_types = JSON.parse('{\\"test\\":\\"Test\\"}');" +_types = JSON.parse('{"test":"Test"}');" `; exports[`generateTypescriptDefinitionsForTlSchema > writes schemas with multi-unions 1`] = ` @@ -210,7 +210,7 @@ type TlObject = exports[`generateTypescriptDefinitionsForTlSchema > writes schemas with multi-unions 2`] = ` "ns.isAnyTest = _isAny('Test'); -_types = JSON.parse('{\\"test\\":\\"Test\\",\\"test2\\":\\"Test\\"}');" +_types = JSON.parse('{"test":"Test","test2":"Test"}');" `; exports[`generateTypescriptDefinitionsForTlSchema > writes schemas with namespaces 1`] = ` @@ -270,7 +270,7 @@ ns.test = {}; (function(ns){ ns.isAnyTest = _isAny('test.Test'); })(ns.test); -_types = JSON.parse('{\\"test\\":\\"Test\\",\\"test2\\":\\"Test\\",\\"test.test\\":\\"test.Test\\",\\"test.test2\\":\\"test.Test\\"}');" +_types = JSON.parse('{"test":"Test","test2":"Test","test.test":"test.Test","test.test2":"test.Test"}');" `; exports[`generateTypescriptDefinitionsForTlSchema > writes simple schemas 1`] = ` @@ -288,5 +288,296 @@ type TlObject = exports[`generateTypescriptDefinitionsForTlSchema > writes simple schemas 2`] = ` "ns.isAnyTest = _isAny('Test'); -_types = JSON.parse('{\\"test\\":\\"Test\\"}');" +_types = JSON.parse('{"test":"Test"}');" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds tl style comments 1`] = ` +"/** + * This is a test constructor + */ +interface RawTest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds return type comments 1`] = ` +"/** + * This is a test method + * + * RPC method returns {@link tl.TypeTest} + */ +interface RawTestRequest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds return type comments 2`] = ` +"/** + * This is a test method + * + * RPC method returns {@link tl.TypeTest} + */ +interface RawTestRequest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds return type comments 3`] = ` +"/** + * RPC method returns {@link tl.TypeTest} array + */ +interface RawTestRequest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds usage info comments 1`] = ` +"/** + * RPC method returns {@link tl.TypeTest} + * + * This method is **not** available for bots + * + * This method *may* throw one of these errors: FOO, BAR + */ +interface RawTestRequest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds usage info comments 2`] = ` +"/** + * RPC method returns {@link tl.TypeTest} + * + * This method is **not** available for normal users + */ +interface RawTestBotRequest { + _: 'testBot'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds tdlib style comments 1`] = ` +"/** + * This is a test constructor + */ +interface RawTest { + _: 'test'; + /** + * Some field + */ + field: number; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments wraps long comments 1`] = ` +"/** + * This is a test constructor with a very very very very very + * very very very long comment + */ +interface RawTest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments wraps long comments 2`] = ` +"/** + * This is a test method with a very very very very very very + * very very long comment + * + * RPC method returns {@link tl.TypeTest} + */ +interface RawTestRequest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments should not break @link tags 1`] = ` +"/** + * This is a test constructor with a very long comment + * {@link whatever} more text + */ +interface RawTest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry replaces primitive types 1`] = ` +"interface RawTest { + _: 'test'; + a: number; + b: Long; + c: Double; + d: string; + e: Uint8Array; + f: boolean; + g: number[]; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry ignores namespace for name 1`] = ` +"interface RawTest { + _: 'test.test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry renames non-primitive types 1`] = ` +"interface RawTest { + _: 'test'; + foo: tl.TypeFoo; + bar: tl.TypeBar[]; + baz: tl.namespace.TypeBaz; + egg: tl.namespace.TypeEgg[]; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry marks optional fields as optional 1`] = ` +"interface RawTest { + _: 'test'; + a?: boolean; + b?: string; + c?: tl.TypeFoo; + d?: tl.namespace.TypeFoo[]; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry writes generic types 1`] = ` +"interface RawInvokeWithoutUpdatesRequest { + _: 'invokeWithoutUpdates'; + query: X; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry generates code with raw flags for constructors with flags 1`] = ` +"interface RawTest { + _: 'test'; + flags: number; + flags2: number; +}" +`; + +exports[`generateTypescriptDefinitionsForTlSchema writes simple schemas 1`] = ` +"interface RawTest { + _: 'test'; +} +interface RpcCallReturn { +} +type TypeTest = tl.RawTest +function isAnyTest(o: object): o is TypeTest + +type TlObject = + | tl.RawTest" +`; + +exports[`generateTypescriptDefinitionsForTlSchema writes simple schemas 2`] = ` +"ns.isAnyTest = _isAny('Test'); +_types = JSON.parse('{"test":"Test"}');" +`; + +exports[`generateTypescriptDefinitionsForTlSchema writes schemas with multi-unions 1`] = ` +"interface RawTest { + _: 'test'; +} +interface RawTest2 { + _: 'test2'; +} +interface RpcCallReturn { +} +type TypeTest = tl.RawTest | tl.RawTest2 +function isAnyTest(o: object): o is TypeTest + +type TlObject = + | tl.RawTest + | tl.RawTest2" +`; + +exports[`generateTypescriptDefinitionsForTlSchema writes schemas with multi-unions 2`] = ` +"ns.isAnyTest = _isAny('Test'); +_types = JSON.parse('{"test":"Test","test2":"Test"}');" +`; + +exports[`generateTypescriptDefinitionsForTlSchema writes schemas with methods 1`] = ` +"interface RawTest { + _: 'test'; +} +/** + * RPC method returns {@link tl.TypeTest} + */ +interface RawGetTestRequest { + _: 'getTest'; +} +interface RpcCallReturn { + 'getTest': tl.TypeTest +} +type TypeTest = tl.RawTest +function isAnyTest(o: object): o is TypeTest +type RpcMethod = + | tl.RawGetTestRequest + +type TlObject = + | tl.RawTest + | tl.RawGetTestRequest" +`; + +exports[`generateTypescriptDefinitionsForTlSchema writes schemas with methods 2`] = ` +"ns.isAnyTest = _isAny('Test'); +_types = JSON.parse('{"test":"Test"}');" +`; + +exports[`generateTypescriptDefinitionsForTlSchema writes schemas with namespaces 1`] = ` +"interface RawTest { + _: 'test'; +} +interface RawTest2 { + _: 'test2'; +} +/** + * RPC method returns {@link tl.TypeTest} + */ +interface RawGetTestRequest { + _: 'getTest'; +} +interface RpcCallReturn extends test.RpcCallReturn { + 'getTest': tl.TypeTest +} +type TypeTest = tl.RawTest | tl.RawTest2 +function isAnyTest(o: object): o is TypeTest + +namespace test { + interface RawTest { + _: 'test.test'; + } + interface RawTest2 { + _: 'test.test2'; + } + /** + * RPC method returns {@link tl.test.TypeTest} + */ + interface RawGetTestRequest { + _: 'test.getTest'; + } + interface RpcCallReturn { + 'test.getTest': tl.test.TypeTest + } + type TypeTest = tl.test.RawTest | tl.test.RawTest2 + function isAnyTest(o: object): o is TypeTest +} +type RpcMethod = + | tl.RawGetTestRequest + | tl.test.RawGetTestRequest + +type TlObject = + | tl.RawTest + | tl.RawTest2 + | tl.test.RawTest + | tl.test.RawTest2 + | tl.RawGetTestRequest + | tl.test.RawGetTestRequest" +`; + +exports[`generateTypescriptDefinitionsForTlSchema writes schemas with namespaces 2`] = ` +"ns.isAnyTest = _isAny('Test'); +ns.test = {}; +(function(ns){ +ns.isAnyTest = _isAny('test.Test'); +})(ns.test); +_types = JSON.parse('{"test":"Test","test2":"Test","test.test":"test.Test","test.test2":"test.Test"}');" `; diff --git a/packages/tl-utils/src/codegen/__snapshots__/writer.test.ts.snap b/packages/tl-utils/src/codegen/__snapshots__/writer.test.ts.snap index 0de9f1c5..d7bbc466 100644 --- a/packages/tl-utils/src/codegen/__snapshots__/writer.test.ts.snap +++ b/packages/tl-utils/src/codegen/__snapshots__/writer.test.ts.snap @@ -58,3 +58,62 @@ exports[`generateWriterCodeForTlEntry > generates code for constructors with vec exports[`generateWriterCodeForTlEntry > generates code for constructors without arguments 1`] = `"'topPeerCategoryBotsPM':function(w){w.uint(2875595611);},"`; exports[`generateWriterCodeForTlEntry > generates code with raw flags for constructors with flags 1`] = `"'test':function(w,v){w.uint(1554225816);var flags=v.flags;w.uint(flags);var flags2=v.flags2;w.uint(flags2);},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors without arguments 1`] = `"'topPeerCategoryBotsPM':function(w){w.uint(2875595611);},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with simple arguments 1`] = `"'inputBotInlineMessageID':function(w,v){w.uint(2299280777);w.int(h(v,'dcId'));w.long(h(v,'id'));w.long(h(v,'accessHash'));},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with simple arguments 2`] = `"'contact':function(w,v){w.uint(341499403);w.long(h(v,'userId'));w.boolean(h(v,'mutual'));},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with simple arguments 3`] = `"'maskCoords':function(w,v){w.uint(2933316530);w.int(h(v,'n'));w.double(h(v,'x'));w.double(h(v,'y'));w.double(h(v,'zoom'));},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with true flags 1`] = `"'messages.messageEditData':function(w,v){w.uint(649453030);var flags=0;if(v.caption===true)flags|=1;w.uint(flags);},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with optional arguments 1`] = `"'updates.channelDifferenceEmpty':function(w,v){w.uint(1041346555);var flags=0;if(v.final===true)flags|=1;var _timeout=v.timeout!==undefined;if(_timeout)flags|=2;w.uint(flags);w.int(h(v,'pts'));if(_timeout)w.int(v.timeout);},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with multiple flags fields 1`] = `"'updates.channelDifferenceEmpty':function(w,v){w.uint(1041346555);var flags=0;if(v.final===true)flags|=1;var _timeout=v.timeout!==undefined;if(_timeout)flags|=2;w.uint(flags);w.int(h(v,'pts'));if(_timeout)w.int(v.timeout);var flags2=0;if(v.canDeleteChannel===true)flags2|=1;w.uint(flags2);},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with multiple fields using the same flag 1`] = `"'inputMediaPoll':function(w,v){w.uint(261416433);var flags=0;var _solution=v.solution!==undefined;var _solutionEntities=v.solutionEntities&&v.solutionEntities.length;var _flags_1=_solution||_solutionEntities;if(_flags_1)flags|=2;w.uint(flags);if(_flags_1)w.string(v.solution);if(_flags_1)w.vector(w.object,v.solutionEntities);},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with vector arguments 1`] = `"'contacts.resolvedPeer':function(w,v){w.uint(2131196633);w.object(h(v,'peer'));w.vector(w.object,h(v,'chats'));w.vector(w.object,h(v,'users'));},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with optional vector arguments 1`] = `"'messages.getWebPagePreview':function(w,v){w.uint(2338894028);var flags=0;var _entities=v.entities&&v.entities.length;if(_entities)flags|=8;w.uint(flags);w.string(h(v,'message'));if(_entities)w.vector(w.object,v.entities);},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with generics 1`] = `"'invokeWithLayer':function(w,v){w.uint(3667594509);w.int(h(v,'layer'));w.object(h(v,'query'));},"`; + +exports[`generateWriterCodeForTlEntry generates code for bare vectors 1`] = `"'msg_container':function(w,v){w.uint(1945237724);w.vector(m._bare[155834844],h(v,'messages'),1);},"`; + +exports[`generateWriterCodeForTlEntry generates code for bare vectors 2`] = `"'future_salts':function(w,v){w.uint(2924480661);w.vector(m._bare[155834844],h(v,'salts'));w.object(h(v,'current'));},"`; + +exports[`generateWriterCodeForTlEntry generates code with raw flags for constructors with flags 1`] = `"'test':function(w,v){w.uint(1554225816);var flags=v.flags;w.uint(flags);var flags2=v.flags2;w.uint(flags2);},"`; + +exports[`generateWriterCodeForTlEntry automatically computes constructor ID if needed 1`] = `"'topPeerCategoryBotsPM':function(w){w.uint(2875595611);},"`; + +exports[`generateWriterCodeForTlEntries generates code for bare types 1`] = ` +"var m={ +'future_salt':function(w,v){w.uint(155834844);w.bytes(h(v,'salt'));}, +'future_salts':function(w,v){w.uint(2924480661);w.vector(m._bare[155834844],h(v,'salts'),1);m._bare[155834844](w,h(v,'current'));}, +_bare:{ +155834844:function(w=this,v){w.bytes(h(v,'salt'));}, +}, +}" +`; + +exports[`generateWriterCodeForTlEntries should include prelude by default 1`] = ` +"function h(o,p){var q=o[p];if(q===void 0)throw Error('Object '+o._+' is missing required property '+p);return q} +var m={ +}" +`; + +exports[`generateWriterCodeForTlEntries should include static sizes calculations 1`] = ` +"function h(o,p){var q=o[p];if(q===void 0)throw Error('Object '+o._+' is missing required property '+p);return q} +var m={ +'test1':function(w,v){w.uint(102026291);w.int(h(v,'foo'));w.int(h(v,'bar'));}, +'test2':function(w,v){w.uint(2926357645);w.int(h(v,'foo'));w.double(h(v,'bar'));}, +'test3':function(w,v){w.uint(3373702963);w.int(h(v,'foo'));w.bytes(h(v,'bar'));}, +_staticSize:{ +'test1':12, +'test2':16, +}, +}" +`; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 73002f7f..e10b32f0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,14 +34,14 @@ importers: specifier: 6.4.0 version: 6.4.0(eslint@8.47.0)(typescript@5.1.6) '@vitest/browser': - specifier: 0.34.6 - version: 0.34.6(esbuild@0.18.20)(vitest@0.34.6) + specifier: 1.4.0 + version: 1.4.0(playwright@1.40.1)(vitest@1.4.0) '@vitest/coverage-v8': - specifier: 0.34.6 - version: 0.34.6(vitest@0.34.6) + specifier: 1.4.0 + version: 1.4.0(vitest@1.4.0) '@vitest/ui': - specifier: 0.34.6 - version: 0.34.6(vitest@0.34.6) + specifier: 1.4.0 + version: 1.4.0(vitest@1.4.0) cjs-module-lexer: specifier: 1.2.3 version: 1.2.3 @@ -109,11 +109,11 @@ importers: specifier: 5.1.6 version: 5.1.6 vite: - specifier: 5.0.3 - version: 5.0.3(@types/node@20.10.0) + specifier: 5.1.6 + version: 5.1.6(@types/node@20.10.0) vitest: - specifier: 0.34.6 - version: 0.34.6(@vitest/browser@0.34.6)(@vitest/ui@0.34.6)(playwright@1.40.1) + specifier: 1.4.0 + version: 1.4.0(@types/node@20.10.0)(@vitest/browser@1.4.0)(@vitest/ui@1.4.0) packages/convert: dependencies: @@ -345,7 +345,7 @@ importers: version: 5.2.3 vitest: specifier: ^0.34.6 - version: 0.34.6(@vitest/browser@0.34.6)(@vitest/ui@0.34.6)(playwright@1.40.1) + version: 0.34.6(@vitest/browser@1.4.0)(@vitest/ui@1.4.0)(playwright@1.40.1) devDependencies: '@mtcute/tl-utils': specifier: workspace:^ @@ -430,12 +430,12 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 dev: true /@babel/code-frame@7.16.7: @@ -445,11 +445,21 @@ packages: '@babel/highlight': 7.17.9 dev: true + /@babel/helper-string-parser@7.23.4: + resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/helper-validator-identifier@7.16.7: resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} engines: {node: '>=6.9.0'} dev: true + /@babel/helper-validator-identifier@7.22.20: + resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + engines: {node: '>=6.9.0'} + dev: true + /@babel/highlight@7.17.9: resolution: {integrity: sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==} engines: {node: '>=6.9.0'} @@ -459,6 +469,23 @@ packages: js-tokens: 4.0.0 dev: true + /@babel/parser@7.24.0: + resolution: {integrity: sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==} + engines: {node: '>=6.0.0'} + hasBin: true + dependencies: + '@babel/types': 7.24.0 + dev: true + + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-string-parser': 7.23.4 + '@babel/helper-validator-identifier': 7.22.20 + to-fast-properties: 2.0.0 + dev: true + /@bcoe/v8-coverage@0.2.3: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true @@ -638,16 +665,25 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true + /@esbuild/aix-ppc64@0.19.12: + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + requiresBuild: true + optional: true + /@esbuild/android-arm64@0.18.20: resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} engines: {node: '>=12'} cpu: [arm64] os: [android] requiresBuild: true + dev: true optional: true - /@esbuild/android-arm64@0.19.8: - resolution: {integrity: sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==} + /@esbuild/android-arm64@0.19.12: + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -660,10 +696,11 @@ packages: cpu: [arm] os: [android] requiresBuild: true + dev: true optional: true - /@esbuild/android-arm@0.19.8: - resolution: {integrity: sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==} + /@esbuild/android-arm@0.19.12: + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -676,10 +713,11 @@ packages: cpu: [x64] os: [android] requiresBuild: true + dev: true optional: true - /@esbuild/android-x64@0.19.8: - resolution: {integrity: sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==} + /@esbuild/android-x64@0.19.12: + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -692,10 +730,11 @@ packages: cpu: [arm64] os: [darwin] requiresBuild: true + dev: true optional: true - /@esbuild/darwin-arm64@0.19.8: - resolution: {integrity: sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==} + /@esbuild/darwin-arm64@0.19.12: + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -708,10 +747,11 @@ packages: cpu: [x64] os: [darwin] requiresBuild: true + dev: true optional: true - /@esbuild/darwin-x64@0.19.8: - resolution: {integrity: sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==} + /@esbuild/darwin-x64@0.19.12: + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -724,10 +764,11 @@ packages: cpu: [arm64] os: [freebsd] requiresBuild: true + dev: true optional: true - /@esbuild/freebsd-arm64@0.19.8: - resolution: {integrity: sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==} + /@esbuild/freebsd-arm64@0.19.12: + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -740,10 +781,11 @@ packages: cpu: [x64] os: [freebsd] requiresBuild: true + dev: true optional: true - /@esbuild/freebsd-x64@0.19.8: - resolution: {integrity: sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==} + /@esbuild/freebsd-x64@0.19.12: + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -756,10 +798,11 @@ packages: cpu: [arm64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-arm64@0.19.8: - resolution: {integrity: sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==} + /@esbuild/linux-arm64@0.19.12: + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -772,10 +815,11 @@ packages: cpu: [arm] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-arm@0.19.8: - resolution: {integrity: sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==} + /@esbuild/linux-arm@0.19.12: + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -788,10 +832,11 @@ packages: cpu: [ia32] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-ia32@0.19.8: - resolution: {integrity: sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==} + /@esbuild/linux-ia32@0.19.12: + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -804,10 +849,11 @@ packages: cpu: [loong64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-loong64@0.19.8: - resolution: {integrity: sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==} + /@esbuild/linux-loong64@0.19.12: + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -820,10 +866,11 @@ packages: cpu: [mips64el] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-mips64el@0.19.8: - resolution: {integrity: sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==} + /@esbuild/linux-mips64el@0.19.12: + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -836,10 +883,11 @@ packages: cpu: [ppc64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-ppc64@0.19.8: - resolution: {integrity: sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==} + /@esbuild/linux-ppc64@0.19.12: + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -852,10 +900,11 @@ packages: cpu: [riscv64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-riscv64@0.19.8: - resolution: {integrity: sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==} + /@esbuild/linux-riscv64@0.19.12: + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -868,10 +917,11 @@ packages: cpu: [s390x] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-s390x@0.19.8: - resolution: {integrity: sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==} + /@esbuild/linux-s390x@0.19.12: + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -884,10 +934,11 @@ packages: cpu: [x64] os: [linux] requiresBuild: true + dev: true optional: true - /@esbuild/linux-x64@0.19.8: - resolution: {integrity: sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==} + /@esbuild/linux-x64@0.19.12: + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -900,10 +951,11 @@ packages: cpu: [x64] os: [netbsd] requiresBuild: true + dev: true optional: true - /@esbuild/netbsd-x64@0.19.8: - resolution: {integrity: sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==} + /@esbuild/netbsd-x64@0.19.12: + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -916,10 +968,11 @@ packages: cpu: [x64] os: [openbsd] requiresBuild: true + dev: true optional: true - /@esbuild/openbsd-x64@0.19.8: - resolution: {integrity: sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==} + /@esbuild/openbsd-x64@0.19.12: + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -932,10 +985,11 @@ packages: cpu: [x64] os: [sunos] requiresBuild: true + dev: true optional: true - /@esbuild/sunos-x64@0.19.8: - resolution: {integrity: sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==} + /@esbuild/sunos-x64@0.19.12: + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -948,10 +1002,11 @@ packages: cpu: [arm64] os: [win32] requiresBuild: true + dev: true optional: true - /@esbuild/win32-arm64@0.19.8: - resolution: {integrity: sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==} + /@esbuild/win32-arm64@0.19.12: + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -964,10 +1019,11 @@ packages: cpu: [ia32] os: [win32] requiresBuild: true + dev: true optional: true - /@esbuild/win32-ia32@0.19.8: - resolution: {integrity: sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==} + /@esbuild/win32-ia32@0.19.12: + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -980,10 +1036,11 @@ packages: cpu: [x64] os: [win32] requiresBuild: true + dev: true optional: true - /@esbuild/win32-x64@0.19.8: - resolution: {integrity: sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==} + /@esbuild/win32-x64@0.19.12: + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -1078,13 +1135,13 @@ packages: dependencies: '@sinclair/typebox': 0.27.8 - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/set-array': 1.1.0 + '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 dev: true /@jridgewell/resolve-uri@3.0.6: @@ -1092,13 +1149,13 @@ packages: engines: {node: '>=6.0.0'} dev: true - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array@1.1.0: - resolution: {integrity: sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} dev: true @@ -1109,10 +1166,10 @@ packages: /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - /@jridgewell/trace-mapping@0.3.20: - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 dev: true @@ -1123,9 +1180,6 @@ packages: '@jridgewell/sourcemap-codec': 1.4.11 dev: true - /@jspm/core@2.0.1: - resolution: {integrity: sha512-Lg3PnLp0QXpxwLIAuuJboLeRaIhrgJjeuh797QADg3xz8wGLugQOS5DpsE8A6i6Adgzf+bacllkKZG3J0tGfDw==} - /@ljharb/through@2.3.11: resolution: {integrity: sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w==} engines: {node: '>= 0.4'} @@ -1174,101 +1228,95 @@ packages: requiresBuild: true optional: true - /@polka/url@1.0.0-next.23: - resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==} + /@polka/url@1.0.0-next.25: + resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} - /@rollup/pluginutils@5.0.5: - resolution: {integrity: sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==} - engines: {node: '>=14.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - - /@rollup/rollup-android-arm-eabi@4.6.0: - resolution: {integrity: sha512-keHkkWAe7OtdALGoutLY3utvthkGF+Y17ws9LYT8pxMBYXaCoH/8dXS2uzo6e8+sEhY7y/zi5RFo22Dy2lFpDw==} + /@rollup/rollup-android-arm-eabi@4.13.0: + resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} cpu: [arm] os: [android] requiresBuild: true optional: true - /@rollup/rollup-android-arm64@4.6.0: - resolution: {integrity: sha512-y3Kt+34smKQNWilicPbBz/MXEY7QwDzMFNgwEWeYiOhUt9MTWKjHqe3EVkXwT2fR7izOvHpDWZ0o2IyD9SWX7A==} + /@rollup/rollup-android-arm64@4.13.0: + resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} cpu: [arm64] os: [android] requiresBuild: true optional: true - /@rollup/rollup-darwin-arm64@4.6.0: - resolution: {integrity: sha512-oLzzxcUIHltHxOCmaXl+pkIlU+uhSxef5HfntW7RsLh1eHm+vJzjD9Oo4oUKso4YuP4PpbFJNlZjJuOrxo8dPg==} + /@rollup/rollup-darwin-arm64@4.13.0: + resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-darwin-x64@4.6.0: - resolution: {integrity: sha512-+ANnmjkcOBaV25n0+M0Bere3roeVAnwlKW65qagtuAfIxXF9YxUneRyAn/RDcIdRa7QrjRNJL3jR7T43ObGe8Q==} + /@rollup/rollup-darwin-x64@4.13.0: + resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.6.0: - resolution: {integrity: sha512-tBTSIkjSVUyrekddpkAqKOosnj1Fc0ZY0rJL2bIEWPKqlEQk0paORL9pUIlt7lcGJi3LzMIlUGXvtNi1Z6MOCQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.13.0: + resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} cpu: [arm] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.6.0: - resolution: {integrity: sha512-Ed8uJI3kM11de9S0j67wAV07JUNhbAqIrDYhQBrQW42jGopgheyk/cdcshgGO4fW5Wjq97COCY/BHogdGvKVNQ==} + /@rollup/rollup-linux-arm64-gnu@4.13.0: + resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-arm64-musl@4.6.0: - resolution: {integrity: sha512-mZoNQ/qK4D7SSY8v6kEsAAyDgznzLLuSFCA3aBHZTmf3HP/dW4tNLTtWh9+LfyO0Z1aUn+ecpT7IQ3WtIg3ViQ==} + /@rollup/rollup-linux-arm64-musl@4.13.0: + resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-gnu@4.6.0: - resolution: {integrity: sha512-rouezFHpwCqdEXsqAfNsTgSWO0FoZ5hKv5p+TGO5KFhyN/dvYXNMqMolOb8BkyKcPqjYRBeT+Z6V3aM26rPaYg==} + /@rollup/rollup-linux-riscv64-gnu@4.13.0: + resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} + cpu: [riscv64] + os: [linux] + requiresBuild: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.13.0: + resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-linux-x64-musl@4.6.0: - resolution: {integrity: sha512-Bbm+fyn3S6u51urfj3YnqBXg5vI2jQPncRRELaucmhBVyZkbWClQ1fEsRmdnCPpQOQfkpg9gZArvtMVkOMsh1w==} + /@rollup/rollup-linux-x64-musl@4.13.0: + resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.6.0: - resolution: {integrity: sha512-+MRMcyx9L2kTrTUzYmR61+XVsliMG4odFb5UmqtiT8xOfEicfYAGEuF/D1Pww1+uZkYhBqAHpvju7VN+GnC3ng==} + /@rollup/rollup-win32-arm64-msvc@4.13.0: + resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.6.0: - resolution: {integrity: sha512-rxfeE6K6s/Xl2HGeK6cO8SiQq3k/3BYpw7cfhW5Bk2euXNEpuzi2cc7llxx1si1QgwfjNtdRNTGqdBzGlFZGFw==} + /@rollup/rollup-win32-ia32-msvc@4.13.0: + resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@rollup/rollup-win32-x64-msvc@4.6.0: - resolution: {integrity: sha512-QqmCsydHS172Y0Kc13bkMXvipbJSvzeglBncJG3LsYJSiPlxYACz7MmJBs4A8l1oU+jfhYEIC/+AUSlvjmiX/g==} + /@rollup/rollup-win32-x64-msvc@4.13.0: + resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} cpu: [x64] os: [win32] requiresBuild: true @@ -1308,9 +1356,11 @@ packages: resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} dependencies: '@types/chai': 4.3.5 + dev: false /@types/chai@4.3.5: resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} + dev: false /@types/cross-spawn@6.0.6: resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} @@ -1520,37 +1570,47 @@ packages: eslint-visitor-keys: 3.4.1 dev: true - /@vitest/browser@0.34.6(esbuild@0.18.20)(vitest@0.34.6): - resolution: {integrity: sha512-XCIGROVgw3L+PwYw/T2l+HP/SPrXvh2MfmQNU3aULl5ekE+QVj9A1RYu/1mcYXdac9ES4ahxUz6n4wgcVd9tbA==} + /@vitest/browser@1.4.0(playwright@1.40.1)(vitest@1.4.0): + resolution: {integrity: sha512-kC44DzuqPZZrqe2P7SX2a3zHDAt919WtpkUMAxzv9eP5uPfVXtpk2Ipms2NXJGY5190aJc1uY+ambfJ3rwDJRA==} peerDependencies: - vitest: '>=0.34.0' + playwright: '*' + safaridriver: '*' + vitest: 1.4.0 + webdriverio: '*' + peerDependenciesMeta: + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true dependencies: - estree-walker: 3.0.3 - magic-string: 0.30.5 - modern-node-polyfills: 1.0.0(esbuild@0.18.20) - sirv: 2.0.3 - vitest: 0.34.6(@vitest/browser@0.34.6)(@vitest/ui@0.34.6)(playwright@1.40.1) - transitivePeerDependencies: - - esbuild - - rollup + '@vitest/utils': 1.4.0 + magic-string: 0.30.8 + playwright: 1.40.1 + sirv: 2.0.4 + vitest: 1.4.0(@types/node@20.10.0)(@vitest/browser@1.4.0)(@vitest/ui@1.4.0) - /@vitest/coverage-v8@0.34.6(vitest@0.34.6): - resolution: {integrity: sha512-fivy/OK2d/EsJFoEoxHFEnNGTg+MmdZBAVK9Ka4qhXR2K3J0DS08vcGVwzDtXSuUMabLv4KtPcpSKkcMXFDViw==} + /@vitest/coverage-v8@1.4.0(vitest@1.4.0): + resolution: {integrity: sha512-4hDGyH1SvKpgZnIByr9LhGgCEuF9DKM34IBLCC/fVfy24Z3+PZ+Ii9hsVBsHvY1umM1aGPEjceRkzxCfcQ10wg==} peerDependencies: - vitest: '>=0.32.0 <1' + vitest: 1.4.0 dependencies: - '@ampproject/remapping': 2.2.1 + '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 - istanbul-lib-coverage: 3.2.0 + debug: 4.3.4 + istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.6 - magic-string: 0.30.5 + istanbul-lib-source-maps: 5.0.4 + istanbul-reports: 3.1.7 + magic-string: 0.30.8 + magicast: 0.3.3 picocolors: 1.0.0 - std-env: 3.4.3 + std-env: 3.7.0 + strip-literal: 2.0.0 test-exclude: 6.0.0 - v8-to-istanbul: 9.1.3 - vitest: 0.34.6(@vitest/browser@0.34.6)(@vitest/ui@0.34.6)(playwright@1.40.1) + v8-to-istanbul: 9.2.0 + vitest: 1.4.0(@types/node@20.10.0)(@vitest/browser@1.4.0)(@vitest/ui@1.4.0) transitivePeerDependencies: - supports-color dev: true @@ -1561,6 +1621,14 @@ packages: '@vitest/spy': 0.34.6 '@vitest/utils': 0.34.6 chai: 4.3.10 + dev: false + + /@vitest/expect@1.4.0: + resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} + dependencies: + '@vitest/spy': 1.4.0 + '@vitest/utils': 1.4.0 + chai: 4.4.1 /@vitest/runner@0.34.6: resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} @@ -1568,6 +1636,14 @@ packages: '@vitest/utils': 0.34.6 p-limit: 4.0.0 pathe: 1.1.1 + dev: false + + /@vitest/runner@1.4.0: + resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} + dependencies: + '@vitest/utils': 1.4.0 + p-limit: 5.0.0 + pathe: 1.1.2 /@vitest/snapshot@0.34.6: resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} @@ -1575,25 +1651,39 @@ packages: magic-string: 0.30.5 pathe: 1.1.1 pretty-format: 29.7.0 + dev: false + + /@vitest/snapshot@1.4.0: + resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} + dependencies: + magic-string: 0.30.8 + pathe: 1.1.2 + pretty-format: 29.7.0 /@vitest/spy@0.34.6: resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} dependencies: tinyspy: 2.2.0 + dev: false - /@vitest/ui@0.34.6(vitest@0.34.6): - resolution: {integrity: sha512-/fxnCwGC0Txmr3tF3BwAbo3v6U2SkBTGR9UB8zo0Ztlx0BTOXHucE0gDHY7SjwEktCOHatiGmli9kZD6gYSoWQ==} - peerDependencies: - vitest: '>=0.30.1 <1' + /@vitest/spy@1.4.0: + resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} dependencies: - '@vitest/utils': 0.34.6 - fast-glob: 3.3.1 - fflate: 0.8.1 - flatted: 3.2.9 - pathe: 1.1.1 + tinyspy: 2.2.1 + + /@vitest/ui@1.4.0(vitest@1.4.0): + resolution: {integrity: sha512-XC6CMhN1gzYcGbpn6/Oanj4Au2EXwQEX6vpcOeLlZv8dy7g11Ukx8zwtYQbwxs9duK2s9j2o5rbQiCP5DPAcmw==} + peerDependencies: + vitest: 1.4.0 + dependencies: + '@vitest/utils': 1.4.0 + fast-glob: 3.3.2 + fflate: 0.8.2 + flatted: 3.3.1 + pathe: 1.1.2 picocolors: 1.0.0 - sirv: 2.0.3 - vitest: 0.34.6(@vitest/browser@0.34.6)(@vitest/ui@0.34.6)(playwright@1.40.1) + sirv: 2.0.4 + vitest: 1.4.0(@types/node@20.10.0)(@vitest/browser@1.4.0)(@vitest/ui@1.4.0) /@vitest/utils@0.34.6: resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} @@ -1601,6 +1691,15 @@ packages: diff-sequences: 29.6.3 loupe: 2.3.7 pretty-format: 29.7.0 + dev: false + + /@vitest/utils@1.4.0: + resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} + dependencies: + diff-sequences: 29.6.3 + estree-walker: 3.0.3 + loupe: 2.3.7 + pretty-format: 29.7.0 /JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} @@ -1626,11 +1725,20 @@ packages: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} + engines: {node: '>=0.4.0'} + /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} hasBin: true + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + engines: {node: '>=0.4.0'} + hasBin: true + /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} @@ -1931,6 +2039,19 @@ packages: loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 + dev: false + + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.3 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.0.8 /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} @@ -2548,35 +2669,37 @@ packages: '@esbuild/win32-arm64': 0.18.20 '@esbuild/win32-ia32': 0.18.20 '@esbuild/win32-x64': 0.18.20 + dev: true - /esbuild@0.19.8: - resolution: {integrity: sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w==} + /esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.19.8 - '@esbuild/android-arm64': 0.19.8 - '@esbuild/android-x64': 0.19.8 - '@esbuild/darwin-arm64': 0.19.8 - '@esbuild/darwin-x64': 0.19.8 - '@esbuild/freebsd-arm64': 0.19.8 - '@esbuild/freebsd-x64': 0.19.8 - '@esbuild/linux-arm': 0.19.8 - '@esbuild/linux-arm64': 0.19.8 - '@esbuild/linux-ia32': 0.19.8 - '@esbuild/linux-loong64': 0.19.8 - '@esbuild/linux-mips64el': 0.19.8 - '@esbuild/linux-ppc64': 0.19.8 - '@esbuild/linux-riscv64': 0.19.8 - '@esbuild/linux-s390x': 0.19.8 - '@esbuild/linux-x64': 0.19.8 - '@esbuild/netbsd-x64': 0.19.8 - '@esbuild/openbsd-x64': 0.19.8 - '@esbuild/sunos-x64': 0.19.8 - '@esbuild/win32-arm64': 0.19.8 - '@esbuild/win32-ia32': 0.19.8 - '@esbuild/win32-x64': 0.19.8 + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} @@ -2810,9 +2933,6 @@ packages: engines: {node: '>=4.0'} dev: true - /estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: @@ -2858,6 +2978,20 @@ packages: strip-final-newline: 3.0.0 dev: true + /execa@8.0.1: + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} + dependencies: + cross-spawn: 7.0.3 + get-stream: 8.0.1 + human-signals: 5.0.0 + is-stream: 3.0.0 + merge-stream: 2.0.0 + npm-run-path: 5.3.0 + onetime: 6.0.0 + signal-exit: 4.1.0 + strip-final-newline: 3.0.0 + /exit-on-epipe@1.0.1: resolution: {integrity: sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==} engines: {node: '>=0.8'} @@ -2901,6 +3035,17 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.5 + dev: true + + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -2915,8 +3060,8 @@ packages: dependencies: reusify: 1.0.4 - /fflate@0.8.1: - resolution: {integrity: sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ==} + /fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} /figures@5.0.0: resolution: {integrity: sha512-ej8ksPF4x6e5wvK9yevct0UCXh8TTFlWGVLlgjZuoBH1HwjIfKE/IdL5mq89sFA7zELi1VhKpmtDnrs7zWyeyg==} @@ -2971,8 +3116,8 @@ packages: resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} dev: true - /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} /for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} @@ -3076,6 +3221,10 @@ packages: engines: {node: '>=10'} dev: true + /get-stream@8.0.1: + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} @@ -3152,6 +3301,17 @@ packages: once: 1.4.0 path-is-absolute: 1.0.1 + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + /glob@8.0.1: resolution: {integrity: sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow==} engines: {node: '>=12'} @@ -3340,6 +3500,10 @@ packages: engines: {node: '>=14.18.0'} dev: true + /human-signals@5.0.0: + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} + /humanize-ms@1.2.1: resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} dependencies: @@ -3582,7 +3746,6 @@ packages: /is-stream@3.0.0: resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} @@ -3634,8 +3797,8 @@ packages: /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - /istanbul-lib-coverage@3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + /istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} dev: true @@ -3643,24 +3806,24 @@ packages: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} dependencies: - istanbul-lib-coverage: 3.2.0 + istanbul-lib-coverage: 3.2.2 make-dir: 4.0.0 supports-color: 7.2.0 dev: true - /istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + /istanbul-lib-source-maps@5.0.4: + resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} engines: {node: '>=10'} dependencies: + '@jridgewell/trace-mapping': 0.3.25 debug: 4.3.4 - istanbul-lib-coverage: 3.2.0 - source-map: 0.6.1 + istanbul-lib-coverage: 3.2.2 transitivePeerDependencies: - supports-color dev: true - /istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -3679,6 +3842,9 @@ packages: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: true + /js-tokens@8.0.3: + resolution: {integrity: sha512-UfJMcSJc+SEXEl9lH/VLHSZbThQyLpw1vLO1Lb+j4RWDvG3N2f7yj3PVQA3cmkTBNldJ9eFnM+xEXxHIXrYiJw==} + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -3798,6 +3964,14 @@ packages: /local-pkg@0.4.3: resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} engines: {node: '>=14'} + dev: false + + /local-pkg@0.5.0: + resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} + engines: {node: '>=14'} + dependencies: + mlly: 1.6.1 + pkg-types: 1.0.3 /locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} @@ -3906,12 +4080,27 @@ packages: engines: {node: '>=12'} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 + dev: false + + /magic-string@0.30.8: + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + + /magicast@0.3.3: + resolution: {integrity: sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==} + dependencies: + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 + source-map-js: 1.0.2 + dev: true /make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: true /make-error@1.3.6: @@ -3978,7 +4167,6 @@ packages: /merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - dev: true /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} @@ -3998,7 +4186,6 @@ packages: /mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} - dev: true /mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} @@ -4123,21 +4310,16 @@ packages: pkg-types: 1.0.3 ufo: 1.3.1 - /modern-node-polyfills@1.0.0(esbuild@0.18.20): - resolution: {integrity: sha512-w1yb6ae5qSUJJ2u41krkUAxs+L7i9143Qam8EuXwDMeZHxl1JN8RfTSXG4S2bt0RHIRMeoWm/HCeO0pNIHmIYQ==} - engines: {node: '>=14.0.0'} - peerDependencies: - esbuild: ^0.14.0 || ^0.15.0 || ^0.16.0 || ^0.17.0 || ^0.18.0 + /mlly@1.6.1: + resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} dependencies: - '@jspm/core': 2.0.1 - '@rollup/pluginutils': 5.0.5 - esbuild: 0.18.20 - local-pkg: 0.4.3 - transitivePeerDependencies: - - rollup + acorn: 8.11.3 + pathe: 1.1.2 + pkg-types: 1.0.3 + ufo: 1.5.1 - /mrmime@1.0.1: - resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==} + /mrmime@2.0.0: + resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} /ms@2.1.2: @@ -4251,6 +4433,12 @@ packages: path-key: 4.0.0 dev: true + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + path-key: 4.0.0 + /npmlog@6.0.2: resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -4329,7 +4517,6 @@ packages: engines: {node: '>=12'} dependencies: mimic-fn: 4.0.0 - dev: true /openurl@1.1.1: resolution: {integrity: sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==} @@ -4385,6 +4572,13 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: yocto-queue: 1.0.0 + dev: false + + /p-limit@5.0.0: + resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + engines: {node: '>=18'} + dependencies: + yocto-queue: 1.0.0 /p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} @@ -4457,7 +4651,6 @@ packages: /path-key@4.0.0: resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} engines: {node: '>=12'} - dev: true /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -4478,6 +4671,9 @@ packages: /pathe@1.1.1: resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + /pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} @@ -4515,8 +4711,8 @@ packages: optionalDependencies: fsevents: 2.3.2 - /postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + /postcss@8.4.35: + resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 @@ -4740,23 +4936,26 @@ packages: glob: 10.2.6 dev: true - /rollup@4.6.0: - resolution: {integrity: sha512-R8i5Her4oO1LiMQ3jKf7MUglYV/mhQ5g5OKeld5CnkmPdIGo79FDDQYqPhq/PCVuTQVuxsWgIbDy9F+zdHn80w==} + /rollup@4.13.0: + resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + dependencies: + '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.6.0 - '@rollup/rollup-android-arm64': 4.6.0 - '@rollup/rollup-darwin-arm64': 4.6.0 - '@rollup/rollup-darwin-x64': 4.6.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.6.0 - '@rollup/rollup-linux-arm64-gnu': 4.6.0 - '@rollup/rollup-linux-arm64-musl': 4.6.0 - '@rollup/rollup-linux-x64-gnu': 4.6.0 - '@rollup/rollup-linux-x64-musl': 4.6.0 - '@rollup/rollup-win32-arm64-msvc': 4.6.0 - '@rollup/rollup-win32-ia32-msvc': 4.6.0 - '@rollup/rollup-win32-x64-msvc': 4.6.0 + '@rollup/rollup-android-arm-eabi': 4.13.0 + '@rollup/rollup-android-arm64': 4.13.0 + '@rollup/rollup-darwin-arm64': 4.13.0 + '@rollup/rollup-darwin-x64': 4.13.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.13.0 + '@rollup/rollup-linux-arm64-gnu': 4.13.0 + '@rollup/rollup-linux-arm64-musl': 4.13.0 + '@rollup/rollup-linux-riscv64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-gnu': 4.13.0 + '@rollup/rollup-linux-x64-musl': 4.13.0 + '@rollup/rollup-win32-arm64-msvc': 4.13.0 + '@rollup/rollup-win32-ia32-msvc': 4.13.0 + '@rollup/rollup-win32-x64-msvc': 4.13.0 fsevents: 2.3.3 /run-async@3.0.0: @@ -4823,6 +5022,14 @@ packages: lru-cache: 6.0.0 dev: true + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: true + /set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: false @@ -4864,6 +5071,10 @@ packages: resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} engines: {node: '>=14'} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + /simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} dev: false @@ -4876,12 +5087,12 @@ packages: simple-concat: 1.0.1 dev: false - /sirv@2.0.3: - resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==} + /sirv@2.0.4: + resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} dependencies: - '@polka/url': 1.0.0-next.23 - mrmime: 1.0.1 + '@polka/url': 1.0.0-next.25 + mrmime: 2.0.0 totalist: 3.0.1 /slash@3.0.0: @@ -4946,6 +5157,7 @@ packages: /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + dev: false /spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} @@ -4987,6 +5199,10 @@ packages: /std-env@3.4.3: resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} + dev: false + + /std-env@3.7.0: + resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} /string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} @@ -5064,7 +5280,6 @@ packages: /strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} - dev: true /strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} @@ -5087,6 +5302,12 @@ packages: resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} dependencies: acorn: 8.10.0 + dev: false + + /strip-literal@2.0.0: + resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==} + dependencies: + js-tokens: 8.0.3 /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} @@ -5148,7 +5369,7 @@ packages: engines: {node: '>=8'} dependencies: '@istanbuljs/schema': 0.1.3 - glob: 7.2.0 + glob: 7.2.3 minimatch: 3.1.2 dev: true @@ -5173,14 +5394,28 @@ packages: /tinybench@2.5.1: resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + dev: false + + /tinybench@2.6.0: + resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} /tinypool@0.7.0: resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} engines: {node: '>=14.0.0'} + dev: false + + /tinypool@0.8.2: + resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} + engines: {node: '>=14.0.0'} /tinyspy@2.2.0: resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} engines: {node: '>=14.0.0'} + dev: false + + /tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} @@ -5189,6 +5424,11 @@ packages: os-tmpdir: 1.0.2 dev: false + /to-fast-properties@2.0.0: + resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} + engines: {node: '>=4'} + dev: true + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -5343,6 +5583,9 @@ packages: /ufo@1.3.1: resolution: {integrity: sha512-uY/99gMLIOlJPwATcMVYfqDSxUR9//AUcgZMzwfSTJPDKzA1S8mX4VLqa+fiAtveraQUBCz4FFcwVZBGbwBXIw==} + /ufo@1.5.1: + resolution: {integrity: sha512-HGyF79+/qZ4soRvM+nHERR2pJ3VXDZ/8sL1uLahdgEDf580NkgiWOxLk33FetExqOWp352JZRsgXbG/4MaGOSg==} + /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} @@ -5393,11 +5636,11 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-to-istanbul@9.1.3: - resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} + /v8-to-istanbul@9.2.0: + resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.20 + '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 dev: true @@ -5419,7 +5662,28 @@ packages: mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 5.0.3(@types/node@20.10.0) + vite: 5.1.6(@types/node@20.10.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + dev: false + + /vite-node@1.4.0(@types/node@20.10.0): + resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + pathe: 1.1.2 + picocolors: 1.0.0 + vite: 5.1.6(@types/node@20.10.0) transitivePeerDependencies: - '@types/node' - less @@ -5430,8 +5694,8 @@ packages: - supports-color - terser - /vite@5.0.3(@types/node@20.10.0): - resolution: {integrity: sha512-WgEq8WEKpZ8c0DL4M1+E+kBZEJyjBmGVrul6z8Ljfhv+PPbNF4aGq014DwNYxGz2FGq6NKL0N8usdiESWd2l2w==} + /vite@5.1.6(@types/node@20.10.0): + resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -5459,13 +5723,13 @@ packages: optional: true dependencies: '@types/node': 20.10.0 - esbuild: 0.19.8 - postcss: 8.4.31 - rollup: 4.6.0 + esbuild: 0.19.12 + postcss: 8.4.35 + rollup: 4.13.0 optionalDependencies: fsevents: 2.3.3 - /vitest@0.34.6(@vitest/browser@0.34.6)(@vitest/ui@0.34.6)(playwright@1.40.1): + /vitest@0.34.6(@vitest/browser@1.4.0)(@vitest/ui@1.4.0)(playwright@1.40.1): resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} engines: {node: '>=v14.18.0'} hasBin: true @@ -5499,12 +5763,12 @@ packages: '@types/chai': 4.3.5 '@types/chai-subset': 1.3.5 '@types/node': 20.10.0 - '@vitest/browser': 0.34.6(esbuild@0.18.20)(vitest@0.34.6) + '@vitest/browser': 1.4.0(playwright@1.40.1)(vitest@1.4.0) '@vitest/expect': 0.34.6 '@vitest/runner': 0.34.6 '@vitest/snapshot': 0.34.6 '@vitest/spy': 0.34.6 - '@vitest/ui': 0.34.6(vitest@0.34.6) + '@vitest/ui': 1.4.0(vitest@1.4.0) '@vitest/utils': 0.34.6 acorn: 8.10.0 acorn-walk: 8.2.0 @@ -5520,7 +5784,7 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.7.0 - vite: 5.0.3(@types/node@20.10.0) + vite: 5.1.6(@types/node@20.10.0) vite-node: 0.34.6(@types/node@20.10.0) why-is-node-running: 2.2.2 transitivePeerDependencies: @@ -5531,6 +5795,64 @@ packages: - sugarss - supports-color - terser + dev: false + + /vitest@1.4.0(@types/node@20.10.0)(@vitest/browser@1.4.0)(@vitest/ui@1.4.0): + resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@types/node': ^18.0.0 || >=20.0.0 + '@vitest/browser': 1.4.0 + '@vitest/ui': 1.4.0 + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@types/node': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/node': 20.10.0 + '@vitest/browser': 1.4.0(playwright@1.40.1)(vitest@1.4.0) + '@vitest/expect': 1.4.0 + '@vitest/runner': 1.4.0 + '@vitest/snapshot': 1.4.0 + '@vitest/spy': 1.4.0 + '@vitest/ui': 1.4.0(vitest@1.4.0) + '@vitest/utils': 1.4.0 + acorn-walk: 8.3.2 + chai: 4.4.1 + debug: 4.3.4 + execa: 8.0.1 + local-pkg: 0.5.0 + magic-string: 0.30.8 + pathe: 1.1.2 + picocolors: 1.0.0 + std-env: 3.7.0 + strip-literal: 2.0.0 + tinybench: 2.6.0 + tinypool: 0.8.2 + vite: 5.1.6(@types/node@20.10.0) + vite-node: 1.4.0(@types/node@20.10.0) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser /vscode-oniguruma@1.7.0: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} -- 2.45.2 From 852b1b766c6d851896a2dcffb05b874aad3152ac Mon Sep 17 00:00:00 2001 From: Alina Sireneva Date: Mon, 18 Mar 2024 01:49:55 +0300 Subject: [PATCH 2/4] test: properly run tests on bun turned out bun sucks :D --- .config/vite-utils/fixup-bun-test.ts | 128 ++++++ .config/vite-utils/fixup-cjs.ts | 26 ++ .config/vite-utils/test-setup-plugin.ts | 21 + .config/vite-utils/test-setup.mts | 9 + .config/vite.browser.mts | 24 +- .config/vite.bun.mts | 130 +++++- .config/vite.mts | 2 +- .config/vitest.setup.mts | 9 - .github/workflows/test.yaml | 6 +- package.json | 1 + packages/node/src/utils/tcp.test.ts | 2 +- packages/sqlite/test/sqlite.test.ts | 2 +- packages/test/package.json | 1 + packages/test/src/crypto.ts | 22 +- .../src/__snapshots__/diff.test.ts.snap | 326 +++++++------- .../codegen/__snapshots__/errors.test.ts.snap | 2 +- .../codegen/__snapshots__/reader.test.ts.snap | 150 +++---- .../codegen/__snapshots__/types.test.ts.snap | 406 +++++++++--------- .../codegen/__snapshots__/writer.test.ts.snap | 90 ++-- packages/wasm/tests/init.ts | 2 +- pnpm-lock.yaml | 57 ++- 21 files changed, 859 insertions(+), 557 deletions(-) create mode 100644 .config/vite-utils/fixup-bun-test.ts create mode 100644 .config/vite-utils/fixup-cjs.ts create mode 100644 .config/vite-utils/test-setup-plugin.ts create mode 100644 .config/vite-utils/test-setup.mts delete mode 100644 .config/vitest.setup.mts diff --git a/.config/vite-utils/fixup-bun-test.ts b/.config/vite-utils/fixup-bun-test.ts new file mode 100644 index 00000000..28edfb2b --- /dev/null +++ b/.config/vite-utils/fixup-bun-test.ts @@ -0,0 +1,128 @@ +const bunTest = require('bun:test') +const console = require('console') // https://github.com/oven-sh/bun/issues/6044 +const chaiExpect = require('chai').expect +const bunExpect = bunTest.expect + +class BunTestUnsupportedError extends Error { + constructor(readonly feature) { + super() + } +} + +function _wrapBunExpect(args, bun, invert = false) { + let chai = chaiExpect(...args) + if (invert) chai = chai.not + + return new Proxy(bun, { + get: (target, prop, receiver) => { + if (prop === 'eq') return (...args) => chai.eq(...args) + if (prop === 'eql') return (...args) => chai.eql(...args) + if (prop === 'throws') return (...args) => chai.throws(...args) + if (prop === 'is') return chai.is + if (prop === 'to') return chai.to + if (prop === 'false') return chai.false + if (prop === 'true') return chai.true + if (prop === 'deep') return chai.deep + + if (prop === 'toMatchInlineSnapshot') { + return (expected, options) => { + let snapshot + if (typeof args[0] === 'string') { + const snapshot = '"' + args[0] + '"' + return chaiExpect(snapshot).eql(expected.trim()) + } else { + const obj = eval('(' + expected + ')') // idc lol + return chaiExpect(args[0]).eql(obj) + } + } + } + + if (prop === 'not') { + const not = bun.not + return _wrapBunExpect(args, not, !invert) + } + + if (prop === 'rejects') { + if (typeof args[0] === 'function') { + const newArgs = [args[0](), ...args.slice(1)] + return _wrapBunExpect(newArgs, bunExpect(...newArgs), invert).rejects + } + + return bun.rejects + } + if (prop === 'resolves') { + return bun.resolves + } + + if (prop === 'toHaveBeenCalledOnce' || prop === 'toHaveBeenCalledTimes' || prop === 'toMatchSnapshot') { + throw new BunTestUnsupportedError(prop) + } + + return Reflect.get(target, prop, receiver).bind(bun) + }, + }) +} + +export function expect(...args) { + return _wrapBunExpect(args, bunExpect(...args)) +} + +expect.any = bunExpect.any + +const stubbedGlobal = new Map() +function stubGlobal(name, value) { + stubbedGlobal.set(name, globalThis[name]) + globalThis[name] = value +} + +function unstubAllGlobals() { + for (const [name, value] of stubbedGlobal) { + globalThis[name] = value + } + stubbedGlobal.clear() +} + +const _wrapRunner = (name, fn) => { + const handleError = (err) => { + if (err instanceof BunTestUnsupportedError) { + console.warn(`skipping "${name}" - ${err.feature} is currently not supported in bun:test`) + return + } + throw err + } + return (...args) => { + try { + const res = fn(...args) + if (res instanceof Promise) { + return res.catch(handleError) + } + return res + } catch (e) { + return handleError(e) + } + } +} + +const it = (name, fn) => bunTest.it(name, _wrapRunner(name, fn)) +it.only = (name, fn) => bunTest.it.only(name, _wrapRunner(name, fn)) +it.skip = (name, fn) => bunTest.it.skip(name, _wrapRunner(name, fn)) +it.each = (table) => (name, fn) => bunTest.it.each(table)(name, _wrapRunner(name, fn)) + +export { it } + +export const vi = { + ...bunTest.jest, + ...bunTest.vi, + mocked: (fn) => fn, + stubGlobal, + unstubAllGlobals, + ...['setSystemTime', 'advanceTimersByTimeAsync', 'advanceTimersByTime', 'waitFor', 'doMock'].reduce( + (acc, name) => ({ + ...acc, + [name]: () => { + throw new BunTestUnsupportedError(name) + }, + }), + {}, + ), +} diff --git a/.config/vite-utils/fixup-cjs.ts b/.config/vite-utils/fixup-cjs.ts new file mode 100644 index 00000000..f43da923 --- /dev/null +++ b/.config/vite-utils/fixup-cjs.ts @@ -0,0 +1,26 @@ +import { Plugin } from 'vite' +import * as cjsLexer from 'cjs-module-lexer' +import esbuild from 'esbuild' + +await cjsLexer.init() + +export function fixupCjs(): Plugin { + return { + name: 'fixup-cjs', + async transform(code, id) { + if (!id.match(/\/packages\/tl\/.*\.js$/)) return code + + const lexed = cjsLexer.parse(code) + const r = await esbuild.transform(code, { format: 'esm' }) + code = r.code.replace(/export default require_stdin\(\);/, '') + + code += 'const __exp = require_stdin()\n' + + for (const exp of lexed.exports) { + code += `export const ${exp} = __exp.${exp}\n` + } + + return code + }, + } +} diff --git a/.config/vite-utils/test-setup-plugin.ts b/.config/vite-utils/test-setup-plugin.ts new file mode 100644 index 00000000..4e638511 --- /dev/null +++ b/.config/vite-utils/test-setup-plugin.ts @@ -0,0 +1,21 @@ +import { Plugin } from 'vite' +import { fileURLToPath } from 'url' + +const setupFile = fileURLToPath(new URL('./test-setup.mts', import.meta.url)) + +export function testSetup(params?: { additionalCode?: string }): Plugin { + const { additionalCode = '' } = params || {} + + return { + name: 'test-setup', + async transform(code, id) { + if (!id.match(/\.test\.m?[tj]s/)) return + + return { + code: `import '${setupFile}'\n` + additionalCode + code, + map: null, + } + }, + apply: 'build', + } +} diff --git a/.config/vite-utils/test-setup.mts b/.config/vite-utils/test-setup.mts new file mode 100644 index 00000000..7e112de8 --- /dev/null +++ b/.config/vite-utils/test-setup.mts @@ -0,0 +1,9 @@ +import { setPlatform } from '../../packages/core/src/platform.js' + +// @ts-expect-error no .env here +const TEST_ENV = import.meta.env.TEST_ENV +if (TEST_ENV === 'browser') { + setPlatform(new (await import('../../packages/web/src/platform.js')).WebPlatform()) +} else { + setPlatform(new (await import('../../packages/node/src/platform.js')).NodePlatform()) +} \ No newline at end of file diff --git a/.config/vite.browser.mts b/.config/vite.browser.mts index df0c4340..57c5f10e 100644 --- a/.config/vite.browser.mts +++ b/.config/vite.browser.mts @@ -1,11 +1,8 @@ /// import { defineConfig, mergeConfig } from 'vite' -import * as cjsLexer from 'cjs-module-lexer' -import esbuild from 'esbuild' import baseConfig from './vite.mjs' - -await cjsLexer.init() +import { fixupCjs } from './vite-utils/fixup-cjs' export default mergeConfig(baseConfig, defineConfig({ test: { @@ -26,24 +23,7 @@ export default mergeConfig(baseConfig, defineConfig({ // ], }, plugins: [ - { - name: 'fixup-cjs', - async transform(code, id) { - if (!id.match(/\/packages\/tl\/.*\.js$/)) return code - - const lexed = cjsLexer.parse(code) - const r = await esbuild.transform(code, { format: 'esm' }) - code = r.code.replace(/export default require_stdin\(\);/, '') - - code += 'const __exp = require_stdin()\n' - - for (const exp of lexed.exports) { - code += `export const ${exp} = __exp.${exp}\n` - } - - return code - } - } + fixupCjs(), ], define: { 'import.meta.env.TEST_ENV': '"browser"' diff --git a/.config/vite.bun.mts b/.config/vite.bun.mts index 26f77310..8552be38 100644 --- a/.config/vite.bun.mts +++ b/.config/vite.bun.mts @@ -1,10 +1,126 @@ -/// -import { defineConfig, mergeConfig } from 'vite' +import { defineConfig } from 'vite' +import { globSync } from 'glob' +import { resolve, join } from 'path' +import * as fs from 'fs' +import { fixupCjs } from './vite-utils/fixup-cjs' +import { testSetup } from './vite-utils/test-setup-plugin' -import baseConfig from './vite.mjs' +const SKIP_PACKAGES = ['create-bot', 'crypto-node'] -export default mergeConfig(baseConfig, defineConfig({ +// https://github.com/oven-sh/bun/issues/4145 prevents us from using vitest directly +// so we have to use bun's native test runner +const FIXUP_TEST = resolve(__dirname, 'vite-utils/fixup-bun-test.ts') + + +// bun:test doesn't support certain features of vitest, so we'll skip them for now +// https://github.com/oven-sh/bun/issues/1825 +const SKIP_TESTS = [ + // uses timers + 'core/src/network/config-manager.test.ts', + // incompatible spies + 'core/src/utils/crypto/mtproto.test.ts', + // snapshot format + 'tl-utils/src/codegen/errors.test.ts' +].map(path => resolve(__dirname, '../packages', path)) + +export default defineConfig({ + build: { + lib: { + entry: (() => { + const files: string[] = [] + + const packages = resolve(__dirname, '../packages') + + for (const dir of fs.readdirSync(packages)) { + if (dir.startsWith('.') || SKIP_PACKAGES.includes(dir)) continue + if (!fs.statSync(resolve(packages, dir)).isDirectory()) continue + + const fullDir = resolve(packages, dir) + + for (const file of globSync(join(fullDir, '**/*.test.ts'))) { + if (SKIP_TESTS.includes(file)) continue + files.push(file) + } + } + + return files + })(), + formats: ['es'], + }, + rollupOptions: { + external: [ + 'zlib', + 'vitest', + 'stream', + 'net', + 'crypto', + 'module', + 'fs', + 'fs/promises', + 'events', + 'path', + 'util', + 'os', + 'bun:test', + ], + output: { + chunkFileNames: 'chunk-[hash].js', + entryFileNames: '[name]-[hash].test.js', + minifyInternalExports: false, + }, + treeshake: false, + }, + commonjsOptions: { + ignoreDynamicRequires: true, + }, + outDir: 'dist/tests', + emptyOutDir: true, + target: 'esnext', + minify: false, + }, + plugins: [ + fixupCjs(), + { + name: 'fix-vitest', + transform(code) { + if (!code.includes('vitest')) return code + code = code.replace(/^import {(.+?)} from ['"]vitest['"]/gms, (_, names) => { + const namesParsed = names.split(',').map((name) => name.trim()) + + const namesFromFixup: string[] = [] + const newNames = namesParsed + .map((name) => { + if (['expect', 'vi', 'it'].includes(name)) { + namesFromFixup.push(name) + return '' + } + return name + }) + .filter(Boolean) + + let code = `import {${newNames.join(', ')}} from 'bun:test'` + + if (namesFromFixup.length) { + code += `\nimport { ${namesFromFixup.join(', ')} } from '${FIXUP_TEST}'` + } + return code + }) + return code + }, + }, + { + name: 'fix-wasm-load', + async transform(code, id) { + if (code.includes('@mtcute/wasm/mtcute.wasm')) { + return code.replace('@mtcute/wasm/mtcute.wasm', resolve(__dirname, '../packages/wasm/mtcute.wasm')) + } + + return code + } + }, + testSetup(), + ], define: { - 'import.meta.env.TEST_ENV': '"bun"' - } -})) + 'import.meta.env.TEST_ENV': '"bun"', + }, +}) diff --git a/.config/vite.mts b/.config/vite.mts index 52164131..c346cdd2 100644 --- a/.config/vite.mts +++ b/.config/vite.mts @@ -12,7 +12,7 @@ export default defineConfig({ ], }, setupFiles: [ - './.config/vitest.setup.mts' + './.config/vite-utils/test-setup.mts' ] }, define: { diff --git a/.config/vitest.setup.mts b/.config/vitest.setup.mts deleted file mode 100644 index ca0294fd..00000000 --- a/.config/vitest.setup.mts +++ /dev/null @@ -1,9 +0,0 @@ -import { setPlatform } from '../packages/core/src/platform.js' - -// @ts-expect-error no .env here -const TEST_ENV = import.meta.env.TEST_ENV -if (TEST_ENV === 'browser') { - setPlatform(new (await import('../packages/web/src/platform.js')).WebPlatform()) -} else { - setPlatform(new (await import('../packages/node/src/platform.js')).NodePlatform()) -} \ No newline at end of file diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 93cc765f..c23cd9e3 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -43,14 +43,18 @@ jobs: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} with: files: ./coverage/coverage-final.json + test-bun: runs-on: ubuntu-latest needs: lint steps: - uses: actions/checkout@v4 + - uses: ./.github/actions/init - uses: ./.github/actions/init-bun + - name: 'Build tests' + run: pnpm exec vite build -c .config/vite.bun.mts - name: 'Run tests' - run: bun run test:ci + run: cd dist/tests && bun test test-web: runs-on: ubuntu-latest diff --git a/package.json b/package.json index 3fd58dba..76f42749 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "@vitest/browser": "1.4.0", "@vitest/coverage-v8": "1.4.0", "@vitest/ui": "1.4.0", + "chai": "^5.1.0", "cjs-module-lexer": "1.2.3", "dotenv-flow": "3.2.0", "dpdm": "3.14.0", diff --git a/packages/node/src/utils/tcp.test.ts b/packages/node/src/utils/tcp.test.ts index da70f7b9..684e3cf4 100644 --- a/packages/node/src/utils/tcp.test.ts +++ b/packages/node/src/utils/tcp.test.ts @@ -5,7 +5,7 @@ import { TransportState } from '@mtcute/core' import { getPlatform } from '@mtcute/core/platform.js' import { defaultProductionDc, LogManager } from '@mtcute/core/utils.js' -if (import.meta.env.TEST_ENV === 'node' || import.meta.env.TEST_ENV === 'bun') { +if (import.meta.env.TEST_ENV === 'node') { vi.doMock('net', () => ({ connect: vi.fn().mockImplementation((port: number, ip: string, cb: () => void) => { cb() diff --git a/packages/sqlite/test/sqlite.test.ts b/packages/sqlite/test/sqlite.test.ts index 3cc5e385..c3709f8e 100644 --- a/packages/sqlite/test/sqlite.test.ts +++ b/packages/sqlite/test/sqlite.test.ts @@ -10,7 +10,7 @@ import { import { SqliteStorage } from '../src/index.js' -if (import.meta.env.TEST_ENV === 'node' || import.meta.env.TEST_ENV === 'bun') { +if (import.meta.env.TEST_ENV === 'node') { describe('SqliteStorage', () => { const storage = new SqliteStorage(':memory:') diff --git a/packages/test/package.json b/packages/test/package.json index 3d1c3d71..b8c473f4 100644 --- a/packages/test/package.json +++ b/packages/test/package.json @@ -7,6 +7,7 @@ "license": "MIT", "main": "src/index.ts", "type": "module", + "sideEffects": false, "scripts": { "build": "pnpm run -w build-package test" }, diff --git a/packages/test/src/crypto.ts b/packages/test/src/crypto.ts index 7a2a5bb8..dab13e34 100644 --- a/packages/test/src/crypto.ts +++ b/packages/test/src/crypto.ts @@ -2,10 +2,7 @@ import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vite import { gzipSync, inflateSync } from 'zlib' import { getPlatform } from '@mtcute/core/platform.js' -import { - dataViewFromBuffer, - ICryptoProvider, -} from '@mtcute/core/utils.js' +import { dataViewFromBuffer, ICryptoProvider } from '@mtcute/core/utils.js' import { defaultCryptoProvider } from './platform.js' @@ -42,9 +39,14 @@ export function withFakeRandom(provider: ICryptoProvider, source = DEFAULT_ENTRO offset += buf.length } - provider.randomFill = getRandomValues + return new Proxy(provider, { + get(target, prop, receiver) { + if (prop === 'randomFill') return getRandomValues - return provider + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return Reflect.get(target, prop, receiver) + }, + }) } export function useFakeMathRandom(source = DEFAULT_ENTROPY): void { @@ -176,14 +178,10 @@ export function testCryptoProvider(c: ICryptoProvider): void { p.hexDecode('6D656E746174696F6E206F6620494745206D6F646520666F72204F70656E5353'), ) expect( - p.hexEncode( - aes.encrypt(p.hexDecode('99706487a1cde613bc6de0b6f24b1c7aa448c8b9c3403e3467a8cad89340f53b')), - ), + p.hexEncode(aes.encrypt(p.hexDecode('99706487a1cde613bc6de0b6f24b1c7aa448c8b9c3403e3467a8cad89340f53b'))), ).to.eq('792ea8ae577b1a66cb3bd92679b8030ca54ee631976bd3a04547fdcb4639fa69') expect( - p.hexEncode( - aes.decrypt(p.hexDecode('792ea8ae577b1a66cb3bd92679b8030ca54ee631976bd3a04547fdcb4639fa69')), - ), + p.hexEncode(aes.decrypt(p.hexDecode('792ea8ae577b1a66cb3bd92679b8030ca54ee631976bd3a04547fdcb4639fa69'))), ).to.eq('99706487a1cde613bc6de0b6f24b1c7aa448c8b9c3403e3467a8cad89340f53b') }) diff --git a/packages/tl-utils/src/__snapshots__/diff.test.ts.snap b/packages/tl-utils/src/__snapshots__/diff.test.ts.snap index b1f53b43..9296cb59 100644 --- a/packages/tl-utils/src/__snapshots__/diff.test.ts.snap +++ b/packages/tl-utils/src/__snapshots__/diff.test.ts.snap @@ -623,159 +623,6 @@ exports[`generateTlSchemasDifference shows added constructors 1`] = ` } `; -exports[`generateTlSchemasDifference shows removed constructors 1`] = ` -{ - "classes": { - "added": [], - "modified": [], - "removed": [ - { - "arguments": [], - "id": 3847402009, - "kind": "class", - "name": "test2", - "type": "Test", - }, - ], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "unions": { - "added": [], - "modified": [ - { - "classes": { - "added": [], - "modified": [], - "removed": [ - { - "arguments": [], - "id": 3847402009, - "kind": "class", - "name": "test2", - "type": "Test", - }, - ], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "name": "Test", - }, - ], - "removed": [], - }, -} -`; - -exports[`generateTlSchemasDifference shows modified constructors 1`] = ` -{ - "classes": { - "added": [], - "modified": [ - { - "arguments": { - "added": [], - "modified": [ - { - "name": "foo", - "type": { - "new": "Foo", - "old": "int", - }, - }, - ], - "removed": [], - }, - "id": { - "new": 3348640942, - "old": 1331975629, - }, - "name": "test", - }, - ], - "removed": [], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "unions": { - "added": [], - "modified": [], - "removed": [], - }, -} -`; - -exports[`generateTlSchemasDifference shows removed unions 1`] = ` -{ - "classes": { - "added": [], - "modified": [ - { - "arguments": { - "added": [], - "modified": [ - { - "name": "foo", - "type": { - "new": "Foo", - "old": "int", - }, - }, - ], - "removed": [], - }, - "id": { - "new": 3348640942, - "old": 1331975629, - }, - "name": "test", - }, - ], - "removed": [ - { - "arguments": [], - "id": 3739166976, - "kind": "class", - "name": "test1", - "type": "Test1", - }, - ], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "unions": { - "added": [], - "modified": [], - "removed": [ - { - "classes": [ - { - "arguments": [], - "id": 3739166976, - "kind": "class", - "name": "test1", - "type": "Test1", - }, - ], - "name": "Test1", - }, - ], - }, -} -`; - exports[`generateTlSchemasDifference shows added unions 1`] = ` { "classes": { @@ -838,6 +685,79 @@ exports[`generateTlSchemasDifference shows added unions 1`] = ` } `; +exports[`generateTlSchemasDifference shows modified constructors 1`] = ` +{ + "classes": { + "added": [], + "modified": [ + { + "arguments": { + "added": [], + "modified": [ + { + "name": "foo", + "type": { + "new": "Foo", + "old": "int", + }, + }, + ], + "removed": [], + }, + "id": { + "new": 3348640942, + "old": 1331975629, + }, + "name": "test", + }, + ], + "removed": [], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "unions": { + "added": [], + "modified": [], + "removed": [], + }, +} +`; + +exports[`generateTlSchemasDifference shows modified methods 1`] = ` +{ + "classes": { + "added": [], + "modified": [], + "removed": [], + }, + "methods": { + "added": [], + "modified": [ + { + "id": { + "new": 3994885231, + "old": 471282454, + }, + "name": "test", + }, + ], + "removed": [], + }, + "unions": { + "added": [ + undefined, + ], + "modified": [], + "removed": [ + undefined, + ], + }, +} +`; + exports[`generateTlSchemasDifference shows modified unions 1`] = ` { "classes": { @@ -1114,33 +1034,113 @@ exports[`generateTlSchemasDifference shows modified unions 3`] = ` } `; -exports[`generateTlSchemasDifference shows modified methods 1`] = ` +exports[`generateTlSchemasDifference shows removed constructors 1`] = ` { "classes": { "added": [], "modified": [], - "removed": [], + "removed": [ + { + "arguments": [], + "id": 3847402009, + "kind": "class", + "name": "test2", + "type": "Test", + }, + ], }, "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "unions": { "added": [], "modified": [ { - "id": { - "new": 3994885231, - "old": 471282454, + "classes": { + "added": [], + "modified": [], + "removed": [ + { + "arguments": [], + "id": 3847402009, + "kind": "class", + "name": "test2", + "type": "Test", + }, + ], }, - "name": "test", + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "name": "Test", }, ], "removed": [], }, - "unions": { - "added": [ - undefined, +} +`; + +exports[`generateTlSchemasDifference shows removed unions 1`] = ` +{ + "classes": { + "added": [], + "modified": [ + { + "arguments": { + "added": [], + "modified": [ + { + "name": "foo", + "type": { + "new": "Foo", + "old": "int", + }, + }, + ], + "removed": [], + }, + "id": { + "new": 3348640942, + "old": 1331975629, + }, + "name": "test", + }, ], + "removed": [ + { + "arguments": [], + "id": 3739166976, + "kind": "class", + "name": "test1", + "type": "Test1", + }, + ], + }, + "methods": { + "added": [], + "modified": [], + "removed": [], + }, + "unions": { + "added": [], "modified": [], "removed": [ - undefined, + { + "classes": [ + { + "arguments": [], + "id": 3739166976, + "kind": "class", + "name": "test1", + "type": "Test1", + }, + ], + "name": "Test1", + }, ], }, } diff --git a/packages/tl-utils/src/codegen/__snapshots__/errors.test.ts.snap b/packages/tl-utils/src/codegen/__snapshots__/errors.test.ts.snap index ec018883..616c872a 100644 --- a/packages/tl-utils/src/codegen/__snapshots__/errors.test.ts.snap +++ b/packages/tl-utils/src/codegen/__snapshots__/errors.test.ts.snap @@ -125,7 +125,7 @@ RpcError.fromTl = function (obj) { var err = new RpcError(obj.errorCode, obj.errorMessage); var match, param; - if ((match=err.text.match(/^FLOOD_WAIT_(\d+)$/))!=null){ err.text = 'FLOOD_WAIT_%d'; param = err.duration = parseInt(match[1]) } + if ((match=err.text.match(/^FLOOD_WAIT_(d+)$/))!=null){ err.text = 'FLOOD_WAIT_%d'; param = err.duration = parseInt(match[1]) } else return err diff --git a/packages/tl-utils/src/codegen/__snapshots__/reader.test.ts.snap b/packages/tl-utils/src/codegen/__snapshots__/reader.test.ts.snap index e063b51c..d23976f1 100644 --- a/packages/tl-utils/src/codegen/__snapshots__/reader.test.ts.snap +++ b/packages/tl-utils/src/codegen/__snapshots__/reader.test.ts.snap @@ -59,6 +59,65 @@ exports[`generateReaderCodeForTlEntries > updates readers used in bare vectors 1 }" `; +exports[`generateReaderCodeForTlEntries doesn't generate code for methods by default 1`] = ` +"var m={ +471282454:function(r){return{_:'test'}}, +}" +`; + +exports[`generateReaderCodeForTlEntries generates code for methods if asked to 1`] = ` +"var m={ +471282454:function(r){return{_:'test'}}, +2119910527:function(r){return{_:'test2'}}, +}" +`; + +exports[`generateReaderCodeForTlEntries generates code for multiple entries 1`] = ` +"var m={ +471282454:function(r){return{_:'test'}}, +2119910527:function(r){return{_:'test2'}}, +}" +`; + +exports[`generateReaderCodeForTlEntries method return readers doesn't include Bool parsing 1`] = ` +"var m={ +_results:{ +}, +}" +`; + +exports[`generateReaderCodeForTlEntries method return readers includes primitive return type parsing info 1`] = ` +"var m={ +1809692154:function(r){return{_:'test1'}}, +_results:{ +'test':function(r){return r.int()}, +}, +}" +`; + +exports[`generateReaderCodeForTlEntries method return readers includes primitive vectors return type parsing info 1`] = ` +"var m={ +_results:{ +'test':function(r){return r.vector(r.int)}, +}, +}" +`; + +exports[`generateReaderCodeForTlEntries method return readers includes primitive vectors return type parsing info 2`] = ` +"var m={ +_results:{ +'test':function(r){return r.vector(r.int)}, +}, +}" +`; + +exports[`generateReaderCodeForTlEntries updates readers used in bare vectors 1`] = ` +"var m={ +471282454:function(r=this){return{_:'test'}}, +3562390222:function(r){return{_:'test2',a:r.vector(m[471282454],1),}}, +}" +`; + exports[`generateReaderCodeForTlEntry > generates code for bare types 1`] = `"1945237724:function(r){return{_:'msg_container',messages:r.vector(m[155834844],1),}},"`; exports[`generateReaderCodeForTlEntry > generates code for bare types 2`] = `"2924480661:function(r){return{_:'future_salts',salts:r.vector(m[155834844]),current:r.object(),}},"`; @@ -89,7 +148,21 @@ exports[`generateReaderCodeForTlEntry > generates code for constructors without exports[`generateReaderCodeForTlEntry > generates code with raw flags for constructors with flags 1`] = `"1554225816:function(r){var flags=r.uint(),flags2=r.uint();return{_:'test',flags:flags,flags2:flags2,}},"`; -exports[`generateReaderCodeForTlEntry generates code for constructors without arguments 1`] = `"2875595611:function(r){return{_:'topPeerCategoryBotsPM'}},"`; +exports[`generateReaderCodeForTlEntry generates code for bare types 1`] = `"1945237724:function(r){return{_:'msg_container',messages:r.vector(m[155834844],1),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for bare types 2`] = `"2924480661:function(r){return{_:'future_salts',salts:r.vector(m[155834844]),current:r.object(),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for bare types 3`] = `"2924480661:function(r){return{_:'future_salts',salts:r.vector(m[155834844],1),current:m[155834844](r),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with arguments before flags field 1`] = `"2262925665:function(r){var id=r.long(),flags=r.uint();return{_:'poll',id:id,quiz:!!(flags&8),question:r.string(),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with generics 1`] = `"3667594509:function(r){return{_:'invokeWithLayer',layer:r.int(),query:r.object(),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with multiple flags fields 1`] = `"1041346555:function(r){var flags=r.uint(),pts=r.int(),timeout=flags&2?r.int():void 0,flags2=r.uint();return{_:'updates.channelDifferenceEmpty',final:!!(flags&1),pts:pts,timeout:timeout,canDeleteChannel:!!(flags2&1),}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with optional arguments 1`] = `"1041346555:function(r){var flags=r.uint();return{_:'updates.channelDifferenceEmpty',final:!!(flags&1),pts:r.int(),timeout:flags&2?r.int():void 0,}},"`; + +exports[`generateReaderCodeForTlEntry generates code for constructors with optional vector arguments 1`] = `"2338894028:function(r){var flags=r.uint();return{_:'messages.getWebPagePreview',message:r.string(),entities:flags&8?r.vector(r.object):void 0,}},"`; exports[`generateReaderCodeForTlEntry generates code for constructors with simple arguments 1`] = `"2299280777:function(r){return{_:'inputBotInlineMessageID',dcId:r.int(),id:r.long(),accessHash:r.long(),}},"`; @@ -99,81 +172,8 @@ exports[`generateReaderCodeForTlEntry generates code for constructors with simpl exports[`generateReaderCodeForTlEntry generates code for constructors with true flags 1`] = `"649453030:function(r){var flags=r.uint();return{_:'messages.messageEditData',caption:!!(flags&1),}},"`; -exports[`generateReaderCodeForTlEntry generates code for constructors with optional arguments 1`] = `"1041346555:function(r){var flags=r.uint();return{_:'updates.channelDifferenceEmpty',final:!!(flags&1),pts:r.int(),timeout:flags&2?r.int():void 0,}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with arguments before flags field 1`] = `"2262925665:function(r){var id=r.long(),flags=r.uint();return{_:'poll',id:id,quiz:!!(flags&8),question:r.string(),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with multiple flags fields 1`] = `"1041346555:function(r){var flags=r.uint(),pts=r.int(),timeout=flags&2?r.int():void 0,flags2=r.uint();return{_:'updates.channelDifferenceEmpty',final:!!(flags&1),pts:pts,timeout:timeout,canDeleteChannel:!!(flags2&1),}},"`; - exports[`generateReaderCodeForTlEntry generates code for constructors with vector arguments 1`] = `"2131196633:function(r){return{_:'contacts.resolvedPeer',peer:r.object(),chats:r.vector(r.object),users:r.vector(r.object),}},"`; -exports[`generateReaderCodeForTlEntry generates code for constructors with optional vector arguments 1`] = `"2338894028:function(r){var flags=r.uint();return{_:'messages.getWebPagePreview',message:r.string(),entities:flags&8?r.vector(r.object):void 0,}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with generics 1`] = `"3667594509:function(r){return{_:'invokeWithLayer',layer:r.int(),query:r.object(),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for bare types 1`] = `"1945237724:function(r){return{_:'msg_container',messages:r.vector(m[155834844],1),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for bare types 2`] = `"2924480661:function(r){return{_:'future_salts',salts:r.vector(m[155834844]),current:r.object(),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for bare types 3`] = `"2924480661:function(r){return{_:'future_salts',salts:r.vector(m[155834844],1),current:m[155834844](r),}},"`; +exports[`generateReaderCodeForTlEntry generates code for constructors without arguments 1`] = `"2875595611:function(r){return{_:'topPeerCategoryBotsPM'}},"`; exports[`generateReaderCodeForTlEntry generates code with raw flags for constructors with flags 1`] = `"1554225816:function(r){var flags=r.uint(),flags2=r.uint();return{_:'test',flags:flags,flags2:flags2,}},"`; - -exports[`generateReaderCodeForTlEntries method return readers includes primitive return type parsing info 1`] = ` -"var m={ -1809692154:function(r){return{_:'test1'}}, -_results:{ -'test':function(r){return r.int()}, -}, -}" -`; - -exports[`generateReaderCodeForTlEntries method return readers includes primitive vectors return type parsing info 1`] = ` -"var m={ -_results:{ -'test':function(r){return r.vector(r.int)}, -}, -}" -`; - -exports[`generateReaderCodeForTlEntries method return readers includes primitive vectors return type parsing info 2`] = ` -"var m={ -_results:{ -'test':function(r){return r.vector(r.int)}, -}, -}" -`; - -exports[`generateReaderCodeForTlEntries method return readers doesn't include Bool parsing 1`] = ` -"var m={ -_results:{ -}, -}" -`; - -exports[`generateReaderCodeForTlEntries generates code for multiple entries 1`] = ` -"var m={ -471282454:function(r){return{_:'test'}}, -2119910527:function(r){return{_:'test2'}}, -}" -`; - -exports[`generateReaderCodeForTlEntries doesn't generate code for methods by default 1`] = ` -"var m={ -471282454:function(r){return{_:'test'}}, -}" -`; - -exports[`generateReaderCodeForTlEntries generates code for methods if asked to 1`] = ` -"var m={ -471282454:function(r){return{_:'test'}}, -2119910527:function(r){return{_:'test2'}}, -}" -`; - -exports[`generateReaderCodeForTlEntries updates readers used in bare vectors 1`] = ` -"var m={ -471282454:function(r=this){return{_:'test'}}, -3562390222:function(r){return{_:'test2',a:r.vector(m[471282454],1),}}, -}" -`; diff --git a/packages/tl-utils/src/codegen/__snapshots__/types.test.ts.snap b/packages/tl-utils/src/codegen/__snapshots__/types.test.ts.snap index 1b571a40..71966bb9 100644 --- a/packages/tl-utils/src/codegen/__snapshots__/types.test.ts.snap +++ b/packages/tl-utils/src/codegen/__snapshots__/types.test.ts.snap @@ -163,6 +163,169 @@ exports[`generateTypescriptDefinitionsForTlEntry > writes generic types 1`] = ` }" `; +exports[`generateTypescriptDefinitionsForTlEntry comments adds return type comments 1`] = ` +"/** + * This is a test method + * + * RPC method returns {@link tl.TypeTest} + */ +interface RawTestRequest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds return type comments 2`] = ` +"/** + * This is a test method + * + * RPC method returns {@link tl.TypeTest} + */ +interface RawTestRequest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds return type comments 3`] = ` +"/** + * RPC method returns {@link tl.TypeTest} array + */ +interface RawTestRequest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds tdlib style comments 1`] = ` +"/** + * This is a test constructor + */ +interface RawTest { + _: 'test'; + /** + * Some field + */ + field: number; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds tl style comments 1`] = ` +"/** + * This is a test constructor + */ +interface RawTest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds usage info comments 1`] = ` +"/** + * RPC method returns {@link tl.TypeTest} + * + * This method is **not** available for bots + * + * This method *may* throw one of these errors: FOO, BAR + */ +interface RawTestRequest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments adds usage info comments 2`] = ` +"/** + * RPC method returns {@link tl.TypeTest} + * + * This method is **not** available for normal users + */ +interface RawTestBotRequest { + _: 'testBot'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments should not break @link tags 1`] = ` +"/** + * This is a test constructor with a very long comment + * {@link whatever} more text + */ +interface RawTest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments wraps long comments 1`] = ` +"/** + * This is a test constructor with a very very very very very + * very very very long comment + */ +interface RawTest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry comments wraps long comments 2`] = ` +"/** + * This is a test method with a very very very very very very + * very very long comment + * + * RPC method returns {@link tl.TypeTest} + */ +interface RawTestRequest { + _: 'test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry generates code with raw flags for constructors with flags 1`] = ` +"interface RawTest { + _: 'test'; + flags: number; + flags2: number; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry ignores namespace for name 1`] = ` +"interface RawTest { + _: 'test.test'; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry marks optional fields as optional 1`] = ` +"interface RawTest { + _: 'test'; + a?: boolean; + b?: string; + c?: tl.TypeFoo; + d?: tl.namespace.TypeFoo[]; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry renames non-primitive types 1`] = ` +"interface RawTest { + _: 'test'; + foo: tl.TypeFoo; + bar: tl.TypeBar[]; + baz: tl.namespace.TypeBaz; + egg: tl.namespace.TypeEgg[]; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry replaces primitive types 1`] = ` +"interface RawTest { + _: 'test'; + a: number; + b: Long; + c: Double; + d: string; + e: Uint8Array; + f: boolean; + g: number[]; +}" +`; + +exports[`generateTypescriptDefinitionsForTlEntry writes generic types 1`] = ` +"interface RawInvokeWithoutUpdatesRequest { + _: 'invokeWithoutUpdates'; + query: X; +}" +`; + exports[`generateTypescriptDefinitionsForTlSchema > writes schemas with methods 1`] = ` "interface RawTest { _: 'test'; @@ -291,209 +454,6 @@ exports[`generateTypescriptDefinitionsForTlSchema > writes simple schemas 2`] = _types = JSON.parse('{"test":"Test"}');" `; -exports[`generateTypescriptDefinitionsForTlEntry comments adds tl style comments 1`] = ` -"/** - * This is a test constructor - */ -interface RawTest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments adds return type comments 1`] = ` -"/** - * This is a test method - * - * RPC method returns {@link tl.TypeTest} - */ -interface RawTestRequest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments adds return type comments 2`] = ` -"/** - * This is a test method - * - * RPC method returns {@link tl.TypeTest} - */ -interface RawTestRequest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments adds return type comments 3`] = ` -"/** - * RPC method returns {@link tl.TypeTest} array - */ -interface RawTestRequest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments adds usage info comments 1`] = ` -"/** - * RPC method returns {@link tl.TypeTest} - * - * This method is **not** available for bots - * - * This method *may* throw one of these errors: FOO, BAR - */ -interface RawTestRequest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments adds usage info comments 2`] = ` -"/** - * RPC method returns {@link tl.TypeTest} - * - * This method is **not** available for normal users - */ -interface RawTestBotRequest { - _: 'testBot'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments adds tdlib style comments 1`] = ` -"/** - * This is a test constructor - */ -interface RawTest { - _: 'test'; - /** - * Some field - */ - field: number; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments wraps long comments 1`] = ` -"/** - * This is a test constructor with a very very very very very - * very very very long comment - */ -interface RawTest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments wraps long comments 2`] = ` -"/** - * This is a test method with a very very very very very very - * very very long comment - * - * RPC method returns {@link tl.TypeTest} - */ -interface RawTestRequest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments should not break @link tags 1`] = ` -"/** - * This is a test constructor with a very long comment - * {@link whatever} more text - */ -interface RawTest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry replaces primitive types 1`] = ` -"interface RawTest { - _: 'test'; - a: number; - b: Long; - c: Double; - d: string; - e: Uint8Array; - f: boolean; - g: number[]; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry ignores namespace for name 1`] = ` -"interface RawTest { - _: 'test.test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry renames non-primitive types 1`] = ` -"interface RawTest { - _: 'test'; - foo: tl.TypeFoo; - bar: tl.TypeBar[]; - baz: tl.namespace.TypeBaz; - egg: tl.namespace.TypeEgg[]; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry marks optional fields as optional 1`] = ` -"interface RawTest { - _: 'test'; - a?: boolean; - b?: string; - c?: tl.TypeFoo; - d?: tl.namespace.TypeFoo[]; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry writes generic types 1`] = ` -"interface RawInvokeWithoutUpdatesRequest { - _: 'invokeWithoutUpdates'; - query: X; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry generates code with raw flags for constructors with flags 1`] = ` -"interface RawTest { - _: 'test'; - flags: number; - flags2: number; -}" -`; - -exports[`generateTypescriptDefinitionsForTlSchema writes simple schemas 1`] = ` -"interface RawTest { - _: 'test'; -} -interface RpcCallReturn { -} -type TypeTest = tl.RawTest -function isAnyTest(o: object): o is TypeTest - -type TlObject = - | tl.RawTest" -`; - -exports[`generateTypescriptDefinitionsForTlSchema writes simple schemas 2`] = ` -"ns.isAnyTest = _isAny('Test'); -_types = JSON.parse('{"test":"Test"}');" -`; - -exports[`generateTypescriptDefinitionsForTlSchema writes schemas with multi-unions 1`] = ` -"interface RawTest { - _: 'test'; -} -interface RawTest2 { - _: 'test2'; -} -interface RpcCallReturn { -} -type TypeTest = tl.RawTest | tl.RawTest2 -function isAnyTest(o: object): o is TypeTest - -type TlObject = - | tl.RawTest - | tl.RawTest2" -`; - -exports[`generateTypescriptDefinitionsForTlSchema writes schemas with multi-unions 2`] = ` -"ns.isAnyTest = _isAny('Test'); -_types = JSON.parse('{"test":"Test","test2":"Test"}');" -`; - exports[`generateTypescriptDefinitionsForTlSchema writes schemas with methods 1`] = ` "interface RawTest { _: 'test'; @@ -522,6 +482,28 @@ exports[`generateTypescriptDefinitionsForTlSchema writes schemas with methods 2` _types = JSON.parse('{"test":"Test"}');" `; +exports[`generateTypescriptDefinitionsForTlSchema writes schemas with multi-unions 1`] = ` +"interface RawTest { + _: 'test'; +} +interface RawTest2 { + _: 'test2'; +} +interface RpcCallReturn { +} +type TypeTest = tl.RawTest | tl.RawTest2 +function isAnyTest(o: object): o is TypeTest + +type TlObject = + | tl.RawTest + | tl.RawTest2" +`; + +exports[`generateTypescriptDefinitionsForTlSchema writes schemas with multi-unions 2`] = ` +"ns.isAnyTest = _isAny('Test'); +_types = JSON.parse('{"test":"Test","test2":"Test"}');" +`; + exports[`generateTypescriptDefinitionsForTlSchema writes schemas with namespaces 1`] = ` "interface RawTest { _: 'test'; @@ -581,3 +563,21 @@ ns.isAnyTest = _isAny('test.Test'); })(ns.test); _types = JSON.parse('{"test":"Test","test2":"Test","test.test":"test.Test","test.test2":"test.Test"}');" `; + +exports[`generateTypescriptDefinitionsForTlSchema writes simple schemas 1`] = ` +"interface RawTest { + _: 'test'; +} +interface RpcCallReturn { +} +type TypeTest = tl.RawTest +function isAnyTest(o: object): o is TypeTest + +type TlObject = + | tl.RawTest" +`; + +exports[`generateTypescriptDefinitionsForTlSchema writes simple schemas 2`] = ` +"ns.isAnyTest = _isAny('Test'); +_types = JSON.parse('{"test":"Test"}');" +`; diff --git a/packages/tl-utils/src/codegen/__snapshots__/writer.test.ts.snap b/packages/tl-utils/src/codegen/__snapshots__/writer.test.ts.snap index d7bbc466..ff9a4152 100644 --- a/packages/tl-utils/src/codegen/__snapshots__/writer.test.ts.snap +++ b/packages/tl-utils/src/codegen/__snapshots__/writer.test.ts.snap @@ -29,6 +29,35 @@ _staticSize:{ }" `; +exports[`generateWriterCodeForTlEntries generates code for bare types 1`] = ` +"var m={ +'future_salt':function(w,v){w.uint(155834844);w.bytes(h(v,'salt'));}, +'future_salts':function(w,v){w.uint(2924480661);w.vector(m._bare[155834844],h(v,'salts'),1);m._bare[155834844](w,h(v,'current'));}, +_bare:{ +155834844:function(w=this,v){w.bytes(h(v,'salt'));}, +}, +}" +`; + +exports[`generateWriterCodeForTlEntries should include prelude by default 1`] = ` +"function h(o,p){var q=o[p];if(q===void 0)throw Error('Object '+o._+' is missing required property '+p);return q} +var m={ +}" +`; + +exports[`generateWriterCodeForTlEntries should include static sizes calculations 1`] = ` +"function h(o,p){var q=o[p];if(q===void 0)throw Error('Object '+o._+' is missing required property '+p);return q} +var m={ +'test1':function(w,v){w.uint(102026291);w.int(h(v,'foo'));w.int(h(v,'bar'));}, +'test2':function(w,v){w.uint(2926357645);w.int(h(v,'foo'));w.double(h(v,'bar'));}, +'test3':function(w,v){w.uint(3373702963);w.int(h(v,'foo'));w.bytes(h(v,'bar'));}, +_staticSize:{ +'test1':12, +'test2':16, +}, +}" +`; + exports[`generateWriterCodeForTlEntry > automatically computes constructor ID if needed 1`] = `"'topPeerCategoryBotsPM':function(w){w.uint(2875595611);},"`; exports[`generateWriterCodeForTlEntry > generates code for bare vectors 1`] = `"'msg_container':function(w,v){w.uint(1945237724);w.vector(m._bare[155834844],h(v,'messages'),1);},"`; @@ -59,7 +88,21 @@ exports[`generateWriterCodeForTlEntry > generates code for constructors without exports[`generateWriterCodeForTlEntry > generates code with raw flags for constructors with flags 1`] = `"'test':function(w,v){w.uint(1554225816);var flags=v.flags;w.uint(flags);var flags2=v.flags2;w.uint(flags2);},"`; -exports[`generateWriterCodeForTlEntry generates code for constructors without arguments 1`] = `"'topPeerCategoryBotsPM':function(w){w.uint(2875595611);},"`; +exports[`generateWriterCodeForTlEntry automatically computes constructor ID if needed 1`] = `"'topPeerCategoryBotsPM':function(w){w.uint(2875595611);},"`; + +exports[`generateWriterCodeForTlEntry generates code for bare vectors 1`] = `"'msg_container':function(w,v){w.uint(1945237724);w.vector(m._bare[155834844],h(v,'messages'),1);},"`; + +exports[`generateWriterCodeForTlEntry generates code for bare vectors 2`] = `"'future_salts':function(w,v){w.uint(2924480661);w.vector(m._bare[155834844],h(v,'salts'));w.object(h(v,'current'));},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with generics 1`] = `"'invokeWithLayer':function(w,v){w.uint(3667594509);w.int(h(v,'layer'));w.object(h(v,'query'));},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with multiple fields using the same flag 1`] = `"'inputMediaPoll':function(w,v){w.uint(261416433);var flags=0;var _solution=v.solution!==undefined;var _solutionEntities=v.solutionEntities&&v.solutionEntities.length;var _flags_1=_solution||_solutionEntities;if(_flags_1)flags|=2;w.uint(flags);if(_flags_1)w.string(v.solution);if(_flags_1)w.vector(w.object,v.solutionEntities);},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with multiple flags fields 1`] = `"'updates.channelDifferenceEmpty':function(w,v){w.uint(1041346555);var flags=0;if(v.final===true)flags|=1;var _timeout=v.timeout!==undefined;if(_timeout)flags|=2;w.uint(flags);w.int(h(v,'pts'));if(_timeout)w.int(v.timeout);var flags2=0;if(v.canDeleteChannel===true)flags2|=1;w.uint(flags2);},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with optional arguments 1`] = `"'updates.channelDifferenceEmpty':function(w,v){w.uint(1041346555);var flags=0;if(v.final===true)flags|=1;var _timeout=v.timeout!==undefined;if(_timeout)flags|=2;w.uint(flags);w.int(h(v,'pts'));if(_timeout)w.int(v.timeout);},"`; + +exports[`generateWriterCodeForTlEntry generates code for constructors with optional vector arguments 1`] = `"'messages.getWebPagePreview':function(w,v){w.uint(2338894028);var flags=0;var _entities=v.entities&&v.entities.length;if(_entities)flags|=8;w.uint(flags);w.string(h(v,'message'));if(_entities)w.vector(w.object,v.entities);},"`; exports[`generateWriterCodeForTlEntry generates code for constructors with simple arguments 1`] = `"'inputBotInlineMessageID':function(w,v){w.uint(2299280777);w.int(h(v,'dcId'));w.long(h(v,'id'));w.long(h(v,'accessHash'));},"`; @@ -69,51 +112,8 @@ exports[`generateWriterCodeForTlEntry generates code for constructors with simpl exports[`generateWriterCodeForTlEntry generates code for constructors with true flags 1`] = `"'messages.messageEditData':function(w,v){w.uint(649453030);var flags=0;if(v.caption===true)flags|=1;w.uint(flags);},"`; -exports[`generateWriterCodeForTlEntry generates code for constructors with optional arguments 1`] = `"'updates.channelDifferenceEmpty':function(w,v){w.uint(1041346555);var flags=0;if(v.final===true)flags|=1;var _timeout=v.timeout!==undefined;if(_timeout)flags|=2;w.uint(flags);w.int(h(v,'pts'));if(_timeout)w.int(v.timeout);},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with multiple flags fields 1`] = `"'updates.channelDifferenceEmpty':function(w,v){w.uint(1041346555);var flags=0;if(v.final===true)flags|=1;var _timeout=v.timeout!==undefined;if(_timeout)flags|=2;w.uint(flags);w.int(h(v,'pts'));if(_timeout)w.int(v.timeout);var flags2=0;if(v.canDeleteChannel===true)flags2|=1;w.uint(flags2);},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with multiple fields using the same flag 1`] = `"'inputMediaPoll':function(w,v){w.uint(261416433);var flags=0;var _solution=v.solution!==undefined;var _solutionEntities=v.solutionEntities&&v.solutionEntities.length;var _flags_1=_solution||_solutionEntities;if(_flags_1)flags|=2;w.uint(flags);if(_flags_1)w.string(v.solution);if(_flags_1)w.vector(w.object,v.solutionEntities);},"`; - exports[`generateWriterCodeForTlEntry generates code for constructors with vector arguments 1`] = `"'contacts.resolvedPeer':function(w,v){w.uint(2131196633);w.object(h(v,'peer'));w.vector(w.object,h(v,'chats'));w.vector(w.object,h(v,'users'));},"`; -exports[`generateWriterCodeForTlEntry generates code for constructors with optional vector arguments 1`] = `"'messages.getWebPagePreview':function(w,v){w.uint(2338894028);var flags=0;var _entities=v.entities&&v.entities.length;if(_entities)flags|=8;w.uint(flags);w.string(h(v,'message'));if(_entities)w.vector(w.object,v.entities);},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with generics 1`] = `"'invokeWithLayer':function(w,v){w.uint(3667594509);w.int(h(v,'layer'));w.object(h(v,'query'));},"`; - -exports[`generateWriterCodeForTlEntry generates code for bare vectors 1`] = `"'msg_container':function(w,v){w.uint(1945237724);w.vector(m._bare[155834844],h(v,'messages'),1);},"`; - -exports[`generateWriterCodeForTlEntry generates code for bare vectors 2`] = `"'future_salts':function(w,v){w.uint(2924480661);w.vector(m._bare[155834844],h(v,'salts'));w.object(h(v,'current'));},"`; +exports[`generateWriterCodeForTlEntry generates code for constructors without arguments 1`] = `"'topPeerCategoryBotsPM':function(w){w.uint(2875595611);},"`; exports[`generateWriterCodeForTlEntry generates code with raw flags for constructors with flags 1`] = `"'test':function(w,v){w.uint(1554225816);var flags=v.flags;w.uint(flags);var flags2=v.flags2;w.uint(flags2);},"`; - -exports[`generateWriterCodeForTlEntry automatically computes constructor ID if needed 1`] = `"'topPeerCategoryBotsPM':function(w){w.uint(2875595611);},"`; - -exports[`generateWriterCodeForTlEntries generates code for bare types 1`] = ` -"var m={ -'future_salt':function(w,v){w.uint(155834844);w.bytes(h(v,'salt'));}, -'future_salts':function(w,v){w.uint(2924480661);w.vector(m._bare[155834844],h(v,'salts'),1);m._bare[155834844](w,h(v,'current'));}, -_bare:{ -155834844:function(w=this,v){w.bytes(h(v,'salt'));}, -}, -}" -`; - -exports[`generateWriterCodeForTlEntries should include prelude by default 1`] = ` -"function h(o,p){var q=o[p];if(q===void 0)throw Error('Object '+o._+' is missing required property '+p);return q} -var m={ -}" -`; - -exports[`generateWriterCodeForTlEntries should include static sizes calculations 1`] = ` -"function h(o,p){var q=o[p];if(q===void 0)throw Error('Object '+o._+' is missing required property '+p);return q} -var m={ -'test1':function(w,v){w.uint(102026291);w.int(h(v,'foo'));w.int(h(v,'bar'));}, -'test2':function(w,v){w.uint(2926357645);w.int(h(v,'foo'));w.double(h(v,'bar'));}, -'test3':function(w,v){w.uint(3373702963);w.int(h(v,'foo'));w.bytes(h(v,'bar'));}, -_staticSize:{ -'test1':12, -'test2':16, -}, -}" -`; diff --git a/packages/wasm/tests/init.ts b/packages/wasm/tests/init.ts index 2723bca5..a6cbd1c7 100644 --- a/packages/wasm/tests/init.ts +++ b/packages/wasm/tests/init.ts @@ -3,7 +3,7 @@ import { initSync } from '../src/index.js' export async function initWasm() { const url = new URL('../mtcute.wasm', import.meta.url) - if (import.meta.env.TEST_ENV === 'node' || import.meta.env.TEST_ENV === 'bun') { + if (import.meta.env.TEST_ENV === 'node') { const fs = await import('fs/promises') const blob = await fs.readFile(url) initSync(blob) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e10b32f0..1eed727d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -42,6 +42,9 @@ importers: '@vitest/ui': specifier: 1.4.0 version: 1.4.0(vitest@1.4.0) + chai: + specifier: ^5.1.0 + version: 5.1.0 cjs-module-lexer: specifier: 1.2.3 version: 1.2.3 @@ -1620,7 +1623,7 @@ packages: dependencies: '@vitest/spy': 0.34.6 '@vitest/utils': 0.34.6 - chai: 4.3.10 + chai: 4.4.1 dev: false /@vitest/expect@1.4.0: @@ -1909,6 +1912,11 @@ packages: /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + /assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} + dev: true + /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} @@ -2028,19 +2036,6 @@ packages: engines: {node: '>=6'} dev: true - /chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} - engines: {node: '>=4'} - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - dev: false - /chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} @@ -2053,6 +2048,17 @@ packages: pathval: 1.1.1 type-detect: 4.0.8 + /chai@5.1.0: + resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==} + engines: {node: '>=12'} + dependencies: + assertion-error: 2.0.1 + check-error: 2.0.0 + deep-eql: 5.0.1 + loupe: 3.1.0 + pathval: 2.0.0 + dev: true + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -2088,6 +2094,11 @@ packages: dependencies: get-func-name: 2.0.2 + /check-error@2.0.0: + resolution: {integrity: sha512-tjLAOBHKVxtPoHe/SA7kNOMvhCRdCJ3vETdeY0RuAc9popf+hyaSV6ZEg9hr4cpWF7jmo/JSWEnLDrnijS9Tog==} + engines: {node: '>= 16'} + dev: true + /cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} dependencies: @@ -2371,6 +2382,11 @@ packages: dependencies: type-detect: 4.0.8 + /deep-eql@5.0.1: + resolution: {integrity: sha512-nwQCf6ne2gez3o1MxWifqkciwt0zhl0LO1/UwVu4uMBuPmflWM4oQ70XMqHqnBJA+nhzncaqL9HVL6KkHJ28lw==} + engines: {node: '>=6'} + dev: true + /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} @@ -4056,6 +4072,12 @@ packages: dependencies: get-func-name: 2.0.2 + /loupe@3.1.0: + resolution: {integrity: sha512-qKl+FrLXUhFuHUoDJG7f8P8gEMHq9NFS0c6ghXG1J0rldmZFQZoNVv/vyirE9qwCIhWZDsvEFd1sbFu3GvRQFg==} + dependencies: + get-func-name: 2.0.2 + dev: true + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} @@ -4677,6 +4699,11 @@ packages: /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + /pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + dev: true + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -5773,7 +5800,7 @@ packages: acorn: 8.10.0 acorn-walk: 8.2.0 cac: 6.7.14 - chai: 4.3.10 + chai: 4.4.1 debug: 4.3.4 local-pkg: 0.4.3 magic-string: 0.30.5 -- 2.45.2 From b4099f15bd76a7460bd1410e7a56935c31211e0e Mon Sep 17 00:00:00 2001 From: Alina Sireneva Date: Mon, 18 Mar 2024 03:08:07 +0300 Subject: [PATCH 3/4] build: fixed vitest version in @mtcute/test + fixed vite configs --- .config/vite.browser.mts | 11 + package.json | 5 +- packages/sqlite/test/sqlite.test.ts | 4 +- packages/test/package.json | 2 +- .../src/__snapshots__/diff.test.ts.snap | 573 ----------- .../src/__snapshots__/utils.test.ts.snap | 21 - .../codegen/__snapshots__/errors.test.ts.snap | 76 -- .../codegen/__snapshots__/reader.test.ts.snap | 89 -- .../codegen/__snapshots__/types.test.ts.snap | 291 ------ .../codegen/__snapshots__/writer.test.ts.snap | 59 -- pnpm-lock.yaml | 887 +++++++++++++----- scripts/validate-deps-versions.mjs | 2 +- 12 files changed, 693 insertions(+), 1327 deletions(-) diff --git a/.config/vite.browser.mts b/.config/vite.browser.mts index 57c5f10e..34508d53 100644 --- a/.config/vite.browser.mts +++ b/.config/vite.browser.mts @@ -1,5 +1,6 @@ /// import { defineConfig, mergeConfig } from 'vite' +import { nodePolyfills } from 'vite-plugin-node-polyfills' import baseConfig from './vite.mjs' import { fixupCjs } from './vite-utils/fixup-cjs' @@ -16,6 +17,8 @@ export default mergeConfig(baseConfig, defineConfig({ toFake: ['setTimeout', 'clearTimeout', 'setInterval', 'clearInterval', 'Date'] }, retry: process.env.CI ? 3 : 0, + isolate: false, + fileParallelism: false, // leads to ERR_INSUFFICIENT_RESOURCES // for whatever reason using exclude-s makes the vite never start the browser, so we use skip-s instead. // exclude: [ // './packages/crypto-node/**', @@ -24,6 +27,14 @@ export default mergeConfig(baseConfig, defineConfig({ }, plugins: [ fixupCjs(), + nodePolyfills({ + include: ['stream', 'path', 'zlib', 'util'], + globals: { + Buffer: false, + global: false, + process: false, + }, + }) ], define: { 'import.meta.env.TEST_ENV': '"browser"' diff --git a/package.json b/package.json index 76f42749..a9439c93 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,6 @@ "@commitlint/cli": "17.6.5", "@commitlint/config-conventional": "17.6.5", "@types/node": "20.10.0", - "@types/node-forge": "1.3.2", "@types/ws": "8.5.4", "@typescript-eslint/eslint-plugin": "6.4.0", "@typescript-eslint/parser": "6.4.0", @@ -57,8 +56,7 @@ "glob": "10.2.6", "husky": "8.0.3", "lint-staged": "13.2.2", - "node-forge": "1.3.1", - "playwright": "^1.40.1", + "playwright": "^1.42.1", "prettier": "3.0.3", "rimraf": "5.0.1", "semver": "7.5.1", @@ -67,6 +65,7 @@ "typedoc": "0.25.3", "typescript": "5.1.6", "vite": "5.1.6", + "vite-plugin-node-polyfills": "0.21.0", "vitest": "1.4.0" }, "prettier": "./.config/prettier.cjs", diff --git a/packages/sqlite/test/sqlite.test.ts b/packages/sqlite/test/sqlite.test.ts index c3709f8e..9b3e93ce 100644 --- a/packages/sqlite/test/sqlite.test.ts +++ b/packages/sqlite/test/sqlite.test.ts @@ -8,9 +8,9 @@ import { testRefMessagesRepository, } from '@mtcute/test' -import { SqliteStorage } from '../src/index.js' - if (import.meta.env.TEST_ENV === 'node') { + const { SqliteStorage } = await import('../src/index.js') + describe('SqliteStorage', () => { const storage = new SqliteStorage(':memory:') diff --git a/packages/test/package.json b/packages/test/package.json index b8c473f4..b7a1a637 100644 --- a/packages/test/package.json +++ b/packages/test/package.json @@ -22,7 +22,7 @@ "@mtcute/node": "workspace:^", "@mtcute/web": "workspace:^", "@mtcute/tl": "workspace:*", - "vitest": "^0.34.6" + "vitest": "1.4.0" }, "peerDependenciesMeta": { "@mtcute/node": { diff --git a/packages/tl-utils/src/__snapshots__/diff.test.ts.snap b/packages/tl-utils/src/__snapshots__/diff.test.ts.snap index 9296cb59..feb1186d 100644 --- a/packages/tl-utils/src/__snapshots__/diff.test.ts.snap +++ b/packages/tl-utils/src/__snapshots__/diff.test.ts.snap @@ -572,576 +572,3 @@ exports[`generateTlSchemasDifference > shows removed unions 1`] = ` }, } `; - -exports[`generateTlSchemasDifference shows added constructors 1`] = ` -{ - "classes": { - "added": [ - { - "arguments": [], - "id": 3847402009, - "kind": "class", - "name": "test2", - "type": "Test", - }, - ], - "modified": [], - "removed": [], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "unions": { - "added": [], - "modified": [ - { - "classes": { - "added": [ - { - "arguments": [], - "id": 3847402009, - "kind": "class", - "name": "test2", - "type": "Test", - }, - ], - "modified": [], - "removed": [], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "name": "Test", - }, - ], - "removed": [], - }, -} -`; - -exports[`generateTlSchemasDifference shows added unions 1`] = ` -{ - "classes": { - "added": [ - { - "arguments": [], - "id": 3739166976, - "kind": "class", - "name": "test1", - "type": "Test1", - }, - ], - "modified": [ - { - "arguments": { - "added": [], - "modified": [ - { - "name": "foo", - "type": { - "new": "Foo", - "old": "int", - }, - }, - ], - "removed": [], - }, - "id": { - "new": 3348640942, - "old": 1331975629, - }, - "name": "test", - }, - ], - "removed": [], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "unions": { - "added": [ - { - "classes": [ - { - "arguments": [], - "id": 3739166976, - "kind": "class", - "name": "test1", - "type": "Test1", - }, - ], - "name": "Test1", - }, - ], - "modified": [], - "removed": [], - }, -} -`; - -exports[`generateTlSchemasDifference shows modified constructors 1`] = ` -{ - "classes": { - "added": [], - "modified": [ - { - "arguments": { - "added": [], - "modified": [ - { - "name": "foo", - "type": { - "new": "Foo", - "old": "int", - }, - }, - ], - "removed": [], - }, - "id": { - "new": 3348640942, - "old": 1331975629, - }, - "name": "test", - }, - ], - "removed": [], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "unions": { - "added": [], - "modified": [], - "removed": [], - }, -} -`; - -exports[`generateTlSchemasDifference shows modified methods 1`] = ` -{ - "classes": { - "added": [], - "modified": [], - "removed": [], - }, - "methods": { - "added": [], - "modified": [ - { - "id": { - "new": 3994885231, - "old": 471282454, - }, - "name": "test", - }, - ], - "removed": [], - }, - "unions": { - "added": [ - undefined, - ], - "modified": [], - "removed": [ - undefined, - ], - }, -} -`; - -exports[`generateTlSchemasDifference shows modified unions 1`] = ` -{ - "classes": { - "added": [ - { - "arguments": [], - "id": 3847402009, - "kind": "class", - "name": "test2", - "type": "Test", - }, - ], - "modified": [ - { - "arguments": { - "added": [], - "modified": [ - { - "name": "foo", - "type": { - "new": "Foo", - "old": "int", - }, - }, - ], - "removed": [], - }, - "id": { - "new": 3348640942, - "old": 1331975629, - }, - "name": "test", - }, - ], - "removed": [ - { - "arguments": [], - "id": 1809692154, - "kind": "class", - "name": "test1", - "type": "Test", - }, - ], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "unions": { - "added": [], - "modified": [ - { - "classes": { - "added": [ - { - "arguments": [], - "id": 3847402009, - "kind": "class", - "name": "test2", - "type": "Test", - }, - ], - "modified": [], - "removed": [ - { - "arguments": [], - "id": 1809692154, - "kind": "class", - "name": "test1", - "type": "Test", - }, - ], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "name": "Test", - }, - ], - "removed": [], - }, -} -`; - -exports[`generateTlSchemasDifference shows modified unions 2`] = ` -{ - "classes": { - "added": [ - { - "arguments": [ - { - "name": "foo", - "type": "Foo", - }, - ], - "id": 711487159, - "kind": "class", - "name": "test2", - "type": "Test", - }, - { - "arguments": [], - "id": 704164487, - "kind": "class", - "name": "test3", - "type": "Test", - }, - ], - "modified": [], - "removed": [ - { - "arguments": [ - { - "name": "foo", - "type": "int", - }, - ], - "id": 1331975629, - "kind": "class", - "name": "test", - "type": "Test", - }, - { - "arguments": [], - "id": 1809692154, - "kind": "class", - "name": "test1", - "type": "Test", - }, - ], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "unions": { - "added": [], - "modified": [ - { - "classes": { - "added": [ - { - "arguments": [ - { - "name": "foo", - "type": "Foo", - }, - ], - "id": 711487159, - "kind": "class", - "name": "test2", - "type": "Test", - }, - { - "arguments": [], - "id": 704164487, - "kind": "class", - "name": "test3", - "type": "Test", - }, - ], - "modified": [], - "removed": [ - { - "arguments": [ - { - "name": "foo", - "type": "int", - }, - ], - "id": 1331975629, - "kind": "class", - "name": "test", - "type": "Test", - }, - { - "arguments": [], - "id": 1809692154, - "kind": "class", - "name": "test1", - "type": "Test", - }, - ], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "name": "Test", - }, - ], - "removed": [], - }, -} -`; - -exports[`generateTlSchemasDifference shows modified unions 3`] = ` -{ - "classes": { - "added": [], - "modified": [ - { - "id": { - "new": 1997819349, - "old": 471282454, - }, - "name": "test", - }, - { - "id": { - "new": 3739166976, - "old": 1809692154, - }, - "name": "test1", - }, - ], - "removed": [], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "unions": { - "added": [ - { - "classes": [ - { - "arguments": [], - "id": 1997819349, - "kind": "class", - "name": "test", - "type": "Test1", - }, - { - "arguments": [], - "id": 3739166976, - "kind": "class", - "name": "test1", - "type": "Test1", - }, - ], - "name": "Test1", - }, - ], - "modified": [], - "removed": [ - { - "classes": [ - { - "arguments": [], - "id": 471282454, - "kind": "class", - "name": "test", - "type": "Test", - }, - { - "arguments": [], - "id": 1809692154, - "kind": "class", - "name": "test1", - "type": "Test", - }, - ], - "name": "Test", - }, - ], - }, -} -`; - -exports[`generateTlSchemasDifference shows removed constructors 1`] = ` -{ - "classes": { - "added": [], - "modified": [], - "removed": [ - { - "arguments": [], - "id": 3847402009, - "kind": "class", - "name": "test2", - "type": "Test", - }, - ], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "unions": { - "added": [], - "modified": [ - { - "classes": { - "added": [], - "modified": [], - "removed": [ - { - "arguments": [], - "id": 3847402009, - "kind": "class", - "name": "test2", - "type": "Test", - }, - ], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "name": "Test", - }, - ], - "removed": [], - }, -} -`; - -exports[`generateTlSchemasDifference shows removed unions 1`] = ` -{ - "classes": { - "added": [], - "modified": [ - { - "arguments": { - "added": [], - "modified": [ - { - "name": "foo", - "type": { - "new": "Foo", - "old": "int", - }, - }, - ], - "removed": [], - }, - "id": { - "new": 3348640942, - "old": 1331975629, - }, - "name": "test", - }, - ], - "removed": [ - { - "arguments": [], - "id": 3739166976, - "kind": "class", - "name": "test1", - "type": "Test1", - }, - ], - }, - "methods": { - "added": [], - "modified": [], - "removed": [], - }, - "unions": { - "added": [], - "modified": [], - "removed": [ - { - "classes": [ - { - "arguments": [], - "id": 3739166976, - "kind": "class", - "name": "test1", - "type": "Test1", - }, - ], - "name": "Test1", - }, - ], - }, -} -`; diff --git a/packages/tl-utils/src/__snapshots__/utils.test.ts.snap b/packages/tl-utils/src/__snapshots__/utils.test.ts.snap index 1ed9ce06..e0737422 100644 --- a/packages/tl-utils/src/__snapshots__/utils.test.ts.snap +++ b/packages/tl-utils/src/__snapshots__/utils.test.ts.snap @@ -29,24 +29,3 @@ exports[`groupTlEntriesByNamespace > should group entries correctly 1`] = ` ], } `; - -exports[`groupTlEntriesByNamespace should group entries correctly 1`] = ` -{ - "foo": [ - { - "arguments": [], - "id": 0, - "kind": "class", - "name": "foo.bar", - "type": "FooBar", - }, - { - "arguments": [], - "id": 0, - "kind": "class", - "name": "foo.baz", - "type": "FooBaz", - }, - ], -} -`; diff --git a/packages/tl-utils/src/codegen/__snapshots__/errors.test.ts.snap b/packages/tl-utils/src/codegen/__snapshots__/errors.test.ts.snap index 616c872a..977f3128 100644 --- a/packages/tl-utils/src/codegen/__snapshots__/errors.test.ts.snap +++ b/packages/tl-utils/src/codegen/__snapshots__/errors.test.ts.snap @@ -71,79 +71,3 @@ exports.RpcError = RpcError; ", ] `; - -exports[`generateCodeForErrors should correctly generate errors 1`] = ` -[ - -"type MtErrorText = - | 'USER_NOT_FOUND' - | 'FLOOD_WAIT_%d' - - | (string & {}) // to keep hints - -interface MtErrorArgMap { - 'FLOOD_WAIT_%d': { duration: number }, - -} - -type RpcErrorWithArgs = - RpcError & { text: T } & (T extends keyof MtErrorArgMap ? (RpcError & MtErrorArgMap[T]) : {}); - -export class RpcError extends Error { - static BAD_REQUEST: 400; - - - readonly code: number; - readonly text: MtErrorText; - readonly unknown: boolean; - constructor(code: number, text: MtErrorText); - - is(text: T): this is RpcErrorWithArgs; - static is(err: unknown): err is RpcError; - static is(err: unknown, text: T): err is RpcErrorWithArgs; - static create(code: number, text: T): RpcErrorWithArgs; - static fromTl(obj: object): RpcError; -} -" -, - -"const _descriptionsMap = JSON.parse('{"FLOOD_WAIT_%d":"Wait %d seconds"}') -class RpcError extends Error { - constructor(code, text, description) { - super(description || 'Unknown RPC error: [' + code + ':' + text + ']'); - this.code = code; - this.text = text; - } - - static is(err, text) { return err.constructor === RpcError && (!text || err.text === text); } - is(text) { return this.text === text; } -} -RpcError.fromTl = function (obj) { - if (obj.errorMessage in _descriptionsMap) { - return new RpcError(obj.errorCode, obj.errorMessage, _descriptionsMap[obj.errorMessage]); - } - - var err = new RpcError(obj.errorCode, obj.errorMessage); - var match, param; - if ((match=err.text.match(/^FLOOD_WAIT_(d+)$/))!=null){ err.text = 'FLOOD_WAIT_%d'; param = err.duration = parseInt(match[1]) } - - else return err - - err.message = _descriptionsMap[err.text].replace('%d', param); - return err -} -RpcError.create = function(code, text) { - var desc = _descriptionsMap[text]; - var err = new RpcError(code, text, desc); - if (!desc) { - err.unknown = true; - } - return err; -} -RpcError.BAD_REQUEST = 400; - -exports.RpcError = RpcError; -" -, -] -`; diff --git a/packages/tl-utils/src/codegen/__snapshots__/reader.test.ts.snap b/packages/tl-utils/src/codegen/__snapshots__/reader.test.ts.snap index d23976f1..a38c8854 100644 --- a/packages/tl-utils/src/codegen/__snapshots__/reader.test.ts.snap +++ b/packages/tl-utils/src/codegen/__snapshots__/reader.test.ts.snap @@ -59,65 +59,6 @@ exports[`generateReaderCodeForTlEntries > updates readers used in bare vectors 1 }" `; -exports[`generateReaderCodeForTlEntries doesn't generate code for methods by default 1`] = ` -"var m={ -471282454:function(r){return{_:'test'}}, -}" -`; - -exports[`generateReaderCodeForTlEntries generates code for methods if asked to 1`] = ` -"var m={ -471282454:function(r){return{_:'test'}}, -2119910527:function(r){return{_:'test2'}}, -}" -`; - -exports[`generateReaderCodeForTlEntries generates code for multiple entries 1`] = ` -"var m={ -471282454:function(r){return{_:'test'}}, -2119910527:function(r){return{_:'test2'}}, -}" -`; - -exports[`generateReaderCodeForTlEntries method return readers doesn't include Bool parsing 1`] = ` -"var m={ -_results:{ -}, -}" -`; - -exports[`generateReaderCodeForTlEntries method return readers includes primitive return type parsing info 1`] = ` -"var m={ -1809692154:function(r){return{_:'test1'}}, -_results:{ -'test':function(r){return r.int()}, -}, -}" -`; - -exports[`generateReaderCodeForTlEntries method return readers includes primitive vectors return type parsing info 1`] = ` -"var m={ -_results:{ -'test':function(r){return r.vector(r.int)}, -}, -}" -`; - -exports[`generateReaderCodeForTlEntries method return readers includes primitive vectors return type parsing info 2`] = ` -"var m={ -_results:{ -'test':function(r){return r.vector(r.int)}, -}, -}" -`; - -exports[`generateReaderCodeForTlEntries updates readers used in bare vectors 1`] = ` -"var m={ -471282454:function(r=this){return{_:'test'}}, -3562390222:function(r){return{_:'test2',a:r.vector(m[471282454],1),}}, -}" -`; - exports[`generateReaderCodeForTlEntry > generates code for bare types 1`] = `"1945237724:function(r){return{_:'msg_container',messages:r.vector(m[155834844],1),}},"`; exports[`generateReaderCodeForTlEntry > generates code for bare types 2`] = `"2924480661:function(r){return{_:'future_salts',salts:r.vector(m[155834844]),current:r.object(),}},"`; @@ -147,33 +88,3 @@ exports[`generateReaderCodeForTlEntry > generates code for constructors with vec exports[`generateReaderCodeForTlEntry > generates code for constructors without arguments 1`] = `"2875595611:function(r){return{_:'topPeerCategoryBotsPM'}},"`; exports[`generateReaderCodeForTlEntry > generates code with raw flags for constructors with flags 1`] = `"1554225816:function(r){var flags=r.uint(),flags2=r.uint();return{_:'test',flags:flags,flags2:flags2,}},"`; - -exports[`generateReaderCodeForTlEntry generates code for bare types 1`] = `"1945237724:function(r){return{_:'msg_container',messages:r.vector(m[155834844],1),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for bare types 2`] = `"2924480661:function(r){return{_:'future_salts',salts:r.vector(m[155834844]),current:r.object(),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for bare types 3`] = `"2924480661:function(r){return{_:'future_salts',salts:r.vector(m[155834844],1),current:m[155834844](r),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with arguments before flags field 1`] = `"2262925665:function(r){var id=r.long(),flags=r.uint();return{_:'poll',id:id,quiz:!!(flags&8),question:r.string(),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with generics 1`] = `"3667594509:function(r){return{_:'invokeWithLayer',layer:r.int(),query:r.object(),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with multiple flags fields 1`] = `"1041346555:function(r){var flags=r.uint(),pts=r.int(),timeout=flags&2?r.int():void 0,flags2=r.uint();return{_:'updates.channelDifferenceEmpty',final:!!(flags&1),pts:pts,timeout:timeout,canDeleteChannel:!!(flags2&1),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with optional arguments 1`] = `"1041346555:function(r){var flags=r.uint();return{_:'updates.channelDifferenceEmpty',final:!!(flags&1),pts:r.int(),timeout:flags&2?r.int():void 0,}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with optional vector arguments 1`] = `"2338894028:function(r){var flags=r.uint();return{_:'messages.getWebPagePreview',message:r.string(),entities:flags&8?r.vector(r.object):void 0,}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with simple arguments 1`] = `"2299280777:function(r){return{_:'inputBotInlineMessageID',dcId:r.int(),id:r.long(),accessHash:r.long(),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with simple arguments 2`] = `"341499403:function(r){return{_:'contact',userId:r.long(),mutual:r.boolean(),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with simple arguments 3`] = `"2933316530:function(r){return{_:'maskCoords',n:r.int(),x:r.double(),y:r.double(),zoom:r.double(),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with true flags 1`] = `"649453030:function(r){var flags=r.uint();return{_:'messages.messageEditData',caption:!!(flags&1),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors with vector arguments 1`] = `"2131196633:function(r){return{_:'contacts.resolvedPeer',peer:r.object(),chats:r.vector(r.object),users:r.vector(r.object),}},"`; - -exports[`generateReaderCodeForTlEntry generates code for constructors without arguments 1`] = `"2875595611:function(r){return{_:'topPeerCategoryBotsPM'}},"`; - -exports[`generateReaderCodeForTlEntry generates code with raw flags for constructors with flags 1`] = `"1554225816:function(r){var flags=r.uint(),flags2=r.uint();return{_:'test',flags:flags,flags2:flags2,}},"`; diff --git a/packages/tl-utils/src/codegen/__snapshots__/types.test.ts.snap b/packages/tl-utils/src/codegen/__snapshots__/types.test.ts.snap index 71966bb9..bf30900e 100644 --- a/packages/tl-utils/src/codegen/__snapshots__/types.test.ts.snap +++ b/packages/tl-utils/src/codegen/__snapshots__/types.test.ts.snap @@ -163,169 +163,6 @@ exports[`generateTypescriptDefinitionsForTlEntry > writes generic types 1`] = ` }" `; -exports[`generateTypescriptDefinitionsForTlEntry comments adds return type comments 1`] = ` -"/** - * This is a test method - * - * RPC method returns {@link tl.TypeTest} - */ -interface RawTestRequest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments adds return type comments 2`] = ` -"/** - * This is a test method - * - * RPC method returns {@link tl.TypeTest} - */ -interface RawTestRequest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments adds return type comments 3`] = ` -"/** - * RPC method returns {@link tl.TypeTest} array - */ -interface RawTestRequest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments adds tdlib style comments 1`] = ` -"/** - * This is a test constructor - */ -interface RawTest { - _: 'test'; - /** - * Some field - */ - field: number; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments adds tl style comments 1`] = ` -"/** - * This is a test constructor - */ -interface RawTest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments adds usage info comments 1`] = ` -"/** - * RPC method returns {@link tl.TypeTest} - * - * This method is **not** available for bots - * - * This method *may* throw one of these errors: FOO, BAR - */ -interface RawTestRequest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments adds usage info comments 2`] = ` -"/** - * RPC method returns {@link tl.TypeTest} - * - * This method is **not** available for normal users - */ -interface RawTestBotRequest { - _: 'testBot'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments should not break @link tags 1`] = ` -"/** - * This is a test constructor with a very long comment - * {@link whatever} more text - */ -interface RawTest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments wraps long comments 1`] = ` -"/** - * This is a test constructor with a very very very very very - * very very very long comment - */ -interface RawTest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry comments wraps long comments 2`] = ` -"/** - * This is a test method with a very very very very very very - * very very long comment - * - * RPC method returns {@link tl.TypeTest} - */ -interface RawTestRequest { - _: 'test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry generates code with raw flags for constructors with flags 1`] = ` -"interface RawTest { - _: 'test'; - flags: number; - flags2: number; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry ignores namespace for name 1`] = ` -"interface RawTest { - _: 'test.test'; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry marks optional fields as optional 1`] = ` -"interface RawTest { - _: 'test'; - a?: boolean; - b?: string; - c?: tl.TypeFoo; - d?: tl.namespace.TypeFoo[]; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry renames non-primitive types 1`] = ` -"interface RawTest { - _: 'test'; - foo: tl.TypeFoo; - bar: tl.TypeBar[]; - baz: tl.namespace.TypeBaz; - egg: tl.namespace.TypeEgg[]; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry replaces primitive types 1`] = ` -"interface RawTest { - _: 'test'; - a: number; - b: Long; - c: Double; - d: string; - e: Uint8Array; - f: boolean; - g: number[]; -}" -`; - -exports[`generateTypescriptDefinitionsForTlEntry writes generic types 1`] = ` -"interface RawInvokeWithoutUpdatesRequest { - _: 'invokeWithoutUpdates'; - query: X; -}" -`; - exports[`generateTypescriptDefinitionsForTlSchema > writes schemas with methods 1`] = ` "interface RawTest { _: 'test'; @@ -453,131 +290,3 @@ exports[`generateTypescriptDefinitionsForTlSchema > writes simple schemas 2`] = "ns.isAnyTest = _isAny('Test'); _types = JSON.parse('{"test":"Test"}');" `; - -exports[`generateTypescriptDefinitionsForTlSchema writes schemas with methods 1`] = ` -"interface RawTest { - _: 'test'; -} -/** - * RPC method returns {@link tl.TypeTest} - */ -interface RawGetTestRequest { - _: 'getTest'; -} -interface RpcCallReturn { - 'getTest': tl.TypeTest -} -type TypeTest = tl.RawTest -function isAnyTest(o: object): o is TypeTest -type RpcMethod = - | tl.RawGetTestRequest - -type TlObject = - | tl.RawTest - | tl.RawGetTestRequest" -`; - -exports[`generateTypescriptDefinitionsForTlSchema writes schemas with methods 2`] = ` -"ns.isAnyTest = _isAny('Test'); -_types = JSON.parse('{"test":"Test"}');" -`; - -exports[`generateTypescriptDefinitionsForTlSchema writes schemas with multi-unions 1`] = ` -"interface RawTest { - _: 'test'; -} -interface RawTest2 { - _: 'test2'; -} -interface RpcCallReturn { -} -type TypeTest = tl.RawTest | tl.RawTest2 -function isAnyTest(o: object): o is TypeTest - -type TlObject = - | tl.RawTest - | tl.RawTest2" -`; - -exports[`generateTypescriptDefinitionsForTlSchema writes schemas with multi-unions 2`] = ` -"ns.isAnyTest = _isAny('Test'); -_types = JSON.parse('{"test":"Test","test2":"Test"}');" -`; - -exports[`generateTypescriptDefinitionsForTlSchema writes schemas with namespaces 1`] = ` -"interface RawTest { - _: 'test'; -} -interface RawTest2 { - _: 'test2'; -} -/** - * RPC method returns {@link tl.TypeTest} - */ -interface RawGetTestRequest { - _: 'getTest'; -} -interface RpcCallReturn extends test.RpcCallReturn { - 'getTest': tl.TypeTest -} -type TypeTest = tl.RawTest | tl.RawTest2 -function isAnyTest(o: object): o is TypeTest - -namespace test { - interface RawTest { - _: 'test.test'; - } - interface RawTest2 { - _: 'test.test2'; - } - /** - * RPC method returns {@link tl.test.TypeTest} - */ - interface RawGetTestRequest { - _: 'test.getTest'; - } - interface RpcCallReturn { - 'test.getTest': tl.test.TypeTest - } - type TypeTest = tl.test.RawTest | tl.test.RawTest2 - function isAnyTest(o: object): o is TypeTest -} -type RpcMethod = - | tl.RawGetTestRequest - | tl.test.RawGetTestRequest - -type TlObject = - | tl.RawTest - | tl.RawTest2 - | tl.test.RawTest - | tl.test.RawTest2 - | tl.RawGetTestRequest - | tl.test.RawGetTestRequest" -`; - -exports[`generateTypescriptDefinitionsForTlSchema writes schemas with namespaces 2`] = ` -"ns.isAnyTest = _isAny('Test'); -ns.test = {}; -(function(ns){ -ns.isAnyTest = _isAny('test.Test'); -})(ns.test); -_types = JSON.parse('{"test":"Test","test2":"Test","test.test":"test.Test","test.test2":"test.Test"}');" -`; - -exports[`generateTypescriptDefinitionsForTlSchema writes simple schemas 1`] = ` -"interface RawTest { - _: 'test'; -} -interface RpcCallReturn { -} -type TypeTest = tl.RawTest -function isAnyTest(o: object): o is TypeTest - -type TlObject = - | tl.RawTest" -`; - -exports[`generateTypescriptDefinitionsForTlSchema writes simple schemas 2`] = ` -"ns.isAnyTest = _isAny('Test'); -_types = JSON.parse('{"test":"Test"}');" -`; diff --git a/packages/tl-utils/src/codegen/__snapshots__/writer.test.ts.snap b/packages/tl-utils/src/codegen/__snapshots__/writer.test.ts.snap index ff9a4152..0de9f1c5 100644 --- a/packages/tl-utils/src/codegen/__snapshots__/writer.test.ts.snap +++ b/packages/tl-utils/src/codegen/__snapshots__/writer.test.ts.snap @@ -29,35 +29,6 @@ _staticSize:{ }" `; -exports[`generateWriterCodeForTlEntries generates code for bare types 1`] = ` -"var m={ -'future_salt':function(w,v){w.uint(155834844);w.bytes(h(v,'salt'));}, -'future_salts':function(w,v){w.uint(2924480661);w.vector(m._bare[155834844],h(v,'salts'),1);m._bare[155834844](w,h(v,'current'));}, -_bare:{ -155834844:function(w=this,v){w.bytes(h(v,'salt'));}, -}, -}" -`; - -exports[`generateWriterCodeForTlEntries should include prelude by default 1`] = ` -"function h(o,p){var q=o[p];if(q===void 0)throw Error('Object '+o._+' is missing required property '+p);return q} -var m={ -}" -`; - -exports[`generateWriterCodeForTlEntries should include static sizes calculations 1`] = ` -"function h(o,p){var q=o[p];if(q===void 0)throw Error('Object '+o._+' is missing required property '+p);return q} -var m={ -'test1':function(w,v){w.uint(102026291);w.int(h(v,'foo'));w.int(h(v,'bar'));}, -'test2':function(w,v){w.uint(2926357645);w.int(h(v,'foo'));w.double(h(v,'bar'));}, -'test3':function(w,v){w.uint(3373702963);w.int(h(v,'foo'));w.bytes(h(v,'bar'));}, -_staticSize:{ -'test1':12, -'test2':16, -}, -}" -`; - exports[`generateWriterCodeForTlEntry > automatically computes constructor ID if needed 1`] = `"'topPeerCategoryBotsPM':function(w){w.uint(2875595611);},"`; exports[`generateWriterCodeForTlEntry > generates code for bare vectors 1`] = `"'msg_container':function(w,v){w.uint(1945237724);w.vector(m._bare[155834844],h(v,'messages'),1);},"`; @@ -87,33 +58,3 @@ exports[`generateWriterCodeForTlEntry > generates code for constructors with vec exports[`generateWriterCodeForTlEntry > generates code for constructors without arguments 1`] = `"'topPeerCategoryBotsPM':function(w){w.uint(2875595611);},"`; exports[`generateWriterCodeForTlEntry > generates code with raw flags for constructors with flags 1`] = `"'test':function(w,v){w.uint(1554225816);var flags=v.flags;w.uint(flags);var flags2=v.flags2;w.uint(flags2);},"`; - -exports[`generateWriterCodeForTlEntry automatically computes constructor ID if needed 1`] = `"'topPeerCategoryBotsPM':function(w){w.uint(2875595611);},"`; - -exports[`generateWriterCodeForTlEntry generates code for bare vectors 1`] = `"'msg_container':function(w,v){w.uint(1945237724);w.vector(m._bare[155834844],h(v,'messages'),1);},"`; - -exports[`generateWriterCodeForTlEntry generates code for bare vectors 2`] = `"'future_salts':function(w,v){w.uint(2924480661);w.vector(m._bare[155834844],h(v,'salts'));w.object(h(v,'current'));},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with generics 1`] = `"'invokeWithLayer':function(w,v){w.uint(3667594509);w.int(h(v,'layer'));w.object(h(v,'query'));},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with multiple fields using the same flag 1`] = `"'inputMediaPoll':function(w,v){w.uint(261416433);var flags=0;var _solution=v.solution!==undefined;var _solutionEntities=v.solutionEntities&&v.solutionEntities.length;var _flags_1=_solution||_solutionEntities;if(_flags_1)flags|=2;w.uint(flags);if(_flags_1)w.string(v.solution);if(_flags_1)w.vector(w.object,v.solutionEntities);},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with multiple flags fields 1`] = `"'updates.channelDifferenceEmpty':function(w,v){w.uint(1041346555);var flags=0;if(v.final===true)flags|=1;var _timeout=v.timeout!==undefined;if(_timeout)flags|=2;w.uint(flags);w.int(h(v,'pts'));if(_timeout)w.int(v.timeout);var flags2=0;if(v.canDeleteChannel===true)flags2|=1;w.uint(flags2);},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with optional arguments 1`] = `"'updates.channelDifferenceEmpty':function(w,v){w.uint(1041346555);var flags=0;if(v.final===true)flags|=1;var _timeout=v.timeout!==undefined;if(_timeout)flags|=2;w.uint(flags);w.int(h(v,'pts'));if(_timeout)w.int(v.timeout);},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with optional vector arguments 1`] = `"'messages.getWebPagePreview':function(w,v){w.uint(2338894028);var flags=0;var _entities=v.entities&&v.entities.length;if(_entities)flags|=8;w.uint(flags);w.string(h(v,'message'));if(_entities)w.vector(w.object,v.entities);},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with simple arguments 1`] = `"'inputBotInlineMessageID':function(w,v){w.uint(2299280777);w.int(h(v,'dcId'));w.long(h(v,'id'));w.long(h(v,'accessHash'));},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with simple arguments 2`] = `"'contact':function(w,v){w.uint(341499403);w.long(h(v,'userId'));w.boolean(h(v,'mutual'));},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with simple arguments 3`] = `"'maskCoords':function(w,v){w.uint(2933316530);w.int(h(v,'n'));w.double(h(v,'x'));w.double(h(v,'y'));w.double(h(v,'zoom'));},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with true flags 1`] = `"'messages.messageEditData':function(w,v){w.uint(649453030);var flags=0;if(v.caption===true)flags|=1;w.uint(flags);},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors with vector arguments 1`] = `"'contacts.resolvedPeer':function(w,v){w.uint(2131196633);w.object(h(v,'peer'));w.vector(w.object,h(v,'chats'));w.vector(w.object,h(v,'users'));},"`; - -exports[`generateWriterCodeForTlEntry generates code for constructors without arguments 1`] = `"'topPeerCategoryBotsPM':function(w){w.uint(2875595611);},"`; - -exports[`generateWriterCodeForTlEntry generates code with raw flags for constructors with flags 1`] = `"'test':function(w,v){w.uint(1554225816);var flags=v.flags;w.uint(flags);var flags2=v.flags2;w.uint(flags2);},"`; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1eed727d..e62e9818 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,9 +21,6 @@ importers: '@types/node': specifier: 20.10.0 version: 20.10.0 - '@types/node-forge': - specifier: 1.3.2 - version: 1.3.2 '@types/ws': specifier: 8.5.4 version: 8.5.4 @@ -35,7 +32,7 @@ importers: version: 6.4.0(eslint@8.47.0)(typescript@5.1.6) '@vitest/browser': specifier: 1.4.0 - version: 1.4.0(playwright@1.40.1)(vitest@1.4.0) + version: 1.4.0(playwright@1.42.1)(vitest@1.4.0) '@vitest/coverage-v8': specifier: 1.4.0 version: 1.4.0(vitest@1.4.0) @@ -84,12 +81,9 @@ importers: lint-staged: specifier: 13.2.2 version: 13.2.2 - node-forge: - specifier: 1.3.1 - version: 1.3.1 playwright: - specifier: ^1.40.1 - version: 1.40.1 + specifier: ^1.42.1 + version: 1.42.1 prettier: specifier: 3.0.3 version: 3.0.3 @@ -114,6 +108,9 @@ importers: vite: specifier: 5.1.6 version: 5.1.6(@types/node@20.10.0) + vite-plugin-node-polyfills: + specifier: 0.21.0 + version: 0.21.0(vite@5.1.6) vitest: specifier: 1.4.0 version: 1.4.0(@types/node@20.10.0)(@vitest/browser@1.4.0)(@vitest/ui@1.4.0) @@ -347,8 +344,8 @@ importers: specifier: 5.2.3 version: 5.2.3 vitest: - specifier: ^0.34.6 - version: 0.34.6(@vitest/browser@1.4.0)(@vitest/ui@1.4.0)(playwright@1.40.1) + specifier: 1.4.0 + version: 1.4.0(@types/node@20.10.0)(@vitest/browser@1.4.0)(@vitest/ui@1.4.0) devDependencies: '@mtcute/tl-utils': specifier: workspace:^ @@ -1234,6 +1231,34 @@ packages: /@polka/url@1.0.0-next.25: resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + /@rollup/plugin-inject@5.0.5: + resolution: {integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.1.0 + estree-walker: 2.0.2 + magic-string: 0.30.8 + dev: true + + /@rollup/pluginutils@5.1.0: + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.5 + estree-walker: 2.0.2 + picomatch: 2.3.1 + dev: true + /@rollup/rollup-android-arm-eabi@4.13.0: resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} cpu: [arm] @@ -1355,16 +1380,6 @@ packages: '@types/node': 20.10.0 dev: true - /@types/chai-subset@1.3.5: - resolution: {integrity: sha512-c2mPnw+xHtXDoHmdtcCXGwyLMiauiAyxWMzhGpqHC4nqI/Y5G2XhTampslK2rb59kpcuHon03UH8W6iYUzw88A==} - dependencies: - '@types/chai': 4.3.5 - dev: false - - /@types/chai@4.3.5: - resolution: {integrity: sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==} - dev: false - /@types/cross-spawn@6.0.6: resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} dependencies: @@ -1405,12 +1420,6 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true - /@types/node-forge@1.3.2: - resolution: {integrity: sha512-TzX3ahoi9xbmaoT58smrBu7oa6dQXb/+PTNCslZyD/55tlJ/osofIMClzZsoo6buDFrg7e4DvVGkZqVgv6OLxw==} - dependencies: - '@types/node': 20.10.0 - dev: true - /@types/node@20.10.0: resolution: {integrity: sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==} dependencies: @@ -1573,7 +1582,7 @@ packages: eslint-visitor-keys: 3.4.1 dev: true - /@vitest/browser@1.4.0(playwright@1.40.1)(vitest@1.4.0): + /@vitest/browser@1.4.0(playwright@1.42.1)(vitest@1.4.0): resolution: {integrity: sha512-kC44DzuqPZZrqe2P7SX2a3zHDAt919WtpkUMAxzv9eP5uPfVXtpk2Ipms2NXJGY5190aJc1uY+ambfJ3rwDJRA==} peerDependencies: playwright: '*' @@ -1590,7 +1599,7 @@ packages: dependencies: '@vitest/utils': 1.4.0 magic-string: 0.30.8 - playwright: 1.40.1 + playwright: 1.42.1 sirv: 2.0.4 vitest: 1.4.0(@types/node@20.10.0)(@vitest/browser@1.4.0)(@vitest/ui@1.4.0) @@ -1618,14 +1627,6 @@ packages: - supports-color dev: true - /@vitest/expect@0.34.6: - resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} - dependencies: - '@vitest/spy': 0.34.6 - '@vitest/utils': 0.34.6 - chai: 4.4.1 - dev: false - /@vitest/expect@1.4.0: resolution: {integrity: sha512-Jths0sWCJZ8BxjKe+p+eKsoqev1/T8lYcrjavEaz8auEJ4jAVY0GwW3JKmdVU4mmNPLPHixh4GNXP7GFtAiDHA==} dependencies: @@ -1633,14 +1634,6 @@ packages: '@vitest/utils': 1.4.0 chai: 4.4.1 - /@vitest/runner@0.34.6: - resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} - dependencies: - '@vitest/utils': 0.34.6 - p-limit: 4.0.0 - pathe: 1.1.1 - dev: false - /@vitest/runner@1.4.0: resolution: {integrity: sha512-EDYVSmesqlQ4RD2VvWo3hQgTJ7ZrFQ2VSJdfiJiArkCerDAGeyF1i6dHkmySqk573jLp6d/cfqCN+7wUB5tLgg==} dependencies: @@ -1648,14 +1641,6 @@ packages: p-limit: 5.0.0 pathe: 1.1.2 - /@vitest/snapshot@0.34.6: - resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} - dependencies: - magic-string: 0.30.5 - pathe: 1.1.1 - pretty-format: 29.7.0 - dev: false - /@vitest/snapshot@1.4.0: resolution: {integrity: sha512-saAFnt5pPIA5qDGxOHxJ/XxhMFKkUSBJmVt5VgDsAqPTX6JP326r5C/c9UuCMPoXNzuudTPsYDZCoJ5ilpqG2A==} dependencies: @@ -1663,12 +1648,6 @@ packages: pathe: 1.1.2 pretty-format: 29.7.0 - /@vitest/spy@0.34.6: - resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} - dependencies: - tinyspy: 2.2.0 - dev: false - /@vitest/spy@1.4.0: resolution: {integrity: sha512-Ywau/Qs1DzM/8Uc+yA77CwSegizMlcgTJuYGAi0jujOteJOUf1ujunHThYo243KG9nAyWT3L9ifPYZ5+As/+6Q==} dependencies: @@ -1688,14 +1667,6 @@ packages: sirv: 2.0.4 vitest: 1.4.0(@types/node@20.10.0)(@vitest/browser@1.4.0)(@vitest/ui@1.4.0) - /@vitest/utils@0.34.6: - resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} - dependencies: - diff-sequences: 29.6.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - dev: false - /@vitest/utils@1.4.0: resolution: {integrity: sha512-mx3Yd1/6e2Vt/PUC98DcqTirtfxUyAZ32uK82r8rZzbtBeBo+nqgnjx/LvqQdWsrvNtm14VmurNgcf4nqY5gJg==} dependencies: @@ -1727,6 +1698,7 @@ packages: /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} + dev: true /acorn-walk@8.3.2: resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} @@ -1909,6 +1881,24 @@ packages: engines: {node: '>=0.10.0'} dev: true + /asn1.js@4.10.1: + resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} + dependencies: + bn.js: 4.12.0 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: true + + /assert@2.1.0: + resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} + dependencies: + call-bind: 1.0.7 + is-nan: 1.3.2 + object-is: 1.1.6 + object.assign: 4.1.4 + util: 0.12.5 + dev: true + /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} @@ -1954,6 +1944,14 @@ packages: inherits: 2.0.4 readable-stream: 3.6.0 + /bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + dev: true + + /bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + dev: true + /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true @@ -1975,12 +1973,87 @@ packages: dependencies: fill-range: 7.0.1 + /brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + dev: true + + /browser-resolve@2.0.0: + resolution: {integrity: sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==} + dependencies: + resolve: 1.22.4 + dev: true + + /browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.4 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /browserify-cipher@1.0.1: + resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} + dependencies: + browserify-aes: 1.2.0 + browserify-des: 1.0.2 + evp_bytestokey: 1.0.3 + dev: true + + /browserify-des@1.0.2: + resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} + dependencies: + cipher-base: 1.0.4 + des.js: 1.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /browserify-rsa@4.1.0: + resolution: {integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==} + dependencies: + bn.js: 5.2.1 + randombytes: 2.1.0 + dev: true + + /browserify-sign@4.2.3: + resolution: {integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==} + engines: {node: '>= 0.12'} + dependencies: + bn.js: 5.2.1 + browserify-rsa: 4.1.0 + create-hash: 1.2.0 + create-hmac: 1.1.7 + elliptic: 6.5.5 + hash-base: 3.0.4 + inherits: 2.0.4 + parse-asn1: 5.1.7 + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + dev: true + + /browserify-zlib@0.2.0: + resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} + dependencies: + pako: 1.0.11 + dev: true + + /buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + dev: true + /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 + /builtin-status-codes@3.0.0: + resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} + dev: true + /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -2017,6 +2090,17 @@ packages: function-bind: 1.1.1 get-intrinsic: 1.2.1 + /call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + dev: true + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -2132,6 +2216,13 @@ packages: engines: {node: '>=10'} dev: false + /cipher-base@1.0.4: + resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==} + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + /cjs-module-lexer@1.2.3: resolution: {integrity: sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==} dev: true @@ -2226,10 +2317,18 @@ packages: /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + /console-browserify@1.2.0: + resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} + dev: true + /console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} dev: false + /constants-browserify@1.0.0: + resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} + dev: true + /conventional-changelog-angular@5.0.13: resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==} engines: {node: '>=10'} @@ -2264,6 +2363,10 @@ packages: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true + /core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + dev: true + /cosmiconfig-typescript-loader@4.3.0(@types/node@20.10.0)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@5.1.6): resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} engines: {node: '>=12', npm: '>=6'} @@ -2298,6 +2401,34 @@ packages: printj: 1.1.2 dev: false + /create-ecdh@4.0.4: + resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} + dependencies: + bn.js: 4.12.0 + elliptic: 6.5.5 + dev: true + + /create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + dependencies: + cipher-base: 1.0.4 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + dev: true + + /create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + dependencies: + cipher-base: 1.0.4 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + dev: true + /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true @@ -2310,6 +2441,22 @@ packages: shebang-command: 2.0.0 which: 2.0.2 + /crypto-browserify@3.12.0: + resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} + dependencies: + browserify-cipher: 1.0.1 + browserify-sign: 4.2.3 + create-ecdh: 4.0.4 + create-hash: 1.2.0 + create-hmac: 1.1.7 + diffie-hellman: 5.0.3 + inherits: 2.0.4 + pbkdf2: 3.1.2 + public-encrypt: 4.0.3 + randombytes: 2.1.0 + randomfill: 1.0.4 + dev: true + /css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} dependencies: @@ -2401,6 +2548,15 @@ packages: dependencies: clone: 1.0.4 + /define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + dev: true + /define-properties@1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} @@ -2409,6 +2565,15 @@ packages: object-keys: 1.1.1 dev: true + /define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + dev: true + /delegates@1.0.0: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: false @@ -2418,6 +2583,13 @@ packages: engines: {node: '>= 0.6'} dev: false + /des.js@1.1.0: + resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: true + /detect-libc@2.0.1: resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} engines: {node: '>=8'} @@ -2432,6 +2604,14 @@ packages: engines: {node: '>=0.3.1'} dev: true + /diffie-hellman@5.0.3: + resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + dependencies: + bn.js: 4.12.0 + miller-rabin: 4.0.1 + randombytes: 2.1.0 + dev: true + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -2469,6 +2649,11 @@ packages: entities: 4.5.0 dev: true + /domain-browser@4.23.0: + resolution: {integrity: sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==} + engines: {node: '>=10'} + dev: true + /domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} @@ -2541,6 +2726,18 @@ packages: /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + /elliptic@6.5.5: + resolution: {integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==} + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: true + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2633,6 +2830,18 @@ packages: which-typed-array: 1.1.9 dev: true + /es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.4 + dev: true + + /es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + dev: true + /es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} @@ -2949,6 +3158,10 @@ packages: engines: {node: '>=4.0'} dev: true + /estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + dev: true + /estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: @@ -2962,7 +3175,13 @@ packages: /events@3.2.0: resolution: {integrity: sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==} engines: {node: '>=0.8.x'} - dev: false + + /evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + dev: true /execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} @@ -3188,6 +3407,10 @@ packages: /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + /function.prototype.name@1.1.5: resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} engines: {node: '>= 0.4'} @@ -3232,6 +3455,17 @@ packages: has-proto: 1.0.1 has-symbols: 1.0.3 + /get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.1 + has-symbols: 1.0.3 + hasown: 2.0.2 + dev: true + /get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -3423,6 +3657,12 @@ packages: get-intrinsic: 1.2.1 dev: true + /has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + dependencies: + es-define-property: 1.0.0 + dev: true + /has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} @@ -3448,6 +3688,45 @@ packages: dependencies: function-bind: 1.1.1 + /hash-base@3.0.4: + resolution: {integrity: sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==} + engines: {node: '>=4'} + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + + /hash-base@3.1.0: + resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==} + engines: {node: '>=4'} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.0 + safe-buffer: 5.2.1 + dev: true + + /hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + dev: true + + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + + /hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + dev: true + /hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} dev: true @@ -3496,6 +3775,10 @@ packages: - supports-color dev: false + /https-browserify@1.0.0: + resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} + dev: true + /https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} @@ -3632,6 +3915,14 @@ packages: resolution: {integrity: sha512-rBtCAQAJm8A110nbwn6YdveUnuZH3WrC36IwkRXxDnq53JvXA2NVQvB7IHyKomxK1MJ4VDNw3UtFDdXQ+AvLYA==} dev: false + /is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.0 + dev: true + /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: @@ -3695,6 +3986,13 @@ packages: engines: {node: '>=12'} dev: true + /is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: true + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -3709,6 +4007,14 @@ packages: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} dev: false + /is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + dev: true + /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} @@ -3810,9 +4116,18 @@ packages: call-bind: 1.0.2 dev: true + /isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + dev: true + /isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + /isomorphic-timers-promises@1.0.1: + resolution: {integrity: sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==} + engines: {node: '>=10'} + dev: true + /istanbul-lib-coverage@3.2.2: resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} engines: {node: '>=8'} @@ -3977,11 +4292,6 @@ packages: wrap-ansi: 7.0.0 dev: true - /local-pkg@0.4.3: - resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} - engines: {node: '>=14'} - dev: false - /local-pkg@0.5.0: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} @@ -4097,13 +4407,6 @@ packages: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} dev: true - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - dev: false - /magic-string@0.30.8: resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} engines: {node: '>=12'} @@ -4170,6 +4473,14 @@ packages: hasBin: true dev: true + /md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + /meow@8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} @@ -4201,6 +4512,14 @@ packages: braces: 3.0.2 picomatch: 2.3.1 + /miller-rabin@4.0.1: + resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} + hasBin: true + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + dev: true + /mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -4219,6 +4538,14 @@ packages: engines: {node: '>=4'} dev: true + /minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + dev: true + + /minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + dev: true + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: @@ -4384,11 +4711,6 @@ packages: semver: 7.5.1 dev: false - /node-forge@1.3.1: - resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} - engines: {node: '>= 6.13.0'} - dev: true - /node-gyp@9.3.1: resolution: {integrity: sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==} engines: {node: ^12.13 || ^14.13 || >=16} @@ -4409,6 +4731,39 @@ packages: - supports-color dev: false + /node-stdlib-browser@1.2.0: + resolution: {integrity: sha512-VSjFxUhRhkyed8AtLwSCkMrJRfQ3e2lGtG3sP6FEgaLKBBbxM/dLfjRe1+iLhjvyLFW3tBQ8+c0pcOtXGbAZJg==} + engines: {node: '>=10'} + dependencies: + assert: 2.1.0 + browser-resolve: 2.0.0 + browserify-zlib: 0.2.0 + buffer: 5.7.1 + console-browserify: 1.2.0 + constants-browserify: 1.0.0 + create-require: 1.1.1 + crypto-browserify: 3.12.0 + domain-browser: 4.23.0 + events: 3.2.0 + https-browserify: 1.0.0 + isomorphic-timers-promises: 1.0.1 + os-browserify: 0.3.0 + path-browserify: 1.0.1 + pkg-dir: 5.0.0 + process: 0.11.10 + punycode: 1.4.1 + querystring-es3: 0.2.1 + readable-stream: 3.6.0 + stream-browserify: 3.0.0 + stream-http: 3.2.0 + string_decoder: 1.3.0 + timers-browserify: 2.0.12 + tty-browserify: 0.0.1 + url: 0.11.3 + util: 0.12.5 + vm-browserify: 1.1.2 + dev: true + /nopt@6.0.0: resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -4481,6 +4836,18 @@ packages: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: true + /object-inspect@1.13.1: + resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + dev: true + + /object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + define-properties: 1.2.1 + dev: true + /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -4570,6 +4937,10 @@ packages: strip-ansi: 6.0.1 wcwidth: 1.0.1 + /os-browserify@0.3.0: + resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} + dev: true + /os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} @@ -4589,13 +4960,6 @@ packages: yocto-queue: 0.1.0 dev: true - /p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - yocto-queue: 1.0.0 - dev: false - /p-limit@5.0.0: resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} engines: {node: '>=18'} @@ -4627,6 +4991,10 @@ packages: engines: {node: '>=6'} dev: true + /pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + dev: true + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} @@ -4634,6 +5002,18 @@ packages: callsites: 3.1.0 dev: true + /parse-asn1@5.1.7: + resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} + engines: {node: '>= 0.10'} + dependencies: + asn1.js: 4.10.1 + browserify-aes: 1.2.0 + evp_bytestokey: 1.0.3 + hash-base: 3.0.4 + pbkdf2: 3.1.2 + safe-buffer: 5.2.1 + dev: true + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} @@ -4657,6 +5037,10 @@ packages: entities: 4.5.0 dev: true + /path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + dev: true + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -4704,6 +5088,17 @@ packages: engines: {node: '>= 14.16'} dev: true + /pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + dev: true + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -4717,6 +5112,13 @@ packages: hasBin: true dev: true + /pkg-dir@5.0.0: + resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} + engines: {node: '>=10'} + dependencies: + find-up: 5.0.0 + dev: true + /pkg-types@1.0.3: resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} dependencies: @@ -4724,17 +5126,17 @@ packages: mlly: 1.4.2 pathe: 1.1.1 - /playwright-core@1.40.1: - resolution: {integrity: sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==} + /playwright-core@1.42.1: + resolution: {integrity: sha512-mxz6zclokgrke9p1vtdy/COWBH+eOZgYUVVU34C73M+4j4HLlQJHtfcqiqqxpP0o8HhMkflvfbquLX5dg6wlfA==} engines: {node: '>=16'} hasBin: true - /playwright@1.40.1: - resolution: {integrity: sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==} + /playwright@1.42.1: + resolution: {integrity: sha512-PgwB03s2DZBcNRoW+1w9E+VkLBxweib6KTXM0M3tkiT4jVxKSi6PmVJ591J+0u10LUrgxB7dLRbiJqO5s2QPMg==} engines: {node: '>=16'} hasBin: true dependencies: - playwright-core: 1.40.1 + playwright-core: 1.42.1 optionalDependencies: fsevents: 2.3.2 @@ -4790,6 +5192,15 @@ packages: hasBin: true dev: false + /process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + dev: true + + /process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + dev: true + /promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: @@ -4807,6 +5218,17 @@ packages: retry: 0.12.0 dev: false + /public-encrypt@4.0.3: + resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} + dependencies: + bn.js: 4.12.0 + browserify-rsa: 4.1.0 + create-hash: 1.2.0 + parse-asn1: 5.1.7 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + dev: true + /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: @@ -4814,6 +5236,10 @@ packages: once: 1.4.0 dev: false + /punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + dev: true + /punycode@2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} @@ -4824,6 +5250,18 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} dev: true + /qs@6.12.0: + resolution: {integrity: sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg==} + engines: {node: '>=0.6'} + dependencies: + side-channel: 1.0.6 + dev: true + + /querystring-es3@0.2.1: + resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} + engines: {node: '>=0.4.x'} + dev: true + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -4832,6 +5270,19 @@ packages: engines: {node: '>=8'} dev: true + /randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + dependencies: + safe-buffer: 5.2.1 + dev: true + + /randomfill@1.0.4: + resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} + dependencies: + randombytes: 2.1.0 + safe-buffer: 5.2.1 + dev: true + /rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true @@ -4864,6 +5315,18 @@ packages: type-fest: 0.6.0 dev: true + /readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + dev: true + /readable-stream@3.6.0: resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} engines: {node: '>= 6'} @@ -4963,6 +5426,13 @@ packages: glob: 10.2.6 dev: true + /ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + dependencies: + hash-base: 3.1.0 + inherits: 2.0.4 + dev: true + /rollup@4.13.0: resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -5000,6 +5470,10 @@ packages: dependencies: tslib: 2.6.2 + /safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + dev: true + /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} @@ -5061,6 +5535,30 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: false + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + dev: true + + /setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + dev: true + + /sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + dev: true + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -5088,6 +5586,16 @@ packages: object-inspect: 1.12.3 dev: true + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 + dev: true + /siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -5224,13 +5732,25 @@ packages: /stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - /std-env@3.4.3: - resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} - dev: false - /std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + /stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.0 + dev: true + + /stream-http@3.2.0: + resolution: {integrity: sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==} + dependencies: + builtin-status-codes: 3.0.0 + inherits: 2.0.4 + readable-stream: 3.6.0 + xtend: 4.0.2 + dev: true + /string-argv@0.3.2: resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} engines: {node: '>=0.6.19'} @@ -5277,6 +5797,12 @@ packages: es-abstract: 1.21.2 dev: true + /string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + dependencies: + safe-buffer: 5.1.2 + dev: true + /string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} dependencies: @@ -5325,12 +5851,6 @@ packages: engines: {node: '>=8'} dev: true - /strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} - dependencies: - acorn: 8.10.0 - dev: false - /strip-literal@2.0.0: resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==} dependencies: @@ -5419,27 +5939,20 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true - /tinybench@2.5.1: - resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} - dev: false + /timers-browserify@2.0.12: + resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} + engines: {node: '>=0.6.0'} + dependencies: + setimmediate: 1.0.5 + dev: true /tinybench@2.6.0: resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} - /tinypool@0.7.0: - resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} - engines: {node: '>=14.0.0'} - dev: false - /tinypool@0.8.2: resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} engines: {node: '>=14.0.0'} - /tinyspy@2.2.0: - resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} - engines: {node: '>=14.0.0'} - dev: false - /tinyspy@2.2.1: resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} engines: {node: '>=14.0.0'} @@ -5532,6 +6045,10 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + /tty-browserify@0.0.1: + resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} + dev: true + /tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} dependencies: @@ -5656,9 +6173,26 @@ packages: punycode: 2.1.1 dev: true + /url@0.11.3: + resolution: {integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==} + dependencies: + punycode: 1.4.1 + qs: 6.12.0 + dev: true + /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + /util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.10 + which-typed-array: 1.1.9 + dev: true + /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true @@ -5679,28 +6213,6 @@ packages: spdx-expression-parse: 3.0.1 dev: true - /vite-node@0.34.6(@types/node@20.10.0): - resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} - engines: {node: '>=v14.18.0'} - hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4 - mlly: 1.4.2 - pathe: 1.1.1 - picocolors: 1.0.0 - vite: 5.1.6(@types/node@20.10.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: false - /vite-node@1.4.0(@types/node@20.10.0): resolution: {integrity: sha512-VZDAseqjrHgNd4Kh8icYHWzTKSCZMhia7GyHfhtzLW33fZlG9SwsB6CEhgyVOWkJfJ2pFLrp/Gj1FSfAiqH9Lw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -5721,6 +6233,18 @@ packages: - supports-color - terser + /vite-plugin-node-polyfills@0.21.0(vite@5.1.6): + resolution: {integrity: sha512-Sk4DiKnmxN8E0vhgEhzLudfJQfaT8k4/gJ25xvUPG54KjLJ6HAmDKbr4rzDD/QWEY+Lwg80KE85fGYBQihEPQA==} + peerDependencies: + vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + dependencies: + '@rollup/plugin-inject': 5.0.5 + node-stdlib-browser: 1.2.0 + vite: 5.1.6(@types/node@20.10.0) + transitivePeerDependencies: + - rollup + dev: true + /vite@5.1.6(@types/node@20.10.0): resolution: {integrity: sha512-yYIAZs9nVfRJ/AiOLCA91zzhjsHUgMjB+EigzFb6W2XTLO8JixBCKCjvhKZaye+NKYHCrkv3Oh50dH9EdLU2RA==} engines: {node: ^18.0.0 || >=20.0.0} @@ -5756,74 +6280,6 @@ packages: optionalDependencies: fsevents: 2.3.3 - /vitest@0.34.6(@vitest/browser@1.4.0)(@vitest/ui@1.4.0)(playwright@1.40.1): - resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} - engines: {node: '>=v14.18.0'} - hasBin: true - peerDependencies: - '@edge-runtime/vm': '*' - '@vitest/browser': '*' - '@vitest/ui': '*' - happy-dom: '*' - jsdom: '*' - playwright: '*' - safaridriver: '*' - webdriverio: '*' - peerDependenciesMeta: - '@edge-runtime/vm': - optional: true - '@vitest/browser': - optional: true - '@vitest/ui': - optional: true - happy-dom: - optional: true - jsdom: - optional: true - playwright: - optional: true - safaridriver: - optional: true - webdriverio: - optional: true - dependencies: - '@types/chai': 4.3.5 - '@types/chai-subset': 1.3.5 - '@types/node': 20.10.0 - '@vitest/browser': 1.4.0(playwright@1.40.1)(vitest@1.4.0) - '@vitest/expect': 0.34.6 - '@vitest/runner': 0.34.6 - '@vitest/snapshot': 0.34.6 - '@vitest/spy': 0.34.6 - '@vitest/ui': 1.4.0(vitest@1.4.0) - '@vitest/utils': 0.34.6 - acorn: 8.10.0 - acorn-walk: 8.2.0 - cac: 6.7.14 - chai: 4.4.1 - debug: 4.3.4 - local-pkg: 0.4.3 - magic-string: 0.30.5 - pathe: 1.1.1 - picocolors: 1.0.0 - playwright: 1.40.1 - std-env: 3.4.3 - strip-literal: 1.3.0 - tinybench: 2.5.1 - tinypool: 0.7.0 - vite: 5.1.6(@types/node@20.10.0) - vite-node: 0.34.6(@types/node@20.10.0) - why-is-node-running: 2.2.2 - transitivePeerDependencies: - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: false - /vitest@1.4.0(@types/node@20.10.0)(@vitest/browser@1.4.0)(@vitest/ui@1.4.0): resolution: {integrity: sha512-gujzn0g7fmwf83/WzrDTnncZt2UiXP41mHuFYFrdwaLRVQ6JYQEiME2IfEjU3vcFL3VKa75XhI3lFgn+hfVsQw==} engines: {node: ^18.0.0 || >=20.0.0} @@ -5850,7 +6306,7 @@ packages: optional: true dependencies: '@types/node': 20.10.0 - '@vitest/browser': 1.4.0(playwright@1.40.1)(vitest@1.4.0) + '@vitest/browser': 1.4.0(playwright@1.42.1)(vitest@1.4.0) '@vitest/expect': 1.4.0 '@vitest/runner': 1.4.0 '@vitest/snapshot': 1.4.0 @@ -5881,6 +6337,10 @@ packages: - supports-color - terser + /vm-browserify@1.1.2: + resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} + dev: true + /vscode-oniguruma@1.7.0: resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} dev: true @@ -5981,6 +6441,11 @@ packages: optional: true dev: true + /xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + dev: true + /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} diff --git a/scripts/validate-deps-versions.mjs b/scripts/validate-deps-versions.mjs index be1aa847..0a54ae30 100644 --- a/scripts/validate-deps-versions.mjs +++ b/scripts/validate-deps-versions.mjs @@ -4,7 +4,7 @@ import { fileURLToPath } from 'url' import { getPackageJsons } from './utils.mjs' export async function validateDepsVersions() { - const packageJsons = await getPackageJsons() + const packageJsons = await getPackageJsons(true) const versions = {} const errors = [] -- 2.45.2 From 9eb3ed00880f28656d9412751180e8a6f29d5967 Mon Sep 17 00:00:00 2001 From: Alina Sireneva Date: Tue, 19 Mar 2024 01:33:06 +0300 Subject: [PATCH 4/4] test: only include package code in coverage --- .config/vite.mts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.config/vite.mts b/.config/vite.mts index c346cdd2..f4ee57c5 100644 --- a/.config/vite.mts +++ b/.config/vite.mts @@ -11,6 +11,14 @@ export default defineConfig({ 'packages/**/*.test-d.ts', ], }, + coverage: { + include: [ + 'packages/**/*.ts', + ], + exclude: [ + 'packages/**/index.ts', + ] + }, setupFiles: [ './.config/vite-utils/test-setup.mts' ] -- 2.45.2