From 3db4409214fcc4224d55089e0da6138402563f5a Mon Sep 17 00:00:00 2001 From: Anton Trunov Date: Tue, 4 Jun 2024 00:17:29 +0800 Subject: [PATCH] * fix: typos in comments and identifiers across codebase (#372) * fix capitalization issues for AST constructions for assignments * fix(abi): undeflow -> underflow The reason addresses are changed in snapshots is because the generated FunC code got changed too because `get_abi_ipfs` getters are now containing different IPFS addresses due to changed ABIs: ``` _ get_abi_ipfs() method_id { return "ipfs://QmRM77XpqMrANwLE8K3A287jZHvuQSLr76xYM2ea8wZZ89"; // ^^^ the hash changes } ``` * ci: add spell checking with cSpell --- .github/workflows/tact.yml | 4 + CHANGELOG.md | 2 + ROADMAP.md | 2 +- bin/tact | 2 +- cspell.json | 89 +++ examples/__snapshots__/increment.spec.ts.snap | 6 +- .../__snapshots__/multisig-3.spec.ts.snap | 4 +- examples/__snapshots__/wallet.spec.ts.snap | 10 +- examples/multisig-3.spec.ts | 2 +- examples/multisig.tact | 2 +- examples/rugpull.tact | 2 +- package.json | 2 + src/abi/map.ts | 56 +- src/bindings/typescript/writeStruct.ts | 4 +- src/generator/createABI.ts | 2 +- src/generator/emitter/emit.ts | 2 +- .../intrinsics/tryExpressionIntrinsics.ts | 2 +- src/generator/writeProgram.ts | 48 +- .../writeSerialization.spec.ts.snap | 24 +- src/generator/writers/ops.ts | 2 +- ...cTupledType.ts => resolveFuncTupleType.ts} | 6 +- src/generator/writers/resolveFuncType.spec.ts | 40 +- src/generator/writers/writeAccessors.ts | 6 +- src/generator/writers/writeExpression.spec.ts | 8 +- src/generator/writers/writeExpression.ts | 6 +- src/generator/writers/writeFunction.ts | 34 +- .../writers/writeSerialization.spec.ts | 12 +- src/generator/writers/writeStdlib.ts | 6 +- .../__snapshots__/grammar.spec.ts.snap | 2 +- src/grammar/ast.ts | 18 +- src/grammar/test-failed/case-10.tact | 2 +- src/imports/stdlib.ts | 98 +-- src/test/__snapshots__/bugs.spec.ts.snap | 8 +- .../feature-constants.spec.ts.snap | 8 +- .../__snapshots__/feature-deep.spec.ts.snap | 32 +- .../feature-implicit-init.spec.ts.snap | 8 +- .../feature-instrinsics.spec.ts.snap | 46 -- .../feature-intrinsics.spec.ts.snap | 91 +++ .../feature-masterchain.spec.ts.snap | 10 +- .../__snapshots__/feature-send.spec.ts.snap | 10 +- .../feature-try-catch.spec.ts.snap | 8 +- src/test/bugs/issue43.tact | 20 +- ...ics.spec.ts => feature-intrinsics.spec.ts} | 4 +- src/test/feature-math.spec.ts | 28 +- src/test/feature-serialization.spec.ts | 6 +- src/test/features/math.tact | 24 +- src/test/features/serialization-2.tact | 4 +- src/types/resolveABITypeRef.ts | 4 +- src/types/resolveDescriptors.ts | 8 +- src/types/resolveSignatures.ts | 6 +- src/verify.ts | 2 +- src/vfs/createNodeFileSystem.spec.ts | 4 +- stdlib/libs/dns.fc | 26 +- stdlib/std/context.tact | 2 +- stdlib/std/text.tact | 2 +- yarn.lock | 646 +++++++++++++++++- 56 files changed, 1144 insertions(+), 368 deletions(-) create mode 100644 cspell.json rename src/generator/writers/{resolveFuncTupledType.ts => resolveFuncTupleType.ts} (88%) delete mode 100644 src/test/__snapshots__/feature-instrinsics.spec.ts.snap create mode 100644 src/test/__snapshots__/feature-intrinsics.spec.ts.snap rename src/test/{feature-instrinsics.spec.ts => feature-intrinsics.spec.ts} (96%) diff --git a/.github/workflows/tact.yml b/.github/workflows/tact.yml index c49648211..2d10b2127 100644 --- a/.github/workflows/tact.yml +++ b/.github/workflows/tact.yml @@ -52,6 +52,10 @@ jobs: run: | yarn lint:schema + - name: Spellcheck code base + run: | + yarn spell + - name: Show an example .pkg file on Windows if: runner.os == 'Windows' run: | diff --git a/CHANGELOG.md b/CHANGELOG.md index a484c4da0..c3e474db0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Tests for recursive functions: PR [#359](https://github.com/tact-lang/tact/pull/359) - API for AST traversal: PR [#368](https://github.com/tact-lang/tact/pull/368) +- Spell checking for the whole code base: PR [#372](https://github.com/tact-lang/tact/pull/372) ### Changed @@ -28,6 +29,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Built-in function `address()` now handles parse errors correctly: PR [#357](https://github.com/tact-lang/tact/pull/357) - All identifiers in error messages are now quoted for consistency: PR [#363](https://github.com/tact-lang/tact/pull/363) - The grammar of the unary operators has been fixed, constant and function declarations are prohibited for contracts and at the top level of Tact modules: PR [#365](https://github.com/tact-lang/tact/pull/365) +- Typos in ABI generation: : PR [#372](https://github.com/tact-lang/tact/pull/372) ## [1.3.0] - 2024-05-03 diff --git a/ROADMAP.md b/ROADMAP.md index adf588b07..73a8414cd 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -29,7 +29,7 @@ This version would include the following features: - Typed tuples - `let` type inference when possible - Limited external messages support -- Contract automatic optimisations +- Contract automatic optimizations - Auto-unpacking nullable variables to non-null one ## ✍️ Version v3 diff --git a/bin/tact b/bin/tact index eeee578f1..296786cb3 100755 --- a/bin/tact +++ b/bin/tact @@ -124,7 +124,7 @@ meowModule.then( ? "funcOnly" : undefined; - // TODO: all flags on the cli should take precendence over flags in the config + // TODO: all flags on the cli should take precedence over flags in the config // Make a nice model for it in the src/node.ts instead of the current mess // Consider making overwrites right here or something. diff --git a/cspell.json b/cspell.json new file mode 100644 index 000000000..e80a984cf --- /dev/null +++ b/cspell.json @@ -0,0 +1,89 @@ +{ + "$schema": "https://raw.githubusercontent.com/streetsidesoftware/cspell/main/cspell.schema.json", + "version": "0.2", + "language": "en", + "words": [ + "alnum", + "augmentedassign", + "blockstore", + "bounceable", + "codegen", + "decompile", + "Decompiled", + "decompiler", + "Descr", + "divmod", + "dnsresolve", + "Fift", + "forall", + "funcfiftlib", + "ipfs", + "ipld", + "jettons", + "jsxdev", + "langle", + "lparen", + "lvalue", + "masterchain", + "maxint", + "minmax", + "mintable", + "multiformats", + "Korshakov", + "nocheck", + "noexcept", + "Neovim", + "Offchain", + "Parens", + "POSIX", + "prando", + "rangle", + "rparen", + "rugpull", + "rugpulled", + "sctx", + "seqno", + "shiki", + "Stateinit", + "stdlib", + "struct", + "structs", + "testdata", + "Topup", + "typechecker", + "uintptr", + "uncons", + "unixfs", + "workchain", + "привет", + "PUSHREF", + "PUSHSLICE", + "SETINDEXVARQ" + ], + "flagWords": [], + "ignorePaths": [ + "**/*/output", + "node_modules", + "dist", + "examples/__snapshots__/multisig-3.spec.ts.snap", + "func", + "grammar/sample.json", + "src/generator/writers/writeStdlib.ts", + "src/generator/writers/__snapshots__/writeSerialization.spec.ts.snap", + "src/grammar/grammar.ohm-bundle.d.ts", + "src/imports/stdlib.ts", + "src/test/__snapshots__/bugs.spec.ts.snap", + "src/test/__snapshots__/feature-constants.spec.ts.snap", + "src/test/__snapshots__/feature-deep.spec.ts.snap", + "src/test/__snapshots__/feature-implicit-init.spec.ts.snap", + "src/test/__snapshots__/feature-masterchain.spec.ts.snap", + "src/test/__snapshots__/feature-try-catch.spec.ts.snap", + "src/test/feature-address.spec.ts", + "src/test/feature-intrinsics.spec.ts", + "src/test/feature-optionals.spec.ts", + "src/test/feature-strings.spec.ts", + "src/test/features/intrinsics.tact", + "src/test/features/strings.tact", + "stdlib/stdlib.fc" + ] +} diff --git a/examples/__snapshots__/increment.spec.ts.snap b/examples/__snapshots__/increment.spec.ts.snap index ba654e18e..6ec88e61b 100644 --- a/examples/__snapshots__/increment.spec.ts.snap +++ b/examples/__snapshots__/increment.spec.ts.snap @@ -20,7 +20,7 @@ exports[`increment should deploy 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQDeI5IisUF0tSvWxNDeA-Og-_S1nAT8ZdqTvOZ30HeNgzC1", + "to": "kQD6nAKeXIDwsXvmoLzvgplYcBDQIev4lyf1hznCywYBtZwE", "type": "internal", "value": "10", }, @@ -41,7 +41,7 @@ exports[`increment should deploy 1`] = ` }, }, "bounce": false, - "from": "kQDeI5IisUF0tSvWxNDeA-Og-_S1nAT8ZdqTvOZ30HeNgzC1", + "from": "kQD6nAKeXIDwsXvmoLzvgplYcBDQIev4lyf1hznCywYBtZwE", "to": "@treasure(treasure)", "type": "internal", "value": "9.990313", @@ -71,7 +71,7 @@ exports[`increment should deploy 2`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQDeI5IisUF0tSvWxNDeA-Og-_S1nAT8ZdqTvOZ30HeNgzC1", + "to": "kQD6nAKeXIDwsXvmoLzvgplYcBDQIev4lyf1hznCywYBtZwE", "type": "internal", "value": "10", }, diff --git a/examples/__snapshots__/multisig-3.spec.ts.snap b/examples/__snapshots__/multisig-3.spec.ts.snap index f689fb66d..834a9c717 100644 --- a/examples/__snapshots__/multisig-3.spec.ts.snap +++ b/examples/__snapshots__/multisig-3.spec.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`muiltisig-3 should deploy 1`] = ` +exports[`multisig-3 should deploy 1`] = ` [ { "$seq": 0, @@ -17,7 +17,7 @@ exports[`muiltisig-3 should deploy 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQA2dtHnP8ywA0dgkHw5rQTXGtbBDktii55xFgnShHpu1XtQ", + "to": "kQBXbQ5TLfxfUX18NuZ6xVRfHett-T_4o8LEea5wStaBGa9n", "type": "internal", "value": "10", }, diff --git a/examples/__snapshots__/wallet.spec.ts.snap b/examples/__snapshots__/wallet.spec.ts.snap index c1d7a063c..53e51a905 100644 --- a/examples/__snapshots__/wallet.spec.ts.snap +++ b/examples/__snapshots__/wallet.spec.ts.snap @@ -17,7 +17,7 @@ exports[`wallet should deploy 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQCjmMHzL6dRv6HCrACYpCe1qJbXqGp_P1ObgRO1orr1RW5j", + "to": "kQCR5iC3JwCwj6f0xBFwvLeYS8sZvKRQbtXJRpajfqVarbq6", "type": "internal", "value": "10", }, @@ -45,7 +45,7 @@ exports[`wallet should deploy 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQCjmMHzL6dRv6HCrACYpCe1qJbXqGp_P1ObgRO1orr1RW5j", + "to": "kQCR5iC3JwCwj6f0xBFwvLeYS8sZvKRQbtXJRpajfqVarbq6", "type": "internal", "value": "1", }, @@ -62,7 +62,7 @@ exports[`wallet should deploy 1`] = ` "type": "empty", }, "bounce": true, - "from": "kQCjmMHzL6dRv6HCrACYpCe1qJbXqGp_P1ObgRO1orr1RW5j", + "from": "kQCR5iC3JwCwj6f0xBFwvLeYS8sZvKRQbtXJRpajfqVarbq6", "to": "@treasure(treasure)", "type": "internal", "value": "10", @@ -92,7 +92,7 @@ exports[`wallet should deploy 2`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQCjmMHzL6dRv6HCrACYpCe1qJbXqGp_P1ObgRO1orr1RW5j", + "to": "kQCR5iC3JwCwj6f0xBFwvLeYS8sZvKRQbtXJRpajfqVarbq6", "type": "internal", "value": "1", }, @@ -123,7 +123,7 @@ exports[`wallet should deploy 3`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQCjmMHzL6dRv6HCrACYpCe1qJbXqGp_P1ObgRO1orr1RW5j", + "to": "kQCR5iC3JwCwj6f0xBFwvLeYS8sZvKRQbtXJRpajfqVarbq6", "type": "internal", "value": "1", }, diff --git a/examples/multisig-3.spec.ts b/examples/multisig-3.spec.ts index 1a8834984..90fab5b54 100644 --- a/examples/multisig-3.spec.ts +++ b/examples/multisig-3.spec.ts @@ -2,7 +2,7 @@ import { toNano } from "@ton/core"; import { ContractSystem } from "@tact-lang/emulator"; import { MultisigContract } from "./output/multisig-3_MultisigContract"; -describe("muiltisig-3", () => { +describe("multisig-3", () => { it("should deploy", async () => { // Init contract const key1 = 1n; diff --git a/examples/multisig.tact b/examples/multisig.tact index 8a30d4abf..188cbc50e 100644 --- a/examples/multisig.tact +++ b/examples/multisig.tact @@ -43,7 +43,7 @@ contract MultisigSigner { require(self.request.timeout > now(), "Timeout"); require(!self.completed, "Completed"); - // Load weitght + // Load weight let sender: Address = sender(); let weight: Int = self.members.get(sender)!!; self.members.set(sender, null); diff --git a/examples/rugpull.tact b/examples/rugpull.tact index b2219f51f..a9b933746 100644 --- a/examples/rugpull.tact +++ b/examples/rugpull.tact @@ -39,7 +39,7 @@ contract RugPull with OwnableTransferable, Stoppable { // Must not be stopped stop self.requireNotStopped(); - // Fowrad everything to owner if rugpulled + // Forward everything to owner if rugpulled if (self.rugpulled) { send(SendParameters{value: 0, to: self.owner, mode: SendRemainingBalance }); return; diff --git a/package.json b/package.json index de2a4acfd..23169d3f1 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "lint": "yarn eslint .", "lint:schema": "ajv validate -s grammar/configSchema.json -d tact.config.json", "fmt:check": "yarn prettier --check .", + "spell": "cspell \"**\"", "all": "yarn clean && yarn gen && yarn build && yarn coverage && yarn lint && yarn fmt:check" }, "files": [ @@ -64,6 +65,7 @@ "@typescript-eslint/parser": "^7.0.2", "ajv-cli": "^5.0.0", "cross-env": "^7.0.3", + "cspell": "^8.8.3", "eslint": "^8.56.0", "glob": "^8.1.0", "jest": "^29.3.1", diff --git a/src/abi/map.ts b/src/abi/map.ts index 147463a66..809ccb6bc 100644 --- a/src/abi/map.ts +++ b/src/abi/map.ts @@ -82,19 +82,19 @@ export const MapFunctions: Map = new Map([ kind = "uint"; } if (self.value === "Int") { - let vbits = 257; - let vkind = "int"; + let vBits = 257; + let vKind = "int"; if (self.valueAs && self.valueAs.startsWith("int")) { - vbits = parseInt(self.valueAs.slice(3), 10); + vBits = parseInt(self.valueAs.slice(3), 10); } else if ( self.valueAs && self.valueAs.startsWith("uint") ) { - vbits = parseInt(self.valueAs.slice(4), 10); - vkind = "uint"; + vBits = parseInt(self.valueAs.slice(4), 10); + vKind = "uint"; } - ctx.used(`__tact_dict_set_${kind}_${vkind}`); - return `${resolved[0]}~__tact_dict_set_${kind}_${vkind}(${bits}, ${resolved[1]}, ${resolved[2]}, ${vbits})`; + ctx.used(`__tact_dict_set_${kind}_${vKind}`); + return `${resolved[0]}~__tact_dict_set_${kind}_${vKind}(${bits}, ${resolved[1]}, ${resolved[2]}, ${vBits})`; } else if (self.value === "Bool") { ctx.used(`__tact_dict_set_${kind}_int`); return `${resolved[0]}~__tact_dict_set_${kind}_int(${bits}, ${resolved[1]}, ${resolved[2]}, 1)`; @@ -131,19 +131,19 @@ export const MapFunctions: Map = new Map([ // Handle address key if (self.key === "Address") { if (self.value === "Int") { - let vbits = 257; - let vkind = "int"; + let vBits = 257; + let vKind = "int"; if (self.valueAs && self.valueAs.startsWith("int")) { - vbits = parseInt(self.valueAs.slice(3), 10); + vBits = parseInt(self.valueAs.slice(3), 10); } else if ( self.valueAs && self.valueAs.startsWith("uint") ) { - vbits = parseInt(self.valueAs.slice(4), 10); - vkind = "uint"; + vBits = parseInt(self.valueAs.slice(4), 10); + vKind = "uint"; } - ctx.used(`__tact_dict_set_slice_${vkind}`); - return `${resolved[0]}~__tact_dict_set_slice_${vkind}(267, ${resolved[1]}, ${resolved[2]}, ${vbits})`; + ctx.used(`__tact_dict_set_slice_${vKind}`); + return `${resolved[0]}~__tact_dict_set_slice_${vKind}(267, ${resolved[1]}, ${resolved[2]}, ${vBits})`; } else if (self.value === "Bool") { ctx.used(`__tact_dict_set_slice_int`); return `${resolved[0]}~__tact_dict_set_slice_int(267, ${resolved[1]}, ${resolved[2]}, 1)`; @@ -234,19 +234,19 @@ export const MapFunctions: Map = new Map([ kind = "uint"; } if (self.value === "Int") { - let vbits = 257; - let vkind = "int"; + let vBits = 257; + let vKind = "int"; if (self.valueAs && self.valueAs.startsWith("int")) { - vbits = parseInt(self.valueAs.slice(3), 10); + vBits = parseInt(self.valueAs.slice(3), 10); } else if ( self.valueAs && self.valueAs.startsWith("uint") ) { - vbits = parseInt(self.valueAs.slice(4), 10); - vkind = "uint"; + vBits = parseInt(self.valueAs.slice(4), 10); + vKind = "uint"; } - ctx.used(`__tact_dict_get_${kind}_${vkind}`); - return `__tact_dict_get_${kind}_${vkind}(${resolved[0]}, ${bits}, ${resolved[1]}, ${vbits})`; + ctx.used(`__tact_dict_get_${kind}_${vKind}`); + return `__tact_dict_get_${kind}_${vKind}(${resolved[0]}, ${bits}, ${resolved[1]}, ${vBits})`; } else if (self.value === "Bool") { ctx.used(`__tact_dict_get_${kind}_int`); return `__tact_dict_get_int_int(${resolved[0]}, ${bits}, ${resolved[1]}, 1)`; @@ -279,19 +279,19 @@ export const MapFunctions: Map = new Map([ // Handle Address key if (self.key === "Address") { if (self.value === "Int") { - let vbits = 257; - let vkind = "int"; + let vBits = 257; + let vKind = "int"; if (self.valueAs && self.valueAs.startsWith("int")) { - vbits = parseInt(self.valueAs.slice(3), 10); + vBits = parseInt(self.valueAs.slice(3), 10); } else if ( self.valueAs && self.valueAs.startsWith("uint") ) { - vbits = parseInt(self.valueAs.slice(4), 10); - vkind = "uint"; + vBits = parseInt(self.valueAs.slice(4), 10); + vKind = "uint"; } - ctx.used(`__tact_dict_get_slice_${vkind}`); - return `__tact_dict_get_slice_${vkind}(${resolved[0]}, 267, ${resolved[1]}, ${vbits})`; + ctx.used(`__tact_dict_get_slice_${vKind}`); + return `__tact_dict_get_slice_${vKind}(${resolved[0]}, 267, ${resolved[1]}, ${vBits})`; } else if (self.value === "Bool") { ctx.used(`__tact_dict_get_slice_int`); return `__tact_dict_get_slice_int(${resolved[0]}, 267, ${resolved[1]}, 1)`; diff --git a/src/bindings/typescript/writeStruct.ts b/src/bindings/typescript/writeStruct.ts index 3599af398..e456f89bb 100644 --- a/src/bindings/typescript/writeStruct.ts +++ b/src/bindings/typescript/writeStruct.ts @@ -208,8 +208,8 @@ export function writeDictParser(s: ABIType, w: Writer) { w.write(` function dictValueParser${s.name}(): DictionaryValue<${s.name}> { return { - serialize: (src, buidler) => { - buidler.storeRef(beginCell().store(store${s.name}(src)).endCell()); + serialize: (src, builder) => { + builder.storeRef(beginCell().store(store${s.name}(src)).endCell()); }, parse: (src) => { return load${s.name}(src.loadRef().beginParse()); diff --git a/src/generator/createABI.ts b/src/generator/createABI.ts index 1debd9ee6..88325d3f1 100644 --- a/src/generator/createABI.ts +++ b/src/generator/createABI.ts @@ -130,7 +130,7 @@ export function createABI(ctx: CompilerContext, name: string): ContractABI { // Errors const errors: { [key: string]: { message: string } } = {}; - errors["2"] = { message: "Stack undeflow" }; + errors["2"] = { message: "Stack underflow" }; errors["3"] = { message: "Stack overflow" }; errors["4"] = { message: "Integer overflow" }; errors["5"] = { message: "Integer out of expected range" }; diff --git a/src/generator/emitter/emit.ts b/src/generator/emitter/emit.ts index 65d4db510..0ced85698 100644 --- a/src/generator/emitter/emit.ts +++ b/src/generator/emitter/emit.ts @@ -7,7 +7,7 @@ export function emit(args: { header?: Maybe; functions?: Maybe; }) { - // Emut header + // Emit header let res = ""; if (args.header) { res = trimIndent(args.header); diff --git a/src/generator/intrinsics/tryExpressionIntrinsics.ts b/src/generator/intrinsics/tryExpressionIntrinsics.ts index 61c1bd6e7..d3ea26ef5 100644 --- a/src/generator/intrinsics/tryExpressionIntrinsics.ts +++ b/src/generator/intrinsics/tryExpressionIntrinsics.ts @@ -8,7 +8,7 @@ export function tryExpressionIntrinsics( exp: ASTExpression, ctx: WriterContext, ): string | null { - // Calls instrinsics + // Calls intrinsics if (exp.kind === "op_call") { const sourceType = getExpType(ctx.ctx, exp.src); if ( diff --git a/src/generator/writeProgram.ts b/src/generator/writeProgram.ts index 2bf88b2b4..e56661bc1 100644 --- a/src/generator/writeProgram.ts +++ b/src/generator/writeProgram.ts @@ -46,9 +46,9 @@ export async function writeProgram( // Render contract // - const wctx = new WriterContext(ctx, abiSrc.name!); - writeAll(ctx, wctx, abiSrc.name!, abiLink); - const functions = wctx.extract(debug); + const wCtx = new WriterContext(ctx, abiSrc.name!); + writeAll(ctx, wCtx, abiSrc.name!, abiLink); + const functions = wCtx.extract(debug); // // Emit files @@ -151,7 +151,7 @@ export async function writeProgram( // storage // - const emitedTypes: string[] = []; + const emittedTypes: string[] = []; const types = getSortedTypes(ctx); for (const t of types) { const ffs: WrittenFunction[] = []; @@ -189,7 +189,7 @@ export async function writeProgram( } header.push(";;"); - emitedTypes.push( + emittedTypes.push( emit({ functions: ffs, header: header.join("\n"), @@ -197,10 +197,10 @@ export async function writeProgram( ); } } - if (emitedTypes.length > 0) { + if (emittedTypes.length > 0) { files.push({ name: basename + ".storage.fc", - code: [...emitedTypes].join("\n\n"), + code: [...emittedTypes].join("\n\n"), }); } @@ -294,7 +294,7 @@ function tryExtractModule( function writeAll( ctx: CompilerContext, - wctx: WriterContext, + wCtx: WriterContext, name: string, abiLink: string, ) { @@ -307,9 +307,9 @@ function writeAll( } // Stdlib - writeStdlib(wctx); + writeStdlib(wCtx); - // Serializators + // Serializers const sortedTypes = getSortedTypes(ctx); for (const t of sortedTypes) { if (t.kind === "contract" || t.kind === "struct") { @@ -320,23 +320,23 @@ function writeAll( t.kind === "contract", allocation, t.origin, - wctx, + wCtx, ); - writeOptionalSerializer(t.name, t.origin, wctx); + writeOptionalSerializer(t.name, t.origin, wCtx); writeParser( t.name, t.kind === "contract", allocation, t.origin, - wctx, + wCtx, ); - writeOptionalParser(t.name, t.origin, wctx); + writeOptionalParser(t.name, t.origin, wCtx); writeBouncedParser( t.name, t.kind === "contract", allocationBounced, t.origin, - wctx, + wCtx, ); } } @@ -344,7 +344,7 @@ function writeAll( // Accessors for (const t of allTypes) { if (t.kind === "contract" || t.kind === "struct") { - writeAccessors(t, t.origin, wctx); + writeAccessors(t, t.origin, wCtx); } } @@ -352,15 +352,15 @@ function writeAll( for (const t of sortedTypes) { if (t.kind === "contract" && t.init) { const allocation = getAllocation(ctx, initId(t.name)); - writeSerializer(initId(t.name), true, allocation, t.origin, wctx); - writeParser(initId(t.name), false, allocation, t.origin, wctx); + writeSerializer(initId(t.name), true, allocation, t.origin, wCtx); + writeParser(initId(t.name), false, allocation, t.origin, wCtx); } } // Storage Functions for (const t of sortedTypes) { if (t.kind === "contract") { - writeStorageOps(t, t.origin, wctx); + writeStorageOps(t, t.origin, wCtx); } } @@ -368,7 +368,7 @@ function writeAll( const sf = getAllStaticFunctions(ctx); for (const k in sf) { const f = sf[k]; - writeFunction(f, wctx); + writeFunction(f, wCtx); } // Extensions @@ -376,7 +376,7 @@ function writeAll( if (c.kind !== "contract" && c.kind !== "trait") { // We are rendering contract functions separately for (const f of c.functions.values()) { - writeFunction(f, wctx); + writeFunction(f, wCtx); } } } @@ -385,15 +385,15 @@ function writeAll( for (const c of contracts) { // Init if (c.init) { - writeInit(c, c.init, wctx); + writeInit(c, c.init, wCtx); } // Functions for (const f of c.functions.values()) { - writeFunction(f, wctx); + writeFunction(f, wCtx); } } // Write contract main - writeMainContract(c, abiLink, wctx); + writeMainContract(c, abiLink, wCtx); } diff --git a/src/generator/writers/__snapshots__/writeSerialization.spec.ts.snap b/src/generator/writers/__snapshots__/writeSerialization.spec.ts.snap index 0ec860db8..a18931f47 100644 --- a/src/generator/writers/__snapshots__/writeSerialization.spec.ts.snap +++ b/src/generator/writers/__snapshots__/writeSerialization.spec.ts.snap @@ -505,19 +505,19 @@ return __tact_base64_encode(user_friendly_address_with_checksum);", "__tact_base64_encode", }, "flags": Set {}, - "name": "__tact_address_to_userfriendly", - "signature": "(slice) __tact_address_to_userfriendly(slice address)", + "name": "__tact_address_to_user_friendly", + "signature": "(slice) __tact_address_to_user_friendly(slice address)", }, { "code": { - "code": "__tact_debug_str(__tact_address_to_userfriendly(address), debug_print);", + "code": "__tact_debug_str(__tact_address_to_user_friendly(address), debug_print);", "kind": "generic", }, "comment": null, "context": "stdlib", "depends": Set { "__tact_debug_str", - "__tact_address_to_userfriendly", + "__tact_address_to_user_friendly", }, "flags": Set { "impure", @@ -5093,19 +5093,19 @@ return __tact_base64_encode(user_friendly_address_with_checksum);", "__tact_base64_encode", }, "flags": Set {}, - "name": "__tact_address_to_userfriendly", - "signature": "(slice) __tact_address_to_userfriendly(slice address)", + "name": "__tact_address_to_user_friendly", + "signature": "(slice) __tact_address_to_user_friendly(slice address)", }, { "code": { - "code": "__tact_debug_str(__tact_address_to_userfriendly(address), debug_print);", + "code": "__tact_debug_str(__tact_address_to_user_friendly(address), debug_print);", "kind": "generic", }, "comment": null, "context": "stdlib", "depends": Set { "__tact_debug_str", - "__tact_address_to_userfriendly", + "__tact_address_to_user_friendly", }, "flags": Set { "impure", @@ -9681,19 +9681,19 @@ return __tact_base64_encode(user_friendly_address_with_checksum);", "__tact_base64_encode", }, "flags": Set {}, - "name": "__tact_address_to_userfriendly", - "signature": "(slice) __tact_address_to_userfriendly(slice address)", + "name": "__tact_address_to_user_friendly", + "signature": "(slice) __tact_address_to_user_friendly(slice address)", }, { "code": { - "code": "__tact_debug_str(__tact_address_to_userfriendly(address), debug_print);", + "code": "__tact_debug_str(__tact_address_to_user_friendly(address), debug_print);", "kind": "generic", }, "comment": null, "context": "stdlib", "depends": Set { "__tact_debug_str", - "__tact_address_to_userfriendly", + "__tact_address_to_user_friendly", }, "flags": Set { "impure", diff --git a/src/generator/writers/ops.ts b/src/generator/writers/ops.ts index 8370f4e4d..09ef56873 100644 --- a/src/generator/writers/ops.ts +++ b/src/generator/writers/ops.ts @@ -40,7 +40,7 @@ export const ops = { used(`$${type}$_to_external`, ctx), typeToOptExternal: (type: string, ctx: WriterContext) => used(`$${type}$_to_opt_external`, ctx), - typeContsturctor: (type: string, fields: string[], ctx: WriterContext) => + typeConstructor: (type: string, fields: string[], ctx: WriterContext) => used(`$${type}$_constructor_${fields.join("_")}`, ctx), // Contract operations diff --git a/src/generator/writers/resolveFuncTupledType.ts b/src/generator/writers/resolveFuncTupleType.ts similarity index 88% rename from src/generator/writers/resolveFuncTupledType.ts rename to src/generator/writers/resolveFuncTupleType.ts index 12181f685..918021680 100644 --- a/src/generator/writers/resolveFuncTupledType.ts +++ b/src/generator/writers/resolveFuncTupleType.ts @@ -2,18 +2,18 @@ import { getType } from "../../types/resolveDescriptors"; import { TypeDescription, TypeRef } from "../../types/types"; import { WriterContext } from "../Writer"; -export function resolveFuncTupledType( +export function resolveFuncTupleType( descriptor: TypeRef | TypeDescription | string, ctx: WriterContext, ): string { // String if (typeof descriptor === "string") { - return resolveFuncTupledType(getType(ctx.ctx, descriptor), ctx); + return resolveFuncTupleType(getType(ctx.ctx, descriptor), ctx); } // TypeRef if (descriptor.kind === "ref") { - return resolveFuncTupledType(getType(ctx.ctx, descriptor.name), ctx); + return resolveFuncTupleType(getType(ctx.ctx, descriptor.name), ctx); } if (descriptor.kind === "map") { return "cell"; diff --git a/src/generator/writers/resolveFuncType.spec.ts b/src/generator/writers/resolveFuncType.spec.ts index 76aed77e0..362f00667 100644 --- a/src/generator/writers/resolveFuncType.spec.ts +++ b/src/generator/writers/resolveFuncType.spec.ts @@ -56,62 +56,62 @@ describe("resolveFuncType", () => { [], ); ctx = resolveDescriptors(ctx); - const wctx = new WriterContext(ctx, "Contract1"); + const wCtx = new WriterContext(ctx, "Contract1"); expect( resolveFuncType( { kind: "ref", name: "Int", optional: false }, - wctx, + wCtx, ), ).toBe("int"); expect( resolveFuncType( { kind: "ref", name: "Bool", optional: false }, - wctx, + wCtx, ), ).toBe("int"); expect( resolveFuncType( { kind: "ref", name: "Cell", optional: false }, - wctx, + wCtx, ), ).toBe("cell"); expect( resolveFuncType( { kind: "ref", name: "Slice", optional: false }, - wctx, + wCtx, ), ).toBe("slice"); expect( resolveFuncType( { kind: "ref", name: "Builder", optional: false }, - wctx, + wCtx, ), ).toBe("builder"); expect( - resolveFuncType({ kind: "ref", name: "Int", optional: true }, wctx), + resolveFuncType({ kind: "ref", name: "Int", optional: true }, wCtx), ).toBe("int"); expect( resolveFuncType( { kind: "ref", name: "Bool", optional: true }, - wctx, + wCtx, ), ).toBe("int"); expect( resolveFuncType( { kind: "ref", name: "Cell", optional: true }, - wctx, + wCtx, ), ).toBe("cell"); expect( resolveFuncType( { kind: "ref", name: "Slice", optional: true }, - wctx, + wCtx, ), ).toBe("slice"); expect( resolveFuncType( { kind: "ref", name: "Builder", optional: true }, - wctx, + wCtx, ), ).toBe("builder"); }); @@ -123,53 +123,53 @@ describe("resolveFuncType", () => { [], ); ctx = resolveDescriptors(ctx); - const wctx = new WriterContext(ctx, "Contract1"); + const wCtx = new WriterContext(ctx, "Contract1"); expect( resolveFuncType( { kind: "ref", name: "Struct1", optional: false }, - wctx, + wCtx, ), ).toBe("(int, int)"); expect( resolveFuncType( { kind: "ref", name: "Struct2", optional: false }, - wctx, + wCtx, ), ).toBe("(int)"); expect( resolveFuncType( { kind: "ref", name: "Contract1", optional: false }, - wctx, + wCtx, ), ).toBe("(int, int)"); expect( resolveFuncType( { kind: "ref", name: "Contract2", optional: false }, - wctx, + wCtx, ), ).toBe("(int, (int, int))"); expect( resolveFuncType( { kind: "ref", name: "Struct1", optional: true }, - wctx, + wCtx, ), ).toBe("tuple"); expect( resolveFuncType( { kind: "ref", name: "Struct2", optional: true }, - wctx, + wCtx, ), ).toBe("tuple"); expect( resolveFuncType( { kind: "ref", name: "Contract1", optional: true }, - wctx, + wCtx, ), ).toBe("tuple"); expect( resolveFuncType( { kind: "ref", name: "Contract2", optional: true }, - wctx, + wCtx, ), ).toBe("tuple"); }); diff --git a/src/generator/writers/writeAccessors.ts b/src/generator/writers/writeAccessors.ts index 732d4edd5..4422ff3ac 100644 --- a/src/generator/writers/writeAccessors.ts +++ b/src/generator/writers/writeAccessors.ts @@ -5,7 +5,7 @@ import { WriterContext } from "../Writer"; import { ops } from "./ops"; import { resolveFuncFlatPack } from "./resolveFuncFlatPack"; import { resolveFuncFlatTypes } from "./resolveFuncFlatTypes"; -import { resolveFuncTupledType } from "./resolveFuncTupledType"; +import { resolveFuncTupleType } from "./resolveFuncTupleType"; import { resolveFuncType } from "./resolveFuncType"; import { resolveFuncTypeUnpack } from "./resolveFuncTypeUnpack"; @@ -80,7 +80,7 @@ export function writeAccessors( }); // - // Convert to and from tupled representation + // Convert to and from tuple representation // ctx.fun(ops.typeToTuple(type.name, ctx), () => { @@ -204,7 +204,7 @@ export function writeAccessors( ctx.fun(ops.typeToExternal(type.name, ctx), () => { ctx.signature( - `(${type.fields.map((v) => resolveFuncTupledType(v.type, ctx)).join(", ")}) ${ops.typeToExternal(type.name, ctx)}((${resolveFuncType(type, ctx)}) v)`, + `(${type.fields.map((v) => resolveFuncTupleType(v.type, ctx)).join(", ")}) ${ops.typeToExternal(type.name, ctx)}((${resolveFuncType(type, ctx)}) v)`, ); ctx.flag("inline"); ctx.context("type:" + type.name); diff --git a/src/generator/writers/writeExpression.spec.ts b/src/generator/writers/writeExpression.spec.ts index bdeea876c..5a2d40769 100644 --- a/src/generator/writers/writeExpression.spec.ts +++ b/src/generator/writers/writeExpression.spec.ts @@ -88,10 +88,10 @@ describe("writeExpression", () => { if (s.kind !== "statement_let") { throw Error("Unexpected statement kind"); } - const wctx = new WriterContext(ctx, "Contract1"); - wctx.fun("$main", () => { - wctx.body(() => { - expect(writeExpression(s.expression, wctx)).toBe(golden[i]); + const wCtx = new WriterContext(ctx, "Contract1"); + wCtx.fun("$main", () => { + wCtx.body(() => { + expect(writeExpression(s.expression, wCtx)).toBe(golden[i]); }); }); i++; diff --git a/src/generator/writers/writeExpression.ts b/src/generator/writers/writeExpression.ts index 516cd4e59..94304cd77 100644 --- a/src/generator/writers/writeExpression.ts +++ b/src/generator/writers/writeExpression.ts @@ -52,7 +52,7 @@ function writeStructConstructor( ctx: WriterContext, ) { // Check for duplicates - const name = ops.typeContsturctor(type.name, args, ctx); + const name = ops.typeConstructor(type.name, args, ctx); const renderKey = "$constructor$" + type.name + "$" + args.join(","); if (ctx.isRendered(renderKey)) { return name; @@ -292,7 +292,7 @@ export function writeExpression(f: ASTExpression, ctx: WriterContext): string { return `( ${prefix}__tact_slice_eq_bits(${writeExpression(f.right, ctx)}, ${writeExpression(f.left, ctx)}) )`; } - // Case for cells eqality + // Case for cells equality if ( lt.kind === "ref" && rt.kind === "ref" && @@ -340,7 +340,7 @@ export function writeExpression(f: ASTExpression, ctx: WriterContext): string { return `__tact_slice_${op}(${writeExpression(f.right, ctx)}, ${writeExpression(f.left, ctx)})`; } - // Case for maps eqality + // Case for maps equality if (lt.kind === "map" && rt.kind === "map") { const op = f.op === "==" ? "eq" : "neq"; ctx.used(`__tact_cell_${op}_nullable`); diff --git a/src/generator/writers/writeFunction.ts b/src/generator/writers/writeFunction.ts index 75c53577f..b68147c6a 100644 --- a/src/generator/writers/writeFunction.ts +++ b/src/generator/writers/writeFunction.ts @@ -11,7 +11,7 @@ import { resolveFuncTypeUnpack } from "./resolveFuncTypeUnpack"; import { id } from "./id"; import { writeExpression } from "./writeExpression"; import { cast } from "./cast"; -import { resolveFuncTupledType } from "./resolveFuncTupledType"; +import { resolveFuncTupleType } from "./resolveFuncTupleType"; import { ops } from "./ops"; import { freshIdentifier } from "./freshIdentifier"; @@ -213,17 +213,17 @@ export function writeStatement( kind = "uint"; } if (t.value === "Int") { - let vbits = 257; - let vkind = "int"; + let vBits = 257; + let vKind = "int"; if (t.valueAs && t.valueAs.startsWith("int")) { - vbits = parseInt(t.valueAs.slice(3), 10); + vBits = parseInt(t.valueAs.slice(3), 10); } else if (t.valueAs && t.valueAs.startsWith("uint")) { - vbits = parseInt(t.valueAs.slice(4), 10); - vkind = "uint"; + vBits = parseInt(t.valueAs.slice(4), 10); + vKind = "uint"; } ctx.append( - `var (${id(f.keyName)}, ${id(f.valueName)}, ${flag}) = ${ctx.used(`__tact_dict_min_${kind}_${vkind}`)}(${id(f.map.value)}, ${bits}, ${vbits});`, + `var (${id(f.keyName)}, ${id(f.valueName)}, ${flag}) = ${ctx.used(`__tact_dict_min_${kind}_${vKind}`)}(${id(f.map.value)}, ${bits}, ${vBits});`, ); ctx.append(`while (${flag}) {`); ctx.inIndent(() => { @@ -231,7 +231,7 @@ export function writeStatement( writeStatement(s, self, returns, ctx); } ctx.append( - `(${id(f.keyName)}, ${id(f.valueName)}, ${flag}) = ${ctx.used(`__tact_dict_next_${kind}_${vkind}`)}(${id(f.map.value)}, ${bits}, ${id(f.keyName)}, ${vbits});`, + `(${id(f.keyName)}, ${id(f.valueName)}, ${flag}) = ${ctx.used(`__tact_dict_next_${kind}_${vKind}`)}(${id(f.map.value)}, ${bits}, ${id(f.keyName)}, ${vBits});`, ); }); ctx.append(`}`); @@ -301,16 +301,16 @@ export function writeStatement( // Handle address key if (t.key === "Address") { if (t.value === "Int") { - let vbits = 257; - let vkind = "int"; + let vBits = 257; + let vKind = "int"; if (t.valueAs && t.valueAs.startsWith("int")) { - vbits = parseInt(t.valueAs.slice(3), 10); + vBits = parseInt(t.valueAs.slice(3), 10); } else if (t.valueAs && t.valueAs.startsWith("uint")) { - vbits = parseInt(t.valueAs.slice(4), 10); - vkind = "uint"; + vBits = parseInt(t.valueAs.slice(4), 10); + vKind = "uint"; } ctx.append( - `var (${id(f.keyName)}, ${id(f.valueName)}, ${flag}) = ${ctx.used(`__tact_dict_min_slice_${vkind}`)}(${id(f.map.value)}, 267, ${vbits});`, + `var (${id(f.keyName)}, ${id(f.valueName)}, ${flag}) = ${ctx.used(`__tact_dict_min_slice_${vKind}`)}(${id(f.map.value)}, 267, ${vBits});`, ); ctx.append(`while (${flag}) {`); ctx.inIndent(() => { @@ -318,7 +318,7 @@ export function writeStatement( writeStatement(s, self, returns, ctx); } ctx.append( - `(${id(f.keyName)}, ${id(f.valueName)}, ${flag}) = ${ctx.used(`__tact_dict_next_slice_${vkind}`)}(${id(f.map.value)}, 267, ${id(f.keyName)}, ${vbits});`, + `(${id(f.keyName)}, ${id(f.valueName)}, ${flag}) = ${ctx.used(`__tact_dict_next_slice_${vKind}`)}(${id(f.map.value)}, 267, ${id(f.keyName)}, ${vBits});`, ); }); ctx.append(`}`); @@ -506,7 +506,7 @@ export function writeGetter(f: FunctionDescription, ctx: WriterContext) { throw new Error(`No self type for getter "${f.name}"`); // Impossible } ctx.append( - `_ %${f.name}(${f.args.map((v) => resolveFuncTupledType(v.type, ctx) + " " + id("$" + v.name)).join(", ")}) method_id(${getMethodId(f.name)}) {`, + `_ %${f.name}(${f.args.map((v) => resolveFuncTupleType(v.type, ctx) + " " + id("$" + v.name)).join(", ")}) method_id(${getMethodId(f.name)}) {`, ); ctx.inIndent(() => { // Unpack arguments @@ -539,7 +539,7 @@ export function writeGetter(f: FunctionDescription, ctx: WriterContext) { } } - // Return restult + // Return result ctx.append(`return res;`); }); ctx.append(`}`); diff --git a/src/generator/writers/writeSerialization.spec.ts b/src/generator/writers/writeSerialization.spec.ts index c1f0e7fc7..fe662979a 100644 --- a/src/generator/writers/writeSerialization.spec.ts +++ b/src/generator/writers/writeSerialization.spec.ts @@ -68,18 +68,18 @@ describe("writeSerialization", () => { ); ctx = resolveDescriptors(ctx); ctx = resolveAllocations(ctx); - const wctx = new WriterContext(ctx, s); - writeStdlib(wctx); + const wCtx = new WriterContext(ctx, s); + writeStdlib(wCtx); writeSerializer( getType(ctx, s).name, false, getAllocation(ctx, s), "user", - wctx, + wCtx, ); for (const t of Object.values(getAllTypes(ctx))) { if (t.kind === "contract" || t.kind === "struct") { - writeAccessors(t, "user", wctx); + writeAccessors(t, "user", wCtx); } } writeParser( @@ -87,9 +87,9 @@ describe("writeSerialization", () => { false, getAllocation(ctx, s), "user", - wctx, + wCtx, ); - const extracted = wctx.extract(true); + const extracted = wCtx.extract(true); expect(extracted).toMatchSnapshot(); }); } diff --git a/src/generator/writers/writeStdlib.ts b/src/generator/writers/writeStdlib.ts index a5619cd96..7daff96a4 100644 --- a/src/generator/writers/writeStdlib.ts +++ b/src/generator/writers/writeStdlib.ts @@ -350,8 +350,8 @@ export function writeStdlib(ctx: WriterContext) { }); }); - ctx.fun("__tact_address_to_userfriendly", () => { - ctx.signature(`(slice) __tact_address_to_userfriendly(slice address)`); + ctx.fun("__tact_address_to_user_friendly", () => { + ctx.signature(`(slice) __tact_address_to_user_friendly(slice address)`); ctx.context("stdlib"); ctx.body(() => { ctx.write(` @@ -382,7 +382,7 @@ export function writeStdlib(ctx: WriterContext) { ctx.context("stdlib"); ctx.body(() => { ctx.write(` - ${ctx.used("__tact_debug_str")}(${ctx.used("__tact_address_to_userfriendly")}(address), debug_print); + ${ctx.used("__tact_debug_str")}(${ctx.used("__tact_address_to_user_friendly")}(address), debug_print); `); }); }); diff --git a/src/grammar/__snapshots__/grammar.spec.ts.snap b/src/grammar/__snapshots__/grammar.spec.ts.snap index 822d065cd..53cb52367 100644 --- a/src/grammar/__snapshots__/grammar.spec.ts.snap +++ b/src/grammar/__snapshots__/grammar.spec.ts.snap @@ -97,7 +97,7 @@ Line 2, col 11: exports[`grammar should fail case-10 1`] = ` ":1:8: Syntax error: expected "A".."Z" Line 1, col 8: -> 1 | struct lowercaseIdforType { +> 1 | struct lowercaseIdForType { ^ 2 | a: Int; " diff --git a/src/grammar/ast.ts b/src/grammar/ast.ts index f639ebc9b..bb88f8810 100644 --- a/src/grammar/ast.ts +++ b/src/grammar/ast.ts @@ -55,7 +55,7 @@ export type ASTNumber = { ref: ASTRef; }; -export type ASTID = { +export type ASTId = { kind: "id"; id: number; value: string; @@ -437,7 +437,7 @@ export type ASTStatementExpression = { ref: ASTRef; }; -export type ASTSTatementAssign = { +export type ASTStatementAssign = { kind: "statement_assign"; id: number; path: ASTLvalueRef[]; @@ -447,7 +447,7 @@ export type ASTSTatementAssign = { export type ASTAugmentedAssignOperation = "+" | "-" | "*" | "/" | "%"; -export type ASTSTatementAugmentedAssign = { +export type ASTStatementAugmentedAssign = { kind: "statement_augmentedassign"; id: number; op: ASTAugmentedAssignOperation; @@ -511,7 +511,7 @@ export type ASTStatementForEach = { id: number; keyName: string; valueName: string; - map: ASTID; + map: ASTId; statements: ASTStatement[]; ref: ASTRef; }; @@ -524,8 +524,8 @@ export type ASTStatement = | ASTStatementLet | ASTStatementReturn | ASTStatementExpression - | ASTSTatementAssign - | ASTSTatementAugmentedAssign + | ASTStatementAssign + | ASTStatementAugmentedAssign | ASTCondition | ASTStatementWhile | ASTStatementUntil @@ -548,8 +548,8 @@ export type ASTNode = | ASTOpCallStatic | ASTStatementExpression | ASTNativeFunction - | ASTSTatementAssign - | ASTSTatementAugmentedAssign + | ASTStatementAssign + | ASTStatementAugmentedAssign | ASTOpNew | ASTNewParameter | ASTTypeRef @@ -574,7 +574,7 @@ export type ASTExpression = | ASTOpUnary | ASTOpField | ASTNumber - | ASTID + | ASTId | ASTBoolean | ASTOpCall | ASTOpCallStatic diff --git a/src/grammar/test-failed/case-10.tact b/src/grammar/test-failed/case-10.tact index a9204dd43..0ee96050b 100644 --- a/src/grammar/test-failed/case-10.tact +++ b/src/grammar/test-failed/case-10.tact @@ -1,3 +1,3 @@ -struct lowercaseIdforType { +struct lowercaseIdForType { a: Int; } diff --git a/src/imports/stdlib.ts b/src/imports/stdlib.ts index c6673c2a2..8ee49b1df 100644 --- a/src/imports/stdlib.ts +++ b/src/imports/stdlib.ts @@ -19,51 +19,51 @@ files['libs/dns.fc'] = 'IGlmICgoZG9tYWluLnNsaWNlX2JpdHMoKSA9PSA4KSAmIChkb21haW4uc2xpY2VfcmVmcygpID09IDApKSB7CiAgICAgICAgaWYgKGRvbWFpbi5wcmVsb2FkX3VpbnQo' + 'OCkgPT0gNDYpIHsKICAgICAgICAgICAgcmV0dXJuIGJlZ2luX2NlbGwoKS5zdG9yZV91aW50KDAsIDgpLmVuZF9jZWxsKCkuYmVnaW5fcGFyc2UoKTsKICAgICAgICB9' + 'CiAgICB9CiAgICAKICAgIDs7IFNwbGl0IGRvbWFpbiBpbnRvIHNlZ21lbnRzCiAgICB0dXBsZSBzZWdtZW50cyA9IG51bGwoKTsKICAgIGJ1aWxkZXIgY3VycmVudCA9' + - 'IGJlZ2luX2NlbGwoKTsKICAgIGludCBpc0N1cnJlbnRFbXB0eSA9IHRydWU7CiAgICBpbnQgaXNGaXJzdCA9IHRydWU7CiAgICBpbnQgaXNIeXBlbiA9IGZhbHNlOwog' + - 'ICAgc2xpY2UgY3MgPSBkb21haW47CiAgICBpbnQgY29udGludWUgPSB0cnVlOwogICAgZG8gewoKICAgICAgICA7OyBQcmVwYXJlIGZvciBsb2FkaW5nIG5leHQgY2hh' + - 'cmFjdGVyCiAgICAgICAgaWYgKGNzLnNsaWNlX2JpdHMoKSA9PSAwKSB7CiAgICAgICAgICAgIGludCByZWZzID0gY3Muc2xpY2VfcmVmcygpOwogICAgICAgICAgICBp' + - 'ZiAocmVmcyA9PSAxKSB7CiAgICAgICAgICAgICAgICBjcyA9IGNzfmxvYWRfcmVmKCkuYmVnaW5fcGFyc2UoKTsKICAgICAgICAgICAgfSBlbHNlaWYgKHJlZnMgPiAx' + - 'KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbCgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgY29udGludWUgPSBmYWxzZTsKICAgICAg' + - 'ICAgICAgfQogICAgICAgICAgICBjb250aW51ZSA9IGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgOzsgQ29udGludWUgbG9hZGluZyBuZXh0IGNoYXJhY3RlcgogICAg' + - 'ICAgIGlmIChjb250aW51ZSkgewogICAgICAgICAgICBpbnQgY2hhciA9IGNzfmxvYWRfdWludCg4KTsKICAgICAgICAgICAgOzsgd2UgY2FuIGRvIGl0IGJlY2F1c2Ug' + - 'YWRkaXRpb25hbCBVVEYtOCBjaGFyYWN0ZXIncyBvY3RldHMgPj0gMTI4IC0tIGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzNjI5LnR4dAogICAgICAgICAgICBp' + - 'bnQgaXNfaHlwaGVuID0gKGNoYXIgPT0gNDUpOwogICAgICAgICAgICBpbnQgaXNfZG90ICA9IChjaGFyID09IDQ2KTsKICAgICAgICAgICAgaW50IHZhbGlkX2NoYXIg' + - 'PSBpc19oeXBoZW4gfCBpc19kb3QgfCAoKGNoYXIgPj0gNDgpICYgKGNoYXIgPD0gNTcpKSB8ICgoY2hhciA+PSA5NykgJiAoY2hhciA8PSAxMjIpKTsgOzsgJy0nIG9y' + - 'IDAtOSBvciBhLXoKICAgICAgICAgICAgaWYgKH4gdmFsaWRfY2hhciB8IChpc0ZpcnN0ICYgaXNfaHlwaGVuKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGwo' + - 'KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpc0h5cGVuID0gaXNfaHlwaGVuOwogICAgICAgICAgICBpZiAoaXNfZG90KSB7CiAgICAgICAgICAgICAgICBpZiAo' + - 'aXNGaXJzdCB8IGlzSHlwZW4pIHsgOzsgRW1wdHkgb3IgZW5kcyB3aXRoIGh5cGhlbgogICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsKCk7CiAgICAgICAgICAg' + - 'ICAgICB9CiAgICAgICAgICAgICAgICBzZWdtZW50cyA9IGNvbnMoY3VycmVudCwgc2VnbWVudHMpOwogICAgICAgICAgICAgICAgY3VycmVudCA9IGJlZ2luX2NlbGwo' + - 'KTsKICAgICAgICAgICAgICAgIGlzSHlwZW4gPSBmYWxzZTsKICAgICAgICAgICAgICAgIGlzRmlyc3QgPSB0cnVlOwogICAgICAgICAgICAgICAgaXNDdXJyZW50RW1w' + - 'dHkgPSB0cnVlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaXNGaXJzdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgaXNDdXJyZW50RW1wdHkg' + - 'PSBmYWxzZTsKICAgICAgICAgICAgICAgIGN1cnJlbnR+c3RvcmVfdWludChjaGFyLCA4KTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICB9IHVudGlsICh+IGNv' + - 'bnRpbnVlKTsKICAgIGlmIChpc0h5cGVuKSB7IDs7IGVuZHMgd2l0aCBoeXBoZW4KICAgICAgICByZXR1cm4gbnVsbCgpOwogICAgfQogICAgaWYgKH4gaXNDdXJyZW50' + - 'RW1wdHkpIHsKICAgICAgICBzZWdtZW50cyA9IGNvbnMoY3VycmVudCwgc2VnbWVudHMpOwogICAgfQoKICAgIDs7IENvbmNhdGVuYXRlIHNlZ21lbnRzCiAgICBidWls' + - 'ZGVyIHJlcyA9IGJlZ2luX2NlbGwoKTsKICAgIChidWlsZGVyIGIsIHR1cGxlIHRhaWwpID0gdW5jb25zKHNlZ21lbnRzKTsKICAgIHJlcyA9IHJlcy5zdG9yZV9idWls' + - 'ZGVyKGIpOwogICAgd2hpbGUofiBudWxsPyh0YWlsKSkgewogICAgICAgIChiLCB0YWlsKSA9IHVuY29ucyh0YWlsKTsKICAgICAgICByZXMgPSByZXMuc3RvcmVfdWlu' + - 'dCgwLCA4KTsgOzsgQWRkIFwwIHNlcGFyYXRvcgogICAgICAgIHJlcyA9IHJlcy5zdG9yZV9idWlsZGVyKGIpOwogICAgfQogICAgcmVzID0gcmVzLnN0b3JlX3VpbnQo' + - 'MCwgOCk7IDs7IEFkZCBcMCBzZXBhcmF0b3IKICAgIHJldHVybiByZXMuZW5kX2NlbGwoKS5iZWdpbl9wYXJzZSgpOwp9CgppbnQgZG5zX2ludGVybmFsX3ZlcmlmeShz' + - 'bGljZSBzYykgaW5saW5lX3JlZiB7CiAgICBpZiAoc2Muc2xpY2VfcmVmcygpICE9IDApIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBpbnQgYml0cyA9' + - 'IHNjLnNsaWNlX2JpdHMoKTsKICAgIGlmIChiaXRzICUgOCAhPSAwKSB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQogICAgaWYgKGJpdHMgPT0gMCkgeyA7OyBD' + - 'YXNlIGZvciByb290IGRvbWFpbgogICAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgaW50IGxlbiA9IGJpdHMgLyA4OwogICAgaW50IGNvdW50ZXIgPSAwOwogICAg' + - 'aW50IGlzRmlyc3QgPSB0cnVlOwogICAgaW50IGlzSHlwZW4gPSBmYWxzZTsKICAgIHJlcGVhdChsZW4pIHsKICAgICAgICBpbnQgY2hhciA9IHNjfmxvYWRfdWludCg4' + - 'KTsKICAgICAgICBpZiAoY2hhciA9PSAwKSB7CiAgICAgICAgICAgIGlmIChjb3VudGVyID09IDApIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg' + - 'ICAgICAgfQogICAgICAgICAgICBpZiAoaXNIeXBlbikgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdW50' + - 'ZXIgPSAwOwogICAgICAgICAgICBpc0h5cGVuID0gZmFsc2U7CiAgICAgICAgICAgIGlzRmlyc3QgPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlu' + - 'dCBjaGFySXNIeXBlbiA9IChjaGFyID09IDQ1KTsKICAgICAgICAgICAgaW50IGlzVmFsaWQgPSBjaGFySXNIeXBlbiB8ICgoY2hhciA+PSA0OCkgJiAoY2hhciA8PSA1' + - 'NykpIHwgKChjaGFyID49IDk3KSAmIChjaGFyIDw9IDEyMikpOwogICAgICAgICAgICBpZiAofiBpc1ZhbGlkKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7' + - 'CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGNoYXJJc0h5cGVuICYgaXNGaXJzdCkgIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg' + - 'ICAgfQogICAgICAgICAgICBpc0h5cGVuID0gY2hhcklzSHlwZW47CiAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTsKICAgICAgICAgICAgY291bnRlciA9IGNvdW50' + - 'ZXIgKyAxOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBjb3VudGVyID09IDAgJiB+IGlzSHlwZW47Cn0KCnNsaWNlIGRuc19pbnRlcm5hbF9ub3JtYWxpemUoc2xp' + - 'Y2Ugc3JjKSBpbmxpbmVfcmVmIHsKICAgIHRocm93X3VubGVzcyhzcmMuc2xpY2VfcmVmcygpID09IDAsIDEzNCk7IDs7IEludmFsaWQgYXJndW1lbnQgZXJyb3IKICAg' + - 'IGJ1aWxkZXIgdGFyZ2V0ID0gYmVnaW5fY2VsbCgpOwogICAgcmVwZWF0KHNyYy5zbGljZV9iaXRzKCkgLyA4KSB7CiAgICAgICAgaW50IGNoYXIgPSBzcmN+bG9hZF91' + - 'aW50KDgpOwoKICAgICAgICA7OyBiID0+IDYKICAgICAgICBpZiAoY2hhciA9PSA5OCkgewogICAgICAgICAgICBjaGFyID0gNTQ7CiAgICAgICAgfQoKICAgICAgICA7' + - 'OyBnLCBxID0+IDkKICAgICAgICBpZiAoKGNoYXIgPT0gMTAzKSB8IChjaGFyID09IDExMykpIHsKICAgICAgICAgICAgY2hhciA9IDU3OyAgICAKICAgICAgICB9Cgog' + - 'ICAgICAgIDs7IGwgPT4gMQogICAgICAgIGlmIChjaGFyID09IDEwOCkgewogICAgICAgICAgICBjaGFyID0gNDk7CiAgICAgICAgfQoKICAgICAgICA7OyBvID0+IDAK' + - 'ICAgICAgICBpZiAoY2hhciA9PSAxMTEpIHsKICAgICAgICAgICAgY2hhciA9IDQ4OwogICAgICAgIH0KCiAgICAgICAgOzsgcyA9PiA1CiAgICAgICAgaWYgKGNoYXIg' + - 'PT0gMTE1KSB7CiAgICAgICAgICAgIGNoYXIgPSA1MzsKICAgICAgICB9CgogICAgICAgIDs7IHUgPT4gdgogICAgICAgIGlmIChjaGFyID09IDExNykgewogICAgICAg' + - 'ICAgICBjaGFyID0gMTE4OwogICAgICAgIH0KCiAgICAgICAgOzsgeiA9PiAyCiAgICAgICAgaWYgKGNoYXIgPT0gMTIyKSB7CiAgICAgICAgICAgIGNoYXIgPSA1MDsK' + - 'ICAgICAgICB9CgogICAgICAgIHRhcmdldCA9IHRhcmdldC5zdG9yZV91aW50KGNoYXIsIDgpOwogICAgfQogICAgcmV0dXJuIHRhcmdldC5lbmRfY2VsbCgpLmJlZ2lu' + - 'X3BhcnNlKCk7Cn0='; + 'IGJlZ2luX2NlbGwoKTsKICAgIGludCBpc0N1cnJlbnRFbXB0eSA9IHRydWU7CiAgICBpbnQgaXNGaXJzdCA9IHRydWU7CiAgICBpbnQgaXNIeXBoZW4gPSBmYWxzZTsK' + + 'ICAgIHNsaWNlIGNzID0gZG9tYWluOwogICAgaW50IGNvbnRpbnVlID0gdHJ1ZTsKICAgIGRvIHsKCiAgICAgICAgOzsgUHJlcGFyZSBmb3IgbG9hZGluZyBuZXh0IGNo' + + 'YXJhY3RlcgogICAgICAgIGlmIChjcy5zbGljZV9iaXRzKCkgPT0gMCkgewogICAgICAgICAgICBpbnQgcmVmcyA9IGNzLnNsaWNlX3JlZnMoKTsKICAgICAgICAgICAg' + + 'aWYgKHJlZnMgPT0gMSkgewogICAgICAgICAgICAgICAgY3MgPSBjc35sb2FkX3JlZigpLmJlZ2luX3BhcnNlKCk7CiAgICAgICAgICAgIH0gZWxzZWlmIChyZWZzID4g' + + 'MSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGwoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlID0gZmFsc2U7CiAgICAg' + + 'ICAgICAgIH0KICAgICAgICAgICAgY29udGludWUgPSBmYWxzZTsKICAgICAgICB9CgogICAgICAgIDs7IENvbnRpbnVlIGxvYWRpbmcgbmV4dCBjaGFyYWN0ZXIKICAg' + + 'ICAgICBpZiAoY29udGludWUpIHsKICAgICAgICAgICAgaW50IGNoYXIgPSBjc35sb2FkX3VpbnQoOCk7CiAgICAgICAgICAgIDs7IHdlIGNhbiBkbyBpdCBiZWNhdXNl' + + 'IGFkZGl0aW9uYWwgVVRGLTggY2hhcmFjdGVyJ3Mgb2N0ZXRzID49IDEyOCAtLSBodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzYyOS50eHQKICAgICAgICAgICAg' + + 'aW50IGlzX2h5cGhlbiA9IChjaGFyID09IDQ1KTsKICAgICAgICAgICAgaW50IGlzX2RvdCAgPSAoY2hhciA9PSA0Nik7CiAgICAgICAgICAgIGludCB2YWxpZF9jaGFy' + + 'ID0gaXNfaHlwaGVuIHwgaXNfZG90IHwgKChjaGFyID49IDQ4KSAmIChjaGFyIDw9IDU3KSkgfCAoKGNoYXIgPj0gOTcpICYgKGNoYXIgPD0gMTIyKSk7IDs7ICctJyBv' + + 'ciAwLTkgb3IgYS16CiAgICAgICAgICAgIGlmICh+IHZhbGlkX2NoYXIgfCAoaXNGaXJzdCAmIGlzX2h5cGhlbikpIHsKICAgICAgICAgICAgICAgIHJldHVybiBudWxs' + + 'KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaXNIeXBoZW4gPSBpc19oeXBoZW47CiAgICAgICAgICAgIGlmIChpc19kb3QpIHsKICAgICAgICAgICAgICAgIGlm' + + 'IChpc0ZpcnN0IHwgaXNIeXBoZW4pIHsgOzsgRW1wdHkgb3IgZW5kcyB3aXRoIGh5cGhlbgogICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsKCk7CiAgICAgICAg' + + 'ICAgICAgICB9CiAgICAgICAgICAgICAgICBzZWdtZW50cyA9IGNvbnMoY3VycmVudCwgc2VnbWVudHMpOwogICAgICAgICAgICAgICAgY3VycmVudCA9IGJlZ2luX2Nl' + + 'bGwoKTsKICAgICAgICAgICAgICAgIGlzSHlwaGVuID0gZmFsc2U7CiAgICAgICAgICAgICAgICBpc0ZpcnN0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGlzQ3VycmVu' + + 'dEVtcHR5ID0gdHJ1ZTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlzRmlyc3QgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGlzQ3VycmVudEVt' + + 'cHR5ID0gZmFsc2U7CiAgICAgICAgICAgICAgICBjdXJyZW50fnN0b3JlX3VpbnQoY2hhciwgOCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgfSB1bnRpbCAo' + + 'fiBjb250aW51ZSk7CiAgICBpZiAoaXNIeXBoZW4pIHsgOzsgZW5kcyB3aXRoIGh5cGhlbgogICAgICAgIHJldHVybiBudWxsKCk7CiAgICB9CiAgICBpZiAofiBpc0N1' + + 'cnJlbnRFbXB0eSkgewogICAgICAgIHNlZ21lbnRzID0gY29ucyhjdXJyZW50LCBzZWdtZW50cyk7CiAgICB9CgogICAgOzsgQ29uY2F0ZW5hdGUgc2VnbWVudHMKICAg' + + 'IGJ1aWxkZXIgcmVzID0gYmVnaW5fY2VsbCgpOwogICAgKGJ1aWxkZXIgYiwgdHVwbGUgdGFpbCkgPSB1bmNvbnMoc2VnbWVudHMpOwogICAgcmVzID0gcmVzLnN0b3Jl' + + 'X2J1aWxkZXIoYik7CiAgICB3aGlsZSh+IG51bGw/KHRhaWwpKSB7CiAgICAgICAgKGIsIHRhaWwpID0gdW5jb25zKHRhaWwpOwogICAgICAgIHJlcyA9IHJlcy5zdG9y' + + 'ZV91aW50KDAsIDgpOyA7OyBBZGQgXDAgc2VwYXJhdG9yCiAgICAgICAgcmVzID0gcmVzLnN0b3JlX2J1aWxkZXIoYik7CiAgICB9CiAgICByZXMgPSByZXMuc3RvcmVf' + + 'dWludCgwLCA4KTsgOzsgQWRkIFwwIHNlcGFyYXRvcgogICAgcmV0dXJuIHJlcy5lbmRfY2VsbCgpLmJlZ2luX3BhcnNlKCk7Cn0KCmludCBkbnNfaW50ZXJuYWxfdmVy' + + 'aWZ5KHNsaWNlIHNjKSBpbmxpbmVfcmVmIHsKICAgIGlmIChzYy5zbGljZV9yZWZzKCkgIT0gMCkgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIGludCBi' + + 'aXRzID0gc2Muc2xpY2VfYml0cygpOwogICAgaWYgKGJpdHMgJSA4ICE9IDApIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgICBpZiAoYml0cyA9PSAwKSB7' + + 'IDs7IENhc2UgZm9yIHJvb3QgZG9tYWluCiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICBpbnQgbGVuID0gYml0cyAvIDg7CiAgICBpbnQgY291bnRlciA9IDA7' + + 'CiAgICBpbnQgaXNGaXJzdCA9IHRydWU7CiAgICBpbnQgaXNIeXBoZW4gPSBmYWxzZTsKICAgIHJlcGVhdChsZW4pIHsKICAgICAgICBpbnQgY2hhciA9IHNjfmxvYWRf' + + 'dWludCg4KTsKICAgICAgICBpZiAoY2hhciA9PSAwKSB7CiAgICAgICAgICAgIGlmIChjb3VudGVyID09IDApIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK' + + 'ICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoaXNIeXBoZW4pIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAg' + + 'ICBjb3VudGVyID0gMDsKICAgICAgICAgICAgaXNIeXBoZW4gPSBmYWxzZTsKICAgICAgICAgICAgaXNGaXJzdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAg' + + 'ICAgICAgaW50IGNoYXJJc0h5cGhlbiA9IChjaGFyID09IDQ1KTsKICAgICAgICAgICAgaW50IGlzVmFsaWQgPSBjaGFySXNIeXBoZW4gfCAoKGNoYXIgPj0gNDgpICYg' + + 'KGNoYXIgPD0gNTcpKSB8ICgoY2hhciA+PSA5NykgJiAoY2hhciA8PSAxMjIpKTsKICAgICAgICAgICAgaWYgKH4gaXNWYWxpZCkgewogICAgICAgICAgICAgICAgcmV0' + + 'dXJuIGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChjaGFySXNIeXBoZW4gJiBpc0ZpcnN0KSAgewogICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl' + + 'OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlzSHlwaGVuID0gY2hhcklzSHlwaGVuOwogICAgICAgICAgICBpc0ZpcnN0ID0gZmFsc2U7CiAgICAgICAgICAgIGNv' + + 'dW50ZXIgPSBjb3VudGVyICsgMTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gY291bnRlciA9PSAwICYgfiBpc0h5cGhlbjsKfQoKc2xpY2UgZG5zX2ludGVybmFs' + + 'X25vcm1hbGl6ZShzbGljZSBzcmMpIGlubGluZV9yZWYgewogICAgdGhyb3dfdW5sZXNzKHNyYy5zbGljZV9yZWZzKCkgPT0gMCwgMTM0KTsgOzsgSW52YWxpZCBhcmd1' + + 'bWVudCBlcnJvcgogICAgYnVpbGRlciB0YXJnZXQgPSBiZWdpbl9jZWxsKCk7CiAgICByZXBlYXQoc3JjLnNsaWNlX2JpdHMoKSAvIDgpIHsKICAgICAgICBpbnQgY2hh' + + 'ciA9IHNyY35sb2FkX3VpbnQoOCk7CgogICAgICAgIDs7IGIgPT4gNgogICAgICAgIGlmIChjaGFyID09IDk4KSB7CiAgICAgICAgICAgIGNoYXIgPSA1NDsKICAgICAg' + + 'ICB9CgogICAgICAgIDs7IGcsIHEgPT4gOQogICAgICAgIGlmICgoY2hhciA9PSAxMDMpIHwgKGNoYXIgPT0gMTEzKSkgewogICAgICAgICAgICBjaGFyID0gNTc7ICAg' + + 'IAogICAgICAgIH0KCiAgICAgICAgOzsgbCA9PiAxCiAgICAgICAgaWYgKGNoYXIgPT0gMTA4KSB7CiAgICAgICAgICAgIGNoYXIgPSA0OTsKICAgICAgICB9CgogICAg' + + 'ICAgIDs7IG8gPT4gMAogICAgICAgIGlmIChjaGFyID09IDExMSkgewogICAgICAgICAgICBjaGFyID0gNDg7CiAgICAgICAgfQoKICAgICAgICA7OyBzID0+IDUKICAg' + + 'ICAgICBpZiAoY2hhciA9PSAxMTUpIHsKICAgICAgICAgICAgY2hhciA9IDUzOwogICAgICAgIH0KCiAgICAgICAgOzsgdSA9PiB2CiAgICAgICAgaWYgKGNoYXIgPT0g' + + 'MTE3KSB7CiAgICAgICAgICAgIGNoYXIgPSAxMTg7CiAgICAgICAgfQoKICAgICAgICA7OyB6ID0+IDIKICAgICAgICBpZiAoY2hhciA9PSAxMjIpIHsKICAgICAgICAg' + + 'ICAgY2hhciA9IDUwOwogICAgICAgIH0KCiAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnN0b3JlX3VpbnQoY2hhciwgOCk7CiAgICB9CiAgICByZXR1cm4gdGFyZ2V0LmVu' + + 'ZF9jZWxsKCkuYmVnaW5fcGFyc2UoKTsKfQ=='; files['libs/dns.tact'] = 'aW1wb3J0ICIuL2Rucy5mYyI7CgpzdHJ1Y3QgRE5TUmVzb2x2ZVJlc3VsdCB7CiAgICBwcmVmaXg6IEludDsgCiAgICByZWNvcmQ6IENlbGw/OyAKfQoKQG5hbWUoZG5z' + 'X3N0cmluZ190b19pbnRlcm5hbCkKbmF0aXZlIGRuc1N0cmluZ1RvSW50ZXJuYWwoc3RyOiBTdHJpbmcpOiBTbGljZT87CgpAbmFtZShkbnNfaW50ZXJuYWxfbm9ybWFs' + @@ -159,8 +159,8 @@ files['std/context.tact'] = 'ZShfX3RhY3RfY29udGV4dF9nZXQpCm5hdGl2ZSBjb250ZXh0KCk6IENvbnRleHQ7CgpAbmFtZShfX3RhY3RfY29udGV4dF9nZXRfc2VuZGVyKQpuYXRpdmUgc2VuZGVy' + 'KCk6IEFkZHJlc3M7CgpleHRlbmRzIGZ1biByZWFkRm9yd2FyZEZlZShzZWxmOiBDb250ZXh0KTogSW50IHsKICAgIGxldCBzYzogU2xpY2UgPSBzZWxmLnJhdzsKICAg' + 'IHNjLmxvYWRBZGRyZXNzKCk7IC8vIFNraXAgZGVzdGluYXRpb24KICAgIHNjLmxvYWRDb2lucygpOyAvLyBTa2lwIHZhbHVlCiAgICBzYy5za2lwQml0cygxKTsgLy8g' + - 'U2tpcCBleHRyYWN1cnJlbmN5IGNvbGxlY3Rpb24KICAgIHNjLmxvYWRDb2lucygpOyAvLyBTa2lwIGlocl9mZWUKICAgIHJldHVybiAoc2MubG9hZENvaW5zKCkgKiAz' + - 'KSAvIDI7Cn0='; + 'U2tpcCBleHRyYSBjdXJyZW5jeSBjb2xsZWN0aW9uCiAgICBzYy5sb2FkQ29pbnMoKTsgLy8gU2tpcCBpaHJfZmVlCiAgICByZXR1cm4gKHNjLmxvYWRDb2lucygpICog' + + 'MykgLyAyOwp9'; files['std/contract.tact'] = 'c3RydWN0IFN0YXRlSW5pdCB7CiAgICBjb2RlOiBDZWxsOwogICAgZGF0YTogQ2VsbDsKfQoKQG5hbWUoX190YWN0X2NvbXB1dGVfY29udHJhY3RfYWRkcmVzcykKbmF0' + 'aXZlIGNvbnRyYWN0QWRkcmVzc0V4dChjaGFpbjogSW50LCBjb2RlOiBDZWxsLCBkYXRhOiBDZWxsKTogQWRkcmVzczsKCmlubGluZSBmdW4gY29udHJhY3RBZGRyZXNz' + @@ -251,8 +251,8 @@ files['std/text.tact'] = 'bHNlIHsKICAgICAgICAgICAgdGhyb3coMTM0KTsKICAgICAgICB9CiAgICB9CgogICAgLy8gUGFkZGluZwogICAgbGV0IHRvdGFsOiBJbnQgPSByZXN1bHQuYml0cygp' + 'OwogICAgbGV0IHBhZGRpbmc6IEludCA9IHRvdGFsICUgODsKICAgIGlmIChwYWRkaW5nICE9IDApIHsKICAgICAgICBsZXQgczogU2xpY2UgPSByZXN1bHQuYXNTbGlj' + 'ZSgpOwogICAgICAgIHJldHVybiBzLmxvYWRCaXRzKHRvdGFsIC0gcGFkZGluZyk7CiAgICB9IGVsc2UgewogICAgICAgIHJldHVybiByZXN1bHQuYXNTbGljZSgpOwog' + - 'ICAgfQp9CgovLwovLyBBZGRyZXNzIGNvbnZlcnNpb24KLy8KCkBuYW1lKF9fdGFjdF9hZGRyZXNzX3RvX3VzZXJmcmllbmRseSkKZXh0ZW5kcyBuYXRpdmUgdG9TdHJp' + - 'bmcoc2VsZjogQWRkcmVzcyk6IFN0cmluZzs='; + 'ICAgfQp9CgovLwovLyBBZGRyZXNzIGNvbnZlcnNpb24KLy8KCkBuYW1lKF9fdGFjdF9hZGRyZXNzX3RvX3VzZXJfZnJpZW5kbHkpCmV4dGVuZHMgbmF0aXZlIHRvU3Ry' + + 'aW5nKHNlbGY6IEFkZHJlc3MpOiBTdHJpbmc7'; files['stdlib_ex.fc'] = 'Zm9yYWxsIFggLT4gdHVwbGUgX190YWN0X3NldCh0dXBsZSB4LCBYIHYsIGludCBpKSBhc20gIlNFVElOREVYVkFSUSI7CigpIF9fdGFjdF9ub3AoKSBhc20gIk5PUCI7' + 'CnNsaWNlIF9fdGFjdF9zdHJfdG9fc2xpY2Uoc2xpY2UgcykgYXNtICJOT1AiOwpzbGljZSBfX3RhY3Rfc2xpY2VfdG9fc3RyKHNsaWNlIHMpIGFzbSAiTk9QIjsKc2xp' + diff --git a/src/test/__snapshots__/bugs.spec.ts.snap b/src/test/__snapshots__/bugs.spec.ts.snap index 6c3fdb485..5e645a629 100644 --- a/src/test/__snapshots__/bugs.spec.ts.snap +++ b/src/test/__snapshots__/bugs.spec.ts.snap @@ -12,12 +12,12 @@ exports[`bugs should deploy contract correctly 1`] = ` "$type": "received", "message": { "body": { - "cell": "x{178D45190000000000000000502540BE40080129FFBF06CE484F4D3B323979CEDFD65654BF66C54070193CB1B2A1F8F06E245F0016E3A425A4E75B646191AC9A34FE5D050BD101A5C490F87D01C66D885D09BC1082_}", + "cell": "x{178D45190000000000000000502540BE4008003C5D3B0F1C48270BF27183B56B7720CEC4D43FC522F36B959246E78EB0297F390016E3A425A4E75B646191AC9A34FE5D050BD101A5C490F87D01C66D885D09BC1082_}", "type": "cell", }, "bounce": false, - "from": "kQCU_9-DZyQnpp2ZHLznb-srKl-zYqA4DJ5Y2VD8eDcSLynd", - "to": "kQAHONfaUkZLyQhTV1s8zW9FcSeUrB7MQEkpOf3J7hsxPHcc", + "from": "kQAeLp2HjiQThfk4wdq1u5BnYmof4pF5tcrJI3PHWBS_nC2X", + "to": "kQAkac1EyctWyuJ-t6ptqOdCfkadI7zcO0PESJ2m2Djkk5Qt", "type": "internal", "value": "9.959886", }, @@ -38,7 +38,7 @@ exports[`bugs should deploy contract correctly 1`] = ` }, }, "bounce": false, - "from": "kQAHONfaUkZLyQhTV1s8zW9FcSeUrB7MQEkpOf3J7hsxPHcc", + "from": "kQAkac1EyctWyuJ-t6ptqOdCfkadI7zcO0PESJ2m2Djkk5Qt", "to": "@treasure(treasure)", "type": "internal", "value": "9.916924834", diff --git a/src/test/__snapshots__/feature-constants.spec.ts.snap b/src/test/__snapshots__/feature-constants.spec.ts.snap index 5a134fc77..0f8e6144f 100644 --- a/src/test/__snapshots__/feature-constants.spec.ts.snap +++ b/src/test/__snapshots__/feature-constants.spec.ts.snap @@ -41,7 +41,7 @@ ConstantTester { "message": "Masterchain support is not enabled for this contract", }, "2": { - "message": "Stack undeflow", + "message": "Stack underflow", }, "3": { "message": "Stack overflow", @@ -372,7 +372,7 @@ ConstantTester { }, ], }, - "address": kQCG5ZO3hYCRKTIcSHbxVD6aemP9eqeRqXiPLuTtmDjr2Wio, + "address": kQDv7yerqTCJwMlp3JugEltyVuclWRTw9BhZNDWZbYViC4MM, "init": { "code": x{FF00F4A413F4BCF2C80B} x{62_} @@ -441,7 +441,7 @@ ConstantTester { x{ED44D0D401F863D20030916DE0F828D70B0A8309BAF2E089DB3C} x{6D} x{800B} - x{AEE3435697066733A2F2F516D625A38617576474E63656B454543537056507163476A37506868564C69697A724E384D364C515248526E6A5182_} + x{AEE3435697066733A2F2F516D6655625A6767516B31555175766B51474D566231474E31597639424B4A46783247787A586F6231397453615382_} x{AA45DB3CDB3C31} x{ED44D0D401F863D20030916DE0F828D70B0A8309BAF2E089DB3C} x{6D} @@ -535,7 +535,7 @@ ConstantTester { x{ED44D0D401F863D20030916DE0F828D70B0A8309BAF2E089DB3C} x{6D} x{800B} - x{AEE3435697066733A2F2F516D625A38617576474E63656B454543537056507163476A37506868564C69697A724E384D364C515248526E6A5182_} + x{AEE3435697066733A2F2F516D6655625A6767516B31555175766B51474D566231474E31597639424B4A46783247787A586F6231397453615382_} x{AA45DB3CDB3C31} x{ED44D0D401F863D20030916DE0F828D70B0A8309BAF2E089DB3C} x{6D} diff --git a/src/test/__snapshots__/feature-deep.spec.ts.snap b/src/test/__snapshots__/feature-deep.spec.ts.snap index 06d6c8b3c..7c52d9c74 100644 --- a/src/test/__snapshots__/feature-deep.spec.ts.snap +++ b/src/test/__snapshots__/feature-deep.spec.ts.snap @@ -1,10 +1,10 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`feature-random should chain deep sequences correctly 1`] = `"kQBzQuBPhn7ZBGyfJon1nlzqk4L83mOm_Pq47fHucwcVCken"`; +exports[`feature-random should chain deep sequences correctly 1`] = `"kQDrBeBEkP7QP4-M2-FUSzRoUQK_AxvhYOKkIGSEHqmmjUqW"`; -exports[`feature-random should chain deep sequences correctly 2`] = `"kQB5HT5Y8C_DCfrEVd7hwFTQ1ZEgJaGrqzC0MKuC6kd2y78G"`; +exports[`feature-random should chain deep sequences correctly 2`] = `"kQD4CriC3RmScKPAhCkviu-kHj1peUa71rGD7gERLfT6h7rP"`; -exports[`feature-random should chain deep sequences correctly 3`] = `"kQDCMhBiphS6DwVjUGJSSZXnAKwuw2vzSQGTa404BA372O5w"`; +exports[`feature-random should chain deep sequences correctly 3`] = `"kQBGt4TP7qlVmFk8HoqKcbfHRMJXPx9wiCGqz20U3RjpIZGF"`; exports[`feature-random should chain deep sequences correctly 4`] = ` [ @@ -23,7 +23,7 @@ exports[`feature-random should chain deep sequences correctly 4`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQBzQuBPhn7ZBGyfJon1nlzqk4L83mOm_Pq47fHucwcVCken", + "to": "kQDrBeBEkP7QP4-M2-FUSzRoUQK_AxvhYOKkIGSEHqmmjUqW", "type": "internal", "value": "10", }, @@ -41,8 +41,8 @@ exports[`feature-random should chain deep sequences correctly 4`] = ` "type": "text", }, "bounce": true, - "from": "kQBzQuBPhn7ZBGyfJon1nlzqk4L83mOm_Pq47fHucwcVCken", - "to": "kQB5HT5Y8C_DCfrEVd7hwFTQ1ZEgJaGrqzC0MKuC6kd2y78G", + "from": "kQDrBeBEkP7QP4-M2-FUSzRoUQK_AxvhYOKkIGSEHqmmjUqW", + "to": "kQD4CriC3RmScKPAhCkviu-kHj1peUa71rGD7gERLfT6h7rP", "type": "internal", "value": "9.970524", }, @@ -69,8 +69,8 @@ exports[`feature-random should chain deep sequences correctly 5`] = ` "type": "text", }, "bounce": true, - "from": "kQBzQuBPhn7ZBGyfJon1nlzqk4L83mOm_Pq47fHucwcVCken", - "to": "kQB5HT5Y8C_DCfrEVd7hwFTQ1ZEgJaGrqzC0MKuC6kd2y78G", + "from": "kQDrBeBEkP7QP4-M2-FUSzRoUQK_AxvhYOKkIGSEHqmmjUqW", + "to": "kQD4CriC3RmScKPAhCkviu-kHj1peUa71rGD7gERLfT6h7rP", "type": "internal", "value": "9.970524", }, @@ -88,8 +88,8 @@ exports[`feature-random should chain deep sequences correctly 5`] = ` "type": "text", }, "bounce": true, - "from": "kQB5HT5Y8C_DCfrEVd7hwFTQ1ZEgJaGrqzC0MKuC6kd2y78G", - "to": "kQDCMhBiphS6DwVjUGJSSZXnAKwuw2vzSQGTa404BA372O5w", + "from": "kQD4CriC3RmScKPAhCkviu-kHj1peUa71rGD7gERLfT6h7rP", + "to": "kQBGt4TP7qlVmFk8HoqKcbfHRMJXPx9wiCGqz20U3RjpIZGF", "type": "internal", "value": "9.946637", }, @@ -116,8 +116,8 @@ exports[`feature-random should chain deep sequences correctly 6`] = ` "type": "text", }, "bounce": true, - "from": "kQB5HT5Y8C_DCfrEVd7hwFTQ1ZEgJaGrqzC0MKuC6kd2y78G", - "to": "kQDCMhBiphS6DwVjUGJSSZXnAKwuw2vzSQGTa404BA372O5w", + "from": "kQD4CriC3RmScKPAhCkviu-kHj1peUa71rGD7gERLfT6h7rP", + "to": "kQBGt4TP7qlVmFk8HoqKcbfHRMJXPx9wiCGqz20U3RjpIZGF", "type": "internal", "value": "9.946637", }, @@ -135,8 +135,8 @@ exports[`feature-random should chain deep sequences correctly 6`] = ` "type": "text", }, "bounce": true, - "from": "kQDCMhBiphS6DwVjUGJSSZXnAKwuw2vzSQGTa404BA372O5w", - "to": "kQDCMhBiphS6DwVjUGJSSZXnAKwuw2vzSQGTa404BA372O5w", + "from": "kQBGt4TP7qlVmFk8HoqKcbfHRMJXPx9wiCGqz20U3RjpIZGF", + "to": "kQBGt4TP7qlVmFk8HoqKcbfHRMJXPx9wiCGqz20U3RjpIZGF", "type": "internal", "value": "9.92301", }, @@ -155,8 +155,8 @@ exports[`feature-random should chain deep sequences correctly 6`] = ` "type": "text", }, "bounce": true, - "from": "kQDCMhBiphS6DwVjUGJSSZXnAKwuw2vzSQGTa404BA372O5w", - "to": "kQDCMhBiphS6DwVjUGJSSZXnAKwuw2vzSQGTa404BA372O5w", + "from": "kQBGt4TP7qlVmFk8HoqKcbfHRMJXPx9wiCGqz20U3RjpIZGF", + "to": "kQBGt4TP7qlVmFk8HoqKcbfHRMJXPx9wiCGqz20U3RjpIZGF", "type": "internal", "value": "9.92301", }, diff --git a/src/test/__snapshots__/feature-implicit-init.spec.ts.snap b/src/test/__snapshots__/feature-implicit-init.spec.ts.snap index d1490279c..e1154c1f0 100644 --- a/src/test/__snapshots__/feature-implicit-init.spec.ts.snap +++ b/src/test/__snapshots__/feature-implicit-init.spec.ts.snap @@ -20,7 +20,7 @@ exports[`feature-send should deploy 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQDHqMJCGk6QhukOD8ZKGLou9KVeRAM3pGOa_JYP47mob9WO", + "to": "kQCmHLVs4hhx9eQvHIhXKr0w4IRdDqnO9LdM6HTrBxxmpeOZ", "type": "internal", "value": "1", }, @@ -41,7 +41,7 @@ exports[`feature-send should deploy 1`] = ` }, }, "bounce": false, - "from": "kQDHqMJCGk6QhukOD8ZKGLou9KVeRAM3pGOa_JYP47mob9WO", + "from": "kQCmHLVs4hhx9eQvHIhXKr0w4IRdDqnO9LdM6HTrBxxmpeOZ", "to": "@treasure(treasure)", "type": "internal", "value": "0.991657", @@ -67,7 +67,7 @@ exports[`feature-send should increment counter 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQDHqMJCGk6QhukOD8ZKGLou9KVeRAM3pGOa_JYP47mob9WO", + "to": "kQCmHLVs4hhx9eQvHIhXKr0w4IRdDqnO9LdM6HTrBxxmpeOZ", "type": "internal", "value": "1", }, @@ -94,7 +94,7 @@ exports[`feature-send should increment counter 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQDHqMJCGk6QhukOD8ZKGLou9KVeRAM3pGOa_JYP47mob9WO", + "to": "kQCmHLVs4hhx9eQvHIhXKr0w4IRdDqnO9LdM6HTrBxxmpeOZ", "type": "internal", "value": "1", }, diff --git a/src/test/__snapshots__/feature-instrinsics.spec.ts.snap b/src/test/__snapshots__/feature-instrinsics.spec.ts.snap deleted file mode 100644 index 2123077e3..000000000 --- a/src/test/__snapshots__/feature-instrinsics.spec.ts.snap +++ /dev/null @@ -1,46 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`feature-instrinsics should return correct instinsic results 1`] = ` -[ - { - "$seq": 1, - "events": [ - { - "$type": "storage-charged", - "amount": "0.000000011", - }, - { - "$type": "received", - "message": { - "body": { - "text": "emit_1", - "type": "text", - }, - "bounce": true, - "from": "@treasure(treasure)", - "to": "@contract", - "type": "internal", - "value": "1", - }, - }, - { - "$type": "processed", - "gasUsed": 7881n, - }, - { - "$type": "sent", - "messages": [ - { - "body": { - "text": "Hello world", - "type": "text", - }, - "to": null, - "type": "external-out", - }, - ], - }, - ], - }, -] -`; diff --git a/src/test/__snapshots__/feature-intrinsics.spec.ts.snap b/src/test/__snapshots__/feature-intrinsics.spec.ts.snap new file mode 100644 index 000000000..0c328fce3 --- /dev/null +++ b/src/test/__snapshots__/feature-intrinsics.spec.ts.snap @@ -0,0 +1,91 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`feature-intrinsics should return correct intrinsic results 1`] = ` +[ + { + "$seq": 1, + "events": [ + { + "$type": "storage-charged", + "amount": "0.000000011", + }, + { + "$type": "received", + "message": { + "body": { + "text": "emit_1", + "type": "text", + }, + "bounce": true, + "from": "@treasure(treasure)", + "to": "@contract", + "type": "internal", + "value": "1", + }, + }, + { + "$type": "processed", + "gasUsed": 7881n, + }, + { + "$type": "sent", + "messages": [ + { + "body": { + "text": "Hello world", + "type": "text", + }, + "to": null, + "type": "external-out", + }, + ], + }, + ], + }, +] +`; + +exports[`feature-intrinsics should return correct intrinsic results 1`] = ` +[ + { + "$seq": 1, + "events": [ + { + "$type": "storage-charged", + "amount": "0.000000011", + }, + { + "$type": "received", + "message": { + "body": { + "text": "emit_1", + "type": "text", + }, + "bounce": true, + "from": "@treasure(treasure)", + "to": "@contract", + "type": "internal", + "value": "1", + }, + }, + { + "$type": "processed", + "gasUsed": 7881n, + }, + { + "$type": "sent", + "messages": [ + { + "body": { + "text": "Hello world", + "type": "text", + }, + "to": null, + "type": "external-out", + }, + ], + }, + ], + }, +] +`; diff --git a/src/test/__snapshots__/feature-masterchain.spec.ts.snap b/src/test/__snapshots__/feature-masterchain.spec.ts.snap index efb54ce82..273789d18 100644 --- a/src/test/__snapshots__/feature-masterchain.spec.ts.snap +++ b/src/test/__snapshots__/feature-masterchain.spec.ts.snap @@ -17,7 +17,7 @@ exports[`feature-masterchain should deploy to the workchain 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQCH5BskP3iUdwhhHq1e-02uGZl1K1v7Nv0FofkQsgMIa7bk", + "to": "kQA20iCKIFEzO1mFx43P0wStDCq-7r64Cgzuzw2xxs3tCCeX", "type": "internal", "value": "10", }, @@ -48,7 +48,7 @@ exports[`feature-masterchain should deploy to the workchain from masterchain whe }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQB62cwgU28lN8tGqr00-iU4DNXBpiVr4ZnPJ1Z32NbD9xqj", + "to": "kQCge9n1nOR04_y5j_vV3h4BYRPE6g49LgKZxIRNXtTHHfpO", "type": "internal", "value": "10", }, @@ -79,7 +79,7 @@ exports[`feature-masterchain should deploy to the workchain when masterchain ena }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQB62cwgU28lN8tGqr00-iU4DNXBpiVr4ZnPJ1Z32NbD9xqj", + "to": "kQCge9n1nOR04_y5j_vV3h4BYRPE6g49LgKZxIRNXtTHHfpO", "type": "internal", "value": "10", }, @@ -110,7 +110,7 @@ exports[`feature-masterchain should not deploy to the workchain from masterchain }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQCH5BskP3iUdwhhHq1e-02uGZl1K1v7Nv0FofkQsgMIa7bk", + "to": "kQA20iCKIFEzO1mFx43P0wStDCq-7r64Cgzuzw2xxs3tCCeX", "type": "internal", "value": "10", }, @@ -128,7 +128,7 @@ exports[`feature-masterchain should not deploy to the workchain from masterchain "type": "cell", }, "bounce": false, - "from": "kQCH5BskP3iUdwhhHq1e-02uGZl1K1v7Nv0FofkQsgMIa7bk", + "from": "kQA20iCKIFEzO1mFx43P0wStDCq-7r64Cgzuzw2xxs3tCCeX", "to": "@treasure(treasure)", "type": "internal", "value": "9.989", diff --git a/src/test/__snapshots__/feature-send.spec.ts.snap b/src/test/__snapshots__/feature-send.spec.ts.snap index add17a8d7..4c659197f 100644 --- a/src/test/__snapshots__/feature-send.spec.ts.snap +++ b/src/test/__snapshots__/feature-send.spec.ts.snap @@ -18,7 +18,7 @@ exports[`feature-send should bounce on unknown message 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQAtYS6QVmMwOK0owmHMToN6uyLer1UqtPhbWkQ1wsHdJ-dM", + "to": "kQByD0c2DY3X44XUMGHBSk3w4qTf0pMFuM8rPRXRTt7pJhX8", "type": "internal", "value": "10", }, @@ -36,7 +36,7 @@ exports[`feature-send should bounce on unknown message 1`] = ` "type": "cell", }, "bounce": false, - "from": "kQAtYS6QVmMwOK0owmHMToN6uyLer1UqtPhbWkQ1wsHdJ-dM", + "from": "kQByD0c2DY3X44XUMGHBSk3w4qTf0pMFuM8rPRXRTt7pJhX8", "to": "@treasure(treasure)", "type": "internal", "value": "9.996013", @@ -67,7 +67,7 @@ exports[`feature-send should send reply correctly 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQAtYS6QVmMwOK0owmHMToN6uyLer1UqtPhbWkQ1wsHdJ-dM", + "to": "kQByD0c2DY3X44XUMGHBSk3w4qTf0pMFuM8rPRXRTt7pJhX8", "type": "internal", "value": "10", }, @@ -112,7 +112,7 @@ exports[`feature-send should send reply correctly 2`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQAtYS6QVmMwOK0owmHMToN6uyLer1UqtPhbWkQ1wsHdJ-dM", + "to": "kQByD0c2DY3X44XUMGHBSk3w4qTf0pMFuM8rPRXRTt7pJhX8", "type": "internal", "value": "10", }, @@ -130,7 +130,7 @@ exports[`feature-send should send reply correctly 2`] = ` "type": "text", }, "bounce": true, - "from": "kQAtYS6QVmMwOK0owmHMToN6uyLer1UqtPhbWkQ1wsHdJ-dM", + "from": "kQByD0c2DY3X44XUMGHBSk3w4qTf0pMFuM8rPRXRTt7pJhX8", "to": "@treasure(treasure)", "type": "internal", "value": "9.990889", diff --git a/src/test/__snapshots__/feature-try-catch.spec.ts.snap b/src/test/__snapshots__/feature-try-catch.spec.ts.snap index 6ec8d07d5..b2a918506 100644 --- a/src/test/__snapshots__/feature-try-catch.spec.ts.snap +++ b/src/test/__snapshots__/feature-try-catch.spec.ts.snap @@ -18,7 +18,7 @@ exports[`feature-ternary should implement try-catch statements correctly 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQBxrfQA9sLnV68zdLLcV-EkDzEs9jgV46pIuCfD3pobhwzw", + "to": "kQDgHT7Fi8yi-nN-GpNCs36I1rRzKCtVHddSzFuuvMOd0SvA", "type": "internal", "value": "10", }, @@ -45,7 +45,7 @@ exports[`feature-ternary should implement try-catch statements correctly 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQBxrfQA9sLnV68zdLLcV-EkDzEs9jgV46pIuCfD3pobhwzw", + "to": "kQDgHT7Fi8yi-nN-GpNCs36I1rRzKCtVHddSzFuuvMOd0SvA", "type": "internal", "value": "10", }, @@ -72,7 +72,7 @@ exports[`feature-ternary should implement try-catch statements correctly 1`] = ` }, "bounce": true, "from": "@treasure(treasure)", - "to": "kQBxrfQA9sLnV68zdLLcV-EkDzEs9jgV46pIuCfD3pobhwzw", + "to": "kQDgHT7Fi8yi-nN-GpNCs36I1rRzKCtVHddSzFuuvMOd0SvA", "type": "internal", "value": "10", }, @@ -90,7 +90,7 @@ exports[`feature-ternary should implement try-catch statements correctly 1`] = ` "type": "text", }, "bounce": true, - "from": "kQBxrfQA9sLnV68zdLLcV-EkDzEs9jgV46pIuCfD3pobhwzw", + "from": "kQDgHT7Fi8yi-nN-GpNCs36I1rRzKCtVHddSzFuuvMOd0SvA", "to": "@treasure(treasure)", "type": "internal", "value": "9.986684", diff --git a/src/test/bugs/issue43.tact b/src/test/bugs/issue43.tact index f11e507d7..8a952612a 100644 --- a/src/test/bugs/issue43.tact +++ b/src/test/bugs/issue43.tact @@ -88,9 +88,9 @@ trait Jetton with Ownable { require(self.totalSupply + amount <= self.max_supply, "The total supply will be overlapping."); self.totalSupply = self.totalSupply + amount; // Update total supply - let winit: StateInit = self.getJettonWalletInit(to); // Create message + let wInit: StateInit = self.getJettonWalletInit(to); // Create message send(SendParameters{ - to: contractAddress(winit), + to: contractAddress(wInit), value: 0, bounce: false, mode: SendRemainingValue, @@ -102,15 +102,15 @@ trait Jetton with Ownable { forward_ton_amount: 0, forward_payload: emptySlice() }.toCell(), - code: winit.code, - data: winit.data + code: wInit.code, + data: wInit.data }); } fun requireWallet(owner: Address) { let ctx: Context = context(); - let winit: StateInit = self.getJettonWalletInit(owner); - require(contractAddress(winit) == ctx.sender, "Invalid sender"); + let wInit: StateInit = self.getJettonWalletInit(owner); + require(contractAddress(wInit) == ctx.sender, "Invalid sender"); } virtual fun getJettonWalletInit(address: Address): StateInit { @@ -130,8 +130,8 @@ trait Jetton with Ownable { } get fun get_wallet_address(owner: Address): Address { - let winit: StateInit = self.getJettonWalletInit(owner); - return contractAddress(winit); + let wInit: StateInit = self.getJettonWalletInit(owner); + return contractAddress(wInit); } } @@ -237,8 +237,8 @@ contract JettonDefaultWallet { let ctx: Context = context(); if (ctx.sender != self.master) { - let sinit: StateInit = initOf JettonDefaultWallet(self.master, msg.from); - require(contractAddress(sinit) == ctx.sender, "Invalid sender!"); + let sInit: StateInit = initOf JettonDefaultWallet(self.master, msg.from); + require(contractAddress(sInit) == ctx.sender, "Invalid sender!"); } self.balance = self.balance + msg.amount; diff --git a/src/test/feature-instrinsics.spec.ts b/src/test/feature-intrinsics.spec.ts similarity index 96% rename from src/test/feature-instrinsics.spec.ts rename to src/test/feature-intrinsics.spec.ts index 77f50f696..2ad7f8429 100644 --- a/src/test/feature-instrinsics.spec.ts +++ b/src/test/feature-intrinsics.spec.ts @@ -4,11 +4,11 @@ import { __DANGER_resetNodeId } from "../grammar/ast"; import { IntrinsicsTester } from "./features/output/intrinsics_IntrinsicsTester"; import { sha256_sync } from "@ton/crypto"; -describe("feature-instrinsics", () => { +describe("feature-intrinsics", () => { beforeEach(() => { __DANGER_resetNodeId(); }); - it("should return correct instinsic results", async () => { + it("should return correct intrinsic results", async () => { const system = await ContractSystem.create(); const treasure = system.treasure("treasure"); const contract = system.open(await IntrinsicsTester.fromInit()); diff --git a/src/test/feature-math.spec.ts b/src/test/feature-math.spec.ts index c0262f735..be530f93a 100644 --- a/src/test/feature-math.spec.ts +++ b/src/test/feature-math.spec.ts @@ -441,19 +441,19 @@ describe("feature-math", () => { "Integer out of expected range", ); - // Test operation precendence - - expect(await contract.getPrecendence1()).toBe(12n); - expect(await contract.getPrecendence2()).toBe(4n); - expect(await contract.getPrecendence3()).toBe(12n); - expect(await contract.getPrecendence4()).toBe(12n); - expect(await contract.getPrecendence5()).toBe(5n); - expect(await contract.getPrecendence6()).toBe(0n); - expect(await contract.getPrecendence7()).toBe(7n); - expect(await contract.getPrecendence8()).toBe(3n); - expect(await contract.getPrecendence9()).toBe(7n); - expect(await contract.getPrecendence10()).toBe(3n); - expect(await contract.getPrecendence11()).toBe(3n); - expect(await contract.getPrecendence12()).toBe(5n); + // Test operation precedence + + expect(await contract.getPrecedence1()).toBe(12n); + expect(await contract.getPrecedence2()).toBe(4n); + expect(await contract.getPrecedence3()).toBe(12n); + expect(await contract.getPrecedence4()).toBe(12n); + expect(await contract.getPrecedence5()).toBe(5n); + expect(await contract.getPrecedence6()).toBe(0n); + expect(await contract.getPrecedence7()).toBe(7n); + expect(await contract.getPrecedence8()).toBe(3n); + expect(await contract.getPrecedence9()).toBe(7n); + expect(await contract.getPrecedence10()).toBe(3n); + expect(await contract.getPrecedence11()).toBe(3n); + expect(await contract.getPrecedence12()).toBe(5n); }); }); diff --git a/src/test/feature-serialization.spec.ts b/src/test/feature-serialization.spec.ts index a25f38d77..6e600b54c 100644 --- a/src/test/feature-serialization.spec.ts +++ b/src/test/feature-serialization.spec.ts @@ -127,11 +127,11 @@ describe("feature-serialization", () => { await contract.send(treasure, { value: toNano("10") }, null); await system.run(); - // Checl values + // Check values const a = await contract.getGetA(); - const aOpt = await contract.getGetAopt(); + const aOpt = await contract.getGetAOpt(); const b = await contract.getGetB(); - const bOpt = await contract.getGetBopt(); + const bOpt = await contract.getGetBOpt(); const both = await contract.getGetBoth(); expect(aOpt).toMatchObject(a); expect(bOpt).toMatchObject(b); diff --git a/src/test/features/math.tact b/src/test/features/math.tact index 3e8b87092..c2ee908ae 100644 --- a/src/test/features/math.tact +++ b/src/test/features/math.tact @@ -324,51 +324,51 @@ contract MathTester with Deployable { // Precedence // - get fun precendence1(): Int { + get fun precedence1(): Int { return 5 & 6 | 1 << 5 + 11 * 3 % 12 >> 11; } - get fun precendence2(): Int { + get fun precedence2(): Int { return 5 & 6 | 1 << (5 + 11) * 3 % 12 >> 11; } - get fun precendence3(): Int { + get fun precedence3(): Int { return 5 & 6 | 1 << 5 + 11 * (3 % 12) >> 35; } - get fun precendence4(): Int { + get fun precedence4(): Int { return 5 & 6 | 1 << 5 + (11 * 3) % 12 >> 11; } - get fun precendence5(): Int { + get fun precedence5(): Int { return 5 | 6 & 8; } - get fun precendence6(): Int { + get fun precedence6(): Int { return (5 | 6) & 8; } - get fun precendence7(): Int { + get fun precedence7(): Int { return 5 ^ 6 | 7; } - get fun precendence8(): Int { + get fun precedence8(): Int { return 5 ^ 6 & 7; } - get fun precendence9(): Int { + get fun precedence9(): Int { return (5 ^ 6) | 7; } - get fun precendence10(): Int { + get fun precedence10(): Int { return 5 ^ 6 | 7 & 8; } - get fun precendence11(): Int { + get fun precedence11(): Int { return (5 ^ 6) | (7 & 8); } - get fun precendence12(): Int { + get fun precedence12(): Int { return 5 ^ (6 | 7) & 8; } } \ No newline at end of file diff --git a/src/test/features/serialization-2.tact b/src/test/features/serialization-2.tact index a7b41d523..41bb6f3c9 100644 --- a/src/test/features/serialization-2.tact +++ b/src/test/features/serialization-2.tact @@ -61,7 +61,7 @@ contract SerializationTester2 { return self.a; } - get fun getAopt(): Vars? { + get fun getAOpt(): Vars? { return self.a; } @@ -69,7 +69,7 @@ contract SerializationTester2 { return self.b; } - get fun getBopt(): Vars? { + get fun getBOpt(): Vars? { return self.b; } diff --git a/src/types/resolveABITypeRef.ts b/src/types/resolveABITypeRef.ts index 869df0c4e..32b1956f2 100644 --- a/src/types/resolveABITypeRef.ts +++ b/src/types/resolveABITypeRef.ts @@ -79,7 +79,7 @@ export function resolveABIType(src: ASTField): ABITypeRef { type: "int", optional: src.type.optional, format: 257, - }; // Default is maximumx size int + }; // Default is maximum size int } if (src.type.name === "Bool") { if (src.as) { @@ -321,7 +321,7 @@ export function createABITypeRefFromTypeRef( type: "int", optional: src.optional, format: 257, - }; // Default is maximumx size int + }; // Default is maximum size int } if (src.name === "Bool") { return { kind: "simple", type: "bool", optional: src.optional }; diff --git a/src/types/resolveDescriptors.ts b/src/types/resolveDescriptors.ts index 66b82a9ca..cc061e68a 100644 --- a/src/types/resolveDescriptors.ts +++ b/src/types/resolveDescriptors.ts @@ -485,11 +485,11 @@ export function resolveDescriptors(ctx: CompilerContext) { // function resolveFunctionDescriptor( - sself: string | null, + optSelf: string | null, a: ASTFunction | ASTNativeFunction, origin: TypeOrigin, ): FunctionDescription { - let self = sself; + let self = optSelf; // Resolve return let returns: TypeRef = { kind: "void" }; @@ -523,7 +523,7 @@ export function resolveDescriptors(ctx: CompilerContext) { } if (self) { throwError( - "Native functions cannot be delated within a contract", + "Native functions cannot be defined within a contract", a.ref, ); } @@ -726,7 +726,7 @@ export function resolveDescriptors(ctx: CompilerContext) { args, returns, ast: a, - isMutating: !!isMutating || !!sself /* && !isGetter */, // Mark all contract functions as mutating + isMutating: !!isMutating || !!optSelf /* && !isGetter */, // Mark all contract functions as mutating isGetter: !!isGetter, isVirtual: !!isVirtual, isOverrides: !!isOverrides, diff --git a/src/types/resolveSignatures.ts b/src/types/resolveSignatures.ts index 68b9d07ea..94f88106d 100644 --- a/src/types/resolveSignatures.ts +++ b/src/types/resolveSignatures.ts @@ -88,7 +88,7 @@ export function resolveSignatures(ctx: CompilerContext) { if (t.kind !== "struct") { throw Error("Unsupported type " + type); } - const s = createTupeSignature(type); + const s = createTupleSignature(type); if (format === "ref") { return `^${s.signature}`; } else if (format !== null) { @@ -127,7 +127,7 @@ export function resolveSignatures(ctx: CompilerContext) { throw Error("Unsupported ABI field"); } - function createTupeSignature(name: string): { + function createTupleSignature(name: string): { signature: string; tlb: string; id: number | null; @@ -164,7 +164,7 @@ export function resolveSignatures(ctx: CompilerContext) { for (const k in types) { const t = types[k]; if (t.kind === "struct") { - const r = createTupeSignature(t.name); + const r = createTupleSignature(t.name); t.tlb = r.tlb; t.signature = r.signature; t.header = r.id; diff --git a/src/verify.ts b/src/verify.ts index db52fffc5..6f05c1c15 100644 --- a/src/verify.ts +++ b/src/verify.ts @@ -37,7 +37,7 @@ export async function verify(args: { return { ok: false, error: "invalid-package-format" }; } - // Check compier and version + // Check compiler and version if (unpacked.compiler.name !== "tact") { return { ok: false, error: "invalid-compiler" }; } diff --git a/src/vfs/createNodeFileSystem.spec.ts b/src/vfs/createNodeFileSystem.spec.ts index 1da40052a..61cc07641 100644 --- a/src/vfs/createNodeFileSystem.spec.ts +++ b/src/vfs/createNodeFileSystem.spec.ts @@ -34,7 +34,7 @@ describe("createNodeFileSystem", () => { const dir = "dir-" + Math.random(); const fileName2 = dir + "/" + Math.random() + ".txt"; const realPath2 = vfs.resolve(fileName2); - const realPaathDir2 = vfs.resolve(dir); + const realPathDir2 = vfs.resolve(dir); try { expect(vfs.exists(realPath2)).toBe(false); vfs.writeFile(realPath2, "Hello world"); @@ -44,7 +44,7 @@ describe("createNodeFileSystem", () => { ); expect(fs.readFileSync(realPath2, "utf8")).toBe("Hello world"); } finally { - rimraf.sync(realPaathDir2); + rimraf.sync(realPathDir2); } }); }); diff --git a/stdlib/libs/dns.fc b/stdlib/libs/dns.fc index d4035994c..5dc16fd75 100644 --- a/stdlib/libs/dns.fc +++ b/stdlib/libs/dns.fc @@ -12,7 +12,7 @@ slice dns_string_to_internal(slice domain) inline_ref { builder current = begin_cell(); int isCurrentEmpty = true; int isFirst = true; - int isHypen = false; + int isHyphen = false; slice cs = domain; int continue = true; do { @@ -40,14 +40,14 @@ slice dns_string_to_internal(slice domain) inline_ref { if (~ valid_char | (isFirst & is_hyphen)) { return null(); } - isHypen = is_hyphen; + isHyphen = is_hyphen; if (is_dot) { - if (isFirst | isHypen) { ;; Empty or ends with hyphen + if (isFirst | isHyphen) { ;; Empty or ends with hyphen return null(); } segments = cons(current, segments); current = begin_cell(); - isHypen = false; + isHyphen = false; isFirst = true; isCurrentEmpty = true; } else { @@ -58,7 +58,7 @@ slice dns_string_to_internal(slice domain) inline_ref { } } until (~ continue); - if (isHypen) { ;; ends with hyphen + if (isHyphen) { ;; ends with hyphen return null(); } if (~ isCurrentEmpty) { @@ -92,34 +92,34 @@ int dns_internal_verify(slice sc) inline_ref { int len = bits / 8; int counter = 0; int isFirst = true; - int isHypen = false; + int isHyphen = false; repeat(len) { int char = sc~load_uint(8); if (char == 0) { if (counter == 0) { return false; } - if (isHypen) { + if (isHyphen) { return false; } counter = 0; - isHypen = false; + isHyphen = false; isFirst = true; } else { - int charIsHypen = (char == 45); - int isValid = charIsHypen | ((char >= 48) & (char <= 57)) | ((char >= 97) & (char <= 122)); + int charIsHyphen = (char == 45); + int isValid = charIsHyphen | ((char >= 48) & (char <= 57)) | ((char >= 97) & (char <= 122)); if (~ isValid) { return false; } - if (charIsHypen & isFirst) { + if (charIsHyphen & isFirst) { return false; } - isHypen = charIsHypen; + isHyphen = charIsHyphen; isFirst = false; counter = counter + 1; } } - return counter == 0 & ~ isHypen; + return counter == 0 & ~ isHyphen; } slice dns_internal_normalize(slice src) inline_ref { diff --git a/stdlib/std/context.tact b/stdlib/std/context.tact index abef14955..55462f0c9 100644 --- a/stdlib/std/context.tact +++ b/stdlib/std/context.tact @@ -15,7 +15,7 @@ extends fun readForwardFee(self: Context): Int { let sc: Slice = self.raw; sc.loadAddress(); // Skip destination sc.loadCoins(); // Skip value - sc.skipBits(1); // Skip extracurrency collection + sc.skipBits(1); // Skip extra currency collection sc.loadCoins(); // Skip ihr_fee return (sc.loadCoins() * 3) / 2; } \ No newline at end of file diff --git a/stdlib/std/text.tact b/stdlib/std/text.tact index 1171158ee..6e8dc3d52 100644 --- a/stdlib/std/text.tact +++ b/stdlib/std/text.tact @@ -97,5 +97,5 @@ extends fun fromBase64(self: Slice): Slice { // Address conversion // -@name(__tact_address_to_userfriendly) +@name(__tact_address_to_user_friendly) extends native toString(self: Address): String; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 107bf85c6..2e9a54032 100644 --- a/yarn.lock +++ b/yarn.lock @@ -308,6 +308,372 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@cspell/cspell-bundled-dicts@8.8.3": + version "8.8.3" + resolved "https://registry.yarnpkg.com/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-8.8.3.tgz#829f9dfeb019bbf23b84c985e139985b3267d423" + integrity sha512-nRa30TQwE4R5xcM6CBibM2l7D359ympexjm7OrykzYmStIiiudDIsuNOIXGBrDouxRFgKGAa/ETo1g+Pxz7kNA== + dependencies: + "@cspell/dict-ada" "^4.0.2" + "@cspell/dict-aws" "^4.0.2" + "@cspell/dict-bash" "^4.1.3" + "@cspell/dict-companies" "^3.1.0" + "@cspell/dict-cpp" "^5.1.6" + "@cspell/dict-cryptocurrencies" "^5.0.0" + "@cspell/dict-csharp" "^4.0.2" + "@cspell/dict-css" "^4.0.12" + "@cspell/dict-dart" "^2.0.3" + "@cspell/dict-django" "^4.1.0" + "@cspell/dict-docker" "^1.1.7" + "@cspell/dict-dotnet" "^5.0.2" + "@cspell/dict-elixir" "^4.0.3" + "@cspell/dict-en-common-misspellings" "^2.0.1" + "@cspell/dict-en-gb" "1.1.33" + "@cspell/dict-en_us" "^4.3.20" + "@cspell/dict-filetypes" "^3.0.4" + "@cspell/dict-fonts" "^4.0.0" + "@cspell/dict-fsharp" "^1.0.1" + "@cspell/dict-fullstack" "^3.1.8" + "@cspell/dict-gaming-terms" "^1.0.5" + "@cspell/dict-git" "^3.0.0" + "@cspell/dict-golang" "^6.0.9" + "@cspell/dict-google" "^1.0.0" + "@cspell/dict-haskell" "^4.0.1" + "@cspell/dict-html" "^4.0.5" + "@cspell/dict-html-symbol-entities" "^4.0.0" + "@cspell/dict-java" "^5.0.6" + "@cspell/dict-julia" "^1.0.1" + "@cspell/dict-k8s" "^1.0.3" + "@cspell/dict-latex" "^4.0.0" + "@cspell/dict-lorem-ipsum" "^4.0.0" + "@cspell/dict-lua" "^4.0.3" + "@cspell/dict-makefile" "^1.0.0" + "@cspell/dict-monkeyc" "^1.0.6" + "@cspell/dict-node" "^5.0.1" + "@cspell/dict-npm" "^5.0.16" + "@cspell/dict-php" "^4.0.7" + "@cspell/dict-powershell" "^5.0.4" + "@cspell/dict-public-licenses" "^2.0.6" + "@cspell/dict-python" "^4.1.11" + "@cspell/dict-r" "^2.0.1" + "@cspell/dict-ruby" "^5.0.2" + "@cspell/dict-rust" "^4.0.3" + "@cspell/dict-scala" "^5.0.2" + "@cspell/dict-software-terms" "^3.3.23" + "@cspell/dict-sql" "^2.1.3" + "@cspell/dict-svelte" "^1.0.2" + "@cspell/dict-swift" "^2.0.1" + "@cspell/dict-terraform" "^1.0.0" + "@cspell/dict-typescript" "^3.1.5" + "@cspell/dict-vue" "^3.0.0" + +"@cspell/cspell-json-reporter@8.8.3": + version "8.8.3" + resolved "https://registry.yarnpkg.com/@cspell/cspell-json-reporter/-/cspell-json-reporter-8.8.3.tgz#65cf01f6ccde66a2af44b3523ba188cbb0393eff" + integrity sha512-XP8x446IO9iHKvEN1IrJwOC5wC2uwmbdgFiUiXfzPSAlPfRWBmzOR68UR0Z6LNpm1GB4sUxxQkx2CRqDyGaSng== + dependencies: + "@cspell/cspell-types" "8.8.3" + +"@cspell/cspell-pipe@8.8.3": + version "8.8.3" + resolved "https://registry.yarnpkg.com/@cspell/cspell-pipe/-/cspell-pipe-8.8.3.tgz#7f4bbd62634b4d1ea3f3bd83cc6bac458f91e9cd" + integrity sha512-tzngpFKXeUsdTZEErffTlwUnPIKYgyRKy0YTrD77EkhyDSbUnaS8JWqtGZbKV7iQ+R4CL7tiaubPjUzkbWj+kQ== + +"@cspell/cspell-resolver@8.8.3": + version "8.8.3" + resolved "https://registry.yarnpkg.com/@cspell/cspell-resolver/-/cspell-resolver-8.8.3.tgz#7d6e5eae2d776ba7dac1ffd400c47fa5b4991392" + integrity sha512-pMOB2MJYeria0DeW1dsehRPIHLzoOXCm1Cdjp1kRZ931PbqNCYaE/GM6laWpUTAbS9Ly2tv4g0jK3PUH8ZTtJA== + dependencies: + global-directory "^4.0.1" + +"@cspell/cspell-service-bus@8.8.3": + version "8.8.3" + resolved "https://registry.yarnpkg.com/@cspell/cspell-service-bus/-/cspell-service-bus-8.8.3.tgz#e215940851fd32fc2c1a8c5f8eaf820d69217648" + integrity sha512-QVKe/JZvoTaaBAMXG40HjZib1g6rGgxk03e070GmdfCiMRUCWFtK+9DKVYJfSqjQhzj/eDCrq8aWplHWy66umg== + +"@cspell/cspell-types@8.8.3": + version "8.8.3" + resolved "https://registry.yarnpkg.com/@cspell/cspell-types/-/cspell-types-8.8.3.tgz#61cc8a279858bc7d7a3589ca2efc1cd11ae3b2ef" + integrity sha512-31wYSBPinhqKi9TSzPg50fWHJmMQwD1d5p26yM/NAfNQvjAfBQlrg4pqix8pxOJkAK5W/TnoaVXjzJ5XCg6arQ== + +"@cspell/dict-ada@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-ada/-/dict-ada-4.0.2.tgz#8da2216660aeb831a0d9055399a364a01db5805a" + integrity sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA== + +"@cspell/dict-aws@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-aws/-/dict-aws-4.0.2.tgz#6498f1c983c80499054bb31b772aa9562f3aaaed" + integrity sha512-aNGHWSV7dRLTIn8WJemzLoMF62qOaiUQlgnsCwH5fRCD/00gsWCwg106pnbkmK4AyabyxzneOV4dfecDJWkSxw== + +"@cspell/dict-bash@^4.1.3": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-bash/-/dict-bash-4.1.3.tgz#25fba40825ac10083676ab2c777e471c3f71b36e" + integrity sha512-tOdI3QVJDbQSwPjUkOiQFhYcu2eedmX/PtEpVWg0aFps/r6AyjUQINtTgpqMYnYuq8O1QUIQqnpx21aovcgZCw== + +"@cspell/dict-companies@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-companies/-/dict-companies-3.1.2.tgz#b335fe5b8847a23673bc4b964ca584339ca669a2" + integrity sha512-OwR5i1xbYuJX7FtHQySmTy3iJtPV1rZQ3jFCxFGwrA1xRQ4rtRcDQ+sTXBCIAoJHkXa84f9J3zsngOKmMGyS/w== + +"@cspell/dict-cpp@^5.1.6": + version "5.1.8" + resolved "https://registry.yarnpkg.com/@cspell/dict-cpp/-/dict-cpp-5.1.8.tgz#c7b2aa1f434f34c46b4849821c9d914dcf2bdad1" + integrity sha512-X5uq0uRqN6cyOZOZV1YKi6g8sBtd0+VoF5NbDWURahGR8TRsiztH0sNqs0IB3X0dW4GakU+n9SXcuEmxynkSsw== + +"@cspell/dict-cryptocurrencies@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-5.0.0.tgz#19fbc7bdbec76ce64daf7d53a6d0f3cfff7d0038" + integrity sha512-Z4ARIw5+bvmShL+4ZrhDzGhnc9znaAGHOEMaB/GURdS/jdoreEDY34wdN0NtdLHDO5KO7GduZnZyqGdRoiSmYA== + +"@cspell/dict-csharp@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-csharp/-/dict-csharp-4.0.2.tgz#e55659dbe594e744d86b1baf0f3397fe57b1e283" + integrity sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g== + +"@cspell/dict-css@^4.0.12": + version "4.0.12" + resolved "https://registry.yarnpkg.com/@cspell/dict-css/-/dict-css-4.0.12.tgz#59abf3512ae729835c933c38f64a3d8a5f09ce3d" + integrity sha512-vGBgPM92MkHQF5/2jsWcnaahOZ+C6OE/fPvd5ScBP72oFY9tn5GLuomcyO0z8vWCr2e0nUSX1OGimPtcQAlvSw== + +"@cspell/dict-dart@^2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-dart/-/dict-dart-2.0.3.tgz#75e7ffe47d5889c2c831af35acdd92ebdbd4cf12" + integrity sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw== + +"@cspell/dict-data-science@^1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@cspell/dict-data-science/-/dict-data-science-1.0.11.tgz#4eabba75c21d27253c1114b4fbbade0ead739ffc" + integrity sha512-TaHAZRVe0Zlcc3C23StZqqbzC0NrodRwoSAc8dis+5qLeLLnOCtagYQeROQvDlcDg3X/VVEO9Whh4W/z4PAmYQ== + +"@cspell/dict-django@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-django/-/dict-django-4.1.0.tgz#2d4b765daf3c83e733ef3e06887ea34403a4de7a" + integrity sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w== + +"@cspell/dict-docker@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@cspell/dict-docker/-/dict-docker-1.1.7.tgz#bcf933283fbdfef19c71a642e7e8c38baf9014f2" + integrity sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A== + +"@cspell/dict-dotnet@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-dotnet/-/dict-dotnet-5.0.2.tgz#d89ca8fa2e546b5e1b1f1288746d26bb627d9f38" + integrity sha512-UD/pO2A2zia/YZJ8Kck/F6YyDSpCMq0YvItpd4YbtDVzPREfTZ48FjZsbYi4Jhzwfvc6o8R56JusAE58P+4sNQ== + +"@cspell/dict-elixir@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-elixir/-/dict-elixir-4.0.3.tgz#57c25843e46cf3463f97da72d9ef8e37c818296f" + integrity sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q== + +"@cspell/dict-en-common-misspellings@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-2.0.1.tgz#2e472f5128ec38299fc4489638aabdb0d0fb397e" + integrity sha512-uWaP8UG4uvcPyqaG0FzPKCm5kfmhsiiQ45Fs6b3/AEAqfq7Fj1JW0+S3qRt85FQA9SoU6gUJCz9wkK/Ylh7m5A== + +"@cspell/dict-en-gb@1.1.33": + version "1.1.33" + resolved "https://registry.yarnpkg.com/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz#7f1fd90fc364a5cb77111b5438fc9fcf9cc6da0e" + integrity sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g== + +"@cspell/dict-en_us@^4.3.20": + version "4.3.21" + resolved "https://registry.yarnpkg.com/@cspell/dict-en_us/-/dict-en_us-4.3.21.tgz#a8191e3e04d7ea957cac6575c5c2cf98db8ffa8e" + integrity sha512-Bzoo2aS4Pej/MGIFlATpp0wMt9IzVHrhDjdV7FgkAIXbjrOn67ojbTxCgWs8AuCNVfK8lBYGEvs5+ElH1msF8w== + +"@cspell/dict-filetypes@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@cspell/dict-filetypes/-/dict-filetypes-3.0.4.tgz#aca71c7bb8c8805b54f382d98ded5ec75ebc1e36" + integrity sha512-IBi8eIVdykoGgIv5wQhOURi5lmCNJq0we6DvqKoPQJHthXbgsuO1qrHSiUVydMiQl/XvcnUWTMeAlVUlUClnVg== + +"@cspell/dict-fonts@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-fonts/-/dict-fonts-4.0.0.tgz#9bc8beb2a7b068b4fdb45cb994b36fd184316327" + integrity sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q== + +"@cspell/dict-fsharp@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-fsharp/-/dict-fsharp-1.0.1.tgz#d62c699550a39174f182f23c8c1330a795ab5f53" + integrity sha512-23xyPcD+j+NnqOjRHgW3IU7Li912SX9wmeefcY0QxukbAxJ/vAN4rBpjSwwYZeQPAn3fxdfdNZs03fg+UM+4yQ== + +"@cspell/dict-fullstack@^3.1.8": + version "3.1.8" + resolved "https://registry.yarnpkg.com/@cspell/dict-fullstack/-/dict-fullstack-3.1.8.tgz#1bbfa0a165346f6eff9894cf965bf3ce26552797" + integrity sha512-YRlZupL7uqMCtEBK0bDP9BrcPnjDhz7m4GBqCc1EYqfXauHbLmDT8ELha7T/E7wsFKniHSjzwDZzhNXo2lusRQ== + +"@cspell/dict-gaming-terms@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.5.tgz#d6ca40eb34a4c99847fd58a7354cd2c651065156" + integrity sha512-C3riccZDD3d9caJQQs1+MPfrUrQ+0KHdlj9iUR1QD92FgTOF6UxoBpvHUUZ9YSezslcmpFQK4xQQ5FUGS7uWfw== + +"@cspell/dict-git@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-git/-/dict-git-3.0.0.tgz#c275af86041a2b59a7facce37525e2af05653b95" + integrity sha512-simGS/lIiXbEaqJu9E2VPoYW1OTC2xrwPPXNXFMa2uo/50av56qOuaxDrZ5eH1LidFXwoc8HROCHYeKoNrDLSw== + +"@cspell/dict-golang@^6.0.9": + version "6.0.9" + resolved "https://registry.yarnpkg.com/@cspell/dict-golang/-/dict-golang-6.0.9.tgz#b26ee13fb34a8cd40fb22380de8a46b25739fcab" + integrity sha512-etDt2WQauyEQDA+qPS5QtkYTb2I9l5IfQftAllVoB1aOrT6bxxpHvMEpJ0Hsn/vezxrCqa/BmtUbRxllIxIuSg== + +"@cspell/dict-google@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-google/-/dict-google-1.0.1.tgz#34701471a616011aeaaf480d4834436b6b6b1da5" + integrity sha512-dQr4M3n95uOhtloNSgB9tYYGXGGEGEykkFyRtfcp5pFuEecYUa0BSgtlGKx9RXVtJtKgR+yFT/a5uQSlt8WjqQ== + +"@cspell/dict-haskell@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-haskell/-/dict-haskell-4.0.1.tgz#e9fca7c452411ff11926e23ffed2b50bb9b95e47" + integrity sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ== + +"@cspell/dict-html-symbol-entities@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz#4d86ac18a4a11fdb61dfb6f5929acd768a52564f" + integrity sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw== + +"@cspell/dict-html@^4.0.5": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-html/-/dict-html-4.0.5.tgz#03a5182148d80e6c25f71339dbb2b7c5b9894ef8" + integrity sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w== + +"@cspell/dict-java@^5.0.6": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@cspell/dict-java/-/dict-java-5.0.6.tgz#2462d6fc15f79ec15eb88ecf875b6ad2a7bf7a6a" + integrity sha512-kdE4AHHHrixyZ5p6zyms1SLoYpaJarPxrz8Tveo6gddszBVVwIUZ+JkQE1bWNLK740GWzIXdkznpUfw1hP9nXw== + +"@cspell/dict-julia@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-julia/-/dict-julia-1.0.1.tgz#900001417f1c4ea689530adfcc034c848458a0aa" + integrity sha512-4JsCLCRhhLMLiaHpmR7zHFjj1qOauzDI5ZzCNQS31TUMfsOo26jAKDfo0jljFAKgw5M2fEG7sKr8IlPpQAYrmQ== + +"@cspell/dict-k8s@^1.0.3": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-k8s/-/dict-k8s-1.0.5.tgz#4a4011d9f2f3ab628658573c5f16c0e6dbe30c29" + integrity sha512-Cj+/ZV4S+MKlwfocSJZqe/2UAd/sY8YtlZjbK25VN1nCnrsKrBjfkX29vclwSj1U9aJg4Z9jw/uMjoaKu9ZrpQ== + +"@cspell/dict-latex@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-latex/-/dict-latex-4.0.0.tgz#85054903db834ea867174795d162e2a8f0e9c51e" + integrity sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ== + +"@cspell/dict-lorem-ipsum@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.0.tgz#2793a5dbfde474a546b0caecc40c38fdf076306e" + integrity sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw== + +"@cspell/dict-lua@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-lua/-/dict-lua-4.0.3.tgz#2d23c8f7e74b4e62000678d80e7d1ebb10b003e0" + integrity sha512-lDHKjsrrbqPaea13+G9s0rtXjMO06gPXPYRjRYawbNmo4E/e3XFfVzeci3OQDQNDmf2cPOwt9Ef5lu2lDmwfJg== + +"@cspell/dict-makefile@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-makefile/-/dict-makefile-1.0.0.tgz#5afb2910873ebbc01ab8d9c38661c4c93d0e5a40" + integrity sha512-3W9tHPcSbJa6s0bcqWo6VisEDTSN5zOtDbnPabF7rbyjRpNo0uHXHRJQF8gAbFzoTzBBhgkTmrfSiuyQm7vBUQ== + +"@cspell/dict-monkeyc@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@cspell/dict-monkeyc/-/dict-monkeyc-1.0.6.tgz#042d042fc34a20194c8de032130808f44b241375" + integrity sha512-oO8ZDu/FtZ55aq9Mb67HtaCnsLn59xvhO/t2mLLTHAp667hJFxpp7bCtr2zOrR1NELzFXmKln/2lw/PvxMSvrA== + +"@cspell/dict-node@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-node/-/dict-node-5.0.1.tgz#77e17c576a897a3391fce01c1cc5da60bb4c2268" + integrity sha512-lax/jGz9h3Dv83v8LHa5G0bf6wm8YVRMzbjJPG/9rp7cAGPtdrga+XANFq+B7bY5+jiSA3zvj10LUFCFjnnCCg== + +"@cspell/dict-npm@^5.0.16": + version "5.0.16" + resolved "https://registry.yarnpkg.com/@cspell/dict-npm/-/dict-npm-5.0.16.tgz#696883918a9876ffd20d5f975bde74a03d27d80e" + integrity sha512-ZWPnLAziEcSCvV0c8k9Qj88pfMu+wZwM5Qks87ShsfBgI8uLZ9tGHravA7gmjH1Gd7Bgxy2ulvXtSqIWPh1lew== + +"@cspell/dict-php@^4.0.7": + version "4.0.7" + resolved "https://registry.yarnpkg.com/@cspell/dict-php/-/dict-php-4.0.7.tgz#9eaf8e84529cef681d423402f53ef1eb33cf37b2" + integrity sha512-SUCOBfRDDFz1E2jnAZIIuy8BNbCc8i+VkiL9g4HH9tTN6Nlww5Uz2pMqYS6rZQkXuubqsbkbPlsRiuseEnTmYA== + +"@cspell/dict-powershell@^5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@cspell/dict-powershell/-/dict-powershell-5.0.4.tgz#db2bc6a86700a2f829dc1b3b04f6cb3a916fd928" + integrity sha512-eosDShapDgBWN9ULF7+sRNdUtzRnUdsfEdBSchDm8FZA4HOqxUSZy3b/cX/Rdw0Fnw0AKgk0kzgXw7tS6vwJMQ== + +"@cspell/dict-public-licenses@^2.0.6": + version "2.0.7" + resolved "https://registry.yarnpkg.com/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.7.tgz#ccd67a91a6bd5ed4b5117c2f34e9361accebfcb7" + integrity sha512-KlBXuGcN3LE7tQi/GEqKiDewWGGuopiAD0zRK1QilOx5Co8XAvs044gk4MNIQftc8r0nHeUI+irJKLGcR36DIQ== + +"@cspell/dict-python@^4.1.11": + version "4.1.11" + resolved "https://registry.yarnpkg.com/@cspell/dict-python/-/dict-python-4.1.11.tgz#4e339def01bf468b32d459c46ecb6894970b7eb8" + integrity sha512-XG+v3PumfzUW38huSbfT15Vqt3ihNb462ulfXifpQllPok5OWynhszCLCRQjQReV+dgz784ST4ggRxW452/kVg== + dependencies: + "@cspell/dict-data-science" "^1.0.11" + +"@cspell/dict-r@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-r/-/dict-r-2.0.1.tgz#73474fb7cce45deb9094ebf61083fbf5913f440a" + integrity sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA== + +"@cspell/dict-ruby@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-ruby/-/dict-ruby-5.0.2.tgz#cf1a71380c633dec0857143d3270cb503b10679a" + integrity sha512-cIh8KTjpldzFzKGgrqUX4bFyav5lC52hXDKo4LbRuMVncs3zg4hcSf4HtURY+f2AfEZzN6ZKzXafQpThq3dl2g== + +"@cspell/dict-rust@^4.0.3": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-rust/-/dict-rust-4.0.3.tgz#ad61939f78bd63a07ae885f429eab24a74ad7f5e" + integrity sha512-8DFCzkFQ+2k3fDaezWc/D+0AyiBBiOGYfSDUfrTNU7wpvUvJ6cRcAUshMI/cn2QW/mmxTspRgVlXsE6GUMz00Q== + +"@cspell/dict-scala@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-scala/-/dict-scala-5.0.2.tgz#d732ab24610cc9f6916fb8148f6ef5bdd945fc47" + integrity sha512-v97ClgidZt99JUm7OjhQugDHmhx4U8fcgunHvD/BsXWjXNj4cTr0m0YjofyZoL44WpICsNuFV9F/sv9OM5HUEw== + +"@cspell/dict-software-terms@^3.3.23": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-software-terms/-/dict-software-terms-3.4.0.tgz#92d5fb342d3be790213ed6960f4950ff7a5f9243" + integrity sha512-RfrSrvKBaUZ1q3R6eksWe+SMUDNFzAthqXGJuZeylZBO3LdaYdhRDcqFzeMwksfCYjvBYeJ1Ady6NSpdXzESjQ== + +"@cspell/dict-sql@^2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@cspell/dict-sql/-/dict-sql-2.1.3.tgz#8d9666a82e35b310d0be4064032c0d891fbd2702" + integrity sha512-SEyTNKJrjqD6PAzZ9WpdSu6P7wgdNtGV2RV8Kpuw1x6bV+YsSptuClYG+JSdRExBTE6LwIe1bTklejUp3ZP8TQ== + +"@cspell/dict-svelte@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@cspell/dict-svelte/-/dict-svelte-1.0.2.tgz#0c866b08a7a6b33bbc1a3bdbe6a1b484ca15cdaa" + integrity sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q== + +"@cspell/dict-swift@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@cspell/dict-swift/-/dict-swift-2.0.1.tgz#06ec86e52e9630c441d3c19605657457e33d7bb6" + integrity sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw== + +"@cspell/dict-terraform@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-terraform/-/dict-terraform-1.0.0.tgz#c7b073bb3a03683f64cc70ccaa55ce9742c46086" + integrity sha512-Ak+vy4HP/bOgzf06BAMC30+ZvL9mzv21xLM2XtfnBLTDJGdxlk/nK0U6QT8VfFLqJ0ZZSpyOxGsUebWDCTr/zQ== + +"@cspell/dict-typescript@^3.1.5": + version "3.1.5" + resolved "https://registry.yarnpkg.com/@cspell/dict-typescript/-/dict-typescript-3.1.5.tgz#15bd74651fb2cf0eff1150f07afee9543206bfab" + integrity sha512-EkIwwNV/xqEoBPJml2S16RXj65h1kvly8dfDLgXerrKw6puybZdvAHerAph6/uPTYdtLcsPyJYkPt5ISOJYrtw== + +"@cspell/dict-vue@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@cspell/dict-vue/-/dict-vue-3.0.0.tgz#68ccb432ad93fcb0fd665352d075ae9a64ea9250" + integrity sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A== + +"@cspell/dynamic-import@8.8.3": + version "8.8.3" + resolved "https://registry.yarnpkg.com/@cspell/dynamic-import/-/dynamic-import-8.8.3.tgz#b2a1cbca4b1812482f6c9f1a752d069e19cdef00" + integrity sha512-qpxGC2hGVfbSaLJkaEu//rqbgAOjYnMlbxD75Fk9ny96sr+ZI1YC0nmUErWlgXSbtjVY/DHCOu26Usweo5iRgA== + dependencies: + import-meta-resolve "^4.1.0" + +"@cspell/strong-weak-map@8.8.3": + version "8.8.3" + resolved "https://registry.yarnpkg.com/@cspell/strong-weak-map/-/strong-weak-map-8.8.3.tgz#5a0856dfd0c003df833fb69855322aeb95107b87" + integrity sha512-y/pL7Zex8iHQ54qDYvg9oCiCgfZ9DAUTOI/VtPFVC+42JqLx6YufYxJS2uAsFlfAXIPiRV8qnnG6BHImD1Ix6g== + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -1338,6 +1704,11 @@ array-buffer-byte-length@^1.0.1: call-bind "^1.0.5" is-array-buffer "^3.0.4" +array-timsort@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" + integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== + array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -1550,6 +1921,13 @@ braces@^3.0.2: dependencies: fill-range "^7.0.1" +braces@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== + dependencies: + fill-range "^7.1.1" + browserslist@^4.22.2: version "4.23.0" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" @@ -1631,7 +2009,7 @@ call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: get-intrinsic "^1.2.4" set-function-length "^1.2.1" -callsites@^3.0.0: +callsites@^3.0.0, callsites@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== @@ -1673,6 +2051,13 @@ capital-case@^1.0.4: tslib "^2.0.3" upper-case-first "^2.0.2" +chalk-template@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1" + integrity sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg== + dependencies: + chalk "^5.2.0" + chalk@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" @@ -1695,7 +2080,7 @@ chalk@^4.0.0, chalk@^4.1.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.0.0, chalk@^5.0.1, chalk@^5.2.0: +chalk@^5.0.0, chalk@^5.0.1, chalk@^5.2.0, chalk@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== @@ -1738,6 +2123,14 @@ cjs-module-lexer@^1.0.0: resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== +clear-module@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/clear-module/-/clear-module-4.1.2.tgz#5a58a5c9f8dccf363545ad7284cad3c887352a80" + integrity sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw== + dependencies: + parent-module "^2.0.0" + resolve-from "^5.0.0" + cli-boxes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-3.0.0.tgz#71a10c716feeba005e4504f36329ef0b17cf3145" @@ -1815,11 +2208,27 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== + commander@^8.1.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +comment-json@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.2.3.tgz#50b487ebbf43abe44431f575ebda07d30d015365" + integrity sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw== + dependencies: + array-timsort "^1.0.3" + core-util-is "^1.0.3" + esprima "^4.0.1" + has-own-prop "^2.0.0" + repeat-string "^1.6.1" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -1858,6 +2267,11 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== +core-util-is@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + cosmiconfig@8.1.3: version "8.1.3" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.1.3.tgz#0e614a118fcc2d9e5afc2f87d53cd09931015689" @@ -1909,6 +2323,117 @@ crypto-random-string@^4.0.0: dependencies: type-fest "^1.0.1" +cspell-config-lib@8.8.3: + version "8.8.3" + resolved "https://registry.yarnpkg.com/cspell-config-lib/-/cspell-config-lib-8.8.3.tgz#b32d22da7a540d46acd947606a9fe2efe5722f67" + integrity sha512-61NKZrzTi9OLEEiZBggLQy9nswgR0gd6bKH06xXFQyRfNpAjaPOzOUFhSSfX1MQX+lQF3KtSYcHpppwbpPsL8w== + dependencies: + "@cspell/cspell-types" "8.8.3" + comment-json "^4.2.3" + yaml "^2.4.2" + +cspell-dictionary@8.8.3: + version "8.8.3" + resolved "https://registry.yarnpkg.com/cspell-dictionary/-/cspell-dictionary-8.8.3.tgz#91c84f2e50d0b9cb8ef45c2c7a6b89003f809840" + integrity sha512-g2G3uh8JbuJKAYFdFQENcbTIrK9SJRXBiQ/t+ch+9I/t5HmuGOVe+wxKEM/0c9M2CRLpzJShBvttH9rnw4Yqfg== + dependencies: + "@cspell/cspell-pipe" "8.8.3" + "@cspell/cspell-types" "8.8.3" + cspell-trie-lib "8.8.3" + fast-equals "^5.0.1" + gensequence "^7.0.0" + +cspell-gitignore@8.8.3: + version "8.8.3" + resolved "https://registry.yarnpkg.com/cspell-gitignore/-/cspell-gitignore-8.8.3.tgz#faf4f8d3e7688e021135de5ca1610aca33db07bc" + integrity sha512-+IeVPNnUJOj+D9rc4elbK4DK3p9qxvF/2BMtFsE7a75egeJjAnlzVGzqH2FVMsDj6dxe5bjc8/S4Nhw6B14xTQ== + dependencies: + cspell-glob "8.8.3" + find-up-simple "^1.0.0" + +cspell-glob@8.8.3: + version "8.8.3" + resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-8.8.3.tgz#3b6fbd5e647b177fa31808ac2ad7db3aa05bc825" + integrity sha512-9c4Nw/bIsjKSuBuRrLa1sWtIzbXXvja+FVbUOE9c2IiZfh6K1I+UssiXTbRTMg6qgTdkfT4o3KOcFN0ZcbmCUQ== + dependencies: + micromatch "^4.0.7" + +cspell-grammar@8.8.3: + version "8.8.3" + resolved "https://registry.yarnpkg.com/cspell-grammar/-/cspell-grammar-8.8.3.tgz#230bf790fe193dc8ee15f19c075f419adc2eb95f" + integrity sha512-3RP7xQ/6IiIjbWQDuE+4b0ERKkSWGMY75bd0oEsh5HcFhhOYphmcpxLxRRM/yxYQaYgdvq0QIcwrpanx86KJ7A== + dependencies: + "@cspell/cspell-pipe" "8.8.3" + "@cspell/cspell-types" "8.8.3" + +cspell-io@8.8.3: + version "8.8.3" + resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-8.8.3.tgz#9fd0360d3bc2dbe0e45fe51e796457a9c010ad4a" + integrity sha512-vO7BUa6i7tjmQr+9dw/Ic7tm4ECnSUlbuMv0zJs/SIrO9AcID2pCWPeZNZEGAmeutrEOi2iThZ/uS33aCuv7Jw== + dependencies: + "@cspell/cspell-service-bus" "8.8.3" + +cspell-lib@8.8.3: + version "8.8.3" + resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-8.8.3.tgz#47d18ec102f25e28d1376c0a9e9d4c01428b965a" + integrity sha512-IqtTKBPug5Jzt9T8f/b6qGAbARRR5tpQkLjzsrfLzxM68ery23wEPDtmWToEyc9EslulZGLe0T78XuEU9AMF+g== + dependencies: + "@cspell/cspell-bundled-dicts" "8.8.3" + "@cspell/cspell-pipe" "8.8.3" + "@cspell/cspell-resolver" "8.8.3" + "@cspell/cspell-types" "8.8.3" + "@cspell/dynamic-import" "8.8.3" + "@cspell/strong-weak-map" "8.8.3" + clear-module "^4.1.2" + comment-json "^4.2.3" + cspell-config-lib "8.8.3" + cspell-dictionary "8.8.3" + cspell-glob "8.8.3" + cspell-grammar "8.8.3" + cspell-io "8.8.3" + cspell-trie-lib "8.8.3" + env-paths "^3.0.0" + fast-equals "^5.0.1" + gensequence "^7.0.0" + import-fresh "^3.3.0" + resolve-from "^5.0.0" + vscode-languageserver-textdocument "^1.0.11" + vscode-uri "^3.0.8" + xdg-basedir "^5.1.0" + +cspell-trie-lib@8.8.3: + version "8.8.3" + resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-8.8.3.tgz#10689cb43e8244286fcdc8ae41cf52ce7960138f" + integrity sha512-0zrkrhrFLVajwo6++XD9a+r0Olml7UjPgbztjPKbXIJrZCradBF5rvt3wq5mPpsjq2+Dz0z6K5muZpbO+gqapQ== + dependencies: + "@cspell/cspell-pipe" "8.8.3" + "@cspell/cspell-types" "8.8.3" + gensequence "^7.0.0" + +cspell@^8.8.3: + version "8.8.3" + resolved "https://registry.yarnpkg.com/cspell/-/cspell-8.8.3.tgz#ff22699ce3df16b8a270a4f94e3296fc703b1647" + integrity sha512-JVWI4MNALOuZ+igyJ54C6Iwe8s1ecMCgyGFGId5a0P6wi/V+TFYFhl7QkzIi1Uw4KtXSYrUSlHGUjC2dE0OZ9g== + dependencies: + "@cspell/cspell-json-reporter" "8.8.3" + "@cspell/cspell-pipe" "8.8.3" + "@cspell/cspell-types" "8.8.3" + "@cspell/dynamic-import" "8.8.3" + chalk "^5.3.0" + chalk-template "^1.1.0" + commander "^12.1.0" + cspell-gitignore "8.8.3" + cspell-glob "8.8.3" + cspell-io "8.8.3" + cspell-lib "8.8.3" + fast-glob "^3.3.2" + fast-json-stable-stringify "^2.1.0" + file-entry-cache "^8.0.0" + get-stdin "^9.0.0" + semver "^7.6.2" + strip-ansi "^7.1.0" + vscode-uri "^3.0.8" + data-uri-to-buffer@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" @@ -2122,6 +2647,11 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +env-paths@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-3.0.0.tgz#2f1e89c2f6dbd3408e1b1711dd82d62e317f58da" + integrity sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A== + err-code@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" @@ -2465,7 +2995,12 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11, fast-glob@^3.2.7, fast-glob@^3.2.9: +fast-equals@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.0.1.tgz#a4eefe3c5d1c0d021aeed0bc10ba5e0c12ee405d" + integrity sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ== + +fast-glob@^3.2.11, fast-glob@^3.2.7, fast-glob@^3.2.9, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -2530,6 +3065,13 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== + dependencies: + flat-cache "^4.0.0" + fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -2537,6 +3079,18 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== + dependencies: + to-regex-range "^5.0.1" + +find-up-simple@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-up-simple/-/find-up-simple-1.0.0.tgz#21d035fde9fdbd56c8f4d2f63f32fd93a1cfc368" + integrity sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw== + find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -2562,6 +3116,14 @@ flat-cache@^3.0.4: keyv "^4.5.3" rimraf "^3.0.2" +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.4" + flatted@^3.2.9: version "3.3.1" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a" @@ -2625,6 +3187,11 @@ functions-have-names@^1.2.3: resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== +gensequence@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-7.0.0.tgz#bb6aedec8ff665e3a6c42f92823121e3a6ea7718" + integrity sha512-47Frx13aZh01afHJTB3zTtKIlFI6vWY+MYCN9Qpew6i52rfKjnhCF/l1YlC8UmEMvvntZZ6z4PiCcmyuedR2aQ== + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -2651,6 +3218,11 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-stdin@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575" + integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA== + get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" @@ -2737,6 +3309,13 @@ glob@^9.2.0, glob@^9.3.2: minipass "^4.2.4" path-scurry "^1.6.1" +global-directory@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/global-directory/-/global-directory-4.0.1.tgz#4d7ac7cfd2cb73f304c53b8810891748df5e361e" + integrity sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q== + dependencies: + ini "4.1.1" + global-dirs@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" @@ -2848,6 +3427,11 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-own-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-own-prop/-/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af" + integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== + has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" @@ -2953,7 +3537,7 @@ ignore@^5.2.0, ignore@^5.3.1: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== -import-fresh@^3.2.1: +import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -2974,6 +3558,11 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" +import-meta-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz#f9db8bead9fafa61adb811db77a2bf22c5399706" + integrity sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw== + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -2997,6 +3586,11 @@ ini@2.0.0: resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== +ini@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" + integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== + ini@^1.3.4, ini@~1.3.0: version "1.3.8" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" @@ -3925,7 +4519,7 @@ jssha@3.2.0: resolved "https://registry.yarnpkg.com/jssha/-/jssha-3.2.0.tgz#88ec50b866dd1411deaddbe6b3e3692e4c710f16" integrity sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q== -keyv@^4.5.3: +keyv@^4.5.3, keyv@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== @@ -4135,6 +4729,14 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" +micromatch@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" @@ -4528,6 +5130,13 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parent-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-2.0.0.tgz#fa71f88ff1a50c27e15d8ff74e0e3a9523bf8708" + integrity sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg== + dependencies: + callsites "^3.1.0" + parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -4869,6 +5478,11 @@ release-it@^15.5.1: wildcard-match "5.1.2" yargs-parser "21.1.1" +repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5050,6 +5664,11 @@ semver@^7.3.5, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: dependencies: lru-cache "^6.0.0" +semver@^7.6.2: + version "7.6.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + sentence-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" @@ -5293,7 +5912,7 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-ansi@^7.0.1: +strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== @@ -5695,6 +6314,11 @@ vm2@^3.9.19: acorn "^8.7.0" acorn-walk "^8.2.0" +vscode-languageserver-textdocument@^1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz#0822a000e7d4dc083312580d7575fe9e3ba2e2bf" + integrity sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA== + vscode-oniguruma@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b" @@ -5705,6 +6329,11 @@ vscode-textmate@^8.0.0: resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d" integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg== +vscode-uri@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" + integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== + walker@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" @@ -5860,6 +6489,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^2.4.2: + version "2.4.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.3.tgz#0777516b8c7880bcaa0f426a5410e8d6b0be1f3d" + integrity sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg== + yargs-parser@21.1.1, yargs-parser@^21.0.1, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"