From 1ecb6d8682e6bc72b33d13e14b3420b754ac8478 Mon Sep 17 00:00:00 2001 From: obvTiger Date: Thu, 27 Mar 2025 17:28:51 +0100 Subject: [PATCH 1/4] feat: code blocks beta --- extension/blueprint-language-0.0.1.vsix | Bin 584343 -> 585997 bytes extension/client/out/.tsbuildinfo | 2 +- extension/out/tsconfig.tsbuildinfo | 2 +- extension/server/out/.tsbuildinfo | 2 +- extension/server/out/server.js | 61 ++++ extension/server/out/server.js.map | 2 +- extension/server/src/server.ts | 83 +++++- extension/syntaxes/blueprint.tmLanguage.json | 23 +- lib/ASTBuilder.js | 35 +++ lib/BlueprintBuilder.js | 16 + lib/BlueprintCompiler.js | 9 + lib/HTMLGenerator.js | 136 ++++++++- lib/TokenParser.js | 136 +++++++++ lib/generators/ButtonElementGenerator.js | 16 + lib/generators/StandardElementGenerator.js | 16 + lib/mappings.js | 2 +- lib/server.js | 291 ++++++++++++++----- lib/utils/StringUtils.js | 17 +- package.json | 1 + 19 files changed, 756 insertions(+), 94 deletions(-) diff --git a/extension/blueprint-language-0.0.1.vsix b/extension/blueprint-language-0.0.1.vsix index c03e9ad109b0c1305833d6da561c958f3ec10e7f..1bf285e74be8b100c8a43abf51314f8671ae6af7 100644 GIT binary patch delta 95379 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 delta 93790 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%0AR$Y$VIy;mwd53v{bMMQfh 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 Ol11?G*j(sQxc(pJR{MJZ diff --git a/extension/client/out/.tsbuildinfo b/extension/client/out/.tsbuildinfo index ab54d4c..b945de0 100644 --- a/extension/client/out/.tsbuildinfo +++ b/extension/client/out/.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/@types/vscode/index.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/dom-events.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/vscode-languageserver-types/lib/umd/main.d.ts","../../node_modules/vscode-jsonrpc/typings/thenable.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messages.d.ts","../../node_modules/vscode-jsonrpc/lib/common/linkedmap.d.ts","../../node_modules/vscode-jsonrpc/lib/common/disposable.d.ts","../../node_modules/vscode-jsonrpc/lib/common/events.d.ts","../../node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts","../../node_modules/vscode-jsonrpc/lib/common/encoding.d.ts","../../node_modules/vscode-jsonrpc/lib/common/ral.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagereader.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagewriter.d.ts","../../node_modules/vscode-jsonrpc/lib/common/connection.d.ts","../../node_modules/vscode-jsonrpc/lib/common/sharedarraycancellation.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagebuffer.d.ts","../../node_modules/vscode-jsonrpc/lib/common/api.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.typedefinition.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.workspacefolder.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.colorprovider.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.callhierarchy.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.semantictokens.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.showdocument.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.linkededitingrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.fileoperations.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.typehierarchy.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlinevalue.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayhint.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/api.d.ts","../../node_modules/vscode-languageclient/lib/common/codeconverter.d.ts","../../node_modules/vscode-languageclient/lib/common/protocolcompletionitem.d.ts","../../node_modules/vscode-languageclient/lib/common/protocolconverter.d.ts","../../node_modules/vscode-languageclient/lib/common/semantictokens.d.ts","../../node_modules/vscode-languageclient/lib/common/textsynchronization.d.ts","../../node_modules/vscode-languageclient/lib/common/codelens.d.ts","../../node_modules/vscode-languageclient/lib/common/inlinevalue.d.ts","../../node_modules/vscode-languageclient/lib/common/inlayhint.d.ts","../../node_modules/vscode-languageclient/lib/common/diagnostic.d.ts","../../node_modules/vscode-languageclient/lib/common/notebook.d.ts","../../node_modules/vscode-languageclient/lib/common/features.d.ts","../../node_modules/vscode-languageclient/lib/common/configuration.d.ts","../../node_modules/vscode-languageclient/lib/common/completion.d.ts","../../node_modules/vscode-languageclient/lib/common/hover.d.ts","../../node_modules/vscode-languageclient/lib/common/definition.d.ts","../../node_modules/vscode-languageclient/lib/common/signaturehelp.d.ts","../../node_modules/vscode-languageclient/lib/common/documenthighlight.d.ts","../../node_modules/vscode-languageclient/lib/common/documentsymbol.d.ts","../../node_modules/vscode-languageclient/lib/common/workspacesymbol.d.ts","../../node_modules/vscode-languageclient/lib/common/reference.d.ts","../../node_modules/vscode-languageclient/lib/common/typedefinition.d.ts","../../node_modules/vscode-languageclient/lib/common/implementation.d.ts","../../node_modules/vscode-languageclient/lib/common/colorprovider.d.ts","../../node_modules/vscode-languageclient/lib/common/codeaction.d.ts","../../node_modules/vscode-languageclient/lib/common/formatting.d.ts","../../node_modules/vscode-languageclient/lib/common/rename.d.ts","../../node_modules/vscode-languageclient/lib/common/documentlink.d.ts","../../node_modules/vscode-languageclient/lib/common/executecommand.d.ts","../../node_modules/vscode-languageclient/lib/common/foldingrange.d.ts","../../node_modules/vscode-languageclient/lib/common/declaration.d.ts","../../node_modules/vscode-languageclient/lib/common/selectionrange.d.ts","../../node_modules/vscode-languageclient/lib/common/callhierarchy.d.ts","../../node_modules/vscode-languageclient/lib/common/linkededitingrange.d.ts","../../node_modules/vscode-languageclient/lib/common/typehierarchy.d.ts","../../node_modules/vscode-languageclient/lib/common/workspacefolder.d.ts","../../node_modules/vscode-languageclient/lib/common/fileoperations.d.ts","../../node_modules/vscode-languageclient/lib/common/client.d.ts","../../node_modules/vscode-jsonrpc/lib/node/main.d.ts","../../node_modules/vscode-jsonrpc/node.d.ts","../../node_modules/vscode-languageserver-protocol/lib/node/main.d.ts","../../node_modules/vscode-languageserver-protocol/node.d.ts","../../node_modules/vscode-languageclient/lib/common/api.d.ts","../../node_modules/vscode-languageclient/lib/node/main.d.ts","../../node_modules/vscode-languageclient/node.d.ts","../src/extension.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/semver/classes/semver.d.ts","../../node_modules/@types/semver/functions/parse.d.ts","../../node_modules/@types/semver/functions/valid.d.ts","../../node_modules/@types/semver/functions/clean.d.ts","../../node_modules/@types/semver/functions/inc.d.ts","../../node_modules/@types/semver/functions/diff.d.ts","../../node_modules/@types/semver/functions/major.d.ts","../../node_modules/@types/semver/functions/minor.d.ts","../../node_modules/@types/semver/functions/patch.d.ts","../../node_modules/@types/semver/functions/prerelease.d.ts","../../node_modules/@types/semver/functions/compare.d.ts","../../node_modules/@types/semver/functions/rcompare.d.ts","../../node_modules/@types/semver/functions/compare-loose.d.ts","../../node_modules/@types/semver/functions/compare-build.d.ts","../../node_modules/@types/semver/functions/sort.d.ts","../../node_modules/@types/semver/functions/rsort.d.ts","../../node_modules/@types/semver/functions/gt.d.ts","../../node_modules/@types/semver/functions/lt.d.ts","../../node_modules/@types/semver/functions/eq.d.ts","../../node_modules/@types/semver/functions/neq.d.ts","../../node_modules/@types/semver/functions/gte.d.ts","../../node_modules/@types/semver/functions/lte.d.ts","../../node_modules/@types/semver/functions/cmp.d.ts","../../node_modules/@types/semver/functions/coerce.d.ts","../../node_modules/@types/semver/classes/comparator.d.ts","../../node_modules/@types/semver/classes/range.d.ts","../../node_modules/@types/semver/functions/satisfies.d.ts","../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../node_modules/@types/semver/ranges/min-version.d.ts","../../node_modules/@types/semver/ranges/valid.d.ts","../../node_modules/@types/semver/ranges/outside.d.ts","../../node_modules/@types/semver/ranges/gtr.d.ts","../../node_modules/@types/semver/ranges/ltr.d.ts","../../node_modules/@types/semver/ranges/intersects.d.ts","../../node_modules/@types/semver/ranges/simplify.d.ts","../../node_modules/@types/semver/ranges/subset.d.ts","../../node_modules/@types/semver/internals/identifiers.d.ts","../../node_modules/@types/semver/index.d.ts"],"fileIdsList":[[46,51,56,78,186],[51,56],[51,53,56],[51,55,56],[56],[51,56,61,88],[51,56,57,68,69,76,85,96],[51,56,57,58,68,76],[47,48,51,56],[51,56,59,97],[51,56,60,61,69,77],[51,56,61,85,93],[51,56,62,64,68,76],[51,56,63],[51,56,64,65],[51,56,68],[51,56,67,68],[51,55,56,68],[51,56,68,69,70,85,96],[51,56,68,69,70,85],[51,56,68,71,76,85,96],[51,56,68,69,71,72,76,85,93,96],[51,56,71,73,85,93,96],[49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102],[51,56,68,74],[51,56,75,96,101],[51,56,64,68,76,85],[51,56,77],[51,56,78],[51,55,56,79],[51,56,80,95,101],[51,56,81],[51,56,82],[51,56,68,83],[51,56,83,84,97,99],[51,56,68,85,86,87],[51,56,85,87],[51,56,85,86],[51,56,88],[51,56,89],[51,56,68,91,92],[51,56,91,92],[51,56,61,76,85,93],[51,56,94],[51,56,76,95],[51,56,71,82,96],[51,56,61,97],[51,56,85,98],[51,56,99],[51,56,100],[51,56,61,68,70,79,85,96,99,101],[51,56,85,102],[51,56,189,228],[51,56,189,213,228],[51,56,228],[51,56,189],[51,56,189,214,228],[51,56,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227],[51,56,214,228],[51,56,105,106,107,108,109,110,111,112,113,114,115,116,117],[51,56,108,109],[51,56,106,108,109,110,113,114],[51,56,106,112],[51,56,108],[51,56,112],[51,56,106,109,111,112,118],[51,56,106,109,111,112],[51,56,108,111],[51,56,106,110,115],[51,56,57,76,101,103,118],[51,56,180],[51,56,142,143,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,178,179],[46,51,56,142,153],[46,51,56,142,143,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],[46,51,56,142],[46,51,56,142,143,145,146,147,148,149,150,151,152],[46,51,56,142,144],[46,51,56,57,103,179,183,184],[51,56,185],[51,56,104,118,119,140,141],[51,56,118,119],[51,56,118],[51,56,104,118,119,140],[51,56,104,118,119],[51,56,104,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[51,56,119,140],[51,56,104,119,140],[51,56,103,142,181],[51,56,182]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"caaf6bf4dd0a3f88b50670f5786141b209edb54ba17eb6268c2d28919c813606","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e864ea827318e5f490863a8cd412744d9ddb175acf488dd02a941703dad1e38","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"23301069cfa7a4c6dd68915eeccc7a2ae0bd3018ff4a6288dd9e0c8b4238fab6","affectsGlobalScope":true,"impliedFormat":1},{"version":"df01885cc27c14632a8c38bdeb053295e69209107bb6c53988b78db5f450cb3c","affectsGlobalScope":true,"impliedFormat":1},{"version":"38379fa748cc5d259c96da356a849bd290a159ae218e06ec1daa166850e4bf50","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"f51b4042a3ac86f1f707500a9768f88d0b0c1fc3f3e45a73333283dea720cdc6","impliedFormat":1},{"version":"a29bc8aa8cc100d0c09370c03508f1245853efe017bb98699d4c690868371fc7","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f95830ca11e2c7e82235b73dc149e68a0632b41e671724d12adc83a6750746d","impliedFormat":1},{"version":"7aa011cda7cf0b9e87c85d128b2eeac9930bda215b0fee265d8bf2cec039fb5f","impliedFormat":1},{"version":"92ec1aeca4e94bdab04083daa6039f807c0fce8f09bc42e8b24bf49fa5cdbbff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"8463ab6a156dc96200b3d8b8a52dc8d878f13a6b7404439aa2f911d568132808","impliedFormat":1},{"version":"6c39d4dbdb372b364442854e42d8c473e2ec67badb226745af17ed5ac41ce6f5","impliedFormat":1},{"version":"7693b90b3075deaccafd5efb467bf9f2b747a3075be888652ef73e64396d8628","impliedFormat":1},{"version":"bd01a987f0fcf2344a405e542ee681e420651eaff1222a5a6e0c02fda52343bc","impliedFormat":1},{"version":"693e50962e90a3548f41bff2c22676e3964212a836022d82e49eca0b20320a38","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"300b0c12998391154d7b9115a85554e91632a3d3e1b66038e98f2b9cb3c1061d","impliedFormat":1},{"version":"222e742815b14d54db034788a7bee2d51197a2588c35b1fbefe04add6393021c","affectsGlobalScope":true,"impliedFormat":1},{"version":"93891e576a698609695e5b8117bb128336e4b7b28772e7d7e38e8075790eb42f","impliedFormat":1},{"version":"5293d799856f47259146ccf0be9a1cc0a4a5343696182d7206ed25ea67d67920","impliedFormat":1},{"version":"d723063c56101b34a7be5b28dbde80a3ae3dfd5e08fd49a3b569473337ead1f9","impliedFormat":1},{"version":"fab49059d6c2026bdb2e53e4e5cde1a39da44e61daff1867c8b3b10b507bfe17","impliedFormat":1},{"version":"5a551275f85bcc4003e543a1951a5b2f682cfba9b2922f65ae0df40ab71724a5","impliedFormat":1},{"version":"22d1a3163b9a961dbe78b0aedbd7bcbc071ce1f31efb76eb013b0aee230fef0e","impliedFormat":1},{"version":"c31695696ade4514cfcbb22799997b690d3dca7fb72beab68fb2e73b6ef450dd","affectsGlobalScope":true,"impliedFormat":1},{"version":"d99ad56d57f2c96daaf4475a8b64344b24dedafdb8f3c32d43552bcc72279a75","impliedFormat":1},{"version":"a101ef17aece908c1029a1bd3f97132794dcff21b4ca0b997d9a633f962c46aa","impliedFormat":1},{"version":"511575e18249b64b90d8f884fdb8a383c767d1a7efccd9d66a4e125a4dc5c462","impliedFormat":1},{"version":"6d8001f2c3b86c4f1de1d45ecb3f87f287ed7313d6999f8c8318cec4f50e6323","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e413bb587e01ba0cb1a87828cc9116669a4a71a61fe3a89b252f86f0c824bc2","affectsGlobalScope":true,"impliedFormat":1},{"version":"9c3d1222e6e3d8c35a4293d7a54d4142ebb8f7f70ec4111b8136df07fdc66169","impliedFormat":1},{"version":"70173c475c6e76ccebc37412b02b2e26f62bf45fc1534c3ebe6d7fa60fb88819","impliedFormat":1},{"version":"87ced739f77d80886ef2b923a7c52c363c549ad8799ae28eb8cc810892f511ad","impliedFormat":1},{"version":"863bc4e31de6c75423bb02da16190d582b0a69b8964b61d45920e5b2cb3832dd","impliedFormat":1},{"version":"849484324695b587f06abee7579641efe061b7338f9694ec410a76f477fe4df3","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"6e191fea1db6e9e4fa828259cf489e820ec9170effff57fb081a2f3295db4722","impliedFormat":1},{"version":"49e0da63a2398d2ae88467f60a69b07e594b7777e01120cd9ebcefa1932484cf","impliedFormat":1},{"version":"0435070b07e646b406b1c9b8b1b1878ea6917c32abc47e6435ec26d71212d513","impliedFormat":1},{"version":"f71188f97c9f7d309798ec02a56dd3bf50a4e4d079b3480f275ac13719953898","impliedFormat":1},{"version":"c4454589a0aa92c10d684c8c9584574bc404d1db556d72196cd31f8f7651af1a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b17790866e140a630fa8891d7105c728a1bd60f4e35822e4b345af166a4a728c","impliedFormat":1},{"version":"c50c75f4360f6fc06c4be29dafe28210e15c50cd6b04ad19c4808fa504efb51a","impliedFormat":1},{"version":"d4a1f5f7ee89b2afffd3c74282f8ee65b24266c92b7d40398c12a27054ed745c","impliedFormat":1},{"version":"900b5a9802192bc77eba35a5b87ce770df7b867a6d61772c554058c9ed635386","impliedFormat":1},{"version":"d291d3d16fa252f6d460687491ea2c5c23098c9dc0d3e106b2803fdc98f48f29","affectsGlobalScope":true,"impliedFormat":1},{"version":"f43fcf89d75f13d0908a77cd3fa32b9fd28c915deded9b2778b08f2e242d07a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b9a616dec7430044ae735250f8d6a7183f5a9fba63f813e3d29dcab819fd7058","impliedFormat":1},{"version":"aebf613f7831125038942eba891005fd25fa5cadcc3e3d13af4768dc7549161f","impliedFormat":1},{"version":"0faee6b555890a1cb106e2adc5d3ffd89545b1da894d474e9d436596d654998f","impliedFormat":1},{"version":"247e5c34784d185bc81442e8b1a371a36c4a5307a766a3725454c0a191b5cfad","impliedFormat":1},{"version":"1c382a6446d63340be549a616ff5142a91653cea45d6d137e25b929130a4f29a","impliedFormat":1},{"version":"9cf81848d806418e203efa6df299e0c5bfb5c137369337b0547117b2f0d44892","impliedFormat":1},{"version":"f0142b712ca22ad863476d9f3ae74e8b2766f3507a6fb5018882074f65ed0195","impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0def2c37cadfd7bf074fe9566cb83518f24d67193c79741b2d83ec290b945725","impliedFormat":1},{"version":"049e3511439f11e1285bec4647ab8aac53e0c06951b93ba507565dbde851ba31","impliedFormat":1},{"version":"f0745ab78e18a2befaf1d9951481973318722c4e2f33e859239f55fa999ff2b1","impliedFormat":1},{"version":"886e183dd0199e7de45d6308ac3e2185dac6f83283d1b8200ea62cf5c43966a1","impliedFormat":1},{"version":"392dd7b1117b588cba36c04909efd24b0458980506e8e8c1966114f8989058e2","impliedFormat":1},{"version":"ec9d55888e353f9b5cdda761308dffc7eeb6aa0b7b25d328c64d3776a1cf2a7e","impliedFormat":1},{"version":"1f8fedf144a967560be9e58fa32de75e4ca379c3549710d027a07be6a9414073","impliedFormat":1},{"version":"3ca7b2e8012b9a6be09fafd62f8f3937388b9e1600a59c98887d2b11f6d01b43","impliedFormat":1},{"version":"b138b3f30708386023a7dc9981bb867808e5ff3383429ac7f69b7bfd0dcc5bd5","impliedFormat":1},{"version":"a42c8992e2cf55a4a2d661fac251bc803fe119dad49327477d439268e42953d8","impliedFormat":1},{"version":"13ec544ab0a3a7ff96afac1016f55b264c812428e37d595dc33b688296435469","impliedFormat":1},{"version":"4962729121c2cb97a4481cdb06dfc720a79a3bc2fc9330ff2bcf604cfc541177","impliedFormat":1},{"version":"bc641da6705e45737a6c85bf6c7460e9298e5f5b1021abf035cb760d313cda1a","impliedFormat":1},{"version":"4284412700d89f927c8f5092a8e8c2a20a596349f2819148952b07f2cba9177a","impliedFormat":1},{"version":"4d08d58c94c1462506783c35009ddaeb70e54632310e384aa572ed7667333c8f","impliedFormat":1},{"version":"067f06a3d8abb66e4db6c22e34a076808b4c39418e45690f1abf37bcd4725f1c","impliedFormat":1},{"version":"05f6b2b3bef27dfc0e2464197510d08f275f2464363b441def7f309cbf42f51d","impliedFormat":1},{"version":"15055a0f3fe6c7e9d98bf9de36bdc9102ab324debbe2d4170ffe557115a199fc","impliedFormat":1},{"version":"33e11cee43184a95afe9a450f7dde6bd2b6a03fc9643f898268e8594c266554a","impliedFormat":1},{"version":"c13aaf7191fbccaf0f4e9e520c720b870c6339080eb1699439a392589fc85a96","impliedFormat":1},{"version":"41af0cbfe30738008b3765c30059580972362b70b8dcafd791908923e907c3a6","impliedFormat":1},{"version":"b5d49f459d2efc77cff4ab27d929aa67d0c9121bc20763d84942c7fca2cc7b8f","impliedFormat":1},{"version":"96c0c4b30165eaedb3ade3b4e9f491113a1816c448d67fff542b2793bf565b04","impliedFormat":1},{"version":"29a456c61c3d93e36f5eba4c0ed567d7896a9c08a38b537c3fc192a99d03b348","impliedFormat":1},{"version":"3b67dd4fbeec66a7d2acd2be4f65219d85abd04e6eb9cc96fd862ddf70e02eec","impliedFormat":1},{"version":"0a61f7b50171225629903175e062d3f43225e6eba24eb2e50f88ca05fb441aa6","impliedFormat":1},{"version":"818d9a0841c884447fbd61b934c6743aea1fa6f1c0159ef44ef55b8f02b9120f","impliedFormat":1},{"version":"b5f234cb0cb6ceb839fe2875ada30e62082707eaa7a36bfc4a4df9d287b901c7","impliedFormat":1},{"version":"facdb012edb0931c21556ace5bf7c0194c8389b1248fdbd94d09f793b311517c","impliedFormat":1},{"version":"98528506b6a07d49efdd7a65da416af50bfbfea67fbdca941ba55753e171a3db","impliedFormat":1},{"version":"8370c10834a51543556e92367c7c564723ae83b97199413a8eca6f5d70036cd5","impliedFormat":1},{"version":"8c1036c47d3e04eca9bd5fc5e0cdd219a78e4061a4bb4b55f4a4f0cbc621e66f","impliedFormat":1},{"version":"8db15e1da6050330d9e36bddd03131d5a02d56fac2e919fd8360892616357863","impliedFormat":1},{"version":"44874584b7c30882ea2cb1b9b0df0e198221afee1ee5cc4d04deb4c8a3c6345a","impliedFormat":1},{"version":"09839c769382d4763700d97d6e9ceae5c9ab3c34cf288229d9879b63c7206c60","impliedFormat":1},{"version":"c0c205fec8b10f3ad0e65af65dd20ea7cf633df0964c84305e375ccdc4f5557e","impliedFormat":1},{"version":"37c2423005b2ec6130903de29aec9fcf1680ab1b2336efa0ff828980e92da7e9","impliedFormat":1},{"version":"49cdd2b992fe2447994e995576addbc286913ddbebf928750074a6b1fcb24671","impliedFormat":1},{"version":"8479e373e70dedc75d9b1250a349e1efc4553af8a76bbd2ab4de7d9923fb6d1a","impliedFormat":1},{"version":"162e1ddfbe11f8052e38c8d6f69ea4df6fc12dab3902a79321ac0d5f88fe409e","impliedFormat":1},{"version":"d7a0eb5c9aff2237ec7b74a8d40e4221e5c0ef95019114e4a445eecf8f3d5946","impliedFormat":1},{"version":"6ec38a746ebcc6293af84cbf97f66b5a525a6d10424a0475e130ff8b6636a0a4","impliedFormat":1},{"version":"601d0bb63ace18781df556257caa4c3912ffefb599a59de91370b78d60c82969","impliedFormat":1},{"version":"bc9440b60655653ba1f5b94e02e831f1e935c652e2dc005836e7613c3a1d978d","impliedFormat":1},{"version":"2663a2923b6a66ae1729a9ad57db83a8b7578cdf1a545cd8a77ccc19b754038e","impliedFormat":1},{"version":"3062a3cccb480f7c798b8ca39128e368528f8b7f3fe3b72589bed8f5c7782d09","impliedFormat":1},{"version":"c983813ab0f99f37cf8b175a6761c2335df4cf1ed7515c7a19359797e9aa2639","impliedFormat":1},{"version":"7078d4a06f8f6944d23a57b0576bce9fe9eed5da1e02e89939cd5f534101a7d5","impliedFormat":1},{"version":"7dfd08c6f2628f5e2d4751d0a658bd12fa80e7c193f8845adda34eb46573457c","impliedFormat":1},{"version":"3f89dd0b5281bb1bcfe8207f88ecfa4d8de5388088f54cb012696f259d0f342c","impliedFormat":1},{"version":"46a2abc591dbc99debdb61cd1d25cfd80dd2fba1b9d341abb422a6e40e43449c","impliedFormat":1},{"version":"6a74f94c6f4282c5d0689e9b3edc08c6f744e7be8447e915c61aadd81339fe54","impliedFormat":1},{"version":"404d27a1f6dffc4dfbfeffcf483931faa4efd392a8b46c7e0ed9c1cb59f7ad15","impliedFormat":1},{"version":"ecb2d23ac823bf3c5d6735a973006fff1a0a1a5b5a5290f102426ffa00adda68","impliedFormat":1},{"version":"536044ec95d80b94b1fc6301205a0c8fe53887851d39a61d4d3c5564a6dd51eb","impliedFormat":1},{"version":"394ecd2838c8c55972676fe04b930bb32cd7aa0e8b7761b15527e71179bc2684","impliedFormat":1},{"version":"500ab366288ecf09ec637b0d984d41c6dd3ad8115c83da8ab9e004e3e63aa8bd","impliedFormat":1},{"version":"7429792de33c2c59148b2a26f29b26dda256a8d29e9f7b08d4aa5835f8b5e39f","impliedFormat":1},{"version":"d331cdb16cfded5638a2fcce3edb40452afbc3b486c5f0286af44a1aedb7a345","impliedFormat":1},{"version":"542178afcf014b2eab72333f205fc2ccc41217495bcc4cc1ed6e60ad9f1bd11b","impliedFormat":1},{"version":"d2e09ad5eb8111c3564ee743948b4e5915f5aee3d81c480d425eb5cee026fae6","impliedFormat":1},{"version":"ea3ea9ee8165da7b3432e4a4e94e9a0980d6aaf22bcd2d71204d407f106f2fa0","impliedFormat":1},{"version":"83567a9792c293d0f9d90feb9918e88b454ee8544e3d0ea06f9454477df010d1","impliedFormat":1},{"version":"eb314a7ab84c4f504444b53ec2b2d2557b0a06d79a7ce98e9bd2608cee5f946d","impliedFormat":1},{"version":"179f43f3b09b175b85e326ed59b1a2347b4d12fe7d67a4d88dee831f513119bd","impliedFormat":1},{"version":"b9e644c0e84188695a1d3d6d7d03740d7eaaf4bde5d6d25cbdb11df8347657d7","impliedFormat":1},{"version":"bd217bd008c0e8ec5332b6e905768fbadb3d925991dbf821307effd330e182d8","impliedFormat":1},{"version":"b355f2c3451ebc59d3b2fe47346f6a55da91dbcb9f2ad3b48b6bb5173fe77bb1","impliedFormat":1},{"version":"44263a5f285acc47f07cfa058edd282d7d06b026d85741b436372165337d6d2e","impliedFormat":1},{"version":"270314b700dfa1219abce94c5d46da873bfc958129426645ceff8cf559c2fec3","impliedFormat":1},{"version":"37ff500e6e9fe54a3a7e6f8533d4e65dfbb581625d0127836019ab6c86c64462","impliedFormat":1},{"version":"a9d6d153f6ca6ed0e992f3ecc9d684f16cbc0acaa33ab999aa826e80bb67365c","impliedFormat":1},{"version":"b19ef881994f1e0256e37589fadee9a93997400af999f33e2c3e638a6fcccb02","impliedFormat":1},{"version":"6b761b42779653f857ed9d9504f84a016cdfd16a95d044999a2b71331a18bcfd","impliedFormat":1},{"version":"67d37ef881a81aefe3a0f70f78e3835be950f2359487d3eb61b0a3bb9af172bc","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"d789022bf705385490fe89811bc7850225c207f37dd706ada2509eb1d8f31f12","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"e06388af85e67651e7bd2d13170e4dd9399ee93858cb1142fadfd99873535624","impliedFormat":1},{"version":"9a8bbbe55d20a047e89677cafc553879afb38d41a100ed7e6bb78e4b71203578","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"ba7789cb1790df485402b99531fb5f863194bcb76d64656bdec53a00bb200b0a","signature":"28fd02b23f22a42df03edc496d91b458cbb5c0b39a9933a40f136e465bf6dc1f"},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1}],"root":[187],"options":{"composite":true,"module":1,"outDir":"./","rootDir":"../src","sourceMap":true,"strict":true,"target":7,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[187,1],[188,2],[53,3],[54,3],[55,4],[51,5],[56,6],[57,7],[58,8],[49,9],[47,2],[48,2],[59,10],[60,11],[61,12],[62,13],[63,14],[64,15],[65,15],[66,16],[67,17],[68,18],[69,19],[70,20],[52,2],[50,2],[71,21],[72,22],[73,23],[103,24],[74,25],[75,26],[76,27],[77,28],[78,29],[79,30],[80,31],[81,32],[82,33],[83,34],[84,35],[85,36],[87,37],[86,38],[88,39],[89,40],[90,2],[91,41],[92,42],[93,43],[94,44],[95,45],[96,46],[97,47],[98,48],[99,49],[100,50],[101,51],[102,52],[213,53],[214,54],[189,55],[192,55],[211,53],[212,53],[202,53],[201,56],[199,53],[194,53],[207,53],[205,53],[209,53],[193,53],[206,53],[210,53],[195,53],[196,53],[208,53],[190,53],[197,53],[198,53],[200,53],[204,53],[215,57],[203,53],[191,53],[228,58],[227,2],[222,57],[224,59],[223,57],[216,57],[217,57],[219,57],[221,57],[225,59],[226,59],[218,59],[220,59],[46,2],[44,2],[45,2],[9,2],[8,2],[2,2],[10,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[3,2],[18,2],[19,2],[4,2],[20,2],[24,2],[21,2],[22,2],[23,2],[25,2],[26,2],[27,2],[5,2],[28,2],[29,2],[30,2],[31,2],[6,2],[35,2],[32,2],[33,2],[34,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[118,60],[110,61],[115,62],[108,2],[111,63],[109,64],[107,2],[117,65],[113,66],[106,2],[114,67],[112,68],[116,69],[180,70],[181,71],[105,2],[184,72],[174,73],[179,74],[166,73],[143,75],[148,73],[165,73],[155,73],[154,73],[172,73],[157,73],[151,73],[159,73],[169,73],[160,73],[170,73],[153,76],[178,73],[171,73],[167,73],[156,73],[164,73],[150,73],[149,73],[175,73],[152,73],[144,75],[145,77],[162,73],[168,73],[173,73],[146,73],[158,73],[147,73],[163,73],[176,73],[177,73],[161,73],[185,78],[186,79],[142,80],[141,81],[119,82],[129,83],[124,83],[123,84],[140,85],[126,83],[138,83],[133,84],[125,83],[120,83],[137,83],[136,83],[132,83],[134,86],[139,87],[128,84],[127,83],[130,83],[131,84],[121,83],[135,83],[122,84],[182,88],[183,89],[104,2]],"latestChangedDtsFile":"./extension.d.ts","version":"5.7.3"} \ No newline at end of file +{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/@types/vscode/index.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/dom-events.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/vscode-languageserver-types/lib/umd/main.d.ts","../../node_modules/vscode-jsonrpc/typings/thenable.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messages.d.ts","../../node_modules/vscode-jsonrpc/lib/common/linkedmap.d.ts","../../node_modules/vscode-jsonrpc/lib/common/disposable.d.ts","../../node_modules/vscode-jsonrpc/lib/common/events.d.ts","../../node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts","../../node_modules/vscode-jsonrpc/lib/common/encoding.d.ts","../../node_modules/vscode-jsonrpc/lib/common/ral.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagereader.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagewriter.d.ts","../../node_modules/vscode-jsonrpc/lib/common/connection.d.ts","../../node_modules/vscode-jsonrpc/lib/common/sharedarraycancellation.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagebuffer.d.ts","../../node_modules/vscode-jsonrpc/lib/common/api.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.typedefinition.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.workspacefolder.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.colorprovider.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.callhierarchy.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.semantictokens.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.showdocument.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.linkededitingrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.fileoperations.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.typehierarchy.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlinevalue.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayhint.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/api.d.ts","../../node_modules/vscode-languageclient/lib/common/codeconverter.d.ts","../../node_modules/vscode-languageclient/lib/common/protocolcompletionitem.d.ts","../../node_modules/vscode-languageclient/lib/common/protocolconverter.d.ts","../../node_modules/vscode-languageclient/lib/common/semantictokens.d.ts","../../node_modules/vscode-languageclient/lib/common/textsynchronization.d.ts","../../node_modules/vscode-languageclient/lib/common/codelens.d.ts","../../node_modules/vscode-languageclient/lib/common/inlinevalue.d.ts","../../node_modules/vscode-languageclient/lib/common/inlayhint.d.ts","../../node_modules/vscode-languageclient/lib/common/diagnostic.d.ts","../../node_modules/vscode-languageclient/lib/common/notebook.d.ts","../../node_modules/vscode-languageclient/lib/common/features.d.ts","../../node_modules/vscode-languageclient/lib/common/configuration.d.ts","../../node_modules/vscode-languageclient/lib/common/completion.d.ts","../../node_modules/vscode-languageclient/lib/common/hover.d.ts","../../node_modules/vscode-languageclient/lib/common/definition.d.ts","../../node_modules/vscode-languageclient/lib/common/signaturehelp.d.ts","../../node_modules/vscode-languageclient/lib/common/documenthighlight.d.ts","../../node_modules/vscode-languageclient/lib/common/documentsymbol.d.ts","../../node_modules/vscode-languageclient/lib/common/workspacesymbol.d.ts","../../node_modules/vscode-languageclient/lib/common/reference.d.ts","../../node_modules/vscode-languageclient/lib/common/typedefinition.d.ts","../../node_modules/vscode-languageclient/lib/common/implementation.d.ts","../../node_modules/vscode-languageclient/lib/common/colorprovider.d.ts","../../node_modules/vscode-languageclient/lib/common/codeaction.d.ts","../../node_modules/vscode-languageclient/lib/common/formatting.d.ts","../../node_modules/vscode-languageclient/lib/common/rename.d.ts","../../node_modules/vscode-languageclient/lib/common/documentlink.d.ts","../../node_modules/vscode-languageclient/lib/common/executecommand.d.ts","../../node_modules/vscode-languageclient/lib/common/foldingrange.d.ts","../../node_modules/vscode-languageclient/lib/common/declaration.d.ts","../../node_modules/vscode-languageclient/lib/common/selectionrange.d.ts","../../node_modules/vscode-languageclient/lib/common/callhierarchy.d.ts","../../node_modules/vscode-languageclient/lib/common/linkededitingrange.d.ts","../../node_modules/vscode-languageclient/lib/common/typehierarchy.d.ts","../../node_modules/vscode-languageclient/lib/common/workspacefolder.d.ts","../../node_modules/vscode-languageclient/lib/common/fileoperations.d.ts","../../node_modules/vscode-languageclient/lib/common/client.d.ts","../../node_modules/vscode-jsonrpc/lib/node/main.d.ts","../../node_modules/vscode-jsonrpc/node.d.ts","../../node_modules/vscode-languageserver-protocol/lib/node/main.d.ts","../../node_modules/vscode-languageserver-protocol/node.d.ts","../../node_modules/vscode-languageclient/lib/common/api.d.ts","../../node_modules/vscode-languageclient/lib/node/main.d.ts","../../node_modules/vscode-languageclient/node.d.ts","../src/extension.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/semver/classes/semver.d.ts","../../node_modules/@types/semver/functions/parse.d.ts","../../node_modules/@types/semver/functions/valid.d.ts","../../node_modules/@types/semver/functions/clean.d.ts","../../node_modules/@types/semver/functions/inc.d.ts","../../node_modules/@types/semver/functions/diff.d.ts","../../node_modules/@types/semver/functions/major.d.ts","../../node_modules/@types/semver/functions/minor.d.ts","../../node_modules/@types/semver/functions/patch.d.ts","../../node_modules/@types/semver/functions/prerelease.d.ts","../../node_modules/@types/semver/functions/compare.d.ts","../../node_modules/@types/semver/functions/rcompare.d.ts","../../node_modules/@types/semver/functions/compare-loose.d.ts","../../node_modules/@types/semver/functions/compare-build.d.ts","../../node_modules/@types/semver/functions/sort.d.ts","../../node_modules/@types/semver/functions/rsort.d.ts","../../node_modules/@types/semver/functions/gt.d.ts","../../node_modules/@types/semver/functions/lt.d.ts","../../node_modules/@types/semver/functions/eq.d.ts","../../node_modules/@types/semver/functions/neq.d.ts","../../node_modules/@types/semver/functions/gte.d.ts","../../node_modules/@types/semver/functions/lte.d.ts","../../node_modules/@types/semver/functions/cmp.d.ts","../../node_modules/@types/semver/functions/coerce.d.ts","../../node_modules/@types/semver/classes/comparator.d.ts","../../node_modules/@types/semver/classes/range.d.ts","../../node_modules/@types/semver/functions/satisfies.d.ts","../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../node_modules/@types/semver/ranges/min-version.d.ts","../../node_modules/@types/semver/ranges/valid.d.ts","../../node_modules/@types/semver/ranges/outside.d.ts","../../node_modules/@types/semver/ranges/gtr.d.ts","../../node_modules/@types/semver/ranges/ltr.d.ts","../../node_modules/@types/semver/ranges/intersects.d.ts","../../node_modules/@types/semver/ranges/simplify.d.ts","../../node_modules/@types/semver/ranges/subset.d.ts","../../node_modules/@types/semver/internals/identifiers.d.ts","../../node_modules/@types/semver/index.d.ts"],"fileIdsList":[[46,51,56,78,186],[51,56],[51,53,56],[51,55,56],[56],[51,56,61,88],[51,56,57,68,69,76,85,96],[51,56,57,58,68,76],[47,48,51,56],[51,56,59,97],[51,56,60,61,69,77],[51,56,61,85,93],[51,56,62,64,68,76],[51,56,63],[51,56,64,65],[51,56,68],[51,56,67,68],[51,55,56,68],[51,56,68,69,70,85,96],[51,56,68,69,70,85],[51,56,68,71,76,85,96],[51,56,68,69,71,72,76,85,93,96],[51,56,71,73,85,93,96],[49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102],[51,56,68,74],[51,56,75,96,101],[51,56,64,68,76,85],[51,56,77],[51,56,78],[51,55,56,79],[51,56,80,95,101],[51,56,81],[51,56,82],[51,56,68,83],[51,56,83,84,97,99],[51,56,68,85,86,87],[51,56,85,87],[51,56,85,86],[51,56,88],[51,56,89],[51,56,68,91,92],[51,56,91,92],[51,56,61,76,85,93],[51,56,94],[51,56,76,95],[51,56,71,82,96],[51,56,61,97],[51,56,85,98],[51,56,99],[51,56,100],[51,56,61,68,70,79,85,96,99,101],[51,56,85,102],[51,56,189,228],[51,56,189,213,228],[51,56,228],[51,56,189],[51,56,189,214,228],[51,56,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227],[51,56,214,228],[51,56,105,106,107,108,109,110,111,112,113,114,115,116,117],[51,56,108,109],[51,56,106,108,109,110,113,114],[51,56,106,112],[51,56,108],[51,56,112],[51,56,106,109,111,112,118],[51,56,106,109,111,112],[51,56,108,111],[51,56,106,110,115],[51,56,57,76,101,103,118],[51,56,180],[51,56,142,143,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,177,178,179],[46,51,56,142,153],[46,51,56,142,143,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178],[46,51,56,142],[46,51,56,142,143,145,146,147,148,149,150,151,152],[46,51,56,142,144],[46,51,56,57,103,179,183,184],[51,56,185],[51,56,104,118,119,140,141],[51,56,118,119],[51,56,118],[51,56,104,118,119,140],[51,56,104,118,119],[51,56,104,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[51,56,119,140],[51,56,104,119,140],[51,56,103,142,181],[51,56,182]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b3098756b32d6029cd9889b087a32e890298bd7953d05b72b02f6a3ad4f318a","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e864ea827318e5f490863a8cd412744d9ddb175acf488dd02a941703dad1e38","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"23301069cfa7a4c6dd68915eeccc7a2ae0bd3018ff4a6288dd9e0c8b4238fab6","affectsGlobalScope":true,"impliedFormat":1},{"version":"df01885cc27c14632a8c38bdeb053295e69209107bb6c53988b78db5f450cb3c","affectsGlobalScope":true,"impliedFormat":1},{"version":"38379fa748cc5d259c96da356a849bd290a159ae218e06ec1daa166850e4bf50","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"f51b4042a3ac86f1f707500a9768f88d0b0c1fc3f3e45a73333283dea720cdc6","impliedFormat":1},{"version":"a29bc8aa8cc100d0c09370c03508f1245853efe017bb98699d4c690868371fc7","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f95830ca11e2c7e82235b73dc149e68a0632b41e671724d12adc83a6750746d","impliedFormat":1},{"version":"7aa011cda7cf0b9e87c85d128b2eeac9930bda215b0fee265d8bf2cec039fb5f","impliedFormat":1},{"version":"92ec1aeca4e94bdab04083daa6039f807c0fce8f09bc42e8b24bf49fa5cdbbff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"8463ab6a156dc96200b3d8b8a52dc8d878f13a6b7404439aa2f911d568132808","impliedFormat":1},{"version":"5289750c112b5dd0e29dfa9089ddbf5d3ed1b544d99731093881e6967f5af4d1","impliedFormat":1},{"version":"7693b90b3075deaccafd5efb467bf9f2b747a3075be888652ef73e64396d8628","impliedFormat":1},{"version":"bd01a987f0fcf2344a405e542ee681e420651eaff1222a5a6e0c02fda52343bc","impliedFormat":1},{"version":"693e50962e90a3548f41bff2c22676e3964212a836022d82e49eca0b20320a38","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"300b0c12998391154d7b9115a85554e91632a3d3e1b66038e98f2b9cb3c1061d","impliedFormat":1},{"version":"222e742815b14d54db034788a7bee2d51197a2588c35b1fbefe04add6393021c","affectsGlobalScope":true,"impliedFormat":1},{"version":"93891e576a698609695e5b8117bb128336e4b7b28772e7d7e38e8075790eb42f","impliedFormat":1},{"version":"69d90a2f13511eeaae271905c8615a93e20335530d1062a93cb04e754e5f04ad","impliedFormat":1},{"version":"d723063c56101b34a7be5b28dbde80a3ae3dfd5e08fd49a3b569473337ead1f9","impliedFormat":1},{"version":"fab49059d6c2026bdb2e53e4e5cde1a39da44e61daff1867c8b3b10b507bfe17","impliedFormat":1},{"version":"5a551275f85bcc4003e543a1951a5b2f682cfba9b2922f65ae0df40ab71724a5","impliedFormat":1},{"version":"22d1a3163b9a961dbe78b0aedbd7bcbc071ce1f31efb76eb013b0aee230fef0e","impliedFormat":1},{"version":"c31695696ade4514cfcbb22799997b690d3dca7fb72beab68fb2e73b6ef450dd","affectsGlobalScope":true,"impliedFormat":1},{"version":"d99ad56d57f2c96daaf4475a8b64344b24dedafdb8f3c32d43552bcc72279a75","impliedFormat":1},{"version":"a101ef17aece908c1029a1bd3f97132794dcff21b4ca0b997d9a633f962c46aa","impliedFormat":1},{"version":"511575e18249b64b90d8f884fdb8a383c767d1a7efccd9d66a4e125a4dc5c462","impliedFormat":1},{"version":"6d8001f2c3b86c4f1de1d45ecb3f87f287ed7313d6999f8c8318cec4f50e6323","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e413bb587e01ba0cb1a87828cc9116669a4a71a61fe3a89b252f86f0c824bc2","affectsGlobalScope":true,"impliedFormat":1},{"version":"9c3d1222e6e3d8c35a4293d7a54d4142ebb8f7f70ec4111b8136df07fdc66169","impliedFormat":1},{"version":"70173c475c6e76ccebc37412b02b2e26f62bf45fc1534c3ebe6d7fa60fb88819","impliedFormat":1},{"version":"87ced739f77d80886ef2b923a7c52c363c549ad8799ae28eb8cc810892f511ad","impliedFormat":1},{"version":"863bc4e31de6c75423bb02da16190d582b0a69b8964b61d45920e5b2cb3832dd","impliedFormat":1},{"version":"849484324695b587f06abee7579641efe061b7338f9694ec410a76f477fe4df3","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"6e191fea1db6e9e4fa828259cf489e820ec9170effff57fb081a2f3295db4722","impliedFormat":1},{"version":"49e0da63a2398d2ae88467f60a69b07e594b7777e01120cd9ebcefa1932484cf","impliedFormat":1},{"version":"0435070b07e646b406b1c9b8b1b1878ea6917c32abc47e6435ec26d71212d513","impliedFormat":1},{"version":"f71188f97c9f7d309798ec02a56dd3bf50a4e4d079b3480f275ac13719953898","impliedFormat":1},{"version":"c4454589a0aa92c10d684c8c9584574bc404d1db556d72196cd31f8f7651af1a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b17790866e140a630fa8891d7105c728a1bd60f4e35822e4b345af166a4a728c","impliedFormat":1},{"version":"c50c75f4360f6fc06c4be29dafe28210e15c50cd6b04ad19c4808fa504efb51a","impliedFormat":1},{"version":"d4a1f5f7ee89b2afffd3c74282f8ee65b24266c92b7d40398c12a27054ed745c","impliedFormat":1},{"version":"900b5a9802192bc77eba35a5b87ce770df7b867a6d61772c554058c9ed635386","impliedFormat":1},{"version":"d291d3d16fa252f6d460687491ea2c5c23098c9dc0d3e106b2803fdc98f48f29","affectsGlobalScope":true,"impliedFormat":1},{"version":"f43fcf89d75f13d0908a77cd3fa32b9fd28c915deded9b2778b08f2e242d07a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b9a616dec7430044ae735250f8d6a7183f5a9fba63f813e3d29dcab819fd7058","impliedFormat":1},{"version":"aebf613f7831125038942eba891005fd25fa5cadcc3e3d13af4768dc7549161f","impliedFormat":1},{"version":"0faee6b555890a1cb106e2adc5d3ffd89545b1da894d474e9d436596d654998f","impliedFormat":1},{"version":"247e5c34784d185bc81442e8b1a371a36c4a5307a766a3725454c0a191b5cfad","impliedFormat":1},{"version":"1c382a6446d63340be549a616ff5142a91653cea45d6d137e25b929130a4f29a","impliedFormat":1},{"version":"9cf81848d806418e203efa6df299e0c5bfb5c137369337b0547117b2f0d44892","impliedFormat":1},{"version":"f0142b712ca22ad863476d9f3ae74e8b2766f3507a6fb5018882074f65ed0195","impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0def2c37cadfd7bf074fe9566cb83518f24d67193c79741b2d83ec290b945725","impliedFormat":1},{"version":"049e3511439f11e1285bec4647ab8aac53e0c06951b93ba507565dbde851ba31","impliedFormat":1},{"version":"f0745ab78e18a2befaf1d9951481973318722c4e2f33e859239f55fa999ff2b1","impliedFormat":1},{"version":"886e183dd0199e7de45d6308ac3e2185dac6f83283d1b8200ea62cf5c43966a1","impliedFormat":1},{"version":"392dd7b1117b588cba36c04909efd24b0458980506e8e8c1966114f8989058e2","impliedFormat":1},{"version":"ec9d55888e353f9b5cdda761308dffc7eeb6aa0b7b25d328c64d3776a1cf2a7e","impliedFormat":1},{"version":"1f8fedf144a967560be9e58fa32de75e4ca379c3549710d027a07be6a9414073","impliedFormat":1},{"version":"3ca7b2e8012b9a6be09fafd62f8f3937388b9e1600a59c98887d2b11f6d01b43","impliedFormat":1},{"version":"b138b3f30708386023a7dc9981bb867808e5ff3383429ac7f69b7bfd0dcc5bd5","impliedFormat":1},{"version":"a42c8992e2cf55a4a2d661fac251bc803fe119dad49327477d439268e42953d8","impliedFormat":1},{"version":"13ec544ab0a3a7ff96afac1016f55b264c812428e37d595dc33b688296435469","impliedFormat":1},{"version":"4962729121c2cb97a4481cdb06dfc720a79a3bc2fc9330ff2bcf604cfc541177","impliedFormat":1},{"version":"bc641da6705e45737a6c85bf6c7460e9298e5f5b1021abf035cb760d313cda1a","impliedFormat":1},{"version":"4284412700d89f927c8f5092a8e8c2a20a596349f2819148952b07f2cba9177a","impliedFormat":1},{"version":"4d08d58c94c1462506783c35009ddaeb70e54632310e384aa572ed7667333c8f","impliedFormat":1},{"version":"067f06a3d8abb66e4db6c22e34a076808b4c39418e45690f1abf37bcd4725f1c","impliedFormat":1},{"version":"05f6b2b3bef27dfc0e2464197510d08f275f2464363b441def7f309cbf42f51d","impliedFormat":1},{"version":"15055a0f3fe6c7e9d98bf9de36bdc9102ab324debbe2d4170ffe557115a199fc","impliedFormat":1},{"version":"33e11cee43184a95afe9a450f7dde6bd2b6a03fc9643f898268e8594c266554a","impliedFormat":1},{"version":"c13aaf7191fbccaf0f4e9e520c720b870c6339080eb1699439a392589fc85a96","impliedFormat":1},{"version":"41af0cbfe30738008b3765c30059580972362b70b8dcafd791908923e907c3a6","impliedFormat":1},{"version":"b5d49f459d2efc77cff4ab27d929aa67d0c9121bc20763d84942c7fca2cc7b8f","impliedFormat":1},{"version":"96c0c4b30165eaedb3ade3b4e9f491113a1816c448d67fff542b2793bf565b04","impliedFormat":1},{"version":"29a456c61c3d93e36f5eba4c0ed567d7896a9c08a38b537c3fc192a99d03b348","impliedFormat":1},{"version":"3b67dd4fbeec66a7d2acd2be4f65219d85abd04e6eb9cc96fd862ddf70e02eec","impliedFormat":1},{"version":"0a61f7b50171225629903175e062d3f43225e6eba24eb2e50f88ca05fb441aa6","impliedFormat":1},{"version":"818d9a0841c884447fbd61b934c6743aea1fa6f1c0159ef44ef55b8f02b9120f","impliedFormat":1},{"version":"b5f234cb0cb6ceb839fe2875ada30e62082707eaa7a36bfc4a4df9d287b901c7","impliedFormat":1},{"version":"facdb012edb0931c21556ace5bf7c0194c8389b1248fdbd94d09f793b311517c","impliedFormat":1},{"version":"98528506b6a07d49efdd7a65da416af50bfbfea67fbdca941ba55753e171a3db","impliedFormat":1},{"version":"8370c10834a51543556e92367c7c564723ae83b97199413a8eca6f5d70036cd5","impliedFormat":1},{"version":"8c1036c47d3e04eca9bd5fc5e0cdd219a78e4061a4bb4b55f4a4f0cbc621e66f","impliedFormat":1},{"version":"8db15e1da6050330d9e36bddd03131d5a02d56fac2e919fd8360892616357863","impliedFormat":1},{"version":"44874584b7c30882ea2cb1b9b0df0e198221afee1ee5cc4d04deb4c8a3c6345a","impliedFormat":1},{"version":"09839c769382d4763700d97d6e9ceae5c9ab3c34cf288229d9879b63c7206c60","impliedFormat":1},{"version":"c0c205fec8b10f3ad0e65af65dd20ea7cf633df0964c84305e375ccdc4f5557e","impliedFormat":1},{"version":"37c2423005b2ec6130903de29aec9fcf1680ab1b2336efa0ff828980e92da7e9","impliedFormat":1},{"version":"49cdd2b992fe2447994e995576addbc286913ddbebf928750074a6b1fcb24671","impliedFormat":1},{"version":"8479e373e70dedc75d9b1250a349e1efc4553af8a76bbd2ab4de7d9923fb6d1a","impliedFormat":1},{"version":"162e1ddfbe11f8052e38c8d6f69ea4df6fc12dab3902a79321ac0d5f88fe409e","impliedFormat":1},{"version":"d7a0eb5c9aff2237ec7b74a8d40e4221e5c0ef95019114e4a445eecf8f3d5946","impliedFormat":1},{"version":"6ec38a746ebcc6293af84cbf97f66b5a525a6d10424a0475e130ff8b6636a0a4","impliedFormat":1},{"version":"601d0bb63ace18781df556257caa4c3912ffefb599a59de91370b78d60c82969","impliedFormat":1},{"version":"bc9440b60655653ba1f5b94e02e831f1e935c652e2dc005836e7613c3a1d978d","impliedFormat":1},{"version":"2663a2923b6a66ae1729a9ad57db83a8b7578cdf1a545cd8a77ccc19b754038e","impliedFormat":1},{"version":"3062a3cccb480f7c798b8ca39128e368528f8b7f3fe3b72589bed8f5c7782d09","impliedFormat":1},{"version":"c983813ab0f99f37cf8b175a6761c2335df4cf1ed7515c7a19359797e9aa2639","impliedFormat":1},{"version":"7078d4a06f8f6944d23a57b0576bce9fe9eed5da1e02e89939cd5f534101a7d5","impliedFormat":1},{"version":"7dfd08c6f2628f5e2d4751d0a658bd12fa80e7c193f8845adda34eb46573457c","impliedFormat":1},{"version":"3f89dd0b5281bb1bcfe8207f88ecfa4d8de5388088f54cb012696f259d0f342c","impliedFormat":1},{"version":"46a2abc591dbc99debdb61cd1d25cfd80dd2fba1b9d341abb422a6e40e43449c","impliedFormat":1},{"version":"6a74f94c6f4282c5d0689e9b3edc08c6f744e7be8447e915c61aadd81339fe54","impliedFormat":1},{"version":"404d27a1f6dffc4dfbfeffcf483931faa4efd392a8b46c7e0ed9c1cb59f7ad15","impliedFormat":1},{"version":"ecb2d23ac823bf3c5d6735a973006fff1a0a1a5b5a5290f102426ffa00adda68","impliedFormat":1},{"version":"536044ec95d80b94b1fc6301205a0c8fe53887851d39a61d4d3c5564a6dd51eb","impliedFormat":1},{"version":"394ecd2838c8c55972676fe04b930bb32cd7aa0e8b7761b15527e71179bc2684","impliedFormat":1},{"version":"500ab366288ecf09ec637b0d984d41c6dd3ad8115c83da8ab9e004e3e63aa8bd","impliedFormat":1},{"version":"7429792de33c2c59148b2a26f29b26dda256a8d29e9f7b08d4aa5835f8b5e39f","impliedFormat":1},{"version":"d331cdb16cfded5638a2fcce3edb40452afbc3b486c5f0286af44a1aedb7a345","impliedFormat":1},{"version":"542178afcf014b2eab72333f205fc2ccc41217495bcc4cc1ed6e60ad9f1bd11b","impliedFormat":1},{"version":"d2e09ad5eb8111c3564ee743948b4e5915f5aee3d81c480d425eb5cee026fae6","impliedFormat":1},{"version":"ea3ea9ee8165da7b3432e4a4e94e9a0980d6aaf22bcd2d71204d407f106f2fa0","impliedFormat":1},{"version":"83567a9792c293d0f9d90feb9918e88b454ee8544e3d0ea06f9454477df010d1","impliedFormat":1},{"version":"eb314a7ab84c4f504444b53ec2b2d2557b0a06d79a7ce98e9bd2608cee5f946d","impliedFormat":1},{"version":"179f43f3b09b175b85e326ed59b1a2347b4d12fe7d67a4d88dee831f513119bd","impliedFormat":1},{"version":"b9e644c0e84188695a1d3d6d7d03740d7eaaf4bde5d6d25cbdb11df8347657d7","impliedFormat":1},{"version":"bd217bd008c0e8ec5332b6e905768fbadb3d925991dbf821307effd330e182d8","impliedFormat":1},{"version":"b355f2c3451ebc59d3b2fe47346f6a55da91dbcb9f2ad3b48b6bb5173fe77bb1","impliedFormat":1},{"version":"44263a5f285acc47f07cfa058edd282d7d06b026d85741b436372165337d6d2e","impliedFormat":1},{"version":"270314b700dfa1219abce94c5d46da873bfc958129426645ceff8cf559c2fec3","impliedFormat":1},{"version":"37ff500e6e9fe54a3a7e6f8533d4e65dfbb581625d0127836019ab6c86c64462","impliedFormat":1},{"version":"a9d6d153f6ca6ed0e992f3ecc9d684f16cbc0acaa33ab999aa826e80bb67365c","impliedFormat":1},{"version":"b19ef881994f1e0256e37589fadee9a93997400af999f33e2c3e638a6fcccb02","impliedFormat":1},{"version":"6b761b42779653f857ed9d9504f84a016cdfd16a95d044999a2b71331a18bcfd","impliedFormat":1},{"version":"67d37ef881a81aefe3a0f70f78e3835be950f2359487d3eb61b0a3bb9af172bc","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"d789022bf705385490fe89811bc7850225c207f37dd706ada2509eb1d8f31f12","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"e06388af85e67651e7bd2d13170e4dd9399ee93858cb1142fadfd99873535624","impliedFormat":1},{"version":"9a8bbbe55d20a047e89677cafc553879afb38d41a100ed7e6bb78e4b71203578","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"997c8a1255d042705607c66044922fcb4cc735b14f56c8915eb099d20da12ba5","signature":"28fd02b23f22a42df03edc496d91b458cbb5c0b39a9933a40f136e465bf6dc1f"},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"844ab83672160ca57a2a2ea46da4c64200d8c18d4ebb2087819649cad099ff0e","impliedFormat":1}],"root":[187],"options":{"composite":true,"module":1,"outDir":"./","rootDir":"../src","sourceMap":true,"strict":true,"target":7,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[187,1],[188,2],[53,3],[54,3],[55,4],[51,5],[56,6],[57,7],[58,8],[49,9],[47,2],[48,2],[59,10],[60,11],[61,12],[62,13],[63,14],[64,15],[65,15],[66,16],[67,17],[68,18],[69,19],[70,20],[52,2],[50,2],[71,21],[72,22],[73,23],[103,24],[74,25],[75,26],[76,27],[77,28],[78,29],[79,30],[80,31],[81,32],[82,33],[83,34],[84,35],[85,36],[87,37],[86,38],[88,39],[89,40],[90,2],[91,41],[92,42],[93,43],[94,44],[95,45],[96,46],[97,47],[98,48],[99,49],[100,50],[101,51],[102,52],[213,53],[214,54],[189,55],[192,55],[211,53],[212,53],[202,53],[201,56],[199,53],[194,53],[207,53],[205,53],[209,53],[193,53],[206,53],[210,53],[195,53],[196,53],[208,53],[190,53],[197,53],[198,53],[200,53],[204,53],[215,57],[203,53],[191,53],[228,58],[227,2],[222,57],[224,59],[223,57],[216,57],[217,57],[219,57],[221,57],[225,59],[226,59],[218,59],[220,59],[46,2],[44,2],[45,2],[9,2],[8,2],[2,2],[10,2],[11,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[3,2],[18,2],[19,2],[4,2],[20,2],[24,2],[21,2],[22,2],[23,2],[25,2],[26,2],[27,2],[5,2],[28,2],[29,2],[30,2],[31,2],[6,2],[35,2],[32,2],[33,2],[34,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[1,2],[118,60],[110,61],[115,62],[108,2],[111,63],[109,64],[107,2],[117,65],[113,66],[106,2],[114,67],[112,68],[116,69],[180,70],[181,71],[105,2],[184,72],[174,73],[179,74],[166,73],[143,75],[148,73],[165,73],[155,73],[154,73],[172,73],[157,73],[151,73],[159,73],[169,73],[160,73],[170,73],[153,76],[178,73],[171,73],[167,73],[156,73],[164,73],[150,73],[149,73],[175,73],[152,73],[144,75],[145,77],[162,73],[168,73],[173,73],[146,73],[158,73],[147,73],[163,73],[176,73],[177,73],[161,73],[185,78],[186,79],[142,80],[141,81],[119,82],[129,83],[124,83],[123,84],[140,85],[126,83],[138,83],[133,84],[125,83],[120,83],[137,83],[136,83],[132,83],[134,86],[139,87],[128,84],[127,83],[130,83],[131,84],[121,83],[135,83],[122,84],[182,88],[183,89],[104,2]],"latestChangedDtsFile":"./extension.d.ts","version":"5.8.2"} \ No newline at end of file diff --git a/extension/out/tsconfig.tsbuildinfo b/extension/out/tsconfig.tsbuildinfo index b05e939..bbaae2f 100644 --- a/extension/out/tsconfig.tsbuildinfo +++ b/extension/out/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["../client/src/extension.ts","../server/src/server.ts"],"version":"5.7.3"} \ No newline at end of file +{"root":["../client/src/extension.ts","../server/src/server.ts"],"version":"5.8.2"} \ No newline at end of file diff --git a/extension/server/out/.tsbuildinfo b/extension/server/out/.tsbuildinfo index 11c62bb..ed7fa28 100644 --- a/extension/server/out/.tsbuildinfo +++ b/extension/server/out/.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/vscode-languageserver/typings/thenable.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/dom-events.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/vscode-languageserver-types/lib/umd/main.d.ts","../../node_modules/vscode-jsonrpc/typings/thenable.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messages.d.ts","../../node_modules/vscode-jsonrpc/lib/common/linkedmap.d.ts","../../node_modules/vscode-jsonrpc/lib/common/disposable.d.ts","../../node_modules/vscode-jsonrpc/lib/common/events.d.ts","../../node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts","../../node_modules/vscode-jsonrpc/lib/common/encoding.d.ts","../../node_modules/vscode-jsonrpc/lib/common/ral.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagereader.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagewriter.d.ts","../../node_modules/vscode-jsonrpc/lib/common/connection.d.ts","../../node_modules/vscode-jsonrpc/lib/common/sharedarraycancellation.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagebuffer.d.ts","../../node_modules/vscode-jsonrpc/lib/common/api.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.typedefinition.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.workspacefolder.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.colorprovider.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.callhierarchy.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.semantictokens.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.showdocument.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.linkededitingrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.fileoperations.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.typehierarchy.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlinevalue.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayhint.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/api.d.ts","../../node_modules/vscode-languageserver/lib/common/progress.d.ts","../../node_modules/vscode-languageserver/lib/common/configuration.d.ts","../../node_modules/vscode-languageserver/lib/common/workspacefolder.d.ts","../../node_modules/vscode-languageserver/lib/common/callhierarchy.d.ts","../../node_modules/vscode-languageserver/lib/common/semantictokens.d.ts","../../node_modules/vscode-languageserver/lib/common/showdocument.d.ts","../../node_modules/vscode-languageserver/lib/common/fileoperations.d.ts","../../node_modules/vscode-languageserver/lib/common/linkededitingrange.d.ts","../../node_modules/vscode-languageserver/lib/common/typehierarchy.d.ts","../../node_modules/vscode-languageserver/lib/common/inlinevalue.d.ts","../../node_modules/vscode-languageserver/lib/common/inlayhint.d.ts","../../node_modules/vscode-languageserver/lib/common/diagnostic.d.ts","../../node_modules/vscode-languageserver/lib/common/textdocuments.d.ts","../../node_modules/vscode-languageserver/lib/common/notebook.d.ts","../../node_modules/vscode-languageserver/lib/common/moniker.d.ts","../../node_modules/vscode-languageserver/lib/common/server.d.ts","../../node_modules/vscode-languageserver/lib/node/files.d.ts","../../node_modules/vscode-jsonrpc/lib/node/main.d.ts","../../node_modules/vscode-jsonrpc/node.d.ts","../../node_modules/vscode-languageserver-protocol/lib/node/main.d.ts","../../node_modules/vscode-languageserver-protocol/node.d.ts","../../node_modules/vscode-languageserver/lib/common/api.d.ts","../../node_modules/vscode-languageserver/lib/node/main.d.ts","../../node_modules/vscode-languageserver/node.d.ts","../../node_modules/vscode-languageserver-textdocument/lib/umd/main.d.ts","../src/server.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/semver/classes/semver.d.ts","../../node_modules/@types/semver/functions/parse.d.ts","../../node_modules/@types/semver/functions/valid.d.ts","../../node_modules/@types/semver/functions/clean.d.ts","../../node_modules/@types/semver/functions/inc.d.ts","../../node_modules/@types/semver/functions/diff.d.ts","../../node_modules/@types/semver/functions/major.d.ts","../../node_modules/@types/semver/functions/minor.d.ts","../../node_modules/@types/semver/functions/patch.d.ts","../../node_modules/@types/semver/functions/prerelease.d.ts","../../node_modules/@types/semver/functions/compare.d.ts","../../node_modules/@types/semver/functions/rcompare.d.ts","../../node_modules/@types/semver/functions/compare-loose.d.ts","../../node_modules/@types/semver/functions/compare-build.d.ts","../../node_modules/@types/semver/functions/sort.d.ts","../../node_modules/@types/semver/functions/rsort.d.ts","../../node_modules/@types/semver/functions/gt.d.ts","../../node_modules/@types/semver/functions/lt.d.ts","../../node_modules/@types/semver/functions/eq.d.ts","../../node_modules/@types/semver/functions/neq.d.ts","../../node_modules/@types/semver/functions/gte.d.ts","../../node_modules/@types/semver/functions/lte.d.ts","../../node_modules/@types/semver/functions/cmp.d.ts","../../node_modules/@types/semver/functions/coerce.d.ts","../../node_modules/@types/semver/classes/comparator.d.ts","../../node_modules/@types/semver/classes/range.d.ts","../../node_modules/@types/semver/functions/satisfies.d.ts","../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../node_modules/@types/semver/ranges/min-version.d.ts","../../node_modules/@types/semver/ranges/valid.d.ts","../../node_modules/@types/semver/ranges/outside.d.ts","../../node_modules/@types/semver/ranges/gtr.d.ts","../../node_modules/@types/semver/ranges/ltr.d.ts","../../node_modules/@types/semver/ranges/intersects.d.ts","../../node_modules/@types/semver/ranges/simplify.d.ts","../../node_modules/@types/semver/ranges/subset.d.ts","../../node_modules/@types/semver/internals/identifiers.d.ts","../../node_modules/@types/semver/index.d.ts","../../node_modules/@types/vscode/index.d.ts"],"fileIdsList":[[51,56],[51,53,56],[51,55,56],[56],[51,56,61,88],[51,56,57,68,69,76,85,96],[51,56,57,58,68,76],[47,48,51,56],[51,56,59,97],[51,56,60,61,69,77],[51,56,61,85,93],[51,56,62,64,68,76],[51,56,63],[51,56,64,65],[51,56,68],[51,56,67,68],[51,55,56,68],[51,56,68,69,70,85,96],[51,56,68,69,70,85],[51,56,68,71,76,85,96],[51,56,68,69,71,72,76,85,93,96],[51,56,71,73,85,93,96],[49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102],[51,56,68,74],[51,56,75,96,101],[51,56,64,68,76,85],[51,56,77],[51,56,78],[51,55,56,79],[51,56,80,95,101],[51,56,81],[51,56,82],[51,56,68,83],[51,56,83,84,97,99],[51,56,68,85,86,87],[51,56,85,87],[51,56,85,86],[51,56,88],[51,56,89],[51,56,68,91,92],[51,56,91,92],[51,56,61,76,85,93],[51,56,94],[51,56,76,95],[51,56,71,82,96],[51,56,61,97],[51,56,85,98],[51,56,99],[51,56,100],[51,56,61,68,70,79,85,96,99,101],[51,56,85,102],[51,56,170,209],[51,56,170,194,209],[51,56,209],[51,56,170],[51,56,170,195,209],[51,56,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208],[51,56,195,209],[51,56,105,106,107,108,109,110,111,112,113,114,115,116,117],[51,56,108,109],[51,56,106,108,109,110,113,114],[51,56,106,112],[51,56,108],[51,56,112],[51,56,106,109,111,112,118],[51,56,106,109,111,112],[51,56,108,111],[51,56,106,110,115],[51,56,57,76,101,103,118],[51,56,160],[51,56,104,118,119,140,141],[51,56,118,119],[51,56,118],[51,56,104,118,119,140],[51,56,104,118,119],[51,56,104,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[51,56,119,140],[51,56,104,119,140],[51,56,103,142,161],[51,56,162],[51,56,142,143,147,155,156,158],[51,56,142,158],[51,56,142,155,158],[51,56,142,143,144,145,146,147,148,149,150,151,152,153,154,156,157],[51,56,142],[46,51,56,103,158,159,163,164],[51,56,165],[51,56,166,167]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e864ea827318e5f490863a8cd412744d9ddb175acf488dd02a941703dad1e38","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"23301069cfa7a4c6dd68915eeccc7a2ae0bd3018ff4a6288dd9e0c8b4238fab6","affectsGlobalScope":true,"impliedFormat":1},{"version":"df01885cc27c14632a8c38bdeb053295e69209107bb6c53988b78db5f450cb3c","affectsGlobalScope":true,"impliedFormat":1},{"version":"38379fa748cc5d259c96da356a849bd290a159ae218e06ec1daa166850e4bf50","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"f51b4042a3ac86f1f707500a9768f88d0b0c1fc3f3e45a73333283dea720cdc6","impliedFormat":1},{"version":"a29bc8aa8cc100d0c09370c03508f1245853efe017bb98699d4c690868371fc7","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f95830ca11e2c7e82235b73dc149e68a0632b41e671724d12adc83a6750746d","impliedFormat":1},{"version":"7aa011cda7cf0b9e87c85d128b2eeac9930bda215b0fee265d8bf2cec039fb5f","impliedFormat":1},{"version":"92ec1aeca4e94bdab04083daa6039f807c0fce8f09bc42e8b24bf49fa5cdbbff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"8463ab6a156dc96200b3d8b8a52dc8d878f13a6b7404439aa2f911d568132808","impliedFormat":1},{"version":"6c39d4dbdb372b364442854e42d8c473e2ec67badb226745af17ed5ac41ce6f5","impliedFormat":1},{"version":"7693b90b3075deaccafd5efb467bf9f2b747a3075be888652ef73e64396d8628","impliedFormat":1},{"version":"bd01a987f0fcf2344a405e542ee681e420651eaff1222a5a6e0c02fda52343bc","impliedFormat":1},{"version":"693e50962e90a3548f41bff2c22676e3964212a836022d82e49eca0b20320a38","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"300b0c12998391154d7b9115a85554e91632a3d3e1b66038e98f2b9cb3c1061d","impliedFormat":1},{"version":"222e742815b14d54db034788a7bee2d51197a2588c35b1fbefe04add6393021c","affectsGlobalScope":true,"impliedFormat":1},{"version":"93891e576a698609695e5b8117bb128336e4b7b28772e7d7e38e8075790eb42f","impliedFormat":1},{"version":"5293d799856f47259146ccf0be9a1cc0a4a5343696182d7206ed25ea67d67920","impliedFormat":1},{"version":"d723063c56101b34a7be5b28dbde80a3ae3dfd5e08fd49a3b569473337ead1f9","impliedFormat":1},{"version":"fab49059d6c2026bdb2e53e4e5cde1a39da44e61daff1867c8b3b10b507bfe17","impliedFormat":1},{"version":"5a551275f85bcc4003e543a1951a5b2f682cfba9b2922f65ae0df40ab71724a5","impliedFormat":1},{"version":"22d1a3163b9a961dbe78b0aedbd7bcbc071ce1f31efb76eb013b0aee230fef0e","impliedFormat":1},{"version":"c31695696ade4514cfcbb22799997b690d3dca7fb72beab68fb2e73b6ef450dd","affectsGlobalScope":true,"impliedFormat":1},{"version":"d99ad56d57f2c96daaf4475a8b64344b24dedafdb8f3c32d43552bcc72279a75","impliedFormat":1},{"version":"a101ef17aece908c1029a1bd3f97132794dcff21b4ca0b997d9a633f962c46aa","impliedFormat":1},{"version":"511575e18249b64b90d8f884fdb8a383c767d1a7efccd9d66a4e125a4dc5c462","impliedFormat":1},{"version":"6d8001f2c3b86c4f1de1d45ecb3f87f287ed7313d6999f8c8318cec4f50e6323","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e413bb587e01ba0cb1a87828cc9116669a4a71a61fe3a89b252f86f0c824bc2","affectsGlobalScope":true,"impliedFormat":1},{"version":"9c3d1222e6e3d8c35a4293d7a54d4142ebb8f7f70ec4111b8136df07fdc66169","impliedFormat":1},{"version":"70173c475c6e76ccebc37412b02b2e26f62bf45fc1534c3ebe6d7fa60fb88819","impliedFormat":1},{"version":"87ced739f77d80886ef2b923a7c52c363c549ad8799ae28eb8cc810892f511ad","impliedFormat":1},{"version":"863bc4e31de6c75423bb02da16190d582b0a69b8964b61d45920e5b2cb3832dd","impliedFormat":1},{"version":"849484324695b587f06abee7579641efe061b7338f9694ec410a76f477fe4df3","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"6e191fea1db6e9e4fa828259cf489e820ec9170effff57fb081a2f3295db4722","impliedFormat":1},{"version":"49e0da63a2398d2ae88467f60a69b07e594b7777e01120cd9ebcefa1932484cf","impliedFormat":1},{"version":"0435070b07e646b406b1c9b8b1b1878ea6917c32abc47e6435ec26d71212d513","impliedFormat":1},{"version":"f71188f97c9f7d309798ec02a56dd3bf50a4e4d079b3480f275ac13719953898","impliedFormat":1},{"version":"c4454589a0aa92c10d684c8c9584574bc404d1db556d72196cd31f8f7651af1a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b17790866e140a630fa8891d7105c728a1bd60f4e35822e4b345af166a4a728c","impliedFormat":1},{"version":"c50c75f4360f6fc06c4be29dafe28210e15c50cd6b04ad19c4808fa504efb51a","impliedFormat":1},{"version":"d4a1f5f7ee89b2afffd3c74282f8ee65b24266c92b7d40398c12a27054ed745c","impliedFormat":1},{"version":"900b5a9802192bc77eba35a5b87ce770df7b867a6d61772c554058c9ed635386","impliedFormat":1},{"version":"d291d3d16fa252f6d460687491ea2c5c23098c9dc0d3e106b2803fdc98f48f29","affectsGlobalScope":true,"impliedFormat":1},{"version":"f43fcf89d75f13d0908a77cd3fa32b9fd28c915deded9b2778b08f2e242d07a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b9a616dec7430044ae735250f8d6a7183f5a9fba63f813e3d29dcab819fd7058","impliedFormat":1},{"version":"aebf613f7831125038942eba891005fd25fa5cadcc3e3d13af4768dc7549161f","impliedFormat":1},{"version":"0faee6b555890a1cb106e2adc5d3ffd89545b1da894d474e9d436596d654998f","impliedFormat":1},{"version":"247e5c34784d185bc81442e8b1a371a36c4a5307a766a3725454c0a191b5cfad","impliedFormat":1},{"version":"1c382a6446d63340be549a616ff5142a91653cea45d6d137e25b929130a4f29a","impliedFormat":1},{"version":"9cf81848d806418e203efa6df299e0c5bfb5c137369337b0547117b2f0d44892","impliedFormat":1},{"version":"f0142b712ca22ad863476d9f3ae74e8b2766f3507a6fb5018882074f65ed0195","impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0def2c37cadfd7bf074fe9566cb83518f24d67193c79741b2d83ec290b945725","impliedFormat":1},{"version":"049e3511439f11e1285bec4647ab8aac53e0c06951b93ba507565dbde851ba31","impliedFormat":1},{"version":"f0745ab78e18a2befaf1d9951481973318722c4e2f33e859239f55fa999ff2b1","impliedFormat":1},{"version":"886e183dd0199e7de45d6308ac3e2185dac6f83283d1b8200ea62cf5c43966a1","impliedFormat":1},{"version":"392dd7b1117b588cba36c04909efd24b0458980506e8e8c1966114f8989058e2","impliedFormat":1},{"version":"ec9d55888e353f9b5cdda761308dffc7eeb6aa0b7b25d328c64d3776a1cf2a7e","impliedFormat":1},{"version":"1f8fedf144a967560be9e58fa32de75e4ca379c3549710d027a07be6a9414073","impliedFormat":1},{"version":"3ca7b2e8012b9a6be09fafd62f8f3937388b9e1600a59c98887d2b11f6d01b43","impliedFormat":1},{"version":"b138b3f30708386023a7dc9981bb867808e5ff3383429ac7f69b7bfd0dcc5bd5","impliedFormat":1},{"version":"a42c8992e2cf55a4a2d661fac251bc803fe119dad49327477d439268e42953d8","impliedFormat":1},{"version":"13ec544ab0a3a7ff96afac1016f55b264c812428e37d595dc33b688296435469","impliedFormat":1},{"version":"4962729121c2cb97a4481cdb06dfc720a79a3bc2fc9330ff2bcf604cfc541177","impliedFormat":1},{"version":"bc641da6705e45737a6c85bf6c7460e9298e5f5b1021abf035cb760d313cda1a","impliedFormat":1},{"version":"4284412700d89f927c8f5092a8e8c2a20a596349f2819148952b07f2cba9177a","impliedFormat":1},{"version":"4d08d58c94c1462506783c35009ddaeb70e54632310e384aa572ed7667333c8f","impliedFormat":1},{"version":"067f06a3d8abb66e4db6c22e34a076808b4c39418e45690f1abf37bcd4725f1c","impliedFormat":1},{"version":"05f6b2b3bef27dfc0e2464197510d08f275f2464363b441def7f309cbf42f51d","impliedFormat":1},{"version":"15055a0f3fe6c7e9d98bf9de36bdc9102ab324debbe2d4170ffe557115a199fc","impliedFormat":1},{"version":"33e11cee43184a95afe9a450f7dde6bd2b6a03fc9643f898268e8594c266554a","impliedFormat":1},{"version":"c13aaf7191fbccaf0f4e9e520c720b870c6339080eb1699439a392589fc85a96","impliedFormat":1},{"version":"41af0cbfe30738008b3765c30059580972362b70b8dcafd791908923e907c3a6","impliedFormat":1},{"version":"b5d49f459d2efc77cff4ab27d929aa67d0c9121bc20763d84942c7fca2cc7b8f","impliedFormat":1},{"version":"96c0c4b30165eaedb3ade3b4e9f491113a1816c448d67fff542b2793bf565b04","impliedFormat":1},{"version":"29a456c61c3d93e36f5eba4c0ed567d7896a9c08a38b537c3fc192a99d03b348","impliedFormat":1},{"version":"3b67dd4fbeec66a7d2acd2be4f65219d85abd04e6eb9cc96fd862ddf70e02eec","impliedFormat":1},{"version":"0a61f7b50171225629903175e062d3f43225e6eba24eb2e50f88ca05fb441aa6","impliedFormat":1},{"version":"818d9a0841c884447fbd61b934c6743aea1fa6f1c0159ef44ef55b8f02b9120f","impliedFormat":1},{"version":"b5f234cb0cb6ceb839fe2875ada30e62082707eaa7a36bfc4a4df9d287b901c7","impliedFormat":1},{"version":"facdb012edb0931c21556ace5bf7c0194c8389b1248fdbd94d09f793b311517c","impliedFormat":1},{"version":"98528506b6a07d49efdd7a65da416af50bfbfea67fbdca941ba55753e171a3db","impliedFormat":1},{"version":"8370c10834a51543556e92367c7c564723ae83b97199413a8eca6f5d70036cd5","impliedFormat":1},{"version":"8c1036c47d3e04eca9bd5fc5e0cdd219a78e4061a4bb4b55f4a4f0cbc621e66f","impliedFormat":1},{"version":"8db15e1da6050330d9e36bddd03131d5a02d56fac2e919fd8360892616357863","impliedFormat":1},{"version":"44874584b7c30882ea2cb1b9b0df0e198221afee1ee5cc4d04deb4c8a3c6345a","impliedFormat":1},{"version":"09839c769382d4763700d97d6e9ceae5c9ab3c34cf288229d9879b63c7206c60","impliedFormat":1},{"version":"c0c205fec8b10f3ad0e65af65dd20ea7cf633df0964c84305e375ccdc4f5557e","impliedFormat":1},{"version":"37c2423005b2ec6130903de29aec9fcf1680ab1b2336efa0ff828980e92da7e9","impliedFormat":1},{"version":"f1f23acd4a8193453749f69d4432f5f122d6d572b793a8b630dd12fe80b0c3d3","impliedFormat":1},{"version":"7662d6994d28c9ebbe61b88cc35c3d705804351eedbf363df30ea9fe8c4961dc","impliedFormat":1},{"version":"1fb68106bddae35448e5279095461a4b54c4bbb42787cd629f70924b17e9a11e","impliedFormat":1},{"version":"46a9b0122b230cb2fab65999ba92f98a16fd8f1c25efaed47141cbf5056f6928","impliedFormat":1},{"version":"5a9a4741aa510bdee406441f77186c6d2005be78e78c2e0da8201d9991950164","impliedFormat":1},{"version":"351bbf43d585484825ee6c4b4805aac137ffc8e8a3b9812af99945a202db7c02","impliedFormat":1},{"version":"3990ae796cc23fb9829eae206eff1eddded9465504467a4433f2509e18ef1aed","impliedFormat":1},{"version":"b557ea3605e52406e35eeea468cb96f25b1ca906f2055f376597f0b02492d94c","impliedFormat":1},{"version":"f384bb303dbc114af6460e7cb30b766cc92eed33fccb331126b08bb63f15a034","impliedFormat":1},{"version":"8a9bd1cf8c1f75435f83595b43737c135e7f73bde39ba4c9339dc6a31e8bb069","impliedFormat":1},{"version":"8274bfd5de49f9f072be2f39c34e390101a8b69844e55eda36c7df23ba6d03e2","impliedFormat":1},{"version":"f8b482dddda55dd6677d7895a3fef8cd9d067f8c36c63cc7fe93b82a6dd4f10c","impliedFormat":1},{"version":"71d11ad1f05b0b90e95591fa85c1c8043e590d67972dcaba9b50435a0c04d8fa","impliedFormat":1},{"version":"c77c8f4aa3f4b849eda044768882bb102edf211b1c26b04a3c6ad921110f2fa4","impliedFormat":1},{"version":"a980ce9470dc95ac355d7efb729f9cfb0564505eba96da4bbde504299efb833a","impliedFormat":1},{"version":"eed44483a64b3c5a643663f8827c868ef3888965c7f3654e816debd03c621da0","impliedFormat":1},{"version":"a58402dc75738c188a741ccca86ccf898b0af98d305ad075c428171f193a6cd5","impliedFormat":1},{"version":"67d37ef881a81aefe3a0f70f78e3835be950f2359487d3eb61b0a3bb9af172bc","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"d789022bf705385490fe89811bc7850225c207f37dd706ada2509eb1d8f31f12","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"d29fa1f984b6d5ec55c37e6f65474ea4acaf9ba92d2b1d502ca824abca86b430","impliedFormat":1},{"version":"abd02654e7ae1f70f68ec509b2c3c1e388c0142d169ba37a157f558709efe2a1","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"96a56b3bbf8346c584c5d58db4fb8adc58982e4e9f2929488ad5aeb89ddc19f8","impliedFormat":1},{"version":"db744053fe42f80b7777c89f39bc6cf351f7796b1c828550a37cdc17cba0e056","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4","impliedFormat":1},{"version":"caaf6bf4dd0a3f88b50670f5786141b209edb54ba17eb6268c2d28919c813606","affectsGlobalScope":true,"impliedFormat":1}],"root":[168],"options":{"composite":true,"module":1,"outDir":"./","rootDir":"../src","sourceMap":true,"strict":true,"target":7,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[169,1],[53,2],[54,2],[55,3],[51,4],[56,5],[57,6],[58,7],[49,8],[47,1],[48,1],[59,9],[60,10],[61,11],[62,12],[63,13],[64,14],[65,14],[66,15],[67,16],[68,17],[69,18],[70,19],[52,1],[50,1],[71,20],[72,21],[73,22],[103,23],[74,24],[75,25],[76,26],[77,27],[78,28],[79,29],[80,30],[81,31],[82,32],[83,33],[84,34],[85,35],[87,36],[86,37],[88,38],[89,39],[90,1],[91,40],[92,41],[93,42],[94,43],[95,44],[96,45],[97,46],[98,47],[99,48],[100,49],[101,50],[102,51],[194,52],[195,53],[170,54],[173,54],[192,52],[193,52],[183,52],[182,55],[180,52],[175,52],[188,52],[186,52],[190,52],[174,52],[187,52],[191,52],[176,52],[177,52],[189,52],[171,52],[178,52],[179,52],[181,52],[185,52],[196,56],[184,52],[172,52],[209,57],[208,1],[203,56],[205,58],[204,56],[197,56],[198,56],[200,56],[202,56],[206,58],[207,58],[199,58],[201,58],[210,1],[44,1],[45,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[18,1],[19,1],[4,1],[20,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[35,1],[32,1],[33,1],[34,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[1,1],[118,59],[110,60],[115,61],[108,1],[111,62],[109,63],[107,1],[117,64],[113,65],[106,1],[114,66],[112,67],[116,68],[160,69],[161,70],[105,1],[142,71],[141,72],[119,73],[129,74],[124,74],[123,75],[140,76],[126,74],[138,74],[133,75],[125,74],[120,74],[137,74],[136,74],[132,74],[134,77],[139,78],[128,75],[127,74],[130,74],[131,75],[121,74],[135,74],[122,75],[162,79],[163,80],[167,1],[104,1],[164,81],[146,82],[144,82],[154,82],[149,82],[153,82],[152,82],[150,82],[157,82],[156,83],[143,82],[147,82],[158,84],[148,82],[155,85],[151,82],[145,82],[159,1],[165,86],[166,87],[46,1],[168,88]],"latestChangedDtsFile":"./server.d.ts","version":"5.7.3"} \ No newline at end of file +{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../node_modules/vscode-languageserver/typings/thenable.d.ts","../../node_modules/@types/node/compatibility/indexable.d.ts","../../node_modules/@types/node/compatibility/iterators.d.ts","../../node_modules/@types/node/compatibility/index.d.ts","../../node_modules/@types/node/globals.typedarray.d.ts","../../node_modules/@types/node/buffer.buffer.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/dom-events.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/test.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/vscode-languageserver-types/lib/umd/main.d.ts","../../node_modules/vscode-jsonrpc/typings/thenable.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messages.d.ts","../../node_modules/vscode-jsonrpc/lib/common/linkedmap.d.ts","../../node_modules/vscode-jsonrpc/lib/common/disposable.d.ts","../../node_modules/vscode-jsonrpc/lib/common/events.d.ts","../../node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts","../../node_modules/vscode-jsonrpc/lib/common/encoding.d.ts","../../node_modules/vscode-jsonrpc/lib/common/ral.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagereader.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagewriter.d.ts","../../node_modules/vscode-jsonrpc/lib/common/connection.d.ts","../../node_modules/vscode-jsonrpc/lib/common/sharedarraycancellation.d.ts","../../node_modules/vscode-jsonrpc/lib/common/messagebuffer.d.ts","../../node_modules/vscode-jsonrpc/lib/common/api.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.typedefinition.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.workspacefolder.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.colorprovider.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.callhierarchy.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.semantictokens.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.showdocument.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.linkededitingrange.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.fileoperations.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.typehierarchy.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlinevalue.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayhint.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts","../../node_modules/vscode-languageserver-protocol/lib/common/api.d.ts","../../node_modules/vscode-languageserver/lib/common/progress.d.ts","../../node_modules/vscode-languageserver/lib/common/configuration.d.ts","../../node_modules/vscode-languageserver/lib/common/workspacefolder.d.ts","../../node_modules/vscode-languageserver/lib/common/callhierarchy.d.ts","../../node_modules/vscode-languageserver/lib/common/semantictokens.d.ts","../../node_modules/vscode-languageserver/lib/common/showdocument.d.ts","../../node_modules/vscode-languageserver/lib/common/fileoperations.d.ts","../../node_modules/vscode-languageserver/lib/common/linkededitingrange.d.ts","../../node_modules/vscode-languageserver/lib/common/typehierarchy.d.ts","../../node_modules/vscode-languageserver/lib/common/inlinevalue.d.ts","../../node_modules/vscode-languageserver/lib/common/inlayhint.d.ts","../../node_modules/vscode-languageserver/lib/common/diagnostic.d.ts","../../node_modules/vscode-languageserver/lib/common/textdocuments.d.ts","../../node_modules/vscode-languageserver/lib/common/notebook.d.ts","../../node_modules/vscode-languageserver/lib/common/moniker.d.ts","../../node_modules/vscode-languageserver/lib/common/server.d.ts","../../node_modules/vscode-languageserver/lib/node/files.d.ts","../../node_modules/vscode-jsonrpc/lib/node/main.d.ts","../../node_modules/vscode-jsonrpc/node.d.ts","../../node_modules/vscode-languageserver-protocol/lib/node/main.d.ts","../../node_modules/vscode-languageserver-protocol/node.d.ts","../../node_modules/vscode-languageserver/lib/common/api.d.ts","../../node_modules/vscode-languageserver/lib/node/main.d.ts","../../node_modules/vscode-languageserver/node.d.ts","../../node_modules/vscode-languageserver-textdocument/lib/umd/main.d.ts","../src/server.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/semver/classes/semver.d.ts","../../node_modules/@types/semver/functions/parse.d.ts","../../node_modules/@types/semver/functions/valid.d.ts","../../node_modules/@types/semver/functions/clean.d.ts","../../node_modules/@types/semver/functions/inc.d.ts","../../node_modules/@types/semver/functions/diff.d.ts","../../node_modules/@types/semver/functions/major.d.ts","../../node_modules/@types/semver/functions/minor.d.ts","../../node_modules/@types/semver/functions/patch.d.ts","../../node_modules/@types/semver/functions/prerelease.d.ts","../../node_modules/@types/semver/functions/compare.d.ts","../../node_modules/@types/semver/functions/rcompare.d.ts","../../node_modules/@types/semver/functions/compare-loose.d.ts","../../node_modules/@types/semver/functions/compare-build.d.ts","../../node_modules/@types/semver/functions/sort.d.ts","../../node_modules/@types/semver/functions/rsort.d.ts","../../node_modules/@types/semver/functions/gt.d.ts","../../node_modules/@types/semver/functions/lt.d.ts","../../node_modules/@types/semver/functions/eq.d.ts","../../node_modules/@types/semver/functions/neq.d.ts","../../node_modules/@types/semver/functions/gte.d.ts","../../node_modules/@types/semver/functions/lte.d.ts","../../node_modules/@types/semver/functions/cmp.d.ts","../../node_modules/@types/semver/functions/coerce.d.ts","../../node_modules/@types/semver/classes/comparator.d.ts","../../node_modules/@types/semver/classes/range.d.ts","../../node_modules/@types/semver/functions/satisfies.d.ts","../../node_modules/@types/semver/ranges/max-satisfying.d.ts","../../node_modules/@types/semver/ranges/min-satisfying.d.ts","../../node_modules/@types/semver/ranges/to-comparators.d.ts","../../node_modules/@types/semver/ranges/min-version.d.ts","../../node_modules/@types/semver/ranges/valid.d.ts","../../node_modules/@types/semver/ranges/outside.d.ts","../../node_modules/@types/semver/ranges/gtr.d.ts","../../node_modules/@types/semver/ranges/ltr.d.ts","../../node_modules/@types/semver/ranges/intersects.d.ts","../../node_modules/@types/semver/ranges/simplify.d.ts","../../node_modules/@types/semver/ranges/subset.d.ts","../../node_modules/@types/semver/internals/identifiers.d.ts","../../node_modules/@types/semver/index.d.ts","../../node_modules/@types/vscode/index.d.ts"],"fileIdsList":[[51,56],[51,53,56],[51,55,56],[56],[51,56,61,88],[51,56,57,68,69,76,85,96],[51,56,57,58,68,76],[47,48,51,56],[51,56,59,97],[51,56,60,61,69,77],[51,56,61,85,93],[51,56,62,64,68,76],[51,56,63],[51,56,64,65],[51,56,68],[51,56,67,68],[51,55,56,68],[51,56,68,69,70,85,96],[51,56,68,69,70,85],[51,56,68,71,76,85,96],[51,56,68,69,71,72,76,85,93,96],[51,56,71,73,85,93,96],[49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102],[51,56,68,74],[51,56,75,96,101],[51,56,64,68,76,85],[51,56,77],[51,56,78],[51,55,56,79],[51,56,80,95,101],[51,56,81],[51,56,82],[51,56,68,83],[51,56,83,84,97,99],[51,56,68,85,86,87],[51,56,85,87],[51,56,85,86],[51,56,88],[51,56,89],[51,56,68,91,92],[51,56,91,92],[51,56,61,76,85,93],[51,56,94],[51,56,76,95],[51,56,71,82,96],[51,56,61,97],[51,56,85,98],[51,56,99],[51,56,100],[51,56,61,68,70,79,85,96,99,101],[51,56,85,102],[51,56,170,209],[51,56,170,194,209],[51,56,209],[51,56,170],[51,56,170,195,209],[51,56,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208],[51,56,195,209],[51,56,105,106,107,108,109,110,111,112,113,114,115,116,117],[51,56,108,109],[51,56,106,108,109,110,113,114],[51,56,106,112],[51,56,108],[51,56,112],[51,56,106,109,111,112,118],[51,56,106,109,111,112],[51,56,108,111],[51,56,106,110,115],[51,56,57,76,101,103,118],[51,56,160],[51,56,104,118,119,140,141],[51,56,118,119],[51,56,118],[51,56,104,118,119,140],[51,56,104,118,119],[51,56,104,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139],[51,56,119,140],[51,56,104,119,140],[51,56,103,142,161],[51,56,162],[51,56,142,143,147,155,156,158],[51,56,142,158],[51,56,142,155,158],[51,56,142,143,144,145,146,147,148,149,150,151,152,153,154,156,157],[51,56,142],[46,51,56,103,158,159,163,164],[51,56,165],[51,56,166,167]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e864ea827318e5f490863a8cd412744d9ddb175acf488dd02a941703dad1e38","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"23301069cfa7a4c6dd68915eeccc7a2ae0bd3018ff4a6288dd9e0c8b4238fab6","affectsGlobalScope":true,"impliedFormat":1},{"version":"df01885cc27c14632a8c38bdeb053295e69209107bb6c53988b78db5f450cb3c","affectsGlobalScope":true,"impliedFormat":1},{"version":"38379fa748cc5d259c96da356a849bd290a159ae218e06ec1daa166850e4bf50","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"f51b4042a3ac86f1f707500a9768f88d0b0c1fc3f3e45a73333283dea720cdc6","impliedFormat":1},{"version":"a29bc8aa8cc100d0c09370c03508f1245853efe017bb98699d4c690868371fc7","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f95830ca11e2c7e82235b73dc149e68a0632b41e671724d12adc83a6750746d","impliedFormat":1},{"version":"7aa011cda7cf0b9e87c85d128b2eeac9930bda215b0fee265d8bf2cec039fb5f","impliedFormat":1},{"version":"92ec1aeca4e94bdab04083daa6039f807c0fce8f09bc42e8b24bf49fa5cdbbff","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"8463ab6a156dc96200b3d8b8a52dc8d878f13a6b7404439aa2f911d568132808","impliedFormat":1},{"version":"5289750c112b5dd0e29dfa9089ddbf5d3ed1b544d99731093881e6967f5af4d1","impliedFormat":1},{"version":"7693b90b3075deaccafd5efb467bf9f2b747a3075be888652ef73e64396d8628","impliedFormat":1},{"version":"bd01a987f0fcf2344a405e542ee681e420651eaff1222a5a6e0c02fda52343bc","impliedFormat":1},{"version":"693e50962e90a3548f41bff2c22676e3964212a836022d82e49eca0b20320a38","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"300b0c12998391154d7b9115a85554e91632a3d3e1b66038e98f2b9cb3c1061d","impliedFormat":1},{"version":"222e742815b14d54db034788a7bee2d51197a2588c35b1fbefe04add6393021c","affectsGlobalScope":true,"impliedFormat":1},{"version":"93891e576a698609695e5b8117bb128336e4b7b28772e7d7e38e8075790eb42f","impliedFormat":1},{"version":"69d90a2f13511eeaae271905c8615a93e20335530d1062a93cb04e754e5f04ad","impliedFormat":1},{"version":"d723063c56101b34a7be5b28dbde80a3ae3dfd5e08fd49a3b569473337ead1f9","impliedFormat":1},{"version":"fab49059d6c2026bdb2e53e4e5cde1a39da44e61daff1867c8b3b10b507bfe17","impliedFormat":1},{"version":"5a551275f85bcc4003e543a1951a5b2f682cfba9b2922f65ae0df40ab71724a5","impliedFormat":1},{"version":"22d1a3163b9a961dbe78b0aedbd7bcbc071ce1f31efb76eb013b0aee230fef0e","impliedFormat":1},{"version":"c31695696ade4514cfcbb22799997b690d3dca7fb72beab68fb2e73b6ef450dd","affectsGlobalScope":true,"impliedFormat":1},{"version":"d99ad56d57f2c96daaf4475a8b64344b24dedafdb8f3c32d43552bcc72279a75","impliedFormat":1},{"version":"a101ef17aece908c1029a1bd3f97132794dcff21b4ca0b997d9a633f962c46aa","impliedFormat":1},{"version":"511575e18249b64b90d8f884fdb8a383c767d1a7efccd9d66a4e125a4dc5c462","impliedFormat":1},{"version":"6d8001f2c3b86c4f1de1d45ecb3f87f287ed7313d6999f8c8318cec4f50e6323","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e413bb587e01ba0cb1a87828cc9116669a4a71a61fe3a89b252f86f0c824bc2","affectsGlobalScope":true,"impliedFormat":1},{"version":"9c3d1222e6e3d8c35a4293d7a54d4142ebb8f7f70ec4111b8136df07fdc66169","impliedFormat":1},{"version":"70173c475c6e76ccebc37412b02b2e26f62bf45fc1534c3ebe6d7fa60fb88819","impliedFormat":1},{"version":"87ced739f77d80886ef2b923a7c52c363c549ad8799ae28eb8cc810892f511ad","impliedFormat":1},{"version":"863bc4e31de6c75423bb02da16190d582b0a69b8964b61d45920e5b2cb3832dd","impliedFormat":1},{"version":"849484324695b587f06abee7579641efe061b7338f9694ec410a76f477fe4df3","impliedFormat":1},{"version":"269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","impliedFormat":1},{"version":"6e191fea1db6e9e4fa828259cf489e820ec9170effff57fb081a2f3295db4722","impliedFormat":1},{"version":"49e0da63a2398d2ae88467f60a69b07e594b7777e01120cd9ebcefa1932484cf","impliedFormat":1},{"version":"0435070b07e646b406b1c9b8b1b1878ea6917c32abc47e6435ec26d71212d513","impliedFormat":1},{"version":"f71188f97c9f7d309798ec02a56dd3bf50a4e4d079b3480f275ac13719953898","impliedFormat":1},{"version":"c4454589a0aa92c10d684c8c9584574bc404d1db556d72196cd31f8f7651af1a","affectsGlobalScope":true,"impliedFormat":1},{"version":"b17790866e140a630fa8891d7105c728a1bd60f4e35822e4b345af166a4a728c","impliedFormat":1},{"version":"c50c75f4360f6fc06c4be29dafe28210e15c50cd6b04ad19c4808fa504efb51a","impliedFormat":1},{"version":"d4a1f5f7ee89b2afffd3c74282f8ee65b24266c92b7d40398c12a27054ed745c","impliedFormat":1},{"version":"900b5a9802192bc77eba35a5b87ce770df7b867a6d61772c554058c9ed635386","impliedFormat":1},{"version":"d291d3d16fa252f6d460687491ea2c5c23098c9dc0d3e106b2803fdc98f48f29","affectsGlobalScope":true,"impliedFormat":1},{"version":"f43fcf89d75f13d0908a77cd3fa32b9fd28c915deded9b2778b08f2e242d07a7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b9a616dec7430044ae735250f8d6a7183f5a9fba63f813e3d29dcab819fd7058","impliedFormat":1},{"version":"aebf613f7831125038942eba891005fd25fa5cadcc3e3d13af4768dc7549161f","impliedFormat":1},{"version":"0faee6b555890a1cb106e2adc5d3ffd89545b1da894d474e9d436596d654998f","impliedFormat":1},{"version":"247e5c34784d185bc81442e8b1a371a36c4a5307a766a3725454c0a191b5cfad","impliedFormat":1},{"version":"1c382a6446d63340be549a616ff5142a91653cea45d6d137e25b929130a4f29a","impliedFormat":1},{"version":"9cf81848d806418e203efa6df299e0c5bfb5c137369337b0547117b2f0d44892","impliedFormat":1},{"version":"f0142b712ca22ad863476d9f3ae74e8b2766f3507a6fb5018882074f65ed0195","impliedFormat":1},{"version":"65b9243c80068ec9696b1fbdd23c9acf80d51df02f97b2d7a0514312b0a9fe7d","affectsGlobalScope":true,"impliedFormat":1},{"version":"0def2c37cadfd7bf074fe9566cb83518f24d67193c79741b2d83ec290b945725","impliedFormat":1},{"version":"049e3511439f11e1285bec4647ab8aac53e0c06951b93ba507565dbde851ba31","impliedFormat":1},{"version":"f0745ab78e18a2befaf1d9951481973318722c4e2f33e859239f55fa999ff2b1","impliedFormat":1},{"version":"886e183dd0199e7de45d6308ac3e2185dac6f83283d1b8200ea62cf5c43966a1","impliedFormat":1},{"version":"392dd7b1117b588cba36c04909efd24b0458980506e8e8c1966114f8989058e2","impliedFormat":1},{"version":"ec9d55888e353f9b5cdda761308dffc7eeb6aa0b7b25d328c64d3776a1cf2a7e","impliedFormat":1},{"version":"1f8fedf144a967560be9e58fa32de75e4ca379c3549710d027a07be6a9414073","impliedFormat":1},{"version":"3ca7b2e8012b9a6be09fafd62f8f3937388b9e1600a59c98887d2b11f6d01b43","impliedFormat":1},{"version":"b138b3f30708386023a7dc9981bb867808e5ff3383429ac7f69b7bfd0dcc5bd5","impliedFormat":1},{"version":"a42c8992e2cf55a4a2d661fac251bc803fe119dad49327477d439268e42953d8","impliedFormat":1},{"version":"13ec544ab0a3a7ff96afac1016f55b264c812428e37d595dc33b688296435469","impliedFormat":1},{"version":"4962729121c2cb97a4481cdb06dfc720a79a3bc2fc9330ff2bcf604cfc541177","impliedFormat":1},{"version":"bc641da6705e45737a6c85bf6c7460e9298e5f5b1021abf035cb760d313cda1a","impliedFormat":1},{"version":"4284412700d89f927c8f5092a8e8c2a20a596349f2819148952b07f2cba9177a","impliedFormat":1},{"version":"4d08d58c94c1462506783c35009ddaeb70e54632310e384aa572ed7667333c8f","impliedFormat":1},{"version":"067f06a3d8abb66e4db6c22e34a076808b4c39418e45690f1abf37bcd4725f1c","impliedFormat":1},{"version":"05f6b2b3bef27dfc0e2464197510d08f275f2464363b441def7f309cbf42f51d","impliedFormat":1},{"version":"15055a0f3fe6c7e9d98bf9de36bdc9102ab324debbe2d4170ffe557115a199fc","impliedFormat":1},{"version":"33e11cee43184a95afe9a450f7dde6bd2b6a03fc9643f898268e8594c266554a","impliedFormat":1},{"version":"c13aaf7191fbccaf0f4e9e520c720b870c6339080eb1699439a392589fc85a96","impliedFormat":1},{"version":"41af0cbfe30738008b3765c30059580972362b70b8dcafd791908923e907c3a6","impliedFormat":1},{"version":"b5d49f459d2efc77cff4ab27d929aa67d0c9121bc20763d84942c7fca2cc7b8f","impliedFormat":1},{"version":"96c0c4b30165eaedb3ade3b4e9f491113a1816c448d67fff542b2793bf565b04","impliedFormat":1},{"version":"29a456c61c3d93e36f5eba4c0ed567d7896a9c08a38b537c3fc192a99d03b348","impliedFormat":1},{"version":"3b67dd4fbeec66a7d2acd2be4f65219d85abd04e6eb9cc96fd862ddf70e02eec","impliedFormat":1},{"version":"0a61f7b50171225629903175e062d3f43225e6eba24eb2e50f88ca05fb441aa6","impliedFormat":1},{"version":"818d9a0841c884447fbd61b934c6743aea1fa6f1c0159ef44ef55b8f02b9120f","impliedFormat":1},{"version":"b5f234cb0cb6ceb839fe2875ada30e62082707eaa7a36bfc4a4df9d287b901c7","impliedFormat":1},{"version":"facdb012edb0931c21556ace5bf7c0194c8389b1248fdbd94d09f793b311517c","impliedFormat":1},{"version":"98528506b6a07d49efdd7a65da416af50bfbfea67fbdca941ba55753e171a3db","impliedFormat":1},{"version":"8370c10834a51543556e92367c7c564723ae83b97199413a8eca6f5d70036cd5","impliedFormat":1},{"version":"8c1036c47d3e04eca9bd5fc5e0cdd219a78e4061a4bb4b55f4a4f0cbc621e66f","impliedFormat":1},{"version":"8db15e1da6050330d9e36bddd03131d5a02d56fac2e919fd8360892616357863","impliedFormat":1},{"version":"44874584b7c30882ea2cb1b9b0df0e198221afee1ee5cc4d04deb4c8a3c6345a","impliedFormat":1},{"version":"09839c769382d4763700d97d6e9ceae5c9ab3c34cf288229d9879b63c7206c60","impliedFormat":1},{"version":"c0c205fec8b10f3ad0e65af65dd20ea7cf633df0964c84305e375ccdc4f5557e","impliedFormat":1},{"version":"37c2423005b2ec6130903de29aec9fcf1680ab1b2336efa0ff828980e92da7e9","impliedFormat":1},{"version":"f1f23acd4a8193453749f69d4432f5f122d6d572b793a8b630dd12fe80b0c3d3","impliedFormat":1},{"version":"7662d6994d28c9ebbe61b88cc35c3d705804351eedbf363df30ea9fe8c4961dc","impliedFormat":1},{"version":"1fb68106bddae35448e5279095461a4b54c4bbb42787cd629f70924b17e9a11e","impliedFormat":1},{"version":"46a9b0122b230cb2fab65999ba92f98a16fd8f1c25efaed47141cbf5056f6928","impliedFormat":1},{"version":"5a9a4741aa510bdee406441f77186c6d2005be78e78c2e0da8201d9991950164","impliedFormat":1},{"version":"351bbf43d585484825ee6c4b4805aac137ffc8e8a3b9812af99945a202db7c02","impliedFormat":1},{"version":"3990ae796cc23fb9829eae206eff1eddded9465504467a4433f2509e18ef1aed","impliedFormat":1},{"version":"b557ea3605e52406e35eeea468cb96f25b1ca906f2055f376597f0b02492d94c","impliedFormat":1},{"version":"f384bb303dbc114af6460e7cb30b766cc92eed33fccb331126b08bb63f15a034","impliedFormat":1},{"version":"8a9bd1cf8c1f75435f83595b43737c135e7f73bde39ba4c9339dc6a31e8bb069","impliedFormat":1},{"version":"8274bfd5de49f9f072be2f39c34e390101a8b69844e55eda36c7df23ba6d03e2","impliedFormat":1},{"version":"f8b482dddda55dd6677d7895a3fef8cd9d067f8c36c63cc7fe93b82a6dd4f10c","impliedFormat":1},{"version":"71d11ad1f05b0b90e95591fa85c1c8043e590d67972dcaba9b50435a0c04d8fa","impliedFormat":1},{"version":"c77c8f4aa3f4b849eda044768882bb102edf211b1c26b04a3c6ad921110f2fa4","impliedFormat":1},{"version":"a980ce9470dc95ac355d7efb729f9cfb0564505eba96da4bbde504299efb833a","impliedFormat":1},{"version":"eed44483a64b3c5a643663f8827c868ef3888965c7f3654e816debd03c621da0","impliedFormat":1},{"version":"a58402dc75738c188a741ccca86ccf898b0af98d305ad075c428171f193a6cd5","impliedFormat":1},{"version":"67d37ef881a81aefe3a0f70f78e3835be950f2359487d3eb61b0a3bb9af172bc","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"d789022bf705385490fe89811bc7850225c207f37dd706ada2509eb1d8f31f12","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"d29fa1f984b6d5ec55c37e6f65474ea4acaf9ba92d2b1d502ca824abca86b430","impliedFormat":1},{"version":"abd02654e7ae1f70f68ec509b2c3c1e388c0142d169ba37a157f558709efe2a1","impliedFormat":1},{"version":"9c98df0145d99011af92c397fa787fc39d42cc04019614ab5581febe71fb32e1","impliedFormat":1},{"version":"96a56b3bbf8346c584c5d58db4fb8adc58982e4e9f2929488ad5aeb89ddc19f8","impliedFormat":1},{"version":"ddf82a6212d25f054843c790d3b6571e173cd6816c931afd73b3011a53284626","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","impliedFormat":1},{"version":"9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","impliedFormat":1},{"version":"c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","impliedFormat":1},{"version":"8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","impliedFormat":1},{"version":"86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","impliedFormat":1},{"version":"42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","impliedFormat":1},{"version":"ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","impliedFormat":1},{"version":"83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","impliedFormat":1},{"version":"1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","impliedFormat":1},{"version":"0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","impliedFormat":1},{"version":"cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","impliedFormat":1},{"version":"c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","impliedFormat":1},{"version":"f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","impliedFormat":1},{"version":"0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","impliedFormat":1},{"version":"7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","impliedFormat":1},{"version":"bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","impliedFormat":1},{"version":"52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","impliedFormat":1},{"version":"770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","impliedFormat":1},{"version":"d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","impliedFormat":1},{"version":"799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","impliedFormat":1},{"version":"2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","impliedFormat":1},{"version":"9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","impliedFormat":1},{"version":"397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","impliedFormat":1},{"version":"a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","impliedFormat":1},{"version":"a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","impliedFormat":1},{"version":"c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","impliedFormat":1},{"version":"4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","impliedFormat":1},{"version":"f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","impliedFormat":1},{"version":"cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","impliedFormat":1},{"version":"b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","impliedFormat":1},{"version":"c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","impliedFormat":1},{"version":"14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","impliedFormat":1},{"version":"a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","impliedFormat":1},{"version":"f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","impliedFormat":1},{"version":"3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","impliedFormat":1},{"version":"662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","impliedFormat":1},{"version":"c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","impliedFormat":1},{"version":"2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","impliedFormat":1},{"version":"34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","impliedFormat":1},{"version":"844ab83672160ca57a2a2ea46da4c64200d8c18d4ebb2087819649cad099ff0e","impliedFormat":1},{"version":"7b3098756b32d6029cd9889b087a32e890298bd7953d05b72b02f6a3ad4f318a","affectsGlobalScope":true,"impliedFormat":1}],"root":[168],"options":{"composite":true,"module":1,"outDir":"./","rootDir":"../src","sourceMap":true,"strict":true,"target":7,"tsBuildInfoFile":"./.tsbuildinfo"},"referencedMap":[[169,1],[53,2],[54,2],[55,3],[51,4],[56,5],[57,6],[58,7],[49,8],[47,1],[48,1],[59,9],[60,10],[61,11],[62,12],[63,13],[64,14],[65,14],[66,15],[67,16],[68,17],[69,18],[70,19],[52,1],[50,1],[71,20],[72,21],[73,22],[103,23],[74,24],[75,25],[76,26],[77,27],[78,28],[79,29],[80,30],[81,31],[82,32],[83,33],[84,34],[85,35],[87,36],[86,37],[88,38],[89,39],[90,1],[91,40],[92,41],[93,42],[94,43],[95,44],[96,45],[97,46],[98,47],[99,48],[100,49],[101,50],[102,51],[194,52],[195,53],[170,54],[173,54],[192,52],[193,52],[183,52],[182,55],[180,52],[175,52],[188,52],[186,52],[190,52],[174,52],[187,52],[191,52],[176,52],[177,52],[189,52],[171,52],[178,52],[179,52],[181,52],[185,52],[196,56],[184,52],[172,52],[209,57],[208,1],[203,56],[205,58],[204,56],[197,56],[198,56],[200,56],[202,56],[206,58],[207,58],[199,58],[201,58],[210,1],[44,1],[45,1],[9,1],[8,1],[2,1],[10,1],[11,1],[12,1],[13,1],[14,1],[15,1],[16,1],[17,1],[3,1],[18,1],[19,1],[4,1],[20,1],[24,1],[21,1],[22,1],[23,1],[25,1],[26,1],[27,1],[5,1],[28,1],[29,1],[30,1],[31,1],[6,1],[35,1],[32,1],[33,1],[34,1],[36,1],[7,1],[37,1],[42,1],[43,1],[38,1],[39,1],[40,1],[41,1],[1,1],[118,59],[110,60],[115,61],[108,1],[111,62],[109,63],[107,1],[117,64],[113,65],[106,1],[114,66],[112,67],[116,68],[160,69],[161,70],[105,1],[142,71],[141,72],[119,73],[129,74],[124,74],[123,75],[140,76],[126,74],[138,74],[133,75],[125,74],[120,74],[137,74],[136,74],[132,74],[134,77],[139,78],[128,75],[127,74],[130,74],[131,75],[121,74],[135,74],[122,75],[162,79],[163,80],[167,1],[104,1],[164,81],[146,82],[144,82],[154,82],[149,82],[153,82],[152,82],[150,82],[157,82],[156,83],[143,82],[147,82],[158,84],[148,82],[155,85],[151,82],[145,82],[159,1],[165,86],[166,87],[46,1],[168,88]],"latestChangedDtsFile":"./server.d.ts","version":"5.8.2"} \ No newline at end of file diff --git a/extension/server/out/server.js b/extension/server/out/server.js index 527af30..7f983ad 100644 --- a/extension/server/out/server.js +++ b/extension/server/out/server.js @@ -38,6 +38,8 @@ const elements = [ 'card', 'badge', 'alert', 'tooltip', 'input', 'textarea', 'select', 'checkbox', 'radio', 'switch', 'list', 'table', 'progress', 'slider' ]; +// Script block types +const scriptBlocks = ['client', 'server']; // Single instance elements const singleElements = ['page', 'navbar']; // Blueprint properties @@ -104,6 +106,65 @@ connection.onCompletion((textDocumentPosition) => { }] }]; } + // Check for @client or @server block completion + if (linePrefix.trim() === '@' || linePrefix.trim().startsWith('@')) { + return scriptBlocks.map(blockType => ({ + label: `@${blockType}`, + kind: node_1.CompletionItemKind.Snippet, + insertText: `@${blockType} {\n $1\n}`, + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: `Create a ${blockType} script block` + })); + } + // After an @client or @server block opening brace, suggest JS snippets + const scriptBlockMatch = /@(client|server)\s*{\s*$/.exec(linePrefix); + if (scriptBlockMatch) { + const blockType = scriptBlockMatch[1]; + const jsSnippets = []; + if (blockType === 'client') { + jsSnippets.push({ + label: 'element.set', + kind: node_1.CompletionItemKind.Method, + insertText: '${1:elementId}.set("${2:new value}");', + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: 'Set the content of an element' + }, { + label: 'console.log', + kind: node_1.CompletionItemKind.Method, + insertText: 'console.log("${1:message}");', + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: 'Log a message to the console' + }, { + label: 'DOM event handling', + kind: node_1.CompletionItemKind.Snippet, + insertText: 'e.preventDefault();\n${1}', + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: 'Prevent default action of event' + }); + } + else if (blockType === 'server') { + jsSnippets.push({ + label: 'element.set', + kind: node_1.CompletionItemKind.Method, + insertText: '${1:elementId}.set(${2:newValue});', + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: 'Update element value from server' + }, { + label: 'element.value', + kind: node_1.CompletionItemKind.Property, + insertText: 'const value = ${1:elementId}.value;', + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: 'Get the current value of an element' + }, { + label: 'fetch data', + kind: node_1.CompletionItemKind.Snippet, + insertText: 'const response = await fetch("${1:url}");\nconst data = await response.json();\n${2}', + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: 'Fetch data from an API' + }); + } + return jsSnippets; + } // Inside page block if (text.includes('page {') && !text.includes('}')) { return pageProperties.map(prop => ({ diff --git a/extension/server/out/server.js.map b/extension/server/out/server.js.map index 383896b..00dea67 100644 --- a/extension/server/out/server.js.map +++ b/extension/server/out/server.js.map @@ -1 +1 @@ -{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/extension/server/src/server.ts b/extension/server/src/server.ts index 2eb0f5f..4e19180 100644 --- a/extension/server/src/server.ts +++ b/extension/server/src/server.ts @@ -58,6 +58,11 @@ const elements = [ 'checkbox', 'radio', 'switch', 'list', 'table', 'progress', 'slider' ]; +// Script blocks +const scriptBlocks = [ + 'client', 'server' +]; + // Single instance elements const singleElements = ['page', 'navbar']; @@ -75,6 +80,9 @@ const properties = [ // Page configuration properties const pageProperties = ['title', 'description', 'keywords', 'author']; +// ID attribute suggestion - using underscore format +const idAttributeTemplate = 'id:$1_$2'; + // Container elements that can have children const containerElements = [ 'horizontal', 'vertical', 'section', 'grid', 'navbar', @@ -114,6 +122,19 @@ connection.onCompletion( const line = lines[position.line]; const linePrefix = line.slice(0, position.character); + // Suggest script blocks after @ symbol + if (linePrefix.trim().endsWith('@')) { + return scriptBlocks.map(block => ({ + label: `@${block}`, + kind: CompletionItemKind.Snippet, + insertText: `@${block} {\n $1\n}`, + insertTextFormat: InsertTextFormat.Snippet, + documentation: block === 'client' ? + 'Create a client-side JavaScript block that runs when the element is clicked. The "e" event object is available.' : + 'Create a server-side JavaScript block that runs on the server.' + })); + } + // Check if this is a template completion trigger if (linePrefix.trim() === '!') { return [{ @@ -145,13 +166,22 @@ connection.onCompletion( })); } - // After an opening parenthesis, suggest properties + // After an opening parenthesis, suggest properties including ID with underscore format if (linePrefix.trim().endsWith('(')) { - return properties.map(prop => ({ - label: prop, - kind: CompletionItemKind.Property, - documentation: `Apply ${prop} property` - })); + return [ + ...properties.map(prop => ({ + label: prop, + kind: CompletionItemKind.Property, + documentation: `Apply ${prop} property` + })), + { + label: 'id', + kind: CompletionItemKind.Property, + insertText: idAttributeTemplate, + insertTextFormat: InsertTextFormat.Snippet, + documentation: 'Add an ID to the element (use underscores instead of hyphens for JavaScript compatibility)' + } + ]; } // After a container element's opening brace, suggest child elements @@ -173,6 +203,26 @@ connection.onCompletion( break; } + // Include client/server block suggestions for interactive elements + if (['button', 'button-light', 'button-secondary', 'button-compact'].includes(parentElement)) { + return [ + ...suggestedElements.map(element => ({ + label: element, + kind: CompletionItemKind.Class, + insertText: `${element} {\n $1\n}`, + insertTextFormat: InsertTextFormat.Snippet, + documentation: `Create a ${element} block inside ${parentElement}` + })), + { + label: '@client', + kind: CompletionItemKind.Snippet, + insertText: `@client {\n $1\n}`, + insertTextFormat: InsertTextFormat.Snippet, + documentation: 'Create a client-side JavaScript block that runs when the element is clicked. The "e" event object is available.' + } + ]; + } + return suggestedElements.map(element => ({ label: element, kind: CompletionItemKind.Class, @@ -181,6 +231,27 @@ connection.onCompletion( documentation: `Create a ${element} block inside ${parentElement}` })); } + + // Inside interactive elements, suggest @client blocks + const interactiveElementMatch = /\b(button|button-light|button-secondary|button-compact|input|textarea|select|checkbox|radio|switch)\s*(?:\([^)]*\))?\s*{\s*$/.exec(linePrefix); + if (interactiveElementMatch) { + return [ + { + label: '@client', + kind: CompletionItemKind.Snippet, + insertText: `@client {\n $1\n}`, + insertTextFormat: InsertTextFormat.Snippet, + documentation: 'Create a client-side JavaScript block that runs when the element is clicked. The "e" event object is available.' + }, + { + label: 'text', + kind: CompletionItemKind.Class, + insertText: `"$1"`, + insertTextFormat: InsertTextFormat.Snippet, + documentation: 'Add text content to the element' + } + ]; + } // Get available single instance elements const availableSingleElements = singleElements.filter(element => !elementExists(text, element)); diff --git a/extension/syntaxes/blueprint.tmLanguage.json b/extension/syntaxes/blueprint.tmLanguage.json index 4071964..3668950 100644 --- a/extension/syntaxes/blueprint.tmLanguage.json +++ b/extension/syntaxes/blueprint.tmLanguage.json @@ -18,6 +18,9 @@ { "include": "#strings" }, + { + "include": "#script-blocks" + }, { "include": "#punctuation" } @@ -64,6 +67,24 @@ } ] }, + "script-blocks": { + "patterns": [ + { + "begin": "@(client|server)\\s*\\{", + "end": "\\}", + "beginCaptures": { + "0": { "name": "keyword.control.blueprint" }, + "1": { "name": "entity.name.function.blueprint" } + }, + "contentName": "source.js.embedded.blueprint", + "patterns": [ + { + "include": "source.js" + } + ] + } + ] + }, "properties": { "patterns": [ { @@ -71,7 +92,7 @@ "name": "support.type.property-name.blueprint" }, { - "match": "(? 50 ? "..." : "") + ); + } + + current++; + return node; + } + if (token.type === "identifier") { if (this.options.debug) { console.log( diff --git a/lib/BlueprintBuilder.js b/lib/BlueprintBuilder.js index 71f1139..931a0e7 100644 --- a/lib/BlueprintBuilder.js +++ b/lib/BlueprintBuilder.js @@ -46,6 +46,20 @@ class BlueprintBuilder { if (result.success) { this.fileHandler.writeCompiledFiles(outputDir, baseName, result.html, result.css); + if (result.hasServerCode && result.serverCode) { + const serverDir = path.join(outputDir, 'server'); + if (!fs.existsSync(serverDir)) { + fs.mkdirSync(serverDir, { recursive: true }); + } + + const serverFilePath = path.join(serverDir, `${baseName}-server.js`); + fs.writeFileSync(serverFilePath, result.serverCode, 'utf8'); + + if (this.options.debug) { + console.log(`[DEBUG] Server code written to ${serverFilePath}`); + } + } + if (this.options.debug) { console.log("[DEBUG] Build completed successfully"); } @@ -54,6 +68,7 @@ class BlueprintBuilder { return { success: result.success, errors: result.errors, + hasServerCode: result.hasServerCode }; } catch (error) { if (this.options.debug) { @@ -61,6 +76,7 @@ class BlueprintBuilder { } return { success: false, + hasServerCode: false, errors: [ { message: error.message, diff --git a/lib/BlueprintCompiler.js b/lib/BlueprintCompiler.js index c875b2b..a63684e 100644 --- a/lib/BlueprintCompiler.js +++ b/lib/BlueprintCompiler.js @@ -51,18 +51,25 @@ class BlueprintCompiler { const html = this.htmlGenerator.generateHTML(ast); const css = this.cssGenerator.generateCSS(); + const hasServerCode = this.htmlGenerator.hasServerCode(); + const serverCode = hasServerCode ? this.htmlGenerator.generateServerCode() : ''; const headContent = this.metadataManager.generateHeadContent(baseName); const finalHtml = this.htmlGenerator.generateFinalHtml(headContent, html); if (this.options.debug) { console.log("[DEBUG] Compilation completed successfully"); + if (hasServerCode) { + console.log("[DEBUG] Server code generated"); + } } return { success: true, html: finalHtml, css: css, + hasServerCode: hasServerCode, + serverCode: serverCode, errors: [], }; } catch (error) { @@ -73,6 +80,8 @@ class BlueprintCompiler { success: false, html: null, css: null, + hasServerCode: false, + serverCode: null, errors: [ { message: error.message, diff --git a/lib/HTMLGenerator.js b/lib/HTMLGenerator.js index 9dc8bdd..04d51af 100644 --- a/lib/HTMLGenerator.js +++ b/lib/HTMLGenerator.js @@ -6,6 +6,8 @@ const StandardElementGenerator = require("./generators/StandardElementGenerator" const RootNodeGenerator = require("./generators/RootNodeGenerator"); const InputElementGenerator = require("./generators/InputElementGenerator"); const MediaElementGenerator = require("./generators/MediaElementGenerator"); +const JavaScriptGenerator = require("./generators/JavaScriptGenerator"); +const ServerCodeGenerator = require("./generators/ServerCodeGenerator"); const HTMLTemplate = require("./templates/HTMLTemplate"); const StringUtils = require("./utils/StringUtils"); @@ -21,6 +23,9 @@ class HTMLGenerator { this.options = options; this.cssGenerator = cssGenerator; this.htmlTemplate = new HTMLTemplate(options); + this.serverGenerator = new ServerCodeGenerator(options); + this.jsGenerator = new JavaScriptGenerator(options, this.serverGenerator); + this.currentElement = null; this.generators = [ @@ -86,6 +91,10 @@ class HTMLGenerator { console.log("[HTMLGenerator] Node details:", StringUtils.safeStringify(node)); } + // Handle client and server blocks + if (node.type === "client" || node.type === "server") { + return this.handleScriptBlock(node); + } if (node.type === "element" && node.tag === "page") { if (this.options.debug) { @@ -94,20 +103,120 @@ class HTMLGenerator { return ""; } + const prevElement = this.currentElement; + this.currentElement = node; + // Check if this element has an explicit ID in its props + if (node.type === "element") { + const idProp = node.props.find(p => typeof p === "string" && p.startsWith("id:")); + if (idProp) { + const idValue = idProp.substring(idProp.indexOf(":") + 1).trim().replace(/^"|"$/g, ""); + node.elementId = idValue; + + // Register this element as reactive + this.jsGenerator.registerReactiveElement(idValue); + + if (this.options.debug) { + console.log(`[HTMLGenerator] Found explicit ID: ${idValue}, registered as reactive`); + } + } + } + + let result = ""; for (const generator of this.generators) { if (generator.canHandle(node)) { if (this.options.debug) { console.log(`[HTMLGenerator] Using ${generator.constructor.name} for node`); } - return generator.generate(node); + + // If this is an element that might have event handlers, + // add a unique ID to it for client scripts if it doesn't already have one + if (node.type === "element" && node.children.some(child => child.type === "client")) { + // Generate a unique ID for this element if it doesn't already have one + if (!node.elementId) { + node.elementId = this.jsGenerator.generateElementId(); + if (this.options.debug) { + console.log(`[HTMLGenerator] Generated ID for element: ${node.elementId}`); + } + } + + result = generator.generate(node); + + // Process all client blocks inside this element + node.children + .filter(child => child.type === "client") + .forEach(clientBlock => { + this.handleScriptBlock(clientBlock, node.elementId); + }); + } else { + result = generator.generate(node); + } + + this.currentElement = prevElement; + return result; } } - if (this.options.debug) { console.log(`[HTMLGenerator] No generator found for node type: ${node.type}`); } + + this.currentElement = prevElement; + return ""; + } + + /** + * Handles client and server script blocks. + * @param {Object} node - The script node to handle + * @param {string} [elementId] - The ID of the parent element, if any + * @returns {string} - Empty string as script blocks don't directly generate HTML + */ + handleScriptBlock(node, elementId = null) { + if (this.options.debug) { + console.log(`\n[HTMLGenerator] Processing ${node.type} script block`); + console.log(`[HTMLGenerator] Script content (first 50 chars): "${node.script.substring(0, 50)}..."`); + if (elementId) { + console.log(`[HTMLGenerator] Attaching to element: ${elementId}`); + } + } + + if (node.type === "client") { + if (!elementId && this.currentElement) { + if (!this.currentElement.elementId) { + this.currentElement.elementId = this.jsGenerator.generateElementId(); + } + elementId = this.currentElement.elementId; + } + + if (elementId) { + this.jsGenerator.addClientScript(elementId, node.script); + } else { + if (this.options.debug) { + console.log(`[HTMLGenerator] Warning: Client script with no parent element`); + } + } + } else if (node.type === "server") { + if (!elementId && this.currentElement) { + if (!this.currentElement.elementId) { + this.currentElement.elementId = this.jsGenerator.generateElementId(); + } + elementId = this.currentElement.elementId; + } + + if (elementId) { + const params = node.params || []; + if (this.options.debug && params.length > 0) { + console.log(`[HTMLGenerator] Server block parameters: ${params.join(", ")}`); + } + + this.jsGenerator.addServerScript(elementId, node.script, params); + } else { + if (this.options.debug) { + console.log(`[HTMLGenerator] Warning: Server script with no parent element`); + } + } + } + return ""; } @@ -177,7 +286,28 @@ class HTMLGenerator { * @returns {string} - A complete HTML document containing the provided head and body content. */ generateFinalHtml(headContent, bodyContent) { - return this.htmlTemplate.generateDocument(headContent, bodyContent); + const clientScripts = this.jsGenerator.generateClientScripts(); + + return this.htmlTemplate.generateDocument( + headContent, + bodyContent + clientScripts + ); + } + + /** + * Generates server-side code for Express.js API routes. + * @returns {string} - Express.js server code + */ + generateServerCode() { + return this.serverGenerator.generateServerCode(); + } + + /** + * Checks if there is any server code to generate. + * @returns {boolean} - Whether there is server code + */ + hasServerCode() { + return this.serverGenerator.hasServerCodeToGenerate(); } } diff --git a/lib/TokenParser.js b/lib/TokenParser.js index 62f6776..e6a1db9 100644 --- a/lib/TokenParser.js +++ b/lib/TokenParser.js @@ -102,6 +102,142 @@ class TokenParser { continue; } + if (char === "@") { + const startPos = current; + const startColumn = column; + const startLine = line; + current++; + column++; + + let blockType = ""; + char = input[current]; + + while (current < input.length && /[a-zA-Z]/.test(char)) { + blockType += char; + current++; + column++; + char = input[current]; + } + + if (blockType === "client" || blockType === "server") { + if (this.options.debug) { + console.log(`[TokenParser] ${blockType} block found at line ${startLine}, column ${startColumn}`); + } + + while (current < input.length && /\s/.test(char)) { + if (char === "\n") { + line++; + column = 1; + } else { + column++; + } + current++; + char = input[current]; + } + + let params = []; + if (blockType === "server" && char === "(") { + current++; + column++; + let paramString = ""; + let depth = 1; + + while (current < input.length && depth > 0) { + char = input[current]; + + if (char === "(") depth++; + if (char === ")") depth--; + + if (depth === 0) break; + + paramString += char; + if (char === "\n") { + line++; + column = 1; + } else { + column++; + } + current++; + } + + current++; + column++; + + params = paramString.split(",").map(p => p.trim()).filter(p => p); + + if (this.options.debug) { + console.log(`[TokenParser] Server block parameters: ${params.join(", ")}`); + } + + char = input[current]; + while (current < input.length && /\s/.test(char)) { + if (char === "\n") { + line++; + column = 1; + } else { + column++; + } + current++; + char = input[current]; + } + } + + if (char === "{") { + current++; + column++; + let script = ""; + let braceCount = 1; + + while (current < input.length && braceCount > 0) { + char = input[current]; + + if (char === "{") braceCount++; + if (char === "}") braceCount--; + + if (braceCount === 0) break; + + script += char; + if (char === "\n") { + line++; + column = 1; + } else { + column++; + } + current++; + } + + current++; + column++; + + tokens.push({ + type: blockType, + value: script.trim(), + params: params, + line: startLine, + column: startColumn, + }); + + if (this.options.debug) { + console.log(`[TokenParser] ${blockType} block script: "${script.trim().substring(0, 50)}..."`); + } + + continue; + } else { + throw new BlueprintError( + `Expected opening brace after @${blockType}${params.length ? '(...)' : ''}`, + line, + column + ); + } + } else { + throw new BlueprintError( + `Unknown block type: @${blockType}`, + startLine, + startColumn + ); + } + } + if (/[a-zA-Z]/.test(char)) { let value = ""; const startColumn = column; diff --git a/lib/generators/ButtonElementGenerator.js b/lib/generators/ButtonElementGenerator.js index 2312585..ea51c49 100644 --- a/lib/generators/ButtonElementGenerator.js +++ b/lib/generators/ButtonElementGenerator.js @@ -49,6 +49,22 @@ class ButtonElementGenerator { let attributes = ""; + const idProp = node.props.find((p) => typeof p === "string" && p.startsWith("id:")); + if (idProp) { + const idValue = idProp.substring(idProp.indexOf(":") + 1).trim().replace(/^"|"$/g, ""); + attributes += ` id="${idValue}"`; + node.elementId = idValue; + if (this.options.debug) { + console.log(`[ButtonElementGenerator] Added explicit ID attribute: ${idValue}`); + } + } + else if (node.elementId) { + attributes += ` id="${node.elementId}"`; + if (this.options.debug) { + console.log(`[ButtonElementGenerator] Adding generated ID attribute: ${node.elementId}`); + } + } + if (node.parent?.tag === "link") { const linkInfo = this.linkProcessor.processLink(node.parent); attributes += this.linkProcessor.getButtonClickHandler(linkInfo); diff --git a/lib/generators/StandardElementGenerator.js b/lib/generators/StandardElementGenerator.js index e899423..4397b8c 100644 --- a/lib/generators/StandardElementGenerator.js +++ b/lib/generators/StandardElementGenerator.js @@ -54,6 +54,22 @@ class StandardElementGenerator { let attributes = ""; + const idProp = node.props.find((p) => typeof p === "string" && p.startsWith("id:")); + if (idProp) { + const idValue = idProp.substring(idProp.indexOf(":") + 1).trim().replace(/^"|"$/g, ""); + attributes += ` id="${idValue}"`; + node.elementId = idValue; + if (this.options.debug) { + console.log(`[StandardElementGenerator] Added explicit ID attribute: ${idValue}`); + } + } + else if (node.elementId) { + attributes += ` id="${node.elementId}"`; + if (this.options.debug) { + console.log(`[StandardElementGenerator] Adding generated ID attribute: ${node.elementId}`); + } + } + if (node.props.find((p) => typeof p === "string" && p.startsWith("data-"))) { const dataProps = node.props.filter( (p) => typeof p === "string" && p.startsWith("data-") diff --git a/lib/mappings.js b/lib/mappings.js index b47f83d..7b63c3c 100644 --- a/lib/mappings.js +++ b/lib/mappings.js @@ -538,7 +538,7 @@ const ELEMENT_MAPPINGS = { }, card: { tag: "div", - defaultProps: ["raised", "card"], + defaultProps: ["card"], }, grid: { tag: "div", diff --git a/lib/server.js b/lib/server.js index 6c2552e..49198f4 100644 --- a/lib/server.js +++ b/lib/server.js @@ -11,6 +11,7 @@ class BlueprintServer { this.wsInstance = expressWs(this.app); this.options = { port: 3000, + apiPort: 3001, srcDir: "./src", outDir: "./dist", liveReload: false, @@ -19,6 +20,8 @@ class BlueprintServer { }; this.clients = new Map(); this.filesWithErrors = new Set(); + this.apiServers = new Map(); + this.apiPorts = new Map(); this.setupServer(); if (this.options.liveReload) { const watcher = chokidar.watch([], { @@ -51,6 +54,27 @@ class BlueprintServer { ); } + async buildFile(filePath) { + const relativePath = path.relative(this.options.srcDir, filePath); + const outputPath = path.join( + this.options.outDir, + relativePath.replace(/\.bp$/, ".html") + ); + this.ensureDirectoryExistence(outputPath); + + const builder = new BlueprintBuilder({ + minified: this.options.minified, + debug: this.options.debug, + }); + const buildResult = builder.build(filePath, path.dirname(outputPath)); + + if (buildResult.success && buildResult.hasServerCode) { + this.startApiServer(relativePath.replace(/\.bp$/, "")); + } + + return buildResult; + } + async buildAll() { this.log("INFO", "Building all Blueprint files...", "lightGray"); if (fs.existsSync(this.options.outDir)) { @@ -70,8 +94,17 @@ class BlueprintServer { ); this.ensureDirectoryExistence(outputPath); - const builder = new BlueprintBuilder({ minified: this.options.minified }); + const builder = new BlueprintBuilder({ + minified: this.options.minified, + debug: this.options.debug + }); const result = builder.build(file, path.dirname(outputPath)); + + if (result.success && result.hasServerCode) { + const fileName = relativePath.replace(/\.bp$/, ""); + this.startApiServer(fileName); + } + if (!result.success) { success = false; errors.push({ file, errors: result.errors }); @@ -138,8 +171,19 @@ class BlueprintServer { fs.readFile(htmlPath, "utf8", (err, data) => { if (err) return next(); let html = data; + + const filePath = req.path.endsWith(".html") + ? req.path.slice(0, -5) + : req.path === "/" + ? "index" + : req.path.replace(/^\//, ""); + + const apiPort = this.apiPorts.get(filePath) || this.options.apiPort; + const script = ` + `; + html = html.replace("", script + ""); + } + + res.setHeader("Content-Type", "text/html"); + res.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); + res.setHeader("Pragma", "no-cache"); + res.setHeader("Expires", "0"); + return res.send(html); + }); } else if (req.path === "/") { const pages = fs .readdirSync(this.options.outDir) @@ -311,83 +381,35 @@ class BlueprintServer { } setupWatcher(watcher) { - watcher.on("change", async (filepath) => { - if (filepath.endsWith(".bp")) { - this.log("INFO", `File ${filepath} has been changed`, "blue"); - try { - const builder = new BlueprintBuilder({ - minified: this.options.minified, - debug: this.options.debug, - }); - const relativePath = path.relative(this.options.srcDir, filepath); - const outputPath = path.join( - this.options.outDir, - relativePath.replace(/\.bp$/, ".html") - ); - this.ensureDirectoryExistence(outputPath); - const result = builder.build(filepath, path.dirname(outputPath)); - - if (result.success) { - this.log("SUCCESS", "Rebuilt successfully", "green"); - - this.filesWithErrors.delete(filepath); - - const htmlFile = relativePath.replace(/\.bp$/, ".html"); - const htmlPath = path.join(this.options.outDir, htmlFile); - - try { - const newContent = fs.readFileSync(htmlPath, "utf8"); - - for (const [client, page] of this.clients.entries()) { - if ( - page === htmlFile.replace(/\\/g, "/") && - client.readyState === 1 - ) { - try { - client.send( - JSON.stringify({ - type: "reload", - content: newContent, - }) - ); - } catch (error) { - this.log("ERROR", "Error sending content:", "red"); - this.clients.delete(client); - } - } - } - } catch (error) { - this.log("ERROR", "Error reading new content:", "red"); - } - } else { - this.filesWithErrors.add(filepath); - this.log("ERROR", `Build failed: ${result.errors.map(e => e.message).join(", ")}`, "red"); - this.log("INFO", "Waiting for next file change...", "orange"); - - for (const [client, page] of this.clients.entries()) { - const htmlFile = relativePath.replace(/\.bp$/, ".html"); - if ( - page === htmlFile.replace(/\\/g, "/") && - client.readyState === 1 - ) { - try { - client.send( - JSON.stringify({ - type: "buildError", - errors: result.errors, - }) - ); - } catch (error) { - this.log("ERROR", "Error sending error notification:", "red"); - this.clients.delete(client); - } - } - } - } - } catch (error) { - this.log("ERROR", "Unexpected error during build:", "red"); - this.filesWithErrors.add(filepath); + watcher.on("change", async (filePath) => { + if (!filePath.endsWith(".bp")) return; + this.log("INFO", `File changed: ${filePath}`, "blue"); + + const result = await this.buildFile(filePath); + + if (result.success) { + this.log("SUCCESS", `Rebuilt ${filePath}`, "green"); + this.filesWithErrors.delete(filePath); + + if (result.hasServerCode) { + const relativePath = path.relative(this.options.srcDir, filePath); + const fileName = relativePath.replace(/\.bp$/, ""); + this.startApiServer(fileName); } + + if (this.options.liveReload) { + this.notifyClients(filePath); + } + } else { + this.log("ERROR", `Build failed for ${filePath}`, "red"); + result.errors.forEach((err) => { + this.log( + "ERROR", + `${err.type} at line ${err.line}, column ${err.column}: ${err.message}`, + "red" + ); + }); + this.filesWithErrors.add(filePath); } }); @@ -468,6 +490,119 @@ class BlueprintServer { } }); } + + startApiServer(fileName) { + const serverFilePath = path.join(this.options.outDir, 'server', `${fileName}-server.js`); + + if (!fs.existsSync(serverFilePath)) { + this.log("ERROR", `API server file not found: ${serverFilePath}`, "red"); + return; + } + + let apiPort; + + if (this.apiPorts.has(fileName)) { + apiPort = this.apiPorts.get(fileName); + this.log("INFO", `Reusing port ${apiPort} for ${fileName}`, "blue"); + } else { + apiPort = this.options.apiPort; + this.options.apiPort++; + this.log("INFO", `Assigning new port ${apiPort} for ${fileName}`, "blue"); + } + + const startNewServer = () => { + try { + delete require.cache[require.resolve(path.resolve(serverFilePath))]; + + const createApiServer = require(path.resolve(serverFilePath)); + const apiServer = createApiServer(apiPort); + + this.apiServers.set(fileName, apiServer); + this.apiPorts.set(fileName, apiPort); + + this.log("SUCCESS", `API server started for ${fileName} on port ${apiPort}`, "green"); + } catch (error) { + this.log("ERROR", `Failed to start API server: ${error.message}`, "red"); + console.error(error); + } + }; + + if (this.apiServers.has(fileName)) { + const existingServer = this.apiServers.get(fileName); + this.log("INFO", `Stopping previous API server for ${fileName}`, "blue"); + + try { + if (existingServer && typeof existingServer.close === 'function') { + existingServer.close(() => { + this.log("INFO", `Previous server closed, starting new one`, "blue"); + setTimeout(startNewServer, 300); + }); + return; + } + + if (existingServer && existingServer.server && existingServer.server.close) { + existingServer.server.close(() => { + this.log("INFO", `Previous server closed, starting new one`, "blue"); + setTimeout(startNewServer, 300); + }); + return; + } + + this.log("WARNING", `Could not properly close previous server, waiting longer`, "orange"); + setTimeout(startNewServer, 1000); + } catch (err) { + this.log("WARNING", `Error closing previous server: ${err.message}`, "orange"); + setTimeout(startNewServer, 2000); + } + } else { + startNewServer(); + } + } + + notifyClients(filePath) { + const relativePath = path.relative(this.options.srcDir, filePath); + const htmlFile = relativePath.replace(/\.bp$/, ".html"); + const htmlPath = path.join(this.options.outDir, htmlFile); + const fileName = relativePath.replace(/\.bp$/, ""); + + try { + let newContent = fs.readFileSync(htmlPath, "utf8"); + + const apiPort = this.apiPorts.get(fileName) || this.options.apiPort; + + if (!newContent.includes('window.blueprintServerPort =')) { + newContent = newContent.replace( + '', + ` + ` + ); + } + + for (const [client, page] of this.clients.entries()) { + if ( + page === htmlFile.replace(/\\/g, "/") && + client.readyState === 1 + ) { + try { + client.send( + JSON.stringify({ + type: "reload", + content: newContent, + }) + ); + this.log("INFO", `Sent update to client for ${htmlFile}`, "blue"); + } catch (error) { + this.log("ERROR", "Error sending content:", "red"); + this.clients.delete(client); + } + } + } + } catch (error) { + this.log("ERROR", `Error reading new content from ${htmlPath}: ${error.message}`, "red"); + } + } } module.exports = BlueprintServer; diff --git a/lib/utils/StringUtils.js b/lib/utils/StringUtils.js index e609ad2..8ba7f7c 100644 --- a/lib/utils/StringUtils.js +++ b/lib/utils/StringUtils.js @@ -52,8 +52,23 @@ const safeStringify = (obj) => { } }; +/** + * Generates a random ID string suitable for use as an HTML element ID. + * @param {number} [length=8] - The length of the random ID + * @returns {string} - A random alphanumeric ID with bp_ prefix + */ +const generateRandomId = (length = 8) => { + const chars = 'abcdefghijklmnopqrstuvwxyz0123456789'; + let result = 'bp_'; + for (let i = 0; i < length; i++) { + result += chars.charAt(Math.floor(Math.random() * chars.length)); + } + return result; +}; + module.exports = { escapeHTML, toKebabCase, - safeStringify + safeStringify, + generateRandomId }; \ No newline at end of file diff --git a/package.json b/package.json index c0c6ed3..5f5508f 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "dependencies": { "axios": "^1.7.9", "chokidar": "^3.5.3", + "cors": "^2.8.5", "express": "^4.18.2", "express-ws": "^5.0.2", "ws": "^8.18.0" -- 2.47.2 From 73c8048c9d4a0de8b038fc470753d5730e117e05 Mon Sep 17 00:00:00 2001 From: obvTiger Date: Thu, 27 Mar 2025 17:29:28 +0100 Subject: [PATCH 2/4] feat: code blocks beta --- examples/reactive-example.bp | 190 ++++++++++++++++++++ examples/server-form-example.bp | 163 ++++++++++++++++++ lib/StandardElementGenerator.js | 179 +++++++++++++++++++ lib/generators/JavaScriptGenerator.js | 239 ++++++++++++++++++++++++++ lib/generators/ServerCodeGenerator.js | 209 ++++++++++++++++++++++ 5 files changed, 980 insertions(+) create mode 100644 examples/reactive-example.bp create mode 100644 examples/server-form-example.bp create mode 100644 lib/StandardElementGenerator.js create mode 100644 lib/generators/JavaScriptGenerator.js create mode 100644 lib/generators/ServerCodeGenerator.js diff --git a/examples/reactive-example.bp b/examples/reactive-example.bp new file mode 100644 index 0000000..67dc39a --- /dev/null +++ b/examples/reactive-example.bp @@ -0,0 +1,190 @@ +page(favicon:"/favicon.ico") { + title { "Blueprint - Reactive Example" } + description { "Example of reactive values in Blueprint" } + keywords { "blueprint, javascript, reactive, state" } + author { "Blueprint Team" } +} + +navbar { + horizontal { + link(href:index) { text(bold) { "Blueprint" } } + links { + link(href:index) { "Home" } + link(href:examples) { "Examples" } + link(href:docs) { "Docs" } + } + } +} + +section(wide, centered) { + vertical(centered) { + title(huge) { "Reactive Values Demo" } + text { "Demonstration of reactive state management in Blueprint" } + } +} + +section(wide) { + title { "Counter Example" } + + vertical(centered) { + // Notice the ID uses underscore format. - is not allowed + text(id:counter_value) { "0" } + + horizontal(centered) { + button-secondary(id:decrease_btn) { + "Decrease" + + @client { + // Use the reactive counter_value with numberValue + const currentValue = counter_value.numberValue; + counter_value.setNumber(currentValue - 1); + console.log("Counter decreased to", currentValue - 1); + } + } + + button(id:increase_btn) { + "Increase" + + @client { + // Use the reactive counter_value with numberValue + const currentValue = counter_value.numberValue; + counter_value.setNumber(currentValue + 1); + console.log("Counter increased to", currentValue + 1); + } + } + } + } +} + +section(wide) { + title { "Color Changer with Reactive Elements" } + + vertical(centered) { + // Element with explicit ID that will be styled + card(id:color_target, raised) { + title { "Change My Background" } + text { "Click the buttons below to change my background color" } + } + + // Display the current color + text(subtle, id:color_display) { "Current color: None" } + + horizontal(centered) { + button-secondary(id:red_btn) { + "Red" + + @client { + // Using reactive methods + color_target.setStyle("backgroundColor", "#e74c3c"); + color_display.set("Current color: Red"); + } + } + + button-secondary(id:green_btn) { + "Green" + + @client { + // Using reactive methods + color_target.setStyle("backgroundColor", "#2ecc71"); + color_display.set("Current color: Green"); + } + } + + button-secondary(id:blue_btn) { + "Blue" + + @client { + // Using reactive methods + color_target.setStyle("backgroundColor", "#3498db"); + color_display.set("Current color: Blue"); + } + } + + button-secondary(id:reset_btn) { + "Reset" + + @client { + // Using reactive methods + color_target.setStyle("backgroundColor", ""); + color_display.set("Current color: None"); + } + } + } + } +} + +section(wide) { + title { "Data Types Example" } + + vertical(centered) { + horizontal(centered) { + vertical { + text(bold) { "Number:" } + text(id:number_display) { "42" } + } + + vertical { + text(bold) { "Text:" } + text(id:text_display) { "Hello Blueprint" } + } + + vertical { + text(bold) { "Boolean:" } + text(id:boolean_display) { "true" } + } + } + + horizontal(centered) { + button-secondary(id:modify_values_btn) { + "Modify Values" + + @client { + // Use type-specific methods + number_display.setNumber(number_display.numberValue * 2); + text_display.set(text_display.value + "!"); + boolean_display.set(!boolean_display.booleanValue); + + console.log("Number value:", number_display.numberValue); + console.log("Text value:", text_display.textValue); + console.log("Boolean value:", boolean_display.booleanValue); + } + } + + button-secondary(id:reset_values_btn) { + "Reset Values" + + @client { + number_display.setNumber(42); + text_display.set("Hello Blueprint"); + boolean_display.set("true"); + } + } + } + } +} + +section(wide) { + title { "Subscription Example" } + + vertical(centered) { + // Input and subscribed elements + input(id:user_input) { "Type something..." } + + text(bold) { "Live Preview:" } + text(id:preview_output) { "Type something..." } + + // Add a client block to handle typing + @client { + // Set up the input to update the preview on input + user_input.element.addEventListener("input", function(e) { + // Use the reactive API to update the preview + preview_output.set(e.target.value); + }); + + // Example of subscription - will log changes to the console + preview_output.subscribe(function(newValue) { + console.log("Preview content changed to:", newValue); + }); + } + } +} \ No newline at end of file diff --git a/examples/server-form-example.bp b/examples/server-form-example.bp new file mode 100644 index 0000000..26c8fcf --- /dev/null +++ b/examples/server-form-example.bp @@ -0,0 +1,163 @@ +page(favicon:"/favicon.ico") { + title { "Blueprint - Server Form Example" } + description { "Example of server-side form processing in Blueprint" } + keywords { "blueprint, javascript, server, api, form" } + author { "Blueprint Team" } +} + +navbar { + horizontal { + link(href:index) { text(bold) { "Blueprint" } } + links { + link(href:index) { "Home" } + link(href:examples) { "Examples" } + link(href:docs) { "Docs" } + } + } +} + +section(wide, centered) { + vertical(centered) { + title(huge) { "Server-Side Form Processing" } + text { "Demonstration of server-side form handling with Blueprint" } + } +} + +section(wide) { + title { "Contact Form Example" } + + vertical(centered) { + card(raised) { + title { "Submit a Message" } + text { "Fill out the form below to submit a message to the server." } + + vertical { + text(bold) { "Your Name" } + input(id:user_name) { "John Doe" } + + text(bold) { "Your Email" } + input(id:user_email) { "john@example.com" } + + text(bold) { "Your Message" } + textarea(id:user_message) { "Hello from Blueprint!" } + + // Display the server response + text(id:form_result) { "" } + + button(id:submit_form) { + "Submit Form" + + // Server block with parameters specifying which input values to include + @server(user_name, user_email, user_message) { + console.log("Form submission received:"); + console.log("Name:", user_name); + console.log("Email:", user_email); + console.log("Message:", user_message); + + // Validate inputs + const errors = []; + + if (!user_name || user_name.length < 2) { + errors.push("Name is too short"); + } + + if (!user_email || !user_email.includes('@')) { + errors.push("Invalid email address"); + } + + if (!user_message || user_message.length < 5) { + errors.push("Message is too short"); + } + + // Return error message if validation fails + if (errors.length > 0) { + return res.status(400).json({ + form_result: "Error: " + errors.join(", ") + }); + } + + // Process the form (in a real app, this might save to a database) + const timestamp = new Date().toISOString(); + + // Return success response that will update the form_result element + return res.status(200).json({ + form_result: `Thank you, ${user_name}! Your message was received at ${timestamp}.` + }); + } + } + } + } + } +} + +section(wide) { + title { "User Registration Example" } + + vertical(centered) { + card(raised) { + title { "Register a New Account" } + text { "Fill out the form below to register a new account." } + + vertical { + text(bold) { "Username" } + input(id:username) { "newuser123" } + + text(bold) { "Email" } + input(id:email) { "newuser@example.com" } + + text(bold) { "Password" } + input(id:password) { "password123" } + + text(bold) { "Confirm Password" } + input(id:confirm_password) { "password123" } + + // Display the registration status + text(id:registration_status) { "" } + + button(id:register_user) { + "Register" + + @server(username, email, password, confirm_password) { + console.log("Registration request for username:", username); + + // Validate username + if (!username || username.length < 4) { + return res.status(400).json({ + registration_status: "Error: Username must be at least 4 characters" + }); + } + + // Validate email + if (!email || !email.includes('@')) { + return res.status(400).json({ + registration_status: "Error: Invalid email address" + }); + } + + // Validate password + if (!password || password.length < 8) { + return res.status(400).json({ + registration_status: "Error: Password must be at least 8 characters" + }); + } + + // Check password matching + if (password !== confirm_password) { + return res.status(400).json({ + registration_status: "Error: Passwords do not match" + }); + } + + // In a real app, this would create the user account + const userId = Math.floor(Math.random() * 10000); + + // Return success response + return res.status(200).json({ + registration_status: `Success! User ${username} registered with ID #${userId}` + }); + } + } + } + } + } +} \ No newline at end of file diff --git a/lib/StandardElementGenerator.js b/lib/StandardElementGenerator.js new file mode 100644 index 0000000..ad9499e --- /dev/null +++ b/lib/StandardElementGenerator.js @@ -0,0 +1,179 @@ +/** + * Generates HTML for standard HTML elements. + */ +class StandardElementGenerator { + /** + * Creates a new StandardElementGenerator instance. + * @param {Object} options - Generator options + * @param {CSSGenerator} cssGenerator - CSS generator instance + * @param {HTMLGenerator} htmlGenerator - HTML generator instance + */ + constructor(options = {}, cssGenerator, htmlGenerator) { + this.options = options; + this.cssGenerator = cssGenerator; + this.htmlGenerator = htmlGenerator; + this.parentGenerator = htmlGenerator; + } + + /** + * Determines whether this generator can handle a given node. + * @param {Object} node - Node to check + * @returns {boolean} - True if this generator can handle the node + */ + canHandle(node) { + return node.type === "element"; + } + + /** + * Generates HTML for a standard element. + * @param {Object} node - Node to generate HTML for + * @returns {string} - Generated HTML + */ + generate(node) { + if (this.options.debug) { + console.log(`[StandardElementGenerator] Processing element node: ${node.tag || node.name}`); + } + + const mapping = ELEMENT_MAPPINGS ? ELEMENT_MAPPINGS[node.tag] : null; + + const tagName = mapping ? mapping.tag : (node.name || node.tag || "div"); + + let className = ""; + if (this.cssGenerator) { + className = this.cssGenerator.generateClassName(node.tag); + const { cssProps, nestedRules } = this.cssGenerator.nodeToCSSProperties(node); + this.cssGenerator.cssRules.set(`.${className}`, { + cssProps, + nestedRules, + }); + } + + const fullClassName = this.generateClassName(node); + if (className && fullClassName) { + className = `${className} ${fullClassName}`; + } else if (fullClassName) { + className = fullClassName; + } + + const attributes = this.generateAttributes(node, node.elementId, className); + + let content = ""; + const children = node.children || []; + + for (const child of children) { + if ( + child.type === "client" || + child.type === "server" || + (child.type === "element" && (child.name === "script" || child.tag === "script")) + ) { + continue; + } + child.parent = node; + content += this.htmlGenerator.generateHTML(child); + if (!this.options.minified) { + content += "\n"; + } + } + + return `<${tagName}${attributes}>${this.options.minified ? "" : "\n"}${content}${this.options.minified ? "" : ""}${this.options.minified ? "" : "\n"}`; + } + + /** + * Generates a className string for the element. + * @param {Object} node - The node to generate class for + * @returns {string} - The generated class name + */ + generateClassName(node) { + let classNames = []; + + if (node.attributes && Array.isArray(node.attributes)) { + const classAttr = node.attributes.find(attr => attr.name === "class"); + if (classAttr && classAttr.value) { + classNames.push(classAttr.value); + } + } + + if (node.props && Array.isArray(node.props)) { + for (const prop of node.props) { + if (typeof prop === "string") { + if (prop.startsWith("class:")) { + classNames.push(prop.substring(prop.indexOf(":") + 1).trim().replace(/^"|"$/g, "")); + } + } + } + } + + return classNames.join(" "); + } + + /** + * Generates an attributes string for the element. + * @param {Object} node - The node to generate attributes for + * @param {string} id - The element ID + * @param {string} className - The element class name + * @returns {string} - The generated attributes string + */ + generateAttributes(node, id, className) { + let attributes = ""; + + if (id) { + attributes += ` id="${id}"`; + } else if (node.props && Array.isArray(node.props)) { + const idProp = node.props.find(p => typeof p === "string" && p.startsWith("id:")); + if (idProp) { + const idValue = idProp.substring(idProp.indexOf(":") + 1).trim().replace(/^"|"$/g, ""); + attributes += ` id="${idValue}"`; + node.elementId = idValue; + } + } + + if (className) { + attributes += ` class="${className}"`; + } + + if (node.props && Array.isArray(node.props)) { + const dataProps = node.props.filter(p => typeof p === "string" && p.startsWith("data-")); + if (dataProps.length) { + attributes += " " + dataProps.join(" "); + } + } + + if (node.attributes && Array.isArray(node.attributes)) { + for (const attr of node.attributes) { + if (attr.name === "id" || attr.name === "class") continue; + + if (attr.value === true) { + attributes += ` ${attr.name}`; + } else if (attr.value !== false && attr.value !== undefined && attr.value !== null) { + attributes += ` ${attr.name}="${attr.value}"`; + } + } + } + + if (node.props && Array.isArray(node.props)) { + for (const prop of node.props) { + if (typeof prop === "string") { + if (prop.startsWith("id:") || prop.startsWith("class:") || prop.startsWith("data-")) continue; + + const colonIndex = prop.indexOf(":"); + if (colonIndex !== -1) { + const name = prop.substring(0, colonIndex).trim(); + const value = prop.substring(colonIndex + 1).trim().replace(/^"|"$/g, ""); + + if (!attributes.includes(` ${name}="`)) { + attributes += ` ${name}="${value}"`; + } + } else { + if (!attributes.includes(` ${prop}`)) { + attributes += ` ${prop}`; + } + } + } + } + } + + return attributes; + } +} + +module.exports = StandardElementGenerator; \ No newline at end of file diff --git a/lib/generators/JavaScriptGenerator.js b/lib/generators/JavaScriptGenerator.js new file mode 100644 index 0000000..cc16c45 --- /dev/null +++ b/lib/generators/JavaScriptGenerator.js @@ -0,0 +1,239 @@ +const StringUtils = require("../utils/StringUtils"); + +/** + * Generates JavaScript code for client and server blocks with reactive data handling. + */ +class JavaScriptGenerator { + /** + * Creates a new JavaScript generator. + * @param {Object} options - Options for the generator + * @param {ServerCodeGenerator} [serverGenerator] - Server code generator instance + */ + constructor(options = {}, serverGenerator = null) { + this.options = options; + this.clientScripts = new Map(); + this.serverScripts = []; + this.reactiveElements = new Set(); + this.serverGenerator = serverGenerator; + } + + /** + * Sets the server code generator instance + * @param {ServerCodeGenerator} serverGenerator - Server code generator instance + */ + setServerGenerator(serverGenerator) { + this.serverGenerator = serverGenerator; + } + + /** + * Registers a client-side script to be executed when an element is clicked. + * @param {string} elementId - The ID of the element to attach the event to + * @param {string} code - The JavaScript code to execute + */ + addClientScript(elementId, code) { + if (this.options.debug) { + console.log(`[JavaScriptGenerator] Adding client script for element ${elementId}`); + } + this.clientScripts.set(elementId, code); + } + + /** + * Adds a server-side script to be executed on the server. + * @param {string} elementId - The ID of the element that triggers the server action + * @param {string} code - The JavaScript code to execute + * @param {Array} params - The input parameters to retrieve from the client + */ + addServerScript(elementId, code, params = []) { + if (this.options.debug) { + console.log(`[JavaScriptGenerator] Adding server script for element ${elementId}`); + if (params.length > 0) { + console.log(`[JavaScriptGenerator] Script parameters: ${params.join(", ")}`); + } + } + + this.serverScripts.push({ + elementId, + code, + params + }); + + if (this.serverGenerator) { + this.serverGenerator.addServerRoute(elementId, code, params); + } + + this.clientScripts.set(elementId, `_bp_serverAction_${elementId}(e);`); + } + + /** + * Registers an element as reactive, meaning it will have state management functions + * @param {string} elementId - The ID of the element to make reactive + */ + registerReactiveElement(elementId) { + if (this.options.debug) { + console.log(`[JavaScriptGenerator] Registering reactive element: ${elementId}`); + } + this.reactiveElements.add(elementId); + } + + /** + * Generates a unique element ID. + * @returns {string} - A unique element ID with bp_ prefix + */ + generateElementId() { + return StringUtils.generateRandomId(); + } + + /** + * Generates the reactive store and helper functions for state management + * @returns {string} - JavaScript code for reactive functionality + */ + generateReactiveStore() { + if (this.reactiveElements.size === 0) { + return ''; + } + + return ` +const _bp_store = { + listeners: new Map(), + subscribe: function(id, callback) { + if (!this.listeners.has(id)) { + this.listeners.set(id, []); + } + this.listeners.get(id).push(callback); + }, + notify: function(id, newValue) { + if (this.listeners.has(id)) { + this.listeners.get(id).forEach(callback => callback(newValue)); + } + } +}; + +function _bp_makeElementReactive(id) { + const element = document.getElementById(id); + if (!element) { + console.log(\`[Blueprint] Element with ID \${id} not found\`); + return null; + } + + return { + element: element, + get value() { + return element.textContent; + }, + set: function(newValue) { + const valueString = String(newValue); + element.textContent = valueString; + _bp_store.notify(id, valueString); + return this; + }, + setNumber: function(num) { + const valueString = String(Number(num)); + element.textContent = valueString; + _bp_store.notify(id, valueString); + return this; + }, + setHtml: function(html) { + element.innerHTML = html; + _bp_store.notify(id, html); + return this; + }, + setStyle: function(property, value) { + element.style[property] = value; + return this; + }, + setClass: function(className, add = true) { + if (add) { + element.classList.add(className); + } else { + element.classList.remove(className); + } + return this; + }, + on: function(event, callback) { + element.addEventListener(event, callback); + return this; + }, + subscribe: function(callback) { + _bp_store.subscribe(id, callback); + return this; + }, + get textValue() { + return element.textContent; + }, + get numberValue() { + return Number(element.textContent); + }, + get booleanValue() { + const text = element.textContent.toLowerCase(); + return text === 'true' || text === '1' || text === 'yes'; + } + }; +} + +// Initialize reactive elements`; + } + + /** + * Generates initialization code for reactive elements + * @returns {string} - JavaScript initialization code for reactive elements + */ + generateReactiveElementInit() { + if (this.reactiveElements.size === 0) { + return ''; + } + + const initCode = Array.from(this.reactiveElements) + .map(id => `const ${id} = _bp_makeElementReactive('${id}');`) + .join('\n '); + + return ` + ${initCode}`; + } + + /** + * Generates all client-side JavaScript code. + * @returns {string} - The generated JavaScript code + */ + generateClientScripts() { + if (this.clientScripts.size === 0 && this.reactiveElements.size === 0 && !this.serverGenerator) { + return ''; + } + + let initCode = ''; + if (this.reactiveElements.size > 0) { + initCode = this.generateReactiveElementInit(); + } + + let scripts = ''; + this.clientScripts.forEach((code, elementId) => { + scripts += ` document.getElementById('${elementId}').addEventListener('click', function(e) { + ${code} + });\n`; + }); + + let serverClientCode = ''; + if (this.serverGenerator) { + serverClientCode = this.serverGenerator.generateClientAPICalls(); + } + + return ``; + } + + /** + * Gets all server-side scripts. + * @returns {Array} - Array of server-side script objects + */ + getServerScripts() { + return this.serverScripts; + } +} + +module.exports = JavaScriptGenerator; \ No newline at end of file diff --git a/lib/generators/ServerCodeGenerator.js b/lib/generators/ServerCodeGenerator.js new file mode 100644 index 0000000..d7342df --- /dev/null +++ b/lib/generators/ServerCodeGenerator.js @@ -0,0 +1,209 @@ +const crypto = require('crypto'); +const StringUtils = require("../utils/StringUtils"); + +/** + * Generates server-side Express.js routes for server blocks. + */ +class ServerCodeGenerator { + /** + * Creates a new server code generator. + * @param {Object} options - Options for the generator + */ + constructor(options = {}) { + this.options = options; + this.serverRoutes = new Map(); + this.hasServerCode = false; + } + + /** + * Registers a server-side route to be executed when requested. + * @param {string} elementId - The ID of the element that triggers the route + * @param {string} code - The JavaScript code to execute + * @param {Array} params - The input parameters to retrieve from the client + */ + addServerRoute(elementId, code, params = []) { + if (this.options.debug) { + console.log(`[ServerCodeGenerator] Adding server route for element ${elementId}`); + if (params.length > 0) { + console.log(`[ServerCodeGenerator] Route parameters: ${params.join(", ")}`); + } + } + + const endpoint = this.generateEndpointPath(elementId); + + this.serverRoutes.set(elementId, { + endpoint, + code, + params + }); + + this.hasServerCode = true; + } + + /** + * Generates a unique endpoint path for a server route. + * @param {string} elementId - The element ID for the route + * @returns {string} - A unique endpoint path + */ + generateEndpointPath(elementId) { + const hash = crypto.createHash('sha256') + .update(elementId + Math.random().toString()) + .digest('hex') + .substring(0, 12); + + return `/api/${StringUtils.toKebabCase(elementId)}-${hash}`; + } + + /** + * Generates client-side JavaScript for making API calls to server routes. + * @returns {string} - JavaScript code for making API calls + */ + generateClientAPICalls() { + if (this.serverRoutes.size === 0) { + return ''; + } + + let apiCode = ` +const _bp_api = { + post: async function(url, data) { + try { + const serverPort = window.blueprintServerPort || 3001; + + const fullUrl = \`http://\${window.location.hostname}:\${serverPort}\${url}\`; + + const response = await fetch(fullUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(data) + }); + + if (!response.ok) { + throw new Error(\`API request failed: \${response.status}\`); + } + + return await response.json(); + } catch (error) { + console.error('[Blueprint API]', error); + return { error: error.message }; + } + } +}; + + +`; + + + this.serverRoutes.forEach((route, elementId) => { + const { endpoint, params } = route; + + apiCode += `async function _bp_serverAction_${elementId}(e) { + const data = {}; +${params.map(param => ` data.${param} = ${param} ? ${param}.value : null;`).join('\n')} + + try { + const result = await _bp_api.post('${endpoint}', data); + console.log('[Blueprint API] Server response:', result); + + if (result && typeof result === 'object') { + Object.keys(result).forEach(key => { + if (window[key] && typeof window[key].set === 'function') { + window[key].set(result[key]); + } + else { + const element = document.getElementById(key); + if (element) { + element.textContent = result[key]; + console.log(\`[Blueprint API] Updated element #\${key} with value: \${result[key]}\`); + } + } + }); + } + + return result; + } catch (error) { + console.error('[Blueprint API] Error in server action:', error); + } +}\n`; + }); + + return apiCode; + } + + /** + * Generates Express.js server code for all registered server routes. + * @returns {string} - Express.js server code + */ + generateServerCode() { + if (this.serverRoutes.size === 0) { + return ''; + } + + let serverCode = ` +const express = require('express'); +const bodyParser = require('body-parser'); +const cors = require('cors'); + +function createBlueprintApiServer(port = 3001) { + const app = express(); + + app.use(cors()); + app.use(bodyParser.json()); + + app.use((req, res, next) => { + console.log(\`[\${new Date().toISOString()}] \${req.method} \${req.url}\`); + next(); + }); + +`; + + this.serverRoutes.forEach((route, elementId) => { + const { endpoint, code, params } = route; + + serverCode += ` + app.post('${endpoint}', async (req, res) => { + try { + ${params.map(param => `const ${param} = req.body.${param};`).join('\n ')} + + let result; + try { + ${code} + } catch (error) { + console.error(\`Error in server block \${error.message}\`); + return res.status(500).json({ error: error.message }); + } + + return res.json(result || {}); + } catch (error) { + console.error(\`Error processing request: \${error.message}\`); + return res.status(500).json({ error: error.message }); + } + });`; + }); + + serverCode += ` + + app.listen(port, () => { + console.log(\`Blueprint API server running at http://localhost:\${port}\`); + }); + + return app; +} + +module.exports = createBlueprintApiServer; +`; + + return serverCode; + } + + /** + * Checks if there is any server code to generate. + * @returns {boolean} - Whether there is server code + */ + hasServerCodeToGenerate() { + return this.hasServerCode; + } +} + +module.exports = ServerCodeGenerator; \ No newline at end of file -- 2.47.2 From 79a7f92ff9ab14e4504f52956b3097c754ee3245 Mon Sep 17 00:00:00 2001 From: obvTiger Date: Thu, 27 Mar 2025 17:33:20 +0100 Subject: [PATCH 3/4] chore: repackage extension --- extension/blueprint-language-0.0.1.vsix | Bin 585997 -> 586172 bytes extension/server/out/.tsbuildinfo | 2 +- extension/server/out/server.js | 139 ++++++++++++------------ extension/server/out/server.js.map | 2 +- 4 files changed, 74 insertions(+), 69 deletions(-) diff --git a/extension/blueprint-language-0.0.1.vsix b/extension/blueprint-language-0.0.1.vsix index 1bf285e74be8b100c8a43abf51314f8671ae6af7..c69c64698cf548384305a38268e1edea70ceebc0 100644 GIT binary patch delta 19699 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 { const position = textDocumentPosition.position; const line = lines[position.line]; const linePrefix = line.slice(0, position.character); + // Suggest script blocks after @ symbol + if (linePrefix.trim().endsWith('@')) { + return scriptBlocks.map(block => ({ + label: `@${block}`, + kind: node_1.CompletionItemKind.Snippet, + insertText: `@${block} {\n $1\n}`, + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: block === 'client' ? + 'Create a client-side JavaScript block that runs when the element is clicked. The "e" event object is available.' : + 'Create a server-side JavaScript block that runs on the server.' + })); + } // Check if this is a template completion trigger if (linePrefix.trim() === '!') { return [{ @@ -106,65 +122,6 @@ connection.onCompletion((textDocumentPosition) => { }] }]; } - // Check for @client or @server block completion - if (linePrefix.trim() === '@' || linePrefix.trim().startsWith('@')) { - return scriptBlocks.map(blockType => ({ - label: `@${blockType}`, - kind: node_1.CompletionItemKind.Snippet, - insertText: `@${blockType} {\n $1\n}`, - insertTextFormat: node_1.InsertTextFormat.Snippet, - documentation: `Create a ${blockType} script block` - })); - } - // After an @client or @server block opening brace, suggest JS snippets - const scriptBlockMatch = /@(client|server)\s*{\s*$/.exec(linePrefix); - if (scriptBlockMatch) { - const blockType = scriptBlockMatch[1]; - const jsSnippets = []; - if (blockType === 'client') { - jsSnippets.push({ - label: 'element.set', - kind: node_1.CompletionItemKind.Method, - insertText: '${1:elementId}.set("${2:new value}");', - insertTextFormat: node_1.InsertTextFormat.Snippet, - documentation: 'Set the content of an element' - }, { - label: 'console.log', - kind: node_1.CompletionItemKind.Method, - insertText: 'console.log("${1:message}");', - insertTextFormat: node_1.InsertTextFormat.Snippet, - documentation: 'Log a message to the console' - }, { - label: 'DOM event handling', - kind: node_1.CompletionItemKind.Snippet, - insertText: 'e.preventDefault();\n${1}', - insertTextFormat: node_1.InsertTextFormat.Snippet, - documentation: 'Prevent default action of event' - }); - } - else if (blockType === 'server') { - jsSnippets.push({ - label: 'element.set', - kind: node_1.CompletionItemKind.Method, - insertText: '${1:elementId}.set(${2:newValue});', - insertTextFormat: node_1.InsertTextFormat.Snippet, - documentation: 'Update element value from server' - }, { - label: 'element.value', - kind: node_1.CompletionItemKind.Property, - insertText: 'const value = ${1:elementId}.value;', - insertTextFormat: node_1.InsertTextFormat.Snippet, - documentation: 'Get the current value of an element' - }, { - label: 'fetch data', - kind: node_1.CompletionItemKind.Snippet, - insertText: 'const response = await fetch("${1:url}");\nconst data = await response.json();\n${2}', - insertTextFormat: node_1.InsertTextFormat.Snippet, - documentation: 'Fetch data from an API' - }); - } - return jsSnippets; - } // Inside page block if (text.includes('page {') && !text.includes('}')) { return pageProperties.map(prop => ({ @@ -175,13 +132,22 @@ connection.onCompletion((textDocumentPosition) => { documentation: `Add ${prop} to the page configuration` })); } - // After an opening parenthesis, suggest properties + // After an opening parenthesis, suggest properties including ID with underscore format if (linePrefix.trim().endsWith('(')) { - return properties.map(prop => ({ - label: prop, - kind: node_1.CompletionItemKind.Property, - documentation: `Apply ${prop} property` - })); + return [ + ...properties.map(prop => ({ + label: prop, + kind: node_1.CompletionItemKind.Property, + documentation: `Apply ${prop} property` + })), + { + label: 'id', + kind: node_1.CompletionItemKind.Property, + insertText: idAttributeTemplate, + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: 'Add an ID to the element (use underscores instead of hyphens for JavaScript compatibility)' + } + ]; } // After a container element's opening brace, suggest child elements const containerMatch = /\b(horizontal|vertical|section|grid|navbar|links|card)\s*{\s*$/.exec(linePrefix); @@ -200,6 +166,25 @@ connection.onCompletion((textDocumentPosition) => { suggestedElements = ['title', 'text', 'button', 'image']; break; } + // Include client/server block suggestions for interactive elements + if (['button', 'button-light', 'button-secondary', 'button-compact'].includes(parentElement)) { + return [ + ...suggestedElements.map(element => ({ + label: element, + kind: node_1.CompletionItemKind.Class, + insertText: `${element} {\n $1\n}`, + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: `Create a ${element} block inside ${parentElement}` + })), + { + label: '@client', + kind: node_1.CompletionItemKind.Snippet, + insertText: `@client {\n $1\n}`, + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: 'Create a client-side JavaScript block that runs when the element is clicked. The "e" event object is available.' + } + ]; + } return suggestedElements.map(element => ({ label: element, kind: node_1.CompletionItemKind.Class, @@ -208,6 +193,26 @@ connection.onCompletion((textDocumentPosition) => { documentation: `Create a ${element} block inside ${parentElement}` })); } + // Inside interactive elements, suggest @client blocks + const interactiveElementMatch = /\b(button|button-light|button-secondary|button-compact|input|textarea|select|checkbox|radio|switch)\s*(?:\([^)]*\))?\s*{\s*$/.exec(linePrefix); + if (interactiveElementMatch) { + return [ + { + label: '@client', + kind: node_1.CompletionItemKind.Snippet, + insertText: `@client {\n $1\n}`, + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: 'Create a client-side JavaScript block that runs when the element is clicked. The "e" event object is available.' + }, + { + label: 'text', + kind: node_1.CompletionItemKind.Class, + insertText: `"$1"`, + insertTextFormat: node_1.InsertTextFormat.Snippet, + documentation: 'Add text content to the element' + } + ]; + } // Get available single instance elements const availableSingleElements = singleElements.filter(element => !elementExists(text, element)); // Combine regular elements with available single instance elements diff --git a/extension/server/out/server.js.map b/extension/server/out/server.js.map index 00dea67..ab29847 100644 --- a/extension/server/out/server.js.map +++ b/extension/server/out/server.js.map @@ -1 +1 @@ -{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"} \ No newline at end of file -- 2.47.2 From 9155b79ec9f0de816d3cb5b329c4a5b475dc4e04 Mon Sep 17 00:00:00 2001 From: obvTiger Date: Fri, 28 Mar 2025 16:03:05 +0100 Subject: [PATCH 4/4] fix: checkbox data content --- index.js | 23 +++++++++++++++++ lib/generators/InputElementGenerator.js | 21 ++++++++++++++-- lib/generators/ServerCodeGenerator.js | 33 ++++++++++++++++++++++--- 3 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 index.js diff --git a/index.js b/index.js new file mode 100644 index 0000000..8734dc8 --- /dev/null +++ b/index.js @@ -0,0 +1,23 @@ +module.exports = (app, prisma) => { + app.get("/", async (req, res) => { + try { + const data = req.body; + + // input valiation + + // business logic + + // output validation + + // output + const response = { + + }; + + res.json({ response }); + } catch (error) { + console.log('Error:', error); + res.status(500).json({ error: 'Internal server error' }); + } + }); +} \ No newline at end of file diff --git a/lib/generators/InputElementGenerator.js b/lib/generators/InputElementGenerator.js index 70a9cb4..639155c 100644 --- a/lib/generators/InputElementGenerator.js +++ b/lib/generators/InputElementGenerator.js @@ -55,6 +55,23 @@ class InputElementGenerator { attributes = ' type="range"'; } + // Extract and handle ID attribute + let idAttr = ""; + const idProp = node.props.find(p => typeof p === "string" && p.startsWith("id:")); + if (idProp) { + const idValue = idProp.substring(idProp.indexOf(":") + 1).trim().replace(/^"|"$/g, ""); + idAttr = ` id="${idValue}"`; + node.elementId = idValue; + + // Register as reactive element with the parent generator + if (this.parentGenerator && this.parentGenerator.jsGenerator) { + this.parentGenerator.jsGenerator.registerReactiveElement(idValue); + if (this.options.debug) { + console.log(`[InputElementGenerator] Registered checkbox with ID: ${idValue} as reactive`); + } + } + } + const valueProp = node.props.find((p) => p.startsWith("value:")); if (valueProp) { const value = valueProp.substring(valueProp.indexOf(":") + 1).trim(); @@ -70,7 +87,7 @@ class InputElementGenerator { if (node.children.length > 0) { let html = ``; return html; } else { - return ``; + return ``; } } } diff --git a/lib/generators/ServerCodeGenerator.js b/lib/generators/ServerCodeGenerator.js index d7342df..c10a6f6 100644 --- a/lib/generators/ServerCodeGenerator.js +++ b/lib/generators/ServerCodeGenerator.js @@ -100,7 +100,25 @@ const _bp_api = { apiCode += `async function _bp_serverAction_${elementId}(e) { const data = {}; -${params.map(param => ` data.${param} = ${param} ? ${param}.value : null;`).join('\n')} +${params.map(param => ` const ${param}_element = document.getElementById('${param}'); + if (${param}_element) { + console.log('Found element: ${param}', ${param}_element); + if (${param}_element.type === 'checkbox') { + data.${param} = ${param}_element.checked; + console.log('Checkbox ${param} value:', ${param}_element.checked); + } else if (${param}_element.type === 'radio') { + data.${param} = ${param}_element.checked; + } else if (${param}_element.value !== undefined) { + data.${param} = ${param}_element.value; + } else { + data.${param} = ${param}_element.textContent; + } + } else { + console.error('[Blueprint] Element with ID ${param} not found'); + data.${param} = null; + }`).join('\n')} + + console.log('Submitting data:', data); try { const result = await _bp_api.post('${endpoint}', data); @@ -114,7 +132,11 @@ ${params.map(param => ` data.${param} = ${param} ? ${param}.value : null;`).joi else { const element = document.getElementById(key); if (element) { - element.textContent = result[key]; + if (element.tagName.toLowerCase() === 'input') { + element.value = result[key]; + } else { + element.textContent = result[key]; + } console.log(\`[Blueprint API] Updated element #\${key} with value: \${result[key]}\`); } } @@ -164,7 +186,12 @@ function createBlueprintApiServer(port = 3001) { serverCode += ` app.post('${endpoint}', async (req, res) => { try { - ${params.map(param => `const ${param} = req.body.${param};`).join('\n ')} + ${params.map(param => { + return `const ${param} = req.body.${param} !== undefined ? req.body.${param} : null; + if (${param} === null) { + console.error(\`Missing parameter: ${param}\`); + }`; + }).join('\n ')} let result; try { -- 2.47.2