diff --git a/examples/reactive-example.bp b/examples/reactive-example.bp deleted file mode 100644 index 67dc39a..0000000 --- a/examples/reactive-example.bp +++ /dev/null @@ -1,190 +0,0 @@ -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 deleted file mode 100644 index 26c8fcf..0000000 --- a/examples/server-form-example.bp +++ /dev/null @@ -1,163 +0,0 @@ -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 c69c646..c03e9ad 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 b945de0..ab54d4c 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":"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 +{"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 diff --git a/extension/out/tsconfig.tsbuildinfo b/extension/out/tsconfig.tsbuildinfo index bbaae2f..b05e939 100644 --- a/extension/out/tsconfig.tsbuildinfo +++ b/extension/out/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["../client/src/extension.ts","../server/src/server.ts"],"version":"5.8.2"} \ No newline at end of file +{"root":["../client/src/extension.ts","../server/src/server.ts"],"version":"5.7.3"} \ No newline at end of file diff --git a/extension/server/out/.tsbuildinfo b/extension/server/out/.tsbuildinfo index 2afa413..11c62bb 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":"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 +{"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 diff --git a/extension/server/out/server.js b/extension/server/out/server.js index cd7a4d2..527af30 100644 --- a/extension/server/out/server.js +++ b/extension/server/out/server.js @@ -38,10 +38,6 @@ 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 @@ -56,8 +52,6 @@ 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', @@ -91,18 +85,6 @@ 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 [{ @@ -132,22 +114,13 @@ connection.onCompletion((textDocumentPosition) => { documentation: `Add ${prop} to the page configuration` })); } - // After an opening parenthesis, suggest properties including ID with underscore format + // After an opening parenthesis, suggest properties if (linePrefix.trim().endsWith('(')) { - 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)' - } - ]; + return properties.map(prop => ({ + label: prop, + kind: node_1.CompletionItemKind.Property, + documentation: `Apply ${prop} property` + })); } // After a container element's opening brace, suggest child elements const containerMatch = /\b(horizontal|vertical|section|grid|navbar|links|card)\s*{\s*$/.exec(linePrefix); @@ -166,25 +139,6 @@ 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, @@ -193,26 +147,6 @@ 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 ab29847..383896b 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 4e19180..2eb0f5f 100644 --- a/extension/server/src/server.ts +++ b/extension/server/src/server.ts @@ -58,11 +58,6 @@ const elements = [ 'checkbox', 'radio', 'switch', 'list', 'table', 'progress', 'slider' ]; -// Script blocks -const scriptBlocks = [ - 'client', 'server' -]; - // Single instance elements const singleElements = ['page', 'navbar']; @@ -80,9 +75,6 @@ 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', @@ -122,19 +114,6 @@ 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 [{ @@ -166,22 +145,13 @@ connection.onCompletion( })); } - // After an opening parenthesis, suggest properties including ID with underscore format + // After an opening parenthesis, suggest properties if (linePrefix.trim().endsWith('(')) { - 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)' - } - ]; + return properties.map(prop => ({ + label: prop, + kind: CompletionItemKind.Property, + documentation: `Apply ${prop} property` + })); } // After a container element's opening brace, suggest child elements @@ -203,26 +173,6 @@ 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, @@ -231,27 +181,6 @@ 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 3668950..4071964 100644 --- a/extension/syntaxes/blueprint.tmLanguage.json +++ b/extension/syntaxes/blueprint.tmLanguage.json @@ -18,9 +18,6 @@ { "include": "#strings" }, - { - "include": "#script-blocks" - }, { "include": "#punctuation" } @@ -67,24 +64,6 @@ } ] }, - "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": [ { @@ -92,7 +71,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 92be55c..1893540 100644 --- a/lib/ASTBuilder.js +++ b/lib/ASTBuilder.js @@ -129,41 +129,6 @@ 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 931a0e7..6342d73 100644 --- a/lib/BlueprintBuilder.js +++ b/lib/BlueprintBuilder.js @@ -1,12 +1,11 @@ const fs = require("fs"); const path = require("path"); -const BlueprintCompiler = require("./BlueprintCompiler"); -const BlueprintFileHandler = require("./BlueprintFileHandler"); +const TokenParser = require("./TokenParser"); +const ASTBuilder = require("./ASTBuilder"); +const CSSGenerator = require("./CSSGenerator"); +const HTMLGenerator = require("./HTMLGenerator"); +const MetadataManager = require("./MetadataManager"); -/** - * BlueprintBuilder coordinates the entire build process from reading Blueprint files - * to writing compiled HTML and CSS files. - */ class BlueprintBuilder { /** * Create a new Blueprint builder instance. @@ -21,10 +20,14 @@ class BlueprintBuilder { ...options, }; - this.compiler = new BlueprintCompiler(this.options); - this.fileHandler = new BlueprintFileHandler(this.options); + this.tokenParser = new TokenParser(this.options); + this.astBuilder = new ASTBuilder(this.options); + this.cssGenerator = new CSSGenerator(this.options); + this.htmlGenerator = new HTMLGenerator(this.options, this.cssGenerator); + this.metadataManager = new MetadataManager(this.options); } + /** * Builds a Blueprint file. * @param {string} inputPath - Path to the Blueprint file to build @@ -37,38 +40,42 @@ class BlueprintBuilder { } try { - const input = this.fileHandler.readBlueprintFile(inputPath); - - const baseName = path.basename(inputPath, ".bp"); - - const result = this.compiler.compile(input, baseName); - - 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"); - } + if (!inputPath.endsWith(".bp")) { + throw new Error("Input file must have .bp extension"); } - + + const input = fs.readFileSync(inputPath, "utf8"); + + const tokens = this.tokenParser.tokenize(input); + + const ast = this.astBuilder.buildAST(tokens); + + const pageNode = ast.children.find((node) => node.tag === "page"); + if (pageNode) { + this.metadataManager.processPageMetadata(pageNode); + } + + const html = this.htmlGenerator.generateHTML(ast); + const css = this.cssGenerator.generateCSS(); + + const baseName = path.basename(inputPath, ".bp"); + const headContent = this.metadataManager.generateHeadContent(baseName); + const finalHtml = this.generateFinalHtml(headContent, html); + + if (!fs.existsSync(outputDir)) { + fs.mkdirSync(outputDir, { recursive: true }); + } + + fs.writeFileSync(path.join(outputDir, `${baseName}.html`), finalHtml); + fs.writeFileSync(path.join(outputDir, `${baseName}.css`), css); + + if (this.options.debug) { + console.log("[DEBUG] Build completed successfully"); + } + return { - success: result.success, - errors: result.errors, - hasServerCode: result.hasServerCode + success: true, + errors: [], }; } catch (error) { if (this.options.debug) { @@ -76,7 +83,6 @@ class BlueprintBuilder { } return { success: false, - hasServerCode: false, errors: [ { message: error.message, @@ -88,6 +94,51 @@ class BlueprintBuilder { }; } } + +/** + * Generates the final HTML document as a string. + * + * @param {string} headContent - The HTML content to be placed within the tag. + * @param {string} bodyContent - The HTML content to be placed within the tag. + * @returns {string} - A complete HTML document containing the provided head and body content. + */ + + generateFinalHtml(headContent, bodyContent) { + return ` + + + + + ${headContent} + + + + ${bodyContent} + +`; + } } module.exports = BlueprintBuilder; diff --git a/lib/BlueprintCompiler.js b/lib/BlueprintCompiler.js deleted file mode 100644 index a63684e..0000000 --- a/lib/BlueprintCompiler.js +++ /dev/null @@ -1,98 +0,0 @@ -const TokenParser = require("./TokenParser"); -const ASTBuilder = require("./ASTBuilder"); -const CSSGenerator = require("./CSSGenerator"); -const HTMLGenerator = require("./HTMLGenerator"); -const MetadataManager = require("./MetadataManager"); - -/** - * BlueprintCompiler handles the core compilation process of transforming Blueprint syntax - * into HTML and CSS, without handling file I/O operations. - */ -class BlueprintCompiler { - /** - * Create a new Blueprint compiler instance. - * @param {Object} [options] - Options object - * @param {boolean} [options.minified=true] - Minify generated HTML and CSS - * @param {boolean} [options.debug=false] - Enable debug logging - */ - constructor(options = {}) { - this.options = { - minified: true, - debug: false, - ...options, - }; - - this.tokenParser = new TokenParser(this.options); - this.astBuilder = new ASTBuilder(this.options); - this.cssGenerator = new CSSGenerator(this.options); - this.htmlGenerator = new HTMLGenerator(this.options, this.cssGenerator); - this.metadataManager = new MetadataManager(this.options); - } - - /** - * Compiles Blueprint code into HTML and CSS. - * @param {string} blueprintCode - Blueprint source code to compile - * @param {string} baseName - Base name for the generated files - * @returns {Object} - Compilation result with HTML and CSS content - */ - compile(blueprintCode, baseName) { - if (this.options.debug) { - console.log(`[DEBUG] Starting compilation`); - } - - try { - const tokens = this.tokenParser.tokenize(blueprintCode); - const ast = this.astBuilder.buildAST(tokens); - - const pageNode = ast.children.find((node) => node.tag === "page"); - if (pageNode) { - this.metadataManager.processPageMetadata(pageNode); - } - - 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) { - if (this.options.debug) { - console.log("[DEBUG] Compilation failed with error:", error); - } - return { - success: false, - html: null, - css: null, - hasServerCode: false, - serverCode: null, - errors: [ - { - message: error.message, - type: error.name, - line: error.line, - column: error.column, - }, - ], - }; - } - } -} - -module.exports = BlueprintCompiler; \ No newline at end of file diff --git a/lib/BlueprintFileHandler.js b/lib/BlueprintFileHandler.js deleted file mode 100644 index 9521586..0000000 --- a/lib/BlueprintFileHandler.js +++ /dev/null @@ -1,55 +0,0 @@ -const path = require("path"); -const BlueprintFileReader = require("./file/BlueprintFileReader"); -const BlueprintFileWriter = require("./file/BlueprintFileWriter"); - -/** - * BlueprintFileHandler coordinates file I/O operations for the Blueprint compiler. - */ -class BlueprintFileHandler { - /** - * Create a new BlueprintFileHandler instance. - * @param {Object} [options] - Options object - * @param {boolean} [options.debug=false] - Enable debug logging - */ - constructor(options = {}) { - this.options = { - debug: false, - ...options, - }; - - this.reader = new BlueprintFileReader(this.options); - this.writer = new BlueprintFileWriter(this.options); - } - - /** - * Reads a Blueprint file from the file system. - * @param {string} inputPath - Path to the Blueprint file - * @returns {string} - The content of the file - * @throws {Error} - If the file does not exist or has an invalid extension - */ - readBlueprintFile(inputPath) { - return this.reader.readFile(inputPath); - } - - /** - * Writes the compiled HTML and CSS to the file system. - * @param {string} outputDir - Directory to write the files to - * @param {string} baseName - Base name for the files - * @param {string} html - HTML content to write - * @param {string} css - CSS content to write - * @throws {Error} - If the output directory cannot be created or the files cannot be written - */ - writeCompiledFiles(outputDir, baseName, html, css) { - this.writer.writeCompiledFiles(outputDir, baseName, html, css); - } - - /** - * Ensures that a directory exists, creating it if it does not. - * @param {string} dir - Directory path - */ - ensureDirectoryExists(dir) { - this.writer.ensureDirectoryExists(dir); - } -} - -module.exports = BlueprintFileHandler; \ No newline at end of file diff --git a/lib/HTMLGenerator.js b/lib/HTMLGenerator.js index 04d51af..1261b50 100644 --- a/lib/HTMLGenerator.js +++ b/lib/HTMLGenerator.js @@ -1,15 +1,4 @@ const { ELEMENT_MAPPINGS } = require("./mappings"); -const TextNodeGenerator = require("./generators/TextNodeGenerator"); -const ButtonElementGenerator = require("./generators/ButtonElementGenerator"); -const LinkElementGenerator = require("./generators/LinkElementGenerator"); -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"); class HTMLGenerator { /** @@ -22,32 +11,11 @@ class HTMLGenerator { constructor(options = {}, cssGenerator) { 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 = [ - new TextNodeGenerator(this.options), - new RootNodeGenerator(this.options, this), - new ButtonElementGenerator(this.options, this.cssGenerator, this), - new LinkElementGenerator(this.options, this.cssGenerator, this), - new InputElementGenerator(this.options, this.cssGenerator, this), - new MediaElementGenerator(this.options, this.cssGenerator, this), - - new StandardElementGenerator(this.options, this.cssGenerator, this) - ]; - if (this.options.debug) { console.log( "[HTMLGenerator] Initialized with options:", JSON.stringify(options, null, 2) ); - console.log( - "[HTMLGenerator] Registered generators:", - this.generators.map(g => g.constructor.name).join(", ") - ); } } @@ -80,7 +48,7 @@ class HTMLGenerator { } /** - * Generates HTML for a node, delegating to the appropriate generator. + * Converts a node to a string of HTML. * @param {Object} node - Node to generate HTML for * @returns {string} Generated HTML */ @@ -88,136 +56,239 @@ class HTMLGenerator { if (this.options.debug) { console.log(`\n[HTMLGenerator] Generating HTML for node`); console.log(`[HTMLGenerator] Node type: "${node.type}"`); - console.log("[HTMLGenerator] Node details:", StringUtils.safeStringify(node)); + console.log("[HTMLGenerator] Node details:", this.debugStringify(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 (node.type === "text") { + if (node.parent?.tag === "codeblock") { + if (this.options.debug) { + console.log("[HTMLGenerator] Rendering raw text for codeblock"); + console.log(`[HTMLGenerator] Raw text content: "${node.value}"`); + } + return node.value; + } + const escapedText = node.value + .replace(/&/g, "&") + .replace(//g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); if (this.options.debug) { - console.log("[HTMLGenerator] Skipping page node - metadata only"); + console.log("[HTMLGenerator] Generated escaped text"); + console.log(`[HTMLGenerator] Original: "${node.value}"`); + console.log(`[HTMLGenerator] Escaped: "${escapedText}"`); } - return ""; + return escapedText; } - const prevElement = this.currentElement; - this.currentElement = node; - - // Check if this element has an explicit ID in its props + let html = ""; 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 (node.tag === "page") { if (this.options.debug) { - console.log(`[HTMLGenerator] Found explicit ID: ${idValue}, registered as reactive`); + console.log("[HTMLGenerator] Skipping page node - metadata only"); + } + return ""; + } + + const mapping = ELEMENT_MAPPINGS[node.tag]; + let tag = mapping ? mapping.tag : "div"; + const className = this.cssGenerator.generateClassName(node.tag); + const { cssProps, nestedRules } = + this.cssGenerator.nodeToCSSProperties(node); + + if (this.options.debug) { + console.log(`\n[HTMLGenerator] Processing element node`); + console.log(`[HTMLGenerator] Tag: "${node.tag}" -> "${tag}"`); + console.log(`[HTMLGenerator] Generated class name: "${className}"`); + console.log( + "[HTMLGenerator] CSS properties:", + this.debugStringify(Object.fromEntries(cssProps)) + ); + console.log( + "[HTMLGenerator] Nested rules:", + this.debugStringify(Object.fromEntries(nestedRules)) + ); + } + + let attributes = ""; + if (tag === "input") { + if (node.tag === "checkbox") { + attributes = ' type="checkbox"'; + } else if (node.tag === "radio") { + attributes = ' type="radio"'; + } else if (node.tag === "switch") { + attributes = ' type="checkbox" role="switch"'; + } else if (node.tag === "slider") { + attributes = ' type="range"'; + } + if (this.options.debug) { + console.log( + `[HTMLGenerator] Added input attributes: "${attributes}"` + ); } } - } - 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`); + if (node.tag === "media") { + const srcProp = node.props.find((p) => p.startsWith("src:")); + const typeProp = node.props.find((p) => p.startsWith("type:")); + + if (!srcProp) { + throw new BlueprintError("Media element requires src property", node.line, node.column); } - // 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(); + const src = srcProp.substring(srcProp.indexOf(":") + 1).trim(); + const type = typeProp ? typeProp.substring(typeProp.indexOf(":") + 1).trim() : "img"; + + if (type === "video") { + tag = "video"; + attributes = ` src="${src}" controls`; + } else { + tag = "img"; + attributes = ` src="${src}" alt="${node.children.map(child => this.generateHTML(child)).join("")}"`; + } + } + + if (node.tag === "link") { + const linkInfo = this.processLink(node); + attributes += ` href="${linkInfo.href}"`; + if ( + linkInfo.href.startsWith("http://") || + linkInfo.href.startsWith("https://") + ) { + attributes += ` target="_blank" rel="noopener noreferrer"`; + if (this.options.debug) { + console.log( + `[HTMLGenerator] Added external link attributes for: ${linkInfo.href}` + ); + } + } else { + if (this.options.debug) { + console.log( + `[HTMLGenerator] Added internal link attributes for: ${linkInfo.href}` + ); + } + } + } + + if ( + node.props.find((p) => typeof p === "string" && p.startsWith("data-")) + ) { + const dataProps = node.props.filter( + (p) => typeof p === "string" && p.startsWith("data-") + ); + attributes += " " + dataProps.map((p) => `${p}`).join(" "); + if (this.options.debug) { + console.log( + `[HTMLGenerator] Added data attributes:`, + this.debugStringify(dataProps) + ); + } + } + + this.cssGenerator.cssRules.set(`.${className}`, { + cssProps, + nestedRules, + }); + if (this.options.debug) { + console.log( + `[HTMLGenerator] Registered CSS rules for class: .${className}` + ); + } + + if (node.tag === "button" || node.tag.startsWith("button-")) { + if (node.parent?.tag === "link") { + const linkInfo = this.processLink(node.parent); + if ( + linkInfo.href.startsWith("http://") || + linkInfo.href.startsWith("https://") + ) { + attributes += ` onclick="window.open('${linkInfo.href}', '_blank', 'noopener,noreferrer')"`; if (this.options.debug) { - console.log(`[HTMLGenerator] Generated ID for element: ${node.elementId}`); + console.log( + `[HTMLGenerator] Added external button click handler for: ${linkInfo.href}` + ); + } + } else { + attributes += ` onclick="window.location.href='${linkInfo.href}'"`; + if (this.options.debug) { + console.log( + `[HTMLGenerator] Added internal button click handler for: ${linkInfo.href}` + ); } } - - 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; + html += `${ + this.options.minified ? "" : "\n" + }`; + } else if ( + node.tag === "link" && + node.children.length === 1 && + (node.children[0].tag === "button" || + node.children[0].tag?.startsWith("button-")) + ) { + if (this.options.debug) { + console.log( + "[HTMLGenerator] Processing button inside link - using button's HTML" + ); + } + node.children[0].parent = node; + html += this.generateHTML(node.children[0]); + } else { + html += `<${tag} class="${className}"${attributes}>${ + this.options.minified ? "" : "\n" + }`; + if (this.options.debug) { + console.log( + `[HTMLGenerator] Generated opening tag: <${tag}> with attributes:`, + this.debugStringify({ class: className, ...attributes }) + ); + } + node.children.forEach((child) => { + child.parent = node; + html += this.generateHTML(child); + }); + html += `${this.options.minified ? "" : "\n"}${ + this.options.minified ? "" : "\n" + }`; + if (this.options.debug) { + console.log(`[HTMLGenerator] Completed element: ${tag}`); + } } + } else if (node.type === "root") { + if (this.options.debug) { + console.log( + `[HTMLGenerator] Processing root node with ${node.children.length} children` + ); + } + node.children.forEach((child, index) => { + if (this.options.debug) { + console.log( + `[HTMLGenerator] Processing root child ${index + 1}/${ + node.children.length + }` + ); + } + html += this.generateHTML(child); + }); } if (this.options.debug) { - console.log(`[HTMLGenerator] No generator found for node type: ${node.type}`); + console.log("[HTMLGenerator] Generated HTML:", html); } - - 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 ""; + return html; } /** @@ -277,38 +348,6 @@ class HTMLGenerator { } return { href }; } - - /** - * Generates the final HTML document as a string. - * - * @param {string} headContent - The HTML content to be placed within the tag. - * @param {string} bodyContent - The HTML content to be placed within the tag. - * @returns {string} - A complete HTML document containing the provided head and body content. - */ - generateFinalHtml(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(); - } } module.exports = HTMLGenerator; diff --git a/lib/StandardElementGenerator.js b/lib/StandardElementGenerator.js deleted file mode 100644 index ad9499e..0000000 --- a/lib/StandardElementGenerator.js +++ /dev/null @@ -1,179 +0,0 @@ -/** - * 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 e6a1db9..62f6776 100644 --- a/lib/TokenParser.js +++ b/lib/TokenParser.js @@ -102,142 +102,6 @@ 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/dev-server.js b/lib/dev-server.js index 419d4f6..1470615 100644 --- a/lib/dev-server.js +++ b/lib/dev-server.js @@ -9,7 +9,6 @@ const options = { minified: !args.includes("--readable"), srcDir: "./src", outDir: "./dist", - debug: args.includes("--debug"), }; const server = new BlueprintServer(options); diff --git a/lib/file/BlueprintFileReader.js b/lib/file/BlueprintFileReader.js deleted file mode 100644 index a9671cb..0000000 --- a/lib/file/BlueprintFileReader.js +++ /dev/null @@ -1,42 +0,0 @@ -const fs = require("fs"); - -/** - * Handles reading Blueprint files from the file system. - */ -class BlueprintFileReader { - /** - * Creates a new BlueprintFileReader instance. - * @param {Object} [options] - Options object - * @param {boolean} [options.debug=false] - Enable debug logging - */ - constructor(options = {}) { - this.options = { - debug: false, - ...options, - }; - } - - /** - * Reads a Blueprint file from the file system. - * @param {string} inputPath - Path to the Blueprint file - * @returns {string} - The content of the file - * @throws {Error} - If the file does not exist or has an invalid extension - */ - readFile(inputPath) { - if (this.options.debug) { - console.log(`[DEBUG] Reading Blueprint file: ${inputPath}`); - } - - if (!inputPath.endsWith(".bp")) { - throw new Error("Input file must have .bp extension"); - } - - if (!fs.existsSync(inputPath)) { - throw new Error(`File not found: ${inputPath}`); - } - - return fs.readFileSync(inputPath, "utf8"); - } -} - -module.exports = BlueprintFileReader; \ No newline at end of file diff --git a/lib/file/BlueprintFileWriter.js b/lib/file/BlueprintFileWriter.js deleted file mode 100644 index 7c536d1..0000000 --- a/lib/file/BlueprintFileWriter.js +++ /dev/null @@ -1,78 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -/** - * Handles writing compiled Blueprint files to the file system. - */ -class BlueprintFileWriter { - /** - * Creates a new BlueprintFileWriter instance. - * @param {Object} [options] - Options object - * @param {boolean} [options.debug=false] - Enable debug logging - */ - constructor(options = {}) { - this.options = { - debug: false, - ...options, - }; - } - - /** - * Writes HTML content to a file. - * @param {string} outputPath - Path to write the HTML file - * @param {string} content - HTML content to write - */ - writeHtmlFile(outputPath, content) { - if (this.options.debug) { - console.log(`[DEBUG] Writing HTML file: ${outputPath}`); - } - this.ensureDirectoryExists(path.dirname(outputPath)); - fs.writeFileSync(outputPath, content); - } - - /** - * Writes CSS content to a file. - * @param {string} outputPath - Path to write the CSS file - * @param {string} content - CSS content to write - */ - writeCssFile(outputPath, content) { - if (this.options.debug) { - console.log(`[DEBUG] Writing CSS file: ${outputPath}`); - } - this.ensureDirectoryExists(path.dirname(outputPath)); - fs.writeFileSync(outputPath, content); - } - - /** - * Writes both HTML and CSS files for a Blueprint compilation result. - * @param {string} outputDir - Directory to write the files to - * @param {string} baseName - Base name for the files (without extension) - * @param {string} html - HTML content to write - * @param {string} css - CSS content to write - */ - writeCompiledFiles(outputDir, baseName, html, css) { - if (this.options.debug) { - console.log(`[DEBUG] Writing compiled files to: ${outputDir}/${baseName}`); - } - - this.ensureDirectoryExists(outputDir); - - this.writeHtmlFile(path.join(outputDir, `${baseName}.html`), html); - this.writeCssFile(path.join(outputDir, `${baseName}.css`), css); - } - - /** - * Ensures that a directory exists, creating it if it does not. - * @param {string} dir - Directory path - */ - ensureDirectoryExists(dir) { - if (!fs.existsSync(dir)) { - fs.mkdirSync(dir, { recursive: true }); - if (this.options.debug) { - console.log(`[DEBUG] Created directory: ${dir}`); - } - } - } -} - -module.exports = BlueprintFileWriter; \ No newline at end of file diff --git a/lib/generators/ButtonElementGenerator.js b/lib/generators/ButtonElementGenerator.js deleted file mode 100644 index ea51c49..0000000 --- a/lib/generators/ButtonElementGenerator.js +++ /dev/null @@ -1,97 +0,0 @@ -const LinkProcessor = require("../utils/LinkProcessor"); - -/** - * Generates HTML for button elements. - */ -class ButtonElementGenerator { - /** - * Creates a new button element generator. - * @param {Object} options - Options for the generator - * @param {CSSGenerator} cssGenerator - CSS generator instance - * @param {Object} parentGenerator - Parent HTML generator for recursion - */ - constructor(options, cssGenerator, parentGenerator) { - this.options = options; - this.cssGenerator = cssGenerator; - this.parentGenerator = parentGenerator; - this.linkProcessor = new LinkProcessor(options); - } - - /** - * Determines if this generator can handle the given node. - * @param {Object} node - The node to check - * @returns {boolean} - True if this generator can handle the node - */ - canHandle(node) { - return ( - node.type === "element" && - (node.tag === "button" || node.tag.startsWith("button-")) - ); - } - - /** - * Generates HTML for a button element. - * @param {Object} node - The node to generate HTML for - * @returns {string} - The generated HTML - */ - generate(node) { - if (this.options.debug) { - console.log(`\n[ButtonElementGenerator] Processing button: ${node.tag}`); - } - - const className = this.cssGenerator.generateClassName(node.tag); - const { cssProps, nestedRules } = this.cssGenerator.nodeToCSSProperties(node); - - this.cssGenerator.cssRules.set(`.${className}`, { - cssProps, - nestedRules, - }); - - 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); - } - - if (node.props.find((p) => typeof p === "string" && p.startsWith("data-"))) { - const dataProps = node.props.filter( - (p) => typeof p === "string" && p.startsWith("data-") - ); - attributes += " " + dataProps.map((p) => `${p}`).join(" "); - } - - let html = `${ - this.options.minified ? "" : "\n" - }`; - - return html; - } -} - -module.exports = ButtonElementGenerator; \ No newline at end of file diff --git a/lib/generators/InputElementGenerator.js b/lib/generators/InputElementGenerator.js deleted file mode 100644 index 639155c..0000000 --- a/lib/generators/InputElementGenerator.js +++ /dev/null @@ -1,105 +0,0 @@ -/** - * Generates HTML for input elements (checkbox, radio, switch, slider). - */ -class InputElementGenerator { - /** - * Creates a new input element generator. - * @param {Object} options - Options for the generator - * @param {CSSGenerator} cssGenerator - CSS generator instance - * @param {Object} parentGenerator - Parent HTML generator for recursion - */ - constructor(options, cssGenerator, parentGenerator) { - this.options = options; - this.cssGenerator = cssGenerator; - this.parentGenerator = parentGenerator; - } - - /** - * Determines if this generator can handle the given node. - * @param {Object} node - The node to check - * @returns {boolean} - True if this generator can handle the node - */ - canHandle(node) { - return ( - node.type === "element" && - ["checkbox", "radio", "switch", "slider"].includes(node.tag) - ); - } - - /** - * Generates HTML for an input element. - * @param {Object} node - The node to generate HTML for - * @returns {string} - The generated HTML - */ - generate(node) { - if (this.options.debug) { - console.log(`\n[InputElementGenerator] Processing input: ${node.tag}`); - } - - const className = this.cssGenerator.generateClassName(node.tag); - const { cssProps, nestedRules } = this.cssGenerator.nodeToCSSProperties(node); - - this.cssGenerator.cssRules.set(`.${className}`, { - cssProps, - nestedRules, - }); - - let attributes = ""; - if (node.tag === "checkbox") { - attributes = ' type="checkbox"'; - } else if (node.tag === "radio") { - attributes = ' type="radio"'; - } else if (node.tag === "switch") { - attributes = ' type="checkbox" role="switch"'; - } else if (node.tag === "slider") { - 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(); - attributes += ` value="${value}"`; - } - - if (node.props.find((p) => typeof p === "string" && p.startsWith("data-"))) { - const dataProps = node.props.filter( - (p) => typeof p === "string" && p.startsWith("data-") - ); - attributes += " " + dataProps.map((p) => `${p}`).join(" "); - } - - if (node.children.length > 0) { - let html = ``; - return html; - } else { - return ``; - } - } -} - -module.exports = InputElementGenerator; \ No newline at end of file diff --git a/lib/generators/JavaScriptGenerator.js b/lib/generators/JavaScriptGenerator.js deleted file mode 100644 index cc16c45..0000000 --- a/lib/generators/JavaScriptGenerator.js +++ /dev/null @@ -1,239 +0,0 @@ -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/LinkElementGenerator.js b/lib/generators/LinkElementGenerator.js deleted file mode 100644 index 461c2bc..0000000 --- a/lib/generators/LinkElementGenerator.js +++ /dev/null @@ -1,78 +0,0 @@ -const LinkProcessor = require("../utils/LinkProcessor"); - -/** - * Generates HTML for link elements. - */ -class LinkElementGenerator { - /** - * Creates a new link element generator. - * @param {Object} options - Options for the generator - * @param {CSSGenerator} cssGenerator - CSS generator instance - * @param {Object} parentGenerator - Parent HTML generator for recursion - */ - constructor(options, cssGenerator, parentGenerator) { - this.options = options; - this.cssGenerator = cssGenerator; - this.parentGenerator = parentGenerator; - this.linkProcessor = new LinkProcessor(options); - } - - /** - * Determines if this generator can handle the given node. - * @param {Object} node - The node to check - * @returns {boolean} - True if this generator can handle the node - */ - canHandle(node) { - return node.type === "element" && node.tag === "link"; - } - - /** - * Generates HTML for a link element. - * @param {Object} node - The node to generate HTML for - * @returns {string} - The generated HTML - */ - generate(node) { - if (this.options.debug) { - console.log(`\n[LinkElementGenerator] Processing link`); - } - - if ( - node.children.length === 1 && - (node.children[0].tag === "button" || node.children[0].tag?.startsWith("button-")) - ) { - if (this.options.debug) { - console.log("[LinkElementGenerator] Processing button inside link - using button's HTML"); - } - node.children[0].parent = node; - return this.parentGenerator.generateHTML(node.children[0]); - } - - const className = this.cssGenerator.generateClassName(node.tag); - const { cssProps, nestedRules } = this.cssGenerator.nodeToCSSProperties(node); - - this.cssGenerator.cssRules.set(`.${className}`, { - cssProps, - nestedRules, - }); - - const linkInfo = this.linkProcessor.processLink(node); - const attributes = this.linkProcessor.getLinkAttributes(linkInfo); - - let html = `${ - this.options.minified ? "" : "\n" - }`; - - node.children.forEach((child) => { - child.parent = node; - html += this.parentGenerator.generateHTML(child); - }); - - html += `${this.options.minified ? "" : "\n"}${ - this.options.minified ? "" : "\n" - }`; - - return html; - } -} - -module.exports = LinkElementGenerator; \ No newline at end of file diff --git a/lib/generators/MediaElementGenerator.js b/lib/generators/MediaElementGenerator.js deleted file mode 100644 index 909358b..0000000 --- a/lib/generators/MediaElementGenerator.js +++ /dev/null @@ -1,121 +0,0 @@ -const BlueprintError = require("../BlueprintError"); - -/** - * Generates HTML for media elements (images and videos). - */ -class MediaElementGenerator { - /** - * Creates a new media element generator. - * @param {Object} options - Options for the generator - * @param {CSSGenerator} cssGenerator - CSS generator instance - * @param {Object} parentGenerator - Parent HTML generator for recursion - */ - constructor(options, cssGenerator, parentGenerator) { - this.options = options; - this.cssGenerator = cssGenerator; - this.parentGenerator = parentGenerator; - } - - /** - * Determines if this generator can handle the given node. - * @param {Object} node - The node to check - * @returns {boolean} - True if this generator can handle the node - */ - canHandle(node) { - return node.type === "element" && node.tag === "media"; - } - - /** - * Generates HTML for a media element. - * @param {Object} node - The node to generate HTML for - * @returns {string} - The generated HTML - */ - generate(node) { - if (this.options.debug) { - console.log(`\n[MediaElementGenerator] Processing media element`); - } - - const className = this.cssGenerator.generateClassName(node.tag); - const { cssProps, nestedRules } = this.cssGenerator.nodeToCSSProperties(node); - - this.cssGenerator.cssRules.set(`.${className}`, { - cssProps, - nestedRules, - }); - - const srcProp = node.props.find((p) => p.startsWith("src:")); - const typeProp = node.props.find((p) => p.startsWith("type:")); - - if (!srcProp) { - throw new BlueprintError("Media element requires src property", node.line, node.column); - } - - const src = srcProp.substring(srcProp.indexOf(":") + 1).trim(); - const type = typeProp ? typeProp.substring(typeProp.indexOf(":") + 1).trim() : "img"; - - let tag, attributes; - - if (type === "video") { - tag = "video"; - attributes = ` src="${src}" controls`; - - const autoProp = node.props.find((p) => p === "autoplay"); - if (autoProp) { - attributes += ` autoplay`; - } - - const loopProp = node.props.find((p) => p === "loop"); - if (loopProp) { - attributes += ` loop`; - } - - const mutedProp = node.props.find((p) => p === "muted"); - if (mutedProp) { - attributes += ` muted`; - } - } else { - tag = "img"; - const altText = node.children.length > 0 - ? node.children.map(child => - this.parentGenerator.generateHTML(child)).join("") - : src.split('/').pop(); - - attributes = ` src="${src}" alt="${altText}"`; - - const loadingProp = node.props.find((p) => p.startsWith("loading:")); - if (loadingProp) { - const loadingValue = loadingProp.substring(loadingProp.indexOf(":") + 1).trim(); - if (["lazy", "eager"].includes(loadingValue)) { - attributes += ` loading="${loadingValue}"`; - } - } - } - - if (node.props.find((p) => typeof p === "string" && p.startsWith("data-"))) { - const dataProps = node.props.filter( - (p) => typeof p === "string" && p.startsWith("data-") - ); - attributes += " " + dataProps.map((p) => `${p}`).join(" "); - } - - if (tag === "img") { - return `<${tag} class="${className}"${attributes}>`; - } else { - let html = `<${tag} class="${className}"${attributes}>${ - this.options.minified ? "" : "\n" - }`; - - if (node.children.length > 0 && tag === "video") { - html += `

Your browser doesn't support video playback.

`; - } - - html += `${this.options.minified ? "" : "\n"}${ - this.options.minified ? "" : "\n" - }`; - - return html; - } - } -} - -module.exports = MediaElementGenerator; \ No newline at end of file diff --git a/lib/generators/RootNodeGenerator.js b/lib/generators/RootNodeGenerator.js deleted file mode 100644 index d90dc89..0000000 --- a/lib/generators/RootNodeGenerator.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Generates HTML for the root node of the AST. - */ -class RootNodeGenerator { - /** - * Creates a new root node generator. - * @param {Object} options - Options for the generator - * @param {Object} parentGenerator - Parent HTML generator for recursion - */ - constructor(options, parentGenerator) { - this.options = options; - this.parentGenerator = parentGenerator; - } - - /** - * Determines if this generator can handle the given node. - * @param {Object} node - The node to check - * @returns {boolean} - True if this generator can handle the node - */ - canHandle(node) { - return node.type === "root"; - } - - /** - * Generates HTML for the root node. - * @param {Object} node - The node to generate HTML for - * @returns {string} - The generated HTML - */ - generate(node) { - if (this.options.debug) { - console.log(`\n[RootNodeGenerator] Processing root node with ${node.children.length} children`); - } - - let html = ""; - - node.children.forEach((child, index) => { - if (this.options.debug) { - console.log(`[RootNodeGenerator] Processing child ${index + 1}/${node.children.length}`); - } - html += this.parentGenerator.generateHTML(child); - }); - - return html; - } -} - -module.exports = RootNodeGenerator; \ No newline at end of file diff --git a/lib/generators/ServerCodeGenerator.js b/lib/generators/ServerCodeGenerator.js deleted file mode 100644 index c10a6f6..0000000 --- a/lib/generators/ServerCodeGenerator.js +++ /dev/null @@ -1,236 +0,0 @@ -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 deleted file mode 100644 index 4397b8c..0000000 --- a/lib/generators/StandardElementGenerator.js +++ /dev/null @@ -1,97 +0,0 @@ -const { ELEMENT_MAPPINGS } = require("../mappings"); -const StringUtils = require("../utils/StringUtils"); - -/** - * Generates HTML for standard elements. - */ -class StandardElementGenerator { - /** - * Creates a new standard element generator. - * @param {Object} options - Options for the generator - * @param {CSSGenerator} cssGenerator - CSS generator instance - * @param {Object} parentGenerator - Parent HTML generator for recursion - */ - constructor(options, cssGenerator, parentGenerator) { - this.options = options; - this.cssGenerator = cssGenerator; - this.parentGenerator = parentGenerator; - } - - /** - * Determines if this generator can handle the given node. - * @param {Object} node - The node to check - * @returns {boolean} - True if this generator can handle the node - */ - canHandle(node) { - return ( - node.type === "element" && - node.tag !== "page" && - !node.tag.startsWith("button") && - node.tag !== "link" && - node.tag !== "media" - ); - } - - /** - * Generates HTML for a standard element. - * @param {Object} node - The node to generate HTML for - * @returns {string} - The generated HTML - */ - generate(node) { - if (this.options.debug) { - console.log(`\n[StandardElementGenerator] Processing element node: ${node.tag}`); - } - - const mapping = ELEMENT_MAPPINGS[node.tag]; - const tag = mapping ? mapping.tag : "div"; - const className = this.cssGenerator.generateClassName(node.tag); - const { cssProps, nestedRules } = this.cssGenerator.nodeToCSSProperties(node); - - this.cssGenerator.cssRules.set(`.${className}`, { - cssProps, - nestedRules, - }); - - 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-") - ); - attributes += " " + dataProps.map((p) => `${p}`).join(" "); - } - - let html = `<${tag} class="${className}"${attributes}>${ - this.options.minified ? "" : "\n" - }`; - - node.children.forEach((child) => { - child.parent = node; - html += this.parentGenerator.generateHTML(child); - }); - - html += `${this.options.minified ? "" : "\n"}${ - this.options.minified ? "" : "\n" - }`; - - return html; - } -} - -module.exports = StandardElementGenerator; \ No newline at end of file diff --git a/lib/generators/TextNodeGenerator.js b/lib/generators/TextNodeGenerator.js deleted file mode 100644 index 49a0389..0000000 --- a/lib/generators/TextNodeGenerator.js +++ /dev/null @@ -1,51 +0,0 @@ -const StringUtils = require("../utils/StringUtils"); - -/** - * Generates HTML for text nodes. - */ -class TextNodeGenerator { - /** - * Creates a new text node generator. - * @param {Object} options - Options for the generator - */ - constructor(options) { - this.options = options; - } - - /** - * Determines if this generator can handle the given node. - * @param {Object} node - The node to check - * @returns {boolean} - True if this generator can handle the node - */ - canHandle(node) { - return node.type === "text"; - } - - /** - * Generates HTML for a text node. - * @param {Object} node - The node to generate HTML for - * @returns {string} - The generated HTML - */ - generate(node) { - if (this.options.debug) { - console.log(`\n[TextNodeGenerator] Processing text node`); - } - - if (node.parent?.tag === "codeblock") { - if (this.options.debug) { - console.log("[TextNodeGenerator] Raw text content for codeblock"); - } - return node.value; - } - - const escapedText = StringUtils.escapeHTML(node.value); - - if (this.options.debug) { - console.log("[TextNodeGenerator] Generated escaped text"); - } - - return escapedText; - } -} - -module.exports = TextNodeGenerator; \ No newline at end of file diff --git a/lib/mappings.js b/lib/mappings.js index 7b63c3c..b47f83d 100644 --- a/lib/mappings.js +++ b/lib/mappings.js @@ -538,7 +538,7 @@ const ELEMENT_MAPPINGS = { }, card: { tag: "div", - defaultProps: ["card"], + defaultProps: ["raised", "card"], }, grid: { tag: "div", diff --git a/lib/server.js b/lib/server.js index 49198f4..6c2552e 100644 --- a/lib/server.js +++ b/lib/server.js @@ -11,7 +11,6 @@ class BlueprintServer { this.wsInstance = expressWs(this.app); this.options = { port: 3000, - apiPort: 3001, srcDir: "./src", outDir: "./dist", liveReload: false, @@ -20,8 +19,6 @@ 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([], { @@ -54,27 +51,6 @@ 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)) { @@ -94,17 +70,8 @@ class BlueprintServer { ); this.ensureDirectoryExistence(outputPath); - const builder = new BlueprintBuilder({ - minified: this.options.minified, - debug: this.options.debug - }); + const builder = new BlueprintBuilder({ minified: this.options.minified }); 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 }); @@ -171,19 +138,8 @@ 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); - }); + res.sendFile(htmlPath); } else if (req.path === "/") { const pages = fs .readdirSync(this.options.outDir) @@ -381,35 +311,83 @@ class BlueprintServer { } setupWatcher(watcher) { - 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" + 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.filesWithErrors.add(filePath); + 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); + } } }); @@ -490,119 +468,6 @@ 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/templates/HTMLTemplate.js b/lib/templates/HTMLTemplate.js deleted file mode 100644 index 43e69ee..0000000 --- a/lib/templates/HTMLTemplate.js +++ /dev/null @@ -1,61 +0,0 @@ -/** - * HTMLTemplate provides templates for generating the final HTML document. - */ -class HTMLTemplate { - /** - * Creates a new HTML template instance. - * @param {Object} [options] - Options object - * @param {boolean} [options.minified=true] - Whether to minify the output - */ - constructor(options = {}) { - this.options = { - minified: true, - ...options, - }; - } - - /** - * Generates the final HTML document using the provided head and body content. - * @param {string} headContent - HTML content for the section - * @param {string} bodyContent - HTML content for the section - * @returns {string} - Complete HTML document - */ - generateDocument(headContent, bodyContent) { - return ` - - - - - ${headContent} - - - - ${bodyContent} - -`; - } -} - -module.exports = HTMLTemplate; \ No newline at end of file diff --git a/lib/utils/LinkProcessor.js b/lib/utils/LinkProcessor.js deleted file mode 100644 index ac4321b..0000000 --- a/lib/utils/LinkProcessor.js +++ /dev/null @@ -1,88 +0,0 @@ -/** - * LinkProcessor provides utilities for processing link elements. - */ -class LinkProcessor { - /** - * Creates a new link processor instance. - * @param {Object} [options] - Options object - * @param {boolean} [options.debug=false] - Enable debug logging - */ - constructor(options = {}) { - this.options = { - debug: false, - ...options, - }; - } - - /** - * Processes a link node and extracts the href attribute. - * Converts to an internal link if it doesn't start with http:// or https://. - * - * @param {Object} node - The link node to process - * @returns {Object} - An object containing link properties - */ - processLink(node) { - if (this.options.debug) { - console.log("\n[LinkProcessor] Processing link node"); - } - - const hrefProp = node.props.find((p) => p.startsWith("href:")); - let href = "#"; - - if (hrefProp) { - let hrefTarget = hrefProp - .substring(hrefProp.indexOf(":") + 1) - .trim() - .replace(/^"|"$/g, ""); - - if (!hrefTarget.startsWith("http://") && !hrefTarget.startsWith("https://")) { - hrefTarget = "/" + hrefTarget; - if (this.options.debug) { - console.log(`[LinkProcessor] Converted to internal link: "${hrefTarget}"`); - } - } else { - if (this.options.debug) { - console.log(`[LinkProcessor] External link detected: "${hrefTarget}"`); - } - } - href = hrefTarget; - } else { - if (this.options.debug) { - console.log("[LinkProcessor] No href property found, using default: '#'"); - } - } - - return { - href, - isExternal: href.startsWith("http://") || href.startsWith("https://") - }; - } - - /** - * Gets appropriate HTML attributes for a link based on its type - * @param {Object} linkInfo - Link information object - * @returns {string} - HTML attributes for the link - */ - getLinkAttributes(linkInfo) { - if (linkInfo.isExternal) { - return ` href="${linkInfo.href}" target="_blank" rel="noopener noreferrer"`; - } else { - return ` href="${linkInfo.href}"`; - } - } - - /** - * Gets the click handler for a button inside a link - * @param {Object} linkInfo - Link information object - * @returns {string} - onclick attribute value - */ - getButtonClickHandler(linkInfo) { - if (linkInfo.isExternal) { - return ` onclick="window.open('${linkInfo.href}', '_blank', 'noopener,noreferrer')"`; - } else { - return ` onclick="window.location.href='${linkInfo.href}'"`; - } - } -} - -module.exports = LinkProcessor; \ No newline at end of file diff --git a/lib/utils/StringUtils.js b/lib/utils/StringUtils.js deleted file mode 100644 index 8ba7f7c..0000000 --- a/lib/utils/StringUtils.js +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Utilities for string operations used throughout the Blueprint compiler. - */ - -/** - * Escapes special HTML characters in a string to prevent XSS attacks. - * @param {string} text - The text to escape - * @returns {string} - The escaped text - */ -const escapeHTML = (text) => { - return text - .replace(/&/g, "&") - .replace(//g, ">") - .replace(/"/g, """) - .replace(/'/g, "'"); -}; - -/** - * Converts a camelCase string to kebab-case (lowercase with hyphens). - * @param {string} str - The string to convert - * @returns {string} - The converted string - */ -const toKebabCase = (str) => { - return str.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(); -}; - -/** - * Stringify an object while handling circular references. - * @param {Object} obj - The object to stringify - * @returns {string} - JSON string representation - */ -const safeStringify = (obj) => { - const getCircularReplacer = () => { - const seen = new WeakSet(); - return (key, value) => { - if (key === "parent") return "[Circular:Parent]"; - if (typeof value === "object" && value !== null) { - if (seen.has(value)) { - return "[Circular]"; - } - seen.add(value); - } - return value; - }; - }; - - try { - return JSON.stringify(obj, getCircularReplacer(), 2); - } catch (err) { - return `[Unable to stringify: ${err.message}]`; - } -}; - -/** - * 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, - generateRandomId -}; \ No newline at end of file diff --git a/package.json b/package.json index 5f5508f..8346fe0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "blueprint", - "version": "1.1.0", + "version": "1.0.0", "description": "A modern UI component compiler with live reload support", "main": "lib/BlueprintBuilder.js", "scripts": { @@ -10,7 +10,6 @@ "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"