commit 9d7b1e71ce5cf24cf3302d5912a72a9af0e2b502 Author: DyslexicWolf Date: Wed Aug 7 09:45:15 2024 +0200 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1b74a24 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +./node_modules +./build + + +node_modules +build +export +.git + diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..897e722 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/Reeks2Missie6.iml b/.idea/Reeks2Missie6.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/Reeks2Missie6.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml new file mode 100644 index 0000000..7878377 --- /dev/null +++ b/.idea/codeStyles/Project.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..79ee123 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..df87cf9 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..b8d0f88 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..557b9f3 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,10 @@ +{ + "trailingComma": "es5", + "tabWidth": 2, + "semi": true, + "singleQuote": false, + "tabs": false, + "backetSpacing": true, + "arrowParens": "always", + "printWidth": 120 +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..9f46a1b --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "esbenp.prettier-vscode", + "blockceptionltd.blockceptionvscodeminecraftbedrockdevelopmentextension", + "mojang-studios.minecraft-debugger" + ] + } \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..fc1d4f6 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + "version": "0.3.0", + "configurations": [ + { + "type": "minecraft-js", + "request": "attach", + "name": "Debug with Minecraft", + "mode": "listen", + "preLaunchTask": "build", + "targetModuleUuid": "868bf88f-78d9-4109-b1b2-308645e367bd", + "sourceMapRoot": "${workspaceFolder}/build/_Reeks2Missie6Debug", + "generatedSourceRoot": "${workspaceFolder}/build/behavior_packs/scripts", + "port": 19144 + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c6a888c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,39 @@ +{ + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "git.ignoreLimitWarning": true, + "editor.formatOnSave": true, + "search.exclude": { + "**/.git": true, + "**/node_modules": true, + "**/build": true + }, + "files.exclude": { + "**/.DS_Store": true, + "**/.git": true, + "**/build": false, + "**/node_modules": true + }, + "cSpell.words": ["gametest", "gametests", "minecart", "shulker", "zoglin"], + "editor.tabSize": 2, + "workbench.colorCustomizations": { + "activityBar.background": "#243b1e", + "titleBar.activeBackground": "#1f3d21", + "titleBar.activeForeground": "#F5FCEB" + }, + + "emeraldwalk.runonsave": { + "commands": [{ "cmd": "gulp", "isAsync": true, "match": "\\.ts$" }] + }, + "BC-MC.Education.Enable": true +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..a75ea4e --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,12 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "dependsOrder": "sequence", + "dependsOn": [ + "gulp: default" + ] + } + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..c4e69d7 --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# Codefever Typescript level framework + +This is the readme for the typescript framework for minecraft education + +# Terminology + +## Puppeteer + +Puppeteer is a class that handles all the UI code for displaying messages to the player. It also handles translations. see [Translations](#translations) + +## MindKeeper + +This is the system that handles all the world storage, supported types are `boolean`, `number`, `string` + +> **Important** : all registering of the world variables must be done in the world.afterEvents.worldInitialize event (this event can't send anything to the world (like messages)) +> +> Here is a example of a definition of the world variable foo + +```typescript +world.afterEvents.worldInitialize.subscribe(({ propertyRegistry }) => { + mindKeeper.registerStore("foo", StoreType.string); + + mindKeeper.registerToWorld(propertyRegistry); +}); +``` + +## Level (could be abit convoluted) **WIP** + +This defines a level in a world, it has 3 callback functions as parameters. These functions should + +- define the setup logic +- define the update (loop) logic (Used for actionbar mainly) +- define the condition to pass the level +- define the code to be run when the level is completed + +> There is a a AbstractCondition class included with a BlockCondition. This (convoluted) way you can define a BlockCondition in the function that checks if the level is complete. + +## Translations + +Translations work with a resource pack. It's the same as with regular resource packs. The way it works with Pupeteer is to set a message to the screen but add the "%" prefix to the key. +So `pupeteer.setActionbar("%foo.bar)` will look for the key `foo.bar` in the resource pack and display that message. + +# Random knowlege + +bunch of helper scripts for this [here](https://github.com/JaylyDev/ScriptAPI) +This could be handy [jaylydb](https://github.com/JaylyDev/ScriptAPI/tree/stable/scripts/jaylydb) + +# Authors + +- [Bram Verhulst](https://github.com/brammie15) :p diff --git a/Setup.md b/Setup.md new file mode 100644 index 0000000..087e797 --- /dev/null +++ b/Setup.md @@ -0,0 +1,63 @@ +# Setup + +## Prerequisites + +**Install Node.js tools, if you haven't already** + +We're going to use the package manager [npm](https://www.npmjs.com/package/npm) to get more tools to make the process of building our project easier. + +Visit [https://nodejs.org/](https://nodejs.org). + +Download the version with "LTS" next to the number and install it. (LTS stands for Long Term Support, if you're curious.) In the Node.js Windows installer, accept the installation defaults. You do not need to install any additional tools for Native compilation. + +**Install Visual Studio Code, if you haven't already** + +Visit the [Visual Studio Code website](https://code.visualstudio.com) and install Visual Studio Code. + +## Getting Started + +1. Use npm to install our tools: + + ```powershell + npm i + ``` + +1. When that's done, enter: + + ```powershell + npm i gulp-cli --global + ``` + +It might also ask you to install the Minecraft Debugger and Blockception's Visual Studio Code plugin, which are plugins to Visual Studio Code that can help with Minecraft development. Go ahead and do that, if you haven't already. + +# Running + +To actually run the project, you must run `gulp` or `gulp watch` in the terminal. + +# Gulpfile + +At the top of the gulpfile there is a field for the name of the folder/project + +# Manifest + +In the behavior_packs folder change the name of the folder in that to match the name in the gulpfile. + +In the same folder change the manifest.json to match your needs. + +> `note`: this whole folder will be copied to the development_behavior_packs folder located at `%appdata%\Minecraft Education Edition\games\com.mojang\development_behavior_packs` + +and if there is a resource_packs folder it will also be copied to the corresponding folder. + +# World settings + +Because education chose to be anoying (huge shock i know) you have to enable the js api manually through editing the world settings with nbt. + +see a guide [here](https://wiki.bedrock.dev/nbt/experimental-education-edition.html) + +# Debugging + +To enable the conent log you have to enable the content log in the education settings. +Open `%appdata%\Minecraft Education Edition\games\com.mojang\minecraftpe\options.txt` and change `content_log_file` and `content_log_gui` to `1`. +Than ingame you can CTRL+H to open the content log. + +> Note: it would be advised to change the keyboard settings because H defaults to show the tutorial witch can be anoying. diff --git a/behavior_packs/blocks/cracked_glass.json b/behavior_packs/blocks/cracked_glass.json new file mode 100644 index 0000000..e7ba5d9 --- /dev/null +++ b/behavior_packs/blocks/cracked_glass.json @@ -0,0 +1,20 @@ +{ + "format_version": "1.20.13", + "minecraft:block": { + "description": { + "identifier": "cc:cracked_glass", + "menu_category": { + "category": "construction", + "is_hidden_in_commands": false + } + }, + "components": { + "minecraft:light_dampening": 0, + "minecraft:material_instances": { + "*": { + "render_method": "blend" + } + } + } + } +} diff --git a/behavior_packs/cameras/presets/camera.json b/behavior_packs/cameras/presets/camera.json new file mode 100644 index 0000000..3f079d0 --- /dev/null +++ b/behavior_packs/cameras/presets/camera.json @@ -0,0 +1,12 @@ +{ + "format_version": "1.19.50", + "minecraft:camera_preset": { + "identifier": "example:custom", + "inherit_from": "minecraft:free", + "pos_x": 30, + "pos_y": 90, + "pos_z": -20, + "rot_x": 10, + "rot_y": 40 + } +} diff --git a/behavior_packs/dialogue/scene.json b/behavior_packs/dialogue/scene.json new file mode 100644 index 0000000..e69de29 diff --git a/behavior_packs/entities/floating_text.json b/behavior_packs/entities/floating_text.json new file mode 100644 index 0000000..a917ee1 --- /dev/null +++ b/behavior_packs/entities/floating_text.json @@ -0,0 +1,62 @@ +{ + "format_version": "1.10.0", + "minecraft:entity": { + "description": { + "identifier": "cc:floating_text", + "is_spawnable": true, + "is_summonable": true, + "is_experimental": false + }, + "components": { + "minecraft:type_family": { + "family": ["floatingtext"] + }, + "minecraft:health": { + "value": 999999999, + "max": 999999999 + }, + "minecraft:collision_box": { + "width": 0.6, + "height": 1.8 + }, + "minecraft:nameable": { + "alwaysShow": true, + "allowNameTagRenaming": true + }, + "minecraft:fire_immune": true, + "minecraft:scale": { + "value": 0 + }, + "minecraft:knockback_resistance": { + "value": 1 + }, + "minecraft:physics": { + "has_gravity": false + }, + "minecraft:pushable": { + "is_pushable": false + }, + "minecraft:damage_sensor": { + "triggers": { + "cause": "all", + "deals_damage": false, + "on_damage": { + "event": "left_click" + } + } + } + }, + "component_groups": {}, + "events": { + "left_click": { + "run_command": { + "target": "self", + "command": [ + "tag @s add edit", + "execute @s[tag=edit] ~ ~ ~ execute @e[tag=floating] ~ ~ ~ function floating_text_function/menu_edit_multi/edit" + ] + } + } + } + } +} diff --git a/behavior_packs/functions/summon.mcfunction b/behavior_packs/functions/summon.mcfunction new file mode 100644 index 0000000..46e1632 --- /dev/null +++ b/behavior_packs/functions/summon.mcfunction @@ -0,0 +1,3 @@ +summon cc:floating_text ~ ~ ~ "§f[§aUse Name Tag§f]" +playsound lodestone_compass.link_compass_to_lodestone @s ~ ~ ~ +titleraw @s actionbar {"rawtext":[{"text":"§l§7[§6Floating §bText§7]§r §a\n§2Floating text spawned template"}]} \ No newline at end of file diff --git a/behavior_packs/manifest.json b/behavior_packs/manifest.json new file mode 100644 index 0000000..c1058e2 --- /dev/null +++ b/behavior_packs/manifest.json @@ -0,0 +1,33 @@ +{ + "format_version": 2, + "metadata": { + "authors": ["Me and my cat"] + }, + "header": { + "name": "Reeks2Missie9BP", + "description": "De behavior pack voor Reeks 2 Missie 9", + "uuid": "2d4894af-d185-4b31-8ec8-265d585ee3fb", + "version": [1, 0, 0], + "min_engine_version": [1, 20, 0] + }, + "modules": [ + { + "description": "Script resources", + "language": "javascript", + "type": "script", + "uuid": "9d9d8955-50eb-4093-84af-2012ec37f049", + "version": [1, 0, 1], + "entry": "scripts/main.js" + } + ], + "dependencies": [ + { + "module_name": "@minecraft/server", + "version": "1.12.0-beta" + }, + { + "uuid": "0b55c95c-33d9-4cef-8040-3607704aa2a2", + "version": [1, 0, 0] + } + ] +} diff --git a/behavior_packs/pack_icon.png b/behavior_packs/pack_icon.png new file mode 100644 index 0000000..57c78cc Binary files /dev/null and b/behavior_packs/pack_icon.png differ diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000..1f66573 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,564 @@ +// === CONFIGURABLE VARIABLES + +const bpfoldername = "Reeks2Missie9"; +const isStoreVersion = true; + +const resource_pack_name = "Reeks2Missie9RP"; +const resource_pack_description = "De resource pack voor Reeks 2 Missie 9"; +const resource_pack_authors = ["Me and my cat"]; + +const behavior_pack_name = "Reeks2Missie6BP"; +const behavior_pack_description = "De behavior pack voor Reeks 2 Missie 9"; +const behavior_pack_authors = ["Me and my cat"]; + +// === Optional variables + +const exportWorldFolderPath = ""; + +// === END CONFIGURABLE VARIABLES + +const gulp = require("gulp"); +const ts = require("gulp-typescript"); +const del = require("del"); +const os = require("os"); +const spawn = require("child_process").spawn; +const sourcemaps = require("gulp-sourcemaps"); +const zip = require("gulp-zip"); +const fs = require("fs"); +const rename = require("gulp-rename"); +const crypto = require("crypto"); + +var readLineSync = import("readline-sync"); +var NBT = import("nbtify"); + +const worldsFolderName = "minecraftWorlds"; + +const regularVersionMojangRoot = os.homedir() + "/appdata/Roaming/Minecraft Education Edition/games/com.mojang/"; +const storeVersionMojangRoot = + os.homedir() + + "/AppData/Local/Packages/Microsoft.MinecraftEducationEdition_8wekyb3d8bbwe/LocalState/games/com.mojang/"; + +const mcdir = isStoreVersion ? storeVersionMojangRoot : regularVersionMojangRoot; + +function clean_build(callbackFunction) { + del(["build/behavior_packs/", "build/resource_packs/"]).then( + (value) => { + callbackFunction(); // success + }, + (reason) => { + callbackFunction(); // error + } + ); +} + +function clean_export(cb) { + del(["export/**/**"]).then( + (value) => { + cb(); // success + }, + (reason) => { + cb(); // error + } + ); +} + +function copy_behavior_packs() { + return gulp.src(["behavior_packs/**/*"]).pipe(gulp.dest("build/behavior_packs")); +} + +function copy_resource_packs() { + return gulp.src(["resource_packs/**/*"]).pipe(gulp.dest("build/resource_packs")); +} + +const copy_content = gulp.parallel(copy_behavior_packs, copy_resource_packs); + +function compile_scripts() { + return gulp + .src("scripts/**/*.ts") + .pipe(sourcemaps.init()) + .pipe( + ts({ + module: "es2020", + moduleResolution: "node", + lib: ["es2020", "dom"], + strict: true, + target: "es2020", + noImplicitAny: true, + }) + ) + .pipe( + sourcemaps.write("../../_" + bpfoldername + "Debug", { + destPath: bpfoldername + "/scripts/", + sourceRoot: "./../../../scripts/", + }) + ) + .pipe(gulp.dest("build/behavior_packs/scripts")); +} + +const build = gulp.series(clean_build, copy_content, compile_scripts); + +function clean_localmc(callbackFunction) { + if (!bpfoldername || !bpfoldername.length || bpfoldername.length < 2) { + console.log("No bpfoldername specified."); + callbackFunction(); + return; + } + + del([mcdir + "development_behavior_packs/" + bpfoldername, mcdir + "development_resource_packs/" + bpfoldername], { + force: true, + }).then( + (value) => { + callbackFunction(); // Success + }, + (reason) => { + callbackFunction(); // Error + } + ); +} + +function deploy_localmc_behavior_packs() { + console.log("Deploying to '" + mcdir + "development_behavior_packs/" + bpfoldername + "'"); + return gulp.src(["build/behavior_packs/**/*"]).pipe(gulp.dest(mcdir + "development_behavior_packs/" + bpfoldername)); +} + +function deploy_localmc_resource_packs() { + console.log("Deploying to '" + mcdir + "development_resource_packs/" + bpfoldername + "'"); + + return gulp.src(["build/resource_packs/**/*"]).pipe(gulp.dest(mcdir + "development_resource_packs/" + bpfoldername)); +} + +function getTargetWorldPath() { + return mcdir + worldsFolderName + "/" + activeWorldFolderName; +} + +function getTargetConfigPath() { + return mcdir + "config"; +} + +function getTargetWorldBackupPath() { + return "backups/worlds/" + activeWorldFolderName; +} + +function getDevConfigPath() { + return "config"; +} + +function getDevWorldPath() { + return "worlds/default"; +} + +function getDevWorldBackupPath() { + return "backups/worlds/devdefault"; +} + +function clean_localmc_world(callbackFunction) { + console.log("Removing '" + getTargetWorldPath() + "'"); + + del([getTargetWorldPath()], { + force: true, + }).then( + (value) => { + callbackFunction(); // Success + }, + (reason) => { + callbackFunction(); // Error + } + ); +} + +function clean_localmc_config(callbackFunction) { + console.log("Removing '" + getTargetConfigPath() + "'"); + + del([getTargetConfigPath()], { + force: true, + }).then( + (value) => { + callbackFunction(); // Success + }, + (reason) => { + callbackFunction(); // Error + } + ); +} + +function clean_dev_world(callbackFunction) { + console.log("Removing '" + getDevWorldPath() + "'"); + + del([getDevWorldPath()], { + force: true, + }).then( + (value) => { + callbackFunction(); // Success + }, + (reason) => { + callbackFunction(); // Error + } + ); +} + +function clean_localmc_world_backup(callbackFunction) { + console.log("Removing backup'" + getTargetWorldBackupPath() + "'"); + + del([getTargetWorldBackupPath()], { + force: true, + }).then( + (value) => { + callbackFunction(); // Success + }, + (reason) => { + callbackFunction(); // Error + } + ); +} + +function clean_dev_world_backup(callbackFunction) { + console.log("Removing backup'" + getDevWorldBackupPath() + "'"); + + del([getTargetWorldBackupPath()], { + force: true, + }).then( + (value) => { + callbackFunction(); // Success + }, + (reason) => { + callbackFunction(); // Error + } + ); +} + +function backup_dev_world() { + console.log("Copying world '" + getDevWorldPath() + "' to '" + getDevWorldBackupPath() + "'"); + return gulp + .src([getTargetWorldPath() + "/**/*"]) + .pipe(gulp.dest(getDevWorldBackupPath() + "/worlds/" + activeWorldFolderName)); +} + +function deploy_localmc_config() { + console.log("Copying world 'config/' to '" + getTargetConfigPath() + "'"); + return gulp.src([getDevConfigPath() + "/**/*"]).pipe(gulp.dest(getTargetConfigPath())); +} + +function deploy_localmc_world() { + console.log("Copying world 'worlds/default/' to '" + getTargetWorldPath() + "'"); + return gulp.src([getDevWorldPath() + "/**/*"]).pipe(gulp.dest(getTargetWorldPath())); +} + +function ingest_localmc_world() { + console.log("Ingesting world '" + getTargetWorldPath() + "' to '" + getDevWorldPath() + "'"); + return gulp.src([getTargetWorldPath() + "/**/*"]).pipe(gulp.dest(getDevWorldPath())); +} + +function backup_localmc_world() { + console.log("Copying world '" + getTargetWorldPath() + "' to '" + getTargetWorldBackupPath() + "/'"); + return gulp + .src([getTargetWorldPath() + "/**/*"]) + .pipe(gulp.dest(getTargetWorldBackupPath() + "/" + activeWorldFolderName)); +} + +const deploy_localmc = gulp.series( + clean_localmc, + function (callbackFunction) { + callbackFunction(); + }, + gulp.parallel(deploy_localmc_behavior_packs, deploy_localmc_resource_packs) +); + +function watch() { + return gulp.watch( + ["scripts/**/*.ts", "behavior_packs/**/*", "resource_packs/**/*"], + gulp.series(build, deploy_localmc) + ); +} + +function serve() { + return gulp.watch( + ["scripts/**/*.ts", "behavior_packs/**/*", "resource_packs/**/*"], + gulp.series(stopServer, build, deploy_localmc, startServer) + ); +} + +let activeServer = null; + +function stopServer(callbackFunction) { + if (activeServer) { + activeServer.stdin.write("stop\n"); + activeServer = null; + } + + callbackFunction(); +} + +function startServer(callbackFunction) { + if (activeServer) { + activeServer.stdin.write("stop\n"); + activeServer = null; + } + + activeServer = spawn(dedicatedServerPath + "bedrock_server"); + + let logBuffer = ""; + + let serverLogger = function (buffer) { + let incomingBuffer = buffer.toString(); + + if (incomingBuffer.endsWith("\n")) { + (logBuffer + incomingBuffer).split(/\n/).forEach(function (message) { + if (message) { + if (message.indexOf("Server started.") >= 0) { + activeServer.stdin.write("script debugger listen 19144\n"); + } + console.log("Server: " + message); + } + }); + logBuffer = ""; + } else { + logBuffer += incomingBuffer; + } + }; + + activeServer.stdout.on("data", serverLogger); + activeServer.stderr.on("data", serverLogger); + + callbackFunction(); +} + +hasZipped = false; + +function rename_zip_to_mcworld(cb) { + gulp + .src(["export/export.zip"]) + .pipe(rename(bpfoldername + ".mcworld")) + .pipe(gulp.dest("export/")); + cb(); +} + +function zip_world(cb) { + let zip_path = "export/export.zip"; + console.log("export/" + bpfoldername + "/**/**"); + return gulp + .src(["export/" + bpfoldername + "/**/**"], { base: "export/" + bpfoldername + "/" }) + .pipe(zip("export.zip", { compress: false, buffer: false })) + .pipe(gulp.dest("export/")); +} + +function get_version() { + let currentTimeStamp = new Date().toISOString().replace(/T/, " ").replace(/\..+/, ""); + return currentTimeStamp; +} + +function add_version_to_world_name(cb) { + let worldNameFilePath = "export/" + bpfoldername + "/levelname.txt"; + let worldName = fs.readFileSync(worldNameFilePath, "utf8"); + currentTimeStamp = get_version(); + worldName = worldName + " " + currentTimeStamp; + fs.writeFileSync(worldNameFilePath, worldName); + console.log("Written " + worldName + " to " + worldNameFilePath); + cb(); +} + +function copy_build_resource_pack_to_export_folder(cb) { + gulp + .src(["build/resource_packs/**/**"]) + .pipe(gulp.dest("export/" + bpfoldername + "/resource_packs/" + bpfoldername)); + console.log( + "Copied build/resource_packs/" + + bpfoldername + + "/**/** to export/" + + bpfoldername + + "/resource_packs/" + + bpfoldername + ); + cb(); +} + +function copy_build_behavior_pack_to_export_folder(cb) { + gulp + .src(["build/behavior_packs/**/**"]) + .pipe(gulp.dest("export/" + bpfoldername + "/behavior_packs/" + bpfoldername)); + cb(); +} + +function copy_world_to_export_folder(cb) { + if (exportWorldFolderPath == "") { + var readLineSync = import("readline-sync").then((readLineSync) => { + let data = get_worlds_paths_and_names(cb); + let index = readLineSync.keyInSelect( + data.map((d) => d.name), + "Which world do you want to copy?" + ); + if (index === -1) { + cb(); + return; + } + const world = data[index]; + //console.log("Copying world '" + world.path + "' to 'build/worlds/export/'"); + return gulp.src([world.path + "/**/*"]).pipe(gulp.dest("export/" + bpfoldername)); + }); + } else { + return gulp.src([exportWorldFolderPath + "/**/*"]).pipe(gulp.dest("export/" + bpfoldername)); + } + //copy the build to the correct folder + cb(); +} + +function get_worlds_paths_and_names(cb) { + let data = []; + const worldsPath = mcdir + worldsFolderName; + const worlds = fs.readdirSync(worldsPath); + worlds.forEach((world) => { + let worldName = "UNDEFINED"; + try { + worldName = fs.readFileSync(worldsPath + "/" + world + "/levelname.txt", "utf8"); + } catch (e) { + console.log("Error reading levelname.txt for " + world); + console.error(e); + } + data.push({ + path: worldsPath + "/" + world, + name: worldName, + }); + }); + cb(); + return data; +} + +async function nbt_rename_world(cb) { + const NBT = await import("nbtify"); + const { readFile, writeFile } = await import("fs/promises"); + const buffer = await readFile("export/" + bpfoldername + "/level.dat"); + const data = await NBT.read(buffer); + let oldLevelName = data.data.LevelName; + let newName = bpfoldername + " " + get_version(); + data.data.LevelName = newName; + const result = await NBT.write(data); + await writeFile("export/" + bpfoldername + "/level.dat", result); + console.log("Renamed " + oldLevelName + " to " + newName); + cb(); +} + +function levelnametxt_rename(cb) { + const { readFile, writeFile } = import("fs/promises"); + const levelNameFilePath = "export/" + bpfoldername + "/levelname.txt"; + let levelName = fs.readFileSync(levelNameFilePath, "utf8"); + let newName = bpfoldername + " " + get_version(); + fs.writeFileSync(levelNameFilePath, newName); + console.log("Renamed " + levelName + " to " + newName); + cb(); +} + +// Setup functions + +function setup_behaviour_pack(cb) { + const manifestPath = "behavior_packs/manifest.json"; + const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8")); + + let header_uuid = get_behaviour_pack_uuid(cb); + let module_uuid = generate_UUID(cb); + let resource_pack_dependencies_uuid = get_resource_pack_uuid(cb); + + console.log("Header UUID: " + header_uuid); + console.log("Module UUID: " + module_uuid); + + manifest.header.uuid = header_uuid; + manifest.modules[0].uuid = module_uuid; + manifest.dependencies[1].uuid = resource_pack_dependencies_uuid; + + manifest.metadata.authors = behavior_pack_authors; + manifest.header.name = behavior_pack_name; + manifest.header.description = behavior_pack_description; + + fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 1)); + cb(); +} +function setup_resource_pack(cb) { + const manifestPath = "resource_packs/manifest.json"; + const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8")); + + let header_uuid = get_resource_pack_uuid(cb); + let module_uuid = generate_UUID(cb); + let dependencies_uuid = get_behaviour_pack_uuid(cb); + + manifest.header.uuid = header_uuid; + manifest.modules[0].uuid = module_uuid; + manifest.dependencies[0].uuid = dependencies_uuid; + + manifest.metadata.authors = resource_pack_authors; + manifest.header.name = resource_pack_name; + manifest.header.description = resource_pack_description; + + fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 1)); + cb(); +} + +function generate_UUID(cb) { + let uuid = crypto.randomUUID(); + return uuid; +} + +var behavior_pack_uuid = null; +var resource_pack_uuid = null; + +function get_uuid_for_type(cb, type) { + let to_return = null; + switch (type) { + case "behaviour_pack": + if (behavior_pack_uuid === null) { + behavior_pack_uuid = generate_UUID(cb); + } + to_return = behavior_pack_uuid; + break; + case "resource_pack": + if (resource_pack_uuid === null) { + resource_pack_uuid = generate_UUID(cb); + } + to_return = resource_pack_uuid; + break; + default: + return generate_UUID(cb); + } + return to_return; +} +let get_behaviour_pack_uuid = (cb) => get_uuid_for_type(cb, "behaviour_pack"); +let get_resource_pack_uuid = (cb) => get_uuid_for_type(cb, "resource_pack"); + +exports.clean_build = clean_build; +exports.copy_behavior_packs = copy_behavior_packs; +exports.copy_resource_packs = copy_resource_packs; +exports.compile_scripts = compile_scripts; +exports.copy_content = copy_content; +exports.build = build; +exports.clean_localmc = clean_localmc; +exports.deploy_localmc = deploy_localmc; +exports.default = gulp.series(build, deploy_localmc); +exports.clean = gulp.series(clean_build, clean_localmc); +exports.watch = gulp.series(build, deploy_localmc, watch); +exports.serve = gulp.series(build, deploy_localmc, startServer, serve); +exports.updateworld = gulp.series( + clean_localmc_world_backup, + backup_localmc_world, + clean_localmc_world, + deploy_localmc_world +); +exports.ingestworld = gulp.series(clean_dev_world_backup, backup_dev_world, clean_dev_world, ingest_localmc_world); +exports.updateconfig = gulp.series(clean_localmc_config, deploy_localmc_config); +exports.compile_world = gulp.series( + clean_export, + build, + copy_world_to_export_folder, + gulp.parallel(copy_build_behavior_pack_to_export_folder, copy_build_resource_pack_to_export_folder), + gulp.parallel(add_version_to_world_name, nbt_rename_world) +); +exports.zip = gulp.series(zip_world, rename_zip_to_mcworld); +exports.export = gulp.series( + clean_export, + copy_world_to_export_folder, + build, + gulp.parallel(copy_build_behavior_pack_to_export_folder, copy_build_resource_pack_to_export_folder), + levelnametxt_rename, + nbt_rename_world, + zip_world, + rename_zip_to_mcworld +); + +exports.test = gulp.parallel(setup_behaviour_pack, setup_resource_pack); +exports.export_clean = gulp.series(clean_export); diff --git a/old_readme.md b/old_readme.md new file mode 100644 index 0000000..c0357c0 --- /dev/null +++ b/old_readme.md @@ -0,0 +1,524 @@ +--- +page_type: sample +author: mammerla +description: A basic Hello World example of developing Minecraft scripts using TypeScript and a build process. +ms.author: mikeam@microsoft.com +ms.date: 04/01/2022 +languages: + - typescript +products: + - minecraft +--- + +# Minecraft TypeScript Starter Project + +This sample demonstrates a simple build process and TypeScript compilation for Minecraft. This readme shows how you can use Betas APIs experiment to build out simple gameplay styles. You can use this project as a starter for your own scripting projects. + +## Prerequisites + +**Install Node.js tools, if you haven't already** + +We're going to use the package manager [npm](https://www.npmjs.com/package/npm) to get more tools to make the process of building our project easier. + +Visit [https://nodejs.org/](https://nodejs.org). + +Download the version with "LTS" next to the number and install it. (LTS stands for Long Term Support, if you're curious.) In the Node.js Windows installer, accept the installation defaults. You do not need to install any additional tools for Native compilation. + +**Install Visual Studio Code, if you haven't already** + +Visit the [Visual Studio Code website](https://code.visualstudio.com) and install Visual Studio Code. + +## Getting Started + +1. To make your own environment look like the example, create a folder on your `C:\` drive and call it **projects**. Create a subfolder called **cotta**. + +1. Put the extracted contents of the TypeScript Starter Project folder into **cotta**. + +1. Open a Windows Terminal or PowerShell window and change the working directory to your **cotta** folder: + + ```powershell + cd c:\projects\cotta\ + ``` + +1. Use npm to install our tools: + + ```powershell + npm i + ``` + +1. When that's done, enter: + + ```powershell + npm i gulp-cli --global + ``` + +1. Use this shortcut command to open the project in Visual Studio Code: + + ```powershell + code . + ``` + +It might also ask you to install the Minecraft Debugger and Blockception's Visual Studio Code plugin, which are plugins to Visual Studio Code that can help with Minecraft development. Go ahead and do that, if you haven't already. + +### Chapter 1. Customize the behavior pack + +In Visual Studio Code, expand the `behavior_packs` node in the treeview to the left, and rename the **cotta** folder to "cotta". + +Use the Find/Replace command (Ctrl-Shift-F) to search for "cotta" and replace the instance in **gulpfile.js** and the instance in **launch.json** with "cotta." + +Go back the Files tree view and open `behavior_packs\cotta\manifest.json` + +Update the name and description properties to something like "Cotta Behavior Pack" and "My TypeScript Project". + +Update the first and second UUID properties to make it unique to your project. See [this article](https://learn.microsoft.com/minecraft/creator/documents/behaviorpack) for tips on working with behavior packs and creating your own unique UUIDs. + +> IMPORTANT: +> You may also need to update the version of Beta APIs in your `dependencies` section to match your version of Minecraft. +> Versions 1.19.40 feature `1.0.0-beta` APIs +> Versions 1.19.50, 1.19.60, and 1.19.70 feature `1.1.0-beta` APIs +> Versions 1.19.80 features `1.2.0-beta` APIs +> Versions 1.20.0 features `1.3.0-beta` APIs +> Versions 1.20.10 features `1.4.0-beta` APIs +> Versions 1.20.20 features `1.5.0-beta` APIs +> Future versions will likely require updated versions of Beta APIs. + +### Chapter 2. Let's test the parts of our project + +To get started, go into PowerShell and navigate to your **C:\projects\cotta** directory. +Run this command: + +```powershell +Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass +``` + +Run this one, too. + +```powershell +gulp +``` + +This uses a build tool called GulpJS and automatically compiles your TypeScript project and pushes it over into Minecraft. + +You may hear a little tone through your speakers when it has successfully completed deployment. + +Launch Minecraft and create a new world: + +1. Call it **Cotta Test**. +1. Select a Creative game mode. +1. Select a Flat world option, under the Advanced section of the Create New World screen. +1. Under Behavior Packs, under Available, you should see your Cotta Behavior Pack. Select it and Activate it. +1. Enable the Beta APIs experiment toggle, under the Experiments section of the Create New World screen. +1. Create the world and go into it. + +Now you're in. Great! + +By default, this starter pack comes with a simple script that will display a message: + +`[Script Engine] Hello starter! Tick: ` + +This means your behavior pack is working and your tools for compiling and pushing TypeScript are just fine. Awesome! + +### Chapter 3. Scripting your gameplay + +Let's go back to Visual Studio Code and change up some code. + +Open up `scripts/main.ts` within Visual Studio Code. + +#### Add some initialization code + +Remove all the existing script code in **main.ts**. Replace it with this to start: + +```typescript +import { + world, + system, + BlockPermutation, + EntityInventoryComponent, + ItemStack, + DisplaySlotId, + BlockType, + BlockTypes, +} from "@minecraft/server"; + +const START_TICK = 100; + +// global variables +let curTick = 0; + +const ARENA_X_SIZE = 30; +const ARENA_Z_SIZE = 30; +const ARENA_X_OFFSET = 0; +const ARENA_Y_OFFSET = -60; +const ARENA_Z_OFFSET = 0; + +function initializeBreakTheTerracotta() { + const overworld = world.getDimension("overworld"); + + let scoreObjective = world.scoreboard.getObjective("score"); + + if (!scoreObjective) { + scoreObjective = world.scoreboard.addObjective("score", "Level"); + } + + // eliminate pesky nearby mobs + let entities = overworld.getEntities({ + excludeTypes: ["player"], + }); + + for (let entity of entities) { + entity.kill(); + } + + // set up scoreboard + world.scoreboard.setObjectiveAtDisplaySlot(DisplaySlotId.Sidebar, { + objective: scoreObjective, + }); + + let players = world.getAllPlayers(); + + for (let player of players) { + player.runCommand("scoreboard players set @s score 0"); + + let inv = player.getComponent("inventory") as EntityInventoryComponent; + inv.container.addItem(new ItemStack("diamond_sword")); + inv.container.addItem(new ItemStack("dirt", 64)); + + player.teleport( + { + x: ARENA_X_OFFSET - 3, + y: ARENA_Y_OFFSET, + z: ARENA_Z_OFFSET - 3, + }, + { + dimension: overworld, + rotation: { x: 0, y: 0 } + } + ); + } + + world.sendMessage("BREAK THE TERRACOTTA"); +} + +function gameTick() { + try { + curTick++; + + if (curTick === START_TICK) { + initializeBreakTheTerracotta(); + } + } catch (e) { + console.warn("Tick error: " + e); + } + + system.run(gameTick); +} + +system.run(gameTick); + +``` + +This code does some work to initialize our gameplay for Minecraft by running several commands. + +First, we queue up a run to our main tick function, gameTick. Note that at the end, we will requeue a game tick, which will run within the next tick frame. This will give us a callback that fires 20 times a second, and within this, we can put all of our game logic. We want the game to initialize some code; namely, the `initializeBreakTheTerracotta` function. + +Note that we wait until `START_TICK` (100 ticks in) before the world is actually initialized. This gives Minecraft time to fully load up and get ready. + +Within the initialize function, we run commands that: + +- Clear out any existing mobs near the player in the world. +- Set up a scoreboard objective for overall Level of the player, meaning the number of terracotta breaks they have +- Give the current player a diamond sword and some dirty dirt +- Use chat to give the player an instructional message + +Now, let's run the code. This time, we're going to run gulp in "watch mode" - meaning it will just sit in the background and watch for changes, and if they happen, they will automatically compile and deploy to the Minecraft folder. This way, we won't have to worry about separately compiling every time we make a change to code. + +Go back to your PowerShell window, and enter: + +```powershell +gulp watch +``` + +You should see gulp compile and deploy to the Minecraft folder, and make a noise when it does that. From here, we don't need to tend to PowerShell except to see if there are any compilation errors down the road. + +When you are done coding for the day, either hit **ctrl-c** in the PowerShell Window to stop the watch mode or close the window. + +Now, let's go back to Minecraft. + +Save and Quit to exit out of the world. We'll want to reload the world from here - any time you make a script change, you need to exit out of the world and reload it to see changes. Or, you can run the `/reload` command to reload the JavaScript files that have been deployed. + +Now load the world. You should see your initialization changes: a new scoreboard, new items in your inventory, and a script message. + +Note that as you work through this tutorial, we are going to run the initialization code more than once, so your player is going to get multiples of these items during this development and test phase. If that bothers you, feel free to toss out these items before you close the world. + +#### Build your arena with some helper code + +We're going to start by adding some handy helper utility code functions. This will show you how you can organize your code into separate modules or classes. + +Add a new file to your `scripts` folder called `Utilities.ts`. Correct capitalization matters, so make sure the `U` is capitalized. Add the following code: + +```typescript +import { world, BlockType, BlockPermutation } from "@minecraft/server"; + +export default class Utilities { + static fillBlock( + blockType: BlockType, + xFrom: number, + yFrom: number, + zFrom: number, + xTo: number, + yTo: number, + zTo: number + ) { + let overworld = world.getDimension("overworld"); + let perm = BlockPermutation.resolve(blockType.id); + + for (let i = xFrom; i <= xTo; i++) { + for (let j = yFrom; j <= yTo; j++) { + for (let k = zFrom; k <= zTo; k++) { + overworld.getBlock({ x: i, y: j, z: k })?.setPermutation(perm); + } + } + } + } + + static fourWalls( + blockType: BlockType, + xFrom: number, + yFrom: number, + zFrom: number, + xTo: number, + yTo: number, + zTo: number + ) { + let overworld = world.getDimension("overworld"); + let perm = BlockPermutation.resolve(blockType.id); + + for (let i = xFrom; i <= xTo; i++) { + for (let k = yFrom; k <= yTo; k++) { + overworld.getBlock({ x: i, y: k, z: zFrom })?.setPermutation(perm); + overworld.getBlock({ x: i, y: k, z: zTo })?.setPermutation(perm); + } + } + + for (let j = zFrom + 1; j < zTo; j++) { + for (let k = yFrom; k <= yTo; k++) { + overworld.getBlock({ x: xFrom, y: k, z:j })?.setPermutation(perm); + overworld.getBlock({ x: xTo, y: k, z: j })?.setPermutation(perm); + } + } + } +} +``` + +The first utility function here (`Utilities.fillBlock`) is relatively straightforward: + +Across three dimensions (within three loops), it will basically set a block in the overworld to a particular type. This function just makes a big chunk of blocks. + +The second utility function here (`Utilities.fourWalls`) basically creates a walled enclave. The first inner loop creates two stripes of blocks left to right (across X). The second inner loop creates two stripes of blocks south to north (across Z) - thus completing four walls that join each other. + +Go back to **main.ts**. Let's use these functions in our initialization function. + +First, we'll need an import function. Add a new line above `const START_TICK = 100;` and make this the second line of the file: + +```typescript +import Utilities from "./Utilities.js"; +``` + +Next, within `initializeBreakTheTerracotta`, let's add our arena initialization beneath the `world.sendMessage("BREAK THE TERRACOTTA!");` line of code: + +```typescript +let airBlockType = BlockTypes.get("minecraft:air"); +let cobblestoneBlockType = BlockTypes.get("minecraft:cobblestone"); + +if (airBlockType) { + Utilities.fillBlock( + airBlockType, + ARENA_X_OFFSET - ARENA_X_SIZE / 2 + 1, + ARENA_Y_OFFSET, + ARENA_Z_OFFSET - ARENA_Z_SIZE / 2 + 1, + ARENA_X_OFFSET + ARENA_X_SIZE / 2 - 1, + ARENA_Y_OFFSET + 10, + ARENA_Z_OFFSET + ARENA_Z_SIZE / 2 - 1 + ); +} + +if (cobblestoneBlockType) { + Utilities.fourWalls( + cobblestoneBlockType, + ARENA_X_OFFSET - ARENA_X_SIZE / 2, + ARENA_Y_OFFSET, + ARENA_Z_OFFSET - ARENA_Z_SIZE / 2, + ARENA_X_OFFSET + ARENA_X_SIZE / 2, + ARENA_Y_OFFSET + 10, + ARENA_Z_OFFSET + ARENA_Z_SIZE / 2 + ); +} +``` + +The first line just fills a cuboid with air - basically clearing out the arena of any previous items. The second line re-installs and adds four walls of cobblestone. + +Exit out of your Minecraft world and restart it to load your changes. After a brief delay, you should find yourself in an arena. + +Now, let's give ourselves some terracotta to break. + +### Chapter 4. Add some gameplay basics - scoring and objectives + +First, let's track some more game variables. Inside **main.ts**, add this directly beneath the `let curTick = 0` line of code: + +```typescript +let score = 0; +let cottaX = 0; +let cottaZ = 0; +let spawnCountdown = 1; +``` + +Add the following to the `gameTick` function, beneath the `curTick++` line of code: + +```typescript +if (curTick > START_TICK && curTick % 20 === 0) { + let overworld = world.getDimension("overworld"); + + // no terracotta exists, and we're waiting to spawn a new one. + if (spawnCountdown > 0) { + spawnCountdown--; + + if (spawnCountdown <= 0) { + spawnNewTerracotta(); + } + } else { + checkForTerracotta(); + } +} +``` + +Now add the `spawnNewTerracotta()` and `checkForTerracotta()` functions after the last function and before the last `system.run(gameTick);` line of code: + +```typescript +function spawnNewTerracotta() { + let overworld = world.getDimension("overworld"); + + // create new terracotta + cottaX = Math.floor(Math.random() * (ARENA_X_SIZE - 1)) - (ARENA_X_SIZE / 2 - 1); + cottaZ = Math.floor(Math.random() * (ARENA_Z_SIZE - 1)) - (ARENA_Z_SIZE / 2 - 1); + + world.sendMessage("Creating new terracotta!"); + let block = overworld + .getBlock({ x: cottaX + ARENA_X_OFFSET, y: 1 + ARENA_Y_OFFSET, z: cottaZ + ARENA_Z_OFFSET }); + + if (block) { + block.setPermutation(BlockPermutation.resolve("minecraft:yellow_glazed_terracotta")); + } +} + +function checkForTerracotta() { + let overworld = world.getDimension("overworld"); + + let block = overworld.getBlock({ x: cottaX + ARENA_X_OFFSET, y: 1 + ARENA_Y_OFFSET, z: cottaZ + ARENA_Z_OFFSET }); + + if (block && !block.permutation.matches("minecraft:yellow_glazed_terracotta")) { + // we didn't find the terracotta! set a new spawn countdown + score++; + spawnCountdown = 2; + cottaX = -1; + + let players = world.getAllPlayers(); + + for (let player of players) { + player.runCommand("scoreboard players set @s score " + score); + } + + world.sendMessage("You broke the terracotta! Creating new terracotta in a few seconds."); + cottaZ = -1; + } +} +``` + +Congratulations! You've just created a very basic and very easy game where you can run around and break terracotta with your sword. + +To play, you will need to run the command `/gamemode s` to put Minecraft into survival mode so that you can break the terracotta. + +After the terracotta is broken, your score will increment, and a new block is spawned. + +#### Add a challenge - let's add some mobs + +OK, let's add this function after the `checkForTerracotta()` function: + +```typescript +function spawnMobs() { + let overworld = world.getDimension("overworld"); + + // spawn mobs = create 1-2 mobs + let spawnMobCount = Math.floor(Math.random() * 2) + 1; + + for (let j = 0; j < spawnMobCount; j++) { + let zombieX = Math.floor(Math.random() * (ARENA_X_SIZE - 2)) - ARENA_X_SIZE / 2; + let zombieZ = Math.floor(Math.random() * (ARENA_Z_SIZE - 2)) - ARENA_Z_SIZE / 2; + + overworld.spawnEntity( + "minecraft:zombie", + { x: zombieX + ARENA_X_OFFSET, y: 1 + ARENA_Y_OFFSET, z: zombieZ + ARENA_Z_OFFSET } + ); + } +} +``` + +This function will spawn 1-2 zombies within the arena, at a random location. You can change the kinds of mobs to spawn, the number, and more within this function. + +Let's call that function within our `gameTick` method: + +```typescript +let spawnInterval = Math.ceil(200 / ((score + 1) / 3)); +if (curTick > START_TICK && curTick % spawnInterval === 0) { + spawnMobs(); +} +``` + +For gameplay, we want mobs to spawn more frequently as your score goes up. To do this, the frequency at which `spawnMobs` is called depends on the `spawnInterval` variable. `spawnInterval` is the span of time between spawning new mobs. Because we divide this interval by our current score, this means that as our score goes up, the interval of time between spawning mobs gets shorter. This makes the challenge harder over time. + +As you play, zombies should spawn and start chasing you. They'll spawn slowly at first, but as you break blocks they'll start to accumulate and bother you while you try to break terracotta blocks. + +### Add more challenges! + +Let's add a new gameplay twist: randomly spawning obstructions in the form of leaves. + +Add this function to **main.ts** to randomly place some fuzzy leaves: + +```typescript +function addFuzzyLeaves() { + let overworld = world.getDimension("overworld"); + + for (let i = 0; i < 10; i++) { + const leafX = Math.floor(Math.random() * (ARENA_X_SIZE - 1)) - (ARENA_X_SIZE / 2 - 1); + const leafY = Math.floor(Math.random() * 10); + const leafZ = Math.floor(Math.random() * (ARENA_Z_SIZE - 1)) - (ARENA_Z_SIZE / 2 - 1); + + overworld + .getBlock({ x: leafX + ARENA_X_OFFSET, y: leafY + ARENA_Y_OFFSET, z: leafZ + ARENA_Z_OFFSET}) + ?.setPermutation(BlockPermutation.resolve("minecraft:leaves")); + } +} +``` + +And call that function in your gameTick() function: + +```typescript +if (curTick > START_TICK && curTick % 29 === 0) { + addFuzzyLeaves(); +} +``` + +You may wonder why the interval here is 29. The main idea was to select a number to avoid the chance that on a particular tick we do everything at once (create new leaves, spawn mobs AND check terracotta state), so we try to have offset schedules for all of these different game activities. + +Now exit out and reload your game. As you run around, you should see new leaves get spawned. This should add a little bit more challenge to your gameplay! + +### Summary + +With this starter, you've seen how to build a nice little arena game. + +Like the randomly spawning leaves, you can see how you can add different gameplay elements into your arena. Maybe rather than leaves, you want to randomly generate some parkour platforms - or some treasures or weapons, or different types of mobs. Experiment and build your own custom competition arenas! + +## Manifest + +- [gulpfile.js](https://github.com/microsoft/minecraft-scripting-samples/blob/main/ts-starter/gulpfile.js): This file contains build instructions for Gulp, for building out TypeScript code. +- [scripts](https://github.com/microsoft/minecraft-scripting-samples/blob/main/ts-starter/scripts): This contains all of your TypeScript files, that will be compiled and built into your projects. +- [behavior_packs](https://github.com/microsoft/minecraft-scripting-samples/blob/main/ts-starter/behavior_packs): This contains resources and JSON files that define your behavior pack. diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..66a1a0c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,9456 @@ +{ + "name": "scripting-starter", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "scripting-starter", + "version": "0.1.0", + "dependencies": { + "@minecraft/server": "^1.12.0-beta.1.21.0-stable", + "decode-uri-component": "^0.2.2" + }, + "devDependencies": { + "@minecraft/server-ui": "^1.1.0", + "del": "^6.0.0", + "gulp": "^4.0.2", + "gulp-cli": "^2.3.0", + "gulp-rename": "^2.0.0", + "gulp-sourcemaps": "^3.0.0", + "gulp-typescript": "^6.0.0-alpha.1", + "gulp-zip": "^5.1.0", + "nbtify": "^1.85.0", + "readline-sync": "^1.4.10", + "source-map": "^0.7.4", + "typescript": "^4.4.3" + } + }, + "node_modules/@gulp-sourcemaps/identity-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", + "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", + "dev": true, + "dependencies": { + "acorn": "^6.4.1", + "normalize-path": "^3.0.0", + "postcss": "^7.0.16", + "source-map": "^0.6.0", + "through2": "^3.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@gulp-sourcemaps/identity-map/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "node_modules/@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "dev": true, + "dependencies": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@gulp-sourcemaps/map-sources/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@minecraft/common": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@minecraft/common/-/common-1.1.0.tgz", + "integrity": "sha512-stbUtINCXbcLNRlGNVX68xRC6ZYq3k3CYmfptwrCcPBEUjVOpVkSj3H4Y0qiSYB+1rVWv7DgiP7Uf9++50Ne5g==" + }, + "node_modules/@minecraft/server": { + "version": "1.12.0-beta.1.21.0-stable", + "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.12.0-beta.1.21.0-stable.tgz", + "integrity": "sha512-Dkn+H+q/tKZOmjoKDSF9gVXtcc2hn92EvwgkFG0JMxwYYI77gjn8UqYR4I3eZdlM0TJsY0MlyF8IIvRDywJkGA==", + "license": "MIT", + "dependencies": { + "@minecraft/common": "^1.1.0" + } + }, + "node_modules/@minecraft/server-ui": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@minecraft/server-ui/-/server-ui-1.1.0.tgz", + "integrity": "sha512-Gnf+GHjjT4VFoXEt7qjrfDRipDgc93YcXbgTmdPTQ5Og3DIRD003ahH97tGMZmeNdsB+ymvAquf+o2o9W2pDjw==", + "dev": true, + "dependencies": { + "@minecraft/server": "^1.2.0" + } + }, + "node_modules/@minecraft/server-ui/node_modules/@minecraft/server": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.11.0.tgz", + "integrity": "sha512-sVTKkAR7fgcgRrBrl+QiqlwiL07JTCSRbwSLpkmsPDvgfhH4bQsdPXC8fWZGRxwKikC4/oBxGq5j6pJp87yF6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@minecraft/common": "^1.1.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "dependencies": { + "ansi-wrap": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "dev": true, + "dependencies": { + "buffer-equal": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "dev": true, + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dev": true, + "dependencies": { + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "dev": true, + "dependencies": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-initial/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "dependencies": { + "is-number": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-last/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "dependencies": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "node_modules/async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "dev": true, + "dependencies": { + "async-done": "^1.2.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "dev": true, + "dependencies": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/chokidar/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "node_modules/cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "dev": true, + "dependencies": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "dependencies": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "dependencies": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "dependencies": { + "kind-of": "^5.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + } + }, + "node_modules/each-props/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es5-ext": { + "version": "0.10.61", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz", + "integrity": "sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "dev": true, + "dependencies": { + "type": "^2.5.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", + "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==", + "dev": true + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/findup-sync/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/findup-sync/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fined/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream/node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "dev": true, + "dependencies": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-stream/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-stream/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "dependencies": { + "sparkles": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "dependencies": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + }, + "bin": { + "gulp": "bin/gulp.js" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/gulp-rename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz", + "integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/gulp-sourcemaps": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", + "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", + "dev": true, + "dependencies": { + "@gulp-sourcemaps/identity-map": "^2.0.1", + "@gulp-sourcemaps/map-sources": "^1.0.0", + "acorn": "^6.4.1", + "convert-source-map": "^1.0.0", + "css": "^3.0.0", + "debug-fabulous": "^1.0.0", + "detect-newline": "^2.0.0", + "graceful-fs": "^4.0.0", + "source-map": "^0.6.0", + "strip-bom-string": "^1.0.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/gulp-sourcemaps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gulp-typescript": { + "version": "6.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-6.0.0-alpha.1.tgz", + "integrity": "sha512-KoT0TTfjfT7w3JItHkgFH1T/zK4oXWC+a8xxKfniRfVcA0Fa1bKrIhztYelYmb+95RB80OLMBreknYkdwzdi2Q==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "plugin-error": "^1.0.1", + "source-map": "^0.7.3", + "through2": "^3.0.1", + "vinyl": "^2.2.0", + "vinyl-fs": "^3.0.3" + }, + "engines": { + "node": ">= 8" + }, + "peerDependencies": { + "typescript": "~2.7.1 || >=2.8.0-dev || >=2.9.0-dev || ~3.0.0 || >=3.0.0-dev || >=3.1.0-dev || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.7.0-dev " + } + }, + "node_modules/gulp-typescript/node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/gulp-typescript/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "node_modules/gulp-zip": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/gulp-zip/-/gulp-zip-5.1.0.tgz", + "integrity": "sha512-XZr/y91IliK/SpR74g3TkZejGkGEmK7CSDjSghT1jXshgO+dFvpLIz9w9fpuwkew6i7k4F+G24TubNgq1ISzEw==", + "dev": true, + "dependencies": { + "get-stream": "^5.2.0", + "plugin-error": "^1.0.1", + "through2": "^3.0.1", + "vinyl": "^2.1.0", + "yazl": "^2.5.1" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "gulp": ">=4" + }, + "peerDependenciesMeta": { + "gulp": { + "optional": true + } + } + }, + "node_modules/gulp-zip/node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "node_modules/gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "dependencies": { + "glogg": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "node_modules/is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true + }, + "node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dev": true, + "dependencies": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "dependencies": { + "invert-kv": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, + "dependencies": { + "flush-write-stream": "^1.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "dependencies": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/liftoff/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "dev": true, + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "node_modules/make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/make-iterator/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "dev": true, + "dependencies": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/matchdep/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/matchdep/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/matchdep/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/micromatch/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/micromatch/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/micromatch/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nbtify": { + "version": "1.85.0", + "resolved": "https://registry.npmjs.org/nbtify/-/nbtify-1.85.0.tgz", + "integrity": "sha512-gGi/4v0sdThz9VUs23OcxsGJOnR1ludZPFJLRHWXxtMWKgTzh1HF7jRqRwGQj2V+JxaLUhWwFoROv0qA4DFxcg==", + "dev": true, + "bin": { + "nbtify": "dist/bin/index.js" + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "dependencies": { + "once": "^1.3.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "dependencies": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "dev": true, + "dependencies": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "dependencies": { + "lcid": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "dependencies": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/plugin-error/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/plugin-error/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/readdirp/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readline-sync": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", + "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "dependencies": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "dev": true, + "dependencies": { + "value-or-function": "^3.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dev": true, + "dependencies": { + "sver-compat": "^1.5.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dev": true, + "dependencies": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "dependencies": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dev": true, + "dependencies": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "node_modules/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dev": true, + "dependencies": { + "through2": "^2.0.3" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "dependencies": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "dependencies": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dev": true, + "dependencies": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vinyl-sourcemap/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "node_modules/yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "node_modules/yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "dependencies": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "node_modules/yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3" + } + } + }, + "dependencies": { + "@gulp-sourcemaps/identity-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-2.0.1.tgz", + "integrity": "sha512-Tb+nSISZku+eQ4X1lAkevcQa+jknn/OVUgZ3XCxEKIsLsqYuPoJwJOPQeaOk75X3WPftb29GWY1eqE7GLsXb1Q==", + "dev": true, + "requires": { + "acorn": "^6.4.1", + "normalize-path": "^3.0.0", + "postcss": "^7.0.16", + "source-map": "^0.6.0", + "through2": "^3.0.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + } + } + }, + "@gulp-sourcemaps/map-sources": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/map-sources/-/map-sources-1.0.0.tgz", + "integrity": "sha1-iQrnxdjId/bThIYCFazp1+yUW9o=", + "dev": true, + "requires": { + "normalize-path": "^2.0.1", + "through2": "^2.0.3" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "@minecraft/common": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@minecraft/common/-/common-1.1.0.tgz", + "integrity": "sha512-stbUtINCXbcLNRlGNVX68xRC6ZYq3k3CYmfptwrCcPBEUjVOpVkSj3H4Y0qiSYB+1rVWv7DgiP7Uf9++50Ne5g==" + }, + "@minecraft/server": { + "version": "1.12.0-beta.1.21.0-stable", + "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.12.0-beta.1.21.0-stable.tgz", + "integrity": "sha512-Dkn+H+q/tKZOmjoKDSF9gVXtcc2hn92EvwgkFG0JMxwYYI77gjn8UqYR4I3eZdlM0TJsY0MlyF8IIvRDywJkGA==", + "requires": { + "@minecraft/common": "^1.1.0" + } + }, + "@minecraft/server-ui": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@minecraft/server-ui/-/server-ui-1.1.0.tgz", + "integrity": "sha512-Gnf+GHjjT4VFoXEt7qjrfDRipDgc93YcXbgTmdPTQ5Og3DIRD003ahH97tGMZmeNdsB+ymvAquf+o2o9W2pDjw==", + "dev": true, + "requires": { + "@minecraft/server": "^1.2.0" + }, + "dependencies": { + "@minecraft/server": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.11.0.tgz", + "integrity": "sha512-sVTKkAR7fgcgRrBrl+QiqlwiL07JTCSRbwSLpkmsPDvgfhH4bQsdPXC8fWZGRxwKikC4/oBxGq5j6pJp87yF6Q==", + "dev": true, + "requires": { + "@minecraft/common": "^1.1.0" + } + } + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ansi-colors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", + "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "dev": true, + "requires": { + "ansi-wrap": "^0.1.0" + } + }, + "ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha1-KWLPVOyXksSFEKPetSRDaGHvclE=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "append-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz", + "integrity": "sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=", + "dev": true, + "requires": { + "buffer-equal": "^1.0.0" + } + }, + "archy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz", + "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-filter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz", + "integrity": "sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz", + "integrity": "sha1-Onc0X/wc814qkYJWAfnljy4kysQ=", + "dev": true, + "requires": { + "make-iterator": "^1.0.0" + } + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", + "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", + "dev": true + }, + "array-initial": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz", + "integrity": "sha1-L6dLJnOTccOUe9enrcc74zSz15U=", + "dev": true, + "requires": { + "array-slice": "^1.0.0", + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-last": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz", + "integrity": "sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg==", + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "array-slice": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", + "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", + "dev": true + }, + "array-sort": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz", + "integrity": "sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg==", + "dev": true, + "requires": { + "default-compare": "^1.0.0", + "get-value": "^2.0.6", + "kind-of": "^5.0.2" + } + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async-done": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz", + "integrity": "sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.2", + "process-nextick-args": "^2.0.0", + "stream-exhaust": "^1.0.1" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-settle": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", + "integrity": "sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs=", + "dev": true, + "requires": { + "async-done": "^1.2.2" + } + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "bach": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", + "integrity": "sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA=", + "dev": true, + "requires": { + "arr-filter": "^1.1.1", + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "array-each": "^1.0.0", + "array-initial": "^1.0.0", + "array-last": "^1.1.1", + "async-done": "^1.2.2", + "async-settle": "^1.0.0", + "now-and-later": "^2.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true + }, + "buffer-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.0.tgz", + "integrity": "sha1-WWFrSYME1Var1GaWayLu2j7KX74=", + "dev": true + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", + "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-map": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", + "integrity": "sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw=", + "dev": true, + "requires": { + "arr-map": "^2.0.2", + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-props": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz", + "integrity": "sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw==", + "dev": true, + "requires": { + "each-props": "^1.3.2", + "is-plain-object": "^5.0.0" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "debug-fabulous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/debug-fabulous/-/debug-fabulous-1.1.0.tgz", + "integrity": "sha512-GZqvGIgKNlUnHUPQhepnUZFIMoi3dgZKQBzKDeL2g7oJF9SNAji/AAu36dusFUas0O+pae74lNeoIPHqXWDkLg==", + "dev": true, + "requires": { + "debug": "3.X", + "memoizee": "0.4.X", + "object-assign": "4.X" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==" + }, + "default-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz", + "integrity": "sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ==", + "dev": true, + "requires": { + "kind-of": "^5.0.2" + } + }, + "default-resolution": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", + "integrity": "sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ=", + "dev": true + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "del": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", + "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", + "dev": true, + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "each-props": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz", + "integrity": "sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.1", + "object.defaults": "^1.1.0" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es5-ext": { + "version": "0.10.61", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz", + "integrity": "sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==", + "dev": true, + "requires": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "ext": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "dev": true, + "requires": { + "type": "^2.5.0" + }, + "dependencies": { + "type": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", + "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz", + "integrity": "sha1-5qdUzI8V5YmHqpy9J69m/W9OWvk=", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-mkdirp-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz", + "integrity": "sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "through2": "^2.0.3" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + }, + "dependencies": { + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-stream": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz", + "integrity": "sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "glob": "^7.1.1", + "glob-parent": "^3.1.0", + "is-negated-glob": "^1.0.0", + "ordered-read-streams": "^1.0.0", + "pumpify": "^1.3.5", + "readable-stream": "^2.1.5", + "remove-trailing-separator": "^1.0.1", + "to-absolute-glob": "^2.0.0", + "unique-stream": "^2.0.2" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-watcher": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz", + "integrity": "sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-done": "^1.2.0", + "chokidar": "^2.0.0", + "is-negated-glob": "^1.0.0", + "just-debounce": "^1.0.0", + "normalize-path": "^3.0.0", + "object.defaults": "^1.1.0" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "gulp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz", + "integrity": "sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==", + "dev": true, + "requires": { + "glob-watcher": "^5.0.3", + "gulp-cli": "^2.2.0", + "undertaker": "^1.2.1", + "vinyl-fs": "^3.0.0" + } + }, + "gulp-cli": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz", + "integrity": "sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "archy": "^1.0.0", + "array-sort": "^1.0.0", + "color-support": "^1.1.3", + "concat-stream": "^1.6.0", + "copy-props": "^2.0.1", + "fancy-log": "^1.3.2", + "gulplog": "^1.0.0", + "interpret": "^1.4.0", + "isobject": "^3.0.1", + "liftoff": "^3.1.0", + "matchdep": "^2.0.0", + "mute-stdout": "^1.0.0", + "pretty-hrtime": "^1.0.0", + "replace-homedir": "^1.0.0", + "semver-greatest-satisfied-range": "^1.1.0", + "v8flags": "^3.2.0", + "yargs": "^7.1.0" + } + }, + "gulp-rename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-2.0.0.tgz", + "integrity": "sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==", + "dev": true + }, + "gulp-sourcemaps": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/gulp-sourcemaps/-/gulp-sourcemaps-3.0.0.tgz", + "integrity": "sha512-RqvUckJkuYqy4VaIH60RMal4ZtG0IbQ6PXMNkNsshEGJ9cldUPRb/YCgboYae+CLAs1HQNb4ADTKCx65HInquQ==", + "dev": true, + "requires": { + "@gulp-sourcemaps/identity-map": "^2.0.1", + "@gulp-sourcemaps/map-sources": "^1.0.0", + "acorn": "^6.4.1", + "convert-source-map": "^1.0.0", + "css": "^3.0.0", + "debug-fabulous": "^1.0.0", + "detect-newline": "^2.0.0", + "graceful-fs": "^4.0.0", + "source-map": "^0.6.0", + "strip-bom-string": "^1.0.0", + "through2": "^2.0.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "gulp-typescript": { + "version": "6.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-6.0.0-alpha.1.tgz", + "integrity": "sha512-KoT0TTfjfT7w3JItHkgFH1T/zK4oXWC+a8xxKfniRfVcA0Fa1bKrIhztYelYmb+95RB80OLMBreknYkdwzdi2Q==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1", + "plugin-error": "^1.0.1", + "source-map": "^0.7.3", + "through2": "^3.0.1", + "vinyl": "^2.2.0", + "vinyl-fs": "^3.0.3" + }, + "dependencies": { + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + } + } + }, + "gulp-zip": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/gulp-zip/-/gulp-zip-5.1.0.tgz", + "integrity": "sha512-XZr/y91IliK/SpR74g3TkZejGkGEmK7CSDjSghT1jXshgO+dFvpLIz9w9fpuwkew6i7k4F+G24TubNgq1ISzEw==", + "dev": true, + "requires": { + "get-stream": "^5.2.0", + "plugin-error": "^1.0.1", + "through2": "^3.0.1", + "vinyl": "^2.1.0", + "yazl": "^2.5.1" + }, + "dependencies": { + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "^1.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "dev": true + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-valid-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz", + "integrity": "sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "just-debounce": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz", + "integrity": "sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ==", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "last-run": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "dev": true, + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dev": true, + "requires": { + "readable-stream": "^2.0.5" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "lead": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz", + "integrity": "sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=", + "dev": true, + "requires": { + "flush-write-stream": "^1.0.2" + } + }, + "liftoff": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz", + "integrity": "sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==", + "dev": true, + "requires": { + "extend": "^3.0.0", + "findup-sync": "^3.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "dev": true, + "requires": { + "es5-ext": "~0.10.2" + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "matchdep": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", + "integrity": "sha1-xvNINKDY28OzfCfui7yyfHd1WC4=", + "dev": true, + "requires": { + "findup-sync": "^2.0.0", + "micromatch": "^3.0.4", + "resolve": "^1.4.0", + "stack-trace": "0.0.10" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "dev": true, + "requires": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "mute-stdout": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz", + "integrity": "sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg==", + "dev": true + }, + "nan": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", + "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "nbtify": { + "version": "1.85.0", + "resolved": "https://registry.npmjs.org/nbtify/-/nbtify-1.85.0.tgz", + "integrity": "sha512-gGi/4v0sdThz9VUs23OcxsGJOnR1ludZPFJLRHWXxtMWKgTzh1HF7jRqRwGQj2V+JxaLUhWwFoROv0qA4DFxcg==", + "dev": true + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "dev": true, + "requires": { + "once": "^1.3.2" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.reduce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "ordered-read-streams": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz", + "integrity": "sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dev": true, + "requires": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "dependencies": { + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "readline-sync": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", + "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", + "dev": true + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "remove-bom-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz", + "integrity": "sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5", + "is-utf8": "^0.2.1" + } + }, + "remove-bom-stream": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz", + "integrity": "sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=", + "dev": true, + "requires": { + "remove-bom-buffer": "^3.0.0", + "safe-buffer": "^5.1.0", + "through2": "^2.0.3" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true + }, + "replace-homedir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz", + "integrity": "sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1", + "is-absolute": "^1.0.0", + "remove-trailing-separator": "^1.1.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-options": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz", + "integrity": "sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=", + "dev": true, + "requires": { + "value-or-function": "^3.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "semver-greatest-satisfied-range": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz", + "integrity": "sha1-E+jCZYq5aRywzXEJMkAoDTb3els=", + "dev": true, + "requires": { + "sver-compat": "^1.5.0" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + } + }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==", + "dev": true + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=", + "dev": true + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "sver-compat": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz", + "integrity": "sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg=", + "dev": true, + "requires": { + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" + } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "through2-filter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz", + "integrity": "sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==", + "dev": true, + "requires": { + "through2": "~2.0.0", + "xtend": "~4.0.0" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dev": true, + "requires": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "to-through": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz", + "integrity": "sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=", + "dev": true, + "requires": { + "through2": "^2.0.3" + } + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "undertaker": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz", + "integrity": "sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "fast-levenshtein": "^1.0.0", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "unique-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz", + "integrity": "sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==", + "dev": true, + "requires": { + "json-stable-stringify-without-jsonify": "^1.0.1", + "through2-filter": "^3.0.0" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-or-function": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz", + "integrity": "sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=", + "dev": true + }, + "vinyl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", + "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + }, + "vinyl-fs": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz", + "integrity": "sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==", + "dev": true, + "requires": { + "fs-mkdirp-stream": "^1.0.0", + "glob-stream": "^6.1.0", + "graceful-fs": "^4.0.0", + "is-valid-glob": "^1.0.0", + "lazystream": "^1.0.0", + "lead": "^1.0.0", + "object.assign": "^4.0.4", + "pumpify": "^1.3.5", + "readable-stream": "^2.3.3", + "remove-bom-buffer": "^3.0.0", + "remove-bom-stream": "^1.2.0", + "resolve-options": "^1.1.0", + "through2": "^2.0.0", + "to-through": "^2.0.0", + "value-or-function": "^3.0.0", + "vinyl": "^2.0.0", + "vinyl-sourcemap": "^1.1.0" + } + }, + "vinyl-sourcemap": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz", + "integrity": "sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=", + "dev": true, + "requires": { + "append-buffer": "^1.0.2", + "convert-source-map": "^1.5.0", + "graceful-fs": "^4.1.6", + "normalize-path": "^2.1.1", + "now-and-later": "^2.0.0", + "remove-bom-buffer": "^3.0.0", + "vinyl": "^2.0.0" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "yargs": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz", + "integrity": "sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.1" + } + }, + "yargs-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..d43f9e6 --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "scripting-starter", + "version": "0.1.0", + "productName": "Minecraft TypeScript Starter Project", + "description": "Minecraft TypeScript Starter Project", + "private": true, + "devDependencies": { + "@minecraft/server-ui": "^1.1.0", + "del": "^6.0.0", + "gulp": "^4.0.2", + "gulp-cli": "^2.3.0", + "gulp-rename": "^2.0.0", + "gulp-sourcemaps": "^3.0.0", + "gulp-typescript": "^6.0.0-alpha.1", + "gulp-zip": "^5.1.0", + "nbtify": "^1.85.0", + "readline-sync": "^1.4.10", + "source-map": "^0.7.4", + "typescript": "^4.4.3" + }, + "scripts": { + "enablemcloopback": "CheckNetIsolation.exe LoopbackExempt -a -p=S-1-15-2-1958404141-86561845-1752920682-3514627264-368642714-62675701-733520436", + "enablemcpreviewloopback": "CheckNetIsolation.exe LoopbackExempt -a -p=S-1-15-2-424268864-5579737-879501358-346833251-474568803-887069379-4040235476" + }, + "dependencies": { + "@minecraft/server": "^1.12.0-beta.1.21.0-stable", + "decode-uri-component": "^0.2.2" + } +} diff --git a/resource_packs/blocks.json b/resource_packs/blocks.json new file mode 100644 index 0000000..dda9d54 --- /dev/null +++ b/resource_packs/blocks.json @@ -0,0 +1,7 @@ +{ + "format_version": [1, 1, 0], + "cc:cracked_glass": { + "textures": "cracked_glass", + "sound": "glass" + } +} diff --git a/resource_packs/manifest.json b/resource_packs/manifest.json new file mode 100644 index 0000000..d258d7e --- /dev/null +++ b/resource_packs/manifest.json @@ -0,0 +1,44 @@ +{ + "format_version": 2, + "metadata": { + "authors": [ + "Me and my cat" + ] + }, + "header": { + "name": "Reeks2Missie9RP", + "description": "De resource pack voor Reeks 2 Missie 9", + "min_engine_version": [ + 1, + 20, + 0 + ], + "uuid": "0b55c95c-33d9-4cef-8040-3607704aa2a2", + "version": [ + 1, + 0, + 0 + ] + }, + "modules": [ + { + "type": "resources", + "uuid": "8f58e8a4-13db-4b7a-8466-89b1564e6a8b", + "version": [ + 1, + 0, + 0 + ] + } + ], + "dependencies": [ + { + "uuid": "2d4894af-d185-4b31-8ec8-265d585ee3fb", + "version": [ + 1, + 0, + 0 + ] + } + ] +} \ No newline at end of file diff --git a/resource_packs/pack_icon.png b/resource_packs/pack_icon.png new file mode 100644 index 0000000..8059cd5 Binary files /dev/null and b/resource_packs/pack_icon.png differ diff --git a/resource_packs/particles/point.json b/resource_packs/particles/point.json new file mode 100644 index 0000000..5c94654 --- /dev/null +++ b/resource_packs/particles/point.json @@ -0,0 +1,37 @@ +{ + "format_version": "1.10.0", + "particle_effect": { + "description": { + "identifier": "codecosmos:point", + "basic_render_parameters": { + "material": "particles_alpha", + "texture": "textures/particle/point" + } + }, + "components": { + "minecraft:emitter_rate_instant": { + "num_particles": 1 + }, + "minecraft:emitter_lifetime_once": { + "active_time": 1 + }, + "minecraft:emitter_shape_point": {}, + "minecraft:particle_lifetime_expression": { + "max_lifetime": 0.1 + }, + "minecraft:particle_appearance_billboard": { + "size": [0.25, 0.25], + "facing_camera_mode": "rotate_xyz", + "uv": { + "texture_width": 16, + "texture_height": 16, + "uv": [0, 0], + "uv_size": [16, 16] + } + }, + "minecraft:particle_appearance_tinting": { + "color": ["variable.color.r ", "variable.color.g", "variable.color.b", 1] + } + } + } +} diff --git a/resource_packs/texts/en_US.lang b/resource_packs/texts/en_US.lang new file mode 100644 index 0000000..b44adfe --- /dev/null +++ b/resource_packs/texts/en_US.lang @@ -0,0 +1,67 @@ +## General messages +message.trail.follow=Follow the trail +message.levels.completed=You have completed all levels! + + +## Fail conditions +message.level.incorrect=§cIncorrect!§b +message.level.incorrect.subtext=Probeer opnieuw! + +message.level.outofbounds=§cOut of bounds!§b +message.level.outofbounds.subtext=You can't be over water! + + +## npc names +npc.name.help=Help +npc.name.suki=§2Suki +npc.name.bilal=§6Bilal +npc.name.ramses=§dRamses +npc.name.chanel=§9Wetenschapper Chanel +npc.name.paul=§7Paul +npc.name.farah=§5Farah +npc.name.turt=§aTurt +npc.name.mo=§4Mo +npc.name.al=Al + +## Default buttons +button.thanks=Thanks! +button.close=Close +button.ok=Ok +button.hello=Hello +button.noprob=No problem +button.letsgo=Let's Go! + +message.talkto.ramses=Talk to §dRamses +message.talkto.chanel=Talk to §9Chanel + +## Intro messages +message.intro.started=Crack the Vault! +message.intro.make=Break the code! +message.intro.done=§aYou have cracked the code!§b + +## Level 1 messages +message.level1.name=Level 1 +message.level1.started=Level 1 is started! +message.level1.complete=Level 1 is complete! +message.level1.make=Make Level 1 +message.level1.outOfBoun=§cOut of bounds!§bwd + +## Level 2 messages +message.level2.name=Level 2 +message.level2.started=Level 2 is started! +message.level2.complete=Level 2 is complete! +message.level2.make=Make Level 2 + +## Level 3 messages +message.level3.name=Level 3 +message.level3.started=Level 3 is started! +message.level3.complete=Level 3 is complete! +message.level3.make=Make Level 3 + +## Goto messages +message.goto.field.1=Go to the First Field +message.goto.field.2=Go to the Second Field +message.goto.field.3=Go to the Last Field + +chanel.greeting.1.text=Hello! I'm §9Chanel§0, the scientist. I'm here to help you with the vault. +chanel.greeting.1.button=Ok! \ No newline at end of file diff --git a/resource_packs/texts/languages.json b/resource_packs/texts/languages.json new file mode 100644 index 0000000..e876334 --- /dev/null +++ b/resource_packs/texts/languages.json @@ -0,0 +1,3 @@ +[ + "en_US" +] \ No newline at end of file diff --git a/resource_packs/textures/blocks/cracked_glass.png b/resource_packs/textures/blocks/cracked_glass.png new file mode 100644 index 0000000..942571d Binary files /dev/null and b/resource_packs/textures/blocks/cracked_glass.png differ diff --git a/resource_packs/textures/blocks/redstone_lamp_off.png b/resource_packs/textures/blocks/redstone_lamp_off.png new file mode 100644 index 0000000..fbaf185 Binary files /dev/null and b/resource_packs/textures/blocks/redstone_lamp_off.png differ diff --git a/resource_packs/textures/blocks/redstone_lamp_on.png b/resource_packs/textures/blocks/redstone_lamp_on.png new file mode 100644 index 0000000..fad4e78 Binary files /dev/null and b/resource_packs/textures/blocks/redstone_lamp_on.png differ diff --git a/resource_packs/textures/entity/agent.png b/resource_packs/textures/entity/agent.png new file mode 100644 index 0000000..f8c1ddf Binary files /dev/null and b/resource_packs/textures/entity/agent.png differ diff --git a/resource_packs/textures/particle/point.png b/resource_packs/textures/particle/point.png new file mode 100644 index 0000000..0cfe4bc Binary files /dev/null and b/resource_packs/textures/particle/point.png differ diff --git a/resource_packs/textures/terrain_texture.json b/resource_packs/textures/terrain_texture.json new file mode 100644 index 0000000..8ea89ce --- /dev/null +++ b/resource_packs/textures/terrain_texture.json @@ -0,0 +1,11 @@ +{ + "texture_name": "atlas.terrain", + "resource_pack_name": "cc", + "padding": 8, + "num_mip_levels": 4, + "texture_data": { + "cracked_glass": { + "textures": "textures/blocks/cracked_glass" + } + } +} diff --git a/scripts/Commandeer/Trigger/CCTrigger.ts b/scripts/Commandeer/Trigger/CCTrigger.ts new file mode 100644 index 0000000..05aa9ab --- /dev/null +++ b/scripts/Commandeer/Trigger/CCTrigger.ts @@ -0,0 +1,13 @@ +import { Trigger } from "./trigger"; +import { Maker } from "./maker"; +import { Manager } from "./manager"; + +export * from "./trigger"; +export * from "./maker"; +export * from "./manager"; + +export const CCTrigger = { + Trigger, + Maker, + Manager, +}; diff --git a/scripts/Commandeer/Trigger/maker.ts b/scripts/Commandeer/Trigger/maker.ts new file mode 100644 index 0000000..112068d --- /dev/null +++ b/scripts/Commandeer/Trigger/maker.ts @@ -0,0 +1,204 @@ +import { Trigger } from "./trigger"; + +import { + Block, + ChatSendAfterEvent, + PaletteColor, + EntityInventoryComponent, + ItemStack, + ItemUseOnBeforeEvent, + MolangVariableMap, + Player, + Vector3, + world, +} from "@minecraft/server"; +import { vector3, vector3Distance } from "../utils/vectorUtils"; +import { Mindkeeper, StoreType } from "../mindKeeper"; +import { spawnParticle } from "../utils/particleUtils"; +import { Manager } from "./manager"; + +export class Maker { + private manager: Manager; + + log: Map = new Map(); + + currentTrigger: Trigger | null = null; + waitingForPoint2: boolean = false; + point1: Vector3 = vector3(0, 0, 0); + point2: Vector3 = vector3(0, 0, 0); + + mindKeeper: Mindkeeper; + + constructor(mindKeeper: Mindkeeper, manager: Manager) { + this.mindKeeper = mindKeeper; + this.manager = manager; + } + + OnChat(event: ChatSendAfterEvent) { + if (event.message === "!toggleTriggers") { + this.mindKeeper.set("ShowTriggers", (this.mindKeeper.get("ShowTriggers") as boolean) ? false : true); + } + if (event.message === "!TWand") { + const item = new ItemStack("minecraft:stick"); + item.nameTag = "MakeTrigger"; + ((event.sender as Player).getComponent("inventory") as EntityInventoryComponent).container!.addItem(item); + world.sendMessage("Thou shall have the Powah"); + } + + if (event.message === "!deleteCurrentTrigger") { + let currentTriggerdTrigger = this.manager + .GetTriggers() + .filter((trigger) => trigger.IsPlayerInside(event.sender as Player)); + if (currentTriggerdTrigger.length > 0) { + this.manager.GetTriggers().splice(this.manager.GetTriggers().indexOf(currentTriggerdTrigger[0]), 1); + world.sendMessage("Trigger deleted"); + } else { + world.sendMessage("No trigger to delete"); + } + this.manager.Save(); + } + const command = event.message.split(" ")[0]; + if (command == "!setFunction") { + const name = event.message.split(" ")[1]; + const trigger = this.manager.GetCurrentActiveTriggers()[0]; + + if (trigger === undefined) { + world.sendMessage("No trigger selected"); + return; + } + + trigger.eventToDispatch = name; + this.manager.Save(); + world.sendMessage(`Function set to ${name}`); + } + } + + OnItemUse(event: ItemUseOnBeforeEvent) { + const currentItemHeld: ItemStack = event.itemStack; + const blockInteracted: Block = event.block; + const player: Player = event.source as Player; + const oldLog = this.log.get(player.name)!; + this.log.set(player.name, Date.now()); + if (oldLog + 150 >= Date.now()) return; + + if (currentItemHeld.typeId == "minecraft:stick" && currentItemHeld.nameTag == "MakeTrigger") { + if (this.waitingForPoint2) { + this.point2 = vector3(blockInteracted.location.x, blockInteracted.location.y, blockInteracted.location.z); + + let minX = Math.min(this.point1.x, this.point2.x); + let maxX = Math.max(this.point1.x, this.point2.x) + 1; + let minY = Math.min(this.point1.y, this.point2.y); + let maxY = Math.max(this.point1.y, this.point2.y) + 1; + let minZ = Math.min(this.point1.z, this.point2.z); + let maxZ = Math.max(this.point1.z, this.point2.z) + 1; + + //Take the outer bounds of the two points + this.point1 = vector3(minX, minY, minZ); + this.point2 = vector3(maxX, maxY, maxZ); + + this.currentTrigger = new Trigger(this.point1, this.point2); + + this.manager.AddTrigger(this.currentTrigger!); + this.currentTrigger = null; + this.waitingForPoint2 = false; + world.sendMessage(`Trigger added`); + this.manager.Save(); + return; + } else { + this.point1 = vector3(event.block.location.x, event.block.location.y, event.block.location.z); + this.waitingForPoint2 = true; + world.sendMessage(`Select a second point`); + } + } + } + + DrawLine(pos1: Vector3, pos2: Vector3, color: PaletteColor): void { + if (pos1 != null && pos2 != null) { + //draw a line with particles + const xStep = pos2.x - pos1.x; + const yStep = pos2.y - pos1.y; + const zStep = pos2.z - pos1.z; + + const steps = Math.max(Math.abs(xStep), Math.abs(yStep), Math.abs(zStep)); + for (let i = 0; i <= steps; i++) { + const x = pos1.x + (xStep / steps) * i; + const y = pos1.y + (yStep / steps) * i; + const z = pos1.z + (zStep / steps) * i; + + //make the ends and starts a different color + let map = new MolangVariableMap(); + if (i == 0 || i == steps) { + map.setColorRGB("variable.color", { red: 0, green: 255, blue: 0 }); + const particleData: MolangVariableMap = new MolangVariableMap(); + particleData.setColorRGB("variable.color", { + red: 0, + green: 1, + blue: 0, + }); + spawnParticle(vector3(x, y + 0.1, z), "codecosmos:point", particleData); + } else { + map.setColorRGB("variable.color", { red: 0, green: 255, blue: 0 }); + const particleData: MolangVariableMap = new MolangVariableMap(); + particleData.setColorRGB("variable.color", { + red: 1, + green: 1, + blue: 1, + }); + spawnParticle(vector3(x, y + 0.1, z), "codecosmos:point", particleData); + } + } + } + } + + Update() { + let shouldRender = this.mindKeeper.get("ShowTriggers") as boolean; + this.manager.GetTriggers().forEach((trigger: Trigger) => { + trigger.Update(); + + if (shouldRender) { + const players = world.getAllPlayers(); + const triggerCenter = vector3( + (trigger.point1.x + trigger.point2.x) / 2, + (trigger.point1.y + trigger.point2.y) / 2, + (trigger.point1.z + trigger.point2.z) / 2 + ); + const distnaces = players.map((player) => { + return { + player: player, + distance: vector3Distance(player.location, triggerCenter), + }; + }); + + distnaces.sort((a, b) => a.distance - b.distance); + const closestPlayer = distnaces[0].player; + const distance = distnaces[0].distance; + + if (distance > 25) return; + + const p1 = trigger.point1; + const p2 = vector3(trigger.point1.x, trigger.point2.y, trigger.point1.z); + const p3 = vector3(trigger.point2.x, trigger.point1.y, trigger.point1.z); + const p4 = vector3(trigger.point2.x, trigger.point2.y, trigger.point1.z); + const p5 = vector3(trigger.point1.x, trigger.point1.y, trigger.point2.z); + const p6 = vector3(trigger.point1.x, trigger.point2.y, trigger.point2.z); + const p7 = vector3(trigger.point2.x, trigger.point1.y, trigger.point2.z); + const p8 = trigger.point2; + + //is there a player inside this trigger + const color = trigger.IsAnyPlayerInside() ? PaletteColor.Red : PaletteColor.White; + this.DrawLine(p1, p2, color); + this.DrawLine(p2, p4, color); + this.DrawLine(p4, p3, color); + this.DrawLine(p3, p1, color); + this.DrawLine(p5, p6, color); + this.DrawLine(p6, p8, color); + this.DrawLine(p8, p7, color); + this.DrawLine(p7, p5, color); + this.DrawLine(p1, p5, color); + this.DrawLine(p2, p6, color); + this.DrawLine(p3, p7, color); + this.DrawLine(p4, p8, color); + } + }); + } +} diff --git a/scripts/Commandeer/Trigger/manager.ts b/scripts/Commandeer/Trigger/manager.ts new file mode 100644 index 0000000..b9ed188 --- /dev/null +++ b/scripts/Commandeer/Trigger/manager.ts @@ -0,0 +1,117 @@ +import { ChatSendAfterEvent, ItemUseOnBeforeEvent, Player, system, world } from "@minecraft/server"; +import { Mindkeeper, StoreType } from "../mindKeeper"; +import { vector3 } from "../utils/vectorUtils"; +import { Maker } from "./maker"; +import { Trigger } from "./trigger"; + +export class TriggerEvent { + player: Player; + trigger: Trigger; + + constructor(player: Player, trigger: Trigger) { + this.player = player; + this.trigger = trigger; + } +} + +export type TriggerEventHandler = (event: TriggerEvent) => void; + +export class Manager { + private triggers: Trigger[] = []; + private functionTriggers: Map = new Map(); + private mindKeeper: Mindkeeper; + private maker: Maker; + + constructor(mindKeeper: Mindkeeper) { + this.mindKeeper = mindKeeper; + this.maker = new Maker(mindKeeper, this); + } + + RegisterStores() { + this.mindKeeper.registerStore("triggers", StoreType.string); + this.mindKeeper.registerStore("ShowTriggers", StoreType.boolean); + } + + OnItemUse(event: ItemUseOnBeforeEvent) { + this.maker.OnItemUse(event); + } + + OnChat(event: ChatSendAfterEvent) { + this.maker.OnChat(event); + } + //the func should have a TriggerEvent as a parameter + RegisterFunctionTrigger(name: string, func: TriggerEventHandler) { + this.functionTriggers.set(name, func); + } + + //#region Loading / Saving + + Load() { + this.LoadTriggers(); + } + + Save() { + this.SaveTriggers(); + } + + private LoadTriggers() { + const triggers = this.mindKeeper.get("triggers") as string; + if (triggers === undefined) return; + + const data = JSON.parse(triggers); + data.forEach((trigger: any) => { + let point1 = vector3(trigger.point1.x, trigger.point1.y, trigger.point1.z); + let point2 = vector3(trigger.point2.x, trigger.point2.y, trigger.point2.z); + let eventToDispatch = trigger.eventToDispatch; + + let newTrigger = new Trigger(point1, point2); + newTrigger.eventToDispatch = eventToDispatch; + + this.triggers.push(newTrigger); + }); + } + + private SaveTriggers() { + this.mindKeeper.set("triggers", JSON.stringify(this.triggers)); + } + + //#endregion + + AddTrigger(trigger: Trigger) { + this.triggers.push(trigger); + } + + GetCurrentActiveTriggers(): Trigger[] { + return this.triggers.filter((trigger) => trigger.IsAnyPlayerInside()); + } + + Update() { + const players = world.getAllPlayers(); + + this.maker.Update(); + this.triggers.forEach((trigger: Trigger) => { + trigger.Update(); + + players.forEach((player) => { + // player.sendMessage(`Player ${player.name} is in trigger ${trigger.IsPlayerInside(player)}`); + if (trigger.hasPlayerEnterdTrigger(player)) { + world.sendMessage(`Player ${player.name} entered trigger`); + //Check if a function trigger is set + const isFunctionSet = this.functionTriggers.has(trigger.eventToDispatch); + + if (isFunctionSet) { + const event = new TriggerEvent(player, trigger); + + this.functionTriggers.get(trigger.eventToDispatch)!(event); + } else { + world.sendMessage(`Triggered ${trigger.eventToDispatch}`); + } + } + }); + }); + } + + GetTriggers(): Trigger[] { + return this.triggers; + } +} diff --git a/scripts/Commandeer/Trigger/trigger.ts b/scripts/Commandeer/Trigger/trigger.ts new file mode 100644 index 0000000..602841f --- /dev/null +++ b/scripts/Commandeer/Trigger/trigger.ts @@ -0,0 +1,82 @@ +import { Player, Vector3, world } from "@minecraft/server"; +import { vector3 } from "../utils/vectorUtils"; + +export class Trigger { + point1: Vector3 = vector3(0, 0, 0); + point2: Vector3 = vector3(0, 0, 0); + eventToDispatch: string = ""; + + isPlayerInTrigger: Map = new Map(); + + hasTriggerd: boolean = false; + + constructor(point1: Vector3, point2: Vector3) { + this.point1 = point1; + this.point2 = point2; + } + + hasPlayerEnterdTrigger(player: Player): boolean { + const minX = Math.min(this.point1.x, this.point2.x); + const maxX = Math.max(this.point1.x, this.point2.x); + const minY = Math.min(this.point1.y, this.point2.y); + const maxY = Math.max(this.point1.y, this.point2.y); + const minZ = Math.min(this.point1.z, this.point2.z); + const maxZ = Math.max(this.point1.z, this.point2.z); + + const playerPos = player.location; + + const inside = + playerPos.x >= minX && + playerPos.x <= maxX && + playerPos.y >= minY && + playerPos.y + 1 <= maxY && + playerPos.z >= minZ && + playerPos.z <= maxZ; + + let entererdTrigger = false; + if (!this.isPlayerInTrigger.get(player.name) && inside) { + entererdTrigger = true; + } + + this.isPlayerInTrigger.set(player.name, inside); + + return entererdTrigger; + } + + IsPlayerInside(player: Player): boolean { + return this.isPlayerInTrigger.get(player.name) || false; + } + + IsAnyPlayerInside(): boolean { + let isInside = false; + world.getAllPlayers().forEach((player) => { + if (this.isPlayerInTrigger.get(player.name)) { + isInside = true; + } + }); + return isInside; + } + + ShouldTrigger(): boolean { + let isSomethingInTrigger = false; + const players = world.getAllPlayers(); + players.forEach((player) => { + if (this.hasPlayerEnterdTrigger(player)) { + isSomethingInTrigger = true; + } + }); + return isSomethingInTrigger; + } + + Update() { + world + .getDimension("overworld") + .getEntities({ type: "minecraft:player" }) + .forEach((player) => { + //Check if the distance between the player and the trigger is less than the width of the trigger + // if (this.hasPlayerEnterdTrigger(player.location)) { + // world.sendMessage(`Player ${player.nameTag} is in trigger`); + // } + }); + } +} diff --git a/scripts/Commandeer/chalk.ts b/scripts/Commandeer/chalk.ts new file mode 100644 index 0000000..ecec76f --- /dev/null +++ b/scripts/Commandeer/chalk.ts @@ -0,0 +1,70 @@ +class Chalk { + static red(text: string): string { + return "§c" + text + "§r"; + } + static yellow(text: string): string { + return "§e" + text + "§r"; + } + static green(text: string): string { + return "§a" + text + "§r"; + } + static blue(text: string): string { + return "§9" + text + "§r"; + } + static aqua(text: string): string { + return "§b" + text + "§r"; + } + static white(text: string): string { + return "§f" + text + "§r"; + } + static black(text: string): string { + return "§0" + text + "§r"; + } + static gold(text: string): string { + return "§6" + text + "§r"; + } + static gray(text: string): string { + return "§7" + text + "§r"; + } + static darkRed(text: string): string { + return "§4" + text + "§r"; + } + static darkGreen(text: string): string { + return "§2" + text + "§r"; + } + static darkBlue(text: string): string { + return "§1" + text + "§r"; + } + static darkAqua(text: string): string { + return "§3" + text + "§r"; + } + static darkPurple(text: string): string { + return "§5" + text + "§r"; + } + static darkGray(text: string): string { + return "§8" + text + "§r"; + } + static lightPurple(text: string): string { + return "§d" + text + "§r"; + } + static bold(text: string): string { + return "§l" + text + "§r"; + } + static italic(text: string): string { + return "§o" + text + "§r"; + } + static underline(text: string): string { + return "§n" + text + "§r"; + } + static strikethrough(text: string): string { + return "§m" + text + "§r"; + } + static obfuscated(text: string): string { + return "§k" + text + "§r"; + } + static reset(text: string): string { + return "§r" + text + "§r"; + } +} + +export default Chalk; diff --git a/scripts/Commandeer/command/command.ts b/scripts/Commandeer/command/command.ts new file mode 100644 index 0000000..7a051d1 --- /dev/null +++ b/scripts/Commandeer/command/command.ts @@ -0,0 +1,99 @@ +import { CommandResult, Dimension, Entity, world, Player } from "@minecraft/server"; + +export class Command { + private __player: Player; + public argv: IterableIterator; + public get player(): Player { + return this.__player; + } + public get argv0(): string { + return this.argv.next().value; + } + constructor(argv: string[], player: Player) { + this.argv = (function* () { + for (let arg of argv) yield arg; + })(); + this.__player = player; + } +} + +export class Commands { + /** + * @remarks + * Runs a particular command synchronously from the context. + * @param commandString + * Command to run. Note that command strings should not start + * with slash. + * @param target + * Target to be used as context for the command to run + * within. + * @returns + * For commands that return data, returns a CommandResult with + * an indicator of command results. + * @throws This function can throw errors. + */ + static run(commandString: string, target: Dimension | Entity = world.getDimension("overworld")): CommandResult { + if (target instanceof Dimension || Entity) return target.runCommand(commandString); + else throw TypeError("Native type conversion failed"); + } + /** + * @remarks + * Runs a particular command asynchronously from the context. + * Where possible - and especially for + * long-running operations - you should use runCommandAsync + * over runCommand. + * @param commandString + * Command to run. Note that command strings should not start + * with slash. + * @param target + * Target to be used as context for the command to run + * within. + * @returns + * For commands that return data, returns a CommandResult with + * an indicator of command results. + * @throws This function can throw errors. + */ + static async runAsync( + commandString: string, + target: Dimension | Entity = world.getDimension("overworld") + ): Promise { + if (target instanceof Dimension || Entity) return await target.runCommandAsync(commandString); + else throw TypeError("Native type conversion failed"); + } + + /** + * @remarks + * Registers a new custom command. This command will become + * available in Minecraft via [prefix][command]. + * @param prefix + * The prefix of this specific command. (Case sensitive) + * @param command + * Name of this specific command. (Case sensitive) + * @param commandFunction + * Implementation of the command function. + * @throws + * This function can throw error: You are not allow to register a new slash command. + * @example example1.js + * ```typescript + * Commands.register("!", "test", function (arg) { + * arg.player.runCommandAsync(`say ${arg.argv0} ${JSON.stringify([...arg.argv])}`); + * }); + * ``` + */ + public static register(prefix: string, command: string, commandFunction: (arg: Command) => void): void { + if (prefix.startsWith("/")) throw Error("Unable to register slash commands."); + world.beforeEvents.chatSend.subscribe((arg) => { + var argv = arg.message.split(/(".*?"|[^"\s]+)+(?=\s*|\s*$)/g).filter((e) => e.trim().length > 0); + if (argv[0] === `${prefix}${command}`) { + arg.cancel = true; + try { + commandFunction(new Command(argv, arg.sender)); + } catch (err) { + let { statusMessage } = JSON.parse(err as string); + console.error(err); + arg.sender.sendMessage(`§c${statusMessage}`); + } + } + }); + } +} diff --git a/scripts/Commandeer/completionCondition/AbstractCondition.ts b/scripts/Commandeer/completionCondition/AbstractCondition.ts new file mode 100644 index 0000000..3555147 --- /dev/null +++ b/scripts/Commandeer/completionCondition/AbstractCondition.ts @@ -0,0 +1,9 @@ +abstract class AbstractLevelCondition { + constructor() {} + + abstract checkCondition(): boolean; +} + +export default AbstractLevelCondition; + +//Interface could be better diff --git a/scripts/Commandeer/completionCondition/BlockCondition.ts b/scripts/Commandeer/completionCondition/BlockCondition.ts new file mode 100644 index 0000000..cc10f5b --- /dev/null +++ b/scripts/Commandeer/completionCondition/BlockCondition.ts @@ -0,0 +1,24 @@ +import { BlockType, Vector3, world } from "@minecraft/server"; +import AbstractLevelCondition from "./AbstractCondition"; +import { Vector3ToString } from "../utils/vectorUtils"; + +class BlockCondition extends AbstractLevelCondition { + position: Vector3; + blockType: BlockType; + + constructor(position: Vector3, blockType: BlockType) { + super(); + this.position = position; + this.blockType = blockType; + } + + checkCondition(): boolean { + const block = world.getDimension("overworld").getBlock(this.position); + if (!block) { + return false; + } + return block.typeId === this.blockType.id; + } +} + +export default BlockCondition; diff --git a/scripts/Commandeer/completionCondition/ButtonPushCondition.ts b/scripts/Commandeer/completionCondition/ButtonPushCondition.ts new file mode 100644 index 0000000..2ff976d --- /dev/null +++ b/scripts/Commandeer/completionCondition/ButtonPushCondition.ts @@ -0,0 +1,21 @@ +import { BlockType, Vector3, world } from "@minecraft/server"; +import AbstractLevelCondition from "./AbstractCondition"; + +class ButtonPushCondition extends AbstractLevelCondition { + position: Vector3; + + constructor(position: Vector3) { + super(); + this.position = position; + } + + checkCondition(): boolean { + const button = world.getDimension("overworld").getBlock(this.position); + if (!button || !button.getRedstonePower()) { + return false; + } + return button.getRedstonePower()! > 0; + } +} + +export default ButtonPushCondition; diff --git a/scripts/Commandeer/level/level.ts b/scripts/Commandeer/level/level.ts new file mode 100644 index 0000000..90797a4 --- /dev/null +++ b/scripts/Commandeer/level/level.ts @@ -0,0 +1,52 @@ +import { World } from "@minecraft/server"; + +class Level { + levelCompleteCallback: Function; + levelCheckCallback: Function; + levelSetupCallback: Function; + levelUpdateCallback: Function; + levelResetCallback: Function; + isCompleted: boolean = false; + isSetup: boolean = false; + + constructor( + levelSetupCallback: Function, + levelUpdateCallback: Function, + levelCompleteCallback: Function, + levelCheckCallback: Function, + levelResetCallback: Function = () => {} + ) { + this.levelSetupCallback = levelSetupCallback; + this.levelCompleteCallback = levelCompleteCallback; + this.levelCheckCallback = levelCheckCallback; + this.levelUpdateCallback = levelUpdateCallback; + this.levelResetCallback = levelResetCallback; + } + + setup() { + this.levelSetupCallback(); + } + + update() { + if (!this.isSetup) { + this.setup(); + this.isSetup = true; + } + this.levelUpdateCallback(); + if (this.levelCheckCallback() && !this.isCompleted) { + this.levelCompleteCallback(); + this.isCompleted = true; + } + } + + reset() { + this.levelResetCallback(); + this.isCompleted = false; + } +} + +//nextlevel +//mindkeeper +//pupeteer + +export default Level; diff --git a/scripts/Commandeer/level/levelTypes.ts b/scripts/Commandeer/level/levelTypes.ts new file mode 100644 index 0000000..3d081d8 --- /dev/null +++ b/scripts/Commandeer/level/levelTypes.ts @@ -0,0 +1,44 @@ +import { BlockType, Vector3, World } from "@minecraft/server"; + +export type blockCondition = { + block: string; + position: Vector3; +}; + +/** + * Checks if there is a lever at the specified position in the world. + * + * @param world - The world object. + * @param position - The position of the lever. + * @returns Returns true if there is a lever at the specified position and it has a redstone power of 15, otherwise returns false. + * @throws Throws an error if there is no lever at the specified position. + */ +export function leverOn(world: World, position: Vector3): boolean { + let lever = world.getDimension("overworld").getBlock(position); + if (!(lever?.typeId == "minecraft:lever")) { + throw new Error(`No lever at ${position}`); + } + return lever.getRedstonePower() == 15; +} + +export type LeverCondition = { + position: Vector3; + state: boolean; +}; + +export type LevelBlockCondition = { + conditions: blockCondition[]; +}; + +export type LevelLeverCondition = { + conditions: LeverCondition[]; +}; + +export type AgentNoGoZone = { + //Reason for needing to use is because the Agent can't be queried for its location in minecraft + position: Vector3; +}; + +export type LevelNoGoZone = { + zones: AgentNoGoZone[]; +}; diff --git a/scripts/Commandeer/mindKeeper.ts b/scripts/Commandeer/mindKeeper.ts new file mode 100644 index 0000000..a3a04bd --- /dev/null +++ b/scripts/Commandeer/mindKeeper.ts @@ -0,0 +1,230 @@ +import { ChatSendAfterEvent, Vector3, World, system } from "@minecraft/server"; + +class Store { + type: StoreType; + name: string; + + constructor(type: StoreType, name: string) { + this.type = type; + this.name = name; + } + + getType(): StoreType { + return this.type; + } + + getName(): string { + return this.name; + } +} + +enum StoreType { + string = "string", + number = "number", + boolean = "boolean", +} + +/** + * Represents a Mindkeeper, responsible for managing stores and dynamic properties in a world. + */ +class Mindkeeper { + registerdStores: Array = []; + // propertyManager = new DynamicPropertiesDefinition(); + world: World; + initialised: boolean = false; + debugLog: string[] = []; + + /** + * Creates a new instance of Mindkeeper. + * @param world The world associated with the Mindkeeper. + */ + constructor(world: World) { + this.world = world; + } + + /** + * Registers a store with the specified name and type. + * @param store The name of the store. + * @param type The type of the store. + */ + registerStore(store: string, type: StoreType): void { + this.registerdStores.push(new Store(type, store)); + } + + /** + * Returns an array of registered stores. + * @returns An array of registered stores. + */ + getStores() { + return this.registerdStores; + } + + /** + * Prints the debug log by sending each log entry as a message to the world. + */ + printDebug() { + this.debugLog.forEach((t) => { + this.world.sendMessage(t); + }); + } + + /** + * Registers the dynamic properties to the world's property registry. + * @param propertyRegistry The property registry of the world. + */ + registerToWorld() { + for (let i = 0; i < this.registerdStores.length; i++) { + let isAlreadyDefined = true; + + try { + let test = this.world.getDynamicProperty(this.registerdStores[i].getName()); + if (test === undefined) { + isAlreadyDefined = false; + } + } catch (e) { + isAlreadyDefined = false; + } + if (isAlreadyDefined) { + continue; + } + switch (this.registerdStores[i].getType()) { + case StoreType.string: + this.world.setDynamicProperty(this.registerdStores[i].getName(), ""); + this.debugLog.push("registerd string" + this.registerdStores[i].getName()); + break; + case StoreType.number: + this.world.setDynamicProperty(this.registerdStores[i].getName(), 0); + this.debugLog.push("registerd number" + this.registerdStores[i].getName()); + break; + case StoreType.boolean: + this.world.setDynamicProperty(this.registerdStores[i].getName(), false); + this.debugLog.push("registerd boolean" + this.registerdStores[i].getName()); + break; + } + } + this.initialised = true; + } + + /** + * Sets the value of a store. + * @param store The name of the store. + * @param value The value to set. + */ + set(store: string, value: string | number | boolean | Vector3): void { + if (this.registerdStores.find((s) => s.getName() === store)?.getType() != typeof value) { + this.world.sendMessage(`Store ${store} is not of type ${typeof value}`); + return; + } + system.run(() => { + this.world.setDynamicProperty(store, value); + }); + } + + /** + * Retrieves the value of a store. + * @param store The name of the store. + * @returns The value of the store, or undefined if the store is not defined. + */ + get(store: string): string | number | boolean | Vector3 | undefined { + try { + let data = this.world.getDynamicProperty(store); + if (data === undefined) { + this.world.sendMessage(`Store ${store} is not defined`); + return undefined; + } + return data; + } catch (e) { + // this.world.sendMessage(`Store ${store} is not defined`); + return undefined; + } + } + + /** + * Increments the value of a store if it is a number. + * @param store The name of the store. + */ + increment(store: string): void { + let data = this.get(store); + if (typeof data === "number") { + this.set(store, data + 1); + } + } + + /** + * Handles chat commands by executing the corresponding actions. + * @param event The chat send after event. + */ + private secondWarning = false; + chatCommands(event: ChatSendAfterEvent) { + const command = event.message.split(" ")[0]; + const args = event.message.split(" ").slice(1); + + if (command === "!get") { + const store = event.message.split(" ")[1]; + const value = this.get(store); + this.world.sendMessage(`Value of ${store} is ${value}`); + } + if (command === "!set") { + const store = event.message.split(" ")[1]; + if (store === undefined) { + this.world.sendMessage(`Please provide a store to set`); + return; + } + const value = event.message.split(" ")[2]; + if (value === undefined) { + this.world.sendMessage(`Please provide a value to set for ${store}`); + return; + } + const type = event.message.split(" ")[3]; + + let actualType = this.getStores() + .find((s) => s.getName() === store) + ?.getType(); + + if (actualType === undefined) { + this.world.sendMessage(`Store ${store} is not defined`); + return; + } + + switch (actualType) { + case StoreType.string: + this.set(store, String(value)); + break; + case StoreType.number: + if (isNaN(Number(value))) { + this.world.sendMessage(`Can't parse ${value} as a number`); + return; + } + this.set(store, Number(value)); + break; + case StoreType.boolean: + const ActualValue = value.toLowerCase(); + this.set(store, ActualValue === "true"); + break; + } + this.world.sendMessage(`Value of ${store} is ${value}`); + } + if (event.message.startsWith("!listStores")) { + this.getStores().forEach((store) => { + this.world.sendMessage(`${store.getName()} is ${store.getType()}`); + }); + } + if (command === "!deleteStores") { + this.world.sendMessage("ARE YOU SURE YOU WANT TO DELETE ALL STORES? THIS COULD CAUSE ISSUES"); + this.world.sendMessage("If you are sure, type !deleteStoresConfirm"); + this.secondWarning = true; + } + if (this.secondWarning) { + if (command === "!deleteStoresConfirm") { + this.getStores().forEach((store) => { + this.world.sendMessage(`Deleting ${store.getName()}`); + this.world.sendMessage("This feature no longer works, thanks minecraft "); + // this.world.dynami(store.getName()); + }); + this.secondWarning = false; + } + } + } +} + +export { Mindkeeper, Store, StoreType }; diff --git a/scripts/Commandeer/nextLevel.ts b/scripts/Commandeer/nextLevel.ts new file mode 100644 index 0000000..98a0a9d --- /dev/null +++ b/scripts/Commandeer/nextLevel.ts @@ -0,0 +1,16 @@ +class NextLevel { + currentState = 0; + states: Array = []; + + constructor(states: Array) { + this.states = states; + } + + update() { + this.states[this.currentState](); + } + + next() { + this.currentState++; + } +} diff --git a/scripts/Commandeer/pupeteer.ts b/scripts/Commandeer/pupeteer.ts new file mode 100644 index 0000000..8e2ad9c --- /dev/null +++ b/scripts/Commandeer/pupeteer.ts @@ -0,0 +1,112 @@ +import { + EntityInventoryComponent, + ItemStack, + Player, + RawText, + TicksPerSecond, + TitleDisplayOptions, + Vector3, + World, + system, + world, +} from "@minecraft/server"; +import { delayedRun } from "./utils/waitUtil"; + +class Pupeteer { + private static getActualString(message: string): string | RawText { + if (message.startsWith("%")) { + const key = message.substring(1); + return { rawtext: [{ translate: key }] }; + } + return message; + } + + static setActionBarTimed(message: string, duration: number): void { + world.getPlayers().forEach((player) => { + system.run(() => { + player.onScreenDisplay.setActionBar(this.getActualString(message)); + }); + }); + delayedRun(() => { + this.clearActionBar(); + }, duration * TicksPerSecond); + } + + static setActionBar(message: string): void { + world.getPlayers().forEach((player) => { + system.run(() => { + player.onScreenDisplay.setActionBar(this.getActualString(message)); + }); + }); + } + + static sendWorldMessage(message: string): void { + world.sendMessage(this.getActualString(message)); + } + + static setTitleTimed(message: string, duration: number): void { + world.getPlayers().forEach((player) => { + let options: TitleDisplayOptions = { + fadeInDuration: 20, + fadeOutDuration: 20, + stayDuration: duration * TicksPerSecond, + }; + player.onScreenDisplay.setTitle(this.getActualString(message), options); + }); + } + + static setTitle(message: string): void { + world.getPlayers().forEach((player) => { + player.onScreenDisplay.setTitle(message); + }); + } + + static updateSubtitle(message: string): void { + world.getPlayers().forEach((player) => { + player.onScreenDisplay.updateSubtitle(this.getActualString(message)); + }); + } + + static clearTitle(): void { + world.getPlayers().forEach((player) => { + player.onScreenDisplay.setTitle(""); + }); + } + + static clearSubtitle(): void { + world.getPlayers().forEach((player) => { + player.onScreenDisplay.updateSubtitle(""); + }); + } + + static clearActionBar(): void { + world.getPlayers().forEach((player) => { + player.onScreenDisplay.setActionBar(""); + }); + } + + static testForLocation(location: Vector3, radius: number): boolean { + let isPlayerInArea = false; + world.getPlayers().forEach((player) => { + let dx = location.x - player.location.x; + let dy = location.y - player.location.y; + let dz = location.z - player.location.z; + + let distance = Math.sqrt(dx * dx + dy * dy + dz * dz); + if (distance < radius) { + isPlayerInArea = true; + } + }); + return isPlayerInArea; + } + + static setNpcText(npcTag: string, sceneName: string) { + world.getDimension("overworld").runCommand(`/dialogue change @e[tag=${npcTag}] ${sceneName} @a`); + } + + static givePlayerItem(player: Player, item: ItemStack) { + (player.getComponent("inventory") as EntityInventoryComponent).container!.addItem(item); + } +} + +export default Pupeteer; diff --git a/scripts/Commandeer/trail/trailEngine.ts b/scripts/Commandeer/trail/trailEngine.ts new file mode 100644 index 0000000..bad4751 --- /dev/null +++ b/scripts/Commandeer/trail/trailEngine.ts @@ -0,0 +1,85 @@ +import { MolangVariableMap, Vector3, world } from "@minecraft/server"; +import { Vector3Add } from "../utils/vectorUtils"; +import { TrailType } from "./trailTypes"; + +class TrailPoint { + postion: Vector3; + index: number; + + constructor(position: Vector3, index: number) { + this.postion = position; + this.index = index; + } + + spawn() { + // let spawnPosition: Vector3 = Vector3Add(this.postion, { x: 0.5, y: 0.5, z: 0.5 }); + let spawnPosition: Vector3 = this.postion; + try { + world + .getDimension("overworld") + .spawnParticle("minecraft:balloon_gas_particle", spawnPosition, new MolangVariableMap()); + } catch (e) {} + } +} + +class Trail { + id: string; + points: TrailPoint[] = []; + currentPoint: number = 0; + wrapIndex: number = 0; + nextParticleTimer: number = 0; + currentParticleCounter: number = 0; + + calculatedLength: number = 0; + constructor(id: string, nextParticleTimer: number = 5, wrapIndex: number = 0) { + this.id = id; + this.nextParticleTimer = nextParticleTimer; + this.wrapIndex = wrapIndex; + } + + addPoint(point: TrailPoint) { + this.points.push(point); + + //this could be a one liner, + let maxlength: number = 0; + this.points.forEach((point) => { + if (point.index > maxlength) { + maxlength = point.index; + } + }); + this.calculatedLength = maxlength; + } + + fromTrail(trail: TrailType) { + trail.points.forEach((point) => { + this.addPoint(new TrailPoint(point.position, point.index)); + }); + } + + spawnNext() { + if (this.currentParticleCounter >= this.nextParticleTimer) { + this.currentParticleCounter = 0; + //wrapindex is in how many segments the trail is divided into + let pointsPerInterval = this.wrapIndex > 0 ? this.calculatedLength / this.wrapIndex : 0; + this.points + .filter((point) => { + return ( + point.index === this.currentPoint || + (this.wrapIndex > 0 && point.index % pointsPerInterval === this.currentPoint) + ); + }) + .forEach((point) => { + point.spawn(); + }); + + this.currentPoint++; + if (this.currentPoint >= this.calculatedLength) { + this.currentPoint = 0; + } + } else { + this.currentParticleCounter++; + } + } +} + +export { Trail, TrailPoint }; diff --git a/scripts/Commandeer/trail/trailMaker.ts b/scripts/Commandeer/trail/trailMaker.ts new file mode 100644 index 0000000..ddf1a59 --- /dev/null +++ b/scripts/Commandeer/trail/trailMaker.ts @@ -0,0 +1,212 @@ +import { + Block, + ChatSendAfterEvent, + EntityInventoryComponent, + ItemStack, + ItemUseOnBeforeEvent, + MolangVariableMap, + Player, + world, +} from "@minecraft/server"; +import { Vector3 } from "@minecraft/server"; +import { Vector3Add, Vector3ToString, vector3 } from "../utils/vectorUtils"; +import { spawnParticle } from "../utils/particleUtils"; +import Pupeteer from "../pupeteer"; +import Chalk from "../chalk"; + +export namespace TrailMaker { + export class Maker { + currentTrail: Trail; + log: Map = new Map(); + selectedIndex: number = 0; + + //Line + point1: Vector3 = vector3(0, 0, 0); + point2: Vector3 = vector3(0, 0, 0); + + waitingForPoint2: boolean = false; + + OnChat(event: ChatSendAfterEvent) { + if (event.message == "!trailWand") { + let item: ItemStack = new ItemStack("minecraft:stick"); + item.nameTag = "AddPoint"; + Pupeteer.givePlayerItem(event.sender as Player, item); + world.sendMessage("Thou shall have the Trailing Powah"); + } + if (event.message == "!trailDeleteWand") { + let item: ItemStack = new ItemStack("minecraft:stick"); + item.nameTag = "DeletePoint"; + Pupeteer.givePlayerItem(event.sender as Player, item); + world.sendMessage("Luke, i'm NOT your father"); + } + if (event.message == "!trailLineWand") { + let item: ItemStack = new ItemStack("minecraft:stick"); + item.nameTag = "AddLine"; + Pupeteer.givePlayerItem(event.sender as Player, item); + world.sendMessage(`This is where i draw the ${Chalk.red("Line")} >:(`); + } + if (event.message == "!trailExport") { + this.Export(); + } + } + OnItemUse(event: ItemUseOnBeforeEvent) { + const currentItemHeld: ItemStack = event.itemStack; + const blockInteracted: Block = event.block; + const player: Player = event.source as Player; + const oldLog = this.log.get(player.name)!; + this.log.set(player.name, Date.now()); + if (oldLog + 150 >= Date.now()) return; + + if (event.itemStack.typeId == "minecraft:stick" && event.itemStack.nameTag == "AddPoint") { + let block = event.block; + let pos = this.BlockToParticlePosition(block); + world.sendMessage(`Added Point ${Vector3ToString(pos)}`); + this.currentTrail.points.push(new Point(pos, this.currentTrail.currentPoint)); + + this.currentTrail.currentPoint++; + Pupeteer.setActionBarTimed(`Added point ${this.currentTrail.currentPoint}`, 3); + } + + if (event.itemStack.typeId == "minecraft:stick" && event.itemStack.nameTag == "DeletePoint") { + let block = event.block; + let pos = this.BlockToParticlePosition(block); + + let point = this.currentTrail.points.find((point) => Vector3ToString(point.position) == Vector3ToString(pos)); + if (point) { + this.currentTrail.points.splice(this.currentTrail.points.indexOf(point), 1); + Pupeteer.setActionBarTimed(`Deleted point ${point.index}`, 3); + } else { + Pupeteer.setActionBarTimed(`No point found`, 3); + } + } + + if (event.itemStack.typeId == "minecraft:stick" && event.itemStack.nameTag == "AddLine") { + world.sendMessage(`Waiting for point 2: ${this.waitingForPoint2}`); + if (!this.waitingForPoint2) { + // this.point1 = vector3(blockInteracted.location.x, blockInteracted.location.y, blockInteracted.location.z); + this.point1 = this.BlockToParticlePosition(blockInteracted); + + this.waitingForPoint2 = true; + Pupeteer.setActionBar("Select a second point"); + world.sendMessage("Select a second point"); + + return; + } else { + this.point2 = this.BlockToParticlePosition(blockInteracted); + + //Calculate the blocks between these 2 points, andd add them to the trail + //Assume point1 is the start, and point2 is the end + let x1 = this.point1.x; + let x2 = this.point2.x; + let y1 = this.point1.y; + let y2 = this.point2.y; + let z1 = this.point1.z; + let z2 = this.point2.z; + + //Find out what axis is the movement on, throw an error if it's on more than one axis + + let xDiff = Math.abs(x2 - x1); + let yDiff = Math.abs(y2 - y1); + let zDiff = Math.abs(z2 - z1); + + let axis = ""; + + if (xDiff > 0 && yDiff == 0 && zDiff == 0) { + axis = "x"; + } else if (xDiff == 0 && yDiff > 0 && zDiff == 0) { + axis = "y"; + } else if (xDiff == 0 && yDiff == 0 && zDiff > 0) { + axis = "z"; + } else { + Pupeteer.setActionBarTimed("Invalid line", 3); + return; + } + + let start = 0; + let end = 0; + + if (axis == "x") { + start = Math.min(x1, x2); + end = Math.max(x1, x2); + } else if (axis == "y") { + start = Math.min(y1, y2); + end = Math.max(y1, y2); + } else if (axis == "z") { + start = Math.min(z1, z2); + end = Math.max(z1, z2); + } + + for (let i = start; i <= end; i++) { + let pos = vector3(0, 0, 0); + if (axis == "x") { + pos = vector3(i, y1, z1); + } else if (axis == "y") { + pos = vector3(x1, i, z1); + } else if (axis == "z") { + pos = vector3(x1, y1, i); + } + + this.currentTrail.points.push(new Point(pos, this.currentTrail.currentPoint)); + this.currentTrail.currentPoint++; + } + + this.waitingForPoint2 = false; + Pupeteer.setActionBarTimed("Added line", 3); + } + } + } + + Update() { + this.currentTrail.points.forEach((point) => { + spawnParticle(point.position, "minecraft:balloon_gas_particle", new MolangVariableMap()); + }); + } + + Export() { + let output = ""; + for (let i = 0; i < this.currentTrail.points.length; i++) { + let point = this.currentTrail.points[i]; + let actualPos = point.position; + output += `{ index: ${point.index}, position: vector3(${actualPos.x}, ${actualPos.y}, ${actualPos.z}) },\n`; + } + console.warn(output); + } + + private BlockToParticlePosition(block: Block): Vector3 { + let pos = vector3(block.location.x, block.location.y, block.location.z); + pos = Vector3Add(pos, vector3(0.5, 0, 0.5)); + //If block is a slab or stair, offset by half a block + + let isHalfBlock = block.typeId.includes("slab") || block.typeId.includes("stair"); + if (isHalfBlock) { + pos = Vector3Add(pos, vector3(0, 0.5, 0)); + } else { + pos = Vector3Add(pos, vector3(0, 1.1, 0)); + } + return pos; + } + + constructor() { + this.currentTrail = new Trail(); + } + } + + class Trail { + points: Point[] = []; + currentPoint: number = 0; + nextParticleTimer: number = 0; + currentParticleCounter: number = 0; + + constructor() {} + } + + class Point { + position: Vector3; + index: number; + + constructor(position: Vector3, index: number) { + this.position = position; + this.index = index; + } + } +} diff --git a/scripts/Commandeer/trail/trailTypes.ts b/scripts/Commandeer/trail/trailTypes.ts new file mode 100644 index 0000000..9902517 --- /dev/null +++ b/scripts/Commandeer/trail/trailTypes.ts @@ -0,0 +1,13 @@ +import { Vector3 } from "@minecraft/server"; + +type TrailPointType = { + index: number; + position: Vector3; +}; + +type TrailType = { + name: string; + points: TrailPointType[]; +}; + +export { TrailPointType, TrailType }; diff --git a/scripts/Commandeer/utils/agentUtils.ts b/scripts/Commandeer/utils/agentUtils.ts new file mode 100644 index 0000000..fd61dab --- /dev/null +++ b/scripts/Commandeer/utils/agentUtils.ts @@ -0,0 +1,40 @@ +import { Entity, Vector3, world } from "@minecraft/server"; +import { Vector3ToString, vector3 } from "./vectorUtils"; +import { mindKeeper } from "../../main"; +function teleportAgent(position: Vector3) { + world + .getDimension("overworld") + .runCommand(`/execute as @a run tp @e[type=agent] ${position.x} ${position.y} ${position.z}`); +} + +function isAgentAt(position: Vector3): boolean { + let isAgentAt: boolean = false; + world + .getDimension("overworld") + .getEntitiesAtBlockLocation(position) + .forEach((entity) => { + if (!entity.isValid()) { + world.sendMessage("INVALID ENTITY"); + return; + } + if (entity.typeId == "minecraft:agent") { + isAgentAt = true; + } + }); + return isAgentAt; +} + +function getAgent(): Entity { + let agent = world.getEntity(mindKeeper.get("agentid") as string); + return agent!; +} + +function getAgentLocation(): Vector3 { + let agentLocation: Vector3 = vector3(0, 0, 0); + let agent = world.getEntity(mindKeeper.get("agentid") as string); + agentLocation = agent!.location; + + return agentLocation; +} + +export { teleportAgent, isAgentAt, getAgentLocation, getAgent }; diff --git a/scripts/Commandeer/utils/arrow.ts b/scripts/Commandeer/utils/arrow.ts new file mode 100644 index 0000000..74025bc --- /dev/null +++ b/scripts/Commandeer/utils/arrow.ts @@ -0,0 +1,62 @@ +import { MolangVariableMap, Vector3, world } from "@minecraft/server"; +import { Vector3Add, vector3 } from "./vectorUtils"; +import { PARTICLES, spawnParticle } from "./particleUtils"; + +let arrowTemplate: Vector3[] = [ + vector3(0, 0, 0), + + vector3(1, 1, 0), + vector3(-1, 1, 0), + + vector3(1.5, 2, 0), + vector3(-1.5, 2, 0), + + vector3(2, 3, 0), + vector3(-2, 3, 0), + + vector3(0, 1, 0), + vector3(0, 2, 0), + vector3(0, 3, 0), + vector3(0, 4, 0), + vector3(0, 5, 0), +]; + +let offset: Vector3 = vector3(0, 0, 0); + +let angleOffset = 0; +let heightBobbing = 0; +let tickCounter = 0; + +function rotate(pos: Vector3, angle: number) { + let x = pos.x; + let z = pos.z; + + let newX = x * Math.cos(angle) - z * Math.sin(angle); + let newZ = x * Math.sin(angle) + z * Math.cos(angle); + + return vector3(newX, pos.y, newZ); +} + +const particleData = new MolangVariableMap(); +particleData.setColorRGB("variable.color", { + red: 1, + green: 1, + blue: 1, +}); + +function drawArrow(offsetPos: Vector3) { + tickCounter++; + if (tickCounter % 2 == 0) { + angleOffset += 0.1; + heightBobbing += 0.3; + offset = vector3(46.5, 75, 220.5); + arrowTemplate.forEach((pos) => { + let rotatedPos = rotate(pos, angleOffset); + let finalPos = Vector3Add(offsetPos, rotatedPos); + finalPos.y += Math.sin(heightBobbing) / 2; + spawnParticle(finalPos, PARTICLES.point, particleData); + }); + } +} + +export { drawArrow }; diff --git a/scripts/Commandeer/utils/levelUtils.ts b/scripts/Commandeer/utils/levelUtils.ts new file mode 100644 index 0000000..84806d6 --- /dev/null +++ b/scripts/Commandeer/utils/levelUtils.ts @@ -0,0 +1,24 @@ +import { BlockType, BlockTypes, BlockVolume, Vector3, world } from "@minecraft/server"; +import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block"; + +type Wall = { + startPos: Vector3; + endPos: Vector3; +}; + +function clearWall(wall: Wall) { + let volume: BlockVolume = new BlockVolume(wall.startPos, wall.endPos); + world.getDimension("overworld").fillBlocks(volume, MinecraftBlockTypes.Air); +} + +function fillWall(wall: Wall, block: BlockType) { + let volume: BlockVolume = new BlockVolume(wall.startPos, wall.endPos); + world.getDimension("overworld").fillBlocks(volume, block); +} + +function startLevel(commandBlockPos: Vector3) { + let volume: BlockVolume = new BlockVolume(commandBlockPos, commandBlockPos); + world.getDimension("overworld").fillBlocks(volume, MinecraftBlockTypes.RedstoneBlock); +} +BlockTypes; +export { Wall, clearWall, fillWall, startLevel }; diff --git a/scripts/Commandeer/utils/particleUtils.ts b/scripts/Commandeer/utils/particleUtils.ts new file mode 100644 index 0000000..7ed7975 --- /dev/null +++ b/scripts/Commandeer/utils/particleUtils.ts @@ -0,0 +1,232 @@ +import { MolangVariableMap, Vector3, world } from "@minecraft/server"; +import { Vector3Add, vector3 } from "./vectorUtils"; + +const bedrockParticles = [ + "minecraft:mobspell_emitter", + "minecraft:villager_angry", + "minecraft:bleach", + "minecraft:breaking_item_icon", + "minecraft:blockdust", + "minecraft:bubble_column_up_particle", + "minecraft:compfire_smoke_particle", + "minecraft:campfire_tall_smoke_particle", + "minecraft:cherry_leaves_particle", + "minecraft:crop_growth_emitter", + "minecraft:conduit_particle", + "minecraft:critical_hit_emitter", + "minecraft:bubble_column_down_particle", + "minecraft:dolphin_move_particle", + "minecraft:dragon_breath_trail", + "minecraft:dragon_breath_lingering", + "minecraft:lava_drip_particle", + "minecraft:water_drip_particle", + "minecraft:redstone_wire_dust_particle", + "minecraft:sculk_sensor_redstone_particle", + "minecraft:splash_spell_emitter", + "minecraft:electric_spark__particle", + "minecraft:enchanting_table_particle", + "minecraft:endrod", + "minecraft:balloon_gas_particle", + "minecraft:evoker_spell", + "minecraft:huge_explosion_emitter", + "minecraft:falling_dust_red_sand_particle", + "minecraft:falling_dust_sand_particle", + "minecraft:falling_dust_gravel_particle", + "minecraft:falling_dust_top_snow_particle", + "minecraft:falling_dust_dragon_egg_particle", + "minecraft:falling_dust_concrete_particle", + "minecraft:falling_dust_scaffolding_particle", + "minecraft:honey_drip_particle", + "minecraft:nectar_drip_particle", + "minecraft:obsidian_tear_particle", + "minecraft:spore_blossom_shower_particle", + "minecraft:water_splash_particle", + "minecraft:sparkler_emitter", + "minecraft:water_wake_particle", + "minecraft:basic_flame_particle", + "minecraft:flash", + "minecraft:glow_particle", + "minecraft:villager_happy", + "minecraft:heart_particle", + "minecraft:water_evaporation_actor_emitter", + "minecraft:lava_particle", + "minecraft:mobflame_emitter", + "minecraft:mobflame_single", + "minecraft:mycelium_dust_particle", + "minecraft:note_particle", + "minecraft:explode", + "minecraft:mob_portal", + "minecraft:rainsplash", + "minecraft:basic_smoke_particle", + "minecraft:snowflake_particle", + "minecraft:soul_particle", + "minecraft:blue_flame_particle", + "minecraft:spore_blossom_ambient_particle", + "minecraft:watersplash", + "minecraft:terrain", + "minecraft:totem_particle", + "minecraft:tracking_emitter", + "minecraft:vibration_signal", + "minecraft:wax_particle", + "minecraft:witchspell", +]; + +const PARTICLES = { + mobspell_emitter: "minecraft:mobspell_emitter", + villager_angry: "minecraft:villager_angry", + bleach: "minecraft:bleach", + breaking_item_icon: "minecraft:breaking_item_icon", + blockdust: "minecraft:blockdust", + bubble_column_up_particle: "minecraft:bubble_column_up_particle", + compfire_smoke_particle: "minecraft:compfire_smoke_particle", + campfire_tall_smoke_particle: "minecraft:campfire_tall_smoke_particle", + cherry_leaves_particle: "minecraft:cherry_leaves_particle", + crop_growth_emitter: "minecraft:crop_growth_emitter", + conduit_particle: "minecraft:conduit_particle", + critical_hit_emitter: "minecraft:critical_hit_emitter", + bubble_column_down_particle: "minecraft:bubble_column_down_particle", + dolphin_move_particle: "minecraft:dolphin_move_particle", + dragon_breath_trail: "minecraft:dragon_breath_trail", + dragon_breath_lingering: "minecraft:dragon_breath_lingering", + lava_drip_particle: "minecraft:lava_drip_particle", + water_drip_particle: "minecraft:water_drip_particle", + redstone_wire_dust_particle: "minecraft:redstone_wire_dust_particle", + sculk_sensor_redstone_particle: "minecraft:sculk_sensor_redstone_particle", + splash_spell_emitter: "minecraft:splash_spell_emitter", + electric_spark__particle: "minecraft:electric_spark__particle", + enchanting_table_particle: "minecraft:enchanting_table_particle", + endrod: "minecraft:endrod", + balloon_gas_particle: "minecraft:balloon_gas_particle", + evoker_spell: "minecraft:evoker_spell", + huge_explosion_emitter: "minecraft:huge_explosion_emitter", + falling_dust_red_sand_particle: "minecraft:falling_dust_red_sand_particle", + falling_dust_sand_particle: "minecraft:falling_dust_sand_particle", + falling_dust_gravel_particle: "minecraft:falling_dust_gravel_particle", + falling_dust_top_snow_particle: "minecraft:falling_dust_top_snow_particle", + falling_dust_dragon_egg_particle: "minecraft:falling_dust_dragon_egg_particle", + falling_dust_concrete_particle: "minecraft:falling_dust_concrete_particle", + falling_dust_scaffolding_particle: "minecraft:falling_dust_scaffolding_particle", + honey_drip_particle: "minecraft:honey_drip_particle", + nectar_drip_particle: "minecraft:nectar_drip_particle", + obsidian_tear_particle: "minecraft:obsidian_tear_particle", + spore_blossom_shower_particle: "minecraft:spore_blossom_shower_particle", + water_splash_particle: "minecraft:water_splash_particle", + sparkler_emitter: "minecraft:sparkler_emitter", + water_wake_particle: "minecraft:water_wake_particle", + basic_flame_particle: "minecraft:basic_flame_particle", + flash: "minecraft:flash", + glow_particle: "minecraft:glow_particle", + villager_happy: "minecraft:villager_happy", + heart_particle: "minecraft:heart_particle", + water_evaporation_actor_emitter: "minecraft:water_evaporation_actor_emitter", + lava_particle: "minecraft:lava_particle", + mobflame_emitter: "minecraft:mobflame_emitter", + mobflame_single: "minecraft:mobflame_single", + mycelium_dust_particle: "minecraft:mycelium_dust_particle", + note_particle: "minecraft:note_particle", + explode: "minecraft:explode", + mob_portal: "minecraft:mob_portal", + rainsplash: "minecraft:rainsplash", + basic_smoke_particle: "minecraft:basic_smoke_particle", + snowflake_particle: "minecraft:snowflake_particle", + soul_particle: "minecraft:soul_particle", + blue_flame_particle: "minecraft:blue_flame_particle", + spore_blossom_ambient_particle: "minecraft:spore_blossom_ambient_particle", + watersplash: "minecraft:watersplash", + terrain: "minecraft:terrain", + totem_particle: "minecraft:totem_particle", + tracking_emitter: "minecraft:tracking_emitter", + vibration_signal: "minecraft:vibration_signal", + wax_particle: "minecraft:wax_particle", + witchspell: "minecraft:witchspell", + point: "codecosmos:point", +}; + +class ParticleColumn { + pos: Vector3; + radius: number; + pointsPerLayer: number; + layerCount: number; + particle: string; + points: Vector3[] = []; + speed: number; + anglePerLayer: number[] = []; + tickCounter: number = 0; + + constructor( + pos: Vector3, + radius: number, + pointsPerLayer: number, + layerCount: number, + speed: number, + particle: string + ) { + this.pos = pos; + this.radius = radius; + this.particle = particle; + this.pointsPerLayer = pointsPerLayer; + this.layerCount = layerCount; + this.speed = speed; + this.generatePoints(); + } + + generatePoints() { + for (let layer = 0; layer < this.layerCount; layer++) { + let layerRadius = this.radius - layer; + for (let point = 0; point < this.pointsPerLayer; point++) { + let angle = (point / this.pointsPerLayer) * (Math.PI * 2); + this.anglePerLayer.push(angle); + let x = Math.cos(angle) * layerRadius; + let z = Math.sin(angle) * layerRadius; + let y = layer; + this.points.push(Vector3Add(this.pos, vector3(x, y, z))); + } + } + } + + update() { + //update each point by increasing the angle by the speed + let layerCount = 0; + let pointCount = 0; + this.tickCounter++; + if (this.tickCounter % 2 == 0) { + this.points.forEach((point, index) => { + let layer = Math.floor(index / this.pointsPerLayer); + let angle = this.anglePerLayer[index]; + angle += this.speed * (layer / 5); + this.anglePerLayer[index] = angle; + let layerRadius = this.radius - Math.floor(index / this.pointsPerLayer); + let calcAngle = angle; + let x = Math.cos(calcAngle) * this.radius; + let z = Math.sin(calcAngle) * this.radius; + let y = Math.floor(index / this.pointsPerLayer) + (this.tickCounter % 2); + this.points[index] = Vector3Add(this.pos, vector3(x, y, z)); + }); + } + } + draw() { + this.points.forEach((point) => { + spawnParticle(point); + }); + } +} + +function spawnParticle( + position: Vector3, + particle: string = PARTICLES.balloon_gas_particle, + map: MolangVariableMap = new MolangVariableMap() +) { + //check if the chunk is loaded + const chunk = world.getDimension("overworld").getBlock(position); + if (!chunk?.isValid()) { + return; + } + map.setVector3("variable.direction", vector3(0, 0, 0)); + + const dimension = world.getDimension("overworld"); + if (dimension) { + dimension.spawnParticle(particle, position, map); + } +} + +export { PARTICLES, bedrockParticles, ParticleColumn, spawnParticle }; diff --git a/scripts/Commandeer/utils/vectorUtils.ts b/scripts/Commandeer/utils/vectorUtils.ts new file mode 100644 index 0000000..77f99b7 --- /dev/null +++ b/scripts/Commandeer/utils/vectorUtils.ts @@ -0,0 +1,71 @@ +import { Vector3 } from "@minecraft/server"; + +function vector3(x: number, y: number, z: number): Vector3 { + return { x: x, y: y, z: z }; +} + +function Vector3ToString(vector: Vector3) { + return vector.x + "," + vector.y + "," + vector.z; +} + +function Vector3ToCommandString(vector: Vector3) { + return `${vector.x} ${vector.y} ${vector.z}`; +} + +function Vector3ToFancyString(vector: Vector3) { + return `{X: ${Math.floor(vector.x)}, Y: ${Math.floor(vector.y)}, Z: ${Math.floor(vector.z)}}`; +} + +function Vector3Add(vector1: Vector3, vector2: Vector3): Vector3 { + return { x: vector1.x + vector2.x, y: vector1.y + vector2.y, z: vector1.z + vector2.z }; +} + +function Vector3Subtract(vector1: Vector3, vector2: Vector3): Vector3 { + return { x: vector1.x - vector2.x, y: vector1.y - vector2.y, z: vector1.z - vector2.z }; +} + +function Vector3Multiply(vector1: Vector3, vector2: Vector3): Vector3 { + return { x: vector1.x * vector2.x, y: vector1.y * vector2.y, z: vector1.z * vector2.z }; +} + +function Vector3Divide(vector1: Vector3, vector2: Vector3): Vector3 { + return { x: vector1.x / vector2.x, y: vector1.y / vector2.y, z: vector1.z / vector2.z }; +} + +function Vector3Floor(vector: Vector3): Vector3 { + return { x: Math.floor(vector.x), y: Math.floor(vector.y), z: Math.floor(vector.z) }; +} + +function Vector3Ceil(vector: Vector3): Vector3 { + return { x: Math.ceil(vector.x), y: Math.ceil(vector.y), z: Math.ceil(vector.z) }; +} + +function Vector3Round(vector: Vector3): Vector3 { + return { x: Math.round(vector.x), y: Math.round(vector.y), z: Math.round(vector.z) }; +} + +function Vector3Abs(vector: Vector3): Vector3 { + return { x: Math.abs(vector.x), y: Math.abs(vector.y), z: Math.abs(vector.z) }; +} + +function vector3Distance(vector1: Vector3, vector2: Vector3): number { + return Math.sqrt( + Math.pow(vector2.x - vector1.x, 2) + Math.pow(vector2.y - vector1.y, 2) + Math.pow(vector2.z - vector1.z, 2) + ); +} + +export { + Vector3ToString, + Vector3ToFancyString, + Vector3Add, + Vector3Subtract, + Vector3Multiply, + Vector3Divide, + Vector3Floor, + Vector3Ceil, + Vector3Round, + Vector3Abs, + vector3Distance, + Vector3ToCommandString, + vector3, +}; diff --git a/scripts/Commandeer/utils/waitUtil.ts b/scripts/Commandeer/utils/waitUtil.ts new file mode 100644 index 0000000..8809e0d --- /dev/null +++ b/scripts/Commandeer/utils/waitUtil.ts @@ -0,0 +1,16 @@ +import { system } from "@minecraft/server"; + +function delayedRun(callback: Function, delay: number) { + let timer = system.runTimeout(() => { + callback(); + system.clearRun(timer); + }, delay); +} + +function delay(t: number) { + return new Promise((r: any) => { + system.runTimeout(r, t); + }); +} + +export { delayedRun, delay }; diff --git a/scripts/Commandeer/utils/worldEditUtils.ts b/scripts/Commandeer/utils/worldEditUtils.ts new file mode 100644 index 0000000..dd18eda --- /dev/null +++ b/scripts/Commandeer/utils/worldEditUtils.ts @@ -0,0 +1,34 @@ +import { Vector3, world } from "@minecraft/server"; + +function clone(startPos: Vector3, endPos: Vector3, destination: Vector3) { + world + .getDimension("overworld") + .runCommand( + `clone ${startPos.x} ${startPos.y} ${startPos.z} ${endPos.x} ${endPos.y} ${endPos.z} ${destination.x} ${destination.y} ${destination.z} replace normal` + ); +} + +enum LeverDirection { + DownEastWest = "down_east_west", + DownNorthSouth = "down_north_south", + East = "east", + North = "north", + South = "south", + UpEastWest = "up_east_west", + UpNorthSouth = "up_north_south", + West = "west", +} + +function setLever(pos: Vector3, direction: LeverDirection, isOpen: boolean) { + world + .getDimension("overworld") + .runCommandAsync( + `/setblock ${pos.x} ${pos.y} ${pos.z} lever["lever_direction":"${direction}","open_bit":${ + isOpen ? "true" : "false" + }]` + ); + + ///setblock 53 70 216 lever["lever_direction"="down_east_west","open_bit"=false] +} + +export { clone, LeverDirection, setLever }; diff --git a/scripts/levelConditions/level1.ts b/scripts/levelConditions/level1.ts new file mode 100644 index 0000000..5fb550e --- /dev/null +++ b/scripts/levelConditions/level1.ts @@ -0,0 +1,141 @@ +import { BlockType, Vector3 } from "@minecraft/server"; +import { LevelBlockCondition, LevelNoGoZone } from "../Commandeer/level/levelTypes"; +import { vector3 } from "../Commandeer/utils/vectorUtils"; +import { MinecraftBlockTypes } from "../vanilla-data/mojang-block"; + +let level1Conditions: LevelBlockCondition = { + conditions: [ + { + block: MinecraftBlockTypes.Air, + position: vector3(55, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(56, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(57, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(58, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(59, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(60, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(61, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(62, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(63, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(65, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(66, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(67, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(68, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(69, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(70, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(71, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(72, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(73, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(74, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(74, 70, 216), + }, + ], +}; + +let level1NoGoZones: LevelNoGoZone = { + zones: [ + { position: vector3(55, 70, 215) }, + { position: vector3(56, 70, 215) }, + { position: vector3(57, 70, 215) }, + { position: vector3(58, 70, 215) }, + { position: vector3(59, 70, 215) }, + { position: vector3(60, 70, 215) }, + { position: vector3(61, 70, 215) }, + { position: vector3(62, 70, 215) }, + { position: vector3(63, 70, 215) }, + { position: vector3(64, 70, 215) }, + { position: vector3(65, 70, 215) }, + { position: vector3(66, 70, 215) }, + { position: vector3(67, 70, 215) }, + { position: vector3(68, 70, 215) }, + { position: vector3(69, 70, 215) }, + { position: vector3(70, 70, 215) }, + { position: vector3(71, 70, 215) }, + { position: vector3(72, 70, 215) }, + { position: vector3(73, 70, 215) }, + { position: vector3(74, 70, 215) }, + + { position: vector3(55, 70, 217) }, + { position: vector3(56, 70, 217) }, + { position: vector3(57, 70, 217) }, + { position: vector3(58, 70, 217) }, + { position: vector3(59, 70, 217) }, + { position: vector3(60, 70, 217) }, + { position: vector3(61, 70, 217) }, + { position: vector3(62, 70, 217) }, + { position: vector3(63, 70, 217) }, + { position: vector3(64, 70, 217) }, + { position: vector3(65, 70, 217) }, + { position: vector3(66, 70, 217) }, + { position: vector3(67, 70, 217) }, + { position: vector3(68, 70, 217) }, + { position: vector3(69, 70, 217) }, + { position: vector3(70, 70, 217) }, + { position: vector3(71, 70, 217) }, + { position: vector3(72, 70, 217) }, + { position: vector3(73, 70, 217) }, + { position: vector3(74, 70, 217) }, + ], +}; + +export { level1Conditions, level1NoGoZones }; diff --git a/scripts/levelConditions/level2.ts b/scripts/levelConditions/level2.ts new file mode 100644 index 0000000..415a38a --- /dev/null +++ b/scripts/levelConditions/level2.ts @@ -0,0 +1,145 @@ +import { BlockType, Vector3 } from "@minecraft/server"; +import { LevelBlockCondition, LevelNoGoZone } from "../Commandeer/level/levelTypes"; +import { vector3 } from "../Commandeer/utils/vectorUtils"; +import { MinecraftBlockTypes } from "../vanilla-data/mojang-block"; + +let level2Conditions: LevelBlockCondition = { + conditions: [ + { + block: MinecraftBlockTypes.Air, + position: vector3(45, 70, 220), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(44, 70, 220), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(43, 70, 220), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(42, 70, 220), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(41, 70, 220), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(40, 70, 220), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(39, 70, 220), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(38, 70, 220), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(37, 70, 220), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(36, 70, 220), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(35, 70, 220), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(34, 70, 220), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(33, 70, 220), + }, + + { + block: MinecraftBlockTypes.Air, + position: vector3(33, 70, 219), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(33, 70, 218), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(33, 70, 217), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(33, 70, 216), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(33, 70, 215), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(33, 70, 214), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(33, 70, 213), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(33, 70, 212), + }, + + { + block: MinecraftBlockTypes.Air, + position: vector3(34, 70, 212), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(35, 70, 212), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(36, 70, 212), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(37, 70, 212), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(38, 70, 212), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(39, 70, 212), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(40, 70, 212), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(41, 70, 212), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(42, 70, 212), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(43, 70, 212), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(44, 70, 212), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(45, 70, 212), + }, + ], +}; + +export { level2Conditions }; diff --git a/scripts/levelConditions/level3.ts b/scripts/levelConditions/level3.ts new file mode 100644 index 0000000..90b4403 --- /dev/null +++ b/scripts/levelConditions/level3.ts @@ -0,0 +1,140 @@ +import { BlockType, Vector3 } from "@minecraft/server"; +import { LevelBlockCondition } from "../Commandeer/level/levelTypes"; +import { vector3 } from "../Commandeer/utils/vectorUtils"; +import { MinecraftBlockTypes } from "../vanilla-data/mojang-block"; + +let level3Conditions: LevelBlockCondition = { + conditions: [ + { + block: MinecraftBlockTypes.Air, + position: vector3(57, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(58, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(59, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(60, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(60, 70, 234), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(60, 70, 233), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(60, 70, 232), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(60, 70, 231), + }, + + { + block: MinecraftBlockTypes.Air, + position: vector3(61, 70, 231), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(62, 70, 231), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(63, 70, 231), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 231), + }, + + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 232), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 233), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 234), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 236), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 237), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 238), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 239), + }, + + { + block: MinecraftBlockTypes.Air, + position: vector3(65, 70, 239), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(66, 70, 239), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(67, 70, 239), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(68, 70, 239), + }, + + { + block: MinecraftBlockTypes.Air, + position: vector3(68, 70, 238), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(68, 70, 237), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(68, 70, 236), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(68, 70, 235), + }, + + { + block: MinecraftBlockTypes.Air, + position: vector3(69, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(70, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(71, 70, 235), + }, + ], +}; + +export { level3Conditions }; diff --git a/scripts/levelConditions/level4.ts b/scripts/levelConditions/level4.ts new file mode 100644 index 0000000..90b4403 --- /dev/null +++ b/scripts/levelConditions/level4.ts @@ -0,0 +1,140 @@ +import { BlockType, Vector3 } from "@minecraft/server"; +import { LevelBlockCondition } from "../Commandeer/level/levelTypes"; +import { vector3 } from "../Commandeer/utils/vectorUtils"; +import { MinecraftBlockTypes } from "../vanilla-data/mojang-block"; + +let level3Conditions: LevelBlockCondition = { + conditions: [ + { + block: MinecraftBlockTypes.Air, + position: vector3(57, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(58, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(59, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(60, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(60, 70, 234), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(60, 70, 233), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(60, 70, 232), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(60, 70, 231), + }, + + { + block: MinecraftBlockTypes.Air, + position: vector3(61, 70, 231), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(62, 70, 231), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(63, 70, 231), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 231), + }, + + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 232), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 233), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 234), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 236), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 237), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 238), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(64, 70, 239), + }, + + { + block: MinecraftBlockTypes.Air, + position: vector3(65, 70, 239), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(66, 70, 239), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(67, 70, 239), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(68, 70, 239), + }, + + { + block: MinecraftBlockTypes.Air, + position: vector3(68, 70, 238), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(68, 70, 237), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(68, 70, 236), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(68, 70, 235), + }, + + { + block: MinecraftBlockTypes.Air, + position: vector3(69, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(70, 70, 235), + }, + { + block: MinecraftBlockTypes.Air, + position: vector3(71, 70, 235), + }, + ], +}; + +export { level3Conditions }; diff --git a/scripts/levelConditions/levelIntro.ts b/scripts/levelConditions/levelIntro.ts new file mode 100644 index 0000000..d13afcd --- /dev/null +++ b/scripts/levelConditions/levelIntro.ts @@ -0,0 +1,26 @@ +import { LevelBlockCondition, LevelLeverCondition } from "../Commandeer/level/levelTypes"; +import { vector3 } from "../Commandeer/utils/vectorUtils"; +import { MinecraftBlockTypes } from "../vanilla-data/mojang-block"; + +let levelIntroConditions: LevelBlockCondition = { + conditions: [ + { + block: MinecraftBlockTypes.EmeraldBlock, + position: vector3(2471, 12, 108), + }, + { + block: MinecraftBlockTypes.EmeraldBlock, + position: vector3(2469, 12, 108), + }, + { + block: MinecraftBlockTypes.LapisBlock, + position: vector3(2468, 12, 108), + }, + { + block: MinecraftBlockTypes.LapisBlock, + position: vector3(2464, 12, 108), + }, + ], +}; + +export { levelIntroConditions }; diff --git a/scripts/levels/level1/mission1.ts b/scripts/levels/level1/mission1.ts new file mode 100644 index 0000000..f535517 --- /dev/null +++ b/scripts/levels/level1/mission1.ts @@ -0,0 +1,69 @@ +import { BlockType, BlockTypes, Vector3, world } from "@minecraft/server"; +import Level from "../../Commandeer/level/level"; +import pupeteer from "../../Commandeer/pupeteer"; +import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils"; +import { startLevel } from "../../Commandeer/utils/levelUtils"; +import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils"; +import { level1Conditions } from "../../levelConditions/level1"; +import { mindKeeper, CURRENT_LEVEL } from "../../main"; +import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block"; +const Level1CommandBlockPos: Vector3 = vector3(-73, 71, 283); + +const level1StartPosition: Vector3 = vector3(-73, 69, 267); +const Level1EndPosition: Vector3 = vector3(-82, 69, 265); + +const level1ResetCommandBlockPos: Vector3 = vector3(56, 68, 211); +const level1: Level = new Level( + () => { + pupeteer.sendWorldMessage("%message.level1.started"); + pupeteer.setTitleTimed("%message.level1.name", 2.5); + startLevel(Level1CommandBlockPos); + teleportAgent(level1StartPosition); + }, + () => { + pupeteer.setActionBar("%message.level1.make"); + }, + () => { + pupeteer.clearActionBar(); + pupeteer.sendWorldMessage("%message.level1.complete"); + pupeteer.setTitleTimed("%message.level1.complete", 2.5); + + mindKeeper.increment(CURRENT_LEVEL); + }, + () => { + let isComplete = false; + let isOutOfBounds = false; + let hasAllTools = false; + + //6 blocks lower is lava + + let agentPos = getAgentLocation(); + let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0))); + + if (blockAir && blockAir.type.id === MinecraftBlockTypes.Air) { + isOutOfBounds = true; + } + + if (isAgentAt(Level1EndPosition) && hasAllTools) { + isComplete = true; + } + + // world.sendMessage(`isComplete: ${isComplete}`); + // world.sendMessage(`isOutOfBounds: ${isOutOfBounds}`); + + if (isOutOfBounds) { + pupeteer.sendWorldMessage("%message.level1.outOfBounds"); + pupeteer.setTitleTimed("%message.level1.outOfBounds", 2.5); + // world.getDimension("overworld").runCommand("/kill @e[type=agent]"); + world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s"); + + teleportAgent(level1StartPosition); + return false; + } else if (isComplete) { + return true; + } + return false; + } +); + +export default level1; diff --git a/scripts/levels/level2/mission1.ts b/scripts/levels/level2/mission1.ts new file mode 100644 index 0000000..5da4cc7 --- /dev/null +++ b/scripts/levels/level2/mission1.ts @@ -0,0 +1,68 @@ +import { Vector3, world } from "@minecraft/server"; +import Level from "../../Commandeer/level/level"; +import pupeteer from "../../Commandeer/pupeteer"; +import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils"; +import { startLevel } from "../../Commandeer/utils/levelUtils"; +import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils"; +// import { level2Conditions } from "../../levelConditions/level2"; +import { mindKeeper, CURRENT_LEVEL } from "../../main"; +import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block"; +const level2CommandBlockPos: Vector3 = vector3(-111, 70, 282); + +const level2StartPosition: Vector3 = vector3(-111, 69, 272); +const level2EndPosition: Vector3 = vector3(-124, 69, 258); + +const level2ResetCommandBlockPos: Vector3 = vector3(56, 68, 211); +const level2: Level = new Level( + () => { + pupeteer.sendWorldMessage("%message.level2.started"); + pupeteer.setTitleTimed("%message.level2.name", 2.5); + startLevel(level2CommandBlockPos); + teleportAgent(level2StartPosition); + }, + () => { + pupeteer.setActionBar("%message.level2.make"); + }, + () => { + pupeteer.clearActionBar(); + pupeteer.sendWorldMessage("%message.level2.complete"); + pupeteer.setTitleTimed("%message.level2.complete", 2.5); + + mindKeeper.increment(CURRENT_LEVEL); + }, + () => { + let isComplete = false; + let isOutOfBounds = false; + + //6 blocks lower is lava + + let agentPos = getAgentLocation(); + let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0))); + + if (blockAir && blockAir.type.id === MinecraftBlockTypes.Air) { + isOutOfBounds = true; + } + + if (isAgentAt(level2EndPosition)) { + isComplete = true; + } + + // world.sendMessage(`isComplete: ${isComplete}`); + // world.sendMessage(`isOutOfBounds: ${isOutOfBounds}`); + + if (isOutOfBounds) { + pupeteer.sendWorldMessage("%message.level2.outOfBounds"); + pupeteer.setTitleTimed("%message.level2.outOfBounds", 2.5); + // world.getDimension("overworld").runCommand("/kill @e[type=agent]"); + world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s"); + + teleportAgent(level2StartPosition); + return false; + } else if (isComplete) { + return true; + } + return false; + } +); + +export default level2; diff --git a/scripts/levels/level2/mission2.ts b/scripts/levels/level2/mission2.ts new file mode 100644 index 0000000..2adee90 --- /dev/null +++ b/scripts/levels/level2/mission2.ts @@ -0,0 +1,73 @@ +import { Vector3, world } from "@minecraft/server"; +import Level from "../../Commandeer/level/level"; +import pupeteer from "../../Commandeer/pupeteer"; +import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils"; +import { startLevel } from "../../Commandeer/utils/levelUtils"; +import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils"; +import { mindKeeper, CURRENT_LEVEL } from "../../main"; +import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block"; +const Level3CommandBlockPos: Vector3 = vector3(-133, 68, 281); + +const level3StartPosition: Vector3 = vector3(-133, 68, 265); +const Level3EndPosition: Vector3 = vector3(-148, 68, 265); + +const level3ResetCommandBlockPos: Vector3 = vector3(56, 68, 211); +const level3: Level = new Level( + () => { + pupeteer.sendWorldMessage("%message.level3.started"); + pupeteer.setTitleTimed("%message.level3.name", 2.5); + startLevel(Level3CommandBlockPos); + teleportAgent(level3StartPosition); + }, + () => { + pupeteer.setActionBar("%message.level3.make"); + }, + () => { + pupeteer.clearActionBar(); + pupeteer.sendWorldMessage("%message.level3.complete"); + pupeteer.setTitleTimed("%message.level3.complete", 2.5); + + mindKeeper.increment(CURRENT_LEVEL); + }, + () => { + let isComplete = false; + let isOutOfBounds = false; + + //6 blocks lower is lava + + let agentPos = getAgentLocation(); + let blockLava = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -7, 0))); + let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0))); + + if ( + blockLava && + blockLava.type.id === MinecraftBlockTypes.Lava && + blockAir && + blockAir.type.id === MinecraftBlockTypes.Air + ) { + isOutOfBounds = true; + } + + if (isAgentAt(Level3EndPosition)) { + isComplete = true; + } + + // world.sendMessage(`isComplete: ${isComplete}`); + // world.sendMessage(`isOutOfBounds: ${isOutOfBounds}`); + + if (isOutOfBounds) { + pupeteer.sendWorldMessage("%message.level3.outOfBounds"); + pupeteer.setTitleTimed("%message.level3.outOfBounds", 2.5); + // world.getDimension("overworld").runCommand("/kill @e[type=agent]"); + world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s"); + + teleportAgent(level3StartPosition); + return false; + } else if (isComplete) { + return true; + } + return false; + } +); + +export default level3; diff --git a/scripts/levels/level2/mission3.ts b/scripts/levels/level2/mission3.ts new file mode 100644 index 0000000..9e03c73 --- /dev/null +++ b/scripts/levels/level2/mission3.ts @@ -0,0 +1,72 @@ +import { Vector3, world } from "@minecraft/server"; +import Level from "../../Commandeer/level/level"; +import pupeteer from "../../Commandeer/pupeteer"; +import { teleportAgent, isAgentAt, getAgentLocation, getAgent } from "../../Commandeer/utils/agentUtils"; +import { startLevel } from "../../Commandeer/utils/levelUtils"; +import { vector3, Vector3Add, Vector3ToCommandString } from "../../Commandeer/utils/vectorUtils"; +import { mindKeeper, CURRENT_LEVEL } from "../../main"; +import { MinecraftBlockTypes } from "../../vanilla-data/mojang-block"; +const Level4CommandBlockPos: Vector3 = vector3(-161, 68, 291); +const level4StartPosition: Vector3 = vector3(-161, 62, 261); +const level4EndPosition: Vector3 = vector3(-174, 62, 268); + +const level4ResetCommandBlockPos: Vector3 = vector3(56, 68, 211); +const level4: Level = new Level( + () => { + pupeteer.sendWorldMessage("%message.level4.started"); + pupeteer.setTitleTimed("%message.level4.name", 2.5); + startLevel(Level4CommandBlockPos); + teleportAgent(level4StartPosition); + }, + () => { + pupeteer.setActionBar("%message.level4.make"); + }, + () => { + pupeteer.clearActionBar(); + pupeteer.sendWorldMessage("%message.level4.complete"); + pupeteer.setTitleTimed("%message.level4.complete", 2.5); + + mindKeeper.increment(CURRENT_LEVEL); + }, + () => { + let isComplete = false; + let isOutOfBounds = false; + + //6 blocks lower is lava + + let agentPos = getAgentLocation(); + let blockLava = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -7, 0))); + let blockAir = world.getDimension("overworld").getBlock(Vector3Add(agentPos, vector3(0, -1, 0))); + + if ( + blockLava && + blockLava.type.id === MinecraftBlockTypes.Lava && + blockAir && + blockAir.type.id === MinecraftBlockTypes.Air + ) { + isOutOfBounds = true; + } + + if (isAgentAt(level4EndPosition)) { + isComplete = true; + } + + // world.sendMessage(`isComplete: ${isComplete}`); + // world.sendMessage(`isOutOfBounds: ${isOutOfBounds}`); + + if (isOutOfBounds) { + pupeteer.sendWorldMessage("%message.level4.outOfBounds"); + pupeteer.setTitleTimed("%message.level4.outOfBounds", 2.5); + // world.getDimension("overworld").runCommand("/kill @e[type=agent]"); + world.getDimension("overworld").runCommand("execute as @p run codebuilder runtime stop @s"); + + teleportAgent(level4StartPosition); + return false; + } else if (isComplete) { + return true; + } + return false; + } +); + +export default level4; diff --git a/scripts/levels/levelIntro.ts b/scripts/levels/levelIntro.ts new file mode 100644 index 0000000..06eda8f --- /dev/null +++ b/scripts/levels/levelIntro.ts @@ -0,0 +1,115 @@ +import { BlockType, Vector3, world } from "@minecraft/server"; +import Level from "../Commandeer/level/level"; +import { leverOn } from "../Commandeer/level/levelTypes"; +import { teleportAgent, isAgentAt } from "../Commandeer/utils/agentUtils"; +import { startLevel } from "../Commandeer/utils/levelUtils"; +import { vector3 } from "../Commandeer/utils/vectorUtils"; +import { levelIntroConditions } from "../levelConditions/levelIntro"; +import { CURRENT_LEVEL, mindKeeper } from "../main"; +import Pupeteer from "../Commandeer/pupeteer"; +import { MinecraftBlockTypes } from "../vanilla-data/mojang-block"; + +// const levelIntroCommandBlockPos: Vector3 = vector3(58, 66, 276); +// const levelIntroStartPosition: Vector3 = vector3(28, 70, 269); +// const levelIntroEndPosition: Vector3 = vector3(39, 70, 269); +const buttonPositions: Vector3[] = [ + vector3(2471, 11, 106), + vector3(2469, 11, 106), + vector3(2468, 11, 106), + vector3(2464, 11, 106), +]; + +const blockPositions: Vector3[] = [ + vector3(2471, 12, 108), + vector3(2469, 12, 108), + vector3(2468, 12, 108), + vector3(2464, 12, 108), +]; + +let currentBlockSequence: string[] = []; +let currentBlockSeuqenceIndex: number[] = []; + +const blockCycle: string[] = [ + MinecraftBlockTypes.RedstoneBlock, + MinecraftBlockTypes.GoldBlock, + MinecraftBlockTypes.DiamondBlock, + MinecraftBlockTypes.EmeraldBlock, + MinecraftBlockTypes.LapisBlock, +]; + +let buttonPressed: boolean[] = buttonPositions.map(() => false); + +const levelIntro: Level = new Level( + () => { + Pupeteer.sendWorldMessage("%message.intro.started"); + Pupeteer.setTitleTimed("%message.intro.started", 2.5); + // startLevel(levelIntroCommandBlockPos); + // teleportAgent(levelIntroStartPosition); + blockPositions.forEach((pos) => { + let block = world.getDimension("overworld").getBlock(pos); + let index = blockPositions.indexOf(pos); + let blockType = block!.type; + currentBlockSequence[index] = blockType.id; + }); + }, + () => { + Pupeteer.setActionBar("%message.intro.make"); + + buttonPositions.forEach((pos) => { + let block = world.getDimension("overworld").getBlock(pos); + if (!block) return; + let index = buttonPositions.indexOf(pos); + let prevState = buttonPressed[index]; + let currentState = block!.getRedstonePower()! > 0; + + if (currentState && !prevState) { + buttonPressed[index] = true; + //NextBlock + let nextBlock = currentBlockSequence[index]; + let nextIndex = blockCycle.indexOf(nextBlock); + nextIndex = (nextIndex + 1) % blockCycle.length; + currentBlockSequence[index] = blockCycle[nextIndex]; + //Update the block + let blockPos = blockPositions[index]; + world.getDimension("overworld").getBlock(blockPos)!.setType(blockCycle[nextIndex]); + } + + if (!currentState && prevState) { + buttonPressed[index] = false; + } + }); + }, + () => { + Pupeteer.clearActionBar(); + world.sendMessage("%message.intro.done"); + Pupeteer.setTitleTimed("%message.intro.done", 2.5); + + mindKeeper.increment(CURRENT_LEVEL); + }, + () => { + let counter = 0; + let isComplete = true; + levelIntroConditions.conditions.forEach((condition) => { + let blockInworld = world.getDimension("overworld").getBlock(condition.position); + if (blockInworld?.type.id !== condition.block) { + isComplete = false; + counter++; + } + }); + world.sendMessage(`%message.intro.progress ${counter}/${levelIntroConditions.conditions.length}`); + world.sendMessage(`isComplete: ${isComplete}`); + if (isComplete) { + return true; + } + return false; + }, + () => { + blockPositions.forEach((pos) => { + let block = world.getDimension("overworld").getBlock(pos); + let randomBlock = blockCycle[Math.floor(Math.random() * blockCycle.length)]; + block!.setType(randomBlock); + }); + } +); + +export default levelIntro; diff --git a/scripts/main.ts b/scripts/main.ts new file mode 100644 index 0000000..24837e7 --- /dev/null +++ b/scripts/main.ts @@ -0,0 +1,299 @@ +import { + world, + system, + Vector3, + MolangVariableMap, + ChatSendAfterEvent, + Dimension, + TicksPerSecond, + BlockVolume, +} from "@minecraft/server"; +import { Mindkeeper, StoreType } from "./Commandeer/mindKeeper"; +import Pupeteer from "./Commandeer/pupeteer"; +import { Vector3ToCommandString, Vector3ToFancyString, vector3 } from "./Commandeer/utils/vectorUtils"; +import { delay } from "./Commandeer/utils/waitUtil"; +import { spawnParticle } from "./Commandeer/utils/particleUtils"; +import { TrailMaker } from "./Commandeer/trail/trailMaker"; +import * as CCTrigger from "./Commandeer/Trigger/CCTrigger"; +import { Commands } from "./Commandeer/command/command"; +import { Trail } from "./Commandeer/trail/trailEngine"; +import { startTrail } from "./trails/startTrail"; +import level1 from "./levels/level1/mission1"; +import level2 from "./levels/level2/mission1"; +import level3 from "./levels/level2/mission2"; +import level4 from "./levels/level2/mission3"; +import { MinecraftBlockTypes } from "./vanilla-data/mojang-block"; +import { TransitionTrailToLevel1 } from "./trails/TransitionTrailToLevel1"; +import { TransitionTrailToLevel2 } from "./trails/TransitionTrailToLevel2"; +import { TransitionTrailToLevel3 } from "./trails/TransitionTrailToLevel3"; + +const mindKeeper = new Mindkeeper(world); +const trailMaker: TrailMaker.Maker = new TrailMaker.Maker(); +const triggerManager = new CCTrigger.Manager(mindKeeper); +const CURRENT_LEVEL = "currentLevel"; +const AGENT_ID = "agentid"; +const PREFIX = "!"; +export { mindKeeper, CURRENT_LEVEL, triggerManager }; + +triggerManager.RegisterFunctionTrigger("resetPath", (event) => { + resetLightPath(); +}); + +async function resetLightPath() { + world.getDimension("overworld").runCommand("/fill 2467 9 87 2468 9 105 air"); +} + +let isIntroToLevel1Sqeuence = false; +let isMakingLevel1 = false; +let isMakingLevel2 = false; +let isMakingLevel3 = false; +let isMakingLevel4 = false; + +let introTrail: Trail = new Trail("introTrail", 4, 4); +introTrail.fromTrail(startTrail); + +let transitionTrail1 = new Trail("transitionTrail1", 2, 2); +transitionTrail1.fromTrail(TransitionTrailToLevel1); + +let transitionTrail2 = new Trail("transitionTrail2", 2, 2); +transitionTrail2.fromTrail(TransitionTrailToLevel2); + +let transitionTrail3 = new Trail("transitionTrail3", 2, 2); +transitionTrail3.fromTrail(TransitionTrailToLevel3); + +const DEVELOPER_MODE = true; +let tickCounter = 0; +system.runInterval(async () => { + tickCounter++; + if (mindKeeper.initialised) { + trailMaker.Update(); + if (tickCounter % 2 == 0) { + triggerManager.Update(); + } + + const currentLevel = mindKeeper.get(CURRENT_LEVEL); + switch (currentLevel) { + case 0: + Pupeteer.setActionBar("Leave the treehouse and go down the ladder."); + introTrail.spawnNext(); + break; + case 1: + Pupeteer.setActionBar("Trigger1 works"); + if (!isMakingLevel1) { + isMakingLevel1 = true; + world.sendMessage("Starting level1"); + level1.update(); + } + break; + case 2: + Pupeteer.setActionBar("Go to the next level."); + transitionTrail1.spawnNext(); + break; + case 3: + Pupeteer.setActionBar("Trigger2 works"); + if (!isMakingLevel2) { + isMakingLevel2 = true; + world.sendMessage("Starting level2"); + level2.update(); + } + break; + case 4: + Pupeteer.setActionBar("Trigger3 works"); + if (!isMakingLevel3) { + isMakingLevel3 = true; + world.sendMessage("Starting level3"); + level3.update(); + } + break; + case 5: + Pupeteer.setActionBar("Trigger4 works"); + if (!isMakingLevel4) { + isMakingLevel4 = true; + world.sendMessage("Starting level4"); + level4.update(); + } + break; + case 6: + break; + } + } +}); + +triggerManager.RegisterFunctionTrigger("lightPath", (event) => { + lightUpPath(); +}); + +async function lightUpPath() { + let overworld: Dimension = world.getDimension("overworld"); + let pos1 = vector3(2467, 9, 87); + let pos2 = vector3(2468, 9, 105); + + for (let z = pos2.z; z >= pos1.z; z--) { + let volume: BlockVolume = new BlockVolume(vector3(pos1.x, pos1.y, z), vector3(pos1.x + 1, pos1.y, z)); + overworld.fillBlocks(volume, MinecraftBlockTypes.RedstoneBlock); + await delay(4); + } +} + +world.afterEvents.worldInitialize.subscribe(() => { + mindKeeper.registerStore(CURRENT_LEVEL, StoreType.number); + mindKeeper.registerStore(AGENT_ID, StoreType.string); + triggerManager.RegisterStores(); + mindKeeper.registerToWorld(); + + triggerManager.Load(); +}); + +world.beforeEvents.itemUseOn.subscribe((event) => { + trailMaker.OnItemUse(event); + triggerManager.OnItemUse(event); +}); + +async function randomExplosions() { + let pos1 = vector3(2465, 10, 82); + let pos2 = vector3(2471, 18, 90); + + for (let i = 0; i < 5; i++) { + let pos = vector3( + pos1.x + Math.random() * (pos2.x - pos1.x), + pos1.y + Math.random() * (pos2.y - pos1.y), + pos1.z + Math.random() * (pos2.z - pos1.z) + ); + + system.run(() => { + spawnParticle(pos, "minecraft:huge_explosion_emitter", new MolangVariableMap()); + }); + } +} + +world.afterEvents.chatSend.subscribe(async (event: ChatSendAfterEvent) => { + const command = event.message.split(" ")[0]; + + trailMaker.OnChat(event); + mindKeeper.chatCommands(event); + triggerManager.OnChat(event); + + if (command === "!reset") { + world.sendMessage("Resetting"); + + mindKeeper.set(CURRENT_LEVEL, 0); + + resetLightPath(); + + level1.reset(); + level2.reset(); + level3.reset(); + level4.reset(); + + isIntroToLevel1Sqeuence = false; + } +}); + +system.afterEvents.scriptEventReceive.subscribe((event) => { + if (event.id == "cc:getId") { + let id = event.message; + world.sendMessage("Script got the id " + id); + mindKeeper.set(AGENT_ID, id); + } +}); + +class ClonePos { + point1: Vector3; + point2: Vector3; + + constructor(point1: Vector3, point2: Vector3) { + this.point1 = point1; + this.point2 = point2; + } +} + +triggerManager.RegisterFunctionTrigger("BottomTreeHouse", async (event) => { + if (mindKeeper.get(CURRENT_LEVEL) == 0) { + // mindKeeper.increment(CURRENT_LEVEL); + mindKeeper.set(CURRENT_LEVEL, 1); + } +}); + +triggerManager.RegisterFunctionTrigger("PastLevel1", async (event) => { + if (mindKeeper.get(CURRENT_LEVEL) == 0) { + // mindKeeper.increment(CURRENT_LEVEL); + mindKeeper.set(CURRENT_LEVEL, 2); + } +}); + +triggerManager.RegisterFunctionTrigger("PastLevel2", async (event) => { + if (mindKeeper.get(CURRENT_LEVEL) == 0) { + // mindKeeper.increment(CURRENT_LEVEL); + mindKeeper.set(CURRENT_LEVEL, 3); + } +}); + +triggerManager.RegisterFunctionTrigger("PastLevel3", async (event) => { + if (mindKeeper.get(CURRENT_LEVEL) == 0) { + // mindKeeper.increment(CURRENT_LEVEL); + mindKeeper.set(CURRENT_LEVEL, 4); + } +}); + +Commands.register(PREFIX, "info", (arg) => { + world.sendMessage("-----------------"); + world.sendMessage("Current level: " + mindKeeper.get(CURRENT_LEVEL)); + world.sendMessage("Agent ID: " + mindKeeper.get(AGENT_ID)); + world.sendMessage("Engine Version: 1.0.2"); + world.sendMessage("Engine is running"); + world.sendMessage("Active players: " + world.getPlayers().length); + world.sendMessage("Current dimension: " + arg.player.dimension.id); + world.sendMessage("Current position: " + Vector3ToFancyString(arg.player.location)); + world.sendMessage("-----------------"); +}); + +async function SetFrame(frame: ClonePos, destination: Vector3) { + await world + .getDimension("overworld") + .runCommandAsync( + `/clone ${Vector3ToCommandString(frame.point1)} ${Vector3ToCommandString(frame.point2)} ${Vector3ToCommandString( + destination + )}` + ); +} + +let animationPlaying = false; +async function playAnimation( + frames: ClonePos[], + delayTime: number, + reverse: boolean, + destination: Vector3, + force: boolean = false +) { + if (animationPlaying && !force) { + world.sendMessage("Animation already playing"); + return; + } + let frameCount = frames.length; + if (!force) { + animationPlaying = true; + } + + for (let i = 0; i < frameCount; i++) { + let frame = reverse ? frames[frameCount - i - 1] : frames[i]; + await world + .getDimension("overworld") + .runCommandAsync( + `/clone ${Vector3ToCommandString(frame.point1)} ${Vector3ToCommandString( + frame.point2 + )} ${Vector3ToCommandString(destination)}` + ); + await delay(delayTime); + } + if (!force) { + animationPlaying = false; + } +} + +system.afterEvents.scriptEventReceive.subscribe((event) => { + if (event.id == "cc:getId") { + let id = event.message; + world.sendMessage("Script got the id " + id); + mindKeeper.set(AGENT_ID, id); + } +}); diff --git a/scripts/trails/TransitionTrailToLevel1.ts b/scripts/trails/TransitionTrailToLevel1.ts new file mode 100644 index 0000000..a9cc712 --- /dev/null +++ b/scripts/trails/TransitionTrailToLevel1.ts @@ -0,0 +1,47 @@ +import { Vector3 } from "@minecraft/server"; +import { TrailType } from "../Commandeer/trail/trailTypes"; +import { vector3 } from "../Commandeer/utils/vectorUtils"; + +let TransitionTrailToLevel1: TrailType = { + name: "TransitionTrailToLevel1", + points: [ + { index: 0, position: vector3(-54, 88.1, 265.5) }, + { index: 1, position: vector3(-55, 88.1, 265.5) }, + { index: 2, position: vector3(-56, 88.1, 265.5) }, + { index: 3, position: vector3(-57, 88.1, 265.5) }, + { index: 4, position: vector3(-58, 88.1, 265.5) }, + { index: 5, position: vector3(-58, 87.1, 265.5) }, + { index: 6, position: vector3(-58, 86.1, 265.5) }, + { index: 7, position: vector3(-58, 85.1, 265.5) }, + { index: 8, position: vector3(-58, 84.1, 265.5) }, + { index: 9, position: vector3(-58, 83.1, 265.5) }, + { index: 10, position: vector3(-58, 82.1, 265.5) }, + { index: 11, position: vector3(-58, 81.1, 265.5) }, + { index: 12, position: vector3(-58, 80.1, 265.5) }, + { index: 13, position: vector3(-58, 79.1, 265.5) }, + { index: 14, position: vector3(-58, 78.1, 265.5) }, + { index: 15, position: vector3(-58, 77.1, 265.5) }, + { index: 16, position: vector3(-58, 76.1, 265.5) }, + { index: 17, position: vector3(-58, 75.1, 265.5) }, + { index: 18, position: vector3(-58, 74.1, 265.5) }, + { index: 19, position: vector3(-58, 74.1, 264.5) }, + { index: 20, position: vector3(-59, 74.1, 264.5) }, + { index: 21, position: vector3(-59, 74.1, 263.5) }, + { index: 22, position: vector3(-60, 74.1, 263.5) }, + { index: 23, position: vector3(-61, 74.1, 263.5) }, + { index: 24, position: vector3(-62, 74.1, 263.5) }, + { index: 25, position: vector3(-63, 74.1, 263.5) }, + { index: 26, position: vector3(-63, 73.1, 263.5) }, + { index: 27, position: vector3(-63, 72.1, 263.5) }, + { index: 28, position: vector3(-63, 71.1, 263.5) }, + { index: 29, position: vector3(-64, 71.1, 263.5) }, + { index: 30, position: vector3(-65, 71.1, 263.5) }, + { index: 31, position: vector3(-66, 71.1, 263.5) }, + { index: 32, position: vector3(-67, 71.1, 263.5) }, + { index: 33, position: vector3(-68, 71.1, 263.5) }, + { index: 34, position: vector3(-69, 71.1, 263.5) }, + { index: 35, position: vector3(-70, 71.1, 263.5) }, + ], +}; + +export { TransitionTrailToLevel1 }; diff --git a/scripts/trails/TransitionTrailToLevel2.ts b/scripts/trails/TransitionTrailToLevel2.ts new file mode 100644 index 0000000..c28ed15 --- /dev/null +++ b/scripts/trails/TransitionTrailToLevel2.ts @@ -0,0 +1,47 @@ +import { Vector3 } from "@minecraft/server"; +import { TrailType } from "../Commandeer/trail/trailTypes"; +import { vector3 } from "../Commandeer/utils/vectorUtils"; + +let TransitionTrailToLevel2: TrailType = { + name: "TransitionTrailToLevel2", + points: [ + { index: 0, position: vector3(-54, 88.1, 265.5) }, + { index: 1, position: vector3(-55, 88.1, 265.5) }, + { index: 2, position: vector3(-56, 88.1, 265.5) }, + { index: 3, position: vector3(-57, 88.1, 265.5) }, + { index: 4, position: vector3(-58, 88.1, 265.5) }, + { index: 5, position: vector3(-58, 87.1, 265.5) }, + { index: 6, position: vector3(-58, 86.1, 265.5) }, + { index: 7, position: vector3(-58, 85.1, 265.5) }, + { index: 8, position: vector3(-58, 84.1, 265.5) }, + { index: 9, position: vector3(-58, 83.1, 265.5) }, + { index: 10, position: vector3(-58, 82.1, 265.5) }, + { index: 11, position: vector3(-58, 81.1, 265.5) }, + { index: 12, position: vector3(-58, 80.1, 265.5) }, + { index: 13, position: vector3(-58, 79.1, 265.5) }, + { index: 14, position: vector3(-58, 78.1, 265.5) }, + { index: 15, position: vector3(-58, 77.1, 265.5) }, + { index: 16, position: vector3(-58, 76.1, 265.5) }, + { index: 17, position: vector3(-58, 75.1, 265.5) }, + { index: 18, position: vector3(-58, 74.1, 265.5) }, + { index: 19, position: vector3(-58, 74.1, 264.5) }, + { index: 20, position: vector3(-59, 74.1, 264.5) }, + { index: 21, position: vector3(-59, 74.1, 263.5) }, + { index: 22, position: vector3(-60, 74.1, 263.5) }, + { index: 23, position: vector3(-61, 74.1, 263.5) }, + { index: 24, position: vector3(-62, 74.1, 263.5) }, + { index: 25, position: vector3(-63, 74.1, 263.5) }, + { index: 26, position: vector3(-63, 73.1, 263.5) }, + { index: 27, position: vector3(-63, 72.1, 263.5) }, + { index: 28, position: vector3(-63, 71.1, 263.5) }, + { index: 29, position: vector3(-64, 71.1, 263.5) }, + { index: 30, position: vector3(-65, 71.1, 263.5) }, + { index: 31, position: vector3(-66, 71.1, 263.5) }, + { index: 32, position: vector3(-67, 71.1, 263.5) }, + { index: 33, position: vector3(-68, 71.1, 263.5) }, + { index: 34, position: vector3(-69, 71.1, 263.5) }, + { index: 35, position: vector3(-70, 71.1, 263.5) }, + ], +}; + +export { TransitionTrailToLevel2 }; diff --git a/scripts/trails/TransitionTrailToLevel3.ts b/scripts/trails/TransitionTrailToLevel3.ts new file mode 100644 index 0000000..0fefd41 --- /dev/null +++ b/scripts/trails/TransitionTrailToLevel3.ts @@ -0,0 +1,47 @@ +import { Vector3 } from "@minecraft/server"; +import { TrailType } from "../Commandeer/trail/trailTypes"; +import { vector3 } from "../Commandeer/utils/vectorUtils"; + +let TransitionTrailToLevel3: TrailType = { + name: "TransitionTrailToLevel3", + points: [ + { index: 0, position: vector3(-54, 88.1, 265.5) }, + { index: 1, position: vector3(-55, 88.1, 265.5) }, + { index: 2, position: vector3(-56, 88.1, 265.5) }, + { index: 3, position: vector3(-57, 88.1, 265.5) }, + { index: 4, position: vector3(-58, 88.1, 265.5) }, + { index: 5, position: vector3(-58, 87.1, 265.5) }, + { index: 6, position: vector3(-58, 86.1, 265.5) }, + { index: 7, position: vector3(-58, 85.1, 265.5) }, + { index: 8, position: vector3(-58, 84.1, 265.5) }, + { index: 9, position: vector3(-58, 83.1, 265.5) }, + { index: 10, position: vector3(-58, 82.1, 265.5) }, + { index: 11, position: vector3(-58, 81.1, 265.5) }, + { index: 12, position: vector3(-58, 80.1, 265.5) }, + { index: 13, position: vector3(-58, 79.1, 265.5) }, + { index: 14, position: vector3(-58, 78.1, 265.5) }, + { index: 15, position: vector3(-58, 77.1, 265.5) }, + { index: 16, position: vector3(-58, 76.1, 265.5) }, + { index: 17, position: vector3(-58, 75.1, 265.5) }, + { index: 18, position: vector3(-58, 74.1, 265.5) }, + { index: 19, position: vector3(-58, 74.1, 264.5) }, + { index: 20, position: vector3(-59, 74.1, 264.5) }, + { index: 21, position: vector3(-59, 74.1, 263.5) }, + { index: 22, position: vector3(-60, 74.1, 263.5) }, + { index: 23, position: vector3(-61, 74.1, 263.5) }, + { index: 24, position: vector3(-62, 74.1, 263.5) }, + { index: 25, position: vector3(-63, 74.1, 263.5) }, + { index: 26, position: vector3(-63, 73.1, 263.5) }, + { index: 27, position: vector3(-63, 72.1, 263.5) }, + { index: 28, position: vector3(-63, 71.1, 263.5) }, + { index: 29, position: vector3(-64, 71.1, 263.5) }, + { index: 30, position: vector3(-65, 71.1, 263.5) }, + { index: 31, position: vector3(-66, 71.1, 263.5) }, + { index: 32, position: vector3(-67, 71.1, 263.5) }, + { index: 33, position: vector3(-68, 71.1, 263.5) }, + { index: 34, position: vector3(-69, 71.1, 263.5) }, + { index: 35, position: vector3(-70, 71.1, 263.5) }, + ], +}; + +export { TransitionTrailToLevel3 }; diff --git a/scripts/trails/startTrail.ts b/scripts/trails/startTrail.ts new file mode 100644 index 0000000..3bb9f7b --- /dev/null +++ b/scripts/trails/startTrail.ts @@ -0,0 +1,47 @@ +import { Vector3 } from "@minecraft/server"; +import { TrailType } from "../Commandeer/trail/trailTypes"; +import { vector3 } from "../Commandeer/utils/vectorUtils"; + +let startTrail: TrailType = { + name: "startTrail", + points: [ + { index: 0, position: vector3(-54, 88.1, 265.5) }, + { index: 1, position: vector3(-55, 88.1, 265.5) }, + { index: 2, position: vector3(-56, 88.1, 265.5) }, + { index: 3, position: vector3(-57, 88.1, 265.5) }, + { index: 4, position: vector3(-58, 88.1, 265.5) }, + { index: 5, position: vector3(-58, 87.1, 265.5) }, + { index: 6, position: vector3(-58, 86.1, 265.5) }, + { index: 7, position: vector3(-58, 85.1, 265.5) }, + { index: 8, position: vector3(-58, 84.1, 265.5) }, + { index: 9, position: vector3(-58, 83.1, 265.5) }, + { index: 10, position: vector3(-58, 82.1, 265.5) }, + { index: 11, position: vector3(-58, 81.1, 265.5) }, + { index: 12, position: vector3(-58, 80.1, 265.5) }, + { index: 13, position: vector3(-58, 79.1, 265.5) }, + { index: 14, position: vector3(-58, 78.1, 265.5) }, + { index: 15, position: vector3(-58, 77.1, 265.5) }, + { index: 16, position: vector3(-58, 76.1, 265.5) }, + { index: 17, position: vector3(-58, 75.1, 265.5) }, + { index: 18, position: vector3(-58, 74.1, 265.5) }, + { index: 19, position: vector3(-58, 74.1, 264.5) }, + { index: 20, position: vector3(-59, 74.1, 264.5) }, + { index: 21, position: vector3(-59, 74.1, 263.5) }, + { index: 22, position: vector3(-60, 74.1, 263.5) }, + { index: 23, position: vector3(-61, 74.1, 263.5) }, + { index: 24, position: vector3(-62, 74.1, 263.5) }, + { index: 25, position: vector3(-63, 74.1, 263.5) }, + { index: 26, position: vector3(-63, 73.1, 263.5) }, + { index: 27, position: vector3(-63, 72.1, 263.5) }, + { index: 28, position: vector3(-63, 71.1, 263.5) }, + { index: 29, position: vector3(-64, 71.1, 263.5) }, + { index: 30, position: vector3(-65, 71.1, 263.5) }, + { index: 31, position: vector3(-66, 71.1, 263.5) }, + { index: 32, position: vector3(-67, 71.1, 263.5) }, + { index: 33, position: vector3(-68, 71.1, 263.5) }, + { index: 34, position: vector3(-69, 71.1, 263.5) }, + { index: 35, position: vector3(-70, 71.1, 263.5) }, + ], +}; + +export { startTrail }; diff --git a/scripts/triggers.ts b/scripts/triggers.ts new file mode 100644 index 0000000..dd2ff48 --- /dev/null +++ b/scripts/triggers.ts @@ -0,0 +1,48 @@ +import { BlockVolume, Dimension, world } from "@minecraft/server"; +import { CCTrigger } from "./Commandeer/Trigger/CCTrigger"; +import { mindKeeper, triggerManager } from "./main"; +import { vector3 } from "./Commandeer/utils/vectorUtils"; +import { delay } from "./Commandeer/utils/waitUtil"; +import { MinecraftBlockTypes } from "./vanilla-data/mojang-block"; + +// const triggerManager = new CCTrigger.Manager(mindKeeper); + +triggerManager.RegisterFunctionTrigger("test", (event) => { + world.sendMessage("Wow, this is a trigger :O"); + world.sendMessage("This was caused by " + event.player.name); +}); + +triggerManager.RegisterFunctionTrigger("lightPath", (event) => { + lightUpPath(); +}); + +triggerManager.RegisterFunctionTrigger("resetPath", (event) => { + resetLightPath(); +}); + +triggerManager.RegisterFunctionTrigger("test2", (event) => { + world.sendMessage("Wow, this is another trigger :O"); +}); + +triggerManager.RegisterFunctionTrigger("die", (event) => { + world.sendMessage("You died"); + event.player.applyDamage(1000); +}); + +//fill 2467 9 87 2468 9 105 redstone_block +async function lightUpPath() { + let overworld: Dimension = world.getDimension("overworld"); + let pos1 = vector3(2467, 9, 87); + let pos2 = vector3(2468, 9, 105); + + for (let z = pos2.z; z >= pos1.z; z--) { + let volume: BlockVolume = new BlockVolume(vector3(pos1.x, pos1.y, z), vector3(pos1.x + 1, pos1.y, z)); + overworld.fillBlocks(volume, MinecraftBlockTypes.RedstoneBlock); + await delay(4); + } + // let pos2 = vector3(2468, 9, 105); +} + +async function resetLightPath() { + world.getDimension("overworld").runCommand("/fill 2467 9 87 2468 9 105 air"); +} diff --git a/scripts/vanilla-data/mojang-biome.ts b/scripts/vanilla-data/mojang-biome.ts new file mode 100644 index 0000000..a8c1ca9 --- /dev/null +++ b/scripts/vanilla-data/mojang-biome.ts @@ -0,0 +1,95 @@ +/** + * All possible MinecraftBiomeTypes + */ +export enum MinecraftBiomeTypes { + BambooJungle = "minecraft:bamboo_jungle", + BambooJungleHills = "minecraft:bamboo_jungle_hills", + BasaltDeltas = "minecraft:basalt_deltas", + Beach = "minecraft:beach", + BirchForest = "minecraft:birch_forest", + BirchForestHills = "minecraft:birch_forest_hills", + BirchForestHillsMutated = "minecraft:birch_forest_hills_mutated", + BirchForestMutated = "minecraft:birch_forest_mutated", + CherryGrove = "minecraft:cherry_grove", + ColdBeach = "minecraft:cold_beach", + ColdOcean = "minecraft:cold_ocean", + ColdTaiga = "minecraft:cold_taiga", + ColdTaigaHills = "minecraft:cold_taiga_hills", + ColdTaigaMutated = "minecraft:cold_taiga_mutated", + CrimsonForest = "minecraft:crimson_forest", + DeepColdOcean = "minecraft:deep_cold_ocean", + DeepDark = "minecraft:deep_dark", + DeepFrozenOcean = "minecraft:deep_frozen_ocean", + DeepLukewarmOcean = "minecraft:deep_lukewarm_ocean", + DeepOcean = "minecraft:deep_ocean", + DeepWarmOcean = "minecraft:deep_warm_ocean", + Desert = "minecraft:desert", + DesertHills = "minecraft:desert_hills", + DesertMutated = "minecraft:desert_mutated", + DripstoneCaves = "minecraft:dripstone_caves", + ExtremeHills = "minecraft:extreme_hills", + ExtremeHillsEdge = "minecraft:extreme_hills_edge", + ExtremeHillsMutated = "minecraft:extreme_hills_mutated", + ExtremeHillsPlusTrees = "minecraft:extreme_hills_plus_trees", + ExtremeHillsPlusTreesMutated = "minecraft:extreme_hills_plus_trees_mutated", + FlowerForest = "minecraft:flower_forest", + Forest = "minecraft:forest", + ForestHills = "minecraft:forest_hills", + FrozenOcean = "minecraft:frozen_ocean", + FrozenPeaks = "minecraft:frozen_peaks", + FrozenRiver = "minecraft:frozen_river", + Grove = "minecraft:grove", + Hell = "minecraft:hell", + IceMountains = "minecraft:ice_mountains", + IcePlains = "minecraft:ice_plains", + IcePlainsSpikes = "minecraft:ice_plains_spikes", + JaggedPeaks = "minecraft:jagged_peaks", + Jungle = "minecraft:jungle", + JungleEdge = "minecraft:jungle_edge", + JungleEdgeMutated = "minecraft:jungle_edge_mutated", + JungleHills = "minecraft:jungle_hills", + JungleMutated = "minecraft:jungle_mutated", + LegacyFrozenOcean = "minecraft:legacy_frozen_ocean", + LukewarmOcean = "minecraft:lukewarm_ocean", + LushCaves = "minecraft:lush_caves", + MangroveSwamp = "minecraft:mangrove_swamp", + Meadow = "minecraft:meadow", + MegaTaiga = "minecraft:mega_taiga", + MegaTaigaHills = "minecraft:mega_taiga_hills", + Mesa = "minecraft:mesa", + MesaBryce = "minecraft:mesa_bryce", + MesaPlateau = "minecraft:mesa_plateau", + MesaPlateauMutated = "minecraft:mesa_plateau_mutated", + MesaPlateauStone = "minecraft:mesa_plateau_stone", + MesaPlateauStoneMutated = "minecraft:mesa_plateau_stone_mutated", + MushroomIsland = "minecraft:mushroom_island", + MushroomIslandShore = "minecraft:mushroom_island_shore", + Ocean = "minecraft:ocean", + Plains = "minecraft:plains", + RedwoodTaigaHillsMutated = "minecraft:redwood_taiga_hills_mutated", + RedwoodTaigaMutated = "minecraft:redwood_taiga_mutated", + River = "minecraft:river", + RoofedForest = "minecraft:roofed_forest", + RoofedForestMutated = "minecraft:roofed_forest_mutated", + Savanna = "minecraft:savanna", + SavannaMutated = "minecraft:savanna_mutated", + SavannaPlateau = "minecraft:savanna_plateau", + SavannaPlateauMutated = "minecraft:savanna_plateau_mutated", + SnowySlopes = "minecraft:snowy_slopes", + SoulsandValley = "minecraft:soulsand_valley", + StoneBeach = "minecraft:stone_beach", + StonyPeaks = "minecraft:stony_peaks", + SunflowerPlains = "minecraft:sunflower_plains", + Swampland = "minecraft:swampland", + SwamplandMutated = "minecraft:swampland_mutated", + Taiga = "minecraft:taiga", + TaigaHills = "minecraft:taiga_hills", + TaigaMutated = "minecraft:taiga_mutated", + TheEnd = "minecraft:the_end", + WarmOcean = "minecraft:warm_ocean", + WarpedForest = "minecraft:warped_forest", +} +/** + * Union type equivalent of the MinecraftBiomeTypes enum. + */ +export type MinecraftBiomeTypesUnion = keyof typeof MinecraftBiomeTypes; diff --git a/scripts/vanilla-data/mojang-block.ts b/scripts/vanilla-data/mojang-block.ts new file mode 100644 index 0000000..88d4c11 --- /dev/null +++ b/scripts/vanilla-data/mojang-block.ts @@ -0,0 +1,5374 @@ +/** + * All possible MinecraftBlockTypes + */ +export enum MinecraftBlockTypes { + AcaciaButton = "minecraft:acacia_button", + AcaciaDoor = "minecraft:acacia_door", + AcaciaDoubleSlab = "minecraft:acacia_double_slab", + AcaciaFence = "minecraft:acacia_fence", + AcaciaFenceGate = "minecraft:acacia_fence_gate", + AcaciaHangingSign = "minecraft:acacia_hanging_sign", + AcaciaLeaves = "minecraft:acacia_leaves", + AcaciaLog = "minecraft:acacia_log", + AcaciaPlanks = "minecraft:acacia_planks", + AcaciaPressurePlate = "minecraft:acacia_pressure_plate", + AcaciaSapling = "minecraft:acacia_sapling", + AcaciaSlab = "minecraft:acacia_slab", + AcaciaStairs = "minecraft:acacia_stairs", + AcaciaStandingSign = "minecraft:acacia_standing_sign", + AcaciaTrapdoor = "minecraft:acacia_trapdoor", + AcaciaWallSign = "minecraft:acacia_wall_sign", + AcaciaWood = "minecraft:acacia_wood", + ActivatorRail = "minecraft:activator_rail", + Air = "minecraft:air", + Allium = "minecraft:allium", + Allow = "minecraft:allow", + AmethystBlock = "minecraft:amethyst_block", + AmethystCluster = "minecraft:amethyst_cluster", + AncientDebris = "minecraft:ancient_debris", + Andesite = "minecraft:andesite", + AndesiteStairs = "minecraft:andesite_stairs", + Anvil = "minecraft:anvil", + Azalea = "minecraft:azalea", + AzaleaLeaves = "minecraft:azalea_leaves", + AzaleaLeavesFlowered = "minecraft:azalea_leaves_flowered", + AzureBluet = "minecraft:azure_bluet", + Bamboo = "minecraft:bamboo", + BambooBlock = "minecraft:bamboo_block", + BambooButton = "minecraft:bamboo_button", + BambooDoor = "minecraft:bamboo_door", + BambooDoubleSlab = "minecraft:bamboo_double_slab", + BambooFence = "minecraft:bamboo_fence", + BambooFenceGate = "minecraft:bamboo_fence_gate", + BambooHangingSign = "minecraft:bamboo_hanging_sign", + BambooMosaic = "minecraft:bamboo_mosaic", + BambooMosaicDoubleSlab = "minecraft:bamboo_mosaic_double_slab", + BambooMosaicSlab = "minecraft:bamboo_mosaic_slab", + BambooMosaicStairs = "minecraft:bamboo_mosaic_stairs", + BambooPlanks = "minecraft:bamboo_planks", + BambooPressurePlate = "minecraft:bamboo_pressure_plate", + BambooSapling = "minecraft:bamboo_sapling", + BambooSlab = "minecraft:bamboo_slab", + BambooStairs = "minecraft:bamboo_stairs", + BambooStandingSign = "minecraft:bamboo_standing_sign", + BambooTrapdoor = "minecraft:bamboo_trapdoor", + BambooWallSign = "minecraft:bamboo_wall_sign", + Barrel = "minecraft:barrel", + Barrier = "minecraft:barrier", + Basalt = "minecraft:basalt", + Beacon = "minecraft:beacon", + Bed = "minecraft:bed", + Bedrock = "minecraft:bedrock", + BeeNest = "minecraft:bee_nest", + Beehive = "minecraft:beehive", + Beetroot = "minecraft:beetroot", + Bell = "minecraft:bell", + BigDripleaf = "minecraft:big_dripleaf", + BirchButton = "minecraft:birch_button", + BirchDoor = "minecraft:birch_door", + BirchDoubleSlab = "minecraft:birch_double_slab", + BirchFence = "minecraft:birch_fence", + BirchFenceGate = "minecraft:birch_fence_gate", + BirchHangingSign = "minecraft:birch_hanging_sign", + BirchLeaves = "minecraft:birch_leaves", + BirchLog = "minecraft:birch_log", + BirchPlanks = "minecraft:birch_planks", + BirchPressurePlate = "minecraft:birch_pressure_plate", + BirchSapling = "minecraft:birch_sapling", + BirchSlab = "minecraft:birch_slab", + BirchStairs = "minecraft:birch_stairs", + BirchStandingSign = "minecraft:birch_standing_sign", + BirchTrapdoor = "minecraft:birch_trapdoor", + BirchWallSign = "minecraft:birch_wall_sign", + BirchWood = "minecraft:birch_wood", + BlackCandle = "minecraft:black_candle", + BlackCandleCake = "minecraft:black_candle_cake", + BlackCarpet = "minecraft:black_carpet", + BlackConcrete = "minecraft:black_concrete", + BlackConcretePowder = "minecraft:black_concrete_powder", + BlackGlazedTerracotta = "minecraft:black_glazed_terracotta", + BlackShulkerBox = "minecraft:black_shulker_box", + BlackStainedGlass = "minecraft:black_stained_glass", + BlackStainedGlassPane = "minecraft:black_stained_glass_pane", + BlackTerracotta = "minecraft:black_terracotta", + BlackWool = "minecraft:black_wool", + Blackstone = "minecraft:blackstone", + BlackstoneDoubleSlab = "minecraft:blackstone_double_slab", + BlackstoneSlab = "minecraft:blackstone_slab", + BlackstoneStairs = "minecraft:blackstone_stairs", + BlackstoneWall = "minecraft:blackstone_wall", + BlastFurnace = "minecraft:blast_furnace", + BlueCandle = "minecraft:blue_candle", + BlueCandleCake = "minecraft:blue_candle_cake", + BlueCarpet = "minecraft:blue_carpet", + BlueConcrete = "minecraft:blue_concrete", + BlueConcretePowder = "minecraft:blue_concrete_powder", + BlueGlazedTerracotta = "minecraft:blue_glazed_terracotta", + BlueIce = "minecraft:blue_ice", + BlueOrchid = "minecraft:blue_orchid", + BlueShulkerBox = "minecraft:blue_shulker_box", + BlueStainedGlass = "minecraft:blue_stained_glass", + BlueStainedGlassPane = "minecraft:blue_stained_glass_pane", + BlueTerracotta = "minecraft:blue_terracotta", + BlueWool = "minecraft:blue_wool", + BoneBlock = "minecraft:bone_block", + Bookshelf = "minecraft:bookshelf", + BorderBlock = "minecraft:border_block", + BrainCoral = "minecraft:brain_coral", + BrainCoralBlock = "minecraft:brain_coral_block", + BrainCoralFan = "minecraft:brain_coral_fan", + BrewingStand = "minecraft:brewing_stand", + BrickBlock = "minecraft:brick_block", + BrickSlab = "minecraft:brick_slab", + BrickStairs = "minecraft:brick_stairs", + BrownCandle = "minecraft:brown_candle", + BrownCandleCake = "minecraft:brown_candle_cake", + BrownCarpet = "minecraft:brown_carpet", + BrownConcrete = "minecraft:brown_concrete", + BrownConcretePowder = "minecraft:brown_concrete_powder", + BrownGlazedTerracotta = "minecraft:brown_glazed_terracotta", + BrownMushroom = "minecraft:brown_mushroom", + BrownMushroomBlock = "minecraft:brown_mushroom_block", + BrownShulkerBox = "minecraft:brown_shulker_box", + BrownStainedGlass = "minecraft:brown_stained_glass", + BrownStainedGlassPane = "minecraft:brown_stained_glass_pane", + BrownTerracotta = "minecraft:brown_terracotta", + BrownWool = "minecraft:brown_wool", + BubbleColumn = "minecraft:bubble_column", + BubbleCoral = "minecraft:bubble_coral", + BubbleCoralBlock = "minecraft:bubble_coral_block", + BubbleCoralFan = "minecraft:bubble_coral_fan", + BuddingAmethyst = "minecraft:budding_amethyst", + Cactus = "minecraft:cactus", + Cake = "minecraft:cake", + Calcite = "minecraft:calcite", + CalibratedSculkSensor = "minecraft:calibrated_sculk_sensor", + Camera = "minecraft:camera", + Campfire = "minecraft:campfire", + Candle = "minecraft:candle", + CandleCake = "minecraft:candle_cake", + Carrots = "minecraft:carrots", + CartographyTable = "minecraft:cartography_table", + CarvedPumpkin = "minecraft:carved_pumpkin", + Cauldron = "minecraft:cauldron", + CaveVines = "minecraft:cave_vines", + CaveVinesBodyWithBerries = "minecraft:cave_vines_body_with_berries", + CaveVinesHeadWithBerries = "minecraft:cave_vines_head_with_berries", + Chain = "minecraft:chain", + ChainCommandBlock = "minecraft:chain_command_block", + ChemicalHeat = "minecraft:chemical_heat", + ChemistryTable = "minecraft:chemistry_table", + CherryButton = "minecraft:cherry_button", + CherryDoor = "minecraft:cherry_door", + CherryDoubleSlab = "minecraft:cherry_double_slab", + CherryFence = "minecraft:cherry_fence", + CherryFenceGate = "minecraft:cherry_fence_gate", + CherryHangingSign = "minecraft:cherry_hanging_sign", + CherryLeaves = "minecraft:cherry_leaves", + CherryLog = "minecraft:cherry_log", + CherryPlanks = "minecraft:cherry_planks", + CherryPressurePlate = "minecraft:cherry_pressure_plate", + CherrySapling = "minecraft:cherry_sapling", + CherrySlab = "minecraft:cherry_slab", + CherryStairs = "minecraft:cherry_stairs", + CherryStandingSign = "minecraft:cherry_standing_sign", + CherryTrapdoor = "minecraft:cherry_trapdoor", + CherryWallSign = "minecraft:cherry_wall_sign", + CherryWood = "minecraft:cherry_wood", + Chest = "minecraft:chest", + ChiseledBookshelf = "minecraft:chiseled_bookshelf", + ChiseledCopper = "minecraft:chiseled_copper", + ChiseledDeepslate = "minecraft:chiseled_deepslate", + ChiseledNetherBricks = "minecraft:chiseled_nether_bricks", + ChiseledPolishedBlackstone = "minecraft:chiseled_polished_blackstone", + ChiseledTuff = "minecraft:chiseled_tuff", + ChiseledTuffBricks = "minecraft:chiseled_tuff_bricks", + ChorusFlower = "minecraft:chorus_flower", + ChorusPlant = "minecraft:chorus_plant", + Clay = "minecraft:clay", + ClientRequestPlaceholderBlock = "minecraft:client_request_placeholder_block", + CoalBlock = "minecraft:coal_block", + CoalOre = "minecraft:coal_ore", + CobbledDeepslate = "minecraft:cobbled_deepslate", + CobbledDeepslateDoubleSlab = "minecraft:cobbled_deepslate_double_slab", + CobbledDeepslateSlab = "minecraft:cobbled_deepslate_slab", + CobbledDeepslateStairs = "minecraft:cobbled_deepslate_stairs", + CobbledDeepslateWall = "minecraft:cobbled_deepslate_wall", + Cobblestone = "minecraft:cobblestone", + CobblestoneSlab = "minecraft:cobblestone_slab", + CobblestoneWall = "minecraft:cobblestone_wall", + Cocoa = "minecraft:cocoa", + ColoredTorchBp = "minecraft:colored_torch_bp", + ColoredTorchRg = "minecraft:colored_torch_rg", + CommandBlock = "minecraft:command_block", + Composter = "minecraft:composter", + Conduit = "minecraft:conduit", + CopperBlock = "minecraft:copper_block", + CopperBulb = "minecraft:copper_bulb", + CopperDoor = "minecraft:copper_door", + CopperGrate = "minecraft:copper_grate", + CopperOre = "minecraft:copper_ore", + CopperTrapdoor = "minecraft:copper_trapdoor", + CoralFanHang = "minecraft:coral_fan_hang", + CoralFanHang2 = "minecraft:coral_fan_hang2", + CoralFanHang3 = "minecraft:coral_fan_hang3", + Cornflower = "minecraft:cornflower", + CrackedDeepslateBricks = "minecraft:cracked_deepslate_bricks", + CrackedDeepslateTiles = "minecraft:cracked_deepslate_tiles", + CrackedNetherBricks = "minecraft:cracked_nether_bricks", + CrackedPolishedBlackstoneBricks = "minecraft:cracked_polished_blackstone_bricks", + Crafter = "minecraft:crafter", + CraftingTable = "minecraft:crafting_table", + CrimsonButton = "minecraft:crimson_button", + CrimsonDoor = "minecraft:crimson_door", + CrimsonDoubleSlab = "minecraft:crimson_double_slab", + CrimsonFence = "minecraft:crimson_fence", + CrimsonFenceGate = "minecraft:crimson_fence_gate", + CrimsonFungus = "minecraft:crimson_fungus", + CrimsonHangingSign = "minecraft:crimson_hanging_sign", + CrimsonHyphae = "minecraft:crimson_hyphae", + CrimsonNylium = "minecraft:crimson_nylium", + CrimsonPlanks = "minecraft:crimson_planks", + CrimsonPressurePlate = "minecraft:crimson_pressure_plate", + CrimsonRoots = "minecraft:crimson_roots", + CrimsonSlab = "minecraft:crimson_slab", + CrimsonStairs = "minecraft:crimson_stairs", + CrimsonStandingSign = "minecraft:crimson_standing_sign", + CrimsonStem = "minecraft:crimson_stem", + CrimsonTrapdoor = "minecraft:crimson_trapdoor", + CrimsonWallSign = "minecraft:crimson_wall_sign", + CryingObsidian = "minecraft:crying_obsidian", + CutCopper = "minecraft:cut_copper", + CutCopperSlab = "minecraft:cut_copper_slab", + CutCopperStairs = "minecraft:cut_copper_stairs", + CyanCandle = "minecraft:cyan_candle", + CyanCandleCake = "minecraft:cyan_candle_cake", + CyanCarpet = "minecraft:cyan_carpet", + CyanConcrete = "minecraft:cyan_concrete", + CyanConcretePowder = "minecraft:cyan_concrete_powder", + CyanGlazedTerracotta = "minecraft:cyan_glazed_terracotta", + CyanShulkerBox = "minecraft:cyan_shulker_box", + CyanStainedGlass = "minecraft:cyan_stained_glass", + CyanStainedGlassPane = "minecraft:cyan_stained_glass_pane", + CyanTerracotta = "minecraft:cyan_terracotta", + CyanWool = "minecraft:cyan_wool", + DarkOakButton = "minecraft:dark_oak_button", + DarkOakDoor = "minecraft:dark_oak_door", + DarkOakDoubleSlab = "minecraft:dark_oak_double_slab", + DarkOakFence = "minecraft:dark_oak_fence", + DarkOakFenceGate = "minecraft:dark_oak_fence_gate", + DarkOakHangingSign = "minecraft:dark_oak_hanging_sign", + DarkOakLeaves = "minecraft:dark_oak_leaves", + DarkOakLog = "minecraft:dark_oak_log", + DarkOakPlanks = "minecraft:dark_oak_planks", + DarkOakPressurePlate = "minecraft:dark_oak_pressure_plate", + DarkOakSapling = "minecraft:dark_oak_sapling", + DarkOakSlab = "minecraft:dark_oak_slab", + DarkOakStairs = "minecraft:dark_oak_stairs", + DarkOakTrapdoor = "minecraft:dark_oak_trapdoor", + DarkOakWood = "minecraft:dark_oak_wood", + DarkPrismarineStairs = "minecraft:dark_prismarine_stairs", + DarkoakStandingSign = "minecraft:darkoak_standing_sign", + DarkoakWallSign = "minecraft:darkoak_wall_sign", + DaylightDetector = "minecraft:daylight_detector", + DaylightDetectorInverted = "minecraft:daylight_detector_inverted", + DeadBrainCoral = "minecraft:dead_brain_coral", + DeadBrainCoralBlock = "minecraft:dead_brain_coral_block", + DeadBrainCoralFan = "minecraft:dead_brain_coral_fan", + DeadBubbleCoral = "minecraft:dead_bubble_coral", + DeadBubbleCoralBlock = "minecraft:dead_bubble_coral_block", + DeadBubbleCoralFan = "minecraft:dead_bubble_coral_fan", + DeadFireCoral = "minecraft:dead_fire_coral", + DeadFireCoralBlock = "minecraft:dead_fire_coral_block", + DeadFireCoralFan = "minecraft:dead_fire_coral_fan", + DeadHornCoral = "minecraft:dead_horn_coral", + DeadHornCoralBlock = "minecraft:dead_horn_coral_block", + DeadHornCoralFan = "minecraft:dead_horn_coral_fan", + DeadTubeCoral = "minecraft:dead_tube_coral", + DeadTubeCoralBlock = "minecraft:dead_tube_coral_block", + DeadTubeCoralFan = "minecraft:dead_tube_coral_fan", + Deadbush = "minecraft:deadbush", + DecoratedPot = "minecraft:decorated_pot", + Deepslate = "minecraft:deepslate", + DeepslateBrickDoubleSlab = "minecraft:deepslate_brick_double_slab", + DeepslateBrickSlab = "minecraft:deepslate_brick_slab", + DeepslateBrickStairs = "minecraft:deepslate_brick_stairs", + DeepslateBrickWall = "minecraft:deepslate_brick_wall", + DeepslateBricks = "minecraft:deepslate_bricks", + DeepslateCoalOre = "minecraft:deepslate_coal_ore", + DeepslateCopperOre = "minecraft:deepslate_copper_ore", + DeepslateDiamondOre = "minecraft:deepslate_diamond_ore", + DeepslateEmeraldOre = "minecraft:deepslate_emerald_ore", + DeepslateGoldOre = "minecraft:deepslate_gold_ore", + DeepslateIronOre = "minecraft:deepslate_iron_ore", + DeepslateLapisOre = "minecraft:deepslate_lapis_ore", + DeepslateRedstoneOre = "minecraft:deepslate_redstone_ore", + DeepslateTileDoubleSlab = "minecraft:deepslate_tile_double_slab", + DeepslateTileSlab = "minecraft:deepslate_tile_slab", + DeepslateTileStairs = "minecraft:deepslate_tile_stairs", + DeepslateTileWall = "minecraft:deepslate_tile_wall", + DeepslateTiles = "minecraft:deepslate_tiles", + Deny = "minecraft:deny", + DetectorRail = "minecraft:detector_rail", + DiamondBlock = "minecraft:diamond_block", + DiamondOre = "minecraft:diamond_ore", + Diorite = "minecraft:diorite", + DioriteStairs = "minecraft:diorite_stairs", + Dirt = "minecraft:dirt", + DirtWithRoots = "minecraft:dirt_with_roots", + Dispenser = "minecraft:dispenser", + DoubleCutCopperSlab = "minecraft:double_cut_copper_slab", + DoubleStoneBlockSlab = "minecraft:double_stone_block_slab", + DoubleStoneBlockSlab2 = "minecraft:double_stone_block_slab2", + DoubleStoneBlockSlab3 = "minecraft:double_stone_block_slab3", + DoubleStoneBlockSlab4 = "minecraft:double_stone_block_slab4", + DragonEgg = "minecraft:dragon_egg", + DriedKelpBlock = "minecraft:dried_kelp_block", + DripstoneBlock = "minecraft:dripstone_block", + Dropper = "minecraft:dropper", + Element0 = "minecraft:element_0", + Element1 = "minecraft:element_1", + Element10 = "minecraft:element_10", + Element100 = "minecraft:element_100", + Element101 = "minecraft:element_101", + Element102 = "minecraft:element_102", + Element103 = "minecraft:element_103", + Element104 = "minecraft:element_104", + Element105 = "minecraft:element_105", + Element106 = "minecraft:element_106", + Element107 = "minecraft:element_107", + Element108 = "minecraft:element_108", + Element109 = "minecraft:element_109", + Element11 = "minecraft:element_11", + Element110 = "minecraft:element_110", + Element111 = "minecraft:element_111", + Element112 = "minecraft:element_112", + Element113 = "minecraft:element_113", + Element114 = "minecraft:element_114", + Element115 = "minecraft:element_115", + Element116 = "minecraft:element_116", + Element117 = "minecraft:element_117", + Element118 = "minecraft:element_118", + Element12 = "minecraft:element_12", + Element13 = "minecraft:element_13", + Element14 = "minecraft:element_14", + Element15 = "minecraft:element_15", + Element16 = "minecraft:element_16", + Element17 = "minecraft:element_17", + Element18 = "minecraft:element_18", + Element19 = "minecraft:element_19", + Element2 = "minecraft:element_2", + Element20 = "minecraft:element_20", + Element21 = "minecraft:element_21", + Element22 = "minecraft:element_22", + Element23 = "minecraft:element_23", + Element24 = "minecraft:element_24", + Element25 = "minecraft:element_25", + Element26 = "minecraft:element_26", + Element27 = "minecraft:element_27", + Element28 = "minecraft:element_28", + Element29 = "minecraft:element_29", + Element3 = "minecraft:element_3", + Element30 = "minecraft:element_30", + Element31 = "minecraft:element_31", + Element32 = "minecraft:element_32", + Element33 = "minecraft:element_33", + Element34 = "minecraft:element_34", + Element35 = "minecraft:element_35", + Element36 = "minecraft:element_36", + Element37 = "minecraft:element_37", + Element38 = "minecraft:element_38", + Element39 = "minecraft:element_39", + Element4 = "minecraft:element_4", + Element40 = "minecraft:element_40", + Element41 = "minecraft:element_41", + Element42 = "minecraft:element_42", + Element43 = "minecraft:element_43", + Element44 = "minecraft:element_44", + Element45 = "minecraft:element_45", + Element46 = "minecraft:element_46", + Element47 = "minecraft:element_47", + Element48 = "minecraft:element_48", + Element49 = "minecraft:element_49", + Element5 = "minecraft:element_5", + Element50 = "minecraft:element_50", + Element51 = "minecraft:element_51", + Element52 = "minecraft:element_52", + Element53 = "minecraft:element_53", + Element54 = "minecraft:element_54", + Element55 = "minecraft:element_55", + Element56 = "minecraft:element_56", + Element57 = "minecraft:element_57", + Element58 = "minecraft:element_58", + Element59 = "minecraft:element_59", + Element6 = "minecraft:element_6", + Element60 = "minecraft:element_60", + Element61 = "minecraft:element_61", + Element62 = "minecraft:element_62", + Element63 = "minecraft:element_63", + Element64 = "minecraft:element_64", + Element65 = "minecraft:element_65", + Element66 = "minecraft:element_66", + Element67 = "minecraft:element_67", + Element68 = "minecraft:element_68", + Element69 = "minecraft:element_69", + Element7 = "minecraft:element_7", + Element70 = "minecraft:element_70", + Element71 = "minecraft:element_71", + Element72 = "minecraft:element_72", + Element73 = "minecraft:element_73", + Element74 = "minecraft:element_74", + Element75 = "minecraft:element_75", + Element76 = "minecraft:element_76", + Element77 = "minecraft:element_77", + Element78 = "minecraft:element_78", + Element79 = "minecraft:element_79", + Element8 = "minecraft:element_8", + Element80 = "minecraft:element_80", + Element81 = "minecraft:element_81", + Element82 = "minecraft:element_82", + Element83 = "minecraft:element_83", + Element84 = "minecraft:element_84", + Element85 = "minecraft:element_85", + Element86 = "minecraft:element_86", + Element87 = "minecraft:element_87", + Element88 = "minecraft:element_88", + Element89 = "minecraft:element_89", + Element9 = "minecraft:element_9", + Element90 = "minecraft:element_90", + Element91 = "minecraft:element_91", + Element92 = "minecraft:element_92", + Element93 = "minecraft:element_93", + Element94 = "minecraft:element_94", + Element95 = "minecraft:element_95", + Element96 = "minecraft:element_96", + Element97 = "minecraft:element_97", + Element98 = "minecraft:element_98", + Element99 = "minecraft:element_99", + EmeraldBlock = "minecraft:emerald_block", + EmeraldOre = "minecraft:emerald_ore", + EnchantingTable = "minecraft:enchanting_table", + EndBrickStairs = "minecraft:end_brick_stairs", + EndBricks = "minecraft:end_bricks", + EndGateway = "minecraft:end_gateway", + EndPortal = "minecraft:end_portal", + EndPortalFrame = "minecraft:end_portal_frame", + EndRod = "minecraft:end_rod", + EndStone = "minecraft:end_stone", + EnderChest = "minecraft:ender_chest", + ExposedChiseledCopper = "minecraft:exposed_chiseled_copper", + ExposedCopper = "minecraft:exposed_copper", + ExposedCopperBulb = "minecraft:exposed_copper_bulb", + ExposedCopperDoor = "minecraft:exposed_copper_door", + ExposedCopperGrate = "minecraft:exposed_copper_grate", + ExposedCopperTrapdoor = "minecraft:exposed_copper_trapdoor", + ExposedCutCopper = "minecraft:exposed_cut_copper", + ExposedCutCopperSlab = "minecraft:exposed_cut_copper_slab", + ExposedCutCopperStairs = "minecraft:exposed_cut_copper_stairs", + ExposedDoubleCutCopperSlab = "minecraft:exposed_double_cut_copper_slab", + Farmland = "minecraft:farmland", + FenceGate = "minecraft:fence_gate", + Fern = "minecraft:fern", + Fire = "minecraft:fire", + FireCoral = "minecraft:fire_coral", + FireCoralBlock = "minecraft:fire_coral_block", + FireCoralFan = "minecraft:fire_coral_fan", + FletchingTable = "minecraft:fletching_table", + FlowerPot = "minecraft:flower_pot", + FloweringAzalea = "minecraft:flowering_azalea", + FlowingLava = "minecraft:flowing_lava", + FlowingWater = "minecraft:flowing_water", + Frame = "minecraft:frame", + FrogSpawn = "minecraft:frog_spawn", + FrostedIce = "minecraft:frosted_ice", + Furnace = "minecraft:furnace", + GildedBlackstone = "minecraft:gilded_blackstone", + Glass = "minecraft:glass", + GlassPane = "minecraft:glass_pane", + GlowFrame = "minecraft:glow_frame", + GlowLichen = "minecraft:glow_lichen", + Glowingobsidian = "minecraft:glowingobsidian", + Glowstone = "minecraft:glowstone", + GoldBlock = "minecraft:gold_block", + GoldOre = "minecraft:gold_ore", + GoldenRail = "minecraft:golden_rail", + Granite = "minecraft:granite", + GraniteStairs = "minecraft:granite_stairs", + GrassBlock = "minecraft:grass_block", + GrassPath = "minecraft:grass_path", + Gravel = "minecraft:gravel", + GrayCandle = "minecraft:gray_candle", + GrayCandleCake = "minecraft:gray_candle_cake", + GrayCarpet = "minecraft:gray_carpet", + GrayConcrete = "minecraft:gray_concrete", + GrayConcretePowder = "minecraft:gray_concrete_powder", + GrayGlazedTerracotta = "minecraft:gray_glazed_terracotta", + GrayShulkerBox = "minecraft:gray_shulker_box", + GrayStainedGlass = "minecraft:gray_stained_glass", + GrayStainedGlassPane = "minecraft:gray_stained_glass_pane", + GrayTerracotta = "minecraft:gray_terracotta", + GrayWool = "minecraft:gray_wool", + GreenCandle = "minecraft:green_candle", + GreenCandleCake = "minecraft:green_candle_cake", + GreenCarpet = "minecraft:green_carpet", + GreenConcrete = "minecraft:green_concrete", + GreenConcretePowder = "minecraft:green_concrete_powder", + GreenGlazedTerracotta = "minecraft:green_glazed_terracotta", + GreenShulkerBox = "minecraft:green_shulker_box", + GreenStainedGlass = "minecraft:green_stained_glass", + GreenStainedGlassPane = "minecraft:green_stained_glass_pane", + GreenTerracotta = "minecraft:green_terracotta", + GreenWool = "minecraft:green_wool", + Grindstone = "minecraft:grindstone", + HangingRoots = "minecraft:hanging_roots", + HardBlackStainedGlass = "minecraft:hard_black_stained_glass", + HardBlackStainedGlassPane = "minecraft:hard_black_stained_glass_pane", + HardBlueStainedGlass = "minecraft:hard_blue_stained_glass", + HardBlueStainedGlassPane = "minecraft:hard_blue_stained_glass_pane", + HardBrownStainedGlass = "minecraft:hard_brown_stained_glass", + HardBrownStainedGlassPane = "minecraft:hard_brown_stained_glass_pane", + HardCyanStainedGlass = "minecraft:hard_cyan_stained_glass", + HardCyanStainedGlassPane = "minecraft:hard_cyan_stained_glass_pane", + HardGlass = "minecraft:hard_glass", + HardGlassPane = "minecraft:hard_glass_pane", + HardGrayStainedGlass = "minecraft:hard_gray_stained_glass", + HardGrayStainedGlassPane = "minecraft:hard_gray_stained_glass_pane", + HardGreenStainedGlass = "minecraft:hard_green_stained_glass", + HardGreenStainedGlassPane = "minecraft:hard_green_stained_glass_pane", + HardLightBlueStainedGlass = "minecraft:hard_light_blue_stained_glass", + HardLightBlueStainedGlassPane = "minecraft:hard_light_blue_stained_glass_pane", + HardLightGrayStainedGlass = "minecraft:hard_light_gray_stained_glass", + HardLightGrayStainedGlassPane = "minecraft:hard_light_gray_stained_glass_pane", + HardLimeStainedGlass = "minecraft:hard_lime_stained_glass", + HardLimeStainedGlassPane = "minecraft:hard_lime_stained_glass_pane", + HardMagentaStainedGlass = "minecraft:hard_magenta_stained_glass", + HardMagentaStainedGlassPane = "minecraft:hard_magenta_stained_glass_pane", + HardOrangeStainedGlass = "minecraft:hard_orange_stained_glass", + HardOrangeStainedGlassPane = "minecraft:hard_orange_stained_glass_pane", + HardPinkStainedGlass = "minecraft:hard_pink_stained_glass", + HardPinkStainedGlassPane = "minecraft:hard_pink_stained_glass_pane", + HardPurpleStainedGlass = "minecraft:hard_purple_stained_glass", + HardPurpleStainedGlassPane = "minecraft:hard_purple_stained_glass_pane", + HardRedStainedGlass = "minecraft:hard_red_stained_glass", + HardRedStainedGlassPane = "minecraft:hard_red_stained_glass_pane", + HardWhiteStainedGlass = "minecraft:hard_white_stained_glass", + HardWhiteStainedGlassPane = "minecraft:hard_white_stained_glass_pane", + HardYellowStainedGlass = "minecraft:hard_yellow_stained_glass", + HardYellowStainedGlassPane = "minecraft:hard_yellow_stained_glass_pane", + HardenedClay = "minecraft:hardened_clay", + HayBlock = "minecraft:hay_block", + HeavyCore = "minecraft:heavy_core", + HeavyWeightedPressurePlate = "minecraft:heavy_weighted_pressure_plate", + HoneyBlock = "minecraft:honey_block", + HoneycombBlock = "minecraft:honeycomb_block", + Hopper = "minecraft:hopper", + HornCoral = "minecraft:horn_coral", + HornCoralBlock = "minecraft:horn_coral_block", + HornCoralFan = "minecraft:horn_coral_fan", + Ice = "minecraft:ice", + InfestedDeepslate = "minecraft:infested_deepslate", + InfoUpdate = "minecraft:info_update", + InfoUpdate2 = "minecraft:info_update2", + InvisibleBedrock = "minecraft:invisible_bedrock", + IronBars = "minecraft:iron_bars", + IronBlock = "minecraft:iron_block", + IronDoor = "minecraft:iron_door", + IronOre = "minecraft:iron_ore", + IronTrapdoor = "minecraft:iron_trapdoor", + Jigsaw = "minecraft:jigsaw", + Jukebox = "minecraft:jukebox", + JungleButton = "minecraft:jungle_button", + JungleDoor = "minecraft:jungle_door", + JungleDoubleSlab = "minecraft:jungle_double_slab", + JungleFence = "minecraft:jungle_fence", + JungleFenceGate = "minecraft:jungle_fence_gate", + JungleHangingSign = "minecraft:jungle_hanging_sign", + JungleLeaves = "minecraft:jungle_leaves", + JungleLog = "minecraft:jungle_log", + JunglePlanks = "minecraft:jungle_planks", + JunglePressurePlate = "minecraft:jungle_pressure_plate", + JungleSapling = "minecraft:jungle_sapling", + JungleSlab = "minecraft:jungle_slab", + JungleStairs = "minecraft:jungle_stairs", + JungleStandingSign = "minecraft:jungle_standing_sign", + JungleTrapdoor = "minecraft:jungle_trapdoor", + JungleWallSign = "minecraft:jungle_wall_sign", + JungleWood = "minecraft:jungle_wood", + Kelp = "minecraft:kelp", + Ladder = "minecraft:ladder", + Lantern = "minecraft:lantern", + LapisBlock = "minecraft:lapis_block", + LapisOre = "minecraft:lapis_ore", + LargeAmethystBud = "minecraft:large_amethyst_bud", + LargeFern = "minecraft:large_fern", + Lava = "minecraft:lava", + Lectern = "minecraft:lectern", + Lever = "minecraft:lever", + LightBlock = "minecraft:light_block", + LightBlueCandle = "minecraft:light_blue_candle", + LightBlueCandleCake = "minecraft:light_blue_candle_cake", + LightBlueCarpet = "minecraft:light_blue_carpet", + LightBlueConcrete = "minecraft:light_blue_concrete", + LightBlueConcretePowder = "minecraft:light_blue_concrete_powder", + LightBlueGlazedTerracotta = "minecraft:light_blue_glazed_terracotta", + LightBlueShulkerBox = "minecraft:light_blue_shulker_box", + LightBlueStainedGlass = "minecraft:light_blue_stained_glass", + LightBlueStainedGlassPane = "minecraft:light_blue_stained_glass_pane", + LightBlueTerracotta = "minecraft:light_blue_terracotta", + LightBlueWool = "minecraft:light_blue_wool", + LightGrayCandle = "minecraft:light_gray_candle", + LightGrayCandleCake = "minecraft:light_gray_candle_cake", + LightGrayCarpet = "minecraft:light_gray_carpet", + LightGrayConcrete = "minecraft:light_gray_concrete", + LightGrayConcretePowder = "minecraft:light_gray_concrete_powder", + LightGrayShulkerBox = "minecraft:light_gray_shulker_box", + LightGrayStainedGlass = "minecraft:light_gray_stained_glass", + LightGrayStainedGlassPane = "minecraft:light_gray_stained_glass_pane", + LightGrayTerracotta = "minecraft:light_gray_terracotta", + LightGrayWool = "minecraft:light_gray_wool", + LightWeightedPressurePlate = "minecraft:light_weighted_pressure_plate", + LightningRod = "minecraft:lightning_rod", + Lilac = "minecraft:lilac", + LilyOfTheValley = "minecraft:lily_of_the_valley", + LimeCandle = "minecraft:lime_candle", + LimeCandleCake = "minecraft:lime_candle_cake", + LimeCarpet = "minecraft:lime_carpet", + LimeConcrete = "minecraft:lime_concrete", + LimeConcretePowder = "minecraft:lime_concrete_powder", + LimeGlazedTerracotta = "minecraft:lime_glazed_terracotta", + LimeShulkerBox = "minecraft:lime_shulker_box", + LimeStainedGlass = "minecraft:lime_stained_glass", + LimeStainedGlassPane = "minecraft:lime_stained_glass_pane", + LimeTerracotta = "minecraft:lime_terracotta", + LimeWool = "minecraft:lime_wool", + LitBlastFurnace = "minecraft:lit_blast_furnace", + LitDeepslateRedstoneOre = "minecraft:lit_deepslate_redstone_ore", + LitFurnace = "minecraft:lit_furnace", + LitPumpkin = "minecraft:lit_pumpkin", + LitRedstoneLamp = "minecraft:lit_redstone_lamp", + LitRedstoneOre = "minecraft:lit_redstone_ore", + LitSmoker = "minecraft:lit_smoker", + Lodestone = "minecraft:lodestone", + Loom = "minecraft:loom", + MagentaCandle = "minecraft:magenta_candle", + MagentaCandleCake = "minecraft:magenta_candle_cake", + MagentaCarpet = "minecraft:magenta_carpet", + MagentaConcrete = "minecraft:magenta_concrete", + MagentaConcretePowder = "minecraft:magenta_concrete_powder", + MagentaGlazedTerracotta = "minecraft:magenta_glazed_terracotta", + MagentaShulkerBox = "minecraft:magenta_shulker_box", + MagentaStainedGlass = "minecraft:magenta_stained_glass", + MagentaStainedGlassPane = "minecraft:magenta_stained_glass_pane", + MagentaTerracotta = "minecraft:magenta_terracotta", + MagentaWool = "minecraft:magenta_wool", + Magma = "minecraft:magma", + MangroveButton = "minecraft:mangrove_button", + MangroveDoor = "minecraft:mangrove_door", + MangroveDoubleSlab = "minecraft:mangrove_double_slab", + MangroveFence = "minecraft:mangrove_fence", + MangroveFenceGate = "minecraft:mangrove_fence_gate", + MangroveHangingSign = "minecraft:mangrove_hanging_sign", + MangroveLeaves = "minecraft:mangrove_leaves", + MangroveLog = "minecraft:mangrove_log", + MangrovePlanks = "minecraft:mangrove_planks", + MangrovePressurePlate = "minecraft:mangrove_pressure_plate", + MangrovePropagule = "minecraft:mangrove_propagule", + MangroveRoots = "minecraft:mangrove_roots", + MangroveSlab = "minecraft:mangrove_slab", + MangroveStairs = "minecraft:mangrove_stairs", + MangroveStandingSign = "minecraft:mangrove_standing_sign", + MangroveTrapdoor = "minecraft:mangrove_trapdoor", + MangroveWallSign = "minecraft:mangrove_wall_sign", + MangroveWood = "minecraft:mangrove_wood", + MediumAmethystBud = "minecraft:medium_amethyst_bud", + MelonBlock = "minecraft:melon_block", + MelonStem = "minecraft:melon_stem", + MobSpawner = "minecraft:mob_spawner", + MonsterEgg = "minecraft:monster_egg", + MossBlock = "minecraft:moss_block", + MossCarpet = "minecraft:moss_carpet", + MossyCobblestone = "minecraft:mossy_cobblestone", + MossyCobblestoneStairs = "minecraft:mossy_cobblestone_stairs", + MossyStoneBrickStairs = "minecraft:mossy_stone_brick_stairs", + MovingBlock = "minecraft:moving_block", + Mud = "minecraft:mud", + MudBrickDoubleSlab = "minecraft:mud_brick_double_slab", + MudBrickSlab = "minecraft:mud_brick_slab", + MudBrickStairs = "minecraft:mud_brick_stairs", + MudBrickWall = "minecraft:mud_brick_wall", + MudBricks = "minecraft:mud_bricks", + MuddyMangroveRoots = "minecraft:muddy_mangrove_roots", + Mycelium = "minecraft:mycelium", + NetherBrick = "minecraft:nether_brick", + NetherBrickFence = "minecraft:nether_brick_fence", + NetherBrickSlab = "minecraft:nether_brick_slab", + NetherBrickStairs = "minecraft:nether_brick_stairs", + NetherGoldOre = "minecraft:nether_gold_ore", + NetherSprouts = "minecraft:nether_sprouts", + NetherWart = "minecraft:nether_wart", + NetherWartBlock = "minecraft:nether_wart_block", + NetheriteBlock = "minecraft:netherite_block", + Netherrack = "minecraft:netherrack", + Netherreactor = "minecraft:netherreactor", + NormalStoneStairs = "minecraft:normal_stone_stairs", + Noteblock = "minecraft:noteblock", + OakDoubleSlab = "minecraft:oak_double_slab", + OakFence = "minecraft:oak_fence", + OakHangingSign = "minecraft:oak_hanging_sign", + OakLeaves = "minecraft:oak_leaves", + OakLog = "minecraft:oak_log", + OakPlanks = "minecraft:oak_planks", + OakSapling = "minecraft:oak_sapling", + OakSlab = "minecraft:oak_slab", + OakStairs = "minecraft:oak_stairs", + OakWood = "minecraft:oak_wood", + Observer = "minecraft:observer", + Obsidian = "minecraft:obsidian", + OchreFroglight = "minecraft:ochre_froglight", + OrangeCandle = "minecraft:orange_candle", + OrangeCandleCake = "minecraft:orange_candle_cake", + OrangeCarpet = "minecraft:orange_carpet", + OrangeConcrete = "minecraft:orange_concrete", + OrangeConcretePowder = "minecraft:orange_concrete_powder", + OrangeGlazedTerracotta = "minecraft:orange_glazed_terracotta", + OrangeShulkerBox = "minecraft:orange_shulker_box", + OrangeStainedGlass = "minecraft:orange_stained_glass", + OrangeStainedGlassPane = "minecraft:orange_stained_glass_pane", + OrangeTerracotta = "minecraft:orange_terracotta", + OrangeTulip = "minecraft:orange_tulip", + OrangeWool = "minecraft:orange_wool", + OxeyeDaisy = "minecraft:oxeye_daisy", + OxidizedChiseledCopper = "minecraft:oxidized_chiseled_copper", + OxidizedCopper = "minecraft:oxidized_copper", + OxidizedCopperBulb = "minecraft:oxidized_copper_bulb", + OxidizedCopperDoor = "minecraft:oxidized_copper_door", + OxidizedCopperGrate = "minecraft:oxidized_copper_grate", + OxidizedCopperTrapdoor = "minecraft:oxidized_copper_trapdoor", + OxidizedCutCopper = "minecraft:oxidized_cut_copper", + OxidizedCutCopperSlab = "minecraft:oxidized_cut_copper_slab", + OxidizedCutCopperStairs = "minecraft:oxidized_cut_copper_stairs", + OxidizedDoubleCutCopperSlab = "minecraft:oxidized_double_cut_copper_slab", + PackedIce = "minecraft:packed_ice", + PackedMud = "minecraft:packed_mud", + PearlescentFroglight = "minecraft:pearlescent_froglight", + Peony = "minecraft:peony", + PetrifiedOakSlab = "minecraft:petrified_oak_slab", + PinkCandle = "minecraft:pink_candle", + PinkCandleCake = "minecraft:pink_candle_cake", + PinkCarpet = "minecraft:pink_carpet", + PinkConcrete = "minecraft:pink_concrete", + PinkConcretePowder = "minecraft:pink_concrete_powder", + PinkGlazedTerracotta = "minecraft:pink_glazed_terracotta", + PinkPetals = "minecraft:pink_petals", + PinkShulkerBox = "minecraft:pink_shulker_box", + PinkStainedGlass = "minecraft:pink_stained_glass", + PinkStainedGlassPane = "minecraft:pink_stained_glass_pane", + PinkTerracotta = "minecraft:pink_terracotta", + PinkTulip = "minecraft:pink_tulip", + PinkWool = "minecraft:pink_wool", + Piston = "minecraft:piston", + PistonArmCollision = "minecraft:piston_arm_collision", + PitcherCrop = "minecraft:pitcher_crop", + PitcherPlant = "minecraft:pitcher_plant", + Podzol = "minecraft:podzol", + PointedDripstone = "minecraft:pointed_dripstone", + PolishedAndesite = "minecraft:polished_andesite", + PolishedAndesiteStairs = "minecraft:polished_andesite_stairs", + PolishedBasalt = "minecraft:polished_basalt", + PolishedBlackstone = "minecraft:polished_blackstone", + PolishedBlackstoneBrickDoubleSlab = "minecraft:polished_blackstone_brick_double_slab", + PolishedBlackstoneBrickSlab = "minecraft:polished_blackstone_brick_slab", + PolishedBlackstoneBrickStairs = "minecraft:polished_blackstone_brick_stairs", + PolishedBlackstoneBrickWall = "minecraft:polished_blackstone_brick_wall", + PolishedBlackstoneBricks = "minecraft:polished_blackstone_bricks", + PolishedBlackstoneButton = "minecraft:polished_blackstone_button", + PolishedBlackstoneDoubleSlab = "minecraft:polished_blackstone_double_slab", + PolishedBlackstonePressurePlate = "minecraft:polished_blackstone_pressure_plate", + PolishedBlackstoneSlab = "minecraft:polished_blackstone_slab", + PolishedBlackstoneStairs = "minecraft:polished_blackstone_stairs", + PolishedBlackstoneWall = "minecraft:polished_blackstone_wall", + PolishedDeepslate = "minecraft:polished_deepslate", + PolishedDeepslateDoubleSlab = "minecraft:polished_deepslate_double_slab", + PolishedDeepslateSlab = "minecraft:polished_deepslate_slab", + PolishedDeepslateStairs = "minecraft:polished_deepslate_stairs", + PolishedDeepslateWall = "minecraft:polished_deepslate_wall", + PolishedDiorite = "minecraft:polished_diorite", + PolishedDioriteStairs = "minecraft:polished_diorite_stairs", + PolishedGranite = "minecraft:polished_granite", + PolishedGraniteStairs = "minecraft:polished_granite_stairs", + PolishedTuff = "minecraft:polished_tuff", + PolishedTuffDoubleSlab = "minecraft:polished_tuff_double_slab", + PolishedTuffSlab = "minecraft:polished_tuff_slab", + PolishedTuffStairs = "minecraft:polished_tuff_stairs", + PolishedTuffWall = "minecraft:polished_tuff_wall", + Poppy = "minecraft:poppy", + Portal = "minecraft:portal", + Potatoes = "minecraft:potatoes", + PowderSnow = "minecraft:powder_snow", + PoweredComparator = "minecraft:powered_comparator", + PoweredRepeater = "minecraft:powered_repeater", + Prismarine = "minecraft:prismarine", + PrismarineBricksStairs = "minecraft:prismarine_bricks_stairs", + PrismarineStairs = "minecraft:prismarine_stairs", + Pumpkin = "minecraft:pumpkin", + PumpkinStem = "minecraft:pumpkin_stem", + PurpleCandle = "minecraft:purple_candle", + PurpleCandleCake = "minecraft:purple_candle_cake", + PurpleCarpet = "minecraft:purple_carpet", + PurpleConcrete = "minecraft:purple_concrete", + PurpleConcretePowder = "minecraft:purple_concrete_powder", + PurpleGlazedTerracotta = "minecraft:purple_glazed_terracotta", + PurpleShulkerBox = "minecraft:purple_shulker_box", + PurpleStainedGlass = "minecraft:purple_stained_glass", + PurpleStainedGlassPane = "minecraft:purple_stained_glass_pane", + PurpleTerracotta = "minecraft:purple_terracotta", + PurpleWool = "minecraft:purple_wool", + PurpurBlock = "minecraft:purpur_block", + PurpurStairs = "minecraft:purpur_stairs", + QuartzBlock = "minecraft:quartz_block", + QuartzBricks = "minecraft:quartz_bricks", + QuartzOre = "minecraft:quartz_ore", + QuartzSlab = "minecraft:quartz_slab", + QuartzStairs = "minecraft:quartz_stairs", + Rail = "minecraft:rail", + RawCopperBlock = "minecraft:raw_copper_block", + RawGoldBlock = "minecraft:raw_gold_block", + RawIronBlock = "minecraft:raw_iron_block", + RedCandle = "minecraft:red_candle", + RedCandleCake = "minecraft:red_candle_cake", + RedCarpet = "minecraft:red_carpet", + RedConcrete = "minecraft:red_concrete", + RedConcretePowder = "minecraft:red_concrete_powder", + RedGlazedTerracotta = "minecraft:red_glazed_terracotta", + RedMushroom = "minecraft:red_mushroom", + RedMushroomBlock = "minecraft:red_mushroom_block", + RedNetherBrick = "minecraft:red_nether_brick", + RedNetherBrickStairs = "minecraft:red_nether_brick_stairs", + RedSandstone = "minecraft:red_sandstone", + RedSandstoneStairs = "minecraft:red_sandstone_stairs", + RedShulkerBox = "minecraft:red_shulker_box", + RedStainedGlass = "minecraft:red_stained_glass", + RedStainedGlassPane = "minecraft:red_stained_glass_pane", + RedTerracotta = "minecraft:red_terracotta", + RedTulip = "minecraft:red_tulip", + RedWool = "minecraft:red_wool", + RedstoneBlock = "minecraft:redstone_block", + RedstoneLamp = "minecraft:redstone_lamp", + RedstoneOre = "minecraft:redstone_ore", + RedstoneTorch = "minecraft:redstone_torch", + RedstoneWire = "minecraft:redstone_wire", + Reeds = "minecraft:reeds", + ReinforcedDeepslate = "minecraft:reinforced_deepslate", + RepeatingCommandBlock = "minecraft:repeating_command_block", + Reserved6 = "minecraft:reserved6", + RespawnAnchor = "minecraft:respawn_anchor", + RoseBush = "minecraft:rose_bush", + Sand = "minecraft:sand", + Sandstone = "minecraft:sandstone", + SandstoneSlab = "minecraft:sandstone_slab", + SandstoneStairs = "minecraft:sandstone_stairs", + Scaffolding = "minecraft:scaffolding", + Sculk = "minecraft:sculk", + SculkCatalyst = "minecraft:sculk_catalyst", + SculkSensor = "minecraft:sculk_sensor", + SculkShrieker = "minecraft:sculk_shrieker", + SculkVein = "minecraft:sculk_vein", + SeaLantern = "minecraft:sea_lantern", + SeaPickle = "minecraft:sea_pickle", + Seagrass = "minecraft:seagrass", + ShortGrass = "minecraft:short_grass", + Shroomlight = "minecraft:shroomlight", + SilverGlazedTerracotta = "minecraft:silver_glazed_terracotta", + Skull = "minecraft:skull", + Slime = "minecraft:slime", + SmallAmethystBud = "minecraft:small_amethyst_bud", + SmallDripleafBlock = "minecraft:small_dripleaf_block", + SmithingTable = "minecraft:smithing_table", + Smoker = "minecraft:smoker", + SmoothBasalt = "minecraft:smooth_basalt", + SmoothQuartzStairs = "minecraft:smooth_quartz_stairs", + SmoothRedSandstoneStairs = "minecraft:smooth_red_sandstone_stairs", + SmoothSandstoneStairs = "minecraft:smooth_sandstone_stairs", + SmoothStone = "minecraft:smooth_stone", + SmoothStoneSlab = "minecraft:smooth_stone_slab", + SnifferEgg = "minecraft:sniffer_egg", + Snow = "minecraft:snow", + SnowLayer = "minecraft:snow_layer", + SoulCampfire = "minecraft:soul_campfire", + SoulFire = "minecraft:soul_fire", + SoulLantern = "minecraft:soul_lantern", + SoulSand = "minecraft:soul_sand", + SoulSoil = "minecraft:soul_soil", + SoulTorch = "minecraft:soul_torch", + Sponge = "minecraft:sponge", + SporeBlossom = "minecraft:spore_blossom", + SpruceButton = "minecraft:spruce_button", + SpruceDoor = "minecraft:spruce_door", + SpruceDoubleSlab = "minecraft:spruce_double_slab", + SpruceFence = "minecraft:spruce_fence", + SpruceFenceGate = "minecraft:spruce_fence_gate", + SpruceHangingSign = "minecraft:spruce_hanging_sign", + SpruceLeaves = "minecraft:spruce_leaves", + SpruceLog = "minecraft:spruce_log", + SprucePlanks = "minecraft:spruce_planks", + SprucePressurePlate = "minecraft:spruce_pressure_plate", + SpruceSapling = "minecraft:spruce_sapling", + SpruceSlab = "minecraft:spruce_slab", + SpruceStairs = "minecraft:spruce_stairs", + SpruceStandingSign = "minecraft:spruce_standing_sign", + SpruceTrapdoor = "minecraft:spruce_trapdoor", + SpruceWallSign = "minecraft:spruce_wall_sign", + SpruceWood = "minecraft:spruce_wood", + StandingBanner = "minecraft:standing_banner", + StandingSign = "minecraft:standing_sign", + StickyPiston = "minecraft:sticky_piston", + StickyPistonArmCollision = "minecraft:sticky_piston_arm_collision", + Stone = "minecraft:stone", + StoneBlockSlab2 = "minecraft:stone_block_slab2", + StoneBlockSlab3 = "minecraft:stone_block_slab3", + StoneBlockSlab4 = "minecraft:stone_block_slab4", + StoneBrickSlab = "minecraft:stone_brick_slab", + StoneBrickStairs = "minecraft:stone_brick_stairs", + StoneButton = "minecraft:stone_button", + StonePressurePlate = "minecraft:stone_pressure_plate", + StoneStairs = "minecraft:stone_stairs", + Stonebrick = "minecraft:stonebrick", + Stonecutter = "minecraft:stonecutter", + StonecutterBlock = "minecraft:stonecutter_block", + StrippedAcaciaLog = "minecraft:stripped_acacia_log", + StrippedAcaciaWood = "minecraft:stripped_acacia_wood", + StrippedBambooBlock = "minecraft:stripped_bamboo_block", + StrippedBirchLog = "minecraft:stripped_birch_log", + StrippedBirchWood = "minecraft:stripped_birch_wood", + StrippedCherryLog = "minecraft:stripped_cherry_log", + StrippedCherryWood = "minecraft:stripped_cherry_wood", + StrippedCrimsonHyphae = "minecraft:stripped_crimson_hyphae", + StrippedCrimsonStem = "minecraft:stripped_crimson_stem", + StrippedDarkOakLog = "minecraft:stripped_dark_oak_log", + StrippedDarkOakWood = "minecraft:stripped_dark_oak_wood", + StrippedJungleLog = "minecraft:stripped_jungle_log", + StrippedJungleWood = "minecraft:stripped_jungle_wood", + StrippedMangroveLog = "minecraft:stripped_mangrove_log", + StrippedMangroveWood = "minecraft:stripped_mangrove_wood", + StrippedOakLog = "minecraft:stripped_oak_log", + StrippedOakWood = "minecraft:stripped_oak_wood", + StrippedSpruceLog = "minecraft:stripped_spruce_log", + StrippedSpruceWood = "minecraft:stripped_spruce_wood", + StrippedWarpedHyphae = "minecraft:stripped_warped_hyphae", + StrippedWarpedStem = "minecraft:stripped_warped_stem", + StructureBlock = "minecraft:structure_block", + StructureVoid = "minecraft:structure_void", + Sunflower = "minecraft:sunflower", + SuspiciousGravel = "minecraft:suspicious_gravel", + SuspiciousSand = "minecraft:suspicious_sand", + SweetBerryBush = "minecraft:sweet_berry_bush", + TallGrass = "minecraft:tall_grass", + Target = "minecraft:target", + TintedGlass = "minecraft:tinted_glass", + Tnt = "minecraft:tnt", + Torch = "minecraft:torch", + Torchflower = "minecraft:torchflower", + TorchflowerCrop = "minecraft:torchflower_crop", + Trapdoor = "minecraft:trapdoor", + TrappedChest = "minecraft:trapped_chest", + TrialSpawner = "minecraft:trial_spawner", + TripWire = "minecraft:trip_wire", + TripwireHook = "minecraft:tripwire_hook", + TubeCoral = "minecraft:tube_coral", + TubeCoralBlock = "minecraft:tube_coral_block", + TubeCoralFan = "minecraft:tube_coral_fan", + Tuff = "minecraft:tuff", + TuffBrickDoubleSlab = "minecraft:tuff_brick_double_slab", + TuffBrickSlab = "minecraft:tuff_brick_slab", + TuffBrickStairs = "minecraft:tuff_brick_stairs", + TuffBrickWall = "minecraft:tuff_brick_wall", + TuffBricks = "minecraft:tuff_bricks", + TuffDoubleSlab = "minecraft:tuff_double_slab", + TuffSlab = "minecraft:tuff_slab", + TuffStairs = "minecraft:tuff_stairs", + TuffWall = "minecraft:tuff_wall", + TurtleEgg = "minecraft:turtle_egg", + TwistingVines = "minecraft:twisting_vines", + UnderwaterTorch = "minecraft:underwater_torch", + UndyedShulkerBox = "minecraft:undyed_shulker_box", + Unknown = "minecraft:unknown", + UnlitRedstoneTorch = "minecraft:unlit_redstone_torch", + UnpoweredComparator = "minecraft:unpowered_comparator", + UnpoweredRepeater = "minecraft:unpowered_repeater", + Vault = "minecraft:vault", + VerdantFroglight = "minecraft:verdant_froglight", + Vine = "minecraft:vine", + WallBanner = "minecraft:wall_banner", + WallSign = "minecraft:wall_sign", + WarpedButton = "minecraft:warped_button", + WarpedDoor = "minecraft:warped_door", + WarpedDoubleSlab = "minecraft:warped_double_slab", + WarpedFence = "minecraft:warped_fence", + WarpedFenceGate = "minecraft:warped_fence_gate", + WarpedFungus = "minecraft:warped_fungus", + WarpedHangingSign = "minecraft:warped_hanging_sign", + WarpedHyphae = "minecraft:warped_hyphae", + WarpedNylium = "minecraft:warped_nylium", + WarpedPlanks = "minecraft:warped_planks", + WarpedPressurePlate = "minecraft:warped_pressure_plate", + WarpedRoots = "minecraft:warped_roots", + WarpedSlab = "minecraft:warped_slab", + WarpedStairs = "minecraft:warped_stairs", + WarpedStandingSign = "minecraft:warped_standing_sign", + WarpedStem = "minecraft:warped_stem", + WarpedTrapdoor = "minecraft:warped_trapdoor", + WarpedWallSign = "minecraft:warped_wall_sign", + WarpedWartBlock = "minecraft:warped_wart_block", + Water = "minecraft:water", + Waterlily = "minecraft:waterlily", + WaxedChiseledCopper = "minecraft:waxed_chiseled_copper", + WaxedCopper = "minecraft:waxed_copper", + WaxedCopperBulb = "minecraft:waxed_copper_bulb", + WaxedCopperDoor = "minecraft:waxed_copper_door", + WaxedCopperGrate = "minecraft:waxed_copper_grate", + WaxedCopperTrapdoor = "minecraft:waxed_copper_trapdoor", + WaxedCutCopper = "minecraft:waxed_cut_copper", + WaxedCutCopperSlab = "minecraft:waxed_cut_copper_slab", + WaxedCutCopperStairs = "minecraft:waxed_cut_copper_stairs", + WaxedDoubleCutCopperSlab = "minecraft:waxed_double_cut_copper_slab", + WaxedExposedChiseledCopper = "minecraft:waxed_exposed_chiseled_copper", + WaxedExposedCopper = "minecraft:waxed_exposed_copper", + WaxedExposedCopperBulb = "minecraft:waxed_exposed_copper_bulb", + WaxedExposedCopperDoor = "minecraft:waxed_exposed_copper_door", + WaxedExposedCopperGrate = "minecraft:waxed_exposed_copper_grate", + WaxedExposedCopperTrapdoor = "minecraft:waxed_exposed_copper_trapdoor", + WaxedExposedCutCopper = "minecraft:waxed_exposed_cut_copper", + WaxedExposedCutCopperSlab = "minecraft:waxed_exposed_cut_copper_slab", + WaxedExposedCutCopperStairs = "minecraft:waxed_exposed_cut_copper_stairs", + WaxedExposedDoubleCutCopperSlab = "minecraft:waxed_exposed_double_cut_copper_slab", + WaxedOxidizedChiseledCopper = "minecraft:waxed_oxidized_chiseled_copper", + WaxedOxidizedCopper = "minecraft:waxed_oxidized_copper", + WaxedOxidizedCopperBulb = "minecraft:waxed_oxidized_copper_bulb", + WaxedOxidizedCopperDoor = "minecraft:waxed_oxidized_copper_door", + WaxedOxidizedCopperGrate = "minecraft:waxed_oxidized_copper_grate", + WaxedOxidizedCopperTrapdoor = "minecraft:waxed_oxidized_copper_trapdoor", + WaxedOxidizedCutCopper = "minecraft:waxed_oxidized_cut_copper", + WaxedOxidizedCutCopperSlab = "minecraft:waxed_oxidized_cut_copper_slab", + WaxedOxidizedCutCopperStairs = "minecraft:waxed_oxidized_cut_copper_stairs", + WaxedOxidizedDoubleCutCopperSlab = "minecraft:waxed_oxidized_double_cut_copper_slab", + WaxedWeatheredChiseledCopper = "minecraft:waxed_weathered_chiseled_copper", + WaxedWeatheredCopper = "minecraft:waxed_weathered_copper", + WaxedWeatheredCopperBulb = "minecraft:waxed_weathered_copper_bulb", + WaxedWeatheredCopperDoor = "minecraft:waxed_weathered_copper_door", + WaxedWeatheredCopperGrate = "minecraft:waxed_weathered_copper_grate", + WaxedWeatheredCopperTrapdoor = "minecraft:waxed_weathered_copper_trapdoor", + WaxedWeatheredCutCopper = "minecraft:waxed_weathered_cut_copper", + WaxedWeatheredCutCopperSlab = "minecraft:waxed_weathered_cut_copper_slab", + WaxedWeatheredCutCopperStairs = "minecraft:waxed_weathered_cut_copper_stairs", + WaxedWeatheredDoubleCutCopperSlab = "minecraft:waxed_weathered_double_cut_copper_slab", + WeatheredChiseledCopper = "minecraft:weathered_chiseled_copper", + WeatheredCopper = "minecraft:weathered_copper", + WeatheredCopperBulb = "minecraft:weathered_copper_bulb", + WeatheredCopperDoor = "minecraft:weathered_copper_door", + WeatheredCopperGrate = "minecraft:weathered_copper_grate", + WeatheredCopperTrapdoor = "minecraft:weathered_copper_trapdoor", + WeatheredCutCopper = "minecraft:weathered_cut_copper", + WeatheredCutCopperSlab = "minecraft:weathered_cut_copper_slab", + WeatheredCutCopperStairs = "minecraft:weathered_cut_copper_stairs", + WeatheredDoubleCutCopperSlab = "minecraft:weathered_double_cut_copper_slab", + Web = "minecraft:web", + WeepingVines = "minecraft:weeping_vines", + Wheat = "minecraft:wheat", + WhiteCandle = "minecraft:white_candle", + WhiteCandleCake = "minecraft:white_candle_cake", + WhiteCarpet = "minecraft:white_carpet", + WhiteConcrete = "minecraft:white_concrete", + WhiteConcretePowder = "minecraft:white_concrete_powder", + WhiteGlazedTerracotta = "minecraft:white_glazed_terracotta", + WhiteShulkerBox = "minecraft:white_shulker_box", + WhiteStainedGlass = "minecraft:white_stained_glass", + WhiteStainedGlassPane = "minecraft:white_stained_glass_pane", + WhiteTerracotta = "minecraft:white_terracotta", + WhiteTulip = "minecraft:white_tulip", + WhiteWool = "minecraft:white_wool", + WitherRose = "minecraft:wither_rose", + WoodenButton = "minecraft:wooden_button", + WoodenDoor = "minecraft:wooden_door", + WoodenPressurePlate = "minecraft:wooden_pressure_plate", + YellowCandle = "minecraft:yellow_candle", + YellowCandleCake = "minecraft:yellow_candle_cake", + YellowCarpet = "minecraft:yellow_carpet", + YellowConcrete = "minecraft:yellow_concrete", + YellowConcretePowder = "minecraft:yellow_concrete_powder", + YellowFlower = "minecraft:yellow_flower", + YellowGlazedTerracotta = "minecraft:yellow_glazed_terracotta", + YellowShulkerBox = "minecraft:yellow_shulker_box", + YellowStainedGlass = "minecraft:yellow_stained_glass", + YellowStainedGlassPane = "minecraft:yellow_stained_glass_pane", + YellowTerracotta = "minecraft:yellow_terracotta", + YellowWool = "minecraft:yellow_wool", +} +/** + * Union type equivalent of the MinecraftBlockTypes enum. + */ +export type MinecraftBlockTypesUnion = keyof typeof MinecraftBlockTypes; +/** + * All supported states and their types for MinecraftBlockTypes + */ +export type BlockStateSuperset = { + ["active"]?: boolean; + ["age"]?: number; + ["age_bit"]?: boolean; + ["allow_underwater_bit"]?: boolean; + ["attached_bit"]?: boolean; + ["attachment"]?: string; + ["bamboo_leaf_size"]?: string; + ["bamboo_stalk_thickness"]?: string; + ["big_dripleaf_head"]?: boolean; + ["big_dripleaf_tilt"]?: string; + ["bite_counter"]?: number; + ["block_light_level"]?: number; + ["bloom"]?: boolean; + ["books_stored"]?: number; + ["brewing_stand_slot_a_bit"]?: boolean; + ["brewing_stand_slot_b_bit"]?: boolean; + ["brewing_stand_slot_c_bit"]?: boolean; + ["brushed_progress"]?: number; + ["button_pressed_bit"]?: boolean; + ["can_summon"]?: boolean; + ["candles"]?: number; + ["cauldron_liquid"]?: string; + ["chemistry_table_type"]?: string; + ["chisel_type"]?: string; + ["cluster_count"]?: number; + ["color"]?: string; + ["color_bit"]?: boolean; + ["composter_fill_level"]?: number; + ["conditional_bit"]?: boolean; + ["coral_color"]?: string; + ["coral_direction"]?: number; + ["coral_fan_direction"]?: number; + ["coral_hang_type_bit"]?: boolean; + ["covered_bit"]?: boolean; + ["cracked_state"]?: string; + ["crafting"]?: boolean; + ["damage"]?: string; + ["dead_bit"]?: boolean; + ["deprecated"]?: number; + ["direction"]?: number; + ["dirt_type"]?: string; + ["disarmed_bit"]?: boolean; + ["door_hinge_bit"]?: boolean; + ["double_plant_type"]?: string; + ["drag_down"]?: boolean; + ["dripstone_thickness"]?: string; + ["end_portal_eye_bit"]?: boolean; + ["explode_bit"]?: boolean; + ["extinguished"]?: boolean; + ["facing_direction"]?: number; + ["fill_level"]?: number; + ["flower_type"]?: string; + ["ground_sign_direction"]?: number; + ["growing_plant_age"]?: number; + ["growth"]?: number; + ["hanging"]?: boolean; + ["head_piece_bit"]?: boolean; + ["height"]?: number; + ["honey_level"]?: number; + ["huge_mushroom_bits"]?: number; + ["in_wall_bit"]?: boolean; + ["infiniburn_bit"]?: boolean; + ["item_frame_map_bit"]?: boolean; + ["item_frame_photo_bit"]?: boolean; + ["kelp_age"]?: number; + ["lever_direction"]?: string; + ["liquid_depth"]?: number; + ["lit"]?: boolean; + ["minecraft:block_face"]?: string; + ["minecraft:cardinal_direction"]?: string; + ["minecraft:facing_direction"]?: string; + ["minecraft:vertical_half"]?: string; + ["moisturized_amount"]?: number; + ["monster_egg_stone_type"]?: string; + ["multi_face_direction_bits"]?: number; + ["new_leaf_type"]?: string; + ["new_log_type"]?: string; + ["no_drop_bit"]?: boolean; + ["occupied_bit"]?: boolean; + ["old_leaf_type"]?: string; + ["old_log_type"]?: string; + ["ominous"]?: boolean; + ["open_bit"]?: boolean; + ["orientation"]?: string; + ["output_lit_bit"]?: boolean; + ["output_subtract_bit"]?: boolean; + ["persistent_bit"]?: boolean; + ["pillar_axis"]?: string; + ["portal_axis"]?: string; + ["powered_bit"]?: boolean; + ["prismarine_block_type"]?: string; + ["propagule_stage"]?: number; + ["rail_data_bit"]?: boolean; + ["rail_direction"]?: number; + ["redstone_signal"]?: number; + ["repeater_delay"]?: number; + ["respawn_anchor_charge"]?: number; + ["rotation"]?: number; + ["sand_stone_type"]?: string; + ["sand_type"]?: string; + ["sapling_type"]?: string; + ["sculk_sensor_phase"]?: number; + ["sea_grass_type"]?: string; + ["sponge_type"]?: string; + ["stability"]?: number; + ["stability_check"]?: boolean; + ["stone_brick_type"]?: string; + ["stone_slab_type"]?: string; + ["stone_slab_type_2"]?: string; + ["stone_slab_type_3"]?: string; + ["stone_slab_type_4"]?: string; + ["stone_type"]?: string; + ["stripped_bit"]?: boolean; + ["structure_block_type"]?: string; + ["structure_void_type"]?: string; + ["suspended_bit"]?: boolean; + ["tall_grass_type"]?: string; + ["toggle_bit"]?: boolean; + ["top_slot_bit"]?: boolean; + ["torch_facing_direction"]?: string; + ["trial_spawner_state"]?: number; + ["triggered_bit"]?: boolean; + ["turtle_egg_count"]?: string; + ["twisting_vines_age"]?: number; + ["update_bit"]?: boolean; + ["upper_block_bit"]?: boolean; + ["upside_down_bit"]?: boolean; + ["vault_state"]?: string; + ["vine_direction_bits"]?: number; + ["wall_block_type"]?: string; + ["wall_connection_type_east"]?: string; + ["wall_connection_type_north"]?: string; + ["wall_connection_type_south"]?: string; + ["wall_connection_type_west"]?: string; + ["wall_post_bit"]?: boolean; + ["weeping_vines_age"]?: number; + ["weirdo_direction"]?: number; + ["wood_type"]?: string; +}; +/** + * States specific to AcaciaButton + */ +export type AcaciaButtonStates = Pick; +/** + * States specific to AcaciaDoor + */ +export type AcaciaDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to AcaciaDoubleSlab + */ +export type AcaciaDoubleSlabStates = Pick; +/** + * States specific to AcaciaFenceGate + */ +export type AcaciaFenceGateStates = Pick; +/** + * States specific to AcaciaHangingSign + */ +export type AcaciaHangingSignStates = Pick< + BlockStateSuperset, + "attached_bit" | "facing_direction" | "ground_sign_direction" | "hanging" +>; +/** + * States specific to AcaciaLeaves + */ +export type AcaciaLeavesStates = Pick; +/** + * States specific to AcaciaLog + */ +export type AcaciaLogStates = Pick; +/** + * States specific to AcaciaPressurePlate + */ +export type AcaciaPressurePlateStates = Pick; +/** + * States specific to AcaciaSapling + */ +export type AcaciaSaplingStates = Pick; +/** + * States specific to AcaciaSlab + */ +export type AcaciaSlabStates = Pick; +/** + * States specific to AcaciaStairs + */ +export type AcaciaStairsStates = Pick; +/** + * States specific to AcaciaStandingSign + */ +export type AcaciaStandingSignStates = Pick; +/** + * States specific to AcaciaTrapdoor + */ +export type AcaciaTrapdoorStates = Pick; +/** + * States specific to AcaciaWallSign + */ +export type AcaciaWallSignStates = Pick; +/** + * States specific to AcaciaWood + */ +export type AcaciaWoodStates = Pick; +/** + * States specific to ActivatorRail + */ +export type ActivatorRailStates = Pick; +/** + * States specific to AmethystCluster + */ +export type AmethystClusterStates = Pick; +/** + * States specific to AndesiteStairs + */ +export type AndesiteStairsStates = Pick; +/** + * States specific to Anvil + */ +export type AnvilStates = Pick; +/** + * States specific to AzaleaLeaves + */ +export type AzaleaLeavesStates = Pick; +/** + * States specific to AzaleaLeavesFlowered + */ +export type AzaleaLeavesFloweredStates = Pick; +/** + * States specific to Bamboo + */ +export type BambooStates = Pick; +/** + * States specific to BambooBlock + */ +export type BambooBlockStates = Pick; +/** + * States specific to BambooButton + */ +export type BambooButtonStates = Pick; +/** + * States specific to BambooDoor + */ +export type BambooDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to BambooDoubleSlab + */ +export type BambooDoubleSlabStates = Pick; +/** + * States specific to BambooFenceGate + */ +export type BambooFenceGateStates = Pick; +/** + * States specific to BambooHangingSign + */ +export type BambooHangingSignStates = Pick< + BlockStateSuperset, + "attached_bit" | "facing_direction" | "ground_sign_direction" | "hanging" +>; +/** + * States specific to BambooMosaicDoubleSlab + */ +export type BambooMosaicDoubleSlabStates = Pick; +/** + * States specific to BambooMosaicSlab + */ +export type BambooMosaicSlabStates = Pick; +/** + * States specific to BambooMosaicStairs + */ +export type BambooMosaicStairsStates = Pick; +/** + * States specific to BambooPressurePlate + */ +export type BambooPressurePlateStates = Pick; +/** + * States specific to BambooSapling + */ +export type BambooSaplingStates = Pick; +/** + * States specific to BambooSlab + */ +export type BambooSlabStates = Pick; +/** + * States specific to BambooStairs + */ +export type BambooStairsStates = Pick; +/** + * States specific to BambooStandingSign + */ +export type BambooStandingSignStates = Pick; +/** + * States specific to BambooTrapdoor + */ +export type BambooTrapdoorStates = Pick; +/** + * States specific to BambooWallSign + */ +export type BambooWallSignStates = Pick; +/** + * States specific to Barrel + */ +export type BarrelStates = Pick; +/** + * States specific to Basalt + */ +export type BasaltStates = Pick; +/** + * States specific to Bed + */ +export type BedStates = Pick; +/** + * States specific to Bedrock + */ +export type BedrockStates = Pick; +/** + * States specific to BeeNest + */ +export type BeeNestStates = Pick; +/** + * States specific to Beehive + */ +export type BeehiveStates = Pick; +/** + * States specific to Beetroot + */ +export type BeetrootStates = Pick; +/** + * States specific to Bell + */ +export type BellStates = Pick; +/** + * States specific to BigDripleaf + */ +export type BigDripleafStates = Pick< + BlockStateSuperset, + "big_dripleaf_head" | "big_dripleaf_tilt" | "minecraft:cardinal_direction" +>; +/** + * States specific to BirchButton + */ +export type BirchButtonStates = Pick; +/** + * States specific to BirchDoor + */ +export type BirchDoorStates = Pick; +/** + * States specific to BirchDoubleSlab + */ +export type BirchDoubleSlabStates = Pick; +/** + * States specific to BirchFenceGate + */ +export type BirchFenceGateStates = Pick; +/** + * States specific to BirchHangingSign + */ +export type BirchHangingSignStates = Pick< + BlockStateSuperset, + "attached_bit" | "facing_direction" | "ground_sign_direction" | "hanging" +>; +/** + * States specific to BirchLeaves + */ +export type BirchLeavesStates = Pick; +/** + * States specific to BirchLog + */ +export type BirchLogStates = Pick; +/** + * States specific to BirchPressurePlate + */ +export type BirchPressurePlateStates = Pick; +/** + * States specific to BirchSapling + */ +export type BirchSaplingStates = Pick; +/** + * States specific to BirchSlab + */ +export type BirchSlabStates = Pick; +/** + * States specific to BirchStairs + */ +export type BirchStairsStates = Pick; +/** + * States specific to BirchStandingSign + */ +export type BirchStandingSignStates = Pick; +/** + * States specific to BirchTrapdoor + */ +export type BirchTrapdoorStates = Pick; +/** + * States specific to BirchWallSign + */ +export type BirchWallSignStates = Pick; +/** + * States specific to BirchWood + */ +export type BirchWoodStates = Pick; +/** + * States specific to BlackCandle + */ +export type BlackCandleStates = Pick; +/** + * States specific to BlackCandleCake + */ +export type BlackCandleCakeStates = Pick; +/** + * States specific to BlackGlazedTerracotta + */ +export type BlackGlazedTerracottaStates = Pick; +/** + * States specific to BlackstoneDoubleSlab + */ +export type BlackstoneDoubleSlabStates = Pick; +/** + * States specific to BlackstoneSlab + */ +export type BlackstoneSlabStates = Pick; +/** + * States specific to BlackstoneStairs + */ +export type BlackstoneStairsStates = Pick; +/** + * States specific to BlackstoneWall + */ +export type BlackstoneWallStates = Pick< + BlockStateSuperset, + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to BlastFurnace + */ +export type BlastFurnaceStates = Pick; +/** + * States specific to BlueCandle + */ +export type BlueCandleStates = Pick; +/** + * States specific to BlueCandleCake + */ +export type BlueCandleCakeStates = Pick; +/** + * States specific to BlueGlazedTerracotta + */ +export type BlueGlazedTerracottaStates = Pick; +/** + * States specific to BoneBlock + */ +export type BoneBlockStates = Pick; +/** + * States specific to BorderBlock + */ +export type BorderBlockStates = Pick< + BlockStateSuperset, + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to BrainCoralFan + */ +export type BrainCoralFanStates = Pick; +/** + * States specific to BrewingStand + */ +export type BrewingStandStates = Pick< + BlockStateSuperset, + "brewing_stand_slot_a_bit" | "brewing_stand_slot_b_bit" | "brewing_stand_slot_c_bit" +>; +/** + * States specific to BrickSlab + */ +export type BrickSlabStates = Pick; +/** + * States specific to BrickStairs + */ +export type BrickStairsStates = Pick; +/** + * States specific to BrownCandle + */ +export type BrownCandleStates = Pick; +/** + * States specific to BrownCandleCake + */ +export type BrownCandleCakeStates = Pick; +/** + * States specific to BrownGlazedTerracotta + */ +export type BrownGlazedTerracottaStates = Pick; +/** + * States specific to BrownMushroomBlock + */ +export type BrownMushroomBlockStates = Pick; +/** + * States specific to BubbleColumn + */ +export type BubbleColumnStates = Pick; +/** + * States specific to BubbleCoralFan + */ +export type BubbleCoralFanStates = Pick; +/** + * States specific to Cactus + */ +export type CactusStates = Pick; +/** + * States specific to Cake + */ +export type CakeStates = Pick; +/** + * States specific to CalibratedSculkSensor + */ +export type CalibratedSculkSensorStates = Pick< + BlockStateSuperset, + "minecraft:cardinal_direction" | "sculk_sensor_phase" +>; +/** + * States specific to Campfire + */ +export type CampfireStates = Pick; +/** + * States specific to Candle + */ +export type CandleStates = Pick; +/** + * States specific to CandleCake + */ +export type CandleCakeStates = Pick; +/** + * States specific to Carrots + */ +export type CarrotsStates = Pick; +/** + * States specific to CarvedPumpkin + */ +export type CarvedPumpkinStates = Pick; +/** + * States specific to Cauldron + */ +export type CauldronStates = Pick; +/** + * States specific to CaveVines + */ +export type CaveVinesStates = Pick; +/** + * States specific to CaveVinesBodyWithBerries + */ +export type CaveVinesBodyWithBerriesStates = Pick; +/** + * States specific to CaveVinesHeadWithBerries + */ +export type CaveVinesHeadWithBerriesStates = Pick; +/** + * States specific to Chain + */ +export type ChainStates = Pick; +/** + * States specific to ChainCommandBlock + */ +export type ChainCommandBlockStates = Pick; +/** + * States specific to ChemistryTable + */ +export type ChemistryTableStates = Pick; +/** + * States specific to CherryButton + */ +export type CherryButtonStates = Pick; +/** + * States specific to CherryDoor + */ +export type CherryDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to CherryDoubleSlab + */ +export type CherryDoubleSlabStates = Pick; +/** + * States specific to CherryFenceGate + */ +export type CherryFenceGateStates = Pick; +/** + * States specific to CherryHangingSign + */ +export type CherryHangingSignStates = Pick< + BlockStateSuperset, + "attached_bit" | "facing_direction" | "ground_sign_direction" | "hanging" +>; +/** + * States specific to CherryLeaves + */ +export type CherryLeavesStates = Pick; +/** + * States specific to CherryLog + */ +export type CherryLogStates = Pick; +/** + * States specific to CherryPressurePlate + */ +export type CherryPressurePlateStates = Pick; +/** + * States specific to CherrySapling + */ +export type CherrySaplingStates = Pick; +/** + * States specific to CherrySlab + */ +export type CherrySlabStates = Pick; +/** + * States specific to CherryStairs + */ +export type CherryStairsStates = Pick; +/** + * States specific to CherryStandingSign + */ +export type CherryStandingSignStates = Pick; +/** + * States specific to CherryTrapdoor + */ +export type CherryTrapdoorStates = Pick; +/** + * States specific to CherryWallSign + */ +export type CherryWallSignStates = Pick; +/** + * States specific to CherryWood + */ +export type CherryWoodStates = Pick; +/** + * States specific to Chest + */ +export type ChestStates = Pick; +/** + * States specific to ChiseledBookshelf + */ +export type ChiseledBookshelfStates = Pick; +/** + * States specific to ChorusFlower + */ +export type ChorusFlowerStates = Pick; +/** + * States specific to CobbledDeepslateDoubleSlab + */ +export type CobbledDeepslateDoubleSlabStates = Pick; +/** + * States specific to CobbledDeepslateSlab + */ +export type CobbledDeepslateSlabStates = Pick; +/** + * States specific to CobbledDeepslateStairs + */ +export type CobbledDeepslateStairsStates = Pick; +/** + * States specific to CobbledDeepslateWall + */ +export type CobbledDeepslateWallStates = Pick< + BlockStateSuperset, + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to CobblestoneSlab + */ +export type CobblestoneSlabStates = Pick; +/** + * States specific to CobblestoneWall + */ +export type CobblestoneWallStates = Pick< + BlockStateSuperset, + | "wall_block_type" + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to Cocoa + */ +export type CocoaStates = Pick; +/** + * States specific to ColoredTorchBp + */ +export type ColoredTorchBpStates = Pick; +/** + * States specific to ColoredTorchRg + */ +export type ColoredTorchRgStates = Pick; +/** + * States specific to CommandBlock + */ +export type CommandBlockStates = Pick; +/** + * States specific to Composter + */ +export type ComposterStates = Pick; +/** + * States specific to CopperBulb + */ +export type CopperBulbStates = Pick; +/** + * States specific to CopperDoor + */ +export type CopperDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to CopperTrapdoor + */ +export type CopperTrapdoorStates = Pick; +/** + * States specific to CoralFanHang + */ +export type CoralFanHangStates = Pick; +/** + * States specific to CoralFanHang2 + */ +export type CoralFanHang2States = Pick; +/** + * States specific to CoralFanHang3 + */ +export type CoralFanHang3States = Pick; +/** + * States specific to Crafter + */ +export type CrafterStates = Pick; +/** + * States specific to CrimsonButton + */ +export type CrimsonButtonStates = Pick; +/** + * States specific to CrimsonDoor + */ +export type CrimsonDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to CrimsonDoubleSlab + */ +export type CrimsonDoubleSlabStates = Pick; +/** + * States specific to CrimsonFenceGate + */ +export type CrimsonFenceGateStates = Pick; +/** + * States specific to CrimsonHangingSign + */ +export type CrimsonHangingSignStates = Pick< + BlockStateSuperset, + "attached_bit" | "facing_direction" | "ground_sign_direction" | "hanging" +>; +/** + * States specific to CrimsonHyphae + */ +export type CrimsonHyphaeStates = Pick; +/** + * States specific to CrimsonPressurePlate + */ +export type CrimsonPressurePlateStates = Pick; +/** + * States specific to CrimsonSlab + */ +export type CrimsonSlabStates = Pick; +/** + * States specific to CrimsonStairs + */ +export type CrimsonStairsStates = Pick; +/** + * States specific to CrimsonStandingSign + */ +export type CrimsonStandingSignStates = Pick; +/** + * States specific to CrimsonStem + */ +export type CrimsonStemStates = Pick; +/** + * States specific to CrimsonTrapdoor + */ +export type CrimsonTrapdoorStates = Pick; +/** + * States specific to CrimsonWallSign + */ +export type CrimsonWallSignStates = Pick; +/** + * States specific to CutCopperSlab + */ +export type CutCopperSlabStates = Pick; +/** + * States specific to CutCopperStairs + */ +export type CutCopperStairsStates = Pick; +/** + * States specific to CyanCandle + */ +export type CyanCandleStates = Pick; +/** + * States specific to CyanCandleCake + */ +export type CyanCandleCakeStates = Pick; +/** + * States specific to CyanGlazedTerracotta + */ +export type CyanGlazedTerracottaStates = Pick; +/** + * States specific to DarkOakButton + */ +export type DarkOakButtonStates = Pick; +/** + * States specific to DarkOakDoor + */ +export type DarkOakDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to DarkOakDoubleSlab + */ +export type DarkOakDoubleSlabStates = Pick; +/** + * States specific to DarkOakFenceGate + */ +export type DarkOakFenceGateStates = Pick; +/** + * States specific to DarkOakHangingSign + */ +export type DarkOakHangingSignStates = Pick< + BlockStateSuperset, + "attached_bit" | "facing_direction" | "ground_sign_direction" | "hanging" +>; +/** + * States specific to DarkOakLeaves + */ +export type DarkOakLeavesStates = Pick; +/** + * States specific to DarkOakLog + */ +export type DarkOakLogStates = Pick; +/** + * States specific to DarkOakPressurePlate + */ +export type DarkOakPressurePlateStates = Pick; +/** + * States specific to DarkOakSapling + */ +export type DarkOakSaplingStates = Pick; +/** + * States specific to DarkOakSlab + */ +export type DarkOakSlabStates = Pick; +/** + * States specific to DarkOakStairs + */ +export type DarkOakStairsStates = Pick; +/** + * States specific to DarkOakTrapdoor + */ +export type DarkOakTrapdoorStates = Pick; +/** + * States specific to DarkOakWood + */ +export type DarkOakWoodStates = Pick; +/** + * States specific to DarkPrismarineStairs + */ +export type DarkPrismarineStairsStates = Pick; +/** + * States specific to DarkoakStandingSign + */ +export type DarkoakStandingSignStates = Pick; +/** + * States specific to DarkoakWallSign + */ +export type DarkoakWallSignStates = Pick; +/** + * States specific to DaylightDetector + */ +export type DaylightDetectorStates = Pick; +/** + * States specific to DaylightDetectorInverted + */ +export type DaylightDetectorInvertedStates = Pick; +/** + * States specific to DeadBrainCoralFan + */ +export type DeadBrainCoralFanStates = Pick; +/** + * States specific to DeadBubbleCoralFan + */ +export type DeadBubbleCoralFanStates = Pick; +/** + * States specific to DeadFireCoralFan + */ +export type DeadFireCoralFanStates = Pick; +/** + * States specific to DeadHornCoralFan + */ +export type DeadHornCoralFanStates = Pick; +/** + * States specific to DeadTubeCoralFan + */ +export type DeadTubeCoralFanStates = Pick; +/** + * States specific to DecoratedPot + */ +export type DecoratedPotStates = Pick; +/** + * States specific to Deepslate + */ +export type DeepslateStates = Pick; +/** + * States specific to DeepslateBrickDoubleSlab + */ +export type DeepslateBrickDoubleSlabStates = Pick; +/** + * States specific to DeepslateBrickSlab + */ +export type DeepslateBrickSlabStates = Pick; +/** + * States specific to DeepslateBrickStairs + */ +export type DeepslateBrickStairsStates = Pick; +/** + * States specific to DeepslateBrickWall + */ +export type DeepslateBrickWallStates = Pick< + BlockStateSuperset, + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to DeepslateTileDoubleSlab + */ +export type DeepslateTileDoubleSlabStates = Pick; +/** + * States specific to DeepslateTileSlab + */ +export type DeepslateTileSlabStates = Pick; +/** + * States specific to DeepslateTileStairs + */ +export type DeepslateTileStairsStates = Pick; +/** + * States specific to DeepslateTileWall + */ +export type DeepslateTileWallStates = Pick< + BlockStateSuperset, + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to DetectorRail + */ +export type DetectorRailStates = Pick; +/** + * States specific to DioriteStairs + */ +export type DioriteStairsStates = Pick; +/** + * States specific to Dirt + */ +export type DirtStates = Pick; +/** + * States specific to Dispenser + */ +export type DispenserStates = Pick; +/** + * States specific to DoubleCutCopperSlab + */ +export type DoubleCutCopperSlabStates = Pick; +/** + * States specific to DoubleStoneBlockSlab + */ +export type DoubleStoneBlockSlabStates = Pick; +/** + * States specific to DoubleStoneBlockSlab2 + */ +export type DoubleStoneBlockSlab2States = Pick; +/** + * States specific to DoubleStoneBlockSlab3 + */ +export type DoubleStoneBlockSlab3States = Pick; +/** + * States specific to DoubleStoneBlockSlab4 + */ +export type DoubleStoneBlockSlab4States = Pick; +/** + * States specific to Dropper + */ +export type DropperStates = Pick; +/** + * States specific to EndBrickStairs + */ +export type EndBrickStairsStates = Pick; +/** + * States specific to EndPortalFrame + */ +export type EndPortalFrameStates = Pick; +/** + * States specific to EndRod + */ +export type EndRodStates = Pick; +/** + * States specific to EnderChest + */ +export type EnderChestStates = Pick; +/** + * States specific to ExposedCopperBulb + */ +export type ExposedCopperBulbStates = Pick; +/** + * States specific to ExposedCopperDoor + */ +export type ExposedCopperDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to ExposedCopperTrapdoor + */ +export type ExposedCopperTrapdoorStates = Pick; +/** + * States specific to ExposedCutCopperSlab + */ +export type ExposedCutCopperSlabStates = Pick; +/** + * States specific to ExposedCutCopperStairs + */ +export type ExposedCutCopperStairsStates = Pick; +/** + * States specific to ExposedDoubleCutCopperSlab + */ +export type ExposedDoubleCutCopperSlabStates = Pick; +/** + * States specific to Farmland + */ +export type FarmlandStates = Pick; +/** + * States specific to FenceGate + */ +export type FenceGateStates = Pick; +/** + * States specific to Fire + */ +export type FireStates = Pick; +/** + * States specific to FireCoralFan + */ +export type FireCoralFanStates = Pick; +/** + * States specific to FlowerPot + */ +export type FlowerPotStates = Pick; +/** + * States specific to FlowingLava + */ +export type FlowingLavaStates = Pick; +/** + * States specific to FlowingWater + */ +export type FlowingWaterStates = Pick; +/** + * States specific to Frame + */ +export type FrameStates = Pick; +/** + * States specific to FrostedIce + */ +export type FrostedIceStates = Pick; +/** + * States specific to Furnace + */ +export type FurnaceStates = Pick; +/** + * States specific to GlowFrame + */ +export type GlowFrameStates = Pick< + BlockStateSuperset, + "facing_direction" | "item_frame_map_bit" | "item_frame_photo_bit" +>; +/** + * States specific to GlowLichen + */ +export type GlowLichenStates = Pick; +/** + * States specific to GoldenRail + */ +export type GoldenRailStates = Pick; +/** + * States specific to GraniteStairs + */ +export type GraniteStairsStates = Pick; +/** + * States specific to GrayCandle + */ +export type GrayCandleStates = Pick; +/** + * States specific to GrayCandleCake + */ +export type GrayCandleCakeStates = Pick; +/** + * States specific to GrayGlazedTerracotta + */ +export type GrayGlazedTerracottaStates = Pick; +/** + * States specific to GreenCandle + */ +export type GreenCandleStates = Pick; +/** + * States specific to GreenCandleCake + */ +export type GreenCandleCakeStates = Pick; +/** + * States specific to GreenGlazedTerracotta + */ +export type GreenGlazedTerracottaStates = Pick; +/** + * States specific to Grindstone + */ +export type GrindstoneStates = Pick; +/** + * States specific to HayBlock + */ +export type HayBlockStates = Pick; +/** + * States specific to HeavyWeightedPressurePlate + */ +export type HeavyWeightedPressurePlateStates = Pick; +/** + * States specific to Hopper + */ +export type HopperStates = Pick; +/** + * States specific to HornCoralFan + */ +export type HornCoralFanStates = Pick; +/** + * States specific to InfestedDeepslate + */ +export type InfestedDeepslateStates = Pick; +/** + * States specific to IronDoor + */ +export type IronDoorStates = Pick; +/** + * States specific to IronTrapdoor + */ +export type IronTrapdoorStates = Pick; +/** + * States specific to Jigsaw + */ +export type JigsawStates = Pick; +/** + * States specific to JungleButton + */ +export type JungleButtonStates = Pick; +/** + * States specific to JungleDoor + */ +export type JungleDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to JungleDoubleSlab + */ +export type JungleDoubleSlabStates = Pick; +/** + * States specific to JungleFenceGate + */ +export type JungleFenceGateStates = Pick; +/** + * States specific to JungleHangingSign + */ +export type JungleHangingSignStates = Pick< + BlockStateSuperset, + "attached_bit" | "facing_direction" | "ground_sign_direction" | "hanging" +>; +/** + * States specific to JungleLeaves + */ +export type JungleLeavesStates = Pick; +/** + * States specific to JungleLog + */ +export type JungleLogStates = Pick; +/** + * States specific to JunglePressurePlate + */ +export type JunglePressurePlateStates = Pick; +/** + * States specific to JungleSapling + */ +export type JungleSaplingStates = Pick; +/** + * States specific to JungleSlab + */ +export type JungleSlabStates = Pick; +/** + * States specific to JungleStairs + */ +export type JungleStairsStates = Pick; +/** + * States specific to JungleStandingSign + */ +export type JungleStandingSignStates = Pick; +/** + * States specific to JungleTrapdoor + */ +export type JungleTrapdoorStates = Pick; +/** + * States specific to JungleWallSign + */ +export type JungleWallSignStates = Pick; +/** + * States specific to JungleWood + */ +export type JungleWoodStates = Pick; +/** + * States specific to Kelp + */ +export type KelpStates = Pick; +/** + * States specific to Ladder + */ +export type LadderStates = Pick; +/** + * States specific to Lantern + */ +export type LanternStates = Pick; +/** + * States specific to LargeAmethystBud + */ +export type LargeAmethystBudStates = Pick; +/** + * States specific to LargeFern + */ +export type LargeFernStates = Pick; +/** + * States specific to Lava + */ +export type LavaStates = Pick; +/** + * States specific to Lectern + */ +export type LecternStates = Pick; +/** + * States specific to Lever + */ +export type LeverStates = Pick; +/** + * States specific to LightBlock + */ +export type LightBlockStates = Pick; +/** + * States specific to LightBlueCandle + */ +export type LightBlueCandleStates = Pick; +/** + * States specific to LightBlueCandleCake + */ +export type LightBlueCandleCakeStates = Pick; +/** + * States specific to LightBlueGlazedTerracotta + */ +export type LightBlueGlazedTerracottaStates = Pick; +/** + * States specific to LightGrayCandle + */ +export type LightGrayCandleStates = Pick; +/** + * States specific to LightGrayCandleCake + */ +export type LightGrayCandleCakeStates = Pick; +/** + * States specific to LightWeightedPressurePlate + */ +export type LightWeightedPressurePlateStates = Pick; +/** + * States specific to LightningRod + */ +export type LightningRodStates = Pick; +/** + * States specific to Lilac + */ +export type LilacStates = Pick; +/** + * States specific to LimeCandle + */ +export type LimeCandleStates = Pick; +/** + * States specific to LimeCandleCake + */ +export type LimeCandleCakeStates = Pick; +/** + * States specific to LimeGlazedTerracotta + */ +export type LimeGlazedTerracottaStates = Pick; +/** + * States specific to LitBlastFurnace + */ +export type LitBlastFurnaceStates = Pick; +/** + * States specific to LitFurnace + */ +export type LitFurnaceStates = Pick; +/** + * States specific to LitPumpkin + */ +export type LitPumpkinStates = Pick; +/** + * States specific to LitSmoker + */ +export type LitSmokerStates = Pick; +/** + * States specific to Loom + */ +export type LoomStates = Pick; +/** + * States specific to MagentaCandle + */ +export type MagentaCandleStates = Pick; +/** + * States specific to MagentaCandleCake + */ +export type MagentaCandleCakeStates = Pick; +/** + * States specific to MagentaGlazedTerracotta + */ +export type MagentaGlazedTerracottaStates = Pick; +/** + * States specific to MangroveButton + */ +export type MangroveButtonStates = Pick; +/** + * States specific to MangroveDoor + */ +export type MangroveDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to MangroveDoubleSlab + */ +export type MangroveDoubleSlabStates = Pick; +/** + * States specific to MangroveFenceGate + */ +export type MangroveFenceGateStates = Pick; +/** + * States specific to MangroveHangingSign + */ +export type MangroveHangingSignStates = Pick< + BlockStateSuperset, + "attached_bit" | "facing_direction" | "ground_sign_direction" | "hanging" +>; +/** + * States specific to MangroveLeaves + */ +export type MangroveLeavesStates = Pick; +/** + * States specific to MangroveLog + */ +export type MangroveLogStates = Pick; +/** + * States specific to MangrovePressurePlate + */ +export type MangrovePressurePlateStates = Pick; +/** + * States specific to MangrovePropagule + */ +export type MangrovePropaguleStates = Pick; +/** + * States specific to MangroveSlab + */ +export type MangroveSlabStates = Pick; +/** + * States specific to MangroveStairs + */ +export type MangroveStairsStates = Pick; +/** + * States specific to MangroveStandingSign + */ +export type MangroveStandingSignStates = Pick; +/** + * States specific to MangroveTrapdoor + */ +export type MangroveTrapdoorStates = Pick; +/** + * States specific to MangroveWallSign + */ +export type MangroveWallSignStates = Pick; +/** + * States specific to MangroveWood + */ +export type MangroveWoodStates = Pick; +/** + * States specific to MediumAmethystBud + */ +export type MediumAmethystBudStates = Pick; +/** + * States specific to MelonStem + */ +export type MelonStemStates = Pick; +/** + * States specific to MonsterEgg + */ +export type MonsterEggStates = Pick; +/** + * States specific to MossyCobblestoneStairs + */ +export type MossyCobblestoneStairsStates = Pick; +/** + * States specific to MossyStoneBrickStairs + */ +export type MossyStoneBrickStairsStates = Pick; +/** + * States specific to MudBrickDoubleSlab + */ +export type MudBrickDoubleSlabStates = Pick; +/** + * States specific to MudBrickSlab + */ +export type MudBrickSlabStates = Pick; +/** + * States specific to MudBrickStairs + */ +export type MudBrickStairsStates = Pick; +/** + * States specific to MudBrickWall + */ +export type MudBrickWallStates = Pick< + BlockStateSuperset, + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to MuddyMangroveRoots + */ +export type MuddyMangroveRootsStates = Pick; +/** + * States specific to NetherBrickSlab + */ +export type NetherBrickSlabStates = Pick; +/** + * States specific to NetherBrickStairs + */ +export type NetherBrickStairsStates = Pick; +/** + * States specific to NetherWart + */ +export type NetherWartStates = Pick; +/** + * States specific to NormalStoneStairs + */ +export type NormalStoneStairsStates = Pick; +/** + * States specific to OakDoubleSlab + */ +export type OakDoubleSlabStates = Pick; +/** + * States specific to OakHangingSign + */ +export type OakHangingSignStates = Pick< + BlockStateSuperset, + "attached_bit" | "facing_direction" | "ground_sign_direction" | "hanging" +>; +/** + * States specific to OakLeaves + */ +export type OakLeavesStates = Pick; +/** + * States specific to OakLog + */ +export type OakLogStates = Pick; +/** + * States specific to OakSapling + */ +export type OakSaplingStates = Pick; +/** + * States specific to OakSlab + */ +export type OakSlabStates = Pick; +/** + * States specific to OakStairs + */ +export type OakStairsStates = Pick; +/** + * States specific to OakWood + */ +export type OakWoodStates = Pick; +/** + * States specific to Observer + */ +export type ObserverStates = Pick; +/** + * States specific to OchreFroglight + */ +export type OchreFroglightStates = Pick; +/** + * States specific to OrangeCandle + */ +export type OrangeCandleStates = Pick; +/** + * States specific to OrangeCandleCake + */ +export type OrangeCandleCakeStates = Pick; +/** + * States specific to OrangeGlazedTerracotta + */ +export type OrangeGlazedTerracottaStates = Pick; +/** + * States specific to OxidizedCopperBulb + */ +export type OxidizedCopperBulbStates = Pick; +/** + * States specific to OxidizedCopperDoor + */ +export type OxidizedCopperDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to OxidizedCopperTrapdoor + */ +export type OxidizedCopperTrapdoorStates = Pick; +/** + * States specific to OxidizedCutCopperSlab + */ +export type OxidizedCutCopperSlabStates = Pick; +/** + * States specific to OxidizedCutCopperStairs + */ +export type OxidizedCutCopperStairsStates = Pick; +/** + * States specific to OxidizedDoubleCutCopperSlab + */ +export type OxidizedDoubleCutCopperSlabStates = Pick; +/** + * States specific to PearlescentFroglight + */ +export type PearlescentFroglightStates = Pick; +/** + * States specific to Peony + */ +export type PeonyStates = Pick; +/** + * States specific to PetrifiedOakSlab + */ +export type PetrifiedOakSlabStates = Pick; +/** + * States specific to PinkCandle + */ +export type PinkCandleStates = Pick; +/** + * States specific to PinkCandleCake + */ +export type PinkCandleCakeStates = Pick; +/** + * States specific to PinkGlazedTerracotta + */ +export type PinkGlazedTerracottaStates = Pick; +/** + * States specific to PinkPetals + */ +export type PinkPetalsStates = Pick; +/** + * States specific to Piston + */ +export type PistonStates = Pick; +/** + * States specific to PistonArmCollision + */ +export type PistonArmCollisionStates = Pick; +/** + * States specific to PitcherCrop + */ +export type PitcherCropStates = Pick; +/** + * States specific to PitcherPlant + */ +export type PitcherPlantStates = Pick; +/** + * States specific to PointedDripstone + */ +export type PointedDripstoneStates = Pick; +/** + * States specific to PolishedAndesiteStairs + */ +export type PolishedAndesiteStairsStates = Pick; +/** + * States specific to PolishedBasalt + */ +export type PolishedBasaltStates = Pick; +/** + * States specific to PolishedBlackstoneBrickDoubleSlab + */ +export type PolishedBlackstoneBrickDoubleSlabStates = Pick; +/** + * States specific to PolishedBlackstoneBrickSlab + */ +export type PolishedBlackstoneBrickSlabStates = Pick; +/** + * States specific to PolishedBlackstoneBrickStairs + */ +export type PolishedBlackstoneBrickStairsStates = Pick; +/** + * States specific to PolishedBlackstoneBrickWall + */ +export type PolishedBlackstoneBrickWallStates = Pick< + BlockStateSuperset, + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to PolishedBlackstoneButton + */ +export type PolishedBlackstoneButtonStates = Pick; +/** + * States specific to PolishedBlackstoneDoubleSlab + */ +export type PolishedBlackstoneDoubleSlabStates = Pick; +/** + * States specific to PolishedBlackstonePressurePlate + */ +export type PolishedBlackstonePressurePlateStates = Pick; +/** + * States specific to PolishedBlackstoneSlab + */ +export type PolishedBlackstoneSlabStates = Pick; +/** + * States specific to PolishedBlackstoneStairs + */ +export type PolishedBlackstoneStairsStates = Pick; +/** + * States specific to PolishedBlackstoneWall + */ +export type PolishedBlackstoneWallStates = Pick< + BlockStateSuperset, + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to PolishedDeepslateDoubleSlab + */ +export type PolishedDeepslateDoubleSlabStates = Pick; +/** + * States specific to PolishedDeepslateSlab + */ +export type PolishedDeepslateSlabStates = Pick; +/** + * States specific to PolishedDeepslateStairs + */ +export type PolishedDeepslateStairsStates = Pick; +/** + * States specific to PolishedDeepslateWall + */ +export type PolishedDeepslateWallStates = Pick< + BlockStateSuperset, + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to PolishedDioriteStairs + */ +export type PolishedDioriteStairsStates = Pick; +/** + * States specific to PolishedGraniteStairs + */ +export type PolishedGraniteStairsStates = Pick; +/** + * States specific to PolishedTuffDoubleSlab + */ +export type PolishedTuffDoubleSlabStates = Pick; +/** + * States specific to PolishedTuffSlab + */ +export type PolishedTuffSlabStates = Pick; +/** + * States specific to PolishedTuffStairs + */ +export type PolishedTuffStairsStates = Pick; +/** + * States specific to PolishedTuffWall + */ +export type PolishedTuffWallStates = Pick< + BlockStateSuperset, + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to Portal + */ +export type PortalStates = Pick; +/** + * States specific to Potatoes + */ +export type PotatoesStates = Pick; +/** + * States specific to PoweredComparator + */ +export type PoweredComparatorStates = Pick< + BlockStateSuperset, + "minecraft:cardinal_direction" | "output_lit_bit" | "output_subtract_bit" +>; +/** + * States specific to PoweredRepeater + */ +export type PoweredRepeaterStates = Pick; +/** + * States specific to Prismarine + */ +export type PrismarineStates = Pick; +/** + * States specific to PrismarineBricksStairs + */ +export type PrismarineBricksStairsStates = Pick; +/** + * States specific to PrismarineStairs + */ +export type PrismarineStairsStates = Pick; +/** + * States specific to Pumpkin + */ +export type PumpkinStates = Pick; +/** + * States specific to PumpkinStem + */ +export type PumpkinStemStates = Pick; +/** + * States specific to PurpleCandle + */ +export type PurpleCandleStates = Pick; +/** + * States specific to PurpleCandleCake + */ +export type PurpleCandleCakeStates = Pick; +/** + * States specific to PurpleGlazedTerracotta + */ +export type PurpleGlazedTerracottaStates = Pick; +/** + * States specific to PurpurBlock + */ +export type PurpurBlockStates = Pick; +/** + * States specific to PurpurStairs + */ +export type PurpurStairsStates = Pick; +/** + * States specific to QuartzBlock + */ +export type QuartzBlockStates = Pick; +/** + * States specific to QuartzSlab + */ +export type QuartzSlabStates = Pick; +/** + * States specific to QuartzStairs + */ +export type QuartzStairsStates = Pick; +/** + * States specific to Rail + */ +export type RailStates = Pick; +/** + * States specific to RedCandle + */ +export type RedCandleStates = Pick; +/** + * States specific to RedCandleCake + */ +export type RedCandleCakeStates = Pick; +/** + * States specific to RedGlazedTerracotta + */ +export type RedGlazedTerracottaStates = Pick; +/** + * States specific to RedMushroomBlock + */ +export type RedMushroomBlockStates = Pick; +/** + * States specific to RedNetherBrickStairs + */ +export type RedNetherBrickStairsStates = Pick; +/** + * States specific to RedSandstone + */ +export type RedSandstoneStates = Pick; +/** + * States specific to RedSandstoneStairs + */ +export type RedSandstoneStairsStates = Pick; +/** + * States specific to RedstoneTorch + */ +export type RedstoneTorchStates = Pick; +/** + * States specific to RedstoneWire + */ +export type RedstoneWireStates = Pick; +/** + * States specific to Reeds + */ +export type ReedsStates = Pick; +/** + * States specific to RepeatingCommandBlock + */ +export type RepeatingCommandBlockStates = Pick; +/** + * States specific to RespawnAnchor + */ +export type RespawnAnchorStates = Pick; +/** + * States specific to RoseBush + */ +export type RoseBushStates = Pick; +/** + * States specific to Sand + */ +export type SandStates = Pick; +/** + * States specific to Sandstone + */ +export type SandstoneStates = Pick; +/** + * States specific to SandstoneSlab + */ +export type SandstoneSlabStates = Pick; +/** + * States specific to SandstoneStairs + */ +export type SandstoneStairsStates = Pick; +/** + * States specific to Scaffolding + */ +export type ScaffoldingStates = Pick; +/** + * States specific to SculkCatalyst + */ +export type SculkCatalystStates = Pick; +/** + * States specific to SculkSensor + */ +export type SculkSensorStates = Pick; +/** + * States specific to SculkShrieker + */ +export type SculkShriekerStates = Pick; +/** + * States specific to SculkVein + */ +export type SculkVeinStates = Pick; +/** + * States specific to SeaPickle + */ +export type SeaPickleStates = Pick; +/** + * States specific to Seagrass + */ +export type SeagrassStates = Pick; +/** + * States specific to SilverGlazedTerracotta + */ +export type SilverGlazedTerracottaStates = Pick; +/** + * States specific to Skull + */ +export type SkullStates = Pick; +/** + * States specific to SmallAmethystBud + */ +export type SmallAmethystBudStates = Pick; +/** + * States specific to SmallDripleafBlock + */ +export type SmallDripleafBlockStates = Pick; +/** + * States specific to Smoker + */ +export type SmokerStates = Pick; +/** + * States specific to SmoothQuartzStairs + */ +export type SmoothQuartzStairsStates = Pick; +/** + * States specific to SmoothRedSandstoneStairs + */ +export type SmoothRedSandstoneStairsStates = Pick; +/** + * States specific to SmoothSandstoneStairs + */ +export type SmoothSandstoneStairsStates = Pick; +/** + * States specific to SmoothStoneSlab + */ +export type SmoothStoneSlabStates = Pick; +/** + * States specific to SnifferEgg + */ +export type SnifferEggStates = Pick; +/** + * States specific to SnowLayer + */ +export type SnowLayerStates = Pick; +/** + * States specific to SoulCampfire + */ +export type SoulCampfireStates = Pick; +/** + * States specific to SoulFire + */ +export type SoulFireStates = Pick; +/** + * States specific to SoulLantern + */ +export type SoulLanternStates = Pick; +/** + * States specific to SoulTorch + */ +export type SoulTorchStates = Pick; +/** + * States specific to Sponge + */ +export type SpongeStates = Pick; +/** + * States specific to SpruceButton + */ +export type SpruceButtonStates = Pick; +/** + * States specific to SpruceDoor + */ +export type SpruceDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to SpruceDoubleSlab + */ +export type SpruceDoubleSlabStates = Pick; +/** + * States specific to SpruceFenceGate + */ +export type SpruceFenceGateStates = Pick; +/** + * States specific to SpruceHangingSign + */ +export type SpruceHangingSignStates = Pick< + BlockStateSuperset, + "attached_bit" | "facing_direction" | "ground_sign_direction" | "hanging" +>; +/** + * States specific to SpruceLeaves + */ +export type SpruceLeavesStates = Pick; +/** + * States specific to SpruceLog + */ +export type SpruceLogStates = Pick; +/** + * States specific to SprucePressurePlate + */ +export type SprucePressurePlateStates = Pick; +/** + * States specific to SpruceSapling + */ +export type SpruceSaplingStates = Pick; +/** + * States specific to SpruceSlab + */ +export type SpruceSlabStates = Pick; +/** + * States specific to SpruceStairs + */ +export type SpruceStairsStates = Pick; +/** + * States specific to SpruceStandingSign + */ +export type SpruceStandingSignStates = Pick; +/** + * States specific to SpruceTrapdoor + */ +export type SpruceTrapdoorStates = Pick; +/** + * States specific to SpruceWallSign + */ +export type SpruceWallSignStates = Pick; +/** + * States specific to SpruceWood + */ +export type SpruceWoodStates = Pick; +/** + * States specific to StandingBanner + */ +export type StandingBannerStates = Pick; +/** + * States specific to StandingSign + */ +export type StandingSignStates = Pick; +/** + * States specific to StickyPiston + */ +export type StickyPistonStates = Pick; +/** + * States specific to StickyPistonArmCollision + */ +export type StickyPistonArmCollisionStates = Pick; +/** + * States specific to StoneBlockSlab2 + */ +export type StoneBlockSlab2States = Pick; +/** + * States specific to StoneBlockSlab3 + */ +export type StoneBlockSlab3States = Pick; +/** + * States specific to StoneBlockSlab4 + */ +export type StoneBlockSlab4States = Pick; +/** + * States specific to StoneBrickSlab + */ +export type StoneBrickSlabStates = Pick; +/** + * States specific to StoneBrickStairs + */ +export type StoneBrickStairsStates = Pick; +/** + * States specific to StoneButton + */ +export type StoneButtonStates = Pick; +/** + * States specific to StonePressurePlate + */ +export type StonePressurePlateStates = Pick; +/** + * States specific to StoneStairs + */ +export type StoneStairsStates = Pick; +/** + * States specific to Stonebrick + */ +export type StonebrickStates = Pick; +/** + * States specific to StonecutterBlock + */ +export type StonecutterBlockStates = Pick; +/** + * States specific to StrippedAcaciaLog + */ +export type StrippedAcaciaLogStates = Pick; +/** + * States specific to StrippedAcaciaWood + */ +export type StrippedAcaciaWoodStates = Pick; +/** + * States specific to StrippedBambooBlock + */ +export type StrippedBambooBlockStates = Pick; +/** + * States specific to StrippedBirchLog + */ +export type StrippedBirchLogStates = Pick; +/** + * States specific to StrippedBirchWood + */ +export type StrippedBirchWoodStates = Pick; +/** + * States specific to StrippedCherryLog + */ +export type StrippedCherryLogStates = Pick; +/** + * States specific to StrippedCherryWood + */ +export type StrippedCherryWoodStates = Pick; +/** + * States specific to StrippedCrimsonHyphae + */ +export type StrippedCrimsonHyphaeStates = Pick; +/** + * States specific to StrippedCrimsonStem + */ +export type StrippedCrimsonStemStates = Pick; +/** + * States specific to StrippedDarkOakLog + */ +export type StrippedDarkOakLogStates = Pick; +/** + * States specific to StrippedDarkOakWood + */ +export type StrippedDarkOakWoodStates = Pick; +/** + * States specific to StrippedJungleLog + */ +export type StrippedJungleLogStates = Pick; +/** + * States specific to StrippedJungleWood + */ +export type StrippedJungleWoodStates = Pick; +/** + * States specific to StrippedMangroveLog + */ +export type StrippedMangroveLogStates = Pick; +/** + * States specific to StrippedMangroveWood + */ +export type StrippedMangroveWoodStates = Pick; +/** + * States specific to StrippedOakLog + */ +export type StrippedOakLogStates = Pick; +/** + * States specific to StrippedOakWood + */ +export type StrippedOakWoodStates = Pick; +/** + * States specific to StrippedSpruceLog + */ +export type StrippedSpruceLogStates = Pick; +/** + * States specific to StrippedSpruceWood + */ +export type StrippedSpruceWoodStates = Pick; +/** + * States specific to StrippedWarpedHyphae + */ +export type StrippedWarpedHyphaeStates = Pick; +/** + * States specific to StrippedWarpedStem + */ +export type StrippedWarpedStemStates = Pick; +/** + * States specific to StructureBlock + */ +export type StructureBlockStates = Pick; +/** + * States specific to StructureVoid + */ +export type StructureVoidStates = Pick; +/** + * States specific to Sunflower + */ +export type SunflowerStates = Pick; +/** + * States specific to SuspiciousGravel + */ +export type SuspiciousGravelStates = Pick; +/** + * States specific to SuspiciousSand + */ +export type SuspiciousSandStates = Pick; +/** + * States specific to SweetBerryBush + */ +export type SweetBerryBushStates = Pick; +/** + * States specific to TallGrass + */ +export type TallGrassStates = Pick; +/** + * States specific to Tnt + */ +export type TntStates = Pick; +/** + * States specific to Torch + */ +export type TorchStates = Pick; +/** + * States specific to TorchflowerCrop + */ +export type TorchflowerCropStates = Pick; +/** + * States specific to Trapdoor + */ +export type TrapdoorStates = Pick; +/** + * States specific to TrappedChest + */ +export type TrappedChestStates = Pick; +/** + * States specific to TrialSpawner + */ +export type TrialSpawnerStates = Pick; +/** + * States specific to TripWire + */ +export type TripWireStates = Pick< + BlockStateSuperset, + "attached_bit" | "disarmed_bit" | "powered_bit" | "suspended_bit" +>; +/** + * States specific to TripwireHook + */ +export type TripwireHookStates = Pick; +/** + * States specific to TubeCoralFan + */ +export type TubeCoralFanStates = Pick; +/** + * States specific to TuffBrickDoubleSlab + */ +export type TuffBrickDoubleSlabStates = Pick; +/** + * States specific to TuffBrickSlab + */ +export type TuffBrickSlabStates = Pick; +/** + * States specific to TuffBrickStairs + */ +export type TuffBrickStairsStates = Pick; +/** + * States specific to TuffBrickWall + */ +export type TuffBrickWallStates = Pick< + BlockStateSuperset, + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to TuffDoubleSlab + */ +export type TuffDoubleSlabStates = Pick; +/** + * States specific to TuffSlab + */ +export type TuffSlabStates = Pick; +/** + * States specific to TuffStairs + */ +export type TuffStairsStates = Pick; +/** + * States specific to TuffWall + */ +export type TuffWallStates = Pick< + BlockStateSuperset, + | "wall_connection_type_east" + | "wall_connection_type_north" + | "wall_connection_type_south" + | "wall_connection_type_west" + | "wall_post_bit" +>; +/** + * States specific to TurtleEgg + */ +export type TurtleEggStates = Pick; +/** + * States specific to TwistingVines + */ +export type TwistingVinesStates = Pick; +/** + * States specific to UnderwaterTorch + */ +export type UnderwaterTorchStates = Pick; +/** + * States specific to UnlitRedstoneTorch + */ +export type UnlitRedstoneTorchStates = Pick; +/** + * States specific to UnpoweredComparator + */ +export type UnpoweredComparatorStates = Pick< + BlockStateSuperset, + "minecraft:cardinal_direction" | "output_lit_bit" | "output_subtract_bit" +>; +/** + * States specific to UnpoweredRepeater + */ +export type UnpoweredRepeaterStates = Pick; +/** + * States specific to Vault + */ +export type VaultStates = Pick; +/** + * States specific to VerdantFroglight + */ +export type VerdantFroglightStates = Pick; +/** + * States specific to Vine + */ +export type VineStates = Pick; +/** + * States specific to WallBanner + */ +export type WallBannerStates = Pick; +/** + * States specific to WallSign + */ +export type WallSignStates = Pick; +/** + * States specific to WarpedButton + */ +export type WarpedButtonStates = Pick; +/** + * States specific to WarpedDoor + */ +export type WarpedDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to WarpedDoubleSlab + */ +export type WarpedDoubleSlabStates = Pick; +/** + * States specific to WarpedFenceGate + */ +export type WarpedFenceGateStates = Pick; +/** + * States specific to WarpedHangingSign + */ +export type WarpedHangingSignStates = Pick< + BlockStateSuperset, + "attached_bit" | "facing_direction" | "ground_sign_direction" | "hanging" +>; +/** + * States specific to WarpedHyphae + */ +export type WarpedHyphaeStates = Pick; +/** + * States specific to WarpedPressurePlate + */ +export type WarpedPressurePlateStates = Pick; +/** + * States specific to WarpedSlab + */ +export type WarpedSlabStates = Pick; +/** + * States specific to WarpedStairs + */ +export type WarpedStairsStates = Pick; +/** + * States specific to WarpedStandingSign + */ +export type WarpedStandingSignStates = Pick; +/** + * States specific to WarpedStem + */ +export type WarpedStemStates = Pick; +/** + * States specific to WarpedTrapdoor + */ +export type WarpedTrapdoorStates = Pick; +/** + * States specific to WarpedWallSign + */ +export type WarpedWallSignStates = Pick; +/** + * States specific to Water + */ +export type WaterStates = Pick; +/** + * States specific to WaxedCopperBulb + */ +export type WaxedCopperBulbStates = Pick; +/** + * States specific to WaxedCopperDoor + */ +export type WaxedCopperDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to WaxedCopperTrapdoor + */ +export type WaxedCopperTrapdoorStates = Pick; +/** + * States specific to WaxedCutCopperSlab + */ +export type WaxedCutCopperSlabStates = Pick; +/** + * States specific to WaxedCutCopperStairs + */ +export type WaxedCutCopperStairsStates = Pick; +/** + * States specific to WaxedDoubleCutCopperSlab + */ +export type WaxedDoubleCutCopperSlabStates = Pick; +/** + * States specific to WaxedExposedCopperBulb + */ +export type WaxedExposedCopperBulbStates = Pick; +/** + * States specific to WaxedExposedCopperDoor + */ +export type WaxedExposedCopperDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to WaxedExposedCopperTrapdoor + */ +export type WaxedExposedCopperTrapdoorStates = Pick; +/** + * States specific to WaxedExposedCutCopperSlab + */ +export type WaxedExposedCutCopperSlabStates = Pick; +/** + * States specific to WaxedExposedCutCopperStairs + */ +export type WaxedExposedCutCopperStairsStates = Pick; +/** + * States specific to WaxedExposedDoubleCutCopperSlab + */ +export type WaxedExposedDoubleCutCopperSlabStates = Pick; +/** + * States specific to WaxedOxidizedCopperBulb + */ +export type WaxedOxidizedCopperBulbStates = Pick; +/** + * States specific to WaxedOxidizedCopperDoor + */ +export type WaxedOxidizedCopperDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to WaxedOxidizedCopperTrapdoor + */ +export type WaxedOxidizedCopperTrapdoorStates = Pick; +/** + * States specific to WaxedOxidizedCutCopperSlab + */ +export type WaxedOxidizedCutCopperSlabStates = Pick; +/** + * States specific to WaxedOxidizedCutCopperStairs + */ +export type WaxedOxidizedCutCopperStairsStates = Pick; +/** + * States specific to WaxedOxidizedDoubleCutCopperSlab + */ +export type WaxedOxidizedDoubleCutCopperSlabStates = Pick; +/** + * States specific to WaxedWeatheredCopperBulb + */ +export type WaxedWeatheredCopperBulbStates = Pick; +/** + * States specific to WaxedWeatheredCopperDoor + */ +export type WaxedWeatheredCopperDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to WaxedWeatheredCopperTrapdoor + */ +export type WaxedWeatheredCopperTrapdoorStates = Pick; +/** + * States specific to WaxedWeatheredCutCopperSlab + */ +export type WaxedWeatheredCutCopperSlabStates = Pick; +/** + * States specific to WaxedWeatheredCutCopperStairs + */ +export type WaxedWeatheredCutCopperStairsStates = Pick; +/** + * States specific to WaxedWeatheredDoubleCutCopperSlab + */ +export type WaxedWeatheredDoubleCutCopperSlabStates = Pick; +/** + * States specific to WeatheredCopperBulb + */ +export type WeatheredCopperBulbStates = Pick; +/** + * States specific to WeatheredCopperDoor + */ +export type WeatheredCopperDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to WeatheredCopperTrapdoor + */ +export type WeatheredCopperTrapdoorStates = Pick; +/** + * States specific to WeatheredCutCopperSlab + */ +export type WeatheredCutCopperSlabStates = Pick; +/** + * States specific to WeatheredCutCopperStairs + */ +export type WeatheredCutCopperStairsStates = Pick; +/** + * States specific to WeatheredDoubleCutCopperSlab + */ +export type WeatheredDoubleCutCopperSlabStates = Pick; +/** + * States specific to WeepingVines + */ +export type WeepingVinesStates = Pick; +/** + * States specific to Wheat + */ +export type WheatStates = Pick; +/** + * States specific to WhiteCandle + */ +export type WhiteCandleStates = Pick; +/** + * States specific to WhiteCandleCake + */ +export type WhiteCandleCakeStates = Pick; +/** + * States specific to WhiteGlazedTerracotta + */ +export type WhiteGlazedTerracottaStates = Pick; +/** + * States specific to WoodenButton + */ +export type WoodenButtonStates = Pick; +/** + * States specific to WoodenDoor + */ +export type WoodenDoorStates = Pick< + BlockStateSuperset, + "direction" | "door_hinge_bit" | "open_bit" | "upper_block_bit" +>; +/** + * States specific to WoodenPressurePlate + */ +export type WoodenPressurePlateStates = Pick; +/** + * States specific to YellowCandle + */ +export type YellowCandleStates = Pick; +/** + * States specific to YellowCandleCake + */ +export type YellowCandleCakeStates = Pick; +/** + * States specific to YellowGlazedTerracotta + */ +export type YellowGlazedTerracottaStates = Pick; +/** + * Union of all types for Block states + */ +export type BlockStates = + | AcaciaButtonStates + | AcaciaDoorStates + | AcaciaDoubleSlabStates + | AcaciaFenceGateStates + | AcaciaHangingSignStates + | AcaciaLeavesStates + | AcaciaLogStates + | AcaciaPressurePlateStates + | AcaciaSaplingStates + | AcaciaSlabStates + | AcaciaStairsStates + | AcaciaStandingSignStates + | AcaciaTrapdoorStates + | AcaciaWallSignStates + | AcaciaWoodStates + | ActivatorRailStates + | AmethystClusterStates + | AndesiteStairsStates + | AnvilStates + | AzaleaLeavesStates + | AzaleaLeavesFloweredStates + | BambooStates + | BambooBlockStates + | BambooButtonStates + | BambooDoorStates + | BambooDoubleSlabStates + | BambooFenceGateStates + | BambooHangingSignStates + | BambooMosaicDoubleSlabStates + | BambooMosaicSlabStates + | BambooMosaicStairsStates + | BambooPressurePlateStates + | BambooSaplingStates + | BambooSlabStates + | BambooStairsStates + | BambooStandingSignStates + | BambooTrapdoorStates + | BambooWallSignStates + | BarrelStates + | BasaltStates + | BedStates + | BedrockStates + | BeeNestStates + | BeehiveStates + | BeetrootStates + | BellStates + | BigDripleafStates + | BirchButtonStates + | BirchDoorStates + | BirchDoubleSlabStates + | BirchFenceGateStates + | BirchHangingSignStates + | BirchLeavesStates + | BirchLogStates + | BirchPressurePlateStates + | BirchSaplingStates + | BirchSlabStates + | BirchStairsStates + | BirchStandingSignStates + | BirchTrapdoorStates + | BirchWallSignStates + | BirchWoodStates + | BlackCandleStates + | BlackCandleCakeStates + | BlackGlazedTerracottaStates + | BlackstoneDoubleSlabStates + | BlackstoneSlabStates + | BlackstoneStairsStates + | BlackstoneWallStates + | BlastFurnaceStates + | BlueCandleStates + | BlueCandleCakeStates + | BlueGlazedTerracottaStates + | BoneBlockStates + | BorderBlockStates + | BrainCoralFanStates + | BrewingStandStates + | BrickSlabStates + | BrickStairsStates + | BrownCandleStates + | BrownCandleCakeStates + | BrownGlazedTerracottaStates + | BrownMushroomBlockStates + | BubbleColumnStates + | BubbleCoralFanStates + | CactusStates + | CakeStates + | CalibratedSculkSensorStates + | CampfireStates + | CandleStates + | CandleCakeStates + | CarrotsStates + | CarvedPumpkinStates + | CauldronStates + | CaveVinesStates + | CaveVinesBodyWithBerriesStates + | CaveVinesHeadWithBerriesStates + | ChainStates + | ChainCommandBlockStates + | ChemistryTableStates + | CherryButtonStates + | CherryDoorStates + | CherryDoubleSlabStates + | CherryFenceGateStates + | CherryHangingSignStates + | CherryLeavesStates + | CherryLogStates + | CherryPressurePlateStates + | CherrySaplingStates + | CherrySlabStates + | CherryStairsStates + | CherryStandingSignStates + | CherryTrapdoorStates + | CherryWallSignStates + | CherryWoodStates + | ChestStates + | ChiseledBookshelfStates + | ChorusFlowerStates + | CobbledDeepslateDoubleSlabStates + | CobbledDeepslateSlabStates + | CobbledDeepslateStairsStates + | CobbledDeepslateWallStates + | CobblestoneSlabStates + | CobblestoneWallStates + | CocoaStates + | ColoredTorchBpStates + | ColoredTorchRgStates + | CommandBlockStates + | ComposterStates + | CopperBulbStates + | CopperDoorStates + | CopperTrapdoorStates + | CoralFanHangStates + | CoralFanHang2States + | CoralFanHang3States + | CrafterStates + | CrimsonButtonStates + | CrimsonDoorStates + | CrimsonDoubleSlabStates + | CrimsonFenceGateStates + | CrimsonHangingSignStates + | CrimsonHyphaeStates + | CrimsonPressurePlateStates + | CrimsonSlabStates + | CrimsonStairsStates + | CrimsonStandingSignStates + | CrimsonStemStates + | CrimsonTrapdoorStates + | CrimsonWallSignStates + | CutCopperSlabStates + | CutCopperStairsStates + | CyanCandleStates + | CyanCandleCakeStates + | CyanGlazedTerracottaStates + | DarkOakButtonStates + | DarkOakDoorStates + | DarkOakDoubleSlabStates + | DarkOakFenceGateStates + | DarkOakHangingSignStates + | DarkOakLeavesStates + | DarkOakLogStates + | DarkOakPressurePlateStates + | DarkOakSaplingStates + | DarkOakSlabStates + | DarkOakStairsStates + | DarkOakTrapdoorStates + | DarkOakWoodStates + | DarkPrismarineStairsStates + | DarkoakStandingSignStates + | DarkoakWallSignStates + | DaylightDetectorStates + | DaylightDetectorInvertedStates + | DeadBrainCoralFanStates + | DeadBubbleCoralFanStates + | DeadFireCoralFanStates + | DeadHornCoralFanStates + | DeadTubeCoralFanStates + | DecoratedPotStates + | DeepslateStates + | DeepslateBrickDoubleSlabStates + | DeepslateBrickSlabStates + | DeepslateBrickStairsStates + | DeepslateBrickWallStates + | DeepslateTileDoubleSlabStates + | DeepslateTileSlabStates + | DeepslateTileStairsStates + | DeepslateTileWallStates + | DetectorRailStates + | DioriteStairsStates + | DirtStates + | DispenserStates + | DoubleCutCopperSlabStates + | DoubleStoneBlockSlabStates + | DoubleStoneBlockSlab2States + | DoubleStoneBlockSlab3States + | DoubleStoneBlockSlab4States + | DropperStates + | EndBrickStairsStates + | EndPortalFrameStates + | EndRodStates + | EnderChestStates + | ExposedCopperBulbStates + | ExposedCopperDoorStates + | ExposedCopperTrapdoorStates + | ExposedCutCopperSlabStates + | ExposedCutCopperStairsStates + | ExposedDoubleCutCopperSlabStates + | FarmlandStates + | FenceGateStates + | FireStates + | FireCoralFanStates + | FlowerPotStates + | FlowingLavaStates + | FlowingWaterStates + | FrameStates + | FrostedIceStates + | FurnaceStates + | GlowFrameStates + | GlowLichenStates + | GoldenRailStates + | GraniteStairsStates + | GrayCandleStates + | GrayCandleCakeStates + | GrayGlazedTerracottaStates + | GreenCandleStates + | GreenCandleCakeStates + | GreenGlazedTerracottaStates + | GrindstoneStates + | HayBlockStates + | HeavyWeightedPressurePlateStates + | HopperStates + | HornCoralFanStates + | InfestedDeepslateStates + | IronDoorStates + | IronTrapdoorStates + | JigsawStates + | JungleButtonStates + | JungleDoorStates + | JungleDoubleSlabStates + | JungleFenceGateStates + | JungleHangingSignStates + | JungleLeavesStates + | JungleLogStates + | JunglePressurePlateStates + | JungleSaplingStates + | JungleSlabStates + | JungleStairsStates + | JungleStandingSignStates + | JungleTrapdoorStates + | JungleWallSignStates + | JungleWoodStates + | KelpStates + | LadderStates + | LanternStates + | LargeAmethystBudStates + | LargeFernStates + | LavaStates + | LecternStates + | LeverStates + | LightBlockStates + | LightBlueCandleStates + | LightBlueCandleCakeStates + | LightBlueGlazedTerracottaStates + | LightGrayCandleStates + | LightGrayCandleCakeStates + | LightWeightedPressurePlateStates + | LightningRodStates + | LilacStates + | LimeCandleStates + | LimeCandleCakeStates + | LimeGlazedTerracottaStates + | LitBlastFurnaceStates + | LitFurnaceStates + | LitPumpkinStates + | LitSmokerStates + | LoomStates + | MagentaCandleStates + | MagentaCandleCakeStates + | MagentaGlazedTerracottaStates + | MangroveButtonStates + | MangroveDoorStates + | MangroveDoubleSlabStates + | MangroveFenceGateStates + | MangroveHangingSignStates + | MangroveLeavesStates + | MangroveLogStates + | MangrovePressurePlateStates + | MangrovePropaguleStates + | MangroveSlabStates + | MangroveStairsStates + | MangroveStandingSignStates + | MangroveTrapdoorStates + | MangroveWallSignStates + | MangroveWoodStates + | MediumAmethystBudStates + | MelonStemStates + | MonsterEggStates + | MossyCobblestoneStairsStates + | MossyStoneBrickStairsStates + | MudBrickDoubleSlabStates + | MudBrickSlabStates + | MudBrickStairsStates + | MudBrickWallStates + | MuddyMangroveRootsStates + | NetherBrickSlabStates + | NetherBrickStairsStates + | NetherWartStates + | NormalStoneStairsStates + | OakDoubleSlabStates + | OakHangingSignStates + | OakLeavesStates + | OakLogStates + | OakSaplingStates + | OakSlabStates + | OakStairsStates + | OakWoodStates + | ObserverStates + | OchreFroglightStates + | OrangeCandleStates + | OrangeCandleCakeStates + | OrangeGlazedTerracottaStates + | OxidizedCopperBulbStates + | OxidizedCopperDoorStates + | OxidizedCopperTrapdoorStates + | OxidizedCutCopperSlabStates + | OxidizedCutCopperStairsStates + | OxidizedDoubleCutCopperSlabStates + | PearlescentFroglightStates + | PeonyStates + | PetrifiedOakSlabStates + | PinkCandleStates + | PinkCandleCakeStates + | PinkGlazedTerracottaStates + | PinkPetalsStates + | PistonStates + | PistonArmCollisionStates + | PitcherCropStates + | PitcherPlantStates + | PointedDripstoneStates + | PolishedAndesiteStairsStates + | PolishedBasaltStates + | PolishedBlackstoneBrickDoubleSlabStates + | PolishedBlackstoneBrickSlabStates + | PolishedBlackstoneBrickStairsStates + | PolishedBlackstoneBrickWallStates + | PolishedBlackstoneButtonStates + | PolishedBlackstoneDoubleSlabStates + | PolishedBlackstonePressurePlateStates + | PolishedBlackstoneSlabStates + | PolishedBlackstoneStairsStates + | PolishedBlackstoneWallStates + | PolishedDeepslateDoubleSlabStates + | PolishedDeepslateSlabStates + | PolishedDeepslateStairsStates + | PolishedDeepslateWallStates + | PolishedDioriteStairsStates + | PolishedGraniteStairsStates + | PolishedTuffDoubleSlabStates + | PolishedTuffSlabStates + | PolishedTuffStairsStates + | PolishedTuffWallStates + | PortalStates + | PotatoesStates + | PoweredComparatorStates + | PoweredRepeaterStates + | PrismarineStates + | PrismarineBricksStairsStates + | PrismarineStairsStates + | PumpkinStates + | PumpkinStemStates + | PurpleCandleStates + | PurpleCandleCakeStates + | PurpleGlazedTerracottaStates + | PurpurBlockStates + | PurpurStairsStates + | QuartzBlockStates + | QuartzSlabStates + | QuartzStairsStates + | RailStates + | RedCandleStates + | RedCandleCakeStates + | RedGlazedTerracottaStates + | RedMushroomBlockStates + | RedNetherBrickStairsStates + | RedSandstoneStates + | RedSandstoneStairsStates + | RedstoneTorchStates + | RedstoneWireStates + | ReedsStates + | RepeatingCommandBlockStates + | RespawnAnchorStates + | RoseBushStates + | SandStates + | SandstoneStates + | SandstoneSlabStates + | SandstoneStairsStates + | ScaffoldingStates + | SculkCatalystStates + | SculkSensorStates + | SculkShriekerStates + | SculkVeinStates + | SeaPickleStates + | SeagrassStates + | SilverGlazedTerracottaStates + | SkullStates + | SmallAmethystBudStates + | SmallDripleafBlockStates + | SmokerStates + | SmoothQuartzStairsStates + | SmoothRedSandstoneStairsStates + | SmoothSandstoneStairsStates + | SmoothStoneSlabStates + | SnifferEggStates + | SnowLayerStates + | SoulCampfireStates + | SoulFireStates + | SoulLanternStates + | SoulTorchStates + | SpongeStates + | SpruceButtonStates + | SpruceDoorStates + | SpruceDoubleSlabStates + | SpruceFenceGateStates + | SpruceHangingSignStates + | SpruceLeavesStates + | SpruceLogStates + | SprucePressurePlateStates + | SpruceSaplingStates + | SpruceSlabStates + | SpruceStairsStates + | SpruceStandingSignStates + | SpruceTrapdoorStates + | SpruceWallSignStates + | SpruceWoodStates + | StandingBannerStates + | StandingSignStates + | StickyPistonStates + | StickyPistonArmCollisionStates + | StoneBlockSlab2States + | StoneBlockSlab3States + | StoneBlockSlab4States + | StoneBrickSlabStates + | StoneBrickStairsStates + | StoneButtonStates + | StonePressurePlateStates + | StoneStairsStates + | StonebrickStates + | StonecutterBlockStates + | StrippedAcaciaLogStates + | StrippedAcaciaWoodStates + | StrippedBambooBlockStates + | StrippedBirchLogStates + | StrippedBirchWoodStates + | StrippedCherryLogStates + | StrippedCherryWoodStates + | StrippedCrimsonHyphaeStates + | StrippedCrimsonStemStates + | StrippedDarkOakLogStates + | StrippedDarkOakWoodStates + | StrippedJungleLogStates + | StrippedJungleWoodStates + | StrippedMangroveLogStates + | StrippedMangroveWoodStates + | StrippedOakLogStates + | StrippedOakWoodStates + | StrippedSpruceLogStates + | StrippedSpruceWoodStates + | StrippedWarpedHyphaeStates + | StrippedWarpedStemStates + | StructureBlockStates + | StructureVoidStates + | SunflowerStates + | SuspiciousGravelStates + | SuspiciousSandStates + | SweetBerryBushStates + | TallGrassStates + | TntStates + | TorchStates + | TorchflowerCropStates + | TrapdoorStates + | TrappedChestStates + | TrialSpawnerStates + | TripWireStates + | TripwireHookStates + | TubeCoralFanStates + | TuffBrickDoubleSlabStates + | TuffBrickSlabStates + | TuffBrickStairsStates + | TuffBrickWallStates + | TuffDoubleSlabStates + | TuffSlabStates + | TuffStairsStates + | TuffWallStates + | TurtleEggStates + | TwistingVinesStates + | UnderwaterTorchStates + | UnlitRedstoneTorchStates + | UnpoweredComparatorStates + | UnpoweredRepeaterStates + | VaultStates + | VerdantFroglightStates + | VineStates + | WallBannerStates + | WallSignStates + | WarpedButtonStates + | WarpedDoorStates + | WarpedDoubleSlabStates + | WarpedFenceGateStates + | WarpedHangingSignStates + | WarpedHyphaeStates + | WarpedPressurePlateStates + | WarpedSlabStates + | WarpedStairsStates + | WarpedStandingSignStates + | WarpedStemStates + | WarpedTrapdoorStates + | WarpedWallSignStates + | WaterStates + | WaxedCopperBulbStates + | WaxedCopperDoorStates + | WaxedCopperTrapdoorStates + | WaxedCutCopperSlabStates + | WaxedCutCopperStairsStates + | WaxedDoubleCutCopperSlabStates + | WaxedExposedCopperBulbStates + | WaxedExposedCopperDoorStates + | WaxedExposedCopperTrapdoorStates + | WaxedExposedCutCopperSlabStates + | WaxedExposedCutCopperStairsStates + | WaxedExposedDoubleCutCopperSlabStates + | WaxedOxidizedCopperBulbStates + | WaxedOxidizedCopperDoorStates + | WaxedOxidizedCopperTrapdoorStates + | WaxedOxidizedCutCopperSlabStates + | WaxedOxidizedCutCopperStairsStates + | WaxedOxidizedDoubleCutCopperSlabStates + | WaxedWeatheredCopperBulbStates + | WaxedWeatheredCopperDoorStates + | WaxedWeatheredCopperTrapdoorStates + | WaxedWeatheredCutCopperSlabStates + | WaxedWeatheredCutCopperStairsStates + | WaxedWeatheredDoubleCutCopperSlabStates + | WeatheredCopperBulbStates + | WeatheredCopperDoorStates + | WeatheredCopperTrapdoorStates + | WeatheredCutCopperSlabStates + | WeatheredCutCopperStairsStates + | WeatheredDoubleCutCopperSlabStates + | WeepingVinesStates + | WheatStates + | WhiteCandleStates + | WhiteCandleCakeStates + | WhiteGlazedTerracottaStates + | WoodenButtonStates + | WoodenDoorStates + | WoodenPressurePlateStates + | YellowCandleStates + | YellowCandleCakeStates + | YellowGlazedTerracottaStates; +/** + * Mapping of each Block name to it's states + */ +export type BlockStateMapping = { + acacia_button: AcaciaButtonStates; + "minecraft:acacia_button": AcaciaButtonStates; + acacia_door: AcaciaDoorStates; + "minecraft:acacia_door": AcaciaDoorStates; + acacia_double_slab: AcaciaDoubleSlabStates; + "minecraft:acacia_double_slab": AcaciaDoubleSlabStates; + acacia_fence_gate: AcaciaFenceGateStates; + "minecraft:acacia_fence_gate": AcaciaFenceGateStates; + acacia_hanging_sign: AcaciaHangingSignStates; + "minecraft:acacia_hanging_sign": AcaciaHangingSignStates; + acacia_leaves: AcaciaLeavesStates; + "minecraft:acacia_leaves": AcaciaLeavesStates; + acacia_log: AcaciaLogStates; + "minecraft:acacia_log": AcaciaLogStates; + acacia_pressure_plate: AcaciaPressurePlateStates; + "minecraft:acacia_pressure_plate": AcaciaPressurePlateStates; + acacia_sapling: AcaciaSaplingStates; + "minecraft:acacia_sapling": AcaciaSaplingStates; + acacia_slab: AcaciaSlabStates; + "minecraft:acacia_slab": AcaciaSlabStates; + acacia_stairs: AcaciaStairsStates; + "minecraft:acacia_stairs": AcaciaStairsStates; + acacia_standing_sign: AcaciaStandingSignStates; + "minecraft:acacia_standing_sign": AcaciaStandingSignStates; + acacia_trapdoor: AcaciaTrapdoorStates; + "minecraft:acacia_trapdoor": AcaciaTrapdoorStates; + acacia_wall_sign: AcaciaWallSignStates; + "minecraft:acacia_wall_sign": AcaciaWallSignStates; + acacia_wood: AcaciaWoodStates; + "minecraft:acacia_wood": AcaciaWoodStates; + activator_rail: ActivatorRailStates; + "minecraft:activator_rail": ActivatorRailStates; + amethyst_cluster: AmethystClusterStates; + "minecraft:amethyst_cluster": AmethystClusterStates; + andesite_stairs: AndesiteStairsStates; + "minecraft:andesite_stairs": AndesiteStairsStates; + anvil: AnvilStates; + "minecraft:anvil": AnvilStates; + azalea_leaves: AzaleaLeavesStates; + "minecraft:azalea_leaves": AzaleaLeavesStates; + azalea_leaves_flowered: AzaleaLeavesFloweredStates; + "minecraft:azalea_leaves_flowered": AzaleaLeavesFloweredStates; + bamboo: BambooStates; + "minecraft:bamboo": BambooStates; + bamboo_block: BambooBlockStates; + "minecraft:bamboo_block": BambooBlockStates; + bamboo_button: BambooButtonStates; + "minecraft:bamboo_button": BambooButtonStates; + bamboo_door: BambooDoorStates; + "minecraft:bamboo_door": BambooDoorStates; + bamboo_double_slab: BambooDoubleSlabStates; + "minecraft:bamboo_double_slab": BambooDoubleSlabStates; + bamboo_fence_gate: BambooFenceGateStates; + "minecraft:bamboo_fence_gate": BambooFenceGateStates; + bamboo_hanging_sign: BambooHangingSignStates; + "minecraft:bamboo_hanging_sign": BambooHangingSignStates; + bamboo_mosaic_double_slab: BambooMosaicDoubleSlabStates; + "minecraft:bamboo_mosaic_double_slab": BambooMosaicDoubleSlabStates; + bamboo_mosaic_slab: BambooMosaicSlabStates; + "minecraft:bamboo_mosaic_slab": BambooMosaicSlabStates; + bamboo_mosaic_stairs: BambooMosaicStairsStates; + "minecraft:bamboo_mosaic_stairs": BambooMosaicStairsStates; + bamboo_pressure_plate: BambooPressurePlateStates; + "minecraft:bamboo_pressure_plate": BambooPressurePlateStates; + bamboo_sapling: BambooSaplingStates; + "minecraft:bamboo_sapling": BambooSaplingStates; + bamboo_slab: BambooSlabStates; + "minecraft:bamboo_slab": BambooSlabStates; + bamboo_stairs: BambooStairsStates; + "minecraft:bamboo_stairs": BambooStairsStates; + bamboo_standing_sign: BambooStandingSignStates; + "minecraft:bamboo_standing_sign": BambooStandingSignStates; + bamboo_trapdoor: BambooTrapdoorStates; + "minecraft:bamboo_trapdoor": BambooTrapdoorStates; + bamboo_wall_sign: BambooWallSignStates; + "minecraft:bamboo_wall_sign": BambooWallSignStates; + barrel: BarrelStates; + "minecraft:barrel": BarrelStates; + basalt: BasaltStates; + "minecraft:basalt": BasaltStates; + bed: BedStates; + "minecraft:bed": BedStates; + bedrock: BedrockStates; + "minecraft:bedrock": BedrockStates; + bee_nest: BeeNestStates; + "minecraft:bee_nest": BeeNestStates; + beehive: BeehiveStates; + "minecraft:beehive": BeehiveStates; + beetroot: BeetrootStates; + "minecraft:beetroot": BeetrootStates; + bell: BellStates; + "minecraft:bell": BellStates; + big_dripleaf: BigDripleafStates; + "minecraft:big_dripleaf": BigDripleafStates; + birch_button: BirchButtonStates; + "minecraft:birch_button": BirchButtonStates; + birch_door: BirchDoorStates; + "minecraft:birch_door": BirchDoorStates; + birch_double_slab: BirchDoubleSlabStates; + "minecraft:birch_double_slab": BirchDoubleSlabStates; + birch_fence_gate: BirchFenceGateStates; + "minecraft:birch_fence_gate": BirchFenceGateStates; + birch_hanging_sign: BirchHangingSignStates; + "minecraft:birch_hanging_sign": BirchHangingSignStates; + birch_leaves: BirchLeavesStates; + "minecraft:birch_leaves": BirchLeavesStates; + birch_log: BirchLogStates; + "minecraft:birch_log": BirchLogStates; + birch_pressure_plate: BirchPressurePlateStates; + "minecraft:birch_pressure_plate": BirchPressurePlateStates; + birch_sapling: BirchSaplingStates; + "minecraft:birch_sapling": BirchSaplingStates; + birch_slab: BirchSlabStates; + "minecraft:birch_slab": BirchSlabStates; + birch_stairs: BirchStairsStates; + "minecraft:birch_stairs": BirchStairsStates; + birch_standing_sign: BirchStandingSignStates; + "minecraft:birch_standing_sign": BirchStandingSignStates; + birch_trapdoor: BirchTrapdoorStates; + "minecraft:birch_trapdoor": BirchTrapdoorStates; + birch_wall_sign: BirchWallSignStates; + "minecraft:birch_wall_sign": BirchWallSignStates; + birch_wood: BirchWoodStates; + "minecraft:birch_wood": BirchWoodStates; + black_candle: BlackCandleStates; + "minecraft:black_candle": BlackCandleStates; + black_candle_cake: BlackCandleCakeStates; + "minecraft:black_candle_cake": BlackCandleCakeStates; + black_glazed_terracotta: BlackGlazedTerracottaStates; + "minecraft:black_glazed_terracotta": BlackGlazedTerracottaStates; + blackstone_double_slab: BlackstoneDoubleSlabStates; + "minecraft:blackstone_double_slab": BlackstoneDoubleSlabStates; + blackstone_slab: BlackstoneSlabStates; + "minecraft:blackstone_slab": BlackstoneSlabStates; + blackstone_stairs: BlackstoneStairsStates; + "minecraft:blackstone_stairs": BlackstoneStairsStates; + blackstone_wall: BlackstoneWallStates; + "minecraft:blackstone_wall": BlackstoneWallStates; + blast_furnace: BlastFurnaceStates; + "minecraft:blast_furnace": BlastFurnaceStates; + blue_candle: BlueCandleStates; + "minecraft:blue_candle": BlueCandleStates; + blue_candle_cake: BlueCandleCakeStates; + "minecraft:blue_candle_cake": BlueCandleCakeStates; + blue_glazed_terracotta: BlueGlazedTerracottaStates; + "minecraft:blue_glazed_terracotta": BlueGlazedTerracottaStates; + bone_block: BoneBlockStates; + "minecraft:bone_block": BoneBlockStates; + border_block: BorderBlockStates; + "minecraft:border_block": BorderBlockStates; + brain_coral_fan: BrainCoralFanStates; + "minecraft:brain_coral_fan": BrainCoralFanStates; + brewing_stand: BrewingStandStates; + "minecraft:brewing_stand": BrewingStandStates; + brick_slab: BrickSlabStates; + "minecraft:brick_slab": BrickSlabStates; + brick_stairs: BrickStairsStates; + "minecraft:brick_stairs": BrickStairsStates; + brown_candle: BrownCandleStates; + "minecraft:brown_candle": BrownCandleStates; + brown_candle_cake: BrownCandleCakeStates; + "minecraft:brown_candle_cake": BrownCandleCakeStates; + brown_glazed_terracotta: BrownGlazedTerracottaStates; + "minecraft:brown_glazed_terracotta": BrownGlazedTerracottaStates; + brown_mushroom_block: BrownMushroomBlockStates; + "minecraft:brown_mushroom_block": BrownMushroomBlockStates; + bubble_column: BubbleColumnStates; + "minecraft:bubble_column": BubbleColumnStates; + bubble_coral_fan: BubbleCoralFanStates; + "minecraft:bubble_coral_fan": BubbleCoralFanStates; + cactus: CactusStates; + "minecraft:cactus": CactusStates; + cake: CakeStates; + "minecraft:cake": CakeStates; + calibrated_sculk_sensor: CalibratedSculkSensorStates; + "minecraft:calibrated_sculk_sensor": CalibratedSculkSensorStates; + campfire: CampfireStates; + "minecraft:campfire": CampfireStates; + candle: CandleStates; + "minecraft:candle": CandleStates; + candle_cake: CandleCakeStates; + "minecraft:candle_cake": CandleCakeStates; + carrots: CarrotsStates; + "minecraft:carrots": CarrotsStates; + carved_pumpkin: CarvedPumpkinStates; + "minecraft:carved_pumpkin": CarvedPumpkinStates; + cauldron: CauldronStates; + "minecraft:cauldron": CauldronStates; + cave_vines: CaveVinesStates; + "minecraft:cave_vines": CaveVinesStates; + cave_vines_body_with_berries: CaveVinesBodyWithBerriesStates; + "minecraft:cave_vines_body_with_berries": CaveVinesBodyWithBerriesStates; + cave_vines_head_with_berries: CaveVinesHeadWithBerriesStates; + "minecraft:cave_vines_head_with_berries": CaveVinesHeadWithBerriesStates; + chain: ChainStates; + "minecraft:chain": ChainStates; + chain_command_block: ChainCommandBlockStates; + "minecraft:chain_command_block": ChainCommandBlockStates; + chemistry_table: ChemistryTableStates; + "minecraft:chemistry_table": ChemistryTableStates; + cherry_button: CherryButtonStates; + "minecraft:cherry_button": CherryButtonStates; + cherry_door: CherryDoorStates; + "minecraft:cherry_door": CherryDoorStates; + cherry_double_slab: CherryDoubleSlabStates; + "minecraft:cherry_double_slab": CherryDoubleSlabStates; + cherry_fence_gate: CherryFenceGateStates; + "minecraft:cherry_fence_gate": CherryFenceGateStates; + cherry_hanging_sign: CherryHangingSignStates; + "minecraft:cherry_hanging_sign": CherryHangingSignStates; + cherry_leaves: CherryLeavesStates; + "minecraft:cherry_leaves": CherryLeavesStates; + cherry_log: CherryLogStates; + "minecraft:cherry_log": CherryLogStates; + cherry_pressure_plate: CherryPressurePlateStates; + "minecraft:cherry_pressure_plate": CherryPressurePlateStates; + cherry_sapling: CherrySaplingStates; + "minecraft:cherry_sapling": CherrySaplingStates; + cherry_slab: CherrySlabStates; + "minecraft:cherry_slab": CherrySlabStates; + cherry_stairs: CherryStairsStates; + "minecraft:cherry_stairs": CherryStairsStates; + cherry_standing_sign: CherryStandingSignStates; + "minecraft:cherry_standing_sign": CherryStandingSignStates; + cherry_trapdoor: CherryTrapdoorStates; + "minecraft:cherry_trapdoor": CherryTrapdoorStates; + cherry_wall_sign: CherryWallSignStates; + "minecraft:cherry_wall_sign": CherryWallSignStates; + cherry_wood: CherryWoodStates; + "minecraft:cherry_wood": CherryWoodStates; + chest: ChestStates; + "minecraft:chest": ChestStates; + chiseled_bookshelf: ChiseledBookshelfStates; + "minecraft:chiseled_bookshelf": ChiseledBookshelfStates; + chorus_flower: ChorusFlowerStates; + "minecraft:chorus_flower": ChorusFlowerStates; + cobbled_deepslate_double_slab: CobbledDeepslateDoubleSlabStates; + "minecraft:cobbled_deepslate_double_slab": CobbledDeepslateDoubleSlabStates; + cobbled_deepslate_slab: CobbledDeepslateSlabStates; + "minecraft:cobbled_deepslate_slab": CobbledDeepslateSlabStates; + cobbled_deepslate_stairs: CobbledDeepslateStairsStates; + "minecraft:cobbled_deepslate_stairs": CobbledDeepslateStairsStates; + cobbled_deepslate_wall: CobbledDeepslateWallStates; + "minecraft:cobbled_deepslate_wall": CobbledDeepslateWallStates; + cobblestone_slab: CobblestoneSlabStates; + "minecraft:cobblestone_slab": CobblestoneSlabStates; + cobblestone_wall: CobblestoneWallStates; + "minecraft:cobblestone_wall": CobblestoneWallStates; + cocoa: CocoaStates; + "minecraft:cocoa": CocoaStates; + colored_torch_bp: ColoredTorchBpStates; + "minecraft:colored_torch_bp": ColoredTorchBpStates; + colored_torch_rg: ColoredTorchRgStates; + "minecraft:colored_torch_rg": ColoredTorchRgStates; + command_block: CommandBlockStates; + "minecraft:command_block": CommandBlockStates; + composter: ComposterStates; + "minecraft:composter": ComposterStates; + copper_bulb: CopperBulbStates; + "minecraft:copper_bulb": CopperBulbStates; + copper_door: CopperDoorStates; + "minecraft:copper_door": CopperDoorStates; + copper_trapdoor: CopperTrapdoorStates; + "minecraft:copper_trapdoor": CopperTrapdoorStates; + coral_fan_hang: CoralFanHangStates; + "minecraft:coral_fan_hang": CoralFanHangStates; + coral_fan_hang2: CoralFanHang2States; + "minecraft:coral_fan_hang2": CoralFanHang2States; + coral_fan_hang3: CoralFanHang3States; + "minecraft:coral_fan_hang3": CoralFanHang3States; + crafter: CrafterStates; + "minecraft:crafter": CrafterStates; + crimson_button: CrimsonButtonStates; + "minecraft:crimson_button": CrimsonButtonStates; + crimson_door: CrimsonDoorStates; + "minecraft:crimson_door": CrimsonDoorStates; + crimson_double_slab: CrimsonDoubleSlabStates; + "minecraft:crimson_double_slab": CrimsonDoubleSlabStates; + crimson_fence_gate: CrimsonFenceGateStates; + "minecraft:crimson_fence_gate": CrimsonFenceGateStates; + crimson_hanging_sign: CrimsonHangingSignStates; + "minecraft:crimson_hanging_sign": CrimsonHangingSignStates; + crimson_hyphae: CrimsonHyphaeStates; + "minecraft:crimson_hyphae": CrimsonHyphaeStates; + crimson_pressure_plate: CrimsonPressurePlateStates; + "minecraft:crimson_pressure_plate": CrimsonPressurePlateStates; + crimson_slab: CrimsonSlabStates; + "minecraft:crimson_slab": CrimsonSlabStates; + crimson_stairs: CrimsonStairsStates; + "minecraft:crimson_stairs": CrimsonStairsStates; + crimson_standing_sign: CrimsonStandingSignStates; + "minecraft:crimson_standing_sign": CrimsonStandingSignStates; + crimson_stem: CrimsonStemStates; + "minecraft:crimson_stem": CrimsonStemStates; + crimson_trapdoor: CrimsonTrapdoorStates; + "minecraft:crimson_trapdoor": CrimsonTrapdoorStates; + crimson_wall_sign: CrimsonWallSignStates; + "minecraft:crimson_wall_sign": CrimsonWallSignStates; + cut_copper_slab: CutCopperSlabStates; + "minecraft:cut_copper_slab": CutCopperSlabStates; + cut_copper_stairs: CutCopperStairsStates; + "minecraft:cut_copper_stairs": CutCopperStairsStates; + cyan_candle: CyanCandleStates; + "minecraft:cyan_candle": CyanCandleStates; + cyan_candle_cake: CyanCandleCakeStates; + "minecraft:cyan_candle_cake": CyanCandleCakeStates; + cyan_glazed_terracotta: CyanGlazedTerracottaStates; + "minecraft:cyan_glazed_terracotta": CyanGlazedTerracottaStates; + dark_oak_button: DarkOakButtonStates; + "minecraft:dark_oak_button": DarkOakButtonStates; + dark_oak_door: DarkOakDoorStates; + "minecraft:dark_oak_door": DarkOakDoorStates; + dark_oak_double_slab: DarkOakDoubleSlabStates; + "minecraft:dark_oak_double_slab": DarkOakDoubleSlabStates; + dark_oak_fence_gate: DarkOakFenceGateStates; + "minecraft:dark_oak_fence_gate": DarkOakFenceGateStates; + dark_oak_hanging_sign: DarkOakHangingSignStates; + "minecraft:dark_oak_hanging_sign": DarkOakHangingSignStates; + dark_oak_leaves: DarkOakLeavesStates; + "minecraft:dark_oak_leaves": DarkOakLeavesStates; + dark_oak_log: DarkOakLogStates; + "minecraft:dark_oak_log": DarkOakLogStates; + dark_oak_pressure_plate: DarkOakPressurePlateStates; + "minecraft:dark_oak_pressure_plate": DarkOakPressurePlateStates; + dark_oak_sapling: DarkOakSaplingStates; + "minecraft:dark_oak_sapling": DarkOakSaplingStates; + dark_oak_slab: DarkOakSlabStates; + "minecraft:dark_oak_slab": DarkOakSlabStates; + dark_oak_stairs: DarkOakStairsStates; + "minecraft:dark_oak_stairs": DarkOakStairsStates; + dark_oak_trapdoor: DarkOakTrapdoorStates; + "minecraft:dark_oak_trapdoor": DarkOakTrapdoorStates; + dark_oak_wood: DarkOakWoodStates; + "minecraft:dark_oak_wood": DarkOakWoodStates; + dark_prismarine_stairs: DarkPrismarineStairsStates; + "minecraft:dark_prismarine_stairs": DarkPrismarineStairsStates; + darkoak_standing_sign: DarkoakStandingSignStates; + "minecraft:darkoak_standing_sign": DarkoakStandingSignStates; + darkoak_wall_sign: DarkoakWallSignStates; + "minecraft:darkoak_wall_sign": DarkoakWallSignStates; + daylight_detector: DaylightDetectorStates; + "minecraft:daylight_detector": DaylightDetectorStates; + daylight_detector_inverted: DaylightDetectorInvertedStates; + "minecraft:daylight_detector_inverted": DaylightDetectorInvertedStates; + dead_brain_coral_fan: DeadBrainCoralFanStates; + "minecraft:dead_brain_coral_fan": DeadBrainCoralFanStates; + dead_bubble_coral_fan: DeadBubbleCoralFanStates; + "minecraft:dead_bubble_coral_fan": DeadBubbleCoralFanStates; + dead_fire_coral_fan: DeadFireCoralFanStates; + "minecraft:dead_fire_coral_fan": DeadFireCoralFanStates; + dead_horn_coral_fan: DeadHornCoralFanStates; + "minecraft:dead_horn_coral_fan": DeadHornCoralFanStates; + dead_tube_coral_fan: DeadTubeCoralFanStates; + "minecraft:dead_tube_coral_fan": DeadTubeCoralFanStates; + decorated_pot: DecoratedPotStates; + "minecraft:decorated_pot": DecoratedPotStates; + deepslate: DeepslateStates; + "minecraft:deepslate": DeepslateStates; + deepslate_brick_double_slab: DeepslateBrickDoubleSlabStates; + "minecraft:deepslate_brick_double_slab": DeepslateBrickDoubleSlabStates; + deepslate_brick_slab: DeepslateBrickSlabStates; + "minecraft:deepslate_brick_slab": DeepslateBrickSlabStates; + deepslate_brick_stairs: DeepslateBrickStairsStates; + "minecraft:deepslate_brick_stairs": DeepslateBrickStairsStates; + deepslate_brick_wall: DeepslateBrickWallStates; + "minecraft:deepslate_brick_wall": DeepslateBrickWallStates; + deepslate_tile_double_slab: DeepslateTileDoubleSlabStates; + "minecraft:deepslate_tile_double_slab": DeepslateTileDoubleSlabStates; + deepslate_tile_slab: DeepslateTileSlabStates; + "minecraft:deepslate_tile_slab": DeepslateTileSlabStates; + deepslate_tile_stairs: DeepslateTileStairsStates; + "minecraft:deepslate_tile_stairs": DeepslateTileStairsStates; + deepslate_tile_wall: DeepslateTileWallStates; + "minecraft:deepslate_tile_wall": DeepslateTileWallStates; + detector_rail: DetectorRailStates; + "minecraft:detector_rail": DetectorRailStates; + diorite_stairs: DioriteStairsStates; + "minecraft:diorite_stairs": DioriteStairsStates; + dirt: DirtStates; + "minecraft:dirt": DirtStates; + dispenser: DispenserStates; + "minecraft:dispenser": DispenserStates; + double_cut_copper_slab: DoubleCutCopperSlabStates; + "minecraft:double_cut_copper_slab": DoubleCutCopperSlabStates; + double_stone_block_slab: DoubleStoneBlockSlabStates; + "minecraft:double_stone_block_slab": DoubleStoneBlockSlabStates; + double_stone_block_slab2: DoubleStoneBlockSlab2States; + "minecraft:double_stone_block_slab2": DoubleStoneBlockSlab2States; + double_stone_block_slab3: DoubleStoneBlockSlab3States; + "minecraft:double_stone_block_slab3": DoubleStoneBlockSlab3States; + double_stone_block_slab4: DoubleStoneBlockSlab4States; + "minecraft:double_stone_block_slab4": DoubleStoneBlockSlab4States; + dropper: DropperStates; + "minecraft:dropper": DropperStates; + end_brick_stairs: EndBrickStairsStates; + "minecraft:end_brick_stairs": EndBrickStairsStates; + end_portal_frame: EndPortalFrameStates; + "minecraft:end_portal_frame": EndPortalFrameStates; + end_rod: EndRodStates; + "minecraft:end_rod": EndRodStates; + ender_chest: EnderChestStates; + "minecraft:ender_chest": EnderChestStates; + exposed_copper_bulb: ExposedCopperBulbStates; + "minecraft:exposed_copper_bulb": ExposedCopperBulbStates; + exposed_copper_door: ExposedCopperDoorStates; + "minecraft:exposed_copper_door": ExposedCopperDoorStates; + exposed_copper_trapdoor: ExposedCopperTrapdoorStates; + "minecraft:exposed_copper_trapdoor": ExposedCopperTrapdoorStates; + exposed_cut_copper_slab: ExposedCutCopperSlabStates; + "minecraft:exposed_cut_copper_slab": ExposedCutCopperSlabStates; + exposed_cut_copper_stairs: ExposedCutCopperStairsStates; + "minecraft:exposed_cut_copper_stairs": ExposedCutCopperStairsStates; + exposed_double_cut_copper_slab: ExposedDoubleCutCopperSlabStates; + "minecraft:exposed_double_cut_copper_slab": ExposedDoubleCutCopperSlabStates; + farmland: FarmlandStates; + "minecraft:farmland": FarmlandStates; + fence_gate: FenceGateStates; + "minecraft:fence_gate": FenceGateStates; + fire: FireStates; + "minecraft:fire": FireStates; + fire_coral_fan: FireCoralFanStates; + "minecraft:fire_coral_fan": FireCoralFanStates; + flower_pot: FlowerPotStates; + "minecraft:flower_pot": FlowerPotStates; + flowing_lava: FlowingLavaStates; + "minecraft:flowing_lava": FlowingLavaStates; + flowing_water: FlowingWaterStates; + "minecraft:flowing_water": FlowingWaterStates; + frame: FrameStates; + "minecraft:frame": FrameStates; + frosted_ice: FrostedIceStates; + "minecraft:frosted_ice": FrostedIceStates; + furnace: FurnaceStates; + "minecraft:furnace": FurnaceStates; + glow_frame: GlowFrameStates; + "minecraft:glow_frame": GlowFrameStates; + glow_lichen: GlowLichenStates; + "minecraft:glow_lichen": GlowLichenStates; + golden_rail: GoldenRailStates; + "minecraft:golden_rail": GoldenRailStates; + granite_stairs: GraniteStairsStates; + "minecraft:granite_stairs": GraniteStairsStates; + gray_candle: GrayCandleStates; + "minecraft:gray_candle": GrayCandleStates; + gray_candle_cake: GrayCandleCakeStates; + "minecraft:gray_candle_cake": GrayCandleCakeStates; + gray_glazed_terracotta: GrayGlazedTerracottaStates; + "minecraft:gray_glazed_terracotta": GrayGlazedTerracottaStates; + green_candle: GreenCandleStates; + "minecraft:green_candle": GreenCandleStates; + green_candle_cake: GreenCandleCakeStates; + "minecraft:green_candle_cake": GreenCandleCakeStates; + green_glazed_terracotta: GreenGlazedTerracottaStates; + "minecraft:green_glazed_terracotta": GreenGlazedTerracottaStates; + grindstone: GrindstoneStates; + "minecraft:grindstone": GrindstoneStates; + hay_block: HayBlockStates; + "minecraft:hay_block": HayBlockStates; + heavy_weighted_pressure_plate: HeavyWeightedPressurePlateStates; + "minecraft:heavy_weighted_pressure_plate": HeavyWeightedPressurePlateStates; + hopper: HopperStates; + "minecraft:hopper": HopperStates; + horn_coral_fan: HornCoralFanStates; + "minecraft:horn_coral_fan": HornCoralFanStates; + infested_deepslate: InfestedDeepslateStates; + "minecraft:infested_deepslate": InfestedDeepslateStates; + iron_door: IronDoorStates; + "minecraft:iron_door": IronDoorStates; + iron_trapdoor: IronTrapdoorStates; + "minecraft:iron_trapdoor": IronTrapdoorStates; + jigsaw: JigsawStates; + "minecraft:jigsaw": JigsawStates; + jungle_button: JungleButtonStates; + "minecraft:jungle_button": JungleButtonStates; + jungle_door: JungleDoorStates; + "minecraft:jungle_door": JungleDoorStates; + jungle_double_slab: JungleDoubleSlabStates; + "minecraft:jungle_double_slab": JungleDoubleSlabStates; + jungle_fence_gate: JungleFenceGateStates; + "minecraft:jungle_fence_gate": JungleFenceGateStates; + jungle_hanging_sign: JungleHangingSignStates; + "minecraft:jungle_hanging_sign": JungleHangingSignStates; + jungle_leaves: JungleLeavesStates; + "minecraft:jungle_leaves": JungleLeavesStates; + jungle_log: JungleLogStates; + "minecraft:jungle_log": JungleLogStates; + jungle_pressure_plate: JunglePressurePlateStates; + "minecraft:jungle_pressure_plate": JunglePressurePlateStates; + jungle_sapling: JungleSaplingStates; + "minecraft:jungle_sapling": JungleSaplingStates; + jungle_slab: JungleSlabStates; + "minecraft:jungle_slab": JungleSlabStates; + jungle_stairs: JungleStairsStates; + "minecraft:jungle_stairs": JungleStairsStates; + jungle_standing_sign: JungleStandingSignStates; + "minecraft:jungle_standing_sign": JungleStandingSignStates; + jungle_trapdoor: JungleTrapdoorStates; + "minecraft:jungle_trapdoor": JungleTrapdoorStates; + jungle_wall_sign: JungleWallSignStates; + "minecraft:jungle_wall_sign": JungleWallSignStates; + jungle_wood: JungleWoodStates; + "minecraft:jungle_wood": JungleWoodStates; + kelp: KelpStates; + "minecraft:kelp": KelpStates; + ladder: LadderStates; + "minecraft:ladder": LadderStates; + lantern: LanternStates; + "minecraft:lantern": LanternStates; + large_amethyst_bud: LargeAmethystBudStates; + "minecraft:large_amethyst_bud": LargeAmethystBudStates; + large_fern: LargeFernStates; + "minecraft:large_fern": LargeFernStates; + lava: LavaStates; + "minecraft:lava": LavaStates; + lectern: LecternStates; + "minecraft:lectern": LecternStates; + lever: LeverStates; + "minecraft:lever": LeverStates; + light_block: LightBlockStates; + "minecraft:light_block": LightBlockStates; + light_blue_candle: LightBlueCandleStates; + "minecraft:light_blue_candle": LightBlueCandleStates; + light_blue_candle_cake: LightBlueCandleCakeStates; + "minecraft:light_blue_candle_cake": LightBlueCandleCakeStates; + light_blue_glazed_terracotta: LightBlueGlazedTerracottaStates; + "minecraft:light_blue_glazed_terracotta": LightBlueGlazedTerracottaStates; + light_gray_candle: LightGrayCandleStates; + "minecraft:light_gray_candle": LightGrayCandleStates; + light_gray_candle_cake: LightGrayCandleCakeStates; + "minecraft:light_gray_candle_cake": LightGrayCandleCakeStates; + light_weighted_pressure_plate: LightWeightedPressurePlateStates; + "minecraft:light_weighted_pressure_plate": LightWeightedPressurePlateStates; + lightning_rod: LightningRodStates; + "minecraft:lightning_rod": LightningRodStates; + lilac: LilacStates; + "minecraft:lilac": LilacStates; + lime_candle: LimeCandleStates; + "minecraft:lime_candle": LimeCandleStates; + lime_candle_cake: LimeCandleCakeStates; + "minecraft:lime_candle_cake": LimeCandleCakeStates; + lime_glazed_terracotta: LimeGlazedTerracottaStates; + "minecraft:lime_glazed_terracotta": LimeGlazedTerracottaStates; + lit_blast_furnace: LitBlastFurnaceStates; + "minecraft:lit_blast_furnace": LitBlastFurnaceStates; + lit_furnace: LitFurnaceStates; + "minecraft:lit_furnace": LitFurnaceStates; + lit_pumpkin: LitPumpkinStates; + "minecraft:lit_pumpkin": LitPumpkinStates; + lit_smoker: LitSmokerStates; + "minecraft:lit_smoker": LitSmokerStates; + loom: LoomStates; + "minecraft:loom": LoomStates; + magenta_candle: MagentaCandleStates; + "minecraft:magenta_candle": MagentaCandleStates; + magenta_candle_cake: MagentaCandleCakeStates; + "minecraft:magenta_candle_cake": MagentaCandleCakeStates; + magenta_glazed_terracotta: MagentaGlazedTerracottaStates; + "minecraft:magenta_glazed_terracotta": MagentaGlazedTerracottaStates; + mangrove_button: MangroveButtonStates; + "minecraft:mangrove_button": MangroveButtonStates; + mangrove_door: MangroveDoorStates; + "minecraft:mangrove_door": MangroveDoorStates; + mangrove_double_slab: MangroveDoubleSlabStates; + "minecraft:mangrove_double_slab": MangroveDoubleSlabStates; + mangrove_fence_gate: MangroveFenceGateStates; + "minecraft:mangrove_fence_gate": MangroveFenceGateStates; + mangrove_hanging_sign: MangroveHangingSignStates; + "minecraft:mangrove_hanging_sign": MangroveHangingSignStates; + mangrove_leaves: MangroveLeavesStates; + "minecraft:mangrove_leaves": MangroveLeavesStates; + mangrove_log: MangroveLogStates; + "minecraft:mangrove_log": MangroveLogStates; + mangrove_pressure_plate: MangrovePressurePlateStates; + "minecraft:mangrove_pressure_plate": MangrovePressurePlateStates; + mangrove_propagule: MangrovePropaguleStates; + "minecraft:mangrove_propagule": MangrovePropaguleStates; + mangrove_slab: MangroveSlabStates; + "minecraft:mangrove_slab": MangroveSlabStates; + mangrove_stairs: MangroveStairsStates; + "minecraft:mangrove_stairs": MangroveStairsStates; + mangrove_standing_sign: MangroveStandingSignStates; + "minecraft:mangrove_standing_sign": MangroveStandingSignStates; + mangrove_trapdoor: MangroveTrapdoorStates; + "minecraft:mangrove_trapdoor": MangroveTrapdoorStates; + mangrove_wall_sign: MangroveWallSignStates; + "minecraft:mangrove_wall_sign": MangroveWallSignStates; + mangrove_wood: MangroveWoodStates; + "minecraft:mangrove_wood": MangroveWoodStates; + medium_amethyst_bud: MediumAmethystBudStates; + "minecraft:medium_amethyst_bud": MediumAmethystBudStates; + melon_stem: MelonStemStates; + "minecraft:melon_stem": MelonStemStates; + monster_egg: MonsterEggStates; + "minecraft:monster_egg": MonsterEggStates; + mossy_cobblestone_stairs: MossyCobblestoneStairsStates; + "minecraft:mossy_cobblestone_stairs": MossyCobblestoneStairsStates; + mossy_stone_brick_stairs: MossyStoneBrickStairsStates; + "minecraft:mossy_stone_brick_stairs": MossyStoneBrickStairsStates; + mud_brick_double_slab: MudBrickDoubleSlabStates; + "minecraft:mud_brick_double_slab": MudBrickDoubleSlabStates; + mud_brick_slab: MudBrickSlabStates; + "minecraft:mud_brick_slab": MudBrickSlabStates; + mud_brick_stairs: MudBrickStairsStates; + "minecraft:mud_brick_stairs": MudBrickStairsStates; + mud_brick_wall: MudBrickWallStates; + "minecraft:mud_brick_wall": MudBrickWallStates; + muddy_mangrove_roots: MuddyMangroveRootsStates; + "minecraft:muddy_mangrove_roots": MuddyMangroveRootsStates; + nether_brick_slab: NetherBrickSlabStates; + "minecraft:nether_brick_slab": NetherBrickSlabStates; + nether_brick_stairs: NetherBrickStairsStates; + "minecraft:nether_brick_stairs": NetherBrickStairsStates; + nether_wart: NetherWartStates; + "minecraft:nether_wart": NetherWartStates; + normal_stone_stairs: NormalStoneStairsStates; + "minecraft:normal_stone_stairs": NormalStoneStairsStates; + oak_double_slab: OakDoubleSlabStates; + "minecraft:oak_double_slab": OakDoubleSlabStates; + oak_hanging_sign: OakHangingSignStates; + "minecraft:oak_hanging_sign": OakHangingSignStates; + oak_leaves: OakLeavesStates; + "minecraft:oak_leaves": OakLeavesStates; + oak_log: OakLogStates; + "minecraft:oak_log": OakLogStates; + oak_sapling: OakSaplingStates; + "minecraft:oak_sapling": OakSaplingStates; + oak_slab: OakSlabStates; + "minecraft:oak_slab": OakSlabStates; + oak_stairs: OakStairsStates; + "minecraft:oak_stairs": OakStairsStates; + oak_wood: OakWoodStates; + "minecraft:oak_wood": OakWoodStates; + observer: ObserverStates; + "minecraft:observer": ObserverStates; + ochre_froglight: OchreFroglightStates; + "minecraft:ochre_froglight": OchreFroglightStates; + orange_candle: OrangeCandleStates; + "minecraft:orange_candle": OrangeCandleStates; + orange_candle_cake: OrangeCandleCakeStates; + "minecraft:orange_candle_cake": OrangeCandleCakeStates; + orange_glazed_terracotta: OrangeGlazedTerracottaStates; + "minecraft:orange_glazed_terracotta": OrangeGlazedTerracottaStates; + oxidized_copper_bulb: OxidizedCopperBulbStates; + "minecraft:oxidized_copper_bulb": OxidizedCopperBulbStates; + oxidized_copper_door: OxidizedCopperDoorStates; + "minecraft:oxidized_copper_door": OxidizedCopperDoorStates; + oxidized_copper_trapdoor: OxidizedCopperTrapdoorStates; + "minecraft:oxidized_copper_trapdoor": OxidizedCopperTrapdoorStates; + oxidized_cut_copper_slab: OxidizedCutCopperSlabStates; + "minecraft:oxidized_cut_copper_slab": OxidizedCutCopperSlabStates; + oxidized_cut_copper_stairs: OxidizedCutCopperStairsStates; + "minecraft:oxidized_cut_copper_stairs": OxidizedCutCopperStairsStates; + oxidized_double_cut_copper_slab: OxidizedDoubleCutCopperSlabStates; + "minecraft:oxidized_double_cut_copper_slab": OxidizedDoubleCutCopperSlabStates; + pearlescent_froglight: PearlescentFroglightStates; + "minecraft:pearlescent_froglight": PearlescentFroglightStates; + peony: PeonyStates; + "minecraft:peony": PeonyStates; + petrified_oak_slab: PetrifiedOakSlabStates; + "minecraft:petrified_oak_slab": PetrifiedOakSlabStates; + pink_candle: PinkCandleStates; + "minecraft:pink_candle": PinkCandleStates; + pink_candle_cake: PinkCandleCakeStates; + "minecraft:pink_candle_cake": PinkCandleCakeStates; + pink_glazed_terracotta: PinkGlazedTerracottaStates; + "minecraft:pink_glazed_terracotta": PinkGlazedTerracottaStates; + pink_petals: PinkPetalsStates; + "minecraft:pink_petals": PinkPetalsStates; + piston: PistonStates; + "minecraft:piston": PistonStates; + piston_arm_collision: PistonArmCollisionStates; + "minecraft:piston_arm_collision": PistonArmCollisionStates; + pitcher_crop: PitcherCropStates; + "minecraft:pitcher_crop": PitcherCropStates; + pitcher_plant: PitcherPlantStates; + "minecraft:pitcher_plant": PitcherPlantStates; + pointed_dripstone: PointedDripstoneStates; + "minecraft:pointed_dripstone": PointedDripstoneStates; + polished_andesite_stairs: PolishedAndesiteStairsStates; + "minecraft:polished_andesite_stairs": PolishedAndesiteStairsStates; + polished_basalt: PolishedBasaltStates; + "minecraft:polished_basalt": PolishedBasaltStates; + polished_blackstone_brick_double_slab: PolishedBlackstoneBrickDoubleSlabStates; + "minecraft:polished_blackstone_brick_double_slab": PolishedBlackstoneBrickDoubleSlabStates; + polished_blackstone_brick_slab: PolishedBlackstoneBrickSlabStates; + "minecraft:polished_blackstone_brick_slab": PolishedBlackstoneBrickSlabStates; + polished_blackstone_brick_stairs: PolishedBlackstoneBrickStairsStates; + "minecraft:polished_blackstone_brick_stairs": PolishedBlackstoneBrickStairsStates; + polished_blackstone_brick_wall: PolishedBlackstoneBrickWallStates; + "minecraft:polished_blackstone_brick_wall": PolishedBlackstoneBrickWallStates; + polished_blackstone_button: PolishedBlackstoneButtonStates; + "minecraft:polished_blackstone_button": PolishedBlackstoneButtonStates; + polished_blackstone_double_slab: PolishedBlackstoneDoubleSlabStates; + "minecraft:polished_blackstone_double_slab": PolishedBlackstoneDoubleSlabStates; + polished_blackstone_pressure_plate: PolishedBlackstonePressurePlateStates; + "minecraft:polished_blackstone_pressure_plate": PolishedBlackstonePressurePlateStates; + polished_blackstone_slab: PolishedBlackstoneSlabStates; + "minecraft:polished_blackstone_slab": PolishedBlackstoneSlabStates; + polished_blackstone_stairs: PolishedBlackstoneStairsStates; + "minecraft:polished_blackstone_stairs": PolishedBlackstoneStairsStates; + polished_blackstone_wall: PolishedBlackstoneWallStates; + "minecraft:polished_blackstone_wall": PolishedBlackstoneWallStates; + polished_deepslate_double_slab: PolishedDeepslateDoubleSlabStates; + "minecraft:polished_deepslate_double_slab": PolishedDeepslateDoubleSlabStates; + polished_deepslate_slab: PolishedDeepslateSlabStates; + "minecraft:polished_deepslate_slab": PolishedDeepslateSlabStates; + polished_deepslate_stairs: PolishedDeepslateStairsStates; + "minecraft:polished_deepslate_stairs": PolishedDeepslateStairsStates; + polished_deepslate_wall: PolishedDeepslateWallStates; + "minecraft:polished_deepslate_wall": PolishedDeepslateWallStates; + polished_diorite_stairs: PolishedDioriteStairsStates; + "minecraft:polished_diorite_stairs": PolishedDioriteStairsStates; + polished_granite_stairs: PolishedGraniteStairsStates; + "minecraft:polished_granite_stairs": PolishedGraniteStairsStates; + polished_tuff_double_slab: PolishedTuffDoubleSlabStates; + "minecraft:polished_tuff_double_slab": PolishedTuffDoubleSlabStates; + polished_tuff_slab: PolishedTuffSlabStates; + "minecraft:polished_tuff_slab": PolishedTuffSlabStates; + polished_tuff_stairs: PolishedTuffStairsStates; + "minecraft:polished_tuff_stairs": PolishedTuffStairsStates; + polished_tuff_wall: PolishedTuffWallStates; + "minecraft:polished_tuff_wall": PolishedTuffWallStates; + portal: PortalStates; + "minecraft:portal": PortalStates; + potatoes: PotatoesStates; + "minecraft:potatoes": PotatoesStates; + powered_comparator: PoweredComparatorStates; + "minecraft:powered_comparator": PoweredComparatorStates; + powered_repeater: PoweredRepeaterStates; + "minecraft:powered_repeater": PoweredRepeaterStates; + prismarine: PrismarineStates; + "minecraft:prismarine": PrismarineStates; + prismarine_bricks_stairs: PrismarineBricksStairsStates; + "minecraft:prismarine_bricks_stairs": PrismarineBricksStairsStates; + prismarine_stairs: PrismarineStairsStates; + "minecraft:prismarine_stairs": PrismarineStairsStates; + pumpkin: PumpkinStates; + "minecraft:pumpkin": PumpkinStates; + pumpkin_stem: PumpkinStemStates; + "minecraft:pumpkin_stem": PumpkinStemStates; + purple_candle: PurpleCandleStates; + "minecraft:purple_candle": PurpleCandleStates; + purple_candle_cake: PurpleCandleCakeStates; + "minecraft:purple_candle_cake": PurpleCandleCakeStates; + purple_glazed_terracotta: PurpleGlazedTerracottaStates; + "minecraft:purple_glazed_terracotta": PurpleGlazedTerracottaStates; + purpur_block: PurpurBlockStates; + "minecraft:purpur_block": PurpurBlockStates; + purpur_stairs: PurpurStairsStates; + "minecraft:purpur_stairs": PurpurStairsStates; + quartz_block: QuartzBlockStates; + "minecraft:quartz_block": QuartzBlockStates; + quartz_slab: QuartzSlabStates; + "minecraft:quartz_slab": QuartzSlabStates; + quartz_stairs: QuartzStairsStates; + "minecraft:quartz_stairs": QuartzStairsStates; + rail: RailStates; + "minecraft:rail": RailStates; + red_candle: RedCandleStates; + "minecraft:red_candle": RedCandleStates; + red_candle_cake: RedCandleCakeStates; + "minecraft:red_candle_cake": RedCandleCakeStates; + red_glazed_terracotta: RedGlazedTerracottaStates; + "minecraft:red_glazed_terracotta": RedGlazedTerracottaStates; + red_mushroom_block: RedMushroomBlockStates; + "minecraft:red_mushroom_block": RedMushroomBlockStates; + red_nether_brick_stairs: RedNetherBrickStairsStates; + "minecraft:red_nether_brick_stairs": RedNetherBrickStairsStates; + red_sandstone: RedSandstoneStates; + "minecraft:red_sandstone": RedSandstoneStates; + red_sandstone_stairs: RedSandstoneStairsStates; + "minecraft:red_sandstone_stairs": RedSandstoneStairsStates; + redstone_torch: RedstoneTorchStates; + "minecraft:redstone_torch": RedstoneTorchStates; + redstone_wire: RedstoneWireStates; + "minecraft:redstone_wire": RedstoneWireStates; + reeds: ReedsStates; + "minecraft:reeds": ReedsStates; + repeating_command_block: RepeatingCommandBlockStates; + "minecraft:repeating_command_block": RepeatingCommandBlockStates; + respawn_anchor: RespawnAnchorStates; + "minecraft:respawn_anchor": RespawnAnchorStates; + rose_bush: RoseBushStates; + "minecraft:rose_bush": RoseBushStates; + sand: SandStates; + "minecraft:sand": SandStates; + sandstone: SandstoneStates; + "minecraft:sandstone": SandstoneStates; + sandstone_slab: SandstoneSlabStates; + "minecraft:sandstone_slab": SandstoneSlabStates; + sandstone_stairs: SandstoneStairsStates; + "minecraft:sandstone_stairs": SandstoneStairsStates; + scaffolding: ScaffoldingStates; + "minecraft:scaffolding": ScaffoldingStates; + sculk_catalyst: SculkCatalystStates; + "minecraft:sculk_catalyst": SculkCatalystStates; + sculk_sensor: SculkSensorStates; + "minecraft:sculk_sensor": SculkSensorStates; + sculk_shrieker: SculkShriekerStates; + "minecraft:sculk_shrieker": SculkShriekerStates; + sculk_vein: SculkVeinStates; + "minecraft:sculk_vein": SculkVeinStates; + sea_pickle: SeaPickleStates; + "minecraft:sea_pickle": SeaPickleStates; + seagrass: SeagrassStates; + "minecraft:seagrass": SeagrassStates; + silver_glazed_terracotta: SilverGlazedTerracottaStates; + "minecraft:silver_glazed_terracotta": SilverGlazedTerracottaStates; + skull: SkullStates; + "minecraft:skull": SkullStates; + small_amethyst_bud: SmallAmethystBudStates; + "minecraft:small_amethyst_bud": SmallAmethystBudStates; + small_dripleaf_block: SmallDripleafBlockStates; + "minecraft:small_dripleaf_block": SmallDripleafBlockStates; + smoker: SmokerStates; + "minecraft:smoker": SmokerStates; + smooth_quartz_stairs: SmoothQuartzStairsStates; + "minecraft:smooth_quartz_stairs": SmoothQuartzStairsStates; + smooth_red_sandstone_stairs: SmoothRedSandstoneStairsStates; + "minecraft:smooth_red_sandstone_stairs": SmoothRedSandstoneStairsStates; + smooth_sandstone_stairs: SmoothSandstoneStairsStates; + "minecraft:smooth_sandstone_stairs": SmoothSandstoneStairsStates; + smooth_stone_slab: SmoothStoneSlabStates; + "minecraft:smooth_stone_slab": SmoothStoneSlabStates; + sniffer_egg: SnifferEggStates; + "minecraft:sniffer_egg": SnifferEggStates; + snow_layer: SnowLayerStates; + "minecraft:snow_layer": SnowLayerStates; + soul_campfire: SoulCampfireStates; + "minecraft:soul_campfire": SoulCampfireStates; + soul_fire: SoulFireStates; + "minecraft:soul_fire": SoulFireStates; + soul_lantern: SoulLanternStates; + "minecraft:soul_lantern": SoulLanternStates; + soul_torch: SoulTorchStates; + "minecraft:soul_torch": SoulTorchStates; + sponge: SpongeStates; + "minecraft:sponge": SpongeStates; + spruce_button: SpruceButtonStates; + "minecraft:spruce_button": SpruceButtonStates; + spruce_door: SpruceDoorStates; + "minecraft:spruce_door": SpruceDoorStates; + spruce_double_slab: SpruceDoubleSlabStates; + "minecraft:spruce_double_slab": SpruceDoubleSlabStates; + spruce_fence_gate: SpruceFenceGateStates; + "minecraft:spruce_fence_gate": SpruceFenceGateStates; + spruce_hanging_sign: SpruceHangingSignStates; + "minecraft:spruce_hanging_sign": SpruceHangingSignStates; + spruce_leaves: SpruceLeavesStates; + "minecraft:spruce_leaves": SpruceLeavesStates; + spruce_log: SpruceLogStates; + "minecraft:spruce_log": SpruceLogStates; + spruce_pressure_plate: SprucePressurePlateStates; + "minecraft:spruce_pressure_plate": SprucePressurePlateStates; + spruce_sapling: SpruceSaplingStates; + "minecraft:spruce_sapling": SpruceSaplingStates; + spruce_slab: SpruceSlabStates; + "minecraft:spruce_slab": SpruceSlabStates; + spruce_stairs: SpruceStairsStates; + "minecraft:spruce_stairs": SpruceStairsStates; + spruce_standing_sign: SpruceStandingSignStates; + "minecraft:spruce_standing_sign": SpruceStandingSignStates; + spruce_trapdoor: SpruceTrapdoorStates; + "minecraft:spruce_trapdoor": SpruceTrapdoorStates; + spruce_wall_sign: SpruceWallSignStates; + "minecraft:spruce_wall_sign": SpruceWallSignStates; + spruce_wood: SpruceWoodStates; + "minecraft:spruce_wood": SpruceWoodStates; + standing_banner: StandingBannerStates; + "minecraft:standing_banner": StandingBannerStates; + standing_sign: StandingSignStates; + "minecraft:standing_sign": StandingSignStates; + sticky_piston: StickyPistonStates; + "minecraft:sticky_piston": StickyPistonStates; + sticky_piston_arm_collision: StickyPistonArmCollisionStates; + "minecraft:sticky_piston_arm_collision": StickyPistonArmCollisionStates; + stone_block_slab2: StoneBlockSlab2States; + "minecraft:stone_block_slab2": StoneBlockSlab2States; + stone_block_slab3: StoneBlockSlab3States; + "minecraft:stone_block_slab3": StoneBlockSlab3States; + stone_block_slab4: StoneBlockSlab4States; + "minecraft:stone_block_slab4": StoneBlockSlab4States; + stone_brick_slab: StoneBrickSlabStates; + "minecraft:stone_brick_slab": StoneBrickSlabStates; + stone_brick_stairs: StoneBrickStairsStates; + "minecraft:stone_brick_stairs": StoneBrickStairsStates; + stone_button: StoneButtonStates; + "minecraft:stone_button": StoneButtonStates; + stone_pressure_plate: StonePressurePlateStates; + "minecraft:stone_pressure_plate": StonePressurePlateStates; + stone_stairs: StoneStairsStates; + "minecraft:stone_stairs": StoneStairsStates; + stonebrick: StonebrickStates; + "minecraft:stonebrick": StonebrickStates; + stonecutter_block: StonecutterBlockStates; + "minecraft:stonecutter_block": StonecutterBlockStates; + stripped_acacia_log: StrippedAcaciaLogStates; + "minecraft:stripped_acacia_log": StrippedAcaciaLogStates; + stripped_acacia_wood: StrippedAcaciaWoodStates; + "minecraft:stripped_acacia_wood": StrippedAcaciaWoodStates; + stripped_bamboo_block: StrippedBambooBlockStates; + "minecraft:stripped_bamboo_block": StrippedBambooBlockStates; + stripped_birch_log: StrippedBirchLogStates; + "minecraft:stripped_birch_log": StrippedBirchLogStates; + stripped_birch_wood: StrippedBirchWoodStates; + "minecraft:stripped_birch_wood": StrippedBirchWoodStates; + stripped_cherry_log: StrippedCherryLogStates; + "minecraft:stripped_cherry_log": StrippedCherryLogStates; + stripped_cherry_wood: StrippedCherryWoodStates; + "minecraft:stripped_cherry_wood": StrippedCherryWoodStates; + stripped_crimson_hyphae: StrippedCrimsonHyphaeStates; + "minecraft:stripped_crimson_hyphae": StrippedCrimsonHyphaeStates; + stripped_crimson_stem: StrippedCrimsonStemStates; + "minecraft:stripped_crimson_stem": StrippedCrimsonStemStates; + stripped_dark_oak_log: StrippedDarkOakLogStates; + "minecraft:stripped_dark_oak_log": StrippedDarkOakLogStates; + stripped_dark_oak_wood: StrippedDarkOakWoodStates; + "minecraft:stripped_dark_oak_wood": StrippedDarkOakWoodStates; + stripped_jungle_log: StrippedJungleLogStates; + "minecraft:stripped_jungle_log": StrippedJungleLogStates; + stripped_jungle_wood: StrippedJungleWoodStates; + "minecraft:stripped_jungle_wood": StrippedJungleWoodStates; + stripped_mangrove_log: StrippedMangroveLogStates; + "minecraft:stripped_mangrove_log": StrippedMangroveLogStates; + stripped_mangrove_wood: StrippedMangroveWoodStates; + "minecraft:stripped_mangrove_wood": StrippedMangroveWoodStates; + stripped_oak_log: StrippedOakLogStates; + "minecraft:stripped_oak_log": StrippedOakLogStates; + stripped_oak_wood: StrippedOakWoodStates; + "minecraft:stripped_oak_wood": StrippedOakWoodStates; + stripped_spruce_log: StrippedSpruceLogStates; + "minecraft:stripped_spruce_log": StrippedSpruceLogStates; + stripped_spruce_wood: StrippedSpruceWoodStates; + "minecraft:stripped_spruce_wood": StrippedSpruceWoodStates; + stripped_warped_hyphae: StrippedWarpedHyphaeStates; + "minecraft:stripped_warped_hyphae": StrippedWarpedHyphaeStates; + stripped_warped_stem: StrippedWarpedStemStates; + "minecraft:stripped_warped_stem": StrippedWarpedStemStates; + structure_block: StructureBlockStates; + "minecraft:structure_block": StructureBlockStates; + structure_void: StructureVoidStates; + "minecraft:structure_void": StructureVoidStates; + sunflower: SunflowerStates; + "minecraft:sunflower": SunflowerStates; + suspicious_gravel: SuspiciousGravelStates; + "minecraft:suspicious_gravel": SuspiciousGravelStates; + suspicious_sand: SuspiciousSandStates; + "minecraft:suspicious_sand": SuspiciousSandStates; + sweet_berry_bush: SweetBerryBushStates; + "minecraft:sweet_berry_bush": SweetBerryBushStates; + tall_grass: TallGrassStates; + "minecraft:tall_grass": TallGrassStates; + tnt: TntStates; + "minecraft:tnt": TntStates; + torch: TorchStates; + "minecraft:torch": TorchStates; + torchflower_crop: TorchflowerCropStates; + "minecraft:torchflower_crop": TorchflowerCropStates; + trapdoor: TrapdoorStates; + "minecraft:trapdoor": TrapdoorStates; + trapped_chest: TrappedChestStates; + "minecraft:trapped_chest": TrappedChestStates; + trial_spawner: TrialSpawnerStates; + "minecraft:trial_spawner": TrialSpawnerStates; + trip_wire: TripWireStates; + "minecraft:trip_wire": TripWireStates; + tripwire_hook: TripwireHookStates; + "minecraft:tripwire_hook": TripwireHookStates; + tube_coral_fan: TubeCoralFanStates; + "minecraft:tube_coral_fan": TubeCoralFanStates; + tuff_brick_double_slab: TuffBrickDoubleSlabStates; + "minecraft:tuff_brick_double_slab": TuffBrickDoubleSlabStates; + tuff_brick_slab: TuffBrickSlabStates; + "minecraft:tuff_brick_slab": TuffBrickSlabStates; + tuff_brick_stairs: TuffBrickStairsStates; + "minecraft:tuff_brick_stairs": TuffBrickStairsStates; + tuff_brick_wall: TuffBrickWallStates; + "minecraft:tuff_brick_wall": TuffBrickWallStates; + tuff_double_slab: TuffDoubleSlabStates; + "minecraft:tuff_double_slab": TuffDoubleSlabStates; + tuff_slab: TuffSlabStates; + "minecraft:tuff_slab": TuffSlabStates; + tuff_stairs: TuffStairsStates; + "minecraft:tuff_stairs": TuffStairsStates; + tuff_wall: TuffWallStates; + "minecraft:tuff_wall": TuffWallStates; + turtle_egg: TurtleEggStates; + "minecraft:turtle_egg": TurtleEggStates; + twisting_vines: TwistingVinesStates; + "minecraft:twisting_vines": TwistingVinesStates; + underwater_torch: UnderwaterTorchStates; + "minecraft:underwater_torch": UnderwaterTorchStates; + unlit_redstone_torch: UnlitRedstoneTorchStates; + "minecraft:unlit_redstone_torch": UnlitRedstoneTorchStates; + unpowered_comparator: UnpoweredComparatorStates; + "minecraft:unpowered_comparator": UnpoweredComparatorStates; + unpowered_repeater: UnpoweredRepeaterStates; + "minecraft:unpowered_repeater": UnpoweredRepeaterStates; + vault: VaultStates; + "minecraft:vault": VaultStates; + verdant_froglight: VerdantFroglightStates; + "minecraft:verdant_froglight": VerdantFroglightStates; + vine: VineStates; + "minecraft:vine": VineStates; + wall_banner: WallBannerStates; + "minecraft:wall_banner": WallBannerStates; + wall_sign: WallSignStates; + "minecraft:wall_sign": WallSignStates; + warped_button: WarpedButtonStates; + "minecraft:warped_button": WarpedButtonStates; + warped_door: WarpedDoorStates; + "minecraft:warped_door": WarpedDoorStates; + warped_double_slab: WarpedDoubleSlabStates; + "minecraft:warped_double_slab": WarpedDoubleSlabStates; + warped_fence_gate: WarpedFenceGateStates; + "minecraft:warped_fence_gate": WarpedFenceGateStates; + warped_hanging_sign: WarpedHangingSignStates; + "minecraft:warped_hanging_sign": WarpedHangingSignStates; + warped_hyphae: WarpedHyphaeStates; + "minecraft:warped_hyphae": WarpedHyphaeStates; + warped_pressure_plate: WarpedPressurePlateStates; + "minecraft:warped_pressure_plate": WarpedPressurePlateStates; + warped_slab: WarpedSlabStates; + "minecraft:warped_slab": WarpedSlabStates; + warped_stairs: WarpedStairsStates; + "minecraft:warped_stairs": WarpedStairsStates; + warped_standing_sign: WarpedStandingSignStates; + "minecraft:warped_standing_sign": WarpedStandingSignStates; + warped_stem: WarpedStemStates; + "minecraft:warped_stem": WarpedStemStates; + warped_trapdoor: WarpedTrapdoorStates; + "minecraft:warped_trapdoor": WarpedTrapdoorStates; + warped_wall_sign: WarpedWallSignStates; + "minecraft:warped_wall_sign": WarpedWallSignStates; + water: WaterStates; + "minecraft:water": WaterStates; + waxed_copper_bulb: WaxedCopperBulbStates; + "minecraft:waxed_copper_bulb": WaxedCopperBulbStates; + waxed_copper_door: WaxedCopperDoorStates; + "minecraft:waxed_copper_door": WaxedCopperDoorStates; + waxed_copper_trapdoor: WaxedCopperTrapdoorStates; + "minecraft:waxed_copper_trapdoor": WaxedCopperTrapdoorStates; + waxed_cut_copper_slab: WaxedCutCopperSlabStates; + "minecraft:waxed_cut_copper_slab": WaxedCutCopperSlabStates; + waxed_cut_copper_stairs: WaxedCutCopperStairsStates; + "minecraft:waxed_cut_copper_stairs": WaxedCutCopperStairsStates; + waxed_double_cut_copper_slab: WaxedDoubleCutCopperSlabStates; + "minecraft:waxed_double_cut_copper_slab": WaxedDoubleCutCopperSlabStates; + waxed_exposed_copper_bulb: WaxedExposedCopperBulbStates; + "minecraft:waxed_exposed_copper_bulb": WaxedExposedCopperBulbStates; + waxed_exposed_copper_door: WaxedExposedCopperDoorStates; + "minecraft:waxed_exposed_copper_door": WaxedExposedCopperDoorStates; + waxed_exposed_copper_trapdoor: WaxedExposedCopperTrapdoorStates; + "minecraft:waxed_exposed_copper_trapdoor": WaxedExposedCopperTrapdoorStates; + waxed_exposed_cut_copper_slab: WaxedExposedCutCopperSlabStates; + "minecraft:waxed_exposed_cut_copper_slab": WaxedExposedCutCopperSlabStates; + waxed_exposed_cut_copper_stairs: WaxedExposedCutCopperStairsStates; + "minecraft:waxed_exposed_cut_copper_stairs": WaxedExposedCutCopperStairsStates; + waxed_exposed_double_cut_copper_slab: WaxedExposedDoubleCutCopperSlabStates; + "minecraft:waxed_exposed_double_cut_copper_slab": WaxedExposedDoubleCutCopperSlabStates; + waxed_oxidized_copper_bulb: WaxedOxidizedCopperBulbStates; + "minecraft:waxed_oxidized_copper_bulb": WaxedOxidizedCopperBulbStates; + waxed_oxidized_copper_door: WaxedOxidizedCopperDoorStates; + "minecraft:waxed_oxidized_copper_door": WaxedOxidizedCopperDoorStates; + waxed_oxidized_copper_trapdoor: WaxedOxidizedCopperTrapdoorStates; + "minecraft:waxed_oxidized_copper_trapdoor": WaxedOxidizedCopperTrapdoorStates; + waxed_oxidized_cut_copper_slab: WaxedOxidizedCutCopperSlabStates; + "minecraft:waxed_oxidized_cut_copper_slab": WaxedOxidizedCutCopperSlabStates; + waxed_oxidized_cut_copper_stairs: WaxedOxidizedCutCopperStairsStates; + "minecraft:waxed_oxidized_cut_copper_stairs": WaxedOxidizedCutCopperStairsStates; + waxed_oxidized_double_cut_copper_slab: WaxedOxidizedDoubleCutCopperSlabStates; + "minecraft:waxed_oxidized_double_cut_copper_slab": WaxedOxidizedDoubleCutCopperSlabStates; + waxed_weathered_copper_bulb: WaxedWeatheredCopperBulbStates; + "minecraft:waxed_weathered_copper_bulb": WaxedWeatheredCopperBulbStates; + waxed_weathered_copper_door: WaxedWeatheredCopperDoorStates; + "minecraft:waxed_weathered_copper_door": WaxedWeatheredCopperDoorStates; + waxed_weathered_copper_trapdoor: WaxedWeatheredCopperTrapdoorStates; + "minecraft:waxed_weathered_copper_trapdoor": WaxedWeatheredCopperTrapdoorStates; + waxed_weathered_cut_copper_slab: WaxedWeatheredCutCopperSlabStates; + "minecraft:waxed_weathered_cut_copper_slab": WaxedWeatheredCutCopperSlabStates; + waxed_weathered_cut_copper_stairs: WaxedWeatheredCutCopperStairsStates; + "minecraft:waxed_weathered_cut_copper_stairs": WaxedWeatheredCutCopperStairsStates; + waxed_weathered_double_cut_copper_slab: WaxedWeatheredDoubleCutCopperSlabStates; + "minecraft:waxed_weathered_double_cut_copper_slab": WaxedWeatheredDoubleCutCopperSlabStates; + weathered_copper_bulb: WeatheredCopperBulbStates; + "minecraft:weathered_copper_bulb": WeatheredCopperBulbStates; + weathered_copper_door: WeatheredCopperDoorStates; + "minecraft:weathered_copper_door": WeatheredCopperDoorStates; + weathered_copper_trapdoor: WeatheredCopperTrapdoorStates; + "minecraft:weathered_copper_trapdoor": WeatheredCopperTrapdoorStates; + weathered_cut_copper_slab: WeatheredCutCopperSlabStates; + "minecraft:weathered_cut_copper_slab": WeatheredCutCopperSlabStates; + weathered_cut_copper_stairs: WeatheredCutCopperStairsStates; + "minecraft:weathered_cut_copper_stairs": WeatheredCutCopperStairsStates; + weathered_double_cut_copper_slab: WeatheredDoubleCutCopperSlabStates; + "minecraft:weathered_double_cut_copper_slab": WeatheredDoubleCutCopperSlabStates; + weeping_vines: WeepingVinesStates; + "minecraft:weeping_vines": WeepingVinesStates; + wheat: WheatStates; + "minecraft:wheat": WheatStates; + white_candle: WhiteCandleStates; + "minecraft:white_candle": WhiteCandleStates; + white_candle_cake: WhiteCandleCakeStates; + "minecraft:white_candle_cake": WhiteCandleCakeStates; + white_glazed_terracotta: WhiteGlazedTerracottaStates; + "minecraft:white_glazed_terracotta": WhiteGlazedTerracottaStates; + wooden_button: WoodenButtonStates; + "minecraft:wooden_button": WoodenButtonStates; + wooden_door: WoodenDoorStates; + "minecraft:wooden_door": WoodenDoorStates; + wooden_pressure_plate: WoodenPressurePlateStates; + "minecraft:wooden_pressure_plate": WoodenPressurePlateStates; + yellow_candle: YellowCandleStates; + "minecraft:yellow_candle": YellowCandleStates; + yellow_candle_cake: YellowCandleCakeStates; + "minecraft:yellow_candle_cake": YellowCandleCakeStates; + yellow_glazed_terracotta: YellowGlazedTerracottaStates; + "minecraft:yellow_glazed_terracotta": YellowGlazedTerracottaStates; +}; diff --git a/scripts/vanilla-data/mojang-cameraPresets.ts b/scripts/vanilla-data/mojang-cameraPresets.ts new file mode 100644 index 0000000..3eb3882 --- /dev/null +++ b/scripts/vanilla-data/mojang-cameraPresets.ts @@ -0,0 +1,13 @@ +/** + * All possible MinecraftCameraPresetsTypes + */ +export enum MinecraftCameraPresetsTypes { + FirstPerson = "minecraft:first_person", + Free = "minecraft:free", + ThirdPerson = "minecraft:third_person", + ThirdPersonFront = "minecraft:third_person_front", +} +/** + * Union type equivalent of the MinecraftCameraPresetsTypes enum. + */ +export type MinecraftCameraPresetsTypesUnion = keyof typeof MinecraftCameraPresetsTypes; diff --git a/scripts/vanilla-data/mojang-cooldownCategory.ts b/scripts/vanilla-data/mojang-cooldownCategory.ts new file mode 100644 index 0000000..fd61b54 --- /dev/null +++ b/scripts/vanilla-data/mojang-cooldownCategory.ts @@ -0,0 +1,14 @@ +/** + * All possible MinecraftCooldownCategoryTypes + */ +export enum MinecraftCooldownCategoryTypes { + Chorusfruit = "minecraft:chorusfruit", + EnderPearl = "minecraft:ender_pearl", + GoatHorn = "minecraft:goat_horn", + Shield = "minecraft:shield", + WindCharge = "minecraft:wind_charge", +} +/** + * Union type equivalent of the MinecraftCooldownCategoryTypes enum. + */ +export type MinecraftCooldownCategoryTypesUnion = keyof typeof MinecraftCooldownCategoryTypes; diff --git a/scripts/vanilla-data/mojang-dimension.ts b/scripts/vanilla-data/mojang-dimension.ts new file mode 100644 index 0000000..ff23fdf --- /dev/null +++ b/scripts/vanilla-data/mojang-dimension.ts @@ -0,0 +1,12 @@ +/** + * All possible MinecraftDimensionTypes + */ +export enum MinecraftDimensionTypes { + Nether = "minecraft:nether", + Overworld = "minecraft:overworld", + TheEnd = "minecraft:the_end", +} +/** + * Union type equivalent of the MinecraftDimensionTypes enum. + */ +export type MinecraftDimensionTypesUnion = keyof typeof MinecraftDimensionTypes; diff --git a/scripts/vanilla-data/mojang-effect.ts b/scripts/vanilla-data/mojang-effect.ts new file mode 100644 index 0000000..0d35b09 --- /dev/null +++ b/scripts/vanilla-data/mojang-effect.ts @@ -0,0 +1,46 @@ +/** + * All possible MinecraftEffectTypes + */ +export enum MinecraftEffectTypes { + Absorption = "absorption", + BadOmen = "bad_omen", + Blindness = "blindness", + ConduitPower = "conduit_power", + Darkness = "darkness", + Empty = "empty", + FatalPoison = "fatal_poison", + FireResistance = "fire_resistance", + Haste = "haste", + HealthBoost = "health_boost", + Hunger = "hunger", + Infested = "infested", + InstantDamage = "instant_damage", + InstantHealth = "instant_health", + Invisibility = "invisibility", + JumpBoost = "jump_boost", + Levitation = "levitation", + MiningFatigue = "mining_fatigue", + Nausea = "nausea", + NightVision = "night_vision", + Oozing = "oozing", + Poison = "poison", + RaidOmen = "raid_omen", + Regeneration = "regeneration", + Resistance = "resistance", + Saturation = "saturation", + SlowFalling = "slow_falling", + Slowness = "slowness", + Speed = "speed", + Strength = "strength", + TrialOmen = "trial_omen", + VillageHero = "village_hero", + WaterBreathing = "water_breathing", + Weakness = "weakness", + Weaving = "weaving", + WindCharged = "wind_charged", + Wither = "wither", +} +/** + * Union type equivalent of the MinecraftEffectTypes enum. + */ +export type MinecraftEffectTypesUnion = keyof typeof MinecraftEffectTypes; diff --git a/scripts/vanilla-data/mojang-enchantment.ts b/scripts/vanilla-data/mojang-enchantment.ts new file mode 100644 index 0000000..5df9c5f --- /dev/null +++ b/scripts/vanilla-data/mojang-enchantment.ts @@ -0,0 +1,50 @@ +/** + * All possible MinecraftEnchantmentTypes + */ +export enum MinecraftEnchantmentTypes { + AquaAffinity = "aqua_affinity", + BaneOfArthropods = "bane_of_arthropods", + Binding = "binding", + BlastProtection = "blast_protection", + Breach = "breach", + Channeling = "channeling", + Density = "density", + DepthStrider = "depth_strider", + Efficiency = "efficiency", + FeatherFalling = "feather_falling", + FireAspect = "fire_aspect", + FireProtection = "fire_protection", + Flame = "flame", + Fortune = "fortune", + FrostWalker = "frost_walker", + Impaling = "impaling", + Infinity = "infinity", + Knockback = "knockback", + Looting = "looting", + Loyalty = "loyalty", + LuckOfTheSea = "luck_of_the_sea", + Lure = "lure", + Mending = "mending", + Multishot = "multishot", + Piercing = "piercing", + Power = "power", + ProjectileProtection = "projectile_protection", + Protection = "protection", + Punch = "punch", + QuickCharge = "quick_charge", + Respiration = "respiration", + Riptide = "riptide", + Sharpness = "sharpness", + SilkTouch = "silk_touch", + Smite = "smite", + SoulSpeed = "soul_speed", + SwiftSneak = "swift_sneak", + Thorns = "thorns", + Unbreaking = "unbreaking", + Vanishing = "vanishing", + WindBurst = "wind_burst", +} +/** + * Union type equivalent of the MinecraftEnchantmentTypes enum. + */ +export type MinecraftEnchantmentTypesUnion = keyof typeof MinecraftEnchantmentTypes; diff --git a/scripts/vanilla-data/mojang-entity.ts b/scripts/vanilla-data/mojang-entity.ts new file mode 100644 index 0000000..c5a1fb4 --- /dev/null +++ b/scripts/vanilla-data/mojang-entity.ts @@ -0,0 +1,129 @@ +/** + * All possible MinecraftEntityTypes + */ +export enum MinecraftEntityTypes { + Agent = "agent", + Allay = "allay", + AreaEffectCloud = "area_effect_cloud", + Armadillo = "armadillo", + ArmorStand = "armor_stand", + Arrow = "arrow", + Axolotl = "axolotl", + Bat = "bat", + Bee = "bee", + Blaze = "blaze", + Boat = "boat", + Bogged = "bogged", + Breeze = "breeze", + BreezeWindChargeProjectile = "breeze_wind_charge_projectile", + Camel = "camel", + Cat = "cat", + CaveSpider = "cave_spider", + ChestBoat = "chest_boat", + ChestMinecart = "chest_minecart", + Chicken = "chicken", + Cod = "cod", + CommandBlockMinecart = "command_block_minecart", + Cow = "cow", + Creeper = "creeper", + Dolphin = "dolphin", + Donkey = "donkey", + DragonFireball = "dragon_fireball", + Drowned = "drowned", + Egg = "egg", + ElderGuardian = "elder_guardian", + EnderCrystal = "ender_crystal", + EnderDragon = "ender_dragon", + EnderPearl = "ender_pearl", + Enderman = "enderman", + Endermite = "endermite", + EvocationIllager = "evocation_illager", + EyeOfEnderSignal = "eye_of_ender_signal", + Fireball = "fireball", + FireworksRocket = "fireworks_rocket", + FishingHook = "fishing_hook", + Fox = "fox", + Frog = "frog", + Ghast = "ghast", + GlowSquid = "glow_squid", + Goat = "goat", + Guardian = "guardian", + Hoglin = "hoglin", + HopperMinecart = "hopper_minecart", + Horse = "horse", + Husk = "husk", + IronGolem = "iron_golem", + LightningBolt = "lightning_bolt", + LingeringPotion = "lingering_potion", + Llama = "llama", + LlamaSpit = "llama_spit", + MagmaCube = "magma_cube", + Minecart = "minecart", + Mooshroom = "mooshroom", + Mule = "mule", + Npc = "npc", + Ocelot = "ocelot", + OminousItemSpawner = "ominous_item_spawner", + Panda = "panda", + Parrot = "parrot", + Phantom = "phantom", + Pig = "pig", + Piglin = "piglin", + PiglinBrute = "piglin_brute", + Pillager = "pillager", + Player = "player", + PolarBear = "polar_bear", + Pufferfish = "pufferfish", + Rabbit = "rabbit", + Ravager = "ravager", + Salmon = "salmon", + Sheep = "sheep", + Shulker = "shulker", + ShulkerBullet = "shulker_bullet", + Silverfish = "silverfish", + Skeleton = "skeleton", + SkeletonHorse = "skeleton_horse", + Slime = "slime", + SmallFireball = "small_fireball", + Sniffer = "sniffer", + SnowGolem = "snow_golem", + Snowball = "snowball", + Spider = "spider", + SplashPotion = "splash_potion", + Squid = "squid", + Stray = "stray", + Strider = "strider", + Tadpole = "tadpole", + ThrownTrident = "thrown_trident", + Tnt = "tnt", + TntMinecart = "tnt_minecart", + TraderLlama = "trader_llama", + TripodCamera = "tripod_camera", + Tropicalfish = "tropicalfish", + Turtle = "turtle", + Vex = "vex", + Villager = "villager", + VillagerV2 = "villager_v2", + Vindicator = "vindicator", + WanderingTrader = "wandering_trader", + Warden = "warden", + WindChargeProjectile = "wind_charge_projectile", + Witch = "witch", + Wither = "wither", + WitherSkeleton = "wither_skeleton", + WitherSkull = "wither_skull", + WitherSkullDangerous = "wither_skull_dangerous", + Wolf = "wolf", + XpBottle = "xp_bottle", + XpOrb = "xp_orb", + Zoglin = "zoglin", + Zombie = "zombie", + ZombieHorse = "zombie_horse", + ZombiePigman = "zombie_pigman", + ZombieVillager = "zombie_villager", + ZombieVillagerV2 = "zombie_villager_v2", +} +/** + * Union type equivalent of the MinecraftEntityTypes enum. + */ +export type MinecraftEntityTypesUnion = keyof typeof MinecraftEntityTypes; diff --git a/scripts/vanilla-data/mojang-feature.ts b/scripts/vanilla-data/mojang-feature.ts new file mode 100644 index 0000000..7bbf8e5 --- /dev/null +++ b/scripts/vanilla-data/mojang-feature.ts @@ -0,0 +1,26 @@ +/** + * All possible MinecraftFeatureTypes + */ +export enum MinecraftFeatureTypes { + AncientCity = "minecraft:ancient_city", + BastionRemnant = "minecraft:bastion_remnant", + BuriedTreasure = "minecraft:buried_treasure", + EndCity = "minecraft:end_city", + Fortress = "minecraft:fortress", + Mansion = "minecraft:mansion", + Mineshaft = "minecraft:mineshaft", + Monument = "minecraft:monument", + PillagerOutpost = "minecraft:pillager_outpost", + RuinedPortal = "minecraft:ruined_portal", + Ruins = "minecraft:ruins", + Shipwreck = "minecraft:shipwreck", + Stronghold = "minecraft:stronghold", + Temple = "minecraft:temple", + TrailRuins = "minecraft:trail_ruins", + TrialChambers = "minecraft:trial_chambers", + Village = "minecraft:village", +} +/** + * Union type equivalent of the MinecraftFeatureTypes enum. + */ +export type MinecraftFeatureTypesUnion = keyof typeof MinecraftFeatureTypes; diff --git a/scripts/vanilla-data/mojang-item.ts b/scripts/vanilla-data/mojang-item.ts new file mode 100644 index 0000000..d121cbc --- /dev/null +++ b/scripts/vanilla-data/mojang-item.ts @@ -0,0 +1,1281 @@ +/** + * All possible MinecraftItemTypes + */ +export enum MinecraftItemTypes { + AcaciaBoat = "minecraft:acacia_boat", + AcaciaButton = "minecraft:acacia_button", + AcaciaChestBoat = "minecraft:acacia_chest_boat", + AcaciaDoor = "minecraft:acacia_door", + AcaciaFence = "minecraft:acacia_fence", + AcaciaFenceGate = "minecraft:acacia_fence_gate", + AcaciaHangingSign = "minecraft:acacia_hanging_sign", + AcaciaLeaves = "minecraft:acacia_leaves", + AcaciaLog = "minecraft:acacia_log", + AcaciaPlanks = "minecraft:acacia_planks", + AcaciaPressurePlate = "minecraft:acacia_pressure_plate", + AcaciaSapling = "minecraft:acacia_sapling", + AcaciaSign = "minecraft:acacia_sign", + AcaciaSlab = "minecraft:acacia_slab", + AcaciaStairs = "minecraft:acacia_stairs", + AcaciaTrapdoor = "minecraft:acacia_trapdoor", + AcaciaWood = "minecraft:acacia_wood", + ActivatorRail = "minecraft:activator_rail", + Air = "minecraft:air", + AllaySpawnEgg = "minecraft:allay_spawn_egg", + Allium = "minecraft:allium", + Allow = "minecraft:allow", + AmethystBlock = "minecraft:amethyst_block", + AmethystCluster = "minecraft:amethyst_cluster", + AmethystShard = "minecraft:amethyst_shard", + AncientDebris = "minecraft:ancient_debris", + Andesite = "minecraft:andesite", + AndesiteStairs = "minecraft:andesite_stairs", + AnglerPotterySherd = "minecraft:angler_pottery_sherd", + Anvil = "minecraft:anvil", + Apple = "minecraft:apple", + ArcherPotterySherd = "minecraft:archer_pottery_sherd", + ArmadilloScute = "minecraft:armadillo_scute", + ArmadilloSpawnEgg = "minecraft:armadillo_spawn_egg", + ArmorStand = "minecraft:armor_stand", + ArmsUpPotterySherd = "minecraft:arms_up_pottery_sherd", + Arrow = "minecraft:arrow", + AxolotlBucket = "minecraft:axolotl_bucket", + AxolotlSpawnEgg = "minecraft:axolotl_spawn_egg", + Azalea = "minecraft:azalea", + AzaleaLeaves = "minecraft:azalea_leaves", + AzaleaLeavesFlowered = "minecraft:azalea_leaves_flowered", + AzureBluet = "minecraft:azure_bluet", + BakedPotato = "minecraft:baked_potato", + Bamboo = "minecraft:bamboo", + BambooBlock = "minecraft:bamboo_block", + BambooButton = "minecraft:bamboo_button", + BambooChestRaft = "minecraft:bamboo_chest_raft", + BambooDoor = "minecraft:bamboo_door", + BambooFence = "minecraft:bamboo_fence", + BambooFenceGate = "minecraft:bamboo_fence_gate", + BambooHangingSign = "minecraft:bamboo_hanging_sign", + BambooMosaic = "minecraft:bamboo_mosaic", + BambooMosaicSlab = "minecraft:bamboo_mosaic_slab", + BambooMosaicStairs = "minecraft:bamboo_mosaic_stairs", + BambooPlanks = "minecraft:bamboo_planks", + BambooPressurePlate = "minecraft:bamboo_pressure_plate", + BambooRaft = "minecraft:bamboo_raft", + BambooSign = "minecraft:bamboo_sign", + BambooSlab = "minecraft:bamboo_slab", + BambooStairs = "minecraft:bamboo_stairs", + BambooTrapdoor = "minecraft:bamboo_trapdoor", + Banner = "minecraft:banner", + BannerPattern = "minecraft:banner_pattern", + Barrel = "minecraft:barrel", + Barrier = "minecraft:barrier", + Basalt = "minecraft:basalt", + BatSpawnEgg = "minecraft:bat_spawn_egg", + Beacon = "minecraft:beacon", + Bed = "minecraft:bed", + Bedrock = "minecraft:bedrock", + BeeNest = "minecraft:bee_nest", + BeeSpawnEgg = "minecraft:bee_spawn_egg", + Beef = "minecraft:beef", + Beehive = "minecraft:beehive", + Beetroot = "minecraft:beetroot", + BeetrootSeeds = "minecraft:beetroot_seeds", + BeetrootSoup = "minecraft:beetroot_soup", + Bell = "minecraft:bell", + BigDripleaf = "minecraft:big_dripleaf", + BirchBoat = "minecraft:birch_boat", + BirchButton = "minecraft:birch_button", + BirchChestBoat = "minecraft:birch_chest_boat", + BirchDoor = "minecraft:birch_door", + BirchFence = "minecraft:birch_fence", + BirchFenceGate = "minecraft:birch_fence_gate", + BirchHangingSign = "minecraft:birch_hanging_sign", + BirchLeaves = "minecraft:birch_leaves", + BirchLog = "minecraft:birch_log", + BirchPlanks = "minecraft:birch_planks", + BirchPressurePlate = "minecraft:birch_pressure_plate", + BirchSapling = "minecraft:birch_sapling", + BirchSign = "minecraft:birch_sign", + BirchSlab = "minecraft:birch_slab", + BirchStairs = "minecraft:birch_stairs", + BirchTrapdoor = "minecraft:birch_trapdoor", + BirchWood = "minecraft:birch_wood", + BlackCandle = "minecraft:black_candle", + BlackCarpet = "minecraft:black_carpet", + BlackConcrete = "minecraft:black_concrete", + BlackConcretePowder = "minecraft:black_concrete_powder", + BlackDye = "minecraft:black_dye", + BlackGlazedTerracotta = "minecraft:black_glazed_terracotta", + BlackShulkerBox = "minecraft:black_shulker_box", + BlackStainedGlass = "minecraft:black_stained_glass", + BlackStainedGlassPane = "minecraft:black_stained_glass_pane", + BlackTerracotta = "minecraft:black_terracotta", + BlackWool = "minecraft:black_wool", + Blackstone = "minecraft:blackstone", + BlackstoneSlab = "minecraft:blackstone_slab", + BlackstoneStairs = "minecraft:blackstone_stairs", + BlackstoneWall = "minecraft:blackstone_wall", + BladePotterySherd = "minecraft:blade_pottery_sherd", + BlastFurnace = "minecraft:blast_furnace", + BlazePowder = "minecraft:blaze_powder", + BlazeRod = "minecraft:blaze_rod", + BlazeSpawnEgg = "minecraft:blaze_spawn_egg", + BlueCandle = "minecraft:blue_candle", + BlueCarpet = "minecraft:blue_carpet", + BlueConcrete = "minecraft:blue_concrete", + BlueConcretePowder = "minecraft:blue_concrete_powder", + BlueDye = "minecraft:blue_dye", + BlueGlazedTerracotta = "minecraft:blue_glazed_terracotta", + BlueIce = "minecraft:blue_ice", + BlueOrchid = "minecraft:blue_orchid", + BlueShulkerBox = "minecraft:blue_shulker_box", + BlueStainedGlass = "minecraft:blue_stained_glass", + BlueStainedGlassPane = "minecraft:blue_stained_glass_pane", + BlueTerracotta = "minecraft:blue_terracotta", + BlueWool = "minecraft:blue_wool", + Boat = "minecraft:boat", + BoggedSpawnEgg = "minecraft:bogged_spawn_egg", + BoltArmorTrimSmithingTemplate = "minecraft:bolt_armor_trim_smithing_template", + Bone = "minecraft:bone", + BoneBlock = "minecraft:bone_block", + BoneMeal = "minecraft:bone_meal", + Book = "minecraft:book", + Bookshelf = "minecraft:bookshelf", + BorderBlock = "minecraft:border_block", + BordureIndentedBannerPattern = "minecraft:bordure_indented_banner_pattern", + Bow = "minecraft:bow", + Bowl = "minecraft:bowl", + BrainCoral = "minecraft:brain_coral", + BrainCoralBlock = "minecraft:brain_coral_block", + BrainCoralFan = "minecraft:brain_coral_fan", + Bread = "minecraft:bread", + BreezeRod = "minecraft:breeze_rod", + BreezeSpawnEgg = "minecraft:breeze_spawn_egg", + BrewerPotterySherd = "minecraft:brewer_pottery_sherd", + BrewingStand = "minecraft:brewing_stand", + Brick = "minecraft:brick", + BrickBlock = "minecraft:brick_block", + BrickSlab = "minecraft:brick_slab", + BrickStairs = "minecraft:brick_stairs", + BrownCandle = "minecraft:brown_candle", + BrownCarpet = "minecraft:brown_carpet", + BrownConcrete = "minecraft:brown_concrete", + BrownConcretePowder = "minecraft:brown_concrete_powder", + BrownDye = "minecraft:brown_dye", + BrownGlazedTerracotta = "minecraft:brown_glazed_terracotta", + BrownMushroom = "minecraft:brown_mushroom", + BrownMushroomBlock = "minecraft:brown_mushroom_block", + BrownShulkerBox = "minecraft:brown_shulker_box", + BrownStainedGlass = "minecraft:brown_stained_glass", + BrownStainedGlassPane = "minecraft:brown_stained_glass_pane", + BrownTerracotta = "minecraft:brown_terracotta", + BrownWool = "minecraft:brown_wool", + Brush = "minecraft:brush", + BubbleCoral = "minecraft:bubble_coral", + BubbleCoralBlock = "minecraft:bubble_coral_block", + BubbleCoralFan = "minecraft:bubble_coral_fan", + Bucket = "minecraft:bucket", + BuddingAmethyst = "minecraft:budding_amethyst", + BurnPotterySherd = "minecraft:burn_pottery_sherd", + Cactus = "minecraft:cactus", + Cake = "minecraft:cake", + Calcite = "minecraft:calcite", + CalibratedSculkSensor = "minecraft:calibrated_sculk_sensor", + CamelSpawnEgg = "minecraft:camel_spawn_egg", + Campfire = "minecraft:campfire", + Candle = "minecraft:candle", + Carpet = "minecraft:carpet", + Carrot = "minecraft:carrot", + CarrotOnAStick = "minecraft:carrot_on_a_stick", + CartographyTable = "minecraft:cartography_table", + CarvedPumpkin = "minecraft:carved_pumpkin", + CatSpawnEgg = "minecraft:cat_spawn_egg", + Cauldron = "minecraft:cauldron", + CaveSpiderSpawnEgg = "minecraft:cave_spider_spawn_egg", + Chain = "minecraft:chain", + ChainCommandBlock = "minecraft:chain_command_block", + ChainmailBoots = "minecraft:chainmail_boots", + ChainmailChestplate = "minecraft:chainmail_chestplate", + ChainmailHelmet = "minecraft:chainmail_helmet", + ChainmailLeggings = "minecraft:chainmail_leggings", + Charcoal = "minecraft:charcoal", + CherryBoat = "minecraft:cherry_boat", + CherryButton = "minecraft:cherry_button", + CherryChestBoat = "minecraft:cherry_chest_boat", + CherryDoor = "minecraft:cherry_door", + CherryFence = "minecraft:cherry_fence", + CherryFenceGate = "minecraft:cherry_fence_gate", + CherryHangingSign = "minecraft:cherry_hanging_sign", + CherryLeaves = "minecraft:cherry_leaves", + CherryLog = "minecraft:cherry_log", + CherryPlanks = "minecraft:cherry_planks", + CherryPressurePlate = "minecraft:cherry_pressure_plate", + CherrySapling = "minecraft:cherry_sapling", + CherrySign = "minecraft:cherry_sign", + CherrySlab = "minecraft:cherry_slab", + CherryStairs = "minecraft:cherry_stairs", + CherryTrapdoor = "minecraft:cherry_trapdoor", + CherryWood = "minecraft:cherry_wood", + Chest = "minecraft:chest", + ChestBoat = "minecraft:chest_boat", + ChestMinecart = "minecraft:chest_minecart", + Chicken = "minecraft:chicken", + ChickenSpawnEgg = "minecraft:chicken_spawn_egg", + ChiseledBookshelf = "minecraft:chiseled_bookshelf", + ChiseledCopper = "minecraft:chiseled_copper", + ChiseledDeepslate = "minecraft:chiseled_deepslate", + ChiseledNetherBricks = "minecraft:chiseled_nether_bricks", + ChiseledPolishedBlackstone = "minecraft:chiseled_polished_blackstone", + ChiseledTuff = "minecraft:chiseled_tuff", + ChiseledTuffBricks = "minecraft:chiseled_tuff_bricks", + ChorusFlower = "minecraft:chorus_flower", + ChorusFruit = "minecraft:chorus_fruit", + ChorusPlant = "minecraft:chorus_plant", + Clay = "minecraft:clay", + ClayBall = "minecraft:clay_ball", + Clock = "minecraft:clock", + Coal = "minecraft:coal", + CoalBlock = "minecraft:coal_block", + CoalOre = "minecraft:coal_ore", + CoastArmorTrimSmithingTemplate = "minecraft:coast_armor_trim_smithing_template", + CobbledDeepslate = "minecraft:cobbled_deepslate", + CobbledDeepslateSlab = "minecraft:cobbled_deepslate_slab", + CobbledDeepslateStairs = "minecraft:cobbled_deepslate_stairs", + CobbledDeepslateWall = "minecraft:cobbled_deepslate_wall", + Cobblestone = "minecraft:cobblestone", + CobblestoneSlab = "minecraft:cobblestone_slab", + CobblestoneWall = "minecraft:cobblestone_wall", + CocoaBeans = "minecraft:cocoa_beans", + Cod = "minecraft:cod", + CodBucket = "minecraft:cod_bucket", + CodSpawnEgg = "minecraft:cod_spawn_egg", + CommandBlock = "minecraft:command_block", + CommandBlockMinecart = "minecraft:command_block_minecart", + Comparator = "minecraft:comparator", + Compass = "minecraft:compass", + Composter = "minecraft:composter", + Concrete = "minecraft:concrete", + ConcretePowder = "minecraft:concrete_powder", + Conduit = "minecraft:conduit", + CookedBeef = "minecraft:cooked_beef", + CookedChicken = "minecraft:cooked_chicken", + CookedCod = "minecraft:cooked_cod", + CookedMutton = "minecraft:cooked_mutton", + CookedPorkchop = "minecraft:cooked_porkchop", + CookedRabbit = "minecraft:cooked_rabbit", + CookedSalmon = "minecraft:cooked_salmon", + Cookie = "minecraft:cookie", + CopperBlock = "minecraft:copper_block", + CopperBulb = "minecraft:copper_bulb", + CopperDoor = "minecraft:copper_door", + CopperGrate = "minecraft:copper_grate", + CopperIngot = "minecraft:copper_ingot", + CopperOre = "minecraft:copper_ore", + CopperTrapdoor = "minecraft:copper_trapdoor", + Coral = "minecraft:coral", + CoralBlock = "minecraft:coral_block", + CoralFan = "minecraft:coral_fan", + CoralFanDead = "minecraft:coral_fan_dead", + Cornflower = "minecraft:cornflower", + CowSpawnEgg = "minecraft:cow_spawn_egg", + CrackedDeepslateBricks = "minecraft:cracked_deepslate_bricks", + CrackedDeepslateTiles = "minecraft:cracked_deepslate_tiles", + CrackedNetherBricks = "minecraft:cracked_nether_bricks", + CrackedPolishedBlackstoneBricks = "minecraft:cracked_polished_blackstone_bricks", + Crafter = "minecraft:crafter", + CraftingTable = "minecraft:crafting_table", + CreeperBannerPattern = "minecraft:creeper_banner_pattern", + CreeperSpawnEgg = "minecraft:creeper_spawn_egg", + CrimsonButton = "minecraft:crimson_button", + CrimsonDoor = "minecraft:crimson_door", + CrimsonFence = "minecraft:crimson_fence", + CrimsonFenceGate = "minecraft:crimson_fence_gate", + CrimsonFungus = "minecraft:crimson_fungus", + CrimsonHangingSign = "minecraft:crimson_hanging_sign", + CrimsonHyphae = "minecraft:crimson_hyphae", + CrimsonNylium = "minecraft:crimson_nylium", + CrimsonPlanks = "minecraft:crimson_planks", + CrimsonPressurePlate = "minecraft:crimson_pressure_plate", + CrimsonRoots = "minecraft:crimson_roots", + CrimsonSign = "minecraft:crimson_sign", + CrimsonSlab = "minecraft:crimson_slab", + CrimsonStairs = "minecraft:crimson_stairs", + CrimsonStem = "minecraft:crimson_stem", + CrimsonTrapdoor = "minecraft:crimson_trapdoor", + Crossbow = "minecraft:crossbow", + CryingObsidian = "minecraft:crying_obsidian", + CutCopper = "minecraft:cut_copper", + CutCopperSlab = "minecraft:cut_copper_slab", + CutCopperStairs = "minecraft:cut_copper_stairs", + CyanCandle = "minecraft:cyan_candle", + CyanCarpet = "minecraft:cyan_carpet", + CyanConcrete = "minecraft:cyan_concrete", + CyanConcretePowder = "minecraft:cyan_concrete_powder", + CyanDye = "minecraft:cyan_dye", + CyanGlazedTerracotta = "minecraft:cyan_glazed_terracotta", + CyanShulkerBox = "minecraft:cyan_shulker_box", + CyanStainedGlass = "minecraft:cyan_stained_glass", + CyanStainedGlassPane = "minecraft:cyan_stained_glass_pane", + CyanTerracotta = "minecraft:cyan_terracotta", + CyanWool = "minecraft:cyan_wool", + DangerPotterySherd = "minecraft:danger_pottery_sherd", + DarkOakBoat = "minecraft:dark_oak_boat", + DarkOakButton = "minecraft:dark_oak_button", + DarkOakChestBoat = "minecraft:dark_oak_chest_boat", + DarkOakDoor = "minecraft:dark_oak_door", + DarkOakFence = "minecraft:dark_oak_fence", + DarkOakFenceGate = "minecraft:dark_oak_fence_gate", + DarkOakHangingSign = "minecraft:dark_oak_hanging_sign", + DarkOakLeaves = "minecraft:dark_oak_leaves", + DarkOakLog = "minecraft:dark_oak_log", + DarkOakPlanks = "minecraft:dark_oak_planks", + DarkOakPressurePlate = "minecraft:dark_oak_pressure_plate", + DarkOakSapling = "minecraft:dark_oak_sapling", + DarkOakSign = "minecraft:dark_oak_sign", + DarkOakSlab = "minecraft:dark_oak_slab", + DarkOakStairs = "minecraft:dark_oak_stairs", + DarkOakTrapdoor = "minecraft:dark_oak_trapdoor", + DarkOakWood = "minecraft:dark_oak_wood", + DarkPrismarineStairs = "minecraft:dark_prismarine_stairs", + DaylightDetector = "minecraft:daylight_detector", + DeadBrainCoral = "minecraft:dead_brain_coral", + DeadBrainCoralBlock = "minecraft:dead_brain_coral_block", + DeadBrainCoralFan = "minecraft:dead_brain_coral_fan", + DeadBubbleCoral = "minecraft:dead_bubble_coral", + DeadBubbleCoralBlock = "minecraft:dead_bubble_coral_block", + DeadBubbleCoralFan = "minecraft:dead_bubble_coral_fan", + DeadFireCoral = "minecraft:dead_fire_coral", + DeadFireCoralBlock = "minecraft:dead_fire_coral_block", + DeadFireCoralFan = "minecraft:dead_fire_coral_fan", + DeadHornCoral = "minecraft:dead_horn_coral", + DeadHornCoralBlock = "minecraft:dead_horn_coral_block", + DeadHornCoralFan = "minecraft:dead_horn_coral_fan", + DeadTubeCoral = "minecraft:dead_tube_coral", + DeadTubeCoralBlock = "minecraft:dead_tube_coral_block", + DeadTubeCoralFan = "minecraft:dead_tube_coral_fan", + Deadbush = "minecraft:deadbush", + DecoratedPot = "minecraft:decorated_pot", + Deepslate = "minecraft:deepslate", + DeepslateBrickSlab = "minecraft:deepslate_brick_slab", + DeepslateBrickStairs = "minecraft:deepslate_brick_stairs", + DeepslateBrickWall = "minecraft:deepslate_brick_wall", + DeepslateBricks = "minecraft:deepslate_bricks", + DeepslateCoalOre = "minecraft:deepslate_coal_ore", + DeepslateCopperOre = "minecraft:deepslate_copper_ore", + DeepslateDiamondOre = "minecraft:deepslate_diamond_ore", + DeepslateEmeraldOre = "minecraft:deepslate_emerald_ore", + DeepslateGoldOre = "minecraft:deepslate_gold_ore", + DeepslateIronOre = "minecraft:deepslate_iron_ore", + DeepslateLapisOre = "minecraft:deepslate_lapis_ore", + DeepslateRedstoneOre = "minecraft:deepslate_redstone_ore", + DeepslateTileSlab = "minecraft:deepslate_tile_slab", + DeepslateTileStairs = "minecraft:deepslate_tile_stairs", + DeepslateTileWall = "minecraft:deepslate_tile_wall", + DeepslateTiles = "minecraft:deepslate_tiles", + Deny = "minecraft:deny", + DetectorRail = "minecraft:detector_rail", + Diamond = "minecraft:diamond", + DiamondAxe = "minecraft:diamond_axe", + DiamondBlock = "minecraft:diamond_block", + DiamondBoots = "minecraft:diamond_boots", + DiamondChestplate = "minecraft:diamond_chestplate", + DiamondHelmet = "minecraft:diamond_helmet", + DiamondHoe = "minecraft:diamond_hoe", + DiamondHorseArmor = "minecraft:diamond_horse_armor", + DiamondLeggings = "minecraft:diamond_leggings", + DiamondOre = "minecraft:diamond_ore", + DiamondPickaxe = "minecraft:diamond_pickaxe", + DiamondShovel = "minecraft:diamond_shovel", + DiamondSword = "minecraft:diamond_sword", + Diorite = "minecraft:diorite", + DioriteStairs = "minecraft:diorite_stairs", + Dirt = "minecraft:dirt", + DirtWithRoots = "minecraft:dirt_with_roots", + DiscFragment5 = "minecraft:disc_fragment_5", + Dispenser = "minecraft:dispenser", + DolphinSpawnEgg = "minecraft:dolphin_spawn_egg", + DonkeySpawnEgg = "minecraft:donkey_spawn_egg", + DoublePlant = "minecraft:double_plant", + DragonBreath = "minecraft:dragon_breath", + DragonEgg = "minecraft:dragon_egg", + DriedKelp = "minecraft:dried_kelp", + DriedKelpBlock = "minecraft:dried_kelp_block", + DripstoneBlock = "minecraft:dripstone_block", + Dropper = "minecraft:dropper", + DrownedSpawnEgg = "minecraft:drowned_spawn_egg", + DuneArmorTrimSmithingTemplate = "minecraft:dune_armor_trim_smithing_template", + Dye = "minecraft:dye", + EchoShard = "minecraft:echo_shard", + Egg = "minecraft:egg", + ElderGuardianSpawnEgg = "minecraft:elder_guardian_spawn_egg", + Elytra = "minecraft:elytra", + Emerald = "minecraft:emerald", + EmeraldBlock = "minecraft:emerald_block", + EmeraldOre = "minecraft:emerald_ore", + EmptyMap = "minecraft:empty_map", + EnchantedBook = "minecraft:enchanted_book", + EnchantedGoldenApple = "minecraft:enchanted_golden_apple", + EnchantingTable = "minecraft:enchanting_table", + EndBrickStairs = "minecraft:end_brick_stairs", + EndBricks = "minecraft:end_bricks", + EndCrystal = "minecraft:end_crystal", + EndPortalFrame = "minecraft:end_portal_frame", + EndRod = "minecraft:end_rod", + EndStone = "minecraft:end_stone", + EnderChest = "minecraft:ender_chest", + EnderDragonSpawnEgg = "minecraft:ender_dragon_spawn_egg", + EnderEye = "minecraft:ender_eye", + EnderPearl = "minecraft:ender_pearl", + EndermanSpawnEgg = "minecraft:enderman_spawn_egg", + EndermiteSpawnEgg = "minecraft:endermite_spawn_egg", + EvokerSpawnEgg = "minecraft:evoker_spawn_egg", + ExperienceBottle = "minecraft:experience_bottle", + ExplorerPotterySherd = "minecraft:explorer_pottery_sherd", + ExposedChiseledCopper = "minecraft:exposed_chiseled_copper", + ExposedCopper = "minecraft:exposed_copper", + ExposedCopperBulb = "minecraft:exposed_copper_bulb", + ExposedCopperDoor = "minecraft:exposed_copper_door", + ExposedCopperGrate = "minecraft:exposed_copper_grate", + ExposedCopperTrapdoor = "minecraft:exposed_copper_trapdoor", + ExposedCutCopper = "minecraft:exposed_cut_copper", + ExposedCutCopperSlab = "minecraft:exposed_cut_copper_slab", + ExposedCutCopperStairs = "minecraft:exposed_cut_copper_stairs", + EyeArmorTrimSmithingTemplate = "minecraft:eye_armor_trim_smithing_template", + Farmland = "minecraft:farmland", + Feather = "minecraft:feather", + Fence = "minecraft:fence", + FenceGate = "minecraft:fence_gate", + FermentedSpiderEye = "minecraft:fermented_spider_eye", + Fern = "minecraft:fern", + FieldMasonedBannerPattern = "minecraft:field_masoned_banner_pattern", + FilledMap = "minecraft:filled_map", + FireCharge = "minecraft:fire_charge", + FireCoral = "minecraft:fire_coral", + FireCoralBlock = "minecraft:fire_coral_block", + FireCoralFan = "minecraft:fire_coral_fan", + FireworkRocket = "minecraft:firework_rocket", + FireworkStar = "minecraft:firework_star", + FishingRod = "minecraft:fishing_rod", + FletchingTable = "minecraft:fletching_table", + Flint = "minecraft:flint", + FlintAndSteel = "minecraft:flint_and_steel", + FlowArmorTrimSmithingTemplate = "minecraft:flow_armor_trim_smithing_template", + FlowBannerPattern = "minecraft:flow_banner_pattern", + FlowPotterySherd = "minecraft:flow_pottery_sherd", + FlowerBannerPattern = "minecraft:flower_banner_pattern", + FlowerPot = "minecraft:flower_pot", + FloweringAzalea = "minecraft:flowering_azalea", + FoxSpawnEgg = "minecraft:fox_spawn_egg", + Frame = "minecraft:frame", + FriendPotterySherd = "minecraft:friend_pottery_sherd", + FrogSpawn = "minecraft:frog_spawn", + FrogSpawnEgg = "minecraft:frog_spawn_egg", + FrostedIce = "minecraft:frosted_ice", + Furnace = "minecraft:furnace", + GhastSpawnEgg = "minecraft:ghast_spawn_egg", + GhastTear = "minecraft:ghast_tear", + GildedBlackstone = "minecraft:gilded_blackstone", + Glass = "minecraft:glass", + GlassBottle = "minecraft:glass_bottle", + GlassPane = "minecraft:glass_pane", + GlisteringMelonSlice = "minecraft:glistering_melon_slice", + GlobeBannerPattern = "minecraft:globe_banner_pattern", + GlowBerries = "minecraft:glow_berries", + GlowFrame = "minecraft:glow_frame", + GlowInkSac = "minecraft:glow_ink_sac", + GlowLichen = "minecraft:glow_lichen", + GlowSquidSpawnEgg = "minecraft:glow_squid_spawn_egg", + Glowstone = "minecraft:glowstone", + GlowstoneDust = "minecraft:glowstone_dust", + GoatHorn = "minecraft:goat_horn", + GoatSpawnEgg = "minecraft:goat_spawn_egg", + GoldBlock = "minecraft:gold_block", + GoldIngot = "minecraft:gold_ingot", + GoldNugget = "minecraft:gold_nugget", + GoldOre = "minecraft:gold_ore", + GoldenApple = "minecraft:golden_apple", + GoldenAxe = "minecraft:golden_axe", + GoldenBoots = "minecraft:golden_boots", + GoldenCarrot = "minecraft:golden_carrot", + GoldenChestplate = "minecraft:golden_chestplate", + GoldenHelmet = "minecraft:golden_helmet", + GoldenHoe = "minecraft:golden_hoe", + GoldenHorseArmor = "minecraft:golden_horse_armor", + GoldenLeggings = "minecraft:golden_leggings", + GoldenPickaxe = "minecraft:golden_pickaxe", + GoldenRail = "minecraft:golden_rail", + GoldenShovel = "minecraft:golden_shovel", + GoldenSword = "minecraft:golden_sword", + Granite = "minecraft:granite", + GraniteStairs = "minecraft:granite_stairs", + GrassBlock = "minecraft:grass_block", + GrassPath = "minecraft:grass_path", + Gravel = "minecraft:gravel", + GrayCandle = "minecraft:gray_candle", + GrayCarpet = "minecraft:gray_carpet", + GrayConcrete = "minecraft:gray_concrete", + GrayConcretePowder = "minecraft:gray_concrete_powder", + GrayDye = "minecraft:gray_dye", + GrayGlazedTerracotta = "minecraft:gray_glazed_terracotta", + GrayShulkerBox = "minecraft:gray_shulker_box", + GrayStainedGlass = "minecraft:gray_stained_glass", + GrayStainedGlassPane = "minecraft:gray_stained_glass_pane", + GrayTerracotta = "minecraft:gray_terracotta", + GrayWool = "minecraft:gray_wool", + GreenCandle = "minecraft:green_candle", + GreenCarpet = "minecraft:green_carpet", + GreenConcrete = "minecraft:green_concrete", + GreenConcretePowder = "minecraft:green_concrete_powder", + GreenDye = "minecraft:green_dye", + GreenGlazedTerracotta = "minecraft:green_glazed_terracotta", + GreenShulkerBox = "minecraft:green_shulker_box", + GreenStainedGlass = "minecraft:green_stained_glass", + GreenStainedGlassPane = "minecraft:green_stained_glass_pane", + GreenTerracotta = "minecraft:green_terracotta", + GreenWool = "minecraft:green_wool", + Grindstone = "minecraft:grindstone", + GuardianSpawnEgg = "minecraft:guardian_spawn_egg", + Gunpowder = "minecraft:gunpowder", + GusterBannerPattern = "minecraft:guster_banner_pattern", + GusterPotterySherd = "minecraft:guster_pottery_sherd", + HangingRoots = "minecraft:hanging_roots", + HardStainedGlass = "minecraft:hard_stained_glass", + HardStainedGlassPane = "minecraft:hard_stained_glass_pane", + HardenedClay = "minecraft:hardened_clay", + HayBlock = "minecraft:hay_block", + HeartOfTheSea = "minecraft:heart_of_the_sea", + HeartPotterySherd = "minecraft:heart_pottery_sherd", + HeartbreakPotterySherd = "minecraft:heartbreak_pottery_sherd", + HeavyCore = "minecraft:heavy_core", + HeavyWeightedPressurePlate = "minecraft:heavy_weighted_pressure_plate", + HoglinSpawnEgg = "minecraft:hoglin_spawn_egg", + HoneyBlock = "minecraft:honey_block", + HoneyBottle = "minecraft:honey_bottle", + Honeycomb = "minecraft:honeycomb", + HoneycombBlock = "minecraft:honeycomb_block", + Hopper = "minecraft:hopper", + HopperMinecart = "minecraft:hopper_minecart", + HornCoral = "minecraft:horn_coral", + HornCoralBlock = "minecraft:horn_coral_block", + HornCoralFan = "minecraft:horn_coral_fan", + HorseSpawnEgg = "minecraft:horse_spawn_egg", + HostArmorTrimSmithingTemplate = "minecraft:host_armor_trim_smithing_template", + HowlPotterySherd = "minecraft:howl_pottery_sherd", + HuskSpawnEgg = "minecraft:husk_spawn_egg", + Ice = "minecraft:ice", + InfestedDeepslate = "minecraft:infested_deepslate", + InkSac = "minecraft:ink_sac", + IronAxe = "minecraft:iron_axe", + IronBars = "minecraft:iron_bars", + IronBlock = "minecraft:iron_block", + IronBoots = "minecraft:iron_boots", + IronChestplate = "minecraft:iron_chestplate", + IronDoor = "minecraft:iron_door", + IronGolemSpawnEgg = "minecraft:iron_golem_spawn_egg", + IronHelmet = "minecraft:iron_helmet", + IronHoe = "minecraft:iron_hoe", + IronHorseArmor = "minecraft:iron_horse_armor", + IronIngot = "minecraft:iron_ingot", + IronLeggings = "minecraft:iron_leggings", + IronNugget = "minecraft:iron_nugget", + IronOre = "minecraft:iron_ore", + IronPickaxe = "minecraft:iron_pickaxe", + IronShovel = "minecraft:iron_shovel", + IronSword = "minecraft:iron_sword", + IronTrapdoor = "minecraft:iron_trapdoor", + Jigsaw = "minecraft:jigsaw", + Jukebox = "minecraft:jukebox", + JungleBoat = "minecraft:jungle_boat", + JungleButton = "minecraft:jungle_button", + JungleChestBoat = "minecraft:jungle_chest_boat", + JungleDoor = "minecraft:jungle_door", + JungleFence = "minecraft:jungle_fence", + JungleFenceGate = "minecraft:jungle_fence_gate", + JungleHangingSign = "minecraft:jungle_hanging_sign", + JungleLeaves = "minecraft:jungle_leaves", + JungleLog = "minecraft:jungle_log", + JunglePlanks = "minecraft:jungle_planks", + JunglePressurePlate = "minecraft:jungle_pressure_plate", + JungleSapling = "minecraft:jungle_sapling", + JungleSign = "minecraft:jungle_sign", + JungleSlab = "minecraft:jungle_slab", + JungleStairs = "minecraft:jungle_stairs", + JungleTrapdoor = "minecraft:jungle_trapdoor", + JungleWood = "minecraft:jungle_wood", + Kelp = "minecraft:kelp", + Ladder = "minecraft:ladder", + Lantern = "minecraft:lantern", + LapisBlock = "minecraft:lapis_block", + LapisLazuli = "minecraft:lapis_lazuli", + LapisOre = "minecraft:lapis_ore", + LargeAmethystBud = "minecraft:large_amethyst_bud", + LargeFern = "minecraft:large_fern", + LavaBucket = "minecraft:lava_bucket", + Lead = "minecraft:lead", + Leather = "minecraft:leather", + LeatherBoots = "minecraft:leather_boots", + LeatherChestplate = "minecraft:leather_chestplate", + LeatherHelmet = "minecraft:leather_helmet", + LeatherHorseArmor = "minecraft:leather_horse_armor", + LeatherLeggings = "minecraft:leather_leggings", + Leaves = "minecraft:leaves", + Leaves2 = "minecraft:leaves2", + Lectern = "minecraft:lectern", + Lever = "minecraft:lever", + LightBlock = "minecraft:light_block", + LightBlueCandle = "minecraft:light_blue_candle", + LightBlueCarpet = "minecraft:light_blue_carpet", + LightBlueConcrete = "minecraft:light_blue_concrete", + LightBlueConcretePowder = "minecraft:light_blue_concrete_powder", + LightBlueDye = "minecraft:light_blue_dye", + LightBlueGlazedTerracotta = "minecraft:light_blue_glazed_terracotta", + LightBlueShulkerBox = "minecraft:light_blue_shulker_box", + LightBlueStainedGlass = "minecraft:light_blue_stained_glass", + LightBlueStainedGlassPane = "minecraft:light_blue_stained_glass_pane", + LightBlueTerracotta = "minecraft:light_blue_terracotta", + LightBlueWool = "minecraft:light_blue_wool", + LightGrayCandle = "minecraft:light_gray_candle", + LightGrayCarpet = "minecraft:light_gray_carpet", + LightGrayConcrete = "minecraft:light_gray_concrete", + LightGrayConcretePowder = "minecraft:light_gray_concrete_powder", + LightGrayDye = "minecraft:light_gray_dye", + LightGrayShulkerBox = "minecraft:light_gray_shulker_box", + LightGrayStainedGlass = "minecraft:light_gray_stained_glass", + LightGrayStainedGlassPane = "minecraft:light_gray_stained_glass_pane", + LightGrayTerracotta = "minecraft:light_gray_terracotta", + LightGrayWool = "minecraft:light_gray_wool", + LightWeightedPressurePlate = "minecraft:light_weighted_pressure_plate", + LightningRod = "minecraft:lightning_rod", + Lilac = "minecraft:lilac", + LilyOfTheValley = "minecraft:lily_of_the_valley", + LimeCandle = "minecraft:lime_candle", + LimeCarpet = "minecraft:lime_carpet", + LimeConcrete = "minecraft:lime_concrete", + LimeConcretePowder = "minecraft:lime_concrete_powder", + LimeDye = "minecraft:lime_dye", + LimeGlazedTerracotta = "minecraft:lime_glazed_terracotta", + LimeShulkerBox = "minecraft:lime_shulker_box", + LimeStainedGlass = "minecraft:lime_stained_glass", + LimeStainedGlassPane = "minecraft:lime_stained_glass_pane", + LimeTerracotta = "minecraft:lime_terracotta", + LimeWool = "minecraft:lime_wool", + LingeringPotion = "minecraft:lingering_potion", + LitPumpkin = "minecraft:lit_pumpkin", + LlamaSpawnEgg = "minecraft:llama_spawn_egg", + Lodestone = "minecraft:lodestone", + LodestoneCompass = "minecraft:lodestone_compass", + Log = "minecraft:log", + Log2 = "minecraft:log2", + Loom = "minecraft:loom", + Mace = "minecraft:mace", + MagentaCandle = "minecraft:magenta_candle", + MagentaCarpet = "minecraft:magenta_carpet", + MagentaConcrete = "minecraft:magenta_concrete", + MagentaConcretePowder = "minecraft:magenta_concrete_powder", + MagentaDye = "minecraft:magenta_dye", + MagentaGlazedTerracotta = "minecraft:magenta_glazed_terracotta", + MagentaShulkerBox = "minecraft:magenta_shulker_box", + MagentaStainedGlass = "minecraft:magenta_stained_glass", + MagentaStainedGlassPane = "minecraft:magenta_stained_glass_pane", + MagentaTerracotta = "minecraft:magenta_terracotta", + MagentaWool = "minecraft:magenta_wool", + Magma = "minecraft:magma", + MagmaCream = "minecraft:magma_cream", + MagmaCubeSpawnEgg = "minecraft:magma_cube_spawn_egg", + MangroveBoat = "minecraft:mangrove_boat", + MangroveButton = "minecraft:mangrove_button", + MangroveChestBoat = "minecraft:mangrove_chest_boat", + MangroveDoor = "minecraft:mangrove_door", + MangroveFence = "minecraft:mangrove_fence", + MangroveFenceGate = "minecraft:mangrove_fence_gate", + MangroveHangingSign = "minecraft:mangrove_hanging_sign", + MangroveLeaves = "minecraft:mangrove_leaves", + MangroveLog = "minecraft:mangrove_log", + MangrovePlanks = "minecraft:mangrove_planks", + MangrovePressurePlate = "minecraft:mangrove_pressure_plate", + MangrovePropagule = "minecraft:mangrove_propagule", + MangroveRoots = "minecraft:mangrove_roots", + MangroveSign = "minecraft:mangrove_sign", + MangroveSlab = "minecraft:mangrove_slab", + MangroveStairs = "minecraft:mangrove_stairs", + MangroveTrapdoor = "minecraft:mangrove_trapdoor", + MangroveWood = "minecraft:mangrove_wood", + MediumAmethystBud = "minecraft:medium_amethyst_bud", + MelonBlock = "minecraft:melon_block", + MelonSeeds = "minecraft:melon_seeds", + MelonSlice = "minecraft:melon_slice", + MilkBucket = "minecraft:milk_bucket", + Minecart = "minecraft:minecart", + MinerPotterySherd = "minecraft:miner_pottery_sherd", + MobSpawner = "minecraft:mob_spawner", + MojangBannerPattern = "minecraft:mojang_banner_pattern", + MonsterEgg = "minecraft:monster_egg", + MooshroomSpawnEgg = "minecraft:mooshroom_spawn_egg", + MossBlock = "minecraft:moss_block", + MossCarpet = "minecraft:moss_carpet", + MossyCobblestone = "minecraft:mossy_cobblestone", + MossyCobblestoneStairs = "minecraft:mossy_cobblestone_stairs", + MossyStoneBrickStairs = "minecraft:mossy_stone_brick_stairs", + MournerPotterySherd = "minecraft:mourner_pottery_sherd", + Mud = "minecraft:mud", + MudBrickSlab = "minecraft:mud_brick_slab", + MudBrickStairs = "minecraft:mud_brick_stairs", + MudBrickWall = "minecraft:mud_brick_wall", + MudBricks = "minecraft:mud_bricks", + MuddyMangroveRoots = "minecraft:muddy_mangrove_roots", + MuleSpawnEgg = "minecraft:mule_spawn_egg", + MushroomStew = "minecraft:mushroom_stew", + MusicDisc11 = "minecraft:music_disc_11", + MusicDisc13 = "minecraft:music_disc_13", + MusicDisc5 = "minecraft:music_disc_5", + MusicDiscBlocks = "minecraft:music_disc_blocks", + MusicDiscCat = "minecraft:music_disc_cat", + MusicDiscChirp = "minecraft:music_disc_chirp", + MusicDiscCreator = "minecraft:music_disc_creator", + MusicDiscCreatorMusicBox = "minecraft:music_disc_creator_music_box", + MusicDiscFar = "minecraft:music_disc_far", + MusicDiscMall = "minecraft:music_disc_mall", + MusicDiscMellohi = "minecraft:music_disc_mellohi", + MusicDiscOtherside = "minecraft:music_disc_otherside", + MusicDiscPigstep = "minecraft:music_disc_pigstep", + MusicDiscPrecipice = "minecraft:music_disc_precipice", + MusicDiscRelic = "minecraft:music_disc_relic", + MusicDiscStal = "minecraft:music_disc_stal", + MusicDiscStrad = "minecraft:music_disc_strad", + MusicDiscWait = "minecraft:music_disc_wait", + MusicDiscWard = "minecraft:music_disc_ward", + Mutton = "minecraft:mutton", + Mycelium = "minecraft:mycelium", + NameTag = "minecraft:name_tag", + NautilusShell = "minecraft:nautilus_shell", + NetherBrick = "minecraft:nether_brick", + NetherBrickFence = "minecraft:nether_brick_fence", + NetherBrickSlab = "minecraft:nether_brick_slab", + NetherBrickStairs = "minecraft:nether_brick_stairs", + NetherGoldOre = "minecraft:nether_gold_ore", + NetherSprouts = "minecraft:nether_sprouts", + NetherStar = "minecraft:nether_star", + NetherWart = "minecraft:nether_wart", + NetherWartBlock = "minecraft:nether_wart_block", + Netherbrick = "minecraft:netherbrick", + NetheriteAxe = "minecraft:netherite_axe", + NetheriteBlock = "minecraft:netherite_block", + NetheriteBoots = "minecraft:netherite_boots", + NetheriteChestplate = "minecraft:netherite_chestplate", + NetheriteHelmet = "minecraft:netherite_helmet", + NetheriteHoe = "minecraft:netherite_hoe", + NetheriteIngot = "minecraft:netherite_ingot", + NetheriteLeggings = "minecraft:netherite_leggings", + NetheritePickaxe = "minecraft:netherite_pickaxe", + NetheriteScrap = "minecraft:netherite_scrap", + NetheriteShovel = "minecraft:netherite_shovel", + NetheriteSword = "minecraft:netherite_sword", + NetheriteUpgradeSmithingTemplate = "minecraft:netherite_upgrade_smithing_template", + Netherrack = "minecraft:netherrack", + NormalStoneStairs = "minecraft:normal_stone_stairs", + Noteblock = "minecraft:noteblock", + OakBoat = "minecraft:oak_boat", + OakChestBoat = "minecraft:oak_chest_boat", + OakFence = "minecraft:oak_fence", + OakHangingSign = "minecraft:oak_hanging_sign", + OakLeaves = "minecraft:oak_leaves", + OakLog = "minecraft:oak_log", + OakPlanks = "minecraft:oak_planks", + OakSapling = "minecraft:oak_sapling", + OakSign = "minecraft:oak_sign", + OakSlab = "minecraft:oak_slab", + OakStairs = "minecraft:oak_stairs", + OakWood = "minecraft:oak_wood", + Observer = "minecraft:observer", + Obsidian = "minecraft:obsidian", + OcelotSpawnEgg = "minecraft:ocelot_spawn_egg", + OchreFroglight = "minecraft:ochre_froglight", + OminousBottle = "minecraft:ominous_bottle", + OminousTrialKey = "minecraft:ominous_trial_key", + OrangeCandle = "minecraft:orange_candle", + OrangeCarpet = "minecraft:orange_carpet", + OrangeConcrete = "minecraft:orange_concrete", + OrangeConcretePowder = "minecraft:orange_concrete_powder", + OrangeDye = "minecraft:orange_dye", + OrangeGlazedTerracotta = "minecraft:orange_glazed_terracotta", + OrangeShulkerBox = "minecraft:orange_shulker_box", + OrangeStainedGlass = "minecraft:orange_stained_glass", + OrangeStainedGlassPane = "minecraft:orange_stained_glass_pane", + OrangeTerracotta = "minecraft:orange_terracotta", + OrangeTulip = "minecraft:orange_tulip", + OrangeWool = "minecraft:orange_wool", + OxeyeDaisy = "minecraft:oxeye_daisy", + OxidizedChiseledCopper = "minecraft:oxidized_chiseled_copper", + OxidizedCopper = "minecraft:oxidized_copper", + OxidizedCopperBulb = "minecraft:oxidized_copper_bulb", + OxidizedCopperDoor = "minecraft:oxidized_copper_door", + OxidizedCopperGrate = "minecraft:oxidized_copper_grate", + OxidizedCopperTrapdoor = "minecraft:oxidized_copper_trapdoor", + OxidizedCutCopper = "minecraft:oxidized_cut_copper", + OxidizedCutCopperSlab = "minecraft:oxidized_cut_copper_slab", + OxidizedCutCopperStairs = "minecraft:oxidized_cut_copper_stairs", + PackedIce = "minecraft:packed_ice", + PackedMud = "minecraft:packed_mud", + Painting = "minecraft:painting", + PandaSpawnEgg = "minecraft:panda_spawn_egg", + Paper = "minecraft:paper", + ParrotSpawnEgg = "minecraft:parrot_spawn_egg", + PearlescentFroglight = "minecraft:pearlescent_froglight", + Peony = "minecraft:peony", + PetrifiedOakSlab = "minecraft:petrified_oak_slab", + PhantomMembrane = "minecraft:phantom_membrane", + PhantomSpawnEgg = "minecraft:phantom_spawn_egg", + PigSpawnEgg = "minecraft:pig_spawn_egg", + PiglinBannerPattern = "minecraft:piglin_banner_pattern", + PiglinBruteSpawnEgg = "minecraft:piglin_brute_spawn_egg", + PiglinSpawnEgg = "minecraft:piglin_spawn_egg", + PillagerSpawnEgg = "minecraft:pillager_spawn_egg", + PinkCandle = "minecraft:pink_candle", + PinkCarpet = "minecraft:pink_carpet", + PinkConcrete = "minecraft:pink_concrete", + PinkConcretePowder = "minecraft:pink_concrete_powder", + PinkDye = "minecraft:pink_dye", + PinkGlazedTerracotta = "minecraft:pink_glazed_terracotta", + PinkPetals = "minecraft:pink_petals", + PinkShulkerBox = "minecraft:pink_shulker_box", + PinkStainedGlass = "minecraft:pink_stained_glass", + PinkStainedGlassPane = "minecraft:pink_stained_glass_pane", + PinkTerracotta = "minecraft:pink_terracotta", + PinkTulip = "minecraft:pink_tulip", + PinkWool = "minecraft:pink_wool", + Piston = "minecraft:piston", + PitcherPlant = "minecraft:pitcher_plant", + PitcherPod = "minecraft:pitcher_pod", + Planks = "minecraft:planks", + PlentyPotterySherd = "minecraft:plenty_pottery_sherd", + Podzol = "minecraft:podzol", + PointedDripstone = "minecraft:pointed_dripstone", + PoisonousPotato = "minecraft:poisonous_potato", + PolarBearSpawnEgg = "minecraft:polar_bear_spawn_egg", + PolishedAndesite = "minecraft:polished_andesite", + PolishedAndesiteStairs = "minecraft:polished_andesite_stairs", + PolishedBasalt = "minecraft:polished_basalt", + PolishedBlackstone = "minecraft:polished_blackstone", + PolishedBlackstoneBrickSlab = "minecraft:polished_blackstone_brick_slab", + PolishedBlackstoneBrickStairs = "minecraft:polished_blackstone_brick_stairs", + PolishedBlackstoneBrickWall = "minecraft:polished_blackstone_brick_wall", + PolishedBlackstoneBricks = "minecraft:polished_blackstone_bricks", + PolishedBlackstoneButton = "minecraft:polished_blackstone_button", + PolishedBlackstonePressurePlate = "minecraft:polished_blackstone_pressure_plate", + PolishedBlackstoneSlab = "minecraft:polished_blackstone_slab", + PolishedBlackstoneStairs = "minecraft:polished_blackstone_stairs", + PolishedBlackstoneWall = "minecraft:polished_blackstone_wall", + PolishedDeepslate = "minecraft:polished_deepslate", + PolishedDeepslateSlab = "minecraft:polished_deepslate_slab", + PolishedDeepslateStairs = "minecraft:polished_deepslate_stairs", + PolishedDeepslateWall = "minecraft:polished_deepslate_wall", + PolishedDiorite = "minecraft:polished_diorite", + PolishedDioriteStairs = "minecraft:polished_diorite_stairs", + PolishedGranite = "minecraft:polished_granite", + PolishedGraniteStairs = "minecraft:polished_granite_stairs", + PolishedTuff = "minecraft:polished_tuff", + PolishedTuffSlab = "minecraft:polished_tuff_slab", + PolishedTuffStairs = "minecraft:polished_tuff_stairs", + PolishedTuffWall = "minecraft:polished_tuff_wall", + PoppedChorusFruit = "minecraft:popped_chorus_fruit", + Poppy = "minecraft:poppy", + Porkchop = "minecraft:porkchop", + Potato = "minecraft:potato", + Potion = "minecraft:potion", + PowderSnowBucket = "minecraft:powder_snow_bucket", + Prismarine = "minecraft:prismarine", + PrismarineBricksStairs = "minecraft:prismarine_bricks_stairs", + PrismarineCrystals = "minecraft:prismarine_crystals", + PrismarineShard = "minecraft:prismarine_shard", + PrismarineStairs = "minecraft:prismarine_stairs", + PrizePotterySherd = "minecraft:prize_pottery_sherd", + Pufferfish = "minecraft:pufferfish", + PufferfishBucket = "minecraft:pufferfish_bucket", + PufferfishSpawnEgg = "minecraft:pufferfish_spawn_egg", + Pumpkin = "minecraft:pumpkin", + PumpkinPie = "minecraft:pumpkin_pie", + PumpkinSeeds = "minecraft:pumpkin_seeds", + PurpleCandle = "minecraft:purple_candle", + PurpleCarpet = "minecraft:purple_carpet", + PurpleConcrete = "minecraft:purple_concrete", + PurpleConcretePowder = "minecraft:purple_concrete_powder", + PurpleDye = "minecraft:purple_dye", + PurpleGlazedTerracotta = "minecraft:purple_glazed_terracotta", + PurpleShulkerBox = "minecraft:purple_shulker_box", + PurpleStainedGlass = "minecraft:purple_stained_glass", + PurpleStainedGlassPane = "minecraft:purple_stained_glass_pane", + PurpleTerracotta = "minecraft:purple_terracotta", + PurpleWool = "minecraft:purple_wool", + PurpurBlock = "minecraft:purpur_block", + PurpurStairs = "minecraft:purpur_stairs", + Quartz = "minecraft:quartz", + QuartzBlock = "minecraft:quartz_block", + QuartzBricks = "minecraft:quartz_bricks", + QuartzOre = "minecraft:quartz_ore", + QuartzSlab = "minecraft:quartz_slab", + QuartzStairs = "minecraft:quartz_stairs", + Rabbit = "minecraft:rabbit", + RabbitFoot = "minecraft:rabbit_foot", + RabbitHide = "minecraft:rabbit_hide", + RabbitSpawnEgg = "minecraft:rabbit_spawn_egg", + RabbitStew = "minecraft:rabbit_stew", + Rail = "minecraft:rail", + RaiserArmorTrimSmithingTemplate = "minecraft:raiser_armor_trim_smithing_template", + RavagerSpawnEgg = "minecraft:ravager_spawn_egg", + RawCopper = "minecraft:raw_copper", + RawCopperBlock = "minecraft:raw_copper_block", + RawGold = "minecraft:raw_gold", + RawGoldBlock = "minecraft:raw_gold_block", + RawIron = "minecraft:raw_iron", + RawIronBlock = "minecraft:raw_iron_block", + RecoveryCompass = "minecraft:recovery_compass", + RedCandle = "minecraft:red_candle", + RedCarpet = "minecraft:red_carpet", + RedConcrete = "minecraft:red_concrete", + RedConcretePowder = "minecraft:red_concrete_powder", + RedDye = "minecraft:red_dye", + RedFlower = "minecraft:red_flower", + RedGlazedTerracotta = "minecraft:red_glazed_terracotta", + RedMushroom = "minecraft:red_mushroom", + RedMushroomBlock = "minecraft:red_mushroom_block", + RedNetherBrick = "minecraft:red_nether_brick", + RedNetherBrickStairs = "minecraft:red_nether_brick_stairs", + RedSandstone = "minecraft:red_sandstone", + RedSandstoneStairs = "minecraft:red_sandstone_stairs", + RedShulkerBox = "minecraft:red_shulker_box", + RedStainedGlass = "minecraft:red_stained_glass", + RedStainedGlassPane = "minecraft:red_stained_glass_pane", + RedTerracotta = "minecraft:red_terracotta", + RedTulip = "minecraft:red_tulip", + RedWool = "minecraft:red_wool", + Redstone = "minecraft:redstone", + RedstoneBlock = "minecraft:redstone_block", + RedstoneLamp = "minecraft:redstone_lamp", + RedstoneOre = "minecraft:redstone_ore", + RedstoneTorch = "minecraft:redstone_torch", + ReinforcedDeepslate = "minecraft:reinforced_deepslate", + Repeater = "minecraft:repeater", + RepeatingCommandBlock = "minecraft:repeating_command_block", + RespawnAnchor = "minecraft:respawn_anchor", + RibArmorTrimSmithingTemplate = "minecraft:rib_armor_trim_smithing_template", + RoseBush = "minecraft:rose_bush", + RottenFlesh = "minecraft:rotten_flesh", + Saddle = "minecraft:saddle", + Salmon = "minecraft:salmon", + SalmonBucket = "minecraft:salmon_bucket", + SalmonSpawnEgg = "minecraft:salmon_spawn_egg", + Sand = "minecraft:sand", + Sandstone = "minecraft:sandstone", + SandstoneSlab = "minecraft:sandstone_slab", + SandstoneStairs = "minecraft:sandstone_stairs", + Sapling = "minecraft:sapling", + Scaffolding = "minecraft:scaffolding", + ScrapePotterySherd = "minecraft:scrape_pottery_sherd", + Sculk = "minecraft:sculk", + SculkCatalyst = "minecraft:sculk_catalyst", + SculkSensor = "minecraft:sculk_sensor", + SculkShrieker = "minecraft:sculk_shrieker", + SculkVein = "minecraft:sculk_vein", + SeaLantern = "minecraft:sea_lantern", + SeaPickle = "minecraft:sea_pickle", + Seagrass = "minecraft:seagrass", + SentryArmorTrimSmithingTemplate = "minecraft:sentry_armor_trim_smithing_template", + ShaperArmorTrimSmithingTemplate = "minecraft:shaper_armor_trim_smithing_template", + SheafPotterySherd = "minecraft:sheaf_pottery_sherd", + Shears = "minecraft:shears", + SheepSpawnEgg = "minecraft:sheep_spawn_egg", + ShelterPotterySherd = "minecraft:shelter_pottery_sherd", + Shield = "minecraft:shield", + ShortGrass = "minecraft:short_grass", + Shroomlight = "minecraft:shroomlight", + ShulkerBox = "minecraft:shulker_box", + ShulkerShell = "minecraft:shulker_shell", + ShulkerSpawnEgg = "minecraft:shulker_spawn_egg", + SilenceArmorTrimSmithingTemplate = "minecraft:silence_armor_trim_smithing_template", + SilverGlazedTerracotta = "minecraft:silver_glazed_terracotta", + SilverfishSpawnEgg = "minecraft:silverfish_spawn_egg", + SkeletonHorseSpawnEgg = "minecraft:skeleton_horse_spawn_egg", + SkeletonSpawnEgg = "minecraft:skeleton_spawn_egg", + Skull = "minecraft:skull", + SkullBannerPattern = "minecraft:skull_banner_pattern", + SkullPotterySherd = "minecraft:skull_pottery_sherd", + Slime = "minecraft:slime", + SlimeBall = "minecraft:slime_ball", + SlimeSpawnEgg = "minecraft:slime_spawn_egg", + SmallAmethystBud = "minecraft:small_amethyst_bud", + SmallDripleafBlock = "minecraft:small_dripleaf_block", + SmithingTable = "minecraft:smithing_table", + Smoker = "minecraft:smoker", + SmoothBasalt = "minecraft:smooth_basalt", + SmoothQuartzStairs = "minecraft:smooth_quartz_stairs", + SmoothRedSandstoneStairs = "minecraft:smooth_red_sandstone_stairs", + SmoothSandstoneStairs = "minecraft:smooth_sandstone_stairs", + SmoothStone = "minecraft:smooth_stone", + SmoothStoneSlab = "minecraft:smooth_stone_slab", + SnifferEgg = "minecraft:sniffer_egg", + SnifferSpawnEgg = "minecraft:sniffer_spawn_egg", + SnortPotterySherd = "minecraft:snort_pottery_sherd", + SnoutArmorTrimSmithingTemplate = "minecraft:snout_armor_trim_smithing_template", + Snow = "minecraft:snow", + SnowGolemSpawnEgg = "minecraft:snow_golem_spawn_egg", + SnowLayer = "minecraft:snow_layer", + Snowball = "minecraft:snowball", + SoulCampfire = "minecraft:soul_campfire", + SoulLantern = "minecraft:soul_lantern", + SoulSand = "minecraft:soul_sand", + SoulSoil = "minecraft:soul_soil", + SoulTorch = "minecraft:soul_torch", + SpawnEgg = "minecraft:spawn_egg", + SpiderEye = "minecraft:spider_eye", + SpiderSpawnEgg = "minecraft:spider_spawn_egg", + SpireArmorTrimSmithingTemplate = "minecraft:spire_armor_trim_smithing_template", + SplashPotion = "minecraft:splash_potion", + Sponge = "minecraft:sponge", + SporeBlossom = "minecraft:spore_blossom", + SpruceBoat = "minecraft:spruce_boat", + SpruceButton = "minecraft:spruce_button", + SpruceChestBoat = "minecraft:spruce_chest_boat", + SpruceDoor = "minecraft:spruce_door", + SpruceFence = "minecraft:spruce_fence", + SpruceFenceGate = "minecraft:spruce_fence_gate", + SpruceHangingSign = "minecraft:spruce_hanging_sign", + SpruceLeaves = "minecraft:spruce_leaves", + SpruceLog = "minecraft:spruce_log", + SprucePlanks = "minecraft:spruce_planks", + SprucePressurePlate = "minecraft:spruce_pressure_plate", + SpruceSapling = "minecraft:spruce_sapling", + SpruceSign = "minecraft:spruce_sign", + SpruceSlab = "minecraft:spruce_slab", + SpruceStairs = "minecraft:spruce_stairs", + SpruceTrapdoor = "minecraft:spruce_trapdoor", + SpruceWood = "minecraft:spruce_wood", + Spyglass = "minecraft:spyglass", + SquidSpawnEgg = "minecraft:squid_spawn_egg", + StainedGlass = "minecraft:stained_glass", + StainedGlassPane = "minecraft:stained_glass_pane", + StainedHardenedClay = "minecraft:stained_hardened_clay", + Stick = "minecraft:stick", + StickyPiston = "minecraft:sticky_piston", + Stone = "minecraft:stone", + StoneAxe = "minecraft:stone_axe", + StoneBlockSlab = "minecraft:stone_block_slab", + StoneBlockSlab2 = "minecraft:stone_block_slab2", + StoneBlockSlab3 = "minecraft:stone_block_slab3", + StoneBlockSlab4 = "minecraft:stone_block_slab4", + StoneBrickSlab = "minecraft:stone_brick_slab", + StoneBrickStairs = "minecraft:stone_brick_stairs", + StoneButton = "minecraft:stone_button", + StoneHoe = "minecraft:stone_hoe", + StonePickaxe = "minecraft:stone_pickaxe", + StonePressurePlate = "minecraft:stone_pressure_plate", + StoneShovel = "minecraft:stone_shovel", + StoneStairs = "minecraft:stone_stairs", + StoneSword = "minecraft:stone_sword", + Stonebrick = "minecraft:stonebrick", + StonecutterBlock = "minecraft:stonecutter_block", + StraySpawnEgg = "minecraft:stray_spawn_egg", + StriderSpawnEgg = "minecraft:strider_spawn_egg", + String = "minecraft:string", + StrippedAcaciaLog = "minecraft:stripped_acacia_log", + StrippedAcaciaWood = "minecraft:stripped_acacia_wood", + StrippedBambooBlock = "minecraft:stripped_bamboo_block", + StrippedBirchLog = "minecraft:stripped_birch_log", + StrippedBirchWood = "minecraft:stripped_birch_wood", + StrippedCherryLog = "minecraft:stripped_cherry_log", + StrippedCherryWood = "minecraft:stripped_cherry_wood", + StrippedCrimsonHyphae = "minecraft:stripped_crimson_hyphae", + StrippedCrimsonStem = "minecraft:stripped_crimson_stem", + StrippedDarkOakLog = "minecraft:stripped_dark_oak_log", + StrippedDarkOakWood = "minecraft:stripped_dark_oak_wood", + StrippedJungleLog = "minecraft:stripped_jungle_log", + StrippedJungleWood = "minecraft:stripped_jungle_wood", + StrippedMangroveLog = "minecraft:stripped_mangrove_log", + StrippedMangroveWood = "minecraft:stripped_mangrove_wood", + StrippedOakLog = "minecraft:stripped_oak_log", + StrippedOakWood = "minecraft:stripped_oak_wood", + StrippedSpruceLog = "minecraft:stripped_spruce_log", + StrippedSpruceWood = "minecraft:stripped_spruce_wood", + StrippedWarpedHyphae = "minecraft:stripped_warped_hyphae", + StrippedWarpedStem = "minecraft:stripped_warped_stem", + StructureBlock = "minecraft:structure_block", + StructureVoid = "minecraft:structure_void", + Sugar = "minecraft:sugar", + SugarCane = "minecraft:sugar_cane", + Sunflower = "minecraft:sunflower", + SuspiciousGravel = "minecraft:suspicious_gravel", + SuspiciousSand = "minecraft:suspicious_sand", + SuspiciousStew = "minecraft:suspicious_stew", + SweetBerries = "minecraft:sweet_berries", + TadpoleBucket = "minecraft:tadpole_bucket", + TadpoleSpawnEgg = "minecraft:tadpole_spawn_egg", + TallGrass = "minecraft:tall_grass", + Tallgrass = "minecraft:tallgrass", + Target = "minecraft:target", + TideArmorTrimSmithingTemplate = "minecraft:tide_armor_trim_smithing_template", + TintedGlass = "minecraft:tinted_glass", + Tnt = "minecraft:tnt", + TntMinecart = "minecraft:tnt_minecart", + Torch = "minecraft:torch", + Torchflower = "minecraft:torchflower", + TorchflowerSeeds = "minecraft:torchflower_seeds", + TotemOfUndying = "minecraft:totem_of_undying", + TraderLlamaSpawnEgg = "minecraft:trader_llama_spawn_egg", + Trapdoor = "minecraft:trapdoor", + TrappedChest = "minecraft:trapped_chest", + TrialKey = "minecraft:trial_key", + TrialSpawner = "minecraft:trial_spawner", + Trident = "minecraft:trident", + TripwireHook = "minecraft:tripwire_hook", + TropicalFish = "minecraft:tropical_fish", + TropicalFishBucket = "minecraft:tropical_fish_bucket", + TropicalFishSpawnEgg = "minecraft:tropical_fish_spawn_egg", + TubeCoral = "minecraft:tube_coral", + TubeCoralBlock = "minecraft:tube_coral_block", + TubeCoralFan = "minecraft:tube_coral_fan", + Tuff = "minecraft:tuff", + TuffBrickSlab = "minecraft:tuff_brick_slab", + TuffBrickStairs = "minecraft:tuff_brick_stairs", + TuffBrickWall = "minecraft:tuff_brick_wall", + TuffBricks = "minecraft:tuff_bricks", + TuffSlab = "minecraft:tuff_slab", + TuffStairs = "minecraft:tuff_stairs", + TuffWall = "minecraft:tuff_wall", + TurtleEgg = "minecraft:turtle_egg", + TurtleHelmet = "minecraft:turtle_helmet", + TurtleScute = "minecraft:turtle_scute", + TurtleSpawnEgg = "minecraft:turtle_spawn_egg", + TwistingVines = "minecraft:twisting_vines", + UndyedShulkerBox = "minecraft:undyed_shulker_box", + Vault = "minecraft:vault", + VerdantFroglight = "minecraft:verdant_froglight", + VexArmorTrimSmithingTemplate = "minecraft:vex_armor_trim_smithing_template", + VexSpawnEgg = "minecraft:vex_spawn_egg", + VillagerSpawnEgg = "minecraft:villager_spawn_egg", + VindicatorSpawnEgg = "minecraft:vindicator_spawn_egg", + Vine = "minecraft:vine", + WanderingTraderSpawnEgg = "minecraft:wandering_trader_spawn_egg", + WardArmorTrimSmithingTemplate = "minecraft:ward_armor_trim_smithing_template", + WardenSpawnEgg = "minecraft:warden_spawn_egg", + WarpedButton = "minecraft:warped_button", + WarpedDoor = "minecraft:warped_door", + WarpedFence = "minecraft:warped_fence", + WarpedFenceGate = "minecraft:warped_fence_gate", + WarpedFungus = "minecraft:warped_fungus", + WarpedFungusOnAStick = "minecraft:warped_fungus_on_a_stick", + WarpedHangingSign = "minecraft:warped_hanging_sign", + WarpedHyphae = "minecraft:warped_hyphae", + WarpedNylium = "minecraft:warped_nylium", + WarpedPlanks = "minecraft:warped_planks", + WarpedPressurePlate = "minecraft:warped_pressure_plate", + WarpedRoots = "minecraft:warped_roots", + WarpedSign = "minecraft:warped_sign", + WarpedSlab = "minecraft:warped_slab", + WarpedStairs = "minecraft:warped_stairs", + WarpedStem = "minecraft:warped_stem", + WarpedTrapdoor = "minecraft:warped_trapdoor", + WarpedWartBlock = "minecraft:warped_wart_block", + WaterBucket = "minecraft:water_bucket", + Waterlily = "minecraft:waterlily", + WaxedChiseledCopper = "minecraft:waxed_chiseled_copper", + WaxedCopper = "minecraft:waxed_copper", + WaxedCopperBulb = "minecraft:waxed_copper_bulb", + WaxedCopperDoor = "minecraft:waxed_copper_door", + WaxedCopperGrate = "minecraft:waxed_copper_grate", + WaxedCopperTrapdoor = "minecraft:waxed_copper_trapdoor", + WaxedCutCopper = "minecraft:waxed_cut_copper", + WaxedCutCopperSlab = "minecraft:waxed_cut_copper_slab", + WaxedCutCopperStairs = "minecraft:waxed_cut_copper_stairs", + WaxedExposedChiseledCopper = "minecraft:waxed_exposed_chiseled_copper", + WaxedExposedCopper = "minecraft:waxed_exposed_copper", + WaxedExposedCopperBulb = "minecraft:waxed_exposed_copper_bulb", + WaxedExposedCopperDoor = "minecraft:waxed_exposed_copper_door", + WaxedExposedCopperGrate = "minecraft:waxed_exposed_copper_grate", + WaxedExposedCopperTrapdoor = "minecraft:waxed_exposed_copper_trapdoor", + WaxedExposedCutCopper = "minecraft:waxed_exposed_cut_copper", + WaxedExposedCutCopperSlab = "minecraft:waxed_exposed_cut_copper_slab", + WaxedExposedCutCopperStairs = "minecraft:waxed_exposed_cut_copper_stairs", + WaxedOxidizedChiseledCopper = "minecraft:waxed_oxidized_chiseled_copper", + WaxedOxidizedCopper = "minecraft:waxed_oxidized_copper", + WaxedOxidizedCopperBulb = "minecraft:waxed_oxidized_copper_bulb", + WaxedOxidizedCopperDoor = "minecraft:waxed_oxidized_copper_door", + WaxedOxidizedCopperGrate = "minecraft:waxed_oxidized_copper_grate", + WaxedOxidizedCopperTrapdoor = "minecraft:waxed_oxidized_copper_trapdoor", + WaxedOxidizedCutCopper = "minecraft:waxed_oxidized_cut_copper", + WaxedOxidizedCutCopperSlab = "minecraft:waxed_oxidized_cut_copper_slab", + WaxedOxidizedCutCopperStairs = "minecraft:waxed_oxidized_cut_copper_stairs", + WaxedWeatheredChiseledCopper = "minecraft:waxed_weathered_chiseled_copper", + WaxedWeatheredCopper = "minecraft:waxed_weathered_copper", + WaxedWeatheredCopperBulb = "minecraft:waxed_weathered_copper_bulb", + WaxedWeatheredCopperDoor = "minecraft:waxed_weathered_copper_door", + WaxedWeatheredCopperGrate = "minecraft:waxed_weathered_copper_grate", + WaxedWeatheredCopperTrapdoor = "minecraft:waxed_weathered_copper_trapdoor", + WaxedWeatheredCutCopper = "minecraft:waxed_weathered_cut_copper", + WaxedWeatheredCutCopperSlab = "minecraft:waxed_weathered_cut_copper_slab", + WaxedWeatheredCutCopperStairs = "minecraft:waxed_weathered_cut_copper_stairs", + WayfinderArmorTrimSmithingTemplate = "minecraft:wayfinder_armor_trim_smithing_template", + WeatheredChiseledCopper = "minecraft:weathered_chiseled_copper", + WeatheredCopper = "minecraft:weathered_copper", + WeatheredCopperBulb = "minecraft:weathered_copper_bulb", + WeatheredCopperDoor = "minecraft:weathered_copper_door", + WeatheredCopperGrate = "minecraft:weathered_copper_grate", + WeatheredCopperTrapdoor = "minecraft:weathered_copper_trapdoor", + WeatheredCutCopper = "minecraft:weathered_cut_copper", + WeatheredCutCopperSlab = "minecraft:weathered_cut_copper_slab", + WeatheredCutCopperStairs = "minecraft:weathered_cut_copper_stairs", + Web = "minecraft:web", + WeepingVines = "minecraft:weeping_vines", + Wheat = "minecraft:wheat", + WheatSeeds = "minecraft:wheat_seeds", + WhiteCandle = "minecraft:white_candle", + WhiteCarpet = "minecraft:white_carpet", + WhiteConcrete = "minecraft:white_concrete", + WhiteConcretePowder = "minecraft:white_concrete_powder", + WhiteDye = "minecraft:white_dye", + WhiteGlazedTerracotta = "minecraft:white_glazed_terracotta", + WhiteShulkerBox = "minecraft:white_shulker_box", + WhiteStainedGlass = "minecraft:white_stained_glass", + WhiteStainedGlassPane = "minecraft:white_stained_glass_pane", + WhiteTerracotta = "minecraft:white_terracotta", + WhiteTulip = "minecraft:white_tulip", + WhiteWool = "minecraft:white_wool", + WildArmorTrimSmithingTemplate = "minecraft:wild_armor_trim_smithing_template", + WindCharge = "minecraft:wind_charge", + WitchSpawnEgg = "minecraft:witch_spawn_egg", + WitherRose = "minecraft:wither_rose", + WitherSkeletonSpawnEgg = "minecraft:wither_skeleton_spawn_egg", + WitherSpawnEgg = "minecraft:wither_spawn_egg", + WolfArmor = "minecraft:wolf_armor", + WolfSpawnEgg = "minecraft:wolf_spawn_egg", + Wood = "minecraft:wood", + WoodenAxe = "minecraft:wooden_axe", + WoodenButton = "minecraft:wooden_button", + WoodenDoor = "minecraft:wooden_door", + WoodenHoe = "minecraft:wooden_hoe", + WoodenPickaxe = "minecraft:wooden_pickaxe", + WoodenPressurePlate = "minecraft:wooden_pressure_plate", + WoodenShovel = "minecraft:wooden_shovel", + WoodenSlab = "minecraft:wooden_slab", + WoodenSword = "minecraft:wooden_sword", + Wool = "minecraft:wool", + WritableBook = "minecraft:writable_book", + YellowCandle = "minecraft:yellow_candle", + YellowCarpet = "minecraft:yellow_carpet", + YellowConcrete = "minecraft:yellow_concrete", + YellowConcretePowder = "minecraft:yellow_concrete_powder", + YellowDye = "minecraft:yellow_dye", + YellowFlower = "minecraft:yellow_flower", + YellowGlazedTerracotta = "minecraft:yellow_glazed_terracotta", + YellowShulkerBox = "minecraft:yellow_shulker_box", + YellowStainedGlass = "minecraft:yellow_stained_glass", + YellowStainedGlassPane = "minecraft:yellow_stained_glass_pane", + YellowTerracotta = "minecraft:yellow_terracotta", + YellowWool = "minecraft:yellow_wool", + ZoglinSpawnEgg = "minecraft:zoglin_spawn_egg", + ZombieHorseSpawnEgg = "minecraft:zombie_horse_spawn_egg", + ZombiePigmanSpawnEgg = "minecraft:zombie_pigman_spawn_egg", + ZombieSpawnEgg = "minecraft:zombie_spawn_egg", + ZombieVillagerSpawnEgg = "minecraft:zombie_villager_spawn_egg", +} +/** + * Union type equivalent of the MinecraftItemTypes enum. + */ +export type MinecraftItemTypesUnion = keyof typeof MinecraftItemTypes; diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..33cfc50 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,32 @@ +{ + "compilerOptions":{ + "target":"es6", + "moduleResolution":"node", + "module":"es2020", + "declaration":false, + "noLib":false, + "emitDecoratorMetadata":true, + "experimentalDecorators":true, + "sourceMap":true, + "pretty":true, + "forceConsistentCasingInFileNames": true, + "strict": true, + "allowUnreachableCode":true, + "allowUnusedLabels":true, + "noImplicitAny":true, + "noImplicitReturns":false, + "noImplicitUseStrict":false, + "outDir":"build/", + "rootDir": ".", + "baseUrl":"behavior_packs/", + "listFiles":false, + "noEmitHelpers":true + }, + "include":[ + "scripts/**/*" + ], + "exclude":[ + "node_modules" + ], + "compileOnSave":false + } \ No newline at end of file