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/extension/blueprint-language-0.0.1.vsix b/extension/blueprint-language-0.0.1.vsix index c03e9ad..c69c646 100644 Binary files a/extension/blueprint-language-0.0.1.vsix and b/extension/blueprint-language-0.0.1.vsix differ 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..2afa413 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":"1713061564333834e61dc7607b418038e7bc722f28b2f1fd6d749a00cc25d880","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..cd7a4d2 100644 --- a/extension/server/out/server.js +++ b/extension/server/out/server.js @@ -38,6 +38,10 @@ const elements = [ 'card', 'badge', 'alert', 'tooltip', 'input', 'textarea', 'select', 'checkbox', 'radio', 'switch', 'list', 'table', 'progress', 'slider' ]; +// Script blocks +const scriptBlocks = [ + 'client', 'server' +]; // Single instance elements const singleElements = ['page', 'navbar']; // Blueprint properties @@ -52,6 +56,8 @@ 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', @@ -85,6 +91,18 @@ connection.onCompletion((textDocumentPosition) => { 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 [{ @@ -114,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); @@ -139,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, @@ -147,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 383896b..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 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": "(? { + 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/ASTBuilder.js b/lib/ASTBuilder.js index 1893540..92be55c 100644 --- a/lib/ASTBuilder.js +++ b/lib/ASTBuilder.js @@ -129,6 +129,41 @@ class ASTBuilder { ); } + if (token.type === "client" || token.type === "server") { + if (this.options.debug) { + console.log( + `\n[ASTBuilder] Processing ${token.type} block at line ${token.line}, column ${token.column}` + ); + } + + const node = { + type: token.type, + script: token.value, + line: token.line, + column: token.column, + }; + + if (token.type === "server" && token.params) { + node.params = token.params; + if (this.options.debug) { + console.log( + `[ASTBuilder] Server block parameters: ${node.params.join(", ")}` + ); + } + } + + if (this.options.debug) { + console.log(`[ASTBuilder] Created node for ${token.type} block`); + console.log( + "[ASTBuilder] Script content (first 50 chars):", + node.script.substring(0, 50) + (node.script.length > 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/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/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/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/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..c10a6f6 --- /dev/null +++ b/lib/generators/ServerCodeGenerator.js @@ -0,0 +1,236 @@ +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 => ` 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); + 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) { + 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]}\`); + } + } + }); + } + + 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 => { + return `const ${param} = req.body.${param} !== undefined ? req.body.${param} : null; + if (${param} === null) { + console.error(\`Missing parameter: ${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 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"