diff --git a/devFolder/src/Loader.ts b/devFolder/src/Loader.ts index 16fba90..5b098bb 100644 --- a/devFolder/src/Loader.ts +++ b/devFolder/src/Loader.ts @@ -37,8 +37,10 @@ world.afterEvents.worldInitialize.subscribe(async () => { const endTime = Date.now(); const loadTime = endTime - startTime; - console.warn(`Plugin has been loaded in ${loadTime} ms`); - world.sendMessage(`[Server]§l§apluginのデータの更新が ${loadTime} msで完了しました`) + if (c().module.debugMode.enabled === true) { + console.warn(`Plugin has been loaded in ${loadTime} ms`); + } + world.sendMessage(`§f[§bServer§f]§l§aChestLockAddonのデータの更新が ${loadTime} msで完了しました`) }); //Custom Item @@ -51,8 +53,15 @@ world.afterEvents.itemUse.subscribe(({ itemStack: item, source: player }) => { item.nameTag === customCommandsConfig.ui.ui_item_name && !c().commands.item.requireTag.some((tag) => !player.hasTag(tag)) ) { + if (c().module.debugMode.enabled === true) { + console.warn(`${player.name} has Use ShowUI`); + } showBasicUI(player); } }); -console.warn('Full ChestLock Addon Data loaded!!'); + +if (c().module.debugMode.enabled === true) { + console.warn('Full ChestLock Addon Data loaded!!'); + +} \ No newline at end of file diff --git a/devFolder/src/Modules/DataBase.ts b/devFolder/src/Modules/DataBase.ts index 080e9bc..9e81085 100644 --- a/devFolder/src/Modules/DataBase.ts +++ b/devFolder/src/Modules/DataBase.ts @@ -1,4 +1,5 @@ import { world } from '@minecraft/server'; +import { c } from './Util'; interface ChestLockAddonData { [key: string]: any; @@ -6,7 +7,6 @@ interface ChestLockAddonData { export let chestLockAddonData: ChestLockAddonData = {}; -// データの保存・更新関数 export function saveData(key: string, value: any): void { chestLockAddonData[key] = value; const data = JSON.stringify(chestLockAddonData); @@ -29,5 +29,9 @@ export function logData(): void { // ResetData export function resetData(): void { chestLockAddonData = {}; - console.warn('ChestLockAddon Data reset'); + if (c().module.debugMode.enabled === true) { + console.warn('ChestLockAddon Data reset'); + } + + world.sendMessage("§l§eWarn §aChestLockAddon DataBase is Reset"); } diff --git a/devFolder/src/Modules/Handler.ts b/devFolder/src/Modules/Handler.ts index 8df94bc..ecec8ec 100644 --- a/devFolder/src/Modules/Handler.ts +++ b/devFolder/src/Modules/Handler.ts @@ -132,7 +132,6 @@ function levenshteinDistance(a: string, b: string): number { } // チャットイベントリスナー -//@ts-ignore world.beforeEvents.chatSend.subscribe((event: any) => { const { message, sender: player } = event; @@ -146,6 +145,7 @@ world.beforeEvents.chatSend.subscribe((event: any) => { if (!args) return; const commandName = args.shift()?.toLowerCase().trim(); + event.cancel = true; if (commandName === 'yes' && pendingCommand && pendingCommand.player === player) { const { command, args: pendingArgs } = pendingCommand; diff --git a/devFolder/src/Modules/Util.ts b/devFolder/src/Modules/Util.ts index 51ccf5e..391c0a8 100644 --- a/devFolder/src/Modules/Util.ts +++ b/devFolder/src/Modules/Util.ts @@ -6,8 +6,13 @@ interface CommandConfig { requireTag: string[]; } +interface moduleConfig { + enabled:boolean; + +} + //コマンド登録 関数C -export const c = (): { commands: { [key: string]: CommandConfig }; admin: string } => ({ +export const c = (): { commands: { [key: string]: CommandConfig }; admin: string, module: {[key: string]: moduleConfig}; } => ({ commands: { chest: { enabled: true, @@ -84,10 +89,27 @@ export const c = (): { commands: { [key: string]: CommandConfig }; admin: string adminOnly: false, requireTag: [], }, + report: { + enabled: true, + adminOnly: false, + requireTag: [], + }, + staff: { + enabled: true, + adminOnly: false, + requireTag: ["staff","op"], + }, }, - admin: 'op', + + module: { + debugMode: { + enabled:true, + } + }, + + }); export function getGamemode(playerName: string) { diff --git a/devFolder/src/Modules/version.ts b/devFolder/src/Modules/version.ts index ae24998..c89fc15 100644 --- a/devFolder/src/Modules/version.ts +++ b/devFolder/src/Modules/version.ts @@ -1 +1 @@ -export const ver = '1.0'; +export const ver = '1.1'; diff --git a/devFolder/src/command/gui/ui.ts b/devFolder/src/command/gui/ui.ts index 8303d61..492dd71 100644 --- a/devFolder/src/command/gui/ui.ts +++ b/devFolder/src/command/gui/ui.ts @@ -2,48 +2,70 @@ import { ActionFormData, ModalFormData } from '@minecraft/server-ui'; import { Player } from '@minecraft/server'; import { runCommand } from '../../Modules/Handler'; import { getTpaRequests } from '../utility/tpa'; -import { getAllPlayerNames } from '../../Modules/Util'; import { getAvailableLanguages, translate } from '../langs/list/LanguageManager'; +import { getAllPlayerNames } from '../../Modules/Util'; +import { checkReports } from '../utility/report'; export function showBasicUI(player: Player): Promise { player.playSound('mob.chicken.plop'); const form = new ActionFormData() .title('Main Menu') - .body(translate(player, 'ChooseCom')) - .button(translate(player, 'uihelp'), 'textures/items/book_writable') - .button(translate(player, 'uichest'), 'textures/blocks/chest_front') + .body(translate(player, 'ChooseCom')); + + // ボタンの内容を条件分岐で変更 + if (player.hasTag("staff") || player.hasTag("op")) { + form.button(translate(player, 'ui.StaffMenu'), 'textures/items/book_writable'); // アイコンはそのまま + } else { + form.button(translate(player, 'uihelp'), 'textures/items/book_writable'); + } + + form.button(translate(player, 'uichest'), 'textures/blocks/chest_front') .button(translate(player, 'uilang'), 'textures/ui/language_glyph_color') .button(translate(player, 'uijpch'), 'textures/ui/chat_send') .button(translate(player, 'uitpa'), 'textures/items/ender_pearl') .button(translate(player, 'ui.MainLoreButton'), 'textures/items/name_tag') - .button('Exit'); + .button(translate(player, 'ui.ReportButton'), 'textures/ui/icon_bell') + .button(translate(player, 'back')); + return form //@ts-ignore .show(player) .then((response) => { if (response.canceled) { - } else { - switch (response.selection) { - case 0: + return; // キャンセルされた場合は何もしない + } + + let selection: number = response.selection !== undefined ? response.selection : -1; + + + + switch (selection) { + case 0: + if (player.hasTag("staff") || player.hasTag("op")) { + showStaffUI(player); + } else { runCommand(player.name, 'help'); - break; - case 1: - showChestMenu(player); - break; - case 2: - showLangMenu(player); - break; - case 3: - showjpchMenu(player); - break; - case 4: - showTpaMenu(player); - break; - case 5: - showloreMenu(player); - break; - } + } + break; + case 1: + showChestMenu(player); + break; + case 2: + showLangMenu(player); + break; + case 3: + showjpchMenu(player); + break; + case 4: + showTpaMenu(player); + break; + case 5: + showloreMenu(player); + break; + case 6: + showReportMenu(player); + break; } }) .catch((error: Error) => { @@ -52,6 +74,33 @@ export function showBasicUI(player: Player): Promise { }); } +// スタッフ専用のUIを表示する関数 +function showStaffUI(player: Player): Promise { + // スタッフUIの内容を定義 + const staffForm = new ActionFormData() + .title('Staff Menu') + .button(translate(player,"ui.checkReports")) + .button('Main Menu'); + + return staffForm + //@ts-ignore + .show(player) + .then((response) => { + if (response.canceled) { + return; + } + + switch (response.selection) { + case 0: + checkReports(player); + break; + case 1: + showBasicUI(player); + break; + } + }); +} + function showChestMenu(player: Player): Promise { player.playSound('mob.chicken.plop'); const form = new ActionFormData() @@ -433,14 +482,14 @@ function showTpaRequestsMenu(player: Player, requests: string[]): Promise function showSendTpaMenu(player: Player): Promise { player.playSound('mob.chicken.plop'); - const playerNames = getAllPlayerNames(player); + const playerNames = player.dimension.getPlayers(); const form = new ActionFormData() .title('Send TPA Request') .body(translate(player, 'SendTpaSelect')); - playerNames.forEach((playerName) => { - form.button(playerName); + playerNames.forEach((p) => { + form.button(p.name); }); form.button(translate(player, 'back')); @@ -458,7 +507,7 @@ function showSendTpaMenu(player: Player): Promise { response.selection < playerNames.length ) { const targetPlayerName = playerNames[response.selection]; - runCommand(player.name, 'tpa', ['-r', targetPlayerName]); + runCommand(player.name, 'tpa', ['-r', targetPlayerName.name]); } else if (response.selection === playerNames.length) { showTpaMenu(player); } else { @@ -538,3 +587,56 @@ function showChangeName(player: Player): void { function ClearLore(player: Player): void { runCommand(player.name, 'lore', ['-slot', '0', '-clear','a']); } + + +function showReportMenu(player: Player): Promise { + player.playSound('mob.chicken.plop'); + + const playerNames = getAllPlayerNames(player); + + const form = new ActionFormData() + .title('Report Request') + .body(translate(player, 'ui.reportPSelect')); + + playerNames.forEach((p) => { + form.button(p); + }); + + form.button(translate(player, 'back')); + + return ( + form + //@ts-ignore + .show(player) + .then((response) => { + if (response.canceled) { + } else { + if ( + response.selection !== undefined && + response.selection >= 0 && + response.selection < playerNames.length + ) { + const targetPlayerName = playerNames[response.selection]; + const modal = new ModalFormData() + .title('Report Reason') + .textField(translate(player,"ui.EnterReport"), ''); + + //@ts-ignore + modal.show(player).then((modalResponse) => { + if (modalResponse.canceled || modalResponse.formValues === undefined) return; + + const reason = modalResponse.formValues[0] as string; + runCommand(player.name, 'report', [targetPlayerName, '-r', reason]); + }); + } else if (response.selection === playerNames.length) { + showBasicUI(player); + } else { + } + } + }) + .catch((error: Error) => { + console.error(translate(player, 'FromError'), error); + player.sendMessage(translate(player, 'FromError') + error.message); + }) + ); +} \ No newline at end of file diff --git a/devFolder/src/command/langs/list/en_US.json b/devFolder/src/command/langs/list/en_US.json index fe1cd26..61f9759 100644 --- a/devFolder/src/command/langs/list/en_US.json +++ b/devFolder/src/command/langs/list/en_US.json @@ -1,4 +1,77 @@ -{ +{ + "command.reportNotPlayer": { + "msgid": "§f>>§4Reported player not found", + "msgstr": "" + }, + "staff_command_description": { + "msgid": "Staff-only commands", + "msgstr": "" + }, + "report_command_description": { + "msgid": "You can report players doing bad things.", + "msgstr": "" + }, + "command.reportSubmit": { + "msgid": "§f>>§aReport submitted successfully", + "msgstr": "" + }, + "ui.ReportButton": { + "msgid": "§0Report Menu", + "msgstr": "" + }, + "ui.EnterReport": { + "msgid": "§bPlease enter the reason for the report", + "msgstr": "" + }, + + "command.newReport": { + "msgid": "§f>>§a§lNew report from {reporter} about {reportedPlayer}", + "msgstr": "" + }, + "command.NotReport": { + "msgid": "§f>>§4No reports found", + "msgstr": "" + }, + "command.ui.reportTitle": { + "msgid": "§l§0{selectedReporter}§e has Report", + "msgstr": "" + }, + "command.ui.reportDetails": { + "msgid": "§l§0Report Details", + "msgstr": "" + }, + "ui.reportPSelect": { + "msgid": "§l§3Select Report To Player", + "msgstr": "" + }, + "ui.StaffMenu": { + "msgid": "§l§0Staff Menu", + "msgstr": "" + }, + "ui.checkReports": { + "msgid": "§l§0Check Report", + "msgstr": "" + }, + "commnad.staff.UsageCom": { + "msgid": "§l§bUsage§a Staff Command §f| world <-send> Message | report <-check>", + "msgstr": "" + }, + "command.ui.reportBody": { + "msgid": [ + "§a== Report Menu ==", + "", + "§l§bReporter§f:{reporter}", + "", + "§l§6Reported Player§f: {reportedPlayer}", + "", + "§l§2Reason§f: {reason}", + "", + "§l§gTimestamp§f: {timestamp}", + "", + "§a================" + ], + "msgstr": "" + }, "command.about": { "msgid": [ "§a== About ChestLockAddon ==", diff --git a/devFolder/src/command/langs/list/en_US.ts b/devFolder/src/command/langs/list/en_US.ts index 03001ae..8acaa42 100644 --- a/devFolder/src/command/langs/list/en_US.ts +++ b/devFolder/src/command/langs/list/en_US.ts @@ -1,4 +1,64 @@ export const translations = { + "command.reportNotPlayer": { + msgid: "§f>>§4Reported player not found", + msgstr: "" + }, + "staff_command_description": { + msgid: "Staff-only commands", + msgstr: "" + }, + "report_command_description": { + msgid: "You can report players doing bad things.", + msgstr: "" + }, + "command.reportSubmit": { + msgid: "§f>>§aReport submitted successfully", + msgstr: "" + }, + "ui.ReportButton": { + msgid: "§0Report Menu", + msgstr: "" + }, + "ui.EnterReport": { + msgid: "§bPlease enter the reason for the report", + msgstr: "" + }, + "command.newReport": { + msgid: "§f>>§a§lNew report from {reporter} about {reportedPlayer}", + msgstr: "" + }, + "command.NotReport": { + msgid: "§f>>§4No reports found", + msgstr: "" + }, + "command.ui.reportTitle": { + msgid: "§l§0{selectedReporter}§e has Report", + msgstr: "" + }, + "command.ui.reportDetails": { + msgid: "§l§0Report Details", + msgstr: "" + }, + "ui.reportPSelect": { + msgid: "§l§3Select Report To Player", + msgstr: "" + }, + "ui.StaffMenu": { + msgid: "§l§0Staff Menu", + msgstr: "" + }, + "ui.checkReports": { + msgid: "§l§0Check Report", + msgstr: "" + }, + "commnad.staff.UsageCom": { + msgid: "§l§bUsage§a Staff Command §f| world <-send> Message | report <-check>", + msgstr: "" + }, + "command.ui.reportBody": { + msgid: "§a== Report Menu ==\n\n§l§bReporter§f:{reporter}\n\n§l§6Reported Player§f: {reportedPlayer}\n\n§l§2Reason§f: {reason}\n\n§l§gTimestamp§f: {timestamp}\n\n§a================", + msgstr: "" + }, "command.about": { msgid: "§a== About ChestLockAddon ==\n\nChestLockAddon is a useful utility addon for Minecraft version 1.21.22 that provides chest protection and more.\n\n§b== Main Features ==\n• Chest Protection: Protect your chests from other players.\n• Multilingual Support: Change the language setting with the lang command.\n• Teleport Request: Send a teleport request to another player with the tpa command.\n• And more: More useful commands will be added in the future.\n\n§b== Links ==\n• GitHub: https://github.com/gamelist1990/ChestLockAddon\n• YouTube: https://www.youtube.com/@PEXkoukunn\n• Discord: https://discord.gg/GJyqBm7Pyd\n\n§c== Notes ==\nThis addon is under development and may contain unexpected bugs. If you find any bugs, please report them on GitHub or Discord.\n\n§a== Message from the Developer ==\nWe welcome your feedback to make ChestLockAddon a better addon.", msgstr: "" diff --git a/devFolder/src/command/langs/list/fi_FI.json b/devFolder/src/command/langs/list/fi_FI.json index 9e96f03..824528f 100644 --- a/devFolder/src/command/langs/list/fi_FI.json +++ b/devFolder/src/command/langs/list/fi_FI.json @@ -1,4 +1,76 @@ { + "command.reportNotPlayer": { + "msgid": "§f>>§4Reported player not found", + "msgstr": "" + }, + "staff_command_description": { + "msgid": "Staff-only commands", + "msgstr": "" + }, + "report_command_description": { + "msgid": "You can report players doing bad things.", + "msgstr": "" + }, + "command.reportSubmit": { + "msgid": "§f>>§aReport submitted successfully", + "msgstr": "" + }, + "ui.ReportButton": { + "msgid": "§0Report Menu", + "msgstr": "" + }, + "ui.EnterReport": { + "msgid": "§bPlease enter the reason for the report", + "msgstr": "" + }, + "command.newReport": { + "msgid": "§f>>§a§lNew report from {reporter} about {reportedPlayer}", + "msgstr": "" + }, + "command.NotReport": { + "msgid": "§f>>§4No reports found", + "msgstr": "" + }, + "command.ui.reportTitle": { + "msgid": "§l§0{selectedReporter}§e has Report", + "msgstr": "" + }, + "command.ui.reportDetails": { + "msgid": "§l§0Report Details", + "msgstr": "" + }, + "ui.reportPSelect": { + "msgid": "§l§3Select Report To Player", + "msgstr": "" + }, + "ui.StaffMenu": { + "msgid": "§l§0Staff Menu", + "msgstr": "" + }, + "ui.checkReports": { + "msgid": "§l§0Check Report", + "msgstr": "" + }, + "commnad.staff.UsageCom": { + "msgid": "§l§bUsage§a Staff Command §f| world <-send> Message | report <-check>", + "msgstr": "" + }, + "command.ui.reportBody": { + "msgid": [ + "§a== Report Menu ==", + "", + "§l§bReporter§f:{reporter}", + "", + "§l§6Reported Player§f: {reportedPlayer}", + "", + "§l§2Reason§f: {reason}", + "", + "§l§gTimestamp§f: {timestamp}", + "", + "§a================" + ], + "msgstr": "" + }, "command.about": { "msgid": [ "§a== About ChestLockAddon ==", diff --git a/devFolder/src/command/langs/list/fi_FI.ts b/devFolder/src/command/langs/list/fi_FI.ts index 577d41a..05d9582 100644 --- a/devFolder/src/command/langs/list/fi_FI.ts +++ b/devFolder/src/command/langs/list/fi_FI.ts @@ -1,4 +1,64 @@ export const translations = { + "command.reportNotPlayer": { + msgid: "§f>>§4Reported player not found", + msgstr: "" + }, + "staff_command_description": { + msgid: "Staff-only commands", + msgstr: "" + }, + "report_command_description": { + msgid: "You can report players doing bad things.", + msgstr: "" + }, + "command.reportSubmit": { + msgid: "§f>>§aReport submitted successfully", + msgstr: "" + }, + "ui.ReportButton": { + msgid: "§0Report Menu", + msgstr: "" + }, + "ui.EnterReport": { + msgid: "§bPlease enter the reason for the report", + msgstr: "" + }, + "command.newReport": { + msgid: "§f>>§a§lNew report from {reporter} about {reportedPlayer}", + msgstr: "" + }, + "command.NotReport": { + msgid: "§f>>§4No reports found", + msgstr: "" + }, + "command.ui.reportTitle": { + msgid: "§l§0{selectedReporter}§e has Report", + msgstr: "" + }, + "command.ui.reportDetails": { + msgid: "§l§0Report Details", + msgstr: "" + }, + "ui.reportPSelect": { + msgid: "§l§3Select Report To Player", + msgstr: "" + }, + "ui.StaffMenu": { + msgid: "§l§0Staff Menu", + msgstr: "" + }, + "ui.checkReports": { + msgid: "§l§0Check Report", + msgstr: "" + }, + "commnad.staff.UsageCom": { + msgid: "§l§bUsage§a Staff Command §f| world <-send> Message | report <-check>", + msgstr: "" + }, + "command.ui.reportBody": { + msgid: "§a== Report Menu ==\n\n§l§bReporter§f:{reporter}\n\n§l§6Reported Player§f: {reportedPlayer}\n\n§l§2Reason§f: {reason}\n\n§l§gTimestamp§f: {timestamp}\n\n§a================", + msgstr: "" + }, "command.about": { msgid: "§a== About ChestLockAddon ==\n\nChestLockAddon is a useful utility addon for Minecraft version 1.21.22 that provides chest protection and more.\n\n§b== Main Features ==\n• Chest Protection: Protect your chests from other players.\n• Multilingual Support: Change the language setting with the lang command.\n• Teleport Request: Send a teleport request to another player with the tpa command.\n• And more: More useful commands will be added in the future.\n\n§b== Links ==\n• GitHub: https://github.com/gamelist1990/ChestLockAddon\n• YouTube: https://www.youtube.com/@PEXkoukunn\n• Discord: https://discord.gg/GJyqBm7Pyd\n\n§c== Notes ==\nThis addon is under development and may contain unexpected bugs. If you find any bugs, please report them on GitHub or Discord.\n\n§a== Message from the Developer ==\nWe welcome your feedback to make ChestLockAddon a better addon.", msgstr: "" diff --git a/devFolder/src/command/langs/list/ja_JP.json b/devFolder/src/command/langs/list/ja_JP.json index ae9773d..0e29146 100644 --- a/devFolder/src/command/langs/list/ja_JP.json +++ b/devFolder/src/command/langs/list/ja_JP.json @@ -1,4 +1,88 @@ { + "command.reportNotPlayer": { + "msgid": "§f>>§4Reported player not found", + "msgstr": "§f>>§4報告対象のプレイヤーが見つかりませんでした" + }, + "staff_command_description": { + "msgid": "Staff-only commands", + "msgstr": "スタッフ専用のコマンド!" + }, + "report_command_description": { + "msgid": "You can report players doing bad things.", + "msgstr": "悪い事をしたプレイヤーを報告できます" + }, + "command.reportSubmit": { + "msgid": "§f>>§aReport submitted successfully", + "msgstr": "§f>>§aスタッフにレポートを報告しました" + }, + "ui.ReportButton": { + "msgid": "§0Report Menu", + "msgstr": "§0報告メニュー" + }, + "ui.EnterReport": { + "msgid": "§bPlease enter the reason for the report", + "msgstr": "§bスタッフに報告する内容を記入してね" + }, + "command.newReport": { + "msgid": "§f>>§a§lNew report from {reporter} about {reportedPlayer}", + "msgstr": "§f>>§b§l[Server] §f: §a新しく§f {reporter} §aが§f {reportedPlayer} §aに対してレポートを提出しました" + }, + "command.NotReport": { + "msgid": "§f>>§4No reports found", + "msgstr": "§f>>§4ユーザーからの報告がありません" + }, + "command.ui.reportTitle": { + "msgid": "§l§0{selectedReporter}§e has Report", + "msgstr": "§l§0{selectedReporter}§eが提出したレポート" + }, + "command.ui.reportDetails": { + "msgid": "§l§0Report Details", + "msgstr": "§l§0レポートの詳細" + }, + "ui.reportPSelect": { + "msgid": "§l§3Select Report To Player", + "msgstr": "§l§3報告したいプレイヤーを選択してください" + }, + "ui.StaffMenu": { + "msgid": "§l§0Staff Menu", + "msgstr": "§l§0スタッフメニュー" + }, + "ui.checkReports": { + "msgid": "§l§0Check Report", + "msgstr": "§l§0レポートを確認" + }, + "commnad.staff.UsageCom": { + "msgid": "§l§bUsage§a Staff Command §f| world <-send> Message | report <-check>", + "msgstr": "§l§b使い方§a スタッフコマンド §f| world <-send> Message | report <-check>" + }, + "command.ui.reportBody": { + "msgid": [ + "§a== Report Menu ==", + "", + "§l§bReporter§f:{reporter}", + "", + "§l§6Reported Player§f: {reportedPlayer}", + "", + "§l§2Reason§f: {reason}", + "", + "§l§gTimestamp§f: {timestamp}", + "", + "§a================" + ], + "msgstr": [ + "§a== レポート メニュー ==", + "", + "§l§b報告者§f:{reporter}", + "", + "§l§6報告されたプレイヤー§f: {reportedPlayer}", + "", + "§l§2理由§f: {reason}", + "", + "§l§g報告日時§f: {timestamp}", + "", + "§a====================" + ] + }, "command.about": { "msgid": [ "§a== About ChestLockAddon ==", @@ -25,7 +109,7 @@ "msgstr": [ "§a== ChestLockAddon について ==", "", - "ChestLockAddonは、Minecraftのバージョン1.21.22に対応した、チェスト保護機能などを提供する便利なユーティリティアドオンです。", + "ChestLockAddonは、Minecraftのバージョン1.21.30に対応した、チェスト保護機能などを提供する便利なユーティリティアドオンです。", "", "§b== 主な機能 ==", "• チェスト保護: あなたのチェストを他のプレイヤーから保護します。", diff --git a/devFolder/src/command/langs/list/ja_JP.ts b/devFolder/src/command/langs/list/ja_JP.ts index aec7873..f20198a 100644 --- a/devFolder/src/command/langs/list/ja_JP.ts +++ b/devFolder/src/command/langs/list/ja_JP.ts @@ -1,7 +1,67 @@ export const translations = { + "command.reportNotPlayer": { + msgid: "§f>>§4Reported player not found", + msgstr: "§f>>§4報告対象のプレイヤーが見つかりませんでした" + }, + "staff_command_description": { + msgid: "Staff-only commands", + msgstr: "スタッフ専用のコマンド!" + }, + "report_command_description": { + msgid: "You can report players doing bad things.", + msgstr: "悪い事をしたプレイヤーを報告できます" + }, + "command.reportSubmit": { + msgid: "§f>>§aReport submitted successfully", + msgstr: "§f>>§aスタッフにレポートを報告しました" + }, + "ui.ReportButton": { + msgid: "§0Report Menu", + msgstr: "§0報告メニュー" + }, + "ui.EnterReport": { + msgid: "§bPlease enter the reason for the report", + msgstr: "§bスタッフに報告する内容を記入してね" + }, + "command.newReport": { + msgid: "§f>>§a§lNew report from {reporter} about {reportedPlayer}", + msgstr: "§f>>§b§l[Server] §f: §a新しく§f {reporter} §aが§f {reportedPlayer} §aに対してレポートを提出しました" + }, + "command.NotReport": { + msgid: "§f>>§4No reports found", + msgstr: "§f>>§4ユーザーからの報告がありません" + }, + "command.ui.reportTitle": { + msgid: "§l§0{selectedReporter}§e has Report", + msgstr: "§l§0{selectedReporter}§eが提出したレポート" + }, + "command.ui.reportDetails": { + msgid: "§l§0Report Details", + msgstr: "§l§0レポートの詳細" + }, + "ui.reportPSelect": { + msgid: "§l§3Select Report To Player", + msgstr: "§l§3報告したいプレイヤーを選択してください" + }, + "ui.StaffMenu": { + msgid: "§l§0Staff Menu", + msgstr: "§l§0スタッフメニュー" + }, + "ui.checkReports": { + msgid: "§l§0Check Report", + msgstr: "§l§0レポートを確認" + }, + "commnad.staff.UsageCom": { + msgid: "§l§bUsage§a Staff Command §f| world <-send> Message | report <-check>", + msgstr: "§l§b使い方§a スタッフコマンド §f| world <-send> Message | report <-check>" + }, + "command.ui.reportBody": { + msgid: "§a== Report Menu ==\n\n§l§bReporter§f:{reporter}\n\n§l§6Reported Player§f: {reportedPlayer}\n\n§l§2Reason§f: {reason}\n\n§l§gTimestamp§f: {timestamp}\n\n§a================", + msgstr: "§a== レポート メニュー ==\n\n§l§b報告者§f:{reporter}\n\n§l§6報告されたプレイヤー§f: {reportedPlayer}\n\n§l§2理由§f: {reason}\n\n§l§g報告日時§f: {timestamp}\n\n§a===================" + }, "command.about": { msgid: "§a== About ChestLockAddon ==\n\nChestLockAddon is a useful utility addon for Minecraft version 1.21.22 that provides chest protection and more.\n\n§b== Main Features ==\n• Chest Protection: Protect your chests from other players.\n• Multilingual Support: Change the language setting with the lang command.\n• Teleport Request: Send a teleport request to another player with the tpa command.\n• And more: More useful commands will be added in the future.\n\n§b== Links ==\n• GitHub: https://github.com/gamelist1990/ChestLockAddon\n• YouTube: https://www.youtube.com/@PEXkoukunn\n• Discord: https://discord.gg/GJyqBm7Pyd\n\n§c== Notes ==\nThis addon is under development and may contain unexpected bugs. If you find any bugs, please report them on GitHub or Discord.\n\n§a== Message from the Developer ==\nWe welcome your feedback to make ChestLockAddon a better addon.", - msgstr: "§a== ChestLockAddon について ==\n\nChestLockAddonは、Minecraftのバージョン1.21.22に対応した、チェスト保護機能などを提供する便利なユーティリティアドオンです。\n\n§b== 主な機能 ==\n• チェスト保護: あなたのチェストを他のプレイヤーから保護します。\n• 多言語対応: lang コマンドで言語設定を変更できます。\n• PS4/5向けUI: ui コマンドでPS4/5向けUIを開けます。\n• テレポートリクエスト: tpa コマンドで他のプレイヤーにテレポートリクエストを送れます。\n• その他: 今後も便利なコマンドが追加される予定です。\n\n§b== リンク ==\n• GitHub: https://github.com/gamelist1990/ChestLockAddon\n• YouTube: https://www.youtube.com/@PEXkoukunn\n• Discord: https://discord.gg/GJyqBm7Pyd\n\n§c== 注意点 ==\nアドオンは開発中のため、予期せぬバグが発生する可能性があります。バグを発見した場合は、GitHubやDiscordで報告してください。\n\n§a== 開発者からのメッセージ ==\nChestLockAddonをより良いアドオンにするために、皆様からのフィードバックをお待ちしております。" + msgstr: "§a== ChestLockAddon について ==\n\nChestLockAddonは、Minecraftのバージョン1.21.30に対応した、チェスト保護機能などを提供する便利なユーティリティアドオンです。\n\n§b== 主な機能 ==\n• チェスト保護: あなたのチェストを他のプレイヤーから保護します。\n• 多言語対応: lang コマンドで言語設定を変更できます。\n• PS4/5向けUI: ui コマンドでPS4/5向けUIを開けます。\n• テレポートリクエスト: tpa コマンドで他のプレイヤーにテレポートリクエストを送れます。\n• その他: 今後も便利なコマンドが追加される予定です。\n\n§b== リンク ==\n• GitHub: https://github.com/gamelist1990/ChestLockAddon\n• YouTube: https://www.youtube.com/@PEXkoukunn\n• Discord: https://discord.gg/GJyqBm7Pyd\n\n§c== 注意点 ==\nアドオンは開発中のため、予期せぬバグが発生する可能性があります。バグを発見した場合は、GitHubやDiscordで報告してください。\n\n§a== 開発者からのメッセージ ==\nChestLockAddonをより良いアドオンにするために、皆様からのフィードバックをお待ちしております。" }, "command.Undone": { msgid: "§f>>§aReverted to one previous change", diff --git a/devFolder/src/command/langs/list/ko_KR.json b/devFolder/src/command/langs/list/ko_KR.json index 3c951c0..00b78c5 100644 --- a/devFolder/src/command/langs/list/ko_KR.json +++ b/devFolder/src/command/langs/list/ko_KR.json @@ -1,4 +1,76 @@ { + "command.reportNotPlayer": { + "msgid": "§f>>§4Reported player not found", + "msgstr": "" + }, + "staff_command_description": { + "msgid": "Staff-only commands", + "msgstr": "" + }, + "report_command_description": { + "msgid": "You can report players doing bad things.", + "msgstr": "" + }, + "command.reportSubmit": { + "msgid": "§f>>§aReport submitted successfully", + "msgstr": "" + }, + "ui.ReportButton": { + "msgid": "§0Report Menu", + "msgstr": "" + }, + "ui.EnterReport": { + "msgid": "§bPlease enter the reason for the report", + "msgstr": "" + }, + "command.newReport": { + "msgid": "§f>>§a§lNew report from {reporter} about {reportedPlayer}", + "msgstr": "" + }, + "command.NotReport": { + "msgid": "§f>>§4No reports found", + "msgstr": "" + }, + "command.ui.reportTitle": { + "msgid": "§l§0{selectedReporter}§e has Report", + "msgstr": "" + }, + "command.ui.reportDetails": { + "msgid": "§l§0Report Details", + "msgstr": "" + }, + "ui.reportPSelect": { + "msgid": "§l§3Select Report To Player", + "msgstr": "" + }, + "ui.StaffMenu": { + "msgid": "§l§0Staff Menu", + "msgstr": "" + }, + "ui.checkReports": { + "msgid": "§l§0Check Report", + "msgstr": "" + }, + "commnad.staff.UsageCom": { + "msgid": "§l§bUsage§a Staff Command §f| world <-send> Message | report <-check>", + "msgstr": "" + }, + "command.ui.reportBody": { + "msgid": [ + "§a== Report Menu ==", + "", + "§l§bReporter§f:{reporter}", + "", + "§l§6Reported Player§f: {reportedPlayer}", + "", + "§l§2Reason§f: {reason}", + "", + "§l§gTimestamp§f: {timestamp}", + "", + "§a================" + ], + "msgstr": "" + }, "command.about": { "msgid": [ "§a== About ChestLockAddon ==", diff --git a/devFolder/src/command/langs/list/ko_KR.ts b/devFolder/src/command/langs/list/ko_KR.ts index 61c8697..a9da76e 100644 --- a/devFolder/src/command/langs/list/ko_KR.ts +++ b/devFolder/src/command/langs/list/ko_KR.ts @@ -1,4 +1,64 @@ export const translations = { + "command.reportNotPlayer": { + msgid: "§f>>§4Reported player not found", + msgstr: "" + }, + "staff_command_description": { + msgid: "Staff-only commands", + msgstr: "" + }, + "report_command_description": { + msgid: "You can report players doing bad things.", + msgstr: "" + }, + "command.reportSubmit": { + msgid: "§f>>§aReport submitted successfully", + msgstr: "" + }, + "ui.ReportButton": { + msgid: "§0Report Menu", + msgstr: "" + }, + "ui.EnterReport": { + msgid: "§bPlease enter the reason for the report", + msgstr: "" + }, + "command.newReport": { + msgid: "§f>>§a§lNew report from {reporter} about {reportedPlayer}", + msgstr: "" + }, + "command.NotReport": { + msgid: "§f>>§4No reports found", + msgstr: "" + }, + "command.ui.reportTitle": { + msgid: "§l§0{selectedReporter}§e has Report", + msgstr: "" + }, + "command.ui.reportDetails": { + msgid: "§l§0Report Details", + msgstr: "" + }, + "ui.reportPSelect": { + msgid: "§l§3Select Report To Player", + msgstr: "" + }, + "ui.StaffMenu": { + msgid: "§l§0Staff Menu", + msgstr: "" + }, + "ui.checkReports": { + msgid: "§l§0Check Report", + msgstr: "" + }, + "commnad.staff.UsageCom": { + msgid: "§l§bUsage§a Staff Command §f| world <-send> Message | report <-check>", + msgstr: "" + }, + "command.ui.reportBody": { + msgid: "§a== Report Menu ==\n\n§l§bReporter§f:{reporter}\n\n§l§6Reported Player§f: {reportedPlayer}\n\n§l§2Reason§f: {reason}\n\n§l§gTimestamp§f: {timestamp}\n\n§a================", + msgstr: "" + }, "command.about": { msgid: "§a== About ChestLockAddon ==\n\nChestLockAddon is a useful utility addon for Minecraft version 1.21.22 that provides chest protection and more.\n\n§b== Main Features ==\n• Chest Protection: Protect your chests from other players.\n• Multilingual Support: Change the language setting with the lang command.\n• Teleport Request: Send a teleport request to another player with the tpa command.\n• And more: More useful commands will be added in the future.\n\n§b== Links ==\n• GitHub: https://github.com/gamelist1990/ChestLockAddon\n• YouTube: https://www.youtube.com/@PEXkoukunn\n• Discord: https://discord.gg/GJyqBm7Pyd\n\n§c== Notes ==\nThis addon is under development and may contain unexpected bugs. If you find any bugs, please report them on GitHub or Discord.\n\n§a== Message from the Developer ==\nWe welcome your feedback to make ChestLockAddon a better addon.", msgstr: "" diff --git a/devFolder/src/command/langs/list/ru_RU.json b/devFolder/src/command/langs/list/ru_RU.json index 0d23e92..3137a08 100644 --- a/devFolder/src/command/langs/list/ru_RU.json +++ b/devFolder/src/command/langs/list/ru_RU.json @@ -1,4 +1,76 @@ { + "command.reportNotPlayer": { + "msgid": "§f>>§4Reported player not found", + "msgstr": "" + }, + "staff_command_description": { + "msgid": "Staff-only commands", + "msgstr": "" + }, + "report_command_description": { + "msgid": "You can report players doing bad things.", + "msgstr": "" + }, + "command.reportSubmit": { + "msgid": "§f>>§aReport submitted successfully", + "msgstr": "" + }, + "ui.ReportButton": { + "msgid": "§0Report Menu", + "msgstr": "" + }, + "ui.EnterReport": { + "msgid": "§bPlease enter the reason for the report", + "msgstr": "" + }, + "command.newReport": { + "msgid": "§f>>§a§lNew report from {reporter} about {reportedPlayer}", + "msgstr": "" + }, + "command.NotReport": { + "msgid": "§f>>§4No reports found", + "msgstr": "" + }, + "command.ui.reportTitle": { + "msgid": "§l§0{selectedReporter}§e has Report", + "msgstr": "" + }, + "command.ui.reportDetails": { + "msgid": "§l§0Report Details", + "msgstr": "" + }, + "ui.reportPSelect": { + "msgid": "§l§3Select Report To Player", + "msgstr": "" + }, + "ui.StaffMenu": { + "msgid": "§l§0Staff Menu", + "msgstr": "" + }, + "ui.checkReports": { + "msgid": "§l§0Check Report", + "msgstr": "" + }, + "commnad.staff.UsageCom": { + "msgid": "§l§bUsage§a Staff Command §f| world <-send> Message | report <-check>", + "msgstr": "" + }, + "command.ui.reportBody": { + "msgid": [ + "§a== Report Menu ==", + "", + "§l§bReporter§f:{reporter}", + "", + "§l§6Reported Player§f: {reportedPlayer}", + "", + "§l§2Reason§f: {reason}", + "", + "§l§gTimestamp§f: {timestamp}", + "", + "§a================" + ], + "msgstr": "" + }, "command.about": { "msgid": [ "§a== About ChestLockAddon ==", diff --git a/devFolder/src/command/langs/list/ru_RU.ts b/devFolder/src/command/langs/list/ru_RU.ts index aa94df0..b7d1011 100644 --- a/devFolder/src/command/langs/list/ru_RU.ts +++ b/devFolder/src/command/langs/list/ru_RU.ts @@ -1,4 +1,64 @@ export const translations = { + "command.reportNotPlayer": { + msgid: "§f>>§4Reported player not found", + msgstr: "" + }, + "staff_command_description": { + msgid: "Staff-only commands", + msgstr: "" + }, + "report_command_description": { + msgid: "You can report players doing bad things.", + msgstr: "" + }, + "command.reportSubmit": { + msgid: "§f>>§aReport submitted successfully", + msgstr: "" + }, + "ui.ReportButton": { + msgid: "§0Report Menu", + msgstr: "" + }, + "ui.EnterReport": { + msgid: "§bPlease enter the reason for the report", + msgstr: "" + }, + "command.newReport": { + msgid: "§f>>§a§lNew report from {reporter} about {reportedPlayer}", + msgstr: "" + }, + "command.NotReport": { + msgid: "§f>>§4No reports found", + msgstr: "" + }, + "command.ui.reportTitle": { + msgid: "§l§0{selectedReporter}§e has Report", + msgstr: "" + }, + "command.ui.reportDetails": { + msgid: "§l§0Report Details", + msgstr: "" + }, + "ui.reportPSelect": { + msgid: "§l§3Select Report To Player", + msgstr: "" + }, + "ui.StaffMenu": { + msgid: "§l§0Staff Menu", + msgstr: "" + }, + "ui.checkReports": { + msgid: "§l§0Check Report", + msgstr: "" + }, + "commnad.staff.UsageCom": { + msgid: "§l§bUsage§a Staff Command §f| world <-send> Message | report <-check>", + msgstr: "" + }, + "command.ui.reportBody": { + msgid: "§a== Report Menu ==\n\n§l§bReporter§f:{reporter}\n\n§l§6Reported Player§f: {reportedPlayer}\n\n§l§2Reason§f: {reason}\n\n§l§gTimestamp§f: {timestamp}\n\n§a================", + msgstr: "" + }, "command.about": { msgid: "§a== About ChestLockAddon ==\n\nChestLockAddon is a useful utility addon for Minecraft version 1.21.22 that provides chest protection and more.\n\n§b== Main Features ==\n• Chest Protection: Protect your chests from other players.\n• Multilingual Support: Change the language setting with the lang command.\n• Teleport Request: Send a teleport request to another player with the tpa command.\n• And more: More useful commands will be added in the future.\n\n§b== Links ==\n• GitHub: https://github.com/gamelist1990/ChestLockAddon\n• YouTube: https://www.youtube.com/@PEXkoukunn\n• Discord: https://discord.gg/GJyqBm7Pyd\n\n§c== Notes ==\nThis addon is under development and may contain unexpected bugs. If you find any bugs, please report them on GitHub or Discord.\n\n§a== Message from the Developer ==\nWe welcome your feedback to make ChestLockAddon a better addon.", msgstr: "" diff --git a/devFolder/src/command/langs/list/zh_CN.json b/devFolder/src/command/langs/list/zh_CN.json index ae6ee1a..1debdcf 100644 --- a/devFolder/src/command/langs/list/zh_CN.json +++ b/devFolder/src/command/langs/list/zh_CN.json @@ -1,4 +1,76 @@ { + "command.reportNotPlayer": { + "msgid": "§f>>§4Reported player not found", + "msgstr": "" + }, + "staff_command_description": { + "msgid": "Staff-only commands", + "msgstr": "" + }, + "report_command_description": { + "msgid": "You can report players doing bad things.", + "msgstr": "" + }, + "command.reportSubmit": { + "msgid": "§f>>§aReport submitted successfully", + "msgstr": "" + }, + "ui.ReportButton": { + "msgid": "§0Report Menu", + "msgstr": "" + }, + "ui.EnterReport": { + "msgid": "§bPlease enter the reason for the report", + "msgstr": "" + }, + "command.newReport": { + "msgid": "§f>>§a§lNew report from {reporter} about {reportedPlayer}", + "msgstr": "" + }, + "command.NotReport": { + "msgid": "§f>>§4No reports found", + "msgstr": "" + }, + "command.ui.reportTitle": { + "msgid": "§l§0{selectedReporter}§e has Report", + "msgstr": "" + }, + "command.ui.reportDetails": { + "msgid": "§l§0Report Details", + "msgstr": "" + }, + "ui.reportPSelect": { + "msgid": "§l§3Select Report To Player", + "msgstr": "" + }, + "ui.StaffMenu": { + "msgid": "§l§0Staff Menu", + "msgstr": "" + }, + "ui.checkReports": { + "msgid": "§l§0Check Report", + "msgstr": "" + }, + "commnad.staff.UsageCom": { + "msgid": "§l§bUsage§a Staff Command §f| world <-send> Message | report <-check>", + "msgstr": "" + }, + "command.ui.reportBody": { + "msgid": [ + "§a== Report Menu ==", + "", + "§l§bReporter§f:{reporter}", + "", + "§l§6Reported Player§f: {reportedPlayer}", + "", + "§l§2Reason§f: {reason}", + "", + "§l§gTimestamp§f: {timestamp}", + "", + "§a================" + ], + "msgstr": "" + }, "command.about": { "msgid": [ "§a== About ChestLockAddon ==", diff --git a/devFolder/src/command/langs/list/zh_CN.ts b/devFolder/src/command/langs/list/zh_CN.ts index 5c8996d..c9f7f32 100644 --- a/devFolder/src/command/langs/list/zh_CN.ts +++ b/devFolder/src/command/langs/list/zh_CN.ts @@ -1,4 +1,64 @@ export const translations = { + "command.reportNotPlayer": { + msgid: "§f>>§4Reported player not found", + msgstr: "" + }, + "staff_command_description": { + msgid: "Staff-only commands", + msgstr: "" + }, + "report_command_description": { + msgid: "You can report players doing bad things.", + msgstr: "" + }, + "command.reportSubmit": { + msgid: "§f>>§aReport submitted successfully", + msgstr: "" + }, + "ui.ReportButton": { + msgid: "§0Report Menu", + msgstr: "" + }, + "ui.EnterReport": { + msgid: "§bPlease enter the reason for the report", + msgstr: "" + }, + "command.newReport": { + msgid: "§f>>§a§lNew report from {reporter} about {reportedPlayer}", + msgstr: "" + }, + "command.NotReport": { + msgid: "§f>>§4No reports found", + msgstr: "" + }, + "command.ui.reportTitle": { + msgid: "§l§0{selectedReporter}§e has Report", + msgstr: "" + }, + "command.ui.reportDetails": { + msgid: "§l§0Report Details", + msgstr: "" + }, + "ui.reportPSelect": { + msgid: "§l§3Select Report To Player", + msgstr: "" + }, + "ui.StaffMenu": { + msgid: "§l§0Staff Menu", + msgstr: "" + }, + "ui.checkReports": { + msgid: "§l§0Check Report", + msgstr: "" + }, + "commnad.staff.UsageCom": { + msgid: "§l§bUsage§a Staff Command §f| world <-send> Message | report <-check>", + msgstr: "" + }, + "command.ui.reportBody": { + msgid: "§a== Report Menu ==\n\n§l§bReporter§f:{reporter}\n\n§l§6Reported Player§f: {reportedPlayer}\n\n§l§2Reason§f: {reason}\n\n§l§gTimestamp§f: {timestamp}\n\n§a================", + msgstr: "" + }, "command.about": { msgid: "§a== About ChestLockAddon ==\n\nChestLockAddon is a useful utility addon for Minecraft version 1.21.22 that provides chest protection and more.\n\n§b== Main Features ==\n• Chest Protection: Protect your chests from other players.\n• Multilingual Support: Change the language setting with the lang command.\n• Teleport Request: Send a teleport request to another player with the tpa command.\n• And more: More useful commands will be added in the future.\n\n§b== Links ==\n• GitHub: https://github.com/gamelist1990/ChestLockAddon\n• YouTube: https://www.youtube.com/@PEXkoukunn\n• Discord: https://discord.gg/GJyqBm7Pyd\n\n§c== Notes ==\nThis addon is under development and may contain unexpected bugs. If you find any bugs, please report them on GitHub or Discord.\n\n§a== Message from the Developer ==\nWe welcome your feedback to make ChestLockAddon a better addon.", msgstr: "" diff --git a/devFolder/src/command/plugin/chest.ts b/devFolder/src/command/plugin/chest.ts index f560068..2480619 100644 --- a/devFolder/src/command/plugin/chest.ts +++ b/devFolder/src/command/plugin/chest.ts @@ -228,13 +228,13 @@ function findNearbyChest(player: Player): any | null { } export function showProtectedChestData(player: Player) { - const data = world.getDynamicProperty('protectedChests'); + const data = chestLockAddonData.protectedChests; player.sendMessage('§a---- Protected Chests Data ----'); player.sendMessage(JSON.stringify(protectedChests)); player.sendMessage('\n'); - player.sendMessage('§a---- Protected Chests Data By Dynamic ----'); - player.sendMessage(JSON.stringify(data)); - console.warn(JSON.stringify(protectedChests)); + player.sendMessage('§a---- Protected Chests Data By DataBase ----'); + player.sendMessage(JSON.stringify(data,null,2)); + console.warn(JSON.stringify(data,null,2)); } // protectedChests をリセットする関数 diff --git a/devFolder/src/command/plugin/edit.ts b/devFolder/src/command/plugin/edit.ts index 526d1a0..d650dd8 100644 --- a/devFolder/src/command/plugin/edit.ts +++ b/devFolder/src/command/plugin/edit.ts @@ -1,27 +1,24 @@ import { c } from '../../Modules/Util'; import { registerCommand, verifier, prefix, runCommand } from '../../Modules/Handler'; import { Player, world, system, BlockTypes, EntityInventoryComponent } from '@minecraft/server'; -import { translate } from '../langs/list/LanguageManager'; // 翻訳機能を追加 +import { translate } from '../langs/list/LanguageManager'; + -// プレイヤーごとの選択範囲と選択状態を格納する変数 const playerData: { [playerName: string]: { pos1: any, pos2: any, selecting: boolean, commandArgs: string[] } } = {}; -// プレイヤーごとのツール設定を格納する変数 + const playerDataTool: { [playerName: string]: { tool: string, blockId: string, outlineRadius?: number, smoothRadius?: number, filledCircleRadius?: number } } = {}; // ブロック破壊イベントリスナー world.beforeEvents.playerBreakBlock.subscribe(event => { const player = event.player; - // プレイヤーが範囲選択中かどうかを確認 if (playerData[player.name]?.selecting) { // プレイヤーが持っているアイテム const inventoryComponent = player.getComponent('minecraft:inventory') as EntityInventoryComponent; const heldItem = inventoryComponent && inventoryComponent.container ? inventoryComponent.container.getItem(player.selectedSlotIndex) : null; - // プレイヤーがツールを使用中かどうかを確認 if (playerDataTool[player.name]) { - // ツールを使用中の場合: 木のクワを持っているか確認 if (heldItem && heldItem.typeId === 'minecraft:wooden_hoe') { if (playerDataTool[player.name].tool === 'outline' || playerDataTool[player.name].tool === 'filledCircle' || playerDataTool[player.name].tool === 'smooth') { handleBlockBreakForSingleSelection(player, event.block.location); @@ -31,9 +28,8 @@ world.beforeEvents.playerBreakBlock.subscribe(event => { event.cancel = true; } } else { - // ツールを使用していない場合: アイテムチェックなしで handleBlockBreakForSelection を実行 handleBlockBreakForSelection(player, event.block.location); - event.cancel = true; // 必要に応じて追加 + event.cancel = true; } } }); @@ -42,17 +38,16 @@ world.beforeEvents.playerBreakBlock.subscribe(event => { function handleBlockBreakForSelection(player: Player, blockLocation: any): void { const selection = playerData[player.name]; - // 1点目と2点目を設定 if (!selection.pos1) { selection.pos1 = blockLocation; - player.sendMessage(translate(player, "command.FirstPointSet")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.FirstPointSet")); } else if (!selection.pos2) { selection.pos2 = blockLocation; - player.sendMessage(translate(player, "command.SecondPointSet")); // 翻訳キーを使用 - player.sendMessage(translate(player, "command.SelectionCompleted")); // 翻訳キーを使用 - selection.selecting = false; // 範囲選択終了 + player.sendMessage(translate(player, "command.SecondPointSet")); + player.sendMessage(translate(player, "command.SelectionCompleted")); + selection.selecting = false; - // 範囲選択完了後に、コマンドで指定された処理を実行 + executeCommandAfterSelection(player); } } @@ -63,7 +58,7 @@ function handleBlockBreakForSingleSelection(player: Player, blockLocation: any): // 点を設定 selection.pos1 = blockLocation; - player.sendMessage(translate(player, "command.PointSet")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.PointSet")); selection.selecting = false; // 範囲選択終了 // 範囲選択完了後に、コマンドで指定された処理を実行 @@ -248,7 +243,6 @@ function createWallsWithUndo(pos1: any, pos2: any, blockId: string, player: Play const minZ = Math.min(pos1.z, pos2.z); const maxZ = Math.max(pos1.z, pos2.z); - // createWalls のループ処理の前に originalBlocks に変更前のブロックデータを保存 for (let x = minX; x <= maxX; x++) { for (let y = minY + 1; y <= maxY; y++) { originalBlocks.push(getBlockData({ x, y, z: minZ })); @@ -272,7 +266,6 @@ function createWallsWithUndo(pos1: any, pos2: any, blockId: string, player: Play } } - // undoStack にアクションを追加 if (!undoStack[player.name]) { undoStack[player.name] = []; } @@ -468,44 +461,44 @@ function executeCommandAfterSelection(player: Player) { if (tool === 'walls') { if (isValidBlockId(blockId)) { createWallsWithUndo(data.pos1, data.pos2, blockId, player); - player.sendMessage(translate(player, "command.WallsCreated")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.WallsCreated")); system.runTimeout(() => { runCommand(player.name, 'edit', ['-start']); }, 20); } else { - player.sendMessage(translate(player, "command.InvalidBlockId")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.InvalidBlockId")); } } else if (tool === 'outline') { if (isValidBlockId(blockId)) { const radius = toolData.outlineRadius || 5; createOutlineWithUndo(data.pos1, radius, blockId, player); - player.sendMessage(translate(player, "command.OutlineCreated")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.OutlineCreated")); system.runTimeout(() => { runCommand(player.name, 'edit', ['-start']); }, 20); } else { - player.sendMessage(translate(player, "command.InvalidBlockId")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.InvalidBlockId")); } } else if (tool === 'filledCircle') { if (isValidBlockId(blockId)) { // filledCircleRadius が設定されている場合はそれを使用、そうでなければデフォルト値 5 を使用 const radius = toolData.filledCircleRadius || 5; // playerDataTool から半径を取得 createFilledCircleWithUndo(data.pos1, radius, blockId, player); - player.sendMessage(translate(player, "FilledCircleCreated")); // 翻訳キーを使用 + player.sendMessage(translate(player, "FilledCircleCreated")); runCommand(player.name, 'edit', ['-start']); } else { - player.sendMessage(translate(player, "command.InvalidBlockId")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.InvalidBlockId")); } } else if (tool === 'smooth') { if (isValidBlockId(blockId)) { const radius = toolData.smoothRadius || 5; smoothAreaWithUndo(data.pos1, radius, blockId, player); - player.sendMessage(translate(player, "smoothCreate")); // 翻訳キーを使用 + player.sendMessage(translate(player, "smoothCreate")); system.runTimeout(() => { runCommand(player.name, 'edit', ['-start']); }, 20); } else { - player.sendMessage(translate(player, "command.InvalidBlockId")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.InvalidBlockId")); } } @@ -518,9 +511,9 @@ function executeCommandAfterSelection(player: Player) { if (isValidBlockId(blockId)) { fillBlocksWithUndo(data.pos1, data.pos2, blockId, player); - player.sendMessage(translate(player, "RangeSet", { blockId: blockId })); // 翻訳キーを使用、データを渡す + player.sendMessage(translate(player, "RangeSet", { blockId: blockId })); } else { - player.sendMessage(translate(player, "command.InvalidBlockId")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.InvalidBlockId")); } // -set を使用した場合はプレイヤーデータを削除 @@ -557,7 +550,7 @@ function executeCommandAfterSelection(player: Player) { originalBlocks, }); - player.sendMessage(translate(player, "RangeCleared")); // 翻訳キーを使用 + player.sendMessage(translate(player, "RangeCleared")); // -clear を使用した場合はプレイヤーデータを削除 delete playerData[player.name]; @@ -607,7 +600,7 @@ function executeCommandAfterSelection(player: Player) { } else { // 不正な引数の場合はエラーメッセージを表示 - player.sendMessage(translate(player, "InvalidCommandUsage", { prefix: `${prefix}` })); // 翻訳キーを使用、データを渡す + player.sendMessage(translate(player, "InvalidCommandUsage", { prefix: `${prefix}` })); } // プレイヤーデータ自体は削除しない (ツール使用時のみ削除) @@ -636,9 +629,9 @@ registerCommand({ const blockId = args[2]; if (isValidBlockId(blockId)) { playerDataTool[player.name] = { tool: 'walls', blockId }; - player.sendMessage(translate(player, "WallsToolSelected", { blockId: `${blockId}` })); // 翻訳キーを使用、データを渡す + player.sendMessage(translate(player, "WallsToolSelected", { blockId: `${blockId}` })); } else { - player.sendMessage(translate(player, "command.InvalidBlockId")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.InvalidBlockId")); } } else if (args[1] === '-outline' && args.length === 4 && !isNaN(parseInt(args[2]))) { // outline ツールで半径とブロックIDを指定 @@ -646,9 +639,9 @@ registerCommand({ const blockId = args[3]; if (isValidBlockId(blockId)) { playerDataTool[player.name] = { tool: 'outline', blockId, outlineRadius: radius }; // playerDataTool に半径を保存 - player.sendMessage(translate(player, "OutlineToolSelected", { radius: `${radius}`, blockId: `${blockId}` })); // 翻訳キーを使用、データを渡す + player.sendMessage(translate(player, "OutlineToolSelected", { radius: `${radius}`, blockId: `${blockId}` })); } else { - player.sendMessage(translate(player, "command.InvalidBlockId")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.InvalidBlockId")); } } else if (args[1] === '-filledCircle' && args.length === 4 && !isNaN(parseInt(args[2]))) { // filledCircle ツールで半径とブロックIDを指定 @@ -656,9 +649,9 @@ registerCommand({ const blockId = args[3]; if (isValidBlockId(blockId)) { playerDataTool[player.name] = { tool: 'filledCircle', blockId, filledCircleRadius: radius }; // playerDataTool に半径を保存 - player.sendMessage(translate(player, "FilledCircleToolSelected", { radius: `${radius}`, blockId: `${blockId}` })); // 翻訳キーを使用、データを渡す + player.sendMessage(translate(player, "FilledCircleToolSelected", { radius: `${radius}`, blockId: `${blockId}` })); } else { - player.sendMessage(translate(player, "command.InvalidBlockId")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.InvalidBlockId")); } } else if (args[1] === '-smooth' && args.length === 4 && !isNaN(parseInt(args[2]))) { // outline ツールで半径とブロックIDを指定 @@ -666,16 +659,16 @@ registerCommand({ const blockId = args[3]; if (isValidBlockId(blockId)) { playerDataTool[player.name] = { tool: 'smooth', blockId, smoothRadius: radius }; // playerDataTool に半径を保存 - player.sendMessage(translate(player, "OutlineToolSelected", { radius: `${radius}`, blockId: `${blockId}` })); // 翻訳キーを使用、データを渡す + player.sendMessage(translate(player, "OutlineToolSelected", { radius: `${radius}`, blockId: `${blockId}` })); } else { - player.sendMessage(translate(player, "command.InvalidBlockId")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.InvalidBlockId")); } } else if (args[1] === '-exit') { // ツールを終了 delete playerDataTool[player.name]; - player.sendMessage(translate(player, "ToolExited")); // 翻訳キーを使用 + player.sendMessage(translate(player, "ToolExited")); } else { - player.sendMessage(translate(player, "ToolOptions")); // 翻訳キーを使用 + player.sendMessage(translate(player, "ToolOptions")); } } else if (args[0] === '-set' && args.length === 2) { @@ -683,18 +676,18 @@ registerCommand({ // 範囲選択を開始 data.commandArgs = args; // コマンド引数を保存 data.selecting = true; - player.sendMessage(translate(player, "StartRangeSelection2")); // 翻訳キーを使用 + player.sendMessage(translate(player, "StartRangeSelection2")); } else if (args[0] === '-clear') { // -clear コマンド // 範囲選択を開始 data.commandArgs = args; // コマンド引数を保存 data.selecting = true; - player.sendMessage(translate(player, "StartRangeSelection2")); // 翻訳キーを使用 + player.sendMessage(translate(player, "StartRangeSelection2")); } else if (args[0] === '-start') { // !edit -start コマンドの処理を追加 data.selecting = true; - player.sendMessage(translate(player, "StartRangeSelection")); // 翻訳キーを使用 + player.sendMessage(translate(player, "StartRangeSelection")); } else if (args[0] === '-undo') { // -undo コマンドの処理 @@ -705,15 +698,15 @@ registerCommand({ lastAction.originalBlocks.forEach(blockData => { setBlockData(blockData); }); - player.sendMessage(translate(player, "command.Undone")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.Undone")); } } else { - player.sendMessage(translate(player, "command.NothingToUndo")); // 翻訳キーを使用 + player.sendMessage(translate(player, "command.NothingToUndo")); } } else { // 不正な引数の場合はエラーメッセージを表示 - player.sendMessage(translate(player, "InvalidCommandUsage", { prefix: `${prefix}` })); // 翻訳キーを使用、データを渡す + player.sendMessage(translate(player, "InvalidCommandUsage", { prefix: `${prefix}` })); } }, }); \ No newline at end of file diff --git a/devFolder/src/command/plugin/jpch.ts b/devFolder/src/command/plugin/jpch.ts index dcfd0d9..823e77e 100644 --- a/devFolder/src/command/plugin/jpch.ts +++ b/devFolder/src/command/plugin/jpch.ts @@ -143,7 +143,7 @@ const dictionaryData: DictionaryEntry[] = [ { kanji: '頑張る', hiragana: 'がんばる' }, { kanji: '手伝う', hiragana: 'てつだう' }, { kanji: '楽しむ', hiragana: 'たのしむ' }, - { kanji: '理解する', hiragana: 'りかいする' }, + { kanji: '理解', hiragana: 'りかい' }, { kanji: '説明する', hiragana: 'せつめいする' }, //Minecraft @@ -305,7 +305,50 @@ const dictionaryData: DictionaryEntry[] = [ { kanji: '囲む', hiragana: 'かこむ' }, { kanji: '囲ん', hiragana: 'かこん' }, { kanji: '囲んで', hiragana: 'かこんで' }, - { kanji: '化け物', hiragana: 'ばけもの' }, + { kanji: '無効', hiragana: 'むこう' }, + { kanji: '引数', hiragana: 'ひきすう' }, + { kanji: '感激', hiragana: 'かんげき' }, + { kanji: '復元', hiragana: 'ふくげん' }, + { kanji: '現代', hiragana: 'げんだい' }, + { kanji: 'アート', hiragana: 'あーと' }, + { kanji: 'こっち来て', hiragana: 'こっちきて' }, + { kanji: '興味', hiragana: 'きょうみ' }, + { kanji: '意味深', hiragana: 'いみしん' }, + { kanji: 'バグ', hiragana: 'ばぐ' }, + { kanji: '鯖', hiragana: 'さば' }, + { kanji: 'サーバー', hiragana: 'さーばー' }, + { kanji: '何故に', hiragana: 'なぜに' }, + { kanji: '良く分から', hiragana: 'よくわから' }, + { kanji: '冗談', hiragana: 'じょうだん' }, + { kanji: '暗殺', hiragana: 'あんさつ' }, + { kanji: '批判', hiragana: 'ひはん' }, + { kanji: '革命', hiragana: 'かくめい' }, + { kanji: '英語', hiragana: 'えいご' }, + { kanji: '我', hiragana: 'われ' }, + { kanji: '最新', hiragana: 'さいしん' }, + { kanji: '発展', hiragana: 'はってん' }, + { kanji: '発表', hiragana: 'はっぴょう' }, + { kanji: '次', hiragana: 'つぎ' }, + { kanji: '危険', hiragana: 'きけん' }, + { kanji: '原因', hiragana: 'げんいん' }, + { kanji: '電池', hiragana: 'でんち' }, + { kanji: '国', hiragana: 'くに' }, + { kanji: '利用', hiragana: 'りよう' }, + { kanji: 'まな板', hiragana: 'まないた' }, + { kanji: '新機能', hiragana: 'しんきのう' }, + { kanji: 'カスタマイズ', hiragana: 'かすたまいず' }, + { kanji: 'アプリ', hiragana: 'あぷり' }, + { kanji: 'アップ', hiragana: 'あっぷ' }, + { kanji: '自由度', hiragana: 'じゆうど' }, + { kanji: 'テスト', hiragana: 'てすと' }, + { kanji: 'ロマン', hiragana: 'ろまん' }, + { kanji: 'アニメ', hiragana: 'あにめ' }, + { kanji: 'コーヒー', hiragana: 'こーひー' }, + { kanji: 'ディスプレイ', hiragana: 'でぃすぷれい' }, + { kanji: 'コメント', hiragana: 'こめんと' }, + { kanji: 'モザイク', hiragana: 'もざいく' }, + { kanji: '宿泊', hiragana: 'しゅくはく' }, + ]; const dictionary: { [key: string]: string[] } = {}; diff --git a/devFolder/src/command/plugin/packet.ts b/devFolder/src/command/plugin/packet.ts index debcff1..0e446b8 100644 --- a/devFolder/src/command/plugin/packet.ts +++ b/devFolder/src/command/plugin/packet.ts @@ -114,15 +114,21 @@ function initializePlayerData(player: Player): void { lastTick: 0, }, }; - console.warn(`プレイヤー ${player.name} (ID: ${player.id}) を監視しています`); + if (c().module.debugMode.enabled === true) { + console.warn(`プレイヤー ${player.name} (ID: ${player.id}) を監視しています`); + + } + } -// プレイヤー死亡時のデータ削除 world.afterEvents.playerSpawn.subscribe((event) => { const player = event.player as Player; if (player && player.id) { delete playerData[player.id]; - console.warn(`プレイヤー ${player.name} (ID: ${player.id}) の監視を停止しました`); + if (c().module.debugMode.enabled === true) { + console.warn(`プレイヤー ${player.name} (ID: ${player.id}) の監視を停止しました`); + + } } }); @@ -592,7 +598,7 @@ function getExcludedEffects(): string[] { function checkPlayerSpeed(player: Player): { cheatType: string } | null { const speed = calculatePlayerSpeed(player); const data = playerData[player.id]; - const maxAllowedSpeed = 0.7; + const maxAllowedSpeed = 1.1; @@ -776,7 +782,6 @@ function runTick(): void { // 位置履歴を追加 addPositionHistory(player); - //ping関連 @@ -957,6 +962,7 @@ registerCommand({ case 'on': RunAntiCheat(); AddNewPlayers(); + player.sendMessage('チート対策を有効にしました'); break; case 'off': monitoring = false; diff --git a/devFolder/src/command/utility/import.ts b/devFolder/src/command/utility/import.ts index 08df50c..6d389c7 100644 --- a/devFolder/src/command/utility/import.ts +++ b/devFolder/src/command/utility/import.ts @@ -3,3 +3,6 @@ import './help'; import './list'; import './tpa'; import './join'; +import './report'; +import './staff'; + diff --git a/devFolder/src/command/utility/report.ts b/devFolder/src/command/utility/report.ts new file mode 100644 index 0000000..57d4cb3 --- /dev/null +++ b/devFolder/src/command/utility/report.ts @@ -0,0 +1,152 @@ +import { isPlayer, registerCommand, verifier } from '../../Modules/Handler'; +import { Player, world } from '@minecraft/server'; +import { c } from '../../Modules/Util'; +import { ActionFormData } from '@minecraft/server-ui'; +import { translate } from '../langs/list/LanguageManager'; + + +interface Report { + reporter: string; + reportedPlayer: string; + reason: string; + timestamp: number; +} + +const reports: Report[] = []; + +function submitReport(player: Player, reportedPlayerName: string, reason: string) { + if (reportedPlayerName !== 'testPlayer') { + const targetPlayer = isPlayer(reportedPlayerName); + if (!targetPlayer) { + player.sendMessage(translate(player,'command.reportNotPlayer')) + return; + } + } + + reports.push({ + reporter: player.name, + reportedPlayer: reportedPlayerName, + reason: reason, + timestamp: Date.now(), + }); + + player.sendMessage(translate(player,'command.reportSubmit')) + + // staffに通知 + notifyStaff(player.name, reportedPlayerName); +} + +function notifyStaff(reporter: string, reportedPlayer: string) { + world.getPlayers() + .filter((p) => p.hasTag('op') || p.hasTag('staff')) + .forEach((staff) => { + staff.sendMessage(translate(staff,"command.newReport",{reporter:`${reporter}`,reportedPlayer:`${reportedPlayer}`})) + }); +} + +export function checkReports(player: Player) { + if (reports.length === 0) { + player.sendMessage(translate(player, "command.NotReport")) + return; + } + + // リクエスターごとのレポート数を集計し、最新のタイムスタンプを取得 + const reporterInfo: { [reporter: string]: { count: number, latestTimestamp: number } } = {}; + reports.forEach((report) => { + if (!reporterInfo[report.reporter]) { + reporterInfo[report.reporter] = { count: 0, latestTimestamp: 0 }; + } + reporterInfo[report.reporter].count++; + reporterInfo[report.reporter].latestTimestamp = Math.max( + reporterInfo[report.reporter].latestTimestamp, + report.timestamp + ); + }); + + const mainForm = new ActionFormData() + .title('§l§0Reports'); + + // 最新のレポートを上に、古いレポートを下に表示 + const sortedReports = [...reports].sort((a, b) => b.timestamp - a.timestamp); + + // リクエスターごとにボタンを表示 + for (const reporter in reporterInfo) { + const { count, latestTimestamp } = reporterInfo[reporter]; + const latestTime = new Date(latestTimestamp).toLocaleString(); + const buttonText = count > 1 ? `${reporter} x${count} (${latestTime})` : `${reporter} (${latestTime})`; + mainForm.button(buttonText); + } + //@ts-ignore + + mainForm.show(player).then((response) => { + if (response.selection === undefined) return; // キャンセルされた場合 + + const selectedReporter = Object.keys(reporterInfo)[response.selection]; + // 選択されたリクエスターのレポートを表示するフォーム + const reporterReports = sortedReports.filter((report) => report.reporter === selectedReporter); + const reporterForm = new ActionFormData() + .title(translate(player,"command.ui.reportTitle",{selectedReporter:`${selectedReporter}`})); + + reporterReports.forEach((report) => { + const reportTime = new Date(report.timestamp).toLocaleString(); + reporterForm.button(`${report.reportedPlayer} (${reportTime})`); + }); + + //@ts-ignore + + reporterForm.show(player).then((response) => { + if (response.selection === undefined) return; // キャンセルされた場合 + + const selectedReport = reporterReports[response.selection]; + + // 選択されたレポートの詳細を表示するフォーム + const detailsForm = new ActionFormData() + .title(translate(player,"command.ui.reportDetails")) + .body(translate(player, "command.ui.reportBody", + { + reporter:`${selectedReport.reporter}`, + reportedPlayer:`${selectedReport.reportedPlayer}`, + reason:`${selectedReport.reason}`, + timestamp: `${new Date(selectedReport.timestamp).toLocaleString()}` + })) + .button(translate(player,"back")); + + + + + + detailsForm + //@ts-ignore + .show(player) + .then((response) => { + if (response.canceled) { + } else { + if (response.selection === 0) { + checkReports(player); + + } + + } + + }) + }); + }); +} + +registerCommand({ + name: 'report', + description: 'report_command_description', + parent: false, + maxArgs: 100, + minArgs: 3, + require: (player: Player) => verifier(player, c().commands['report']), + executor: (player: Player, args: string[]) => { + if (args[1] !== '-r') { + player.sendMessage('Invalid command format. Use report -r .'); + return; + } + const reportedPlayerName = args[0]; + const reason = args.slice(2).join(' '); + submitReport(player, reportedPlayerName, reason); + }, +}); \ No newline at end of file diff --git a/devFolder/src/command/utility/staff.ts b/devFolder/src/command/utility/staff.ts new file mode 100644 index 0000000..1a32ca0 --- /dev/null +++ b/devFolder/src/command/utility/staff.ts @@ -0,0 +1,41 @@ +import { c } from '../../Modules/Util'; +import { registerCommand, verifier } from '../../Modules/Handler'; +import { Player, system, world } from '@minecraft/server'; +import { checkReports } from './report'; +import { translate } from '../langs/list/LanguageManager'; + +function announce(player: Player, message: string) { + world.sendMessage(`§l§f[§bServer§f]: ${message}`); + player.sendMessage(`World Send Done..`); +} + +registerCommand({ + name: 'staff', + description: 'staff_command_description', + parent: false, + maxArgs: 100, + minArgs: 1, + require: (player: Player) => verifier(player, c().commands['staff']), + executor: (player: Player, args: string[]) => { + const subCommand = args[0]; + const option = args[1]; + + + if (subCommand === 'world') { + if (option === '-send') { + const message = args[2]; + announce(player, message); + } + } else if (subCommand === 'report') { + if (option === '-check') { + player.sendMessage(translate(player,"closeChat")) + system.runTimeout(()=>{ + checkReports(player); + },60) + } + + } else { + player.sendMessage(translate(player,"commnad.staff.UsageCom")) + } + }, +}); \ No newline at end of file diff --git a/devFolder/src/command/utility/tpa.ts b/devFolder/src/command/utility/tpa.ts index a7949cc..0f752f7 100644 --- a/devFolder/src/command/utility/tpa.ts +++ b/devFolder/src/command/utility/tpa.ts @@ -96,10 +96,7 @@ export function getTpaRequests(playerName: string): string[] { return requests; } -export function getAllPlayerNames(currentPlayer: Player): string[] { - const players = world.getPlayers(); - return players.filter((p) => p.name !== currentPlayer.name).map((p) => p.nameTag); -} + registerCommand({ name: 'tpa', diff --git a/devFolder/src/node_modules/.package-lock.json b/devFolder/src/node_modules/.package-lock.json index 0d8d050..7f08247 100644 --- a/devFolder/src/node_modules/.package-lock.json +++ b/devFolder/src/node_modules/.package-lock.json @@ -9,27 +9,26 @@ "integrity": "sha512-JdmEq4P3Z/FtoBzhLijFgMSVFnFRrUoLwY8DHHrgtFo0mfLTOLTB1RErYjLMsA6b7BGVNxkX/pfFRiH7QZ0XwQ==" }, "node_modules/@minecraft/server": { - "version": "1.14.0-rc.1.21.30-preview.23", - "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.14.0-rc.1.21.30-preview.23.tgz", - "integrity": "sha512-JyNBkouvzfWYJ6Ta3f81HNZA6W+RQniR+RqE+IlJlL1a2BpDBjV0TEtw7IX/cMADjhmqX+BbVRZVs8FGgofdGg==", + "version": "1.15.0-beta.1.21.30-stable", + "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.15.0-beta.1.21.30-stable.tgz", + "integrity": "sha512-t9NhnP2W+7agojr5IWXZnC4uy9SGfcIrSFEqvNxj/NaT29/DXtH+1nJq7wLa5kGwyBlG/lDz6/CpiWn4PBv+Kg==", "dependencies": { "@minecraft/common": "^1.1.0" } }, "node_modules/@minecraft/server-ui": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@minecraft/server-ui/-/server-ui-1.2.0.tgz", - "integrity": "sha512-5TNs9mp7jW1nbcybobL0Kmnc4ioOuadp9ys7hHna1lS0rYT0ssC7Ba6bZc+xb7QhIaVsxtt8ChZwOP+paT44ww==", - "license": "MIT", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@minecraft/server-ui/-/server-ui-1.3.0.tgz", + "integrity": "sha512-Vgo7s+gxjHaNmm8lYTW+HL1JguyZggsn1UB86++eqV1KoRlLnqJH1wBJU2OIb1kQ6HXH0pnL206pxmRy7lmmjg==", "dependencies": { "@minecraft/common": "^1.0.0", - "@minecraft/server": "^1.2.0" + "@minecraft/server": "^1.3.0" } }, "node_modules/@minecraft/server-ui/node_modules/@minecraft/server": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.13.0.tgz", - "integrity": "sha512-LYmYRLjZZ5b+AO2GArQorBBo6Ad18ZmdoK2jx7mmo7Jo/gFXLiSq2xEJuLb5WBXTaBg4rBiersQiAbTj3QjNHQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.14.0.tgz", + "integrity": "sha512-4oOdkbjD7UBwRUtmPcYvMmyxtDGyUipM6X4h1LjjwrZ07078q8su8F4Almj/R2Qn+e573mLJzQyGUhgtu071ZQ==", "dependencies": { "@minecraft/common": "^1.1.0" } @@ -173,6 +172,2339 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" }, + "node_modules/npm": { + "version": "10.8.3", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.8.3.tgz", + "integrity": "sha512-0IQlyAYvVtQ7uOhDFYZCGK8kkut2nh8cpAdA9E6FvRSJaTgtZRZgNjlC5ZCct//L73ygrpY93CxXpRJDtNqPVg==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/promise-spawn", + "@npmcli/redact", + "@npmcli/run-script", + "@sigstore/tuf", + "abbrev", + "archy", + "cacache", + "chalk", + "ci-info", + "cli-columns", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "ms", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "semver", + "spdx-expression-parse", + "ssri", + "supports-color", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^7.5.4", + "@npmcli/config": "^8.3.4", + "@npmcli/fs": "^3.1.1", + "@npmcli/map-workspaces": "^3.0.6", + "@npmcli/package-json": "^5.2.0", + "@npmcli/promise-spawn": "^7.0.2", + "@npmcli/redact": "^2.0.1", + "@npmcli/run-script": "^8.1.0", + "@sigstore/tuf": "^2.3.4", + "abbrev": "^2.0.0", + "archy": "~1.0.0", + "cacache": "^18.0.4", + "chalk": "^5.3.0", + "ci-info": "^4.0.0", + "cli-columns": "^4.0.0", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.3", + "glob": "^10.4.5", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^7.0.2", + "ini": "^4.1.3", + "init-package-json": "^6.0.3", + "is-cidr": "^5.1.0", + "json-parse-even-better-errors": "^3.0.2", + "libnpmaccess": "^8.0.6", + "libnpmdiff": "^6.1.4", + "libnpmexec": "^8.1.4", + "libnpmfund": "^5.0.12", + "libnpmhook": "^10.0.5", + "libnpmorg": "^6.0.6", + "libnpmpack": "^7.0.4", + "libnpmpublish": "^9.0.9", + "libnpmsearch": "^7.0.6", + "libnpmteam": "^6.0.5", + "libnpmversion": "^6.0.3", + "make-fetch-happen": "^13.0.1", + "minimatch": "^9.0.5", + "minipass": "^7.1.1", + "minipass-pipeline": "^1.2.4", + "ms": "^2.1.2", + "node-gyp": "^10.2.0", + "nopt": "^7.2.1", + "normalize-package-data": "^6.0.2", + "npm-audit-report": "^5.0.0", + "npm-install-checks": "^6.3.0", + "npm-package-arg": "^11.0.3", + "npm-pick-manifest": "^9.1.0", + "npm-profile": "^10.0.0", + "npm-registry-fetch": "^17.1.0", + "npm-user-validate": "^2.0.1", + "p-map": "^4.0.0", + "pacote": "^18.0.6", + "parse-conflict-json": "^3.0.1", + "proc-log": "^4.2.0", + "qrcode-terminal": "^0.12.0", + "read": "^3.0.1", + "semver": "^7.6.3", + "spdx-expression-parse": "^4.0.0", + "ssri": "^10.0.6", + "supports-color": "^9.4.0", + "tar": "^6.2.1", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^3.0.0", + "validate-npm-package-name": "^5.0.1", + "which": "^4.0.0", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "2.2.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "7.5.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^3.1.1", + "@npmcli/installed-package-contents": "^2.1.0", + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/metavuln-calculator": "^7.1.1", + "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.1.0", + "@npmcli/query": "^3.1.0", + "@npmcli/redact": "^2.0.0", + "@npmcli/run-script": "^8.1.0", + "bin-links": "^4.0.4", + "cacache": "^18.0.3", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^7.0.2", + "json-parse-even-better-errors": "^3.0.2", + "json-stringify-nice": "^1.1.4", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^7.2.1", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.2", + "npm-pick-manifest": "^9.0.1", + "npm-registry-fetch": "^17.0.1", + "pacote": "^18.0.6", + "parse-conflict-json": "^3.0.0", + "proc-log": "^4.2.0", + "proggy": "^2.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^10.0.6", + "treeverse": "^3.0.0", + "walk-up-path": "^3.0.1" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "8.3.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/package-json": "^5.1.1", + "ci-info": "^4.0.0", + "ini": "^4.1.2", + "nopt": "^7.2.1", + "proc-log": "^4.2.0", + "semver": "^7.3.5", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "5.0.8", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "2.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "3.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0", + "read-package-json-fast": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "7.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^18.0.0", + "json-parse-even-better-errors": "^3.0.0", + "pacote": "^18.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "5.2.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "7.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "3.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "8.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/@sigstore/bundle": { + "version": "2.3.2", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/core": { + "version": "1.1.0", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign": { + "version": "2.3.2", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "2.3.4", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "1.2.1", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/models": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/aggregate-error": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "6.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "4.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "read-cmd-shim": "^4.0.0", + "write-file-atomic": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.3.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "18.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "5.3.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ci-info": { + "version": "4.0.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "4.1.1", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/clean-stack": { + "version": "2.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "6.0.3", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.3.6", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/diff": { + "version": "5.2.0", + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.16", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/npm/node_modules/foreground-child": { + "version": "3.3.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "3.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "10.4.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.11", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "7.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "7.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "7.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "6.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/indent-string": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ini": { + "version": "4.1.3", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "6.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/package-json": "^5.0.0", + "npm-package-arg": "^11.0.0", + "promzard": "^1.0.0", + "read": "^3.0.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "5.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "5.1.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^4.1.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-lambda": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jackspeak": { + "version": "3.4.3", + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/npm/node_modules/jsbn": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "6.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.5.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "8.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "6.1.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4", + "@npmcli/installed-package-contents": "^2.1.0", + "binary-extensions": "^2.3.0", + "diff": "^5.1.0", + "minimatch": "^9.0.4", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6", + "tar": "^6.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "8.1.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4", + "@npmcli/run-script": "^8.1.0", + "ci-info": "^4.0.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6", + "proc-log": "^4.2.0", + "read": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "5.0.12", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "10.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "6.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "7.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4", + "@npmcli/run-script": "^8.1.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "9.0.9", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ci-info": "^4.0.0", + "normalize-package-data": "^6.0.1", + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.2.0", + "semver": "^7.3.7", + "sigstore": "^2.2.0", + "ssri": "^10.0.6" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "7.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "6.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "6.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.7", + "@npmcli/run-script": "^8.1.0", + "json-parse-even-better-errors": "^3.0.2", + "proc-log": "^4.2.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "10.4.3", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "13.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "9.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "7.1.2", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "3.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "1.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.3", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "10.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "7.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "6.0.2", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "6.3.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "11.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "9.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "10.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "17.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "2.0.1", + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/package-json-from-dist": { + "version": "1.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/npm/node_modules/pacote": { + "version": "18.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^8.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/path-scurry": { + "version": "1.11.1", + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "4.2.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/proggy": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "^3.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "3.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.6.3", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/sigstore": { + "version": "2.3.1", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.8.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "8.0.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.2.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.5.0", + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.18", + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/ssri": { + "version": "10.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "9.4.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js": { + "version": "2.2.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "2.0.1", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "5.0.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/walk-up-path": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/which": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "5.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC" + }, "node_modules/path": { "version": "0.12.7", "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", diff --git a/devFolder/src/node_modules/@minecraft/server/index.d.ts b/devFolder/src/node_modules/@minecraft/server/index.d.ts index 2f304a7..e65d82c 100644 --- a/devFolder/src/node_modules/@minecraft/server/index.d.ts +++ b/devFolder/src/node_modules/@minecraft/server/index.d.ts @@ -7,7 +7,7 @@ Copyright (c) Microsoft Corporation. ***************************************************************************** */ /** - * @preview + * @beta * @packageDocumentation * Contains many types related to manipulating a Minecraft * world, including entities, blocks, dimensions, and more. @@ -16,7 +16,7 @@ * ```json * { * "module_name": "@minecraft/server", - * "version": "1.14.0" + * "version": "1.15.0-beta" * } * ``` * @@ -34,6 +34,14 @@ export enum BlockComponentTypes { * */ Inventory = 'minecraft:inventory', + /** + * @beta + * @remarks + * Represents a fluid container block that currently contains + * lava. + * + */ + LavaContainer = 'minecraft:lavaContainer', /** * @remarks * When present, this block has piston-like behavior. Contains @@ -42,7 +50,14 @@ export enum BlockComponentTypes { */ Piston = 'minecraft:piston', /** - * @rc + * @beta + * @remarks + * Represents a fluid container block that currently contains a + * potion. + * + */ + PotionContainer = 'minecraft:potionContainer', + /** * @remarks * Represents a block that can play a record. * @@ -54,6 +69,22 @@ export enum BlockComponentTypes { * */ Sign = 'minecraft:sign', + /** + * @beta + * @remarks + * Represents a fluid container block that currently contains + * snow. + * + */ + SnowContainer = 'minecraft:snowContainer', + /** + * @beta + * @remarks + * Represents a fluid container block that currently contains + * water. + * + */ + WaterContainer = 'minecraft:waterContainer', } /** @@ -86,11 +117,118 @@ export enum BlockPistonState { Retracting = 'Retracting', } +/** + * @beta + * Description of the resulting intersection test on two + * BlockVolume objects + */ +export enum BlockVolumeIntersection { + /** + * @remarks + * Volume B has no intersection points with Volume A + * + */ + Disjoint = 0, + /** + * @remarks + * Volume B resides completely inside Volume A + * + */ + Contains = 1, + /** + * @remarks + * Volume B partially intersects Volume A + * + */ + Intersects = 2, +} + +/** + * @beta + * The Action enum determines how the CompoundBlockVolume + * considers the associated CompoundBlockVolumeItem when + * performing inside/outside calculations. + */ +export enum CompoundBlockVolumeAction { + /** + * @remarks + * The associated BlockVolume is considered a positive space, + * and any intersection tests are considered hits + * + */ + Add = 0, + /** + * @remarks + * The associated BlockVolume is considered a negative or void + * space, and any intersection tests are considered misses. + * Using the Subtract action, it is possible to `punch holes` + * in block volumes so that any intersection tests may pass + * through such spaces + * + */ + Subtract = 1, +} + +/** + * @beta + * An enum describing the relativity of the + * CompoundBlockVolumeItem, relative to the parent + * CompoundVolume. + */ +export enum CompoundBlockVolumePositionRelativity { + /** + * @remarks + * The locations within the associated BlockVolume are relative + * to the CompoundBlockVolume to which they were added + * + */ + Relative = 0, + /** + * @remarks + * The locations within the associated BlockVolume are in + * absolute world space + * + */ + Absolute = 1, +} + export enum CustomComponentNameErrorReason { NoNamespace = 1, DisallowedNamespace = 2, } +/** + * @beta + * An enumeration for the various difficulty levels of + * Minecraft. + */ +export enum Difficulty { + /** + * @remarks + * Peaceful difficulty level. + * + */ + Peaceful = 0, + /** + * @remarks + * Easy difficulty level. + * + */ + Easy = 1, + /** + * @remarks + * Normal difficulty level. + * + */ + Normal = 2, + /** + * @remarks + * Hard difficulty level. + * + */ + Hard = 3, +} + /** * A general purpose relative direction enumeration. */ @@ -336,6 +474,14 @@ export enum EntityComponentTypes { * */ Ageable = 'minecraft:ageable', + /** + * @beta + * @remarks + * Defines what blocks this entity can breathe in and gives + * them the ability to suffocate. + * + */ + Breathable = 'minecraft:breathable', /** * @remarks * When added, this component signifies that the entity can @@ -374,9 +520,6 @@ export enum EntityComponentTypes { * */ Color2 = 'minecraft:color2', - /** - * @rc - */ CursorInventory = 'minecraft:cursor_inventory', /** * @remarks @@ -666,6 +809,14 @@ export enum EntityComponentTypes { * */ NavigationWalk = 'minecraft:navigation.walk', + /** + * @beta + * @remarks + * Adds NPC capabilities to an entity such as custom skin, + * name, and dialogue interactions. + * + */ + Npc = 'minecraft:npc', /** * @remarks * When present on an entity, this entity is on fire. @@ -1044,6 +1195,14 @@ export enum EntityInitializationCause { * and mainhand slots. */ export enum EquipmentSlot { + /** + * @beta + * @remarks + * The body slot. This slot is used to hold armor for + * non-humanoid mobs. + * + */ + Body = 'Body', /** * @remarks * The chest slot. This slot is used to hold items such as @@ -1508,6 +1667,10 @@ export enum ItemComponentTypes { * */ Food = 'minecraft:food', + /** + * @beta + */ + Potion = 'minecraft:potion', } /** @@ -1959,6 +2122,29 @@ export enum TimeOfDay { Sunrise = 23000, } +/** + * @beta + * An enumeration with the reason that a watchdog is deciding + * to terminate execution of a behavior packs' script. + */ +export enum WatchdogTerminateReason { + /** + * @remarks + * Script runtime for a behavior pack is terminated due to + * non-responsiveness from script (a hang or infinite loop). + * + */ + Hang = 'Hang', + /** + * @remarks + * Script runtime for a behavior pack is terminated due to a + * stack overflow (a long, and potentially infinite) chain of + * function calls. + * + */ + StackOverflow = 'StackOverflow', +} + /** * Used to specify the type of weather condition within the * world. @@ -1984,6 +2170,223 @@ export enum WeatherType { Thunder = 'Thunder', } +/** + * @beta + */ +export type BlockComponentTypeMap = { + inventory: BlockInventoryComponent; + lavaContainer: BlockLavaContainerComponent; + 'minecraft:inventory': BlockInventoryComponent; + 'minecraft:lavaContainer': BlockLavaContainerComponent; + 'minecraft:piston': BlockPistonComponent; + 'minecraft:potionContainer': BlockPotionContainerComponent; + 'minecraft:record_player': BlockRecordPlayerComponent; + 'minecraft:sign': BlockSignComponent; + 'minecraft:snowContainer': BlockSnowContainerComponent; + 'minecraft:waterContainer': BlockWaterContainerComponent; + piston: BlockPistonComponent; + potionContainer: BlockPotionContainerComponent; + record_player: BlockRecordPlayerComponent; + sign: BlockSignComponent; + snowContainer: BlockSnowContainerComponent; + waterContainer: BlockWaterContainerComponent; +}; + +/** + * @beta + */ +export type EntityComponentTypeMap = { + addrider: EntityAddRiderComponent; + ageable: EntityAgeableComponent; + breathable: EntityBreathableComponent; + can_climb: EntityCanClimbComponent; + can_fly: EntityCanFlyComponent; + can_power_jump: EntityCanPowerJumpComponent; + color: EntityColorComponent; + color2: EntityColor2Component; + cursor_inventory: PlayerCursorInventoryComponent; + equippable: EntityEquippableComponent; + fire_immune: EntityFireImmuneComponent; + floats_in_liquid: EntityFloatsInLiquidComponent; + flying_speed: EntityFlyingSpeedComponent; + friction_modifier: EntityFrictionModifierComponent; + ground_offset: EntityGroundOffsetComponent; + healable: EntityHealableComponent; + health: EntityHealthComponent; + inventory: EntityInventoryComponent; + is_baby: EntityIsBabyComponent; + is_charged: EntityIsChargedComponent; + is_chested: EntityIsChestedComponent; + is_dyeable: EntityIsDyeableComponent; + is_hidden_when_invisible: EntityIsHiddenWhenInvisibleComponent; + is_ignited: EntityIsIgnitedComponent; + is_illager_captain: EntityIsIllagerCaptainComponent; + is_saddled: EntityIsSaddledComponent; + is_shaking: EntityIsShakingComponent; + is_sheared: EntityIsShearedComponent; + is_stackable: EntityIsStackableComponent; + is_stunned: EntityIsStunnedComponent; + is_tamed: EntityIsTamedComponent; + item: EntityItemComponent; + lava_movement: EntityLavaMovementComponent; + leashable: EntityLeashableComponent; + mark_variant: EntityMarkVariantComponent; + 'minecraft:addrider': EntityAddRiderComponent; + 'minecraft:ageable': EntityAgeableComponent; + 'minecraft:breathable': EntityBreathableComponent; + 'minecraft:can_climb': EntityCanClimbComponent; + 'minecraft:can_fly': EntityCanFlyComponent; + 'minecraft:can_power_jump': EntityCanPowerJumpComponent; + 'minecraft:color': EntityColorComponent; + 'minecraft:color2': EntityColor2Component; + 'minecraft:cursor_inventory': PlayerCursorInventoryComponent; + 'minecraft:equippable': EntityEquippableComponent; + 'minecraft:fire_immune': EntityFireImmuneComponent; + 'minecraft:floats_in_liquid': EntityFloatsInLiquidComponent; + 'minecraft:flying_speed': EntityFlyingSpeedComponent; + 'minecraft:friction_modifier': EntityFrictionModifierComponent; + 'minecraft:ground_offset': EntityGroundOffsetComponent; + 'minecraft:healable': EntityHealableComponent; + 'minecraft:health': EntityHealthComponent; + 'minecraft:inventory': EntityInventoryComponent; + 'minecraft:is_baby': EntityIsBabyComponent; + 'minecraft:is_charged': EntityIsChargedComponent; + 'minecraft:is_chested': EntityIsChestedComponent; + 'minecraft:is_dyeable': EntityIsDyeableComponent; + 'minecraft:is_hidden_when_invisible': EntityIsHiddenWhenInvisibleComponent; + 'minecraft:is_ignited': EntityIsIgnitedComponent; + 'minecraft:is_illager_captain': EntityIsIllagerCaptainComponent; + 'minecraft:is_saddled': EntityIsSaddledComponent; + 'minecraft:is_shaking': EntityIsShakingComponent; + 'minecraft:is_sheared': EntityIsShearedComponent; + 'minecraft:is_stackable': EntityIsStackableComponent; + 'minecraft:is_stunned': EntityIsStunnedComponent; + 'minecraft:is_tamed': EntityIsTamedComponent; + 'minecraft:item': EntityItemComponent; + 'minecraft:lava_movement': EntityLavaMovementComponent; + 'minecraft:leashable': EntityLeashableComponent; + 'minecraft:mark_variant': EntityMarkVariantComponent; + 'minecraft:movement': EntityMovementComponent; + 'minecraft:movement.amphibious': EntityMovementAmphibiousComponent; + 'minecraft:movement.basic': EntityMovementBasicComponent; + 'minecraft:movement.fly': EntityMovementFlyComponent; + 'minecraft:movement.generic': EntityMovementGenericComponent; + 'minecraft:movement.glide': EntityMovementGlideComponent; + 'minecraft:movement.hover': EntityMovementHoverComponent; + 'minecraft:movement.jump': EntityMovementJumpComponent; + 'minecraft:movement.skip': EntityMovementSkipComponent; + 'minecraft:movement.sway': EntityMovementSwayComponent; + 'minecraft:navigation.climb': EntityNavigationClimbComponent; + 'minecraft:navigation.float': EntityNavigationFloatComponent; + 'minecraft:navigation.fly': EntityNavigationFlyComponent; + 'minecraft:navigation.generic': EntityNavigationGenericComponent; + 'minecraft:navigation.hover': EntityNavigationHoverComponent; + 'minecraft:navigation.walk': EntityNavigationWalkComponent; + 'minecraft:npc': EntityNpcComponent; + 'minecraft:onfire': EntityOnFireComponent; + 'minecraft:projectile': EntityProjectileComponent; + 'minecraft:push_through': EntityPushThroughComponent; + 'minecraft:rideable': EntityRideableComponent; + 'minecraft:riding': EntityRidingComponent; + 'minecraft:scale': EntityScaleComponent; + 'minecraft:skin_id': EntitySkinIdComponent; + 'minecraft:strength': EntityStrengthComponent; + 'minecraft:tameable': EntityTameableComponent; + 'minecraft:tamemount': EntityTameMountComponent; + 'minecraft:type_family': EntityTypeFamilyComponent; + 'minecraft:underwater_movement': EntityUnderwaterMovementComponent; + 'minecraft:variant': EntityVariantComponent; + 'minecraft:wants_jockey': EntityWantsJockeyComponent; + movement: EntityMovementComponent; + 'movement.amphibious': EntityMovementAmphibiousComponent; + 'movement.basic': EntityMovementBasicComponent; + 'movement.fly': EntityMovementFlyComponent; + 'movement.generic': EntityMovementGenericComponent; + 'movement.glide': EntityMovementGlideComponent; + 'movement.hover': EntityMovementHoverComponent; + 'movement.jump': EntityMovementJumpComponent; + 'movement.skip': EntityMovementSkipComponent; + 'movement.sway': EntityMovementSwayComponent; + 'navigation.climb': EntityNavigationClimbComponent; + 'navigation.float': EntityNavigationFloatComponent; + 'navigation.fly': EntityNavigationFlyComponent; + 'navigation.generic': EntityNavigationGenericComponent; + 'navigation.hover': EntityNavigationHoverComponent; + 'navigation.walk': EntityNavigationWalkComponent; + npc: EntityNpcComponent; + onfire: EntityOnFireComponent; + projectile: EntityProjectileComponent; + push_through: EntityPushThroughComponent; + rideable: EntityRideableComponent; + riding: EntityRidingComponent; + scale: EntityScaleComponent; + skin_id: EntitySkinIdComponent; + strength: EntityStrengthComponent; + tameable: EntityTameableComponent; + tamemount: EntityTameMountComponent; + type_family: EntityTypeFamilyComponent; + underwater_movement: EntityUnderwaterMovementComponent; + variant: EntityVariantComponent; + wants_jockey: EntityWantsJockeyComponent; +}; + +/** + * @beta + */ +export type ItemComponentTypeMap = { + cooldown: ItemCooldownComponent; + durability: ItemDurabilityComponent; + enchantable: ItemEnchantableComponent; + food: ItemFoodComponent; + 'minecraft:cooldown': ItemCooldownComponent; + 'minecraft:durability': ItemDurabilityComponent; + 'minecraft:enchantable': ItemEnchantableComponent; + 'minecraft:food': ItemFoodComponent; + 'minecraft:potion': ItemPotionComponent; + potion: ItemPotionComponent; +}; + +/** + * @beta + * Describes a type of biome. + */ +export class BiomeType { + private constructor(); + /** + * @remarks + * Identifier of the biome type. + * + */ + readonly id: string; +} + +/** + * @beta + * Supports a catalog of available biome types registered + * within Minecraft. + */ +export class BiomeTypes { + private constructor(); + /** + * @remarks + * Returns a specific biome type. + * + * @param typeName + * Identifier of the biome. Generally, namespaced identifiers + * (e.g., minecraft:frozen_peaks) should be used. + * @returns + * If the biome exists, a BiomeType object is returned. If not, + * undefined is returned. + */ + static get(typeName: string): BiomeType | undefined; + /** + * @remarks + * Returns all registered biome types within Minecraft + * + */ + static getAll(): BiomeType[]; +} + /** * Represents a block in a dimension. A block represents a * unique X, Y, and Z within a dimension and get/sets the state @@ -2024,6 +2427,32 @@ export class Block { * {@link LocationOutOfWorldBoundariesError} */ readonly isLiquid: boolean; + /** + * @beta + * @remarks + * Returns true if this block is solid and impassible - (e.g., + * a cobblestone block and a diamond block are solid, while a + * ladder block and a fence block are not). + * + * @throws This property can throw when used. + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + readonly isSolid: boolean; + /** + * @beta + * @remarks + * Returns or sets whether this block has a liquid on it. + * + * @throws This property can throw when used. + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + readonly isWaterlogged: boolean; /** * @remarks * Coordinates of the specified block. @@ -2120,6 +2549,30 @@ export class Block { * */ bottomCenter(): Vector3; + /** + * @beta + * @remarks + * Checks to see whether it is valid to place the specified + * block type or block permutation, on a specified face on this + * block + * + * @param blockToPlace + * Block type or block permutation to check placement for. + * @param faceToPlaceOn + * Optional specific face of this block to check placement + * against. + * @returns + * Returns `true` if the block type or permutation can be + * placed on this block, else `false`. + * @throws This function can throw errors. + * + * {@link Error} + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + canPlace(blockToPlace: BlockPermutation | BlockType | string, faceToPlaceOn?: Direction): boolean; /** * @remarks * Returns the {@link Vector3} of the center of this block on @@ -2161,7 +2614,7 @@ export class Block { * * {@link LocationOutOfWorldBoundariesError} */ - getComponent(componentId: string): BlockComponent | undefined; + getComponent(componentId: T): BlockComponentTypeMap[T] | undefined; /** * @remarks * Creates a prototype item stack based on this block that can @@ -2183,6 +2636,30 @@ export class Block { * {@link LocationOutOfWorldBoundariesError} */ getItemStack(amount?: number, withData?: boolean): ItemStack | undefined; + /** + * @beta + * @throws This function can throw errors. + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + getMapColor(): RGBA; + /** + * @beta + * @remarks + * Returns the net redstone power of this block. + * + * @returns + * Returns undefined if redstone power is not applicable to + * this block. + * @throws This function can throw errors. + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + getRedstonePower(): number | undefined; /** * @remarks * Returns a set of tags for a block. @@ -2318,6 +2795,25 @@ export class Block { * {@link LocationOutOfWorldBoundariesError} */ setType(blockType: BlockType | string): void; + /** + * @beta + * @remarks + * Sets whether this block has a water logged state - for + * example, whether stairs are submerged within water. + * + * This function can't be called in read-only mode. + * + * @param isWaterlogged + * true if the block should have water within it. + * @throws This function can throw errors. + * + * {@link Error} + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + setWaterlogged(isWaterlogged: boolean): void; /** * @remarks * Returns the {@link Block} to the south of this block @@ -2332,6 +2828,27 @@ export class Block { * {@link LocationOutOfWorldBoundariesError} */ south(steps?: number): Block | undefined; + /** + * @beta + * @remarks + * Tries to set the block in the dimension to the state of the + * permutation by first checking if the placement is valid. + * + * This function can't be called in read-only mode. + * + * @param permutation + * Permutation that contains a set of property states for the + * Block. + * @returns + * Returns `true` if the block permutation data was + * successfully set, else `false`. + * @throws This function can throw errors. + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + trySetPermutation(permutation: BlockPermutation): boolean; /** * @remarks * Returns the {@link Block} to the west of this block @@ -2655,6 +3172,82 @@ export class BlockInventoryComponent extends BlockComponent { static readonly componentId = 'minecraft:inventory'; } +/** + * @beta + * Represents a fluid container block that currently contains + * lava. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockLavaContainerComponent extends BlockLiquidContainerComponent { + private constructor(); + static readonly componentId = 'minecraft:lavaContainer'; +} + +/** + * @beta + * For blocks that can contain a liquid (e.g., a cauldron), + * this is a base component for liquid containers. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockLiquidContainerComponent extends BlockComponent { + private constructor(); + /** + * @remarks + * Relative fill level of the liquid container. + * + * This property can't be edited in read-only mode. + * + */ + fillLevel: number; + /** + * @remarks + * Returns true if this reference to a liquid container is + * still valid and contains the liquid of the type you have a + * reference for (for example, if the block is unloaded, no + * longer a liquid container or contains lava when you have a + * potion container component, isValidLiquid will not be true.) + * + * @returns + * True if this liquid container still exists, is valid and + * contains the expected liquid type. + */ + isValidLiquid(): boolean; +} + +/** + * @beta + * A BlockLocationIterator returns the next block location of + * the block volume across which it is iterating. + * The BlockLocationIterator is used to abstract the shape of + * the block volume it was fetched from (so it can represent + * all the block locations that make up rectangles, cubes, + * spheres, lines and complex shapes). + * Each iteration pass returns the next valid block location in + * the parent shape. + * Unless otherwise specified by the parent shape - the + * BlockLocationIterator will iterate over a 3D space in the + * order of increasing X, followed by increasing Z followed by + * increasing Y. + * (Effectively stepping across the XZ plane, and when all the + * locations in that plane are exhausted, increasing the Y + * coordinate to the next XZ slice) + */ +export class BlockLocationIterator implements Iterable { + private constructor(); + /** + * @remarks + * This function can't be called in read-only mode. + * + */ + [Symbol.iterator](): Iterator; + /** + * @remarks + * This function can't be called in read-only mode. + * + */ + next(): IteratorResult; +} + /** * Contains the combination of type {@link BlockType} and * properties (also sometimes called block state) which @@ -2869,7 +3462,26 @@ export class BlockPistonComponent extends BlockComponent { } /** - * @rc + * @beta + * Represents a fluid container block that currently contains a + * potion. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockPotionContainerComponent extends BlockLiquidContainerComponent { + private constructor(); + static readonly componentId = 'minecraft:potionContainer'; + /** + * @remarks + * Sets the potion type based on an item stack. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + setPotionType(itemStack: ItemStack): void; +} + +/** * Represents a block that can play a record. */ // @ts-ignore Class inheritance allowed for native defined classes @@ -3163,12 +3775,23 @@ export class BlockSignComponent extends BlockComponent { } /** - * Enumerates all {@link BlockStateType}s. + * @beta + * Represents a fluid container block that currently contains + * snow. */ -export class BlockStates { +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockSnowContainerComponent extends BlockLiquidContainerComponent { private constructor(); - /** - * @remarks + static readonly componentId = 'minecraft:snowContainer'; +} + +/** + * Enumerates all {@link BlockStateType}s. + */ +export class BlockStates { + private constructor(); + /** + * @remarks * Retrieves a specific block state instance. * * @returns @@ -3213,6 +3836,13 @@ export class BlockStateType { */ export class BlockType { private constructor(); + /** + * @beta + * @remarks + * Represents whether this type of block can be waterlogged. + * + */ + readonly canBeWaterlogged: boolean; /** * @remarks * Block type name - for example, `minecraft:acacia_stairs`. @@ -3247,11 +3877,126 @@ export class BlockTypes { static getAll(): BlockType[]; } +/** + * @beta + * A BlockVolume is a simple interface to an object which + * represents a 3D rectangle of a given size (in blocks) at a + * world block location. + * Note that these are not analogous to "min" and "max" values, + * in that the vector components are not guaranteed to be in + * any order. + * In addition, these vector positions are not interchangeable + * with BlockLocation. + * If you want to get this volume represented as range of of + * BlockLocations, you can use the getBoundingBox utility + * function. + * This volume class will maintain the ordering of the corner + * indexes as initially set. imagine that each corner is + * assigned in Editor - as you move the corner around + * (potentially inverting the min/max relationship of the + * bounds) - what + * you had originally selected as the top/left corner would + * traditionally become the bottom/right. + * When manually editing these kinds of volumes, you need to + * maintain the identity of the corner as you edit - the + * BlockVolume utility functions do this. + * + * Important to note that this measures block sizes (to/from) - + * a normal AABB (0,0,0) to (0,0,0) would traditionally be of + * size (0,0,0) + * However, because we're measuring blocks - the size or span + * of a BlockVolume would actually be (1,1,1) + * + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockVolume extends BlockVolumeBase { + /** + * @remarks + * A world block location that represents a corner in a 3D + * rectangle + * + * This property can't be edited in read-only mode. + * + */ + 'from': Vector3; + /** + * @remarks + * A world block location that represents the opposite corner + * in a 3D rectangle + * + * This property can't be edited in read-only mode. + * + */ + to: Vector3; + constructor(from: Vector3, to: Vector3); + /** + * @remarks + * Check to see if the given location is directly adjacent to + * the outer surface of a BlockVolume. + * + * + * This function can't be called in read-only mode. + * + * @param pos + * The world block location to test + * @returns + * If the location is either inside or more than 0 blocks away, + * the function will return false. + * If the location is directly contacting the outer surface of + * the BlockVolume, the function will return true. + */ + doesLocationTouchFaces(pos: Vector3): boolean; + /** + * @remarks + * Check to see if a two block volumes are directly adjacent + * and two faces touch. + * + * This function can't be called in read-only mode. + * + * @param other + * The volume to test + * @returns + * If the outer faces of both block volumes touch and are + * directly adjacent at any point, return true. + */ + doesVolumeTouchFaces(other: BlockVolume): boolean; + /** + * @remarks + * Return an enumeration which represents the intersection + * between two BlockVolume objects + * + * This function can't be called in read-only mode. + * + */ + intersects(other: BlockVolume): BlockVolumeIntersection; +} + /** * Base type for BlockVolumes. */ export class BlockVolumeBase { private constructor(); + /** + * @beta + * @remarks + * Fetch a {@link BlockLocationIterator} that represents all of + * the block world locations within the specified volume + * + * This function can't be called in read-only mode. + * + */ + getBlockLocationIterator(): BlockLocationIterator; + /** + * @beta + * @remarks + * Return a {@link BoundingBox} object which represents the + * validated min and max coordinates of the volume + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + getBoundingBox(): BoundingBox; /** * @remarks * Return the capacity (volume) of the BlockVolume (W*D*H) @@ -3310,6 +4055,170 @@ export class BlockVolumeBase { translate(delta: Vector3): void; } +/** + * @beta + * Represents a fluid container block that currently contains + * water. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockWaterContainerComponent extends BlockLiquidContainerComponent { + private constructor(); + static readonly componentId = 'minecraft:waterContainer'; + /** + * @remarks + * Adds an item and colors the water based on a dye item type. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + addDye(itemType: ItemType): void; + /** + * @remarks + * Retrieves a custom base color used for the sign text. + * + * @returns + * Color that is used as the base color for sign text. + * @throws This function can throw errors. + */ + getCustomColor(): RGBA; + /** + * @remarks + * Sets a custom base color used for the sign text. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + setCustomColor(color: RGBA): void; +} + +/** + * @beta + * Bounding Box Utils is a utility class that provides a number + * of useful functions for the creation and utility of {@link + * BoundingBox} objects + */ +export class BoundingBoxUtils { + private constructor(); + /** + * @remarks + * Create a validated instance of a {@link BoundingBox} where + * the min and max components are guaranteed to be (min <= max) + * + * This function can't be called in read-only mode. + * + * @param min + * A corner world location + * @param max + * A corner world location diametrically opposite + */ + static createValid(min: Vector3, max: Vector3): BoundingBox; + /** + * @remarks + * Expand a {@link BoundingBox} by a given amount along each + * axis. + * Sizes can be negative to perform contraction. + * Note: corners can be inverted if the contraction size is + * greater than the span, but the min/max relationship will + * remain correct + * + * This function can't be called in read-only mode. + * + * @returns + * Return a new {@link BoundingBox} object representing the + * changes + */ + static dilate(box: BoundingBox, size: Vector3): BoundingBox; + /** + * @remarks + * Check if two {@link BoundingBox} objects are identical + * + * This function can't be called in read-only mode. + * + */ + static equals(box: BoundingBox, other: BoundingBox): boolean; + /** + * @remarks + * Expand the initial box object bounds to include the 2nd box + * argument. The resultant {@link BoundingBox} object will be + * a BoundingBox which exactly encompasses the two boxes. + * + * This function can't be called in read-only mode. + * + * @returns + * A new {@link BoundingBox} instance representing the smallest + * possible bounding box which can encompass both + */ + static expand(box: BoundingBox, other: BoundingBox): BoundingBox; + /** + * @remarks + * Calculate the center block of a given {@link BoundingBox} + * object. + * + * This function can't be called in read-only mode. + * + * @returns + * Note that {@link BoundingBox} objects represent whole + * blocks, so the center of boxes which have odd numbered + * bounds are not mathematically centered... + * i.e. a BoundingBox( 0,0,0 -> 3,3,3 ) would have a center of + * (1,1,1) (not (1.5, 1.5, 1.5) as expected) + */ + static getCenter(box: BoundingBox): Vector3; + /** + * @remarks + * Calculate the BoundingBox which represents the union area of + * two intersecting BoundingBoxes + * + * This function can't be called in read-only mode. + * + */ + static getIntersection(box: BoundingBox, other: BoundingBox): BoundingBox | undefined; + /** + * @remarks + * Get the Span of each of the BoundingBox Axis components + * + * This function can't be called in read-only mode. + * + */ + static getSpan(box: BoundingBox): Vector3; + /** + * @remarks + * Check to see if two BoundingBox objects intersect + * + * This function can't be called in read-only mode. + * + */ + static intersects(box: BoundingBox, other: BoundingBox): boolean; + /** + * @remarks + * Check to see if a given coordinate is inside a BoundingBox + * + * This function can't be called in read-only mode. + * + */ + static isInside(box: BoundingBox, pos: Vector3): boolean; + /** + * @remarks + * Check to see if a BoundingBox is valid (i.e. (min <= max)) + * + * This function can't be called in read-only mode. + * + */ + static isValid(box: BoundingBox): boolean; + /** + * @remarks + * Move a BoundingBox by a given amount + * + * This function can't be called in read-only mode. + * + * @returns + * Return a new BoundingBox object which represents the change + */ + static translate(box: BoundingBox, delta: Vector3): BoundingBox; +} + /** * Contains information related to changes to a button push. * @example buttonPushEvent.ts @@ -3365,88 +4274,470 @@ export class Camera { private constructor(); /** * @remarks - * Clears the active camera for the specified player. Causes - * the specified players to end any in-progress camera - * perspectives, including any eased camera motions, and return - * to their normal perspective. + * Clears the active camera for the specified player. Causes + * the specified players to end any in-progress camera + * perspectives, including any eased camera motions, and return + * to their normal perspective. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + clear(): void; + /** + * @remarks + * Begins a camera fade transition. A fade transition is a + * full-screen color that fades-in, holds, and then fades-out. + * + * This function can't be called in read-only mode. + * + * @param fadeCameraOptions + * Additional options around camera fade operations. + * @throws This function can throw errors. + */ + fade(fadeCameraOptions?: CameraFadeOptions): void; + /** + * @remarks + * Sets the current active camera for the specified player. + * + * This function can't be called in read-only mode. + * + * @param cameraPreset + * Identifier of a camera preset file defined within JSON. + * @param setOptions + * Additional options for the camera. + * @throws This function can throw errors. + */ + setCamera( + cameraPreset: string, + setOptions?: + | CameraDefaultOptions + | CameraFixedBoomOptions + | CameraSetFacingOptions + | CameraSetLocationOptions + | CameraSetPosOptions + | CameraSetRotOptions, + ): void; +} + +/** + * @beta + * An event that fires as players enter chat messages. + */ +export class ChatSendAfterEvent { + private constructor(); + /** + * @remarks + * Message that is being broadcast. + * + */ + readonly message: string; + /** + * @remarks + * Player that sent the chat message. + * + */ + readonly sender: Player; + /** + * @remarks + * Optional list of players that will receive this message. If + * defined, this message is directly targeted to one or more + * players (i.e., is not broadcast.) + * + */ + readonly targets?: Player[]; +} + +/** + * @beta + * Manages callbacks that are connected to chat messages being + * sent. + */ +export class ChatSendAfterEventSignal { + private constructor(); + /** + * @remarks + * Adds a callback that will be called when new chat messages + * are sent. + * + * This function can't be called in read-only mode. + * + * @example custom_command.js + * ```typescript + * const chatCallback = World.beforeEvents.chatSend.subscribe((eventData) => { + * if (eventData.message.includes("cancel")) { + * // Cancel event if the message contains "cancel" + * eventData.canceled = true; + * } else { + * // Modify chat message being sent + * eventData.message = `Modified '${eventData.message}'`; + * } + * }); + * ``` + */ + subscribe(callback: (arg: ChatSendAfterEvent) => void): (arg: ChatSendAfterEvent) => void; + /** + * @remarks + * Removes a callback from being called when new chat messages + * are sent. + * + * This function can't be called in read-only mode. + * + */ + unsubscribe(callback: (arg: ChatSendAfterEvent) => void): void; +} + +/** + * @beta + * An event that fires as players enter chat messages. + */ +export class ChatSendBeforeEvent { + private constructor(); + /** + * @remarks + * If set to true in a beforeChat event handler, this message + * is not broadcast out. + * + */ + cancel: boolean; + /** + * @remarks + * Message that is being broadcast. + * + */ + readonly message: string; + /** + * @remarks + * Player that sent the chat message. + * + */ + readonly sender: Player; + /** + * @remarks + * Optional list of players that will receive this message. If + * defined, this message is directly targeted to one or more + * players (i.e., is not broadcast.) + * + */ + readonly targets?: Player[]; +} + +/** + * @beta + * Manages callbacks that are connected to an event that fires + * before chat messages are sent. + */ +export class ChatSendBeforeEventSignal { + private constructor(); + /** + * @remarks + * Adds a callback that will be called before new chat messages + * are sent. + * + * This function can't be called in read-only mode. + * + */ + subscribe(callback: (arg: ChatSendBeforeEvent) => void): (arg: ChatSendBeforeEvent) => void; + /** + * @remarks + * Removes a callback from being called before new chat + * messages are sent. + * + * This function can't be called in read-only mode. + * + */ + unsubscribe(callback: (arg: ChatSendBeforeEvent) => void): void; +} + +/** + * Contains return data on the result of a command execution. + */ +export class CommandResult { + private constructor(); + /** + * @remarks + * If the command operates against a number of entities, + * blocks, or items, this returns the number of successful + * applications of this command. + * + */ + readonly successCount: number; +} + +/** + * Base class for downstream Component implementations. + */ +export class Component { + private constructor(); + /** + * @remarks + * Identifier of the component. + * + */ + readonly typeId: string; + /** + * @remarks + * Returns whether the component is valid. A component is + * considered valid if its owner is valid, in addition to any + * addition to any additional validation required by the + * component. + * + * @returns + * Whether the component is valid. + */ + isValid(): boolean; +} + +/** + * @beta + * The Compound Block Volume is a collection of individual + * block volume definitions which, as a collection, define a + * larger volume of (sometimes non-contiguous) irregular + * shapes. + * This class is loosely based on the concept of CSG + * (Computational Solid Geometry) and allows a user to create + * complex volumes by building a stack of volumes and voids to + * make a larger single volume. + * For example - normally a creator would create a hollow cube + * by creating 6 "wall" surfaces for each face. + * With a Compound Block Volume, a creator can define a hollow + * cube by creating a single outer solid cube, and then + * defining a further single 'void' cube inside the larger one. + * Similarly, the Compound Block Volume can represent irregular + * shaped volumes (e.g. a tree consists of a trunk and lots of + * leaf cubes which are not necessarily contiguously placed). + * Each of the volumes added to the CompoundBlockVolume are (by + * default) relative to the origin set (either at construction + * or via one of the set functions). + * However, it is also possible to push volumes to the compound + * collection which are absolute in nature and are not affected + * by origin changes. + */ +export class CompoundBlockVolume { + /** + * @remarks + * Return the 'capacity' of the bounding rectangle which + * represents the collection of volumes in the stack + * + */ + readonly capacity: number; + readonly items: CompoundBlockVolumeItem[]; + readonly itemsAbsolute: CompoundBlockVolumeItem[]; + /** + * @remarks + * Return the number of volumes (positive and negative) in the + * volume stack + * + */ + readonly volumeCount: number; + /** + * @remarks + * Create a CompoundBlockVolume object + * + * @param origin + * An optional world space origin on which to center the + * compound volume. + * If not specified, the origin is set to (0,0,0) + */ + constructor(origin?: Vector3); + /** + * @remarks + * Clear the contents of the volume stack + * + * This function can't be called in read-only mode. + * + */ + clear(): void; + /** + * @remarks + * Fetch a Block Location Iterator for the Compound Block + * Volume. This iterator will allow a creator to iterate + * across all of the selected volumes within the larger + * bounding area. + * Areas of a volume which have been overridden by a + * subtractive volume will not be included in the iterator + * step. + * (i.e. if you push a cube to the stack, and then push a + * subtractive volume to the same location, then the iterator + * will step over the initial volume because it is considered + * negative space) + * Note that the Block Locations returned by this iterator are + * in absolute world space (irrespective of whether the + * compound volume items pushed are absolute or relative) + * + * This function can't be called in read-only mode. + * + */ + getBlockLocationIterator(): BlockLocationIterator; + /** + * @remarks + * Get the largest bounding box that represents a container for + * all of the volumes on the stack + * Note that the bounding box returned is represented in + * absolute world space (irrespective of whether the compound + * volume items pushed are absolute or relative) + * + * This function can't be called in read-only mode. + * + */ + getBoundingBox(): BoundingBox; + /** + * @remarks + * Get the max block location of the outermost bounding + * rectangle which represents the volumes on the stack. + * Note that the max location returned is in absolute world + * space (irrespective of whether the compound volume items + * pushed are absolute or relative) + * + * This function can't be called in read-only mode. + * + */ + getMax(): Vector3; + /** + * @remarks + * Get the min block location of the outermost bounding + * rectangle which represents the volumes on the stack. + * Note that the min location returned is in absolute world + * space (irrespective of whether the compound volume items + * pushed are absolute or relative) + * + * This function can't be called in read-only mode. + * + */ + getMin(): Vector3; + /** + * @remarks + * Fetch the origin in world space of the compound volume + * + * This function can't be called in read-only mode. + * + */ + getOrigin(): Vector3; + /** + * @remarks + * Return a boolean which signals if there are any volume items + * pushed to the volume + * + * This function can't be called in read-only mode. + * + */ + isEmpty(): boolean; + /** + * @remarks + * Return a boolean representing whether or not a given + * absolute world space block location is inside a positive + * block volume. + * E.g. if the stack contains a large cube followed by a + * slightly smaller negative cube, and the test location is + * within the negative cube - the function will return false + * because it's not 'inside' a volume (it IS inside the + * bounding rectangle, but it is not inside a positively + * defined location) * * This function can't be called in read-only mode. * - * @throws This function can throw errors. */ - clear(): void; + isInside(worldLocation: Vector3): boolean; /** * @remarks - * Begins a camera fade transition. A fade transition is a - * full-screen color that fades-in, holds, and then fades-out. + * Inspect the last entry pushed to the volume stack without + * affecting the stack contents. * * This function can't be called in read-only mode. * - * @param fadeCameraOptions - * Additional options around camera fade operations. - * @throws This function can throw errors. + * @param forceRelativity + * Determine whether the function returns a + * CompoundBlockVolumeItem which is forced into either relative + * or absolute coordinate system. + * `true` = force returned item to be relative to volume origin + * `false` = force returned item to be absolute world space + * location + * + * If no flag is specified, the item returned retains whatever + * relativity it had when it was pushed + * @returns + * Returns undefined if the stack is empty */ - fade(fadeCameraOptions?: CameraFadeOptions): void; + peekLastVolume(forceRelativity?: CompoundBlockVolumePositionRelativity): CompoundBlockVolumeItem | undefined; /** * @remarks - * Sets the current active camera for the specified player. + * Remove the last entry from the volume stack. This will + * reduce the stack size by one * * This function can't be called in read-only mode. * - * @param cameraPreset - * Identifier of a camera preset file defined within JSON. - * @param setOptions - * Additional options for the camera. - * @throws This function can throw errors. */ - setCamera( - cameraPreset: string, - setOptions?: - | CameraDefaultOptions - | CameraSetFacingOptions - | CameraSetLocationOptions - | CameraSetPosOptions - | CameraSetRotOptions, - ): void; -} - -/** - * Contains return data on the result of a command execution. - */ -export class CommandResult { - private constructor(); + popVolume(): boolean; /** * @remarks - * If the command operates against a number of entities, - * blocks, or items, this returns the number of successful - * applications of this command. + * Push a volume item to the stack. The volume item contains + * an 'action' parameter which determines whether this volume + * is a positive or negative space. + * The item also contains a `locationRelativity` which + * determines whether it is relative or absolute to the + * compound volume origin + * + * This function can't be called in read-only mode. * + * @param item + * Item to push to the end of the stack */ - readonly successCount: number; -} - -/** - * Base class for downstream Component implementations. - */ -export class Component { - private constructor(); + pushVolume(item: CompoundBlockVolumeItem): void; /** * @remarks - * Identifier of the component. + * If the volume stack is empty, this function will push the + * specified item to the stack. + * If the volume stack is NOT empty, this function will replace + * the last item on the stack with the new item. * + * This function can't be called in read-only mode. + * + * @param item + * Item to add or replace */ - readonly typeId: string; + replaceOrAddLastVolume(item: CompoundBlockVolumeItem): boolean; /** * @remarks - * Returns whether the component is valid. A component is - * considered valid if its owner is valid, in addition to any - * addition to any additional validation required by the - * component. + * Set the origin of the compound volume to an absolute world + * space location * - * @returns - * Whether the component is valid. + * This function can't be called in read-only mode. + * + * @param preserveExistingVolumes + * This optional boolean flag determines whether the relative + * `CompoundBlockVolumeItem`'s are frozen in place, or are + * affected by the new origin. + * Imagine a scenario where you have a series of relative + * locations around an origin which make up a sphere; all of + * these locations are in the range of -2 to 2. + * Push each of these locations to the compound volume as + * relative items. + * Now, move the origin and all of the locations representing + * the sphere move accordingly. + * However, let's say you want to add a 2nd sphere next to the + * 1st. + * In this case, set the new origin a few locations over, but + * 'preserveExistingVolumes' = true. + * This will set a new origin, but the existing sphere + * locations will remain relative to the original origin. + * Now, you can push the relative sphere locations again (this + * time they will be relative to the new origin) - resulting in + * 2 spheres next to each other. + */ + setOrigin(position: Vector3, preserveExistingVolumes?: boolean): void; + /** + * @remarks + * Similar to {@link CompoundBlockVolume.setOrigin} - this + * function will translate the origin by a given delta to a new + * position + * + * This function can't be called in read-only mode. + * + * @param preserveExistingVolumes + * See the description for the arguments to {@link + * CompoundBlockVolume.setOrigin} */ - isValid(): boolean; + translateOrigin(delta: Vector3, preserveExistingVolumes?: boolean): void; } /** @@ -4148,6 +5439,32 @@ export class Dimension { * */ readonly id: string; + /** + * @beta + * @remarks + * Searches the block volume for a block that satisfies the + * block filter. + * + * @param volume + * Volume of blocks that will be checked. + * @param filter + * Block filter that will be checked against each block in the + * volume. + * @param allowUnloadedChunks + * If set to true will suppress the UnloadedChunksError if some + * or all of the block volume is outside of the loaded chunks. + * Will only check the block locations that are within the + * loaded chunks in the volume. + * @returns + * Returns true if at least one block in the volume satisfies + * the filter, false otherwise. + * @throws This function can throw errors. + * + * {@link Error} + * + * {@link UnloadedChunksError} + */ + containsBlock(volume: BlockVolumeBase, filter: BlockFilter, allowUnloadedChunks?: boolean): boolean; /** * @remarks * Creates an explosion at the specified location. @@ -4183,6 +5500,60 @@ export class Dimension { * ``` */ createExplosion(location: Vector3, radius: number, explosionOptions?: ExplosionOptions): boolean; + /** + * @beta + * @remarks + * Fills an area between begin and end with block of type + * block. + * + * This function can't be called in read-only mode. + * + * @param block + * Type of block to fill the volume with. + * @param options + * A set of additional options, such as a matching block to + * potentially replace this fill block with. + * @returns + * Returns number of blocks placed. + * @throws This function can throw errors. + * + * {@link minecraftcommon.EngineError} + * + * {@link Error} + * + * {@link UnloadedChunksError} + */ + fillBlocks( + volume: BlockVolumeBase | CompoundBlockVolume, + block: BlockPermutation | BlockType | string, + options?: BlockFillOptions, + ): ListBlockVolume; + /** + * @beta + * @remarks + * Finds the location of the closest biome of a particular + * type. Note that the findClosestBiome operation can take some + * time to complete, so avoid using many of these calls within + * a particular tick. + * + * This function can't be called in read-only mode. + * + * @param pos + * Starting location to look for a biome to find. + * @param biomeToFind + * Identifier of the biome to look for. + * @param options + * Additional selection criteria for a biome search. + * @returns + * Returns a location of the biome, or undefined if a biome + * could not be found. + * @throws This function can throw errors. + * + * {@link minecraftcommon.EngineError} + * + * {@link Error} + */ + findClosestBiome(pos: Vector3, biomeToFind: BiomeType | string, options?: BiomeSearchOptions): Vector3 | undefined; /** * @remarks * Returns a block instance at the given location. @@ -4207,6 +5578,22 @@ export class Dimension { * {@link LocationOutOfWorldBoundariesError} */ getBlock(location: Vector3): Block | undefined; + /** + * @beta + * @remarks + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + getBlockAbove(location: Vector3, options?: BlockRaycastOptions): Block | undefined; + /** + * @beta + * @remarks + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + getBlockBelow(location: Vector3, options?: BlockRaycastOptions): Block | undefined; /** * @remarks * Gets the first block that intersects with a vector emanating @@ -4221,6 +5608,31 @@ export class Dimension { * @throws This function can throw errors. */ getBlockFromRay(location: Vector3, direction: Vector3, options?: BlockRaycastOptions): BlockRaycastHit | undefined; + /** + * @beta + * @remarks + * Gets all the blocks in a volume that satisfy the filter. + * + * @param volume + * Volume of blocks that will be checked. + * @param filter + * Block filter that will be checked against each block in the + * volume. + * @param allowUnloadedChunks + * If set to true will suppress the UnloadedChunksError if some + * or all of the block volume is outside of the loaded chunks. + * Will only check the block locations that are within the + * loaded chunks in the volume. + * @returns + * Returns the ListBlockVolume that contains all the block + * locations that satisfied the block filter. + * @throws This function can throw errors. + * + * {@link Error} + * + * {@link UnloadedChunksError} + */ + getBlocks(volume: BlockVolumeBase, filter: BlockFilter, allowUnloadedChunks?: boolean): ListBlockVolume; /** * @remarks * Returns a set of entities based on a set of conditions @@ -4328,6 +5740,18 @@ export class Dimension { * @throws This function can throw errors. */ getTopmostBlock(locationXZ: VectorXZ, minHeight?: number): Block | undefined; + /** + * @beta + * @remarks + * Returns the current weather. + * + * This function can't be called in read-only mode. + * + * @returns + * Returns a WeatherType that explains the broad category of + * weather that is currently going on. + */ + getWeather(): WeatherType; /** * @remarks * Plays a sound for all players. @@ -4539,7 +5963,7 @@ export class Dimension { * } * ``` */ - spawnEntity(identifier: string, location: Vector3): Entity; + spawnEntity(identifier: string, location: Vector3, options?: SpawnEntityOptions): Entity; /** * @remarks * Creates a new item stack as an entity at the specified @@ -5011,6 +6435,16 @@ export class Entity { * */ readonly scoreboardIdentity?: ScoreboardIdentity; + /** + * @beta + * @remarks + * Retrieves or sets an entity that is used as the target of + * AI-related behaviors, like attacking. If the entity + * currently has no target returns undefined. + * + * @throws This property can throw when used. + */ + readonly target?: Entity; /** * @remarks * Identifier of the type of the entity - for example, @@ -5299,7 +6733,7 @@ export class Entity { * Returns the component if it exists on the entity, otherwise * undefined. */ - getComponent(componentId: string): EntityComponent | undefined; + getComponent(componentId: T): EntityComponentTypeMap[T] | undefined; /** * @remarks * Returns all components that are both present on this entity @@ -6001,6 +7435,107 @@ export class EntityBaseMovementComponent extends EntityComponent { readonly maxTurn: number; } +/** + * @beta + * Defines what blocks this entity can breathe in and gives + * them the ability to suffocate. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class EntityBreathableComponent extends EntityComponent { + private constructor(); + /** + * @remarks + * The current air supply of the entity. + * + * This property can't be edited in read-only mode. + * + * @throws + * Will throw an error if the air supply is out of bounds + * [suffocationTime, maxAirSupply]. + */ + airSupply: number; + /** + * @remarks + * If true, this entity can breathe in air. + * + * @throws This property can throw when used. + */ + readonly breathesAir: boolean; + /** + * @remarks + * If true, this entity can breathe in lava. + * + * @throws This property can throw when used. + */ + readonly breathesLava: boolean; + /** + * @remarks + * If true, this entity can breathe in solid blocks. + * + * @throws This property can throw when used. + */ + readonly breathesSolids: boolean; + /** + * @remarks + * If true, this entity can breathe in water. + * + * @throws This property can throw when used. + */ + readonly breathesWater: boolean; + /** + * @remarks + * If true, the entity is able to breathe. + * + * @throws This property can throw when used. + */ + readonly canBreathe: boolean; + /** + * @remarks + * If true, this entity will have visible bubbles while in + * water. + * + * @throws This property can throw when used. + */ + readonly generatesBubbles: boolean; + /** + * @remarks + * Time in seconds to recover breath to maximum. + * + * @throws This property can throw when used. + */ + readonly inhaleTime: number; + /** + * @remarks + * Time in seconds between suffocation damage. + * + * @throws This property can throw when used. + */ + readonly suffocateTime: number; + /** + * @remarks + * Time in seconds the entity can hold its breath. + * + * @throws This property can throw when used. + */ + readonly totalSupply: number; + static readonly componentId = 'minecraft:breathable'; + /** + * @remarks + * List of blocks this entity can breathe in, in addition to + * the separate properties for classes of blocks. + * + * @throws This function can throw errors. + */ + getBreatheBlocks(): BlockPermutation[]; + /** + * @remarks + * List of blocks this entity can't breathe in. + * + * @throws This function can throw errors. + */ + getNonBreatheBlocks(): BlockPermutation[]; +} + /** * When added, this component signifies that the entity can * climb up ladders. @@ -6830,6 +8365,32 @@ export class EntityItemComponent extends EntityComponent { static readonly componentId = 'minecraft:item'; } +/** + * @beta + * This type is usable for iterating over a set of entities. + * This means it can be used in statements like for...of + * statements, Array.from(iterator), and more. + */ +export class EntityIterator implements Iterable { + private constructor(); + /** + * @remarks + * This function can't be called in read-only mode. + * + */ + [Symbol.iterator](): Iterator; + /** + * @remarks + * Retrieves the next item in this iteration. The resulting + * IteratorResult contains .done and .value properties which + * can be used to see the next Entity in the iteration. + * + * This function can't be called in read-only mode. + * + */ + next(): IteratorResult; +} + /** * Defines the base movement speed in lava of this entity. */ @@ -7332,6 +8893,42 @@ export class EntityNavigationWalkComponent extends EntityNavigationComponent { static readonly componentId = 'minecraft:navigation.walk'; } +/** + * @beta + * Adds NPC capabilities to an entity such as custom skin, + * name, and dialogue interactions. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class EntityNpcComponent extends EntityComponent { + private constructor(); + /** + * @remarks + * The DialogueScene that is opened when players first interact + * with the NPC. + * + * This property can't be edited in read-only mode. + * + */ + defaultScene: string; + /** + * @remarks + * The name of the NPC as it is displayed to players. + * + * This property can't be edited in read-only mode. + * + */ + name: string; + /** + * @remarks + * The index of the skin the NPC will use. + * + * This property can't be edited in read-only mode. + * + */ + skinIndex: number; + static readonly componentId = 'minecraft:npc'; +} + /** * When present on an entity, this entity is on fire. * @example setEntityOnFire.ts @@ -8084,11 +9681,31 @@ export class EntityTypeFamilyComponent extends EntityComponent { /** * @throws This function can throw errors. */ - getTypeFamilies(): string[]; + getTypeFamilies(): string[]; + /** + * @throws This function can throw errors. + */ + hasTypeFamily(typeFamily: string): boolean; +} + +/** + * @beta + * An iterator that loops through available entity types. + */ +export class EntityTypeIterator implements Iterable { + private constructor(); + /** + * @remarks + * This function can't be called in read-only mode. + * + */ + [Symbol.iterator](): Iterator; /** - * @throws This function can throw errors. + * @remarks + * This function can't be called in read-only mode. + * */ - hasTypeFamily(typeFamily: string): boolean; + next(): IteratorResult; } /** @@ -8319,6 +9936,36 @@ export class FeedItemEffect { readonly name: string; } +/** + * @beta + * Represents a set of filters for when an event should occur. + */ +export class FilterGroup { + private constructor(); +} + +/** + * @beta + * Represents constants related to fluid containers. + */ +export class FluidContainer { + private constructor(); + /** + * @remarks + * Constant that represents the maximum fill level of a fluid + * container. + * + */ + static readonly maxFillLevel = 6; + /** + * @remarks + * Constant that represents the minimum fill level of a fluid + * container. + * + */ + static readonly minFillLevel = 0; +} + /** * Contains information regarding a changed world.gameRules * property. @@ -9341,6 +10988,37 @@ export class ItemFoodComponent extends ItemComponent { static readonly componentId = 'minecraft:food'; } +/** + * @beta + * When present on an item, this item is a potion item. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class ItemPotionComponent extends ItemComponent { + private constructor(); + /** + * @remarks + * The PotionEffectType associated with the potion item. + * + * @throws This property can throw when used. + */ + readonly potionEffectType: PotionEffectType; + /** + * @remarks + * The PotionLiquidType associated with the potion item. + * + * @throws This property can throw when used. + */ + readonly potionLiquidType: PotionLiquidType; + /** + * @remarks + * The PotionModifierType associated with the potion item. + * + * @throws This property can throw when used. + */ + readonly potionModifierType: PotionModifierType; + static readonly componentId = 'minecraft:potion'; +} + /** * Contains information related to a chargeable item when the * player has finished using the item and released the build @@ -9610,7 +11288,7 @@ export class ItemStack { * } * ``` */ - getComponent(componentId: string): ItemComponent | undefined; + getComponent(componentId: T): ItemComponentTypeMap[T] | undefined; /** * @remarks * Returns all components that are both present on this item @@ -9834,6 +11512,16 @@ export class ItemStack { * ``` */ setLore(loreList?: string[]): void; + /** + * @beta + * @remarks + * Helper function for creating potion items. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + static createPotion(options: PotionOptions): ItemStack; } /** @@ -10208,6 +11896,15 @@ export class ItemUseOnAfterEvent { * */ readonly faceLocation: Vector3; + /** + * @beta + * @remarks + * This value will be true if the event was triggered on + * players initial interaction button press and false on events + * triggered from holding the interaction button. + * + */ + readonly isFirstEvent: boolean; /** * @remarks * The impacted item stack that is being used on a block. @@ -10412,6 +12109,33 @@ export class ListBlockVolume extends BlockVolumeBase { remove(locations: Vector3[]): void; } +/** + * @beta + * A specific currently-internal event used for passing + * messages from client to server. + */ +export class MessageReceiveAfterEvent { + private constructor(); + /** + * @remarks + * The message identifier. + * + */ + readonly id: string; + /** + * @remarks + * The message. + * + */ + readonly message: string; + /** + * @remarks + * The player who sent the message. + * + */ + readonly player: Player; +} + /** * A collection of default Minecraft dimension types. */ @@ -10705,6 +12429,20 @@ export class Player extends Entity { * @throws This function can throw errors. */ addLevels(amount: number): number; + /** + * @beta + * @remarks + * Eats an item, providing the item's hunger and saturation + * effects to the player. Can only be used on food items. + * + * This function can't be called in read-only mode. + * + * @param itemStack + * The item to eat. + * @throws + * Throws if the item is not a food item. + */ + eatItem(itemStack: ItemStack): void; /** * @remarks * Retrieves the active gamemode for this player, if specified. @@ -10737,6 +12475,14 @@ export class Player extends Entity { * @throws This function can throw errors. */ getTotalXp(): number; + /** + * @beta + * @remarks + * Returns true if this player has operator-level permissions. + * + * @throws This function can throw errors. + */ + isOp(): boolean; /** * @remarks * Plays a music track that only this particular player can @@ -10762,6 +12508,17 @@ export class Player extends Entity { * @throws This function can throw errors. */ playSound(soundId: string, soundOptions?: PlayerSoundOptions): void; + /** + * @beta + * @remarks + * This is an internal-facing method for posting a system + * message to downstream clients. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + postClientMessage(id: string, value: string): void; /** * @remarks * Queues an additional music track that only this particular @@ -10839,6 +12596,17 @@ export class Player extends Entity { * @throws This function can throw errors. */ setGameMode(gameMode?: GameMode): void; + /** + * @beta + * @remarks + * Will change the specified players permissions, and whether + * they are operator or not. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + setOp(isOp: boolean): void; /** * @remarks * Sets the current starting spawn point for this particular @@ -10853,6 +12621,54 @@ export class Player extends Entity { * {@link LocationOutOfWorldBoundariesError} */ setSpawnPoint(spawnPoint?: DimensionLocation): void; + /** + * @beta + * @remarks + * Creates a new particle emitter at a specified location in + * the world. Only visible to the target player. + * + * This function can't be called in read-only mode. + * + * @param effectName + * Identifier of the particle to create. + * @param location + * The location at which to create the particle emitter. + * @param molangVariables + * A set of optional, customizable variables that can be + * adjusted for this particle. + * @throws This function can throw errors. + * + * {@link Error} + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + * @example spawnParticle.ts + * ```typescript + * import { world, MolangVariableMap, Vector3 } from '@minecraft/server'; + * + * world.afterEvents.playerSpawn.subscribe(event => { + * const targetLocation = event.player.location; + * for (let i = 0; i < 100; i++) { + * const molang = new MolangVariableMap(); + * + * molang.setColorRGB('variable.color', { + * red: Math.random(), + * green: Math.random(), + * blue: Math.random() + * }); + * + * const newLocation: Vector3 = { + * x: targetLocation.x + Math.floor(Math.random() * 8) - 4, + * y: targetLocation.y + Math.floor(Math.random() * 8) - 4, + * z: targetLocation.z + Math.floor(Math.random() * 8) - 4, + * }; + * event.player.spawnParticle('minecraft:colored_flame_particle', newLocation, molang); + * } + * }); + * ``` + */ + spawnParticle(effectName: string, location: Vector3, molangVariables?: MolangVariableMap): void; /** * @remarks * Sets the item cooldown time for a particular cooldown @@ -11003,7 +12819,6 @@ export class PlayerBreakBlockBeforeEventSignal { } /** - * @rc * Represents the players cursor inventory. Used when moving * items between between containers in the inventory UI. Not * used with touch controls. @@ -11095,18 +12910,12 @@ export class PlayerDimensionChangeAfterEventSignal { unsubscribe(callback: (arg: PlayerDimensionChangeAfterEvent) => void): void; } -/** - * @rc - */ export class PlayerEmoteAfterEvent { private constructor(); readonly personaPieceId: string; readonly player: Player; } -/** - * @rc - */ export class PlayerEmoteAfterEventSignal { private constructor(); /** @@ -11315,6 +13124,14 @@ export class PlayerInputPermissions { */ export class PlayerInteractWithBlockAfterEvent { private constructor(); + /** + * @beta + * @remarks + * The ItemStack before the interaction succeeded, or undefined + * if hand is empty. + * + */ + readonly beforeItemStack?: ItemStack; /** * @remarks * The block that will be interacted with. @@ -11334,6 +13151,15 @@ export class PlayerInteractWithBlockAfterEvent { * */ readonly faceLocation: Vector3; + /** + * @beta + * @remarks + * This value will be true if the event was triggered on + * players initial interaction button press and false on events + * triggered from holding the interaction button. + * + */ + readonly isFirstEvent: boolean; /** * @remarks * The ItemStack after the interaction succeeded, or undefined @@ -11408,6 +13234,15 @@ export class PlayerInteractWithBlockBeforeEvent { * */ readonly faceLocation: Vector3; + /** + * @beta + * @remarks + * This value will be true if the event was triggered on + * players initial interaction button press and false on events + * triggered from holding the interaction button. + * + */ + readonly isFirstEvent: boolean; /** * @remarks * The item stack that is being used in the interaction, or @@ -11457,6 +13292,14 @@ export class PlayerInteractWithBlockBeforeEventSignal { */ export class PlayerInteractWithEntityAfterEvent { private constructor(); + /** + * @beta + * @remarks + * The ItemStack before the interaction succeeded, or undefined + * if hand is empty. + * + */ + readonly beforeItemStack?: ItemStack; /** * @remarks * The ItemStack after the interaction succeeded, or undefined @@ -11567,6 +13410,32 @@ export class PlayerInteractWithEntityBeforeEventSignal { unsubscribe(callback: (arg: PlayerInteractWithEntityBeforeEvent) => void): void; } +/** + * @beta + * This type is usable for iterating over a set of players. + * This means it can be used in statements like for...of + * statements, Array.from(iterator), and more. + */ +export class PlayerIterator implements Iterable { + private constructor(); + /** + * @remarks + * This function can't be called in read-only mode. + * + */ + [Symbol.iterator](): Iterator; + /** + * @remarks + * Retrieves the next item in this iteration. The resulting + * IteratorResult contains .done and .value properties which + * can be used to see the next Player in the iteration. + * + * This function can't be called in read-only mode. + * + */ + next(): IteratorResult; +} + /** * Contains information regarding a player that has joined. * See the playerSpawn event for more detailed information that @@ -11665,51 +13534,122 @@ export class PlayerLeaveBeforeEventSignal { * This function can't be called in read-only mode. * */ - unsubscribe(callback: (arg: PlayerLeaveBeforeEvent) => void): void; -} - -/** - * Contains information regarding an event where a player - * places a block. - */ -// @ts-ignore Class inheritance allowed for native defined classes -export class PlayerPlaceBlockAfterEvent extends BlockEvent { - private constructor(); + unsubscribe(callback: (arg: PlayerLeaveBeforeEvent) => void): void; +} + +/** + * Contains information regarding an event where a player + * places a block. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class PlayerPlaceBlockAfterEvent extends BlockEvent { + private constructor(); + /** + * @remarks + * Player that placed the block for this event. + * + */ + readonly player: Player; +} + +/** + * Manages callbacks that are connected to when a block is + * placed by a player. + */ +export class PlayerPlaceBlockAfterEventSignal { + private constructor(); + /** + * @remarks + * Adds a callback that will be called when a block is placed + * by a player. + * + * This function can't be called in read-only mode. + * + */ + subscribe( + callback: (arg: PlayerPlaceBlockAfterEvent) => void, + options?: BlockEventOptions, + ): (arg: PlayerPlaceBlockAfterEvent) => void; + /** + * @remarks + * Removes a callback from being called when an block is placed + * by a player. + * + * This function can't be called in read-only mode. + * + */ + unsubscribe(callback: (arg: PlayerPlaceBlockAfterEvent) => void): void; +} + +/** + * @beta + * Contains information regarding an event before a player + * places a block. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class PlayerPlaceBlockBeforeEvent extends BlockEvent { + private constructor(); + /** + * @remarks + * If set to true, cancels the block place event. + * + */ + cancel: boolean; + /** + * @remarks + * The face of the block that the new block is being placed on. + * + */ + readonly face: Direction; + /** + * @remarks + * Location relative to the bottom north-west corner of the + * block where the new block is being placed onto. + * + */ + readonly faceLocation: Vector3; + /** + * @remarks + * The block permutation that is being placed. + * + */ + readonly permutationBeingPlaced: BlockPermutation; /** * @remarks - * Player that placed the block for this event. + * Player that is placing the block for this event. * */ readonly player: Player; } /** - * Manages callbacks that are connected to when a block is + * @beta + * Manages callbacks that are connected to before a block is * placed by a player. */ -export class PlayerPlaceBlockAfterEventSignal { +export class PlayerPlaceBlockBeforeEventSignal { private constructor(); /** * @remarks - * Adds a callback that will be called when a block is placed + * Adds a callback that will be called before a block is placed * by a player. * * This function can't be called in read-only mode. * */ subscribe( - callback: (arg: PlayerPlaceBlockAfterEvent) => void, + callback: (arg: PlayerPlaceBlockBeforeEvent) => void, options?: BlockEventOptions, - ): (arg: PlayerPlaceBlockAfterEvent) => void; + ): (arg: PlayerPlaceBlockBeforeEvent) => void; /** * @remarks - * Removes a callback from being called when an block is placed - * by a player. + * Removes a callback from being called before an block is + * placed by a player. * * This function can't be called in read-only mode. * */ - unsubscribe(callback: (arg: PlayerPlaceBlockAfterEvent) => void): void; + unsubscribe(callback: (arg: PlayerPlaceBlockBeforeEvent) => void): void; } /** @@ -11746,6 +13686,75 @@ export class PlayerSpawnAfterEventSignal extends IPlayerSpawnAfterEventSignal { private constructor(); } +/** + * @beta + * Represents a type of potion effect - like healing or leaping + * - that can be used with PotionOptions. + */ +export class PotionEffectType { + private constructor(); + readonly id: string; +} + +/** + * @beta + * Represents a type of potion liquid - like splash, or + * lingering - that can be used with PotionOptions. + */ +export class PotionLiquidType { + private constructor(); + readonly id: string; +} + +/** + * @beta + * Represents a type of potion modifier - like strong, or long + * - that can be used with PotionOptions. + */ +export class PotionModifierType { + private constructor(); + readonly id: string; +} + +/** + * @beta + * Used for accessing all potion effects, liquids, and + * modifiers currently available for use within the world. + */ +export class Potions { + private constructor(); + /** + * @remarks + * Retrieves a type handle for a specified potion effect id. + * + * @param potionEffectId + * A valid potion effect id. See + * @minecraft/vanilla-data.MinecraftPotionEffectTypes + * @returns + * A type handle wrapping the valid effect id, or undefined for + * an invalid effect id. + */ + static getPotionEffectType(potionEffectId: string): PotionEffectType | undefined; + /** + * @remarks + * Retrieves a type handle for a specified potion liquid id. + * + * @returns + * A type handle wrapping the valid liquid id, or undefined for + * an invalid liquid id. + */ + static getPotionLiquidType(potionLiquidId: string): PotionLiquidType | undefined; + /** + * @remarks + * Retrieves a type handle for a specified potion modifier id. + * + * @returns + * A type handle wrapping the valid modifier id, or undefined + * for an invalid modifier id. + */ + static getPotionModifierType(potionModifierId: string): PotionModifierType | undefined; +} + /** * Contains information related to changes to a pressure plate * pop. @@ -12528,6 +14537,34 @@ export class Seat { readonly seatRotation: number; } +/** + * @beta + * Manages callbacks that are message passing to a server. This + * event is not currently fully implemented, and should not be + * used. + */ +export class ServerMessageAfterEventSignal { + private constructor(); + /** + * @remarks + * Adds a callback that will be called when an internal message + * is passed. + * + * This function can't be called in read-only mode. + * + */ + subscribe(callback: (arg: MessageReceiveAfterEvent) => void): (arg: MessageReceiveAfterEvent) => void; + /** + * @remarks + * Removes a callback from being called when an internal + * message is passed. + * + * This function can't be called in read-only mode. + * + */ + unsubscribe(callback: (arg: MessageReceiveAfterEvent) => void): void; +} + /** * Represents a loaded structure template (.mcstructure file). * Structures can be placed in a world using the /structure @@ -12817,6 +14854,14 @@ export class System { * */ readonly afterEvents: SystemAfterEvents; + /** + * @beta + * @remarks + * Returns a collection of before-events for system-level + * operations. + * + */ + readonly beforeEvents: SystemBeforeEvents; /** * @remarks * Represents the current world tick of the server. @@ -12981,6 +15026,28 @@ export class SystemAfterEvents { readonly scriptEventReceive: ScriptEventCommandMessageAfterEventSignal; } +/** + * @beta + * A set of events that fire before an actual action occurs. In + * most cases, you can potentially cancel or modify the + * impending event. Note that in before events any APIs that + * modify gameplay state will not function and will throw an + * error. + */ +export class SystemBeforeEvents { + private constructor(); + /** + * @remarks + * Fires when the scripting watchdog shuts down the server. The + * can be due to using too much memory, or by causing + * significant slowdown or hang. + * To prevent shutdown, set the event's cancel property to + * true. + * + */ + readonly watchdogTerminate: WatchdogTerminateBeforeEventSignal; +} + /** * Contains information related to changes to a target block * hit. @@ -13166,6 +15233,61 @@ export class TripWireTripAfterEventSignal { unsubscribe(callback: (arg: TripWireTripAfterEvent) => void): void; } +/** + * @beta + * Contains information related to a script watchdog + * termination. + */ +export class WatchdogTerminateBeforeEvent { + private constructor(); + /** + * @remarks + * If set to true, cancels the termination of the script + * runtime. Note that depending on server configuration + * settings, cancellation of the termination may not be + * allowed. + * + */ + cancel: boolean; + /** + * @remarks + * Contains the reason why a script runtime is to be + * terminated. + * + */ + readonly terminateReason: WatchdogTerminateReason; +} + +/** + * @beta + * Manages callbacks that are connected to a callback that will + * be called when a script runtime is being terminated due to a + * violation of the performance watchdog system. + */ +export class WatchdogTerminateBeforeEventSignal { + private constructor(); + /** + * @remarks + * Adds a callback that will be called when a script runtime is + * being terminated due to a violation of the performance + * watchdog system. + * + * This function can't be called in read-only mode. + * + */ + subscribe(callback: (arg: WatchdogTerminateBeforeEvent) => void): (arg: WatchdogTerminateBeforeEvent) => void; + /** + * @remarks + * Removes a callback from being called when a script runtime + * is being terminated due to a violation of the performance + * watchdog system. + * + * This function can't be called in read-only mode. + * + */ + unsubscribe(callback: (arg: WatchdogTerminateBeforeEvent) => void): void; +} + /** * Contains information related to changes in weather in the * environment. @@ -13300,6 +15422,10 @@ export class World { * */ readonly gameRules: GameRules; + /** + * @beta + */ + readonly isHardcore: boolean; /** * @remarks * Returns the general global scoreboard that applies to the @@ -13313,6 +15439,20 @@ export class World { * */ readonly structureManager: StructureManager; + /** + * @beta + * @remarks + * A method that is internal-only, used for broadcasting + * specific messages between client and server. + * + * This function can't be called in read-only mode. + * + * @param id + * The message identifier. + * @param value + * The message. + */ + broadcastClientMessage(id: string, value: string): void; /** * @remarks * Clears the set of dynamic properties declared for this @@ -13805,6 +15945,14 @@ export class WorldAfterEvents { * */ readonly buttonPush: ButtonPushAfterEventSignal; + /** + * @beta + * @remarks + * This event is triggered after a chat message has been + * broadcast or sent to players. + * + */ + readonly chatSend: ChatSendAfterEventSignal; /** * @remarks * This event is fired when an entity event has been triggered @@ -13947,6 +16095,14 @@ export class WorldAfterEvents { * */ readonly leverAction: LeverActionAfterEventSignal; + /** + * @beta + * @remarks + * This event is an internal implementation detail, and is + * otherwise not currently functional. + * + */ + readonly messageReceive: ServerMessageAfterEventSignal; /** * @remarks * This event fires when a piston expands or retracts. @@ -13965,9 +16121,6 @@ export class WorldAfterEvents { * */ readonly playerDimensionChange: PlayerDimensionChangeAfterEventSignal; - /** - * @rc - */ readonly playerEmote: PlayerEmoteAfterEventSignal; readonly playerGameModeChange: PlayerGameModeChangeAfterEventSignal; /** @@ -13976,6 +16129,20 @@ export class WorldAfterEvents { * */ readonly playerInputPermissionCategoryChange: PlayerInputPermissionCategoryChangeAfterEventSignal; + /** + * @beta + * @remarks + * An event for when a player interacts with a block. + * + */ + readonly playerInteractWithBlock: PlayerInteractWithBlockAfterEventSignal; + /** + * @beta + * @remarks + * This event fires when a player interacts with an entity. + * + */ + readonly playerInteractWithEntity: PlayerInteractWithEntityAfterEventSignal; /** * @remarks * This event fires when a player joins a world. See also @@ -14067,6 +16234,14 @@ export class WorldAfterEvents { */ export class WorldBeforeEvents { private constructor(); + /** + * @beta + * @remarks + * This event is triggered after a chat message has been + * broadcast or sent to players. + * + */ + readonly chatSend: ChatSendBeforeEventSignal; /** * @remarks * This event is triggered after an event has been added to an @@ -14108,12 +16283,33 @@ export class WorldBeforeEvents { */ readonly playerBreakBlock: PlayerBreakBlockBeforeEventSignal; readonly playerGameModeChange: PlayerGameModeChangeBeforeEventSignal; + /** + * @beta + * @remarks + * Fires before a player interacts with a block. + * + */ + readonly playerInteractWithBlock: PlayerInteractWithBlockBeforeEventSignal; + /** + * @beta + * @remarks + * Fires before a player interacts with an entity. + * + */ + readonly playerInteractWithEntity: PlayerInteractWithEntityBeforeEventSignal; /** * @remarks * Fires when a player leaves the game. * */ readonly playerLeave: PlayerLeaveBeforeEventSignal; + /** + * @beta + * @remarks + * This event fires before a block is placed by a player. + * + */ + readonly playerPlaceBlock: PlayerPlaceBlockBeforeEventSignal; readonly weatherChange: WeatherChangeBeforeEventSignal; /** * @remarks @@ -14208,6 +16404,20 @@ export class WorldInitializeBeforeEventSignal { unsubscribe(callback: (arg: WorldInitializeBeforeEvent) => void): void; } +/** + * @beta + * Contains additional options for searches for the + * dimension.findNearestBiome API. + */ +export interface BiomeSearchOptions { + /** + * @remarks + * Bounding volume size to look within. + * + */ + boundingSize?: Vector3; +} + /** * Contains a set of events that will be raised for a block. * This object must be bound using the BlockRegistry. @@ -14297,6 +16507,15 @@ export interface BlockEventOptions { permutations?: BlockPermutation[]; } +/** + * @beta + * Contains additional options for a block fill operation. + */ +export interface BlockFillOptions { + blockFilter?: BlockFilter; + ignoreChunkBoundErrors?: boolean; +} + /** * Options to include or exclude blocks based on type, tag or * permutation. If no include options are added it will select @@ -14427,6 +16646,40 @@ export interface BlockRaycastOptions extends BlockFilter { maxDistance?: number; } +/** + * @beta + * A BoundingBox is an interface to an object which represents + * an AABB aligned rectangle. + * The BoundingBox assumes that it was created in a valid state + * (min <= max) but cannot guarantee it (unless it was created + * using the associated {@link BoundingBoxUtils} utility + * functions. + * The min/max coordinates represent the diametrically opposite + * corners of the rectangle. + * The BoundingBox is not a representation of blocks - it has + * no association with any type, it is just a mathematical + * construct - so a rectangle with + * ( 0,0,0 ) -> ( 0,0,0 ) + * has a size of ( 0,0,0 ) (unlike the very similar {@link + * BlockVolume} object) + */ +export interface BoundingBox { + /** + * @remarks + * A {@link Vector3} that represents the largest corner of the + * rectangle + * + */ + max: Vector3; + /** + * @remarks + * A {@link Vector3} that represents the smallest corner of the + * rectangle + * + */ + min: Vector3; +} + export interface CameraDefaultOptions { /** * @remarks @@ -14496,6 +16749,13 @@ export interface CameraFadeTimeOptions { holdTime: number; } +/** + * @beta + */ +export interface CameraFixedBoomOptions { + viewOffset?: Vector2; +} + export interface CameraSetFacingOptions { easeOptions?: CameraEaseOptions; facingEntity: Entity; @@ -14519,6 +16779,40 @@ export interface CameraSetRotOptions { rotation: Vector2; } +/** + * @beta + * This interface defines an entry into the {@link + * CompoundBlockVolume} which represents a volume of positive + * or negative space. + * + */ +export interface CompoundBlockVolumeItem { + /** + * @remarks + * The 'action' defines how the block volume is represented in + * the compound block volume stack. + * 'Add' creates a block volume which is positively selected + * 'Subtract' creates a block volume which represents a hole or + * negative space in the overall compound block volume. + * + */ + action?: CompoundBlockVolumeAction; + /** + * @remarks + * The relativity enumeration determines whether the + * BlockVolume specified is positioned relative to the parent + * compound block volume origin, or in absolute world space. + * + */ + locationRelativity?: CompoundBlockVolumePositionRelativity; + /** + * @remarks + * The volume of space + * + */ + volume: BlockVolume; +} + /** * Contains a set of updates to the component definition state * of an entity. @@ -14538,6 +16832,14 @@ export interface DefinitionModifier { * */ removedComponentGroups: string[]; + /** + * @beta + * @remarks + * The list of entity definition events that will be fired via + * this update. + * + */ + triggers: Trigger[]; } /** @@ -14820,9 +17122,6 @@ export interface EntityFilter { * */ name?: string; - /** - * @rc - */ propertyOptions?: EntityQueryPropertyOptions[]; /** * @remarks @@ -15076,9 +17375,6 @@ export interface EntityQueryOptions extends EntityFilter { volume?: Vector3; } -/** - * @rc - */ export interface EntityQueryPropertyOptions { exclude?: boolean; propertyId: string; @@ -15181,7 +17477,6 @@ export interface EntityRaycastOptions extends EntityFilter { } /** - * @rc * Equal to operator. */ export interface EqualsComparison { @@ -15243,7 +17538,6 @@ export interface ExplosionOptions { } /** - * @rc * Greater than operator. */ export interface GreaterThanComparison { @@ -15256,7 +17550,6 @@ export interface GreaterThanComparison { } /** - * @rc * Greater than or equal to operator. */ export interface GreaterThanOrEqualsComparison { @@ -15326,7 +17619,6 @@ export interface ItemCustomComponent { } /** - * @rc * Less than operator. */ export interface LessThanComparison { @@ -15339,7 +17631,6 @@ export interface LessThanComparison { } /** - * @rc * Less than or equal to operator. */ export interface LessThanOrEqualsComparison { @@ -15377,7 +17668,6 @@ export interface MusicOptions { } /** - * @rc * Not equal to operator. */ export interface NotEqualsComparison { @@ -15452,6 +17742,35 @@ export interface PlayerSoundOptions { volume?: number; } +/** + * @beta + * Options for use in creating potions. See + * ItemStack.createPotion. + */ +export interface PotionOptions { + /** + * @remarks + * The type of potion effect to create. See + * @minecraft/vanilla-data.MinecraftPotionEffectTypes. + * + */ + effect: PotionEffectType | string; + /** + * @remarks + * Optional potion liquid, defaults to 'Regular'. See + * @minecraft/vanilla-data.MinecraftPotionLiquidTypes. + * + */ + liquid?: PotionLiquidType | string; + /** + * @remarks + * Optional potion modifier, defaults to 'Normal'. See + * @minecraft/vanilla-data.MinecraftPotionModifierTypes. + * + */ + modifier?: PotionModifierType | string; +} + /** * Optional arguments for * @minecraft/server.EntityProjectileComponent.shoot. @@ -15467,7 +17786,6 @@ export interface ProjectileShootOptions { } /** - * @rc * Operator represents a lower/upper bound structure for * expressing a potential range of numbers. */ @@ -15697,6 +18015,13 @@ export interface ScriptEventMessageFilterOptions { namespaces: string[]; } +/** + * @beta + */ +export interface SpawnEntityOptions { + initialPersistence?: boolean; +} + /** * Provides additional options for {@link * StructureManager.createFromWorld} @@ -16022,6 +18347,14 @@ export class InvalidContainerSlotError extends Error { private constructor(); } +/** + * @beta + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class InvalidIteratorError extends Error { + private constructor(); +} + /** * Thrown when a Structure is invalid. A structure becomes * invalid when it is deleted. @@ -16087,6 +18420,16 @@ export class LocationOutOfWorldBoundariesError extends Error { private constructor(); } +/** + * @beta + * Error thrown when the specified area contains one or more + * unloaded chunks. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class UnloadedChunksError extends Error { + private constructor(); +} + export const HudElementsCount = 13; export const HudVisibilityCount = 2; /** @@ -16095,6 +18438,10 @@ export const HudVisibilityCount = 2; * */ export const MoonPhaseCount = 8; +/** + * @beta + */ +export const TicksPerDay = 24000; /** * @remarks * How many times the server ticks per second of real time. diff --git a/devFolder/src/node_modules/@minecraft/server/package.json b/devFolder/src/node_modules/@minecraft/server/package.json index 4ad586a..3c303f2 100644 --- a/devFolder/src/node_modules/@minecraft/server/package.json +++ b/devFolder/src/node_modules/@minecraft/server/package.json @@ -1,6 +1,6 @@ { "name": "@minecraft/server", - "version": "1.14.0-rc.1.21.30-preview.23", + "version": "1.15.0-beta.1.21.30-stable", "description": "", "contributors": [ { diff --git a/node_modules/.bin/prettier b/node_modules/.bin/prettier index 92267ed..5944261 120000 --- a/node_modules/.bin/prettier +++ b/node_modules/.bin/prettier @@ -1 +1,16 @@ -../prettier/bin/prettier.cjs \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../prettier/bin/prettier.cjs" "$@" +else + exec node "$basedir/../prettier/bin/prettier.cjs" "$@" +fi diff --git a/node_modules/.bin/tsc b/node_modules/.bin/tsc index ba15036..eea8856 120000 --- a/node_modules/.bin/tsc +++ b/node_modules/.bin/tsc @@ -1 +1,16 @@ -../tsc/bin/tsc \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../tsc/bin/tsc" "$@" +else + exec node "$basedir/../tsc/bin/tsc" "$@" +fi diff --git a/node_modules/.bin/tsserver b/node_modules/.bin/tsserver index f8f8f1a..6c19ce3 120000 --- a/node_modules/.bin/tsserver +++ b/node_modules/.bin/tsserver @@ -1 +1,16 @@ -../typescript/bin/tsserver \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) + if command -v cygpath > /dev/null 2>&1; then + basedir=`cygpath -w "$basedir"` + fi + ;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@" +else + exec node "$basedir/../typescript/bin/tsserver" "$@" +fi diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index 0d8d050..7f08247 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -9,27 +9,26 @@ "integrity": "sha512-JdmEq4P3Z/FtoBzhLijFgMSVFnFRrUoLwY8DHHrgtFo0mfLTOLTB1RErYjLMsA6b7BGVNxkX/pfFRiH7QZ0XwQ==" }, "node_modules/@minecraft/server": { - "version": "1.14.0-rc.1.21.30-preview.23", - "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.14.0-rc.1.21.30-preview.23.tgz", - "integrity": "sha512-JyNBkouvzfWYJ6Ta3f81HNZA6W+RQniR+RqE+IlJlL1a2BpDBjV0TEtw7IX/cMADjhmqX+BbVRZVs8FGgofdGg==", + "version": "1.15.0-beta.1.21.30-stable", + "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.15.0-beta.1.21.30-stable.tgz", + "integrity": "sha512-t9NhnP2W+7agojr5IWXZnC4uy9SGfcIrSFEqvNxj/NaT29/DXtH+1nJq7wLa5kGwyBlG/lDz6/CpiWn4PBv+Kg==", "dependencies": { "@minecraft/common": "^1.1.0" } }, "node_modules/@minecraft/server-ui": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@minecraft/server-ui/-/server-ui-1.2.0.tgz", - "integrity": "sha512-5TNs9mp7jW1nbcybobL0Kmnc4ioOuadp9ys7hHna1lS0rYT0ssC7Ba6bZc+xb7QhIaVsxtt8ChZwOP+paT44ww==", - "license": "MIT", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@minecraft/server-ui/-/server-ui-1.3.0.tgz", + "integrity": "sha512-Vgo7s+gxjHaNmm8lYTW+HL1JguyZggsn1UB86++eqV1KoRlLnqJH1wBJU2OIb1kQ6HXH0pnL206pxmRy7lmmjg==", "dependencies": { "@minecraft/common": "^1.0.0", - "@minecraft/server": "^1.2.0" + "@minecraft/server": "^1.3.0" } }, "node_modules/@minecraft/server-ui/node_modules/@minecraft/server": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.13.0.tgz", - "integrity": "sha512-LYmYRLjZZ5b+AO2GArQorBBo6Ad18ZmdoK2jx7mmo7Jo/gFXLiSq2xEJuLb5WBXTaBg4rBiersQiAbTj3QjNHQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.14.0.tgz", + "integrity": "sha512-4oOdkbjD7UBwRUtmPcYvMmyxtDGyUipM6X4h1LjjwrZ07078q8su8F4Almj/R2Qn+e573mLJzQyGUhgtu071ZQ==", "dependencies": { "@minecraft/common": "^1.1.0" } @@ -173,6 +172,2339 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" }, + "node_modules/npm": { + "version": "10.8.3", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.8.3.tgz", + "integrity": "sha512-0IQlyAYvVtQ7uOhDFYZCGK8kkut2nh8cpAdA9E6FvRSJaTgtZRZgNjlC5ZCct//L73ygrpY93CxXpRJDtNqPVg==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/promise-spawn", + "@npmcli/redact", + "@npmcli/run-script", + "@sigstore/tuf", + "abbrev", + "archy", + "cacache", + "chalk", + "ci-info", + "cli-columns", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "ms", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "semver", + "spdx-expression-parse", + "ssri", + "supports-color", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^7.5.4", + "@npmcli/config": "^8.3.4", + "@npmcli/fs": "^3.1.1", + "@npmcli/map-workspaces": "^3.0.6", + "@npmcli/package-json": "^5.2.0", + "@npmcli/promise-spawn": "^7.0.2", + "@npmcli/redact": "^2.0.1", + "@npmcli/run-script": "^8.1.0", + "@sigstore/tuf": "^2.3.4", + "abbrev": "^2.0.0", + "archy": "~1.0.0", + "cacache": "^18.0.4", + "chalk": "^5.3.0", + "ci-info": "^4.0.0", + "cli-columns": "^4.0.0", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.3", + "glob": "^10.4.5", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^7.0.2", + "ini": "^4.1.3", + "init-package-json": "^6.0.3", + "is-cidr": "^5.1.0", + "json-parse-even-better-errors": "^3.0.2", + "libnpmaccess": "^8.0.6", + "libnpmdiff": "^6.1.4", + "libnpmexec": "^8.1.4", + "libnpmfund": "^5.0.12", + "libnpmhook": "^10.0.5", + "libnpmorg": "^6.0.6", + "libnpmpack": "^7.0.4", + "libnpmpublish": "^9.0.9", + "libnpmsearch": "^7.0.6", + "libnpmteam": "^6.0.5", + "libnpmversion": "^6.0.3", + "make-fetch-happen": "^13.0.1", + "minimatch": "^9.0.5", + "minipass": "^7.1.1", + "minipass-pipeline": "^1.2.4", + "ms": "^2.1.2", + "node-gyp": "^10.2.0", + "nopt": "^7.2.1", + "normalize-package-data": "^6.0.2", + "npm-audit-report": "^5.0.0", + "npm-install-checks": "^6.3.0", + "npm-package-arg": "^11.0.3", + "npm-pick-manifest": "^9.1.0", + "npm-profile": "^10.0.0", + "npm-registry-fetch": "^17.1.0", + "npm-user-validate": "^2.0.1", + "p-map": "^4.0.0", + "pacote": "^18.0.6", + "parse-conflict-json": "^3.0.1", + "proc-log": "^4.2.0", + "qrcode-terminal": "^0.12.0", + "read": "^3.0.1", + "semver": "^7.6.3", + "spdx-expression-parse": "^4.0.0", + "ssri": "^10.0.6", + "supports-color": "^9.4.0", + "tar": "^6.2.1", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^3.0.0", + "validate-npm-package-name": "^5.0.1", + "which": "^4.0.0", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "2.2.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "7.5.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^3.1.1", + "@npmcli/installed-package-contents": "^2.1.0", + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/metavuln-calculator": "^7.1.1", + "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.1.0", + "@npmcli/query": "^3.1.0", + "@npmcli/redact": "^2.0.0", + "@npmcli/run-script": "^8.1.0", + "bin-links": "^4.0.4", + "cacache": "^18.0.3", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^7.0.2", + "json-parse-even-better-errors": "^3.0.2", + "json-stringify-nice": "^1.1.4", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^7.2.1", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.2", + "npm-pick-manifest": "^9.0.1", + "npm-registry-fetch": "^17.0.1", + "pacote": "^18.0.6", + "parse-conflict-json": "^3.0.0", + "proc-log": "^4.2.0", + "proggy": "^2.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^10.0.6", + "treeverse": "^3.0.0", + "walk-up-path": "^3.0.1" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "8.3.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/package-json": "^5.1.1", + "ci-info": "^4.0.0", + "ini": "^4.1.2", + "nopt": "^7.2.1", + "proc-log": "^4.2.0", + "semver": "^7.3.5", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "5.0.8", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "2.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "3.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0", + "read-package-json-fast": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "7.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^18.0.0", + "json-parse-even-better-errors": "^3.0.0", + "pacote": "^18.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "5.2.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "7.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "3.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "8.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/@sigstore/bundle": { + "version": "2.3.2", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/core": { + "version": "1.1.0", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign": { + "version": "2.3.2", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "2.3.4", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "1.2.1", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/models": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/aggregate-error": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "6.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "4.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "read-cmd-shim": "^4.0.0", + "write-file-atomic": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.3.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "18.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "5.3.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ci-info": { + "version": "4.0.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "4.1.1", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/clean-stack": { + "version": "2.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "6.0.3", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.3.6", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/diff": { + "version": "5.2.0", + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.16", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/npm/node_modules/foreground-child": { + "version": "3.3.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "3.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "10.4.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.11", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "7.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "7.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "7.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "6.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/indent-string": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ini": { + "version": "4.1.3", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "6.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/package-json": "^5.0.0", + "npm-package-arg": "^11.0.0", + "promzard": "^1.0.0", + "read": "^3.0.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "5.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "5.1.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^4.1.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-lambda": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jackspeak": { + "version": "3.4.3", + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/npm/node_modules/jsbn": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "6.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.5.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "8.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "6.1.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4", + "@npmcli/installed-package-contents": "^2.1.0", + "binary-extensions": "^2.3.0", + "diff": "^5.1.0", + "minimatch": "^9.0.4", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6", + "tar": "^6.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "8.1.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4", + "@npmcli/run-script": "^8.1.0", + "ci-info": "^4.0.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6", + "proc-log": "^4.2.0", + "read": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "5.0.12", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "10.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "6.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "7.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4", + "@npmcli/run-script": "^8.1.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "9.0.9", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ci-info": "^4.0.0", + "normalize-package-data": "^6.0.1", + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.2.0", + "semver": "^7.3.7", + "sigstore": "^2.2.0", + "ssri": "^10.0.6" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "7.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "6.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "6.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.7", + "@npmcli/run-script": "^8.1.0", + "json-parse-even-better-errors": "^3.0.2", + "proc-log": "^4.2.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "10.4.3", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "13.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "9.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "7.1.2", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "3.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "1.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.3", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "10.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "7.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "6.0.2", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "6.3.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "11.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "9.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "10.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "17.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "2.0.1", + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/package-json-from-dist": { + "version": "1.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/npm/node_modules/pacote": { + "version": "18.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^8.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/path-scurry": { + "version": "1.11.1", + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "4.2.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/proggy": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "^3.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "3.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.6.3", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/sigstore": { + "version": "2.3.1", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.8.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "8.0.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.2.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.5.0", + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.18", + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/ssri": { + "version": "10.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "9.4.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js": { + "version": "2.2.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "2.0.1", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "5.0.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/walk-up-path": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/which": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "5.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC" + }, "node_modules/path": { "version": "0.12.7", "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", diff --git a/node_modules/@minecraft/server-ui/index.d.ts b/node_modules/@minecraft/server-ui/index.d.ts index 9c804be..2078a24 100644 --- a/node_modules/@minecraft/server-ui/index.d.ts +++ b/node_modules/@minecraft/server-ui/index.d.ts @@ -42,7 +42,7 @@ * ```json * { * "module_name": "@minecraft/server-ui", - * "version": "1.2.0" + * "version": "1.3.0" * } * ``` * @@ -438,8 +438,21 @@ export class ModalFormResponse extends FormResponse { readonly formValues?: (boolean | number | string)[]; } +export class UIManager { + private constructor(); + /** + * @remarks + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + closeAllForms(player: minecraftserver.Player): void; +} + // @ts-ignore Class inheritance allowed for native defined classes export class FormRejectError extends Error { private constructor(); reason: FormRejectReason; } + +export const uiManager: UIManager; diff --git a/node_modules/@minecraft/server-ui/node_modules/@minecraft/server/index.d.ts b/node_modules/@minecraft/server-ui/node_modules/@minecraft/server/index.d.ts index 7034750..65a9d90 100644 --- a/node_modules/@minecraft/server-ui/node_modules/@minecraft/server/index.d.ts +++ b/node_modules/@minecraft/server-ui/node_modules/@minecraft/server/index.d.ts @@ -15,7 +15,7 @@ * ```json * { * "module_name": "@minecraft/server", - * "version": "1.13.0" + * "version": "1.14.0" * } * ``` * @@ -40,6 +40,12 @@ export enum BlockComponentTypes { * */ Piston = 'minecraft:piston', + /** + * @remarks + * Represents a block that can play a record. + * + */ + RecordPlayer = 'minecraft:record_player', /** * @remarks * Represents a block that can display text on it. @@ -366,6 +372,7 @@ export enum EntityComponentTypes { * */ Color2 = 'minecraft:color2', + CursorInventory = 'minecraft:cursor_inventory', /** * @remarks * Provides access to a mob's equipment slots. This component @@ -702,6 +709,12 @@ export enum EntityComponentTypes { * */ SkinId = 'minecraft:skin_id', + /** + * @remarks + * Defines the entity's strength to carry items. + * + */ + Strength = 'minecraft:strength', /** * @remarks * Defines the rules for an entity to be tamed by the player. @@ -856,6 +869,7 @@ export enum EntityDamageCause { * */ lightning = 'lightning', + maceSmash = 'maceSmash', /** * @remarks * Damage caused by magical attacks. For example, Evoker Fang @@ -2849,6 +2863,68 @@ export class BlockPistonComponent extends BlockComponent { getAttachedBlocksLocations(): Vector3[]; } +/** + * Represents a block that can play a record. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockRecordPlayerComponent extends BlockComponent { + private constructor(); + static readonly componentId = 'minecraft:record_player'; + /** + * @remarks + * Ejects the currently set record of this record-playing + * block. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + ejectRecord(): void; + /** + * @remarks + * Gets the currently set record of this record-playing block. + * + * @throws This function can throw errors. + */ + getRecord(): ItemStack | undefined; + /** + * @remarks + * Returns true if the record-playing block is currently + * playing a record. + * + * @throws This function can throw errors. + */ + isPlaying(): boolean; + /** + * @remarks + * Pauses the currently playing record of this record-playing + * block. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + pauseRecord(): void; + /** + * @remarks + * Plays the currently set record of this record-playing block. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + playRecord(): void; + /** + * @remarks + * Sets and plays a record based on an item type. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + setRecord(recordItemType?: ItemType | string, startPlaying?: boolean): void; +} + /** * Represents a block that can display text on it. * @example addTwoSidedSign.ts @@ -4234,8 +4310,15 @@ export class Dimension { getPlayers(options?: EntityQueryOptions): Player[]; /** * @remarks + * Returns the highest block at the given XZ location. + * * This function can't be called in read-only mode. * + * @param locationXZ + * Location to retrieve the topmost block for. + * @param minHeight + * The Y height to begin the search from. Defaults to the + * maximum dimension height. * @throws This function can throw errors. */ getTopmostBlock(locationXZ: VectorXZ, minHeight?: number): Block | undefined; @@ -4742,6 +4825,8 @@ export class EffectTypes { * * This function can't be called in read-only mode. * + * @param identifier + * The identifier for the effect. * @returns * Effect type for the given identifier or undefined if the * effect does not exist. @@ -7819,6 +7904,33 @@ export class EntitySpawnAfterEventSignal { unsubscribe(callback: (arg: EntitySpawnAfterEvent) => void): void; } +/** + * Defines the entity's ability to carry items. An entity with + * a higher strength would have higher potential carry capacity + * and more item slots. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class EntityStrengthComponent extends EntityComponent { + private constructor(); + /** + * @remarks + * Maximum strength of this entity, as defined in the entity + * type definition. + * + * @throws This property can throw when used. + */ + readonly max: number; + /** + * @remarks + * Current value of the strength component that has been set + * for entities. + * + * @throws This property can throw when used. + */ + readonly value: number; + static readonly componentId = 'minecraft:strength'; +} + /** * Defines the rules for an entity to be tamed by the player. */ @@ -10884,6 +10996,33 @@ export class PlayerBreakBlockBeforeEventSignal { unsubscribe(callback: (arg: PlayerBreakBlockBeforeEvent) => void): void; } +/** + * Represents the players cursor inventory. Used when moving + * items between between containers in the inventory UI. Not + * used with touch controls. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class PlayerCursorInventoryComponent extends EntityComponent { + private constructor(); + /** + * @remarks + * The ItemStack currently in the players cursor inventory. + * + * @throws This property can throw when used. + */ + readonly item?: ItemStack; + static readonly componentId = 'minecraft:cursor_inventory'; + /** + * @remarks + * Clears the players cursor inventory. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + clear(): void; +} + /** * Contains information related to changes to a player's * dimension having been changed. @@ -10949,6 +11088,28 @@ export class PlayerDimensionChangeAfterEventSignal { unsubscribe(callback: (arg: PlayerDimensionChangeAfterEvent) => void): void; } +export class PlayerEmoteAfterEvent { + private constructor(); + readonly personaPieceId: string; + readonly player: Player; +} + +export class PlayerEmoteAfterEventSignal { + private constructor(); + /** + * @remarks + * This function can't be called in read-only mode. + * + */ + subscribe(callback: (arg: PlayerEmoteAfterEvent) => void): (arg: PlayerEmoteAfterEvent) => void; + /** + * @remarks + * This function can't be called in read-only mode. + * + */ + unsubscribe(callback: (arg: PlayerEmoteAfterEvent) => void): void; +} + /** * Contains information regarding an event after a players game * mode is changed. @@ -11137,7 +11298,7 @@ export class PlayerInputPermissions { /** * Contains information regarding an event after a player - * interacts with a block. + * successfully interacts with a block. */ export class PlayerInteractWithBlockAfterEvent { private constructor(); @@ -11162,8 +11323,8 @@ export class PlayerInteractWithBlockAfterEvent { readonly faceLocation: Vector3; /** * @remarks - * The item stack that is being used in the interaction, or - * undefined if empty hand. + * The ItemStack after the interaction succeeded, or undefined + * if hand is empty. * */ readonly itemStack?: ItemStack; @@ -11279,14 +11440,14 @@ export class PlayerInteractWithBlockBeforeEventSignal { /** * Contains information regarding an event after a player - * interacts with an entity. + * successfully interacts with an entity. */ export class PlayerInteractWithEntityAfterEvent { private constructor(); /** * @remarks - * The item stack that is being used in the interaction, or - * undefined if empty hand. + * The ItemStack after the interaction succeeded, or undefined + * if hand is empty. * */ readonly itemStack?: ItemStack; @@ -13791,6 +13952,7 @@ export class WorldAfterEvents { * */ readonly playerDimensionChange: PlayerDimensionChangeAfterEventSignal; + readonly playerEmote: PlayerEmoteAfterEventSignal; readonly playerGameModeChange: PlayerGameModeChangeAfterEventSignal; /** * @remarks @@ -14642,6 +14804,7 @@ export interface EntityFilter { * */ name?: string; + propertyOptions?: EntityQueryPropertyOptions[]; /** * @remarks * Gets/sets a collection of EntityQueryScoreOptions objects @@ -14894,6 +15057,21 @@ export interface EntityQueryOptions extends EntityFilter { volume?: Vector3; } +export interface EntityQueryPropertyOptions { + exclude?: boolean; + propertyId: string; + value?: + | boolean + | string + | EqualsComparison + | GreaterThanComparison + | GreaterThanOrEqualsComparison + | LessThanComparison + | LessThanOrEqualsComparison + | NotEqualsComparison + | RangeComparison; +} + /** * Contains additional options for filtering players based on * their score for an objective. @@ -14980,6 +15158,18 @@ export interface EntityRaycastOptions extends EntityFilter { maxDistance?: number; } +/** + * Equal to operator. + */ +export interface EqualsComparison { + /** + * @remarks + * Threshold value compared against. + * + */ + equals: boolean | number | string; +} + /** * Additional configuration options for the {@link * Dimension.createExplosion} method. @@ -15029,6 +15219,30 @@ export interface ExplosionOptions { source?: Entity; } +/** + * Greater than operator. + */ +export interface GreaterThanComparison { + /** + * @remarks + * Threshold value compared against. + * + */ + greaterThan: number; +} + +/** + * Greater than or equal to operator. + */ +export interface GreaterThanOrEqualsComparison { + /** + * @remarks + * Threshold value compared against. + * + */ + greaterThanOrEquals: number; +} + /** * Contains a set of events that will be raised for an item. * This object must be bound using the ItemComponentRegistry. @@ -15086,6 +15300,30 @@ export interface ItemCustomComponent { onUseOn?: (arg: ItemComponentUseOnEvent) => void; } +/** + * Less than operator. + */ +export interface LessThanComparison { + /** + * @remarks + * Threshold value compared against. + * + */ + lessThan: number; +} + +/** + * Less than or equal to operator. + */ +export interface LessThanOrEqualsComparison { + /** + * @remarks + * Threshold value compared against. + * + */ + lessThanOrEquals: number; +} + /** * Additional configuration options for {@link * World.playMusic}/{@link World.queueMusic} methods. @@ -15111,6 +15349,18 @@ export interface MusicOptions { volume?: number; } +/** + * Not equal to operator. + */ +export interface NotEqualsComparison { + /** + * @remarks + * Threshold value compared against. + * + */ + notEquals: boolean | number | string; +} + /** * Contains additional options for how an animation is played. */ @@ -15188,6 +15438,25 @@ export interface ProjectileShootOptions { uncertainty?: number; } +/** + * Operator represents a lower/upper bound structure for + * expressing a potential range of numbers. + */ +export interface RangeComparison { + /** + * @remarks + * Lower bound within a range. + * + */ + lowerBound: number; + /** + * @remarks + * Upper bound within a range. + * + */ + upperBound: number; +} + /** * Defines a JSON structure that is used for more flexible. * @example addTranslatedSign.ts diff --git a/node_modules/@minecraft/server-ui/node_modules/@minecraft/server/package.json b/node_modules/@minecraft/server-ui/node_modules/@minecraft/server/package.json index fc43a51..4264794 100644 --- a/node_modules/@minecraft/server-ui/node_modules/@minecraft/server/package.json +++ b/node_modules/@minecraft/server-ui/node_modules/@minecraft/server/package.json @@ -1,6 +1,6 @@ { "name": "@minecraft/server", - "version": "1.13.0", + "version": "1.14.0", "description": "", "contributors": [ { diff --git a/node_modules/@minecraft/server-ui/package.json b/node_modules/@minecraft/server-ui/package.json index 991f25c..d7967ed 100644 --- a/node_modules/@minecraft/server-ui/package.json +++ b/node_modules/@minecraft/server-ui/package.json @@ -1,6 +1,6 @@ { "name": "@minecraft/server-ui", - "version": "1.2.0", + "version": "1.3.0", "description": "", "contributors": [ { @@ -14,7 +14,7 @@ ], "dependencies": { "@minecraft/common": "^1.0.0", - "@minecraft/server": "^1.2.0" + "@minecraft/server": "^1.3.0" }, "license": "MIT" } \ No newline at end of file diff --git a/node_modules/@minecraft/server/index.d.ts b/node_modules/@minecraft/server/index.d.ts index a32f321..36999e8 100644 --- a/node_modules/@minecraft/server/index.d.ts +++ b/node_modules/@minecraft/server/index.d.ts @@ -7,7 +7,7 @@ Copyright (c) Microsoft Corporation. ***************************************************************************** */ /** - * @preview + * @beta * @packageDocumentation * Contains many types related to manipulating a Minecraft * world, including entities, blocks, dimensions, and more. @@ -16,7 +16,7 @@ * ```json * { * "module_name": "@minecraft/server", - * "version": "1.14.0" + * "version": "1.15.0-beta" * } * ``` * @@ -34,6 +34,14 @@ export enum BlockComponentTypes { * */ Inventory = 'minecraft:inventory', + /** + * @beta + * @remarks + * Represents a fluid container block that currently contains + * lava. + * + */ + LavaContainer = 'minecraft:lavaContainer', /** * @remarks * When present, this block has piston-like behavior. Contains @@ -42,7 +50,14 @@ export enum BlockComponentTypes { */ Piston = 'minecraft:piston', /** - * @rc + * @beta + * @remarks + * Represents a fluid container block that currently contains a + * potion. + * + */ + PotionContainer = 'minecraft:potionContainer', + /** * @remarks * Represents a block that can play a record. * @@ -54,6 +69,22 @@ export enum BlockComponentTypes { * */ Sign = 'minecraft:sign', + /** + * @beta + * @remarks + * Represents a fluid container block that currently contains + * snow. + * + */ + SnowContainer = 'minecraft:snowContainer', + /** + * @beta + * @remarks + * Represents a fluid container block that currently contains + * water. + * + */ + WaterContainer = 'minecraft:waterContainer', } /** @@ -86,11 +117,118 @@ export enum BlockPistonState { Retracting = 'Retracting', } +/** + * @beta + * Description of the resulting intersection test on two + * BlockVolume objects + */ +export enum BlockVolumeIntersection { + /** + * @remarks + * Volume B has no intersection points with Volume A + * + */ + Disjoint = 0, + /** + * @remarks + * Volume B resides completely inside Volume A + * + */ + Contains = 1, + /** + * @remarks + * Volume B partially intersects Volume A + * + */ + Intersects = 2, +} + +/** + * @beta + * The Action enum determines how the CompoundBlockVolume + * considers the associated CompoundBlockVolumeItem when + * performing inside/outside calculations. + */ +export enum CompoundBlockVolumeAction { + /** + * @remarks + * The associated BlockVolume is considered a positive space, + * and any intersection tests are considered hits + * + */ + Add = 0, + /** + * @remarks + * The associated BlockVolume is considered a negative or void + * space, and any intersection tests are considered misses. + * Using the Subtract action, it is possible to `punch holes` + * in block volumes so that any intersection tests may pass + * through such spaces + * + */ + Subtract = 1, +} + +/** + * @beta + * An enum describing the relativity of the + * CompoundBlockVolumeItem, relative to the parent + * CompoundVolume. + */ +export enum CompoundBlockVolumePositionRelativity { + /** + * @remarks + * The locations within the associated BlockVolume are relative + * to the CompoundBlockVolume to which they were added + * + */ + Relative = 0, + /** + * @remarks + * The locations within the associated BlockVolume are in + * absolute world space + * + */ + Absolute = 1, +} + export enum CustomComponentNameErrorReason { NoNamespace = 1, DisallowedNamespace = 2, } +/** + * @beta + * An enumeration for the various difficulty levels of + * Minecraft. + */ +export enum Difficulty { + /** + * @remarks + * Peaceful difficulty level. + * + */ + Peaceful = 0, + /** + * @remarks + * Easy difficulty level. + * + */ + Easy = 1, + /** + * @remarks + * Normal difficulty level. + * + */ + Normal = 2, + /** + * @remarks + * Hard difficulty level. + * + */ + Hard = 3, +} + /** * A general purpose relative direction enumeration. */ @@ -336,6 +474,14 @@ export enum EntityComponentTypes { * */ Ageable = 'minecraft:ageable', + /** + * @beta + * @remarks + * Defines what blocks this entity can breathe in and gives + * them the ability to suffocate. + * + */ + Breathable = 'minecraft:breathable', /** * @remarks * When added, this component signifies that the entity can @@ -374,9 +520,6 @@ export enum EntityComponentTypes { * */ Color2 = 'minecraft:color2', - /** - * @rc - */ CursorInventory = 'minecraft:cursor_inventory', /** * @remarks @@ -666,6 +809,14 @@ export enum EntityComponentTypes { * */ NavigationWalk = 'minecraft:navigation.walk', + /** + * @beta + * @remarks + * Adds NPC capabilities to an entity such as custom skin, + * name, and dialogue interactions. + * + */ + Npc = 'minecraft:npc', /** * @remarks * When present on an entity, this entity is on fire. @@ -1044,6 +1195,14 @@ export enum EntityInitializationCause { * and mainhand slots. */ export enum EquipmentSlot { + /** + * @beta + * @remarks + * The body slot. This slot is used to hold armor for + * non-humanoid mobs. + * + */ + Body = 'Body', /** * @remarks * The chest slot. This slot is used to hold items such as @@ -1508,6 +1667,10 @@ export enum ItemComponentTypes { * */ Food = 'minecraft:food', + /** + * @beta + */ + Potion = 'minecraft:potion', } /** @@ -1959,6 +2122,29 @@ export enum TimeOfDay { Sunrise = 23000, } +/** + * @beta + * An enumeration with the reason that a watchdog is deciding + * to terminate execution of a behavior packs' script. + */ +export enum WatchdogTerminateReason { + /** + * @remarks + * Script runtime for a behavior pack is terminated due to + * non-responsiveness from script (a hang or infinite loop). + * + */ + Hang = 'Hang', + /** + * @remarks + * Script runtime for a behavior pack is terminated due to a + * stack overflow (a long, and potentially infinite) chain of + * function calls. + * + */ + StackOverflow = 'StackOverflow', +} + /** * Used to specify the type of weather condition within the * world. @@ -1984,6 +2170,223 @@ export enum WeatherType { Thunder = 'Thunder', } +/** + * @beta + */ +export type BlockComponentTypeMap = { + inventory: BlockInventoryComponent; + lavaContainer: BlockLavaContainerComponent; + 'minecraft:inventory': BlockInventoryComponent; + 'minecraft:lavaContainer': BlockLavaContainerComponent; + 'minecraft:piston': BlockPistonComponent; + 'minecraft:potionContainer': BlockPotionContainerComponent; + 'minecraft:record_player': BlockRecordPlayerComponent; + 'minecraft:sign': BlockSignComponent; + 'minecraft:snowContainer': BlockSnowContainerComponent; + 'minecraft:waterContainer': BlockWaterContainerComponent; + piston: BlockPistonComponent; + potionContainer: BlockPotionContainerComponent; + record_player: BlockRecordPlayerComponent; + sign: BlockSignComponent; + snowContainer: BlockSnowContainerComponent; + waterContainer: BlockWaterContainerComponent; +}; + +/** + * @beta + */ +export type EntityComponentTypeMap = { + addrider: EntityAddRiderComponent; + ageable: EntityAgeableComponent; + breathable: EntityBreathableComponent; + can_climb: EntityCanClimbComponent; + can_fly: EntityCanFlyComponent; + can_power_jump: EntityCanPowerJumpComponent; + color: EntityColorComponent; + color2: EntityColor2Component; + cursor_inventory: PlayerCursorInventoryComponent; + equippable: EntityEquippableComponent; + fire_immune: EntityFireImmuneComponent; + floats_in_liquid: EntityFloatsInLiquidComponent; + flying_speed: EntityFlyingSpeedComponent; + friction_modifier: EntityFrictionModifierComponent; + ground_offset: EntityGroundOffsetComponent; + healable: EntityHealableComponent; + health: EntityHealthComponent; + inventory: EntityInventoryComponent; + is_baby: EntityIsBabyComponent; + is_charged: EntityIsChargedComponent; + is_chested: EntityIsChestedComponent; + is_dyeable: EntityIsDyeableComponent; + is_hidden_when_invisible: EntityIsHiddenWhenInvisibleComponent; + is_ignited: EntityIsIgnitedComponent; + is_illager_captain: EntityIsIllagerCaptainComponent; + is_saddled: EntityIsSaddledComponent; + is_shaking: EntityIsShakingComponent; + is_sheared: EntityIsShearedComponent; + is_stackable: EntityIsStackableComponent; + is_stunned: EntityIsStunnedComponent; + is_tamed: EntityIsTamedComponent; + item: EntityItemComponent; + lava_movement: EntityLavaMovementComponent; + leashable: EntityLeashableComponent; + mark_variant: EntityMarkVariantComponent; + 'minecraft:addrider': EntityAddRiderComponent; + 'minecraft:ageable': EntityAgeableComponent; + 'minecraft:breathable': EntityBreathableComponent; + 'minecraft:can_climb': EntityCanClimbComponent; + 'minecraft:can_fly': EntityCanFlyComponent; + 'minecraft:can_power_jump': EntityCanPowerJumpComponent; + 'minecraft:color': EntityColorComponent; + 'minecraft:color2': EntityColor2Component; + 'minecraft:cursor_inventory': PlayerCursorInventoryComponent; + 'minecraft:equippable': EntityEquippableComponent; + 'minecraft:fire_immune': EntityFireImmuneComponent; + 'minecraft:floats_in_liquid': EntityFloatsInLiquidComponent; + 'minecraft:flying_speed': EntityFlyingSpeedComponent; + 'minecraft:friction_modifier': EntityFrictionModifierComponent; + 'minecraft:ground_offset': EntityGroundOffsetComponent; + 'minecraft:healable': EntityHealableComponent; + 'minecraft:health': EntityHealthComponent; + 'minecraft:inventory': EntityInventoryComponent; + 'minecraft:is_baby': EntityIsBabyComponent; + 'minecraft:is_charged': EntityIsChargedComponent; + 'minecraft:is_chested': EntityIsChestedComponent; + 'minecraft:is_dyeable': EntityIsDyeableComponent; + 'minecraft:is_hidden_when_invisible': EntityIsHiddenWhenInvisibleComponent; + 'minecraft:is_ignited': EntityIsIgnitedComponent; + 'minecraft:is_illager_captain': EntityIsIllagerCaptainComponent; + 'minecraft:is_saddled': EntityIsSaddledComponent; + 'minecraft:is_shaking': EntityIsShakingComponent; + 'minecraft:is_sheared': EntityIsShearedComponent; + 'minecraft:is_stackable': EntityIsStackableComponent; + 'minecraft:is_stunned': EntityIsStunnedComponent; + 'minecraft:is_tamed': EntityIsTamedComponent; + 'minecraft:item': EntityItemComponent; + 'minecraft:lava_movement': EntityLavaMovementComponent; + 'minecraft:leashable': EntityLeashableComponent; + 'minecraft:mark_variant': EntityMarkVariantComponent; + 'minecraft:movement': EntityMovementComponent; + 'minecraft:movement.amphibious': EntityMovementAmphibiousComponent; + 'minecraft:movement.basic': EntityMovementBasicComponent; + 'minecraft:movement.fly': EntityMovementFlyComponent; + 'minecraft:movement.generic': EntityMovementGenericComponent; + 'minecraft:movement.glide': EntityMovementGlideComponent; + 'minecraft:movement.hover': EntityMovementHoverComponent; + 'minecraft:movement.jump': EntityMovementJumpComponent; + 'minecraft:movement.skip': EntityMovementSkipComponent; + 'minecraft:movement.sway': EntityMovementSwayComponent; + 'minecraft:navigation.climb': EntityNavigationClimbComponent; + 'minecraft:navigation.float': EntityNavigationFloatComponent; + 'minecraft:navigation.fly': EntityNavigationFlyComponent; + 'minecraft:navigation.generic': EntityNavigationGenericComponent; + 'minecraft:navigation.hover': EntityNavigationHoverComponent; + 'minecraft:navigation.walk': EntityNavigationWalkComponent; + 'minecraft:npc': EntityNpcComponent; + 'minecraft:onfire': EntityOnFireComponent; + 'minecraft:projectile': EntityProjectileComponent; + 'minecraft:push_through': EntityPushThroughComponent; + 'minecraft:rideable': EntityRideableComponent; + 'minecraft:riding': EntityRidingComponent; + 'minecraft:scale': EntityScaleComponent; + 'minecraft:skin_id': EntitySkinIdComponent; + 'minecraft:strength': EntityStrengthComponent; + 'minecraft:tameable': EntityTameableComponent; + 'minecraft:tamemount': EntityTameMountComponent; + 'minecraft:type_family': EntityTypeFamilyComponent; + 'minecraft:underwater_movement': EntityUnderwaterMovementComponent; + 'minecraft:variant': EntityVariantComponent; + 'minecraft:wants_jockey': EntityWantsJockeyComponent; + movement: EntityMovementComponent; + 'movement.amphibious': EntityMovementAmphibiousComponent; + 'movement.basic': EntityMovementBasicComponent; + 'movement.fly': EntityMovementFlyComponent; + 'movement.generic': EntityMovementGenericComponent; + 'movement.glide': EntityMovementGlideComponent; + 'movement.hover': EntityMovementHoverComponent; + 'movement.jump': EntityMovementJumpComponent; + 'movement.skip': EntityMovementSkipComponent; + 'movement.sway': EntityMovementSwayComponent; + 'navigation.climb': EntityNavigationClimbComponent; + 'navigation.float': EntityNavigationFloatComponent; + 'navigation.fly': EntityNavigationFlyComponent; + 'navigation.generic': EntityNavigationGenericComponent; + 'navigation.hover': EntityNavigationHoverComponent; + 'navigation.walk': EntityNavigationWalkComponent; + npc: EntityNpcComponent; + onfire: EntityOnFireComponent; + projectile: EntityProjectileComponent; + push_through: EntityPushThroughComponent; + rideable: EntityRideableComponent; + riding: EntityRidingComponent; + scale: EntityScaleComponent; + skin_id: EntitySkinIdComponent; + strength: EntityStrengthComponent; + tameable: EntityTameableComponent; + tamemount: EntityTameMountComponent; + type_family: EntityTypeFamilyComponent; + underwater_movement: EntityUnderwaterMovementComponent; + variant: EntityVariantComponent; + wants_jockey: EntityWantsJockeyComponent; +}; + +/** + * @beta + */ +export type ItemComponentTypeMap = { + cooldown: ItemCooldownComponent; + durability: ItemDurabilityComponent; + enchantable: ItemEnchantableComponent; + food: ItemFoodComponent; + 'minecraft:cooldown': ItemCooldownComponent; + 'minecraft:durability': ItemDurabilityComponent; + 'minecraft:enchantable': ItemEnchantableComponent; + 'minecraft:food': ItemFoodComponent; + 'minecraft:potion': ItemPotionComponent; + potion: ItemPotionComponent; +}; + +/** + * @beta + * Describes a type of biome. + */ +export class BiomeType { + private constructor(); + /** + * @remarks + * Identifier of the biome type. + * + */ + readonly id: string; +} + +/** + * @beta + * Supports a catalog of available biome types registered + * within Minecraft. + */ +export class BiomeTypes { + private constructor(); + /** + * @remarks + * Returns a specific biome type. + * + * @param typeName + * Identifier of the biome. Generally, namespaced identifiers + * (e.g., minecraft:frozen_peaks) should be used. + * @returns + * If the biome exists, a BiomeType object is returned. If not, + * undefined is returned. + */ + static get(typeName: string): BiomeType | undefined; + /** + * @remarks + * Returns all registered biome types within Minecraft + * + */ + static getAll(): BiomeType[]; +} + /** * Represents a block in a dimension. A block represents a * unique X, Y, and Z within a dimension and get/sets the state @@ -2024,6 +2427,32 @@ export class Block { * {@link LocationOutOfWorldBoundariesError} */ readonly isLiquid: boolean; + /** + * @beta + * @remarks + * Returns true if this block is solid and impassible - (e.g., + * a cobblestone block and a diamond block are solid, while a + * ladder block and a fence block are not). + * + * @throws This property can throw when used. + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + readonly isSolid: boolean; + /** + * @beta + * @remarks + * Returns or sets whether this block has a liquid on it. + * + * @throws This property can throw when used. + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + readonly isWaterlogged: boolean; /** * @remarks * Coordinates of the specified block. @@ -2120,6 +2549,30 @@ export class Block { * */ bottomCenter(): Vector3; + /** + * @beta + * @remarks + * Checks to see whether it is valid to place the specified + * block type or block permutation, on a specified face on this + * block + * + * @param blockToPlace + * Block type or block permutation to check placement for. + * @param faceToPlaceOn + * Optional specific face of this block to check placement + * against. + * @returns + * Returns `true` if the block type or permutation can be + * placed on this block, else `false`. + * @throws This function can throw errors. + * + * {@link Error} + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + canPlace(blockToPlace: BlockPermutation | BlockType | string, faceToPlaceOn?: Direction): boolean; /** * @remarks * Returns the {@link Vector3} of the center of this block on @@ -2161,7 +2614,7 @@ export class Block { * * {@link LocationOutOfWorldBoundariesError} */ - getComponent(componentId: string): BlockComponent | undefined; + getComponent(componentId: T): BlockComponentTypeMap[T] | undefined; /** * @remarks * Creates a prototype item stack based on this block that can @@ -2183,6 +2636,30 @@ export class Block { * {@link LocationOutOfWorldBoundariesError} */ getItemStack(amount?: number, withData?: boolean): ItemStack | undefined; + /** + * @beta + * @throws This function can throw errors. + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + getMapColor(): RGBA; + /** + * @beta + * @remarks + * Returns the net redstone power of this block. + * + * @returns + * Returns undefined if redstone power is not applicable to + * this block. + * @throws This function can throw errors. + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + getRedstonePower(): number | undefined; /** * @remarks * Returns a set of tags for a block. @@ -2318,6 +2795,25 @@ export class Block { * {@link LocationOutOfWorldBoundariesError} */ setType(blockType: BlockType | string): void; + /** + * @beta + * @remarks + * Sets whether this block has a water logged state - for + * example, whether stairs are submerged within water. + * + * This function can't be called in read-only mode. + * + * @param isWaterlogged + * true if the block should have water within it. + * @throws This function can throw errors. + * + * {@link Error} + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + setWaterlogged(isWaterlogged: boolean): void; /** * @remarks * Returns the {@link Block} to the south of this block @@ -2332,6 +2828,27 @@ export class Block { * {@link LocationOutOfWorldBoundariesError} */ south(steps?: number): Block | undefined; + /** + * @beta + * @remarks + * Tries to set the block in the dimension to the state of the + * permutation by first checking if the placement is valid. + * + * This function can't be called in read-only mode. + * + * @param permutation + * Permutation that contains a set of property states for the + * Block. + * @returns + * Returns `true` if the block permutation data was + * successfully set, else `false`. + * @throws This function can throw errors. + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + */ + trySetPermutation(permutation: BlockPermutation): boolean; /** * @remarks * Returns the {@link Block} to the west of this block @@ -2655,6 +3172,82 @@ export class BlockInventoryComponent extends BlockComponent { static readonly componentId = 'minecraft:inventory'; } +/** + * @beta + * Represents a fluid container block that currently contains + * lava. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockLavaContainerComponent extends BlockLiquidContainerComponent { + private constructor(); + static readonly componentId = 'minecraft:lavaContainer'; +} + +/** + * @beta + * For blocks that can contain a liquid (e.g., a cauldron), + * this is a base component for liquid containers. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockLiquidContainerComponent extends BlockComponent { + private constructor(); + /** + * @remarks + * Relative fill level of the liquid container. + * + * This property can't be edited in read-only mode. + * + */ + fillLevel: number; + /** + * @remarks + * Returns true if this reference to a liquid container is + * still valid and contains the liquid of the type you have a + * reference for (for example, if the block is unloaded, no + * longer a liquid container or contains lava when you have a + * potion container component, isValidLiquid will not be true.) + * + * @returns + * True if this liquid container still exists, is valid and + * contains the expected liquid type. + */ + isValidLiquid(): boolean; +} + +/** + * @beta + * A BlockLocationIterator returns the next block location of + * the block volume across which it is iterating. + * The BlockLocationIterator is used to abstract the shape of + * the block volume it was fetched from (so it can represent + * all the block locations that make up rectangles, cubes, + * spheres, lines and complex shapes). + * Each iteration pass returns the next valid block location in + * the parent shape. + * Unless otherwise specified by the parent shape - the + * BlockLocationIterator will iterate over a 3D space in the + * order of increasing X, followed by increasing Z followed by + * increasing Y. + * (Effectively stepping across the XZ plane, and when all the + * locations in that plane are exhausted, increasing the Y + * coordinate to the next XZ slice) + */ +export class BlockLocationIterator implements Iterable { + private constructor(); + /** + * @remarks + * This function can't be called in read-only mode. + * + */ + [Symbol.iterator](): Iterator; + /** + * @remarks + * This function can't be called in read-only mode. + * + */ + next(): IteratorResult; +} + /** * Contains the combination of type {@link BlockType} and * properties (also sometimes called block state) which @@ -2869,7 +3462,26 @@ export class BlockPistonComponent extends BlockComponent { } /** - * @rc + * @beta + * Represents a fluid container block that currently contains a + * potion. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockPotionContainerComponent extends BlockLiquidContainerComponent { + private constructor(); + static readonly componentId = 'minecraft:potionContainer'; + /** + * @remarks + * Sets the potion type based on an item stack. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + setPotionType(itemStack: ItemStack): void; +} + +/** * Represents a block that can play a record. */ // @ts-ignore Class inheritance allowed for native defined classes @@ -3163,12 +3775,23 @@ export class BlockSignComponent extends BlockComponent { } /** - * Enumerates all {@link BlockStateType}s. + * @beta + * Represents a fluid container block that currently contains + * snow. */ -export class BlockStates { +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockSnowContainerComponent extends BlockLiquidContainerComponent { private constructor(); - /** - * @remarks + static readonly componentId = 'minecraft:snowContainer'; +} + +/** + * Enumerates all {@link BlockStateType}s. + */ +export class BlockStates { + private constructor(); + /** + * @remarks * Retrieves a specific block state instance. * * @returns @@ -3213,6 +3836,13 @@ export class BlockStateType { */ export class BlockType { private constructor(); + /** + * @beta + * @remarks + * Represents whether this type of block can be waterlogged. + * + */ + readonly canBeWaterlogged: boolean; /** * @remarks * Block type name - for example, `minecraft:acacia_stairs`. @@ -3247,11 +3877,126 @@ export class BlockTypes { static getAll(): BlockType[]; } +/** + * @beta + * A BlockVolume is a simple interface to an object which + * represents a 3D rectangle of a given size (in blocks) at a + * world block location. + * Note that these are not analogous to "min" and "max" values, + * in that the vector components are not guaranteed to be in + * any order. + * In addition, these vector positions are not interchangeable + * with BlockLocation. + * If you want to get this volume represented as range of of + * BlockLocations, you can use the getBoundingBox utility + * function. + * This volume class will maintain the ordering of the corner + * indexes as initially set. imagine that each corner is + * assigned in Editor - as you move the corner around + * (potentially inverting the min/max relationship of the + * bounds) - what + * you had originally selected as the top/left corner would + * traditionally become the bottom/right. + * When manually editing these kinds of volumes, you need to + * maintain the identity of the corner as you edit - the + * BlockVolume utility functions do this. + * + * Important to note that this measures block sizes (to/from) - + * a normal AABB (0,0,0) to (0,0,0) would traditionally be of + * size (0,0,0) + * However, because we're measuring blocks - the size or span + * of a BlockVolume would actually be (1,1,1) + * + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockVolume extends BlockVolumeBase { + /** + * @remarks + * A world block location that represents a corner in a 3D + * rectangle + * + * This property can't be edited in read-only mode. + * + */ + 'from': Vector3; + /** + * @remarks + * A world block location that represents the opposite corner + * in a 3D rectangle + * + * This property can't be edited in read-only mode. + * + */ + to: Vector3; + constructor(from: Vector3, to: Vector3); + /** + * @remarks + * Check to see if the given location is directly adjacent to + * the outer surface of a BlockVolume. + * + * + * This function can't be called in read-only mode. + * + * @param pos + * The world block location to test + * @returns + * If the location is either inside or more than 0 blocks away, + * the function will return false. + * If the location is directly contacting the outer surface of + * the BlockVolume, the function will return true. + */ + doesLocationTouchFaces(pos: Vector3): boolean; + /** + * @remarks + * Check to see if a two block volumes are directly adjacent + * and two faces touch. + * + * This function can't be called in read-only mode. + * + * @param other + * The volume to test + * @returns + * If the outer faces of both block volumes touch and are + * directly adjacent at any point, return true. + */ + doesVolumeTouchFaces(other: BlockVolume): boolean; + /** + * @remarks + * Return an enumeration which represents the intersection + * between two BlockVolume objects + * + * This function can't be called in read-only mode. + * + */ + intersects(other: BlockVolume): BlockVolumeIntersection; +} + /** * Base type for BlockVolumes. */ export class BlockVolumeBase { private constructor(); + /** + * @beta + * @remarks + * Fetch a {@link BlockLocationIterator} that represents all of + * the block world locations within the specified volume + * + * This function can't be called in read-only mode. + * + */ + getBlockLocationIterator(): BlockLocationIterator; + /** + * @beta + * @remarks + * Return a {@link BoundingBox} object which represents the + * validated min and max coordinates of the volume + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + getBoundingBox(): BoundingBox; /** * @remarks * Return the capacity (volume) of the BlockVolume (W*D*H) @@ -3310,6 +4055,170 @@ export class BlockVolumeBase { translate(delta: Vector3): void; } +/** + * @beta + * Represents a fluid container block that currently contains + * water. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class BlockWaterContainerComponent extends BlockLiquidContainerComponent { + private constructor(); + static readonly componentId = 'minecraft:waterContainer'; + /** + * @remarks + * Adds an item and colors the water based on a dye item type. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + addDye(itemType: ItemType): void; + /** + * @remarks + * Retrieves a custom base color used for the sign text. + * + * @returns + * Color that is used as the base color for sign text. + * @throws This function can throw errors. + */ + getCustomColor(): RGBA; + /** + * @remarks + * Sets a custom base color used for the sign text. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + setCustomColor(color: RGBA): void; +} + +/** + * @beta + * Bounding Box Utils is a utility class that provides a number + * of useful functions for the creation and utility of {@link + * BoundingBox} objects + */ +export class BoundingBoxUtils { + private constructor(); + /** + * @remarks + * Create a validated instance of a {@link BoundingBox} where + * the min and max components are guaranteed to be (min <= max) + * + * This function can't be called in read-only mode. + * + * @param min + * A corner world location + * @param max + * A corner world location diametrically opposite + */ + static createValid(min: Vector3, max: Vector3): BoundingBox; + /** + * @remarks + * Expand a {@link BoundingBox} by a given amount along each + * axis. + * Sizes can be negative to perform contraction. + * Note: corners can be inverted if the contraction size is + * greater than the span, but the min/max relationship will + * remain correct + * + * This function can't be called in read-only mode. + * + * @returns + * Return a new {@link BoundingBox} object representing the + * changes + */ + static dilate(box: BoundingBox, size: Vector3): BoundingBox; + /** + * @remarks + * Check if two {@link BoundingBox} objects are identical + * + * This function can't be called in read-only mode. + * + */ + static equals(box: BoundingBox, other: BoundingBox): boolean; + /** + * @remarks + * Expand the initial box object bounds to include the 2nd box + * argument. The resultant {@link BoundingBox} object will be + * a BoundingBox which exactly encompasses the two boxes. + * + * This function can't be called in read-only mode. + * + * @returns + * A new {@link BoundingBox} instance representing the smallest + * possible bounding box which can encompass both + */ + static expand(box: BoundingBox, other: BoundingBox): BoundingBox; + /** + * @remarks + * Calculate the center block of a given {@link BoundingBox} + * object. + * + * This function can't be called in read-only mode. + * + * @returns + * Note that {@link BoundingBox} objects represent whole + * blocks, so the center of boxes which have odd numbered + * bounds are not mathematically centered... + * i.e. a BoundingBox( 0,0,0 -> 3,3,3 ) would have a center of + * (1,1,1) (not (1.5, 1.5, 1.5) as expected) + */ + static getCenter(box: BoundingBox): Vector3; + /** + * @remarks + * Calculate the BoundingBox which represents the union area of + * two intersecting BoundingBoxes + * + * This function can't be called in read-only mode. + * + */ + static getIntersection(box: BoundingBox, other: BoundingBox): BoundingBox | undefined; + /** + * @remarks + * Get the Span of each of the BoundingBox Axis components + * + * This function can't be called in read-only mode. + * + */ + static getSpan(box: BoundingBox): Vector3; + /** + * @remarks + * Check to see if two BoundingBox objects intersect + * + * This function can't be called in read-only mode. + * + */ + static intersects(box: BoundingBox, other: BoundingBox): boolean; + /** + * @remarks + * Check to see if a given coordinate is inside a BoundingBox + * + * This function can't be called in read-only mode. + * + */ + static isInside(box: BoundingBox, pos: Vector3): boolean; + /** + * @remarks + * Check to see if a BoundingBox is valid (i.e. (min <= max)) + * + * This function can't be called in read-only mode. + * + */ + static isValid(box: BoundingBox): boolean; + /** + * @remarks + * Move a BoundingBox by a given amount + * + * This function can't be called in read-only mode. + * + * @returns + * Return a new BoundingBox object which represents the change + */ + static translate(box: BoundingBox, delta: Vector3): BoundingBox; +} + /** * Contains information related to changes to a button push. * @example buttonPushEvent.ts @@ -3365,88 +4274,470 @@ export class Camera { private constructor(); /** * @remarks - * Clears the active camera for the specified player. Causes - * the specified players to end any in-progress camera - * perspectives, including any eased camera motions, and return - * to their normal perspective. + * Clears the active camera for the specified player. Causes + * the specified players to end any in-progress camera + * perspectives, including any eased camera motions, and return + * to their normal perspective. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + clear(): void; + /** + * @remarks + * Begins a camera fade transition. A fade transition is a + * full-screen color that fades-in, holds, and then fades-out. + * + * This function can't be called in read-only mode. + * + * @param fadeCameraOptions + * Additional options around camera fade operations. + * @throws This function can throw errors. + */ + fade(fadeCameraOptions?: CameraFadeOptions): void; + /** + * @remarks + * Sets the current active camera for the specified player. + * + * This function can't be called in read-only mode. + * + * @param cameraPreset + * Identifier of a camera preset file defined within JSON. + * @param setOptions + * Additional options for the camera. + * @throws This function can throw errors. + */ + setCamera( + cameraPreset: string, + setOptions?: + | CameraDefaultOptions + | CameraFixedBoomOptions + | CameraSetFacingOptions + | CameraSetLocationOptions + | CameraSetPosOptions + | CameraSetRotOptions, + ): void; +} + +/** + * @beta + * An event that fires as players enter chat messages. + */ +export class ChatSendAfterEvent { + private constructor(); + /** + * @remarks + * Message that is being broadcast. + * + */ + readonly message: string; + /** + * @remarks + * Player that sent the chat message. + * + */ + readonly sender: Player; + /** + * @remarks + * Optional list of players that will receive this message. If + * defined, this message is directly targeted to one or more + * players (i.e., is not broadcast.) + * + */ + readonly targets?: Player[]; +} + +/** + * @beta + * Manages callbacks that are connected to chat messages being + * sent. + */ +export class ChatSendAfterEventSignal { + private constructor(); + /** + * @remarks + * Adds a callback that will be called when new chat messages + * are sent. + * + * This function can't be called in read-only mode. + * + * @example custom_command.js + * ```typescript + * const chatCallback = World.beforeEvents.chatSend.subscribe((eventData) => { + * if (eventData.message.includes("cancel")) { + * // Cancel event if the message contains "cancel" + * eventData.canceled = true; + * } else { + * // Modify chat message being sent + * eventData.message = `Modified '${eventData.message}'`; + * } + * }); + * ``` + */ + subscribe(callback: (arg: ChatSendAfterEvent) => void): (arg: ChatSendAfterEvent) => void; + /** + * @remarks + * Removes a callback from being called when new chat messages + * are sent. + * + * This function can't be called in read-only mode. + * + */ + unsubscribe(callback: (arg: ChatSendAfterEvent) => void): void; +} + +/** + * @beta + * An event that fires as players enter chat messages. + */ +export class ChatSendBeforeEvent { + private constructor(); + /** + * @remarks + * If set to true in a beforeChat event handler, this message + * is not broadcast out. + * + */ + cancel: boolean; + /** + * @remarks + * Message that is being broadcast. + * + */ + readonly message: string; + /** + * @remarks + * Player that sent the chat message. + * + */ + readonly sender: Player; + /** + * @remarks + * Optional list of players that will receive this message. If + * defined, this message is directly targeted to one or more + * players (i.e., is not broadcast.) + * + */ + readonly targets?: Player[]; +} + +/** + * @beta + * Manages callbacks that are connected to an event that fires + * before chat messages are sent. + */ +export class ChatSendBeforeEventSignal { + private constructor(); + /** + * @remarks + * Adds a callback that will be called before new chat messages + * are sent. + * + * This function can't be called in read-only mode. + * + */ + subscribe(callback: (arg: ChatSendBeforeEvent) => void): (arg: ChatSendBeforeEvent) => void; + /** + * @remarks + * Removes a callback from being called before new chat + * messages are sent. + * + * This function can't be called in read-only mode. + * + */ + unsubscribe(callback: (arg: ChatSendBeforeEvent) => void): void; +} + +/** + * Contains return data on the result of a command execution. + */ +export class CommandResult { + private constructor(); + /** + * @remarks + * If the command operates against a number of entities, + * blocks, or items, this returns the number of successful + * applications of this command. + * + */ + readonly successCount: number; +} + +/** + * Base class for downstream Component implementations. + */ +export class Component { + private constructor(); + /** + * @remarks + * Identifier of the component. + * + */ + readonly typeId: string; + /** + * @remarks + * Returns whether the component is valid. A component is + * considered valid if its owner is valid, in addition to any + * addition to any additional validation required by the + * component. + * + * @returns + * Whether the component is valid. + */ + isValid(): boolean; +} + +/** + * @beta + * The Compound Block Volume is a collection of individual + * block volume definitions which, as a collection, define a + * larger volume of (sometimes non-contiguous) irregular + * shapes. + * This class is loosely based on the concept of CSG + * (Computational Solid Geometry) and allows a user to create + * complex volumes by building a stack of volumes and voids to + * make a larger single volume. + * For example - normally a creator would create a hollow cube + * by creating 6 "wall" surfaces for each face. + * With a Compound Block Volume, a creator can define a hollow + * cube by creating a single outer solid cube, and then + * defining a further single 'void' cube inside the larger one. + * Similarly, the Compound Block Volume can represent irregular + * shaped volumes (e.g. a tree consists of a trunk and lots of + * leaf cubes which are not necessarily contiguously placed). + * Each of the volumes added to the CompoundBlockVolume are (by + * default) relative to the origin set (either at construction + * or via one of the set functions). + * However, it is also possible to push volumes to the compound + * collection which are absolute in nature and are not affected + * by origin changes. + */ +export class CompoundBlockVolume { + /** + * @remarks + * Return the 'capacity' of the bounding rectangle which + * represents the collection of volumes in the stack + * + */ + readonly capacity: number; + readonly items: CompoundBlockVolumeItem[]; + readonly itemsAbsolute: CompoundBlockVolumeItem[]; + /** + * @remarks + * Return the number of volumes (positive and negative) in the + * volume stack + * + */ + readonly volumeCount: number; + /** + * @remarks + * Create a CompoundBlockVolume object + * + * @param origin + * An optional world space origin on which to center the + * compound volume. + * If not specified, the origin is set to (0,0,0) + */ + constructor(origin?: Vector3); + /** + * @remarks + * Clear the contents of the volume stack + * + * This function can't be called in read-only mode. + * + */ + clear(): void; + /** + * @remarks + * Fetch a Block Location Iterator for the Compound Block + * Volume. This iterator will allow a creator to iterate + * across all of the selected volumes within the larger + * bounding area. + * Areas of a volume which have been overridden by a + * subtractive volume will not be included in the iterator + * step. + * (i.e. if you push a cube to the stack, and then push a + * subtractive volume to the same location, then the iterator + * will step over the initial volume because it is considered + * negative space) + * Note that the Block Locations returned by this iterator are + * in absolute world space (irrespective of whether the + * compound volume items pushed are absolute or relative) + * + * This function can't be called in read-only mode. + * + */ + getBlockLocationIterator(): BlockLocationIterator; + /** + * @remarks + * Get the largest bounding box that represents a container for + * all of the volumes on the stack + * Note that the bounding box returned is represented in + * absolute world space (irrespective of whether the compound + * volume items pushed are absolute or relative) + * + * This function can't be called in read-only mode. + * + */ + getBoundingBox(): BoundingBox; + /** + * @remarks + * Get the max block location of the outermost bounding + * rectangle which represents the volumes on the stack. + * Note that the max location returned is in absolute world + * space (irrespective of whether the compound volume items + * pushed are absolute or relative) + * + * This function can't be called in read-only mode. + * + */ + getMax(): Vector3; + /** + * @remarks + * Get the min block location of the outermost bounding + * rectangle which represents the volumes on the stack. + * Note that the min location returned is in absolute world + * space (irrespective of whether the compound volume items + * pushed are absolute or relative) + * + * This function can't be called in read-only mode. + * + */ + getMin(): Vector3; + /** + * @remarks + * Fetch the origin in world space of the compound volume + * + * This function can't be called in read-only mode. + * + */ + getOrigin(): Vector3; + /** + * @remarks + * Return a boolean which signals if there are any volume items + * pushed to the volume + * + * This function can't be called in read-only mode. + * + */ + isEmpty(): boolean; + /** + * @remarks + * Return a boolean representing whether or not a given + * absolute world space block location is inside a positive + * block volume. + * E.g. if the stack contains a large cube followed by a + * slightly smaller negative cube, and the test location is + * within the negative cube - the function will return false + * because it's not 'inside' a volume (it IS inside the + * bounding rectangle, but it is not inside a positively + * defined location) * * This function can't be called in read-only mode. * - * @throws This function can throw errors. */ - clear(): void; + isInside(worldLocation: Vector3): boolean; /** * @remarks - * Begins a camera fade transition. A fade transition is a - * full-screen color that fades-in, holds, and then fades-out. + * Inspect the last entry pushed to the volume stack without + * affecting the stack contents. * * This function can't be called in read-only mode. * - * @param fadeCameraOptions - * Additional options around camera fade operations. - * @throws This function can throw errors. + * @param forceRelativity + * Determine whether the function returns a + * CompoundBlockVolumeItem which is forced into either relative + * or absolute coordinate system. + * `true` = force returned item to be relative to volume origin + * `false` = force returned item to be absolute world space + * location + * + * If no flag is specified, the item returned retains whatever + * relativity it had when it was pushed + * @returns + * Returns undefined if the stack is empty */ - fade(fadeCameraOptions?: CameraFadeOptions): void; + peekLastVolume(forceRelativity?: CompoundBlockVolumePositionRelativity): CompoundBlockVolumeItem | undefined; /** * @remarks - * Sets the current active camera for the specified player. + * Remove the last entry from the volume stack. This will + * reduce the stack size by one * * This function can't be called in read-only mode. * - * @param cameraPreset - * Identifier of a camera preset file defined within JSON. - * @param setOptions - * Additional options for the camera. - * @throws This function can throw errors. */ - setCamera( - cameraPreset: string, - setOptions?: - | CameraDefaultOptions - | CameraSetFacingOptions - | CameraSetLocationOptions - | CameraSetPosOptions - | CameraSetRotOptions, - ): void; -} - -/** - * Contains return data on the result of a command execution. - */ -export class CommandResult { - private constructor(); + popVolume(): boolean; /** * @remarks - * If the command operates against a number of entities, - * blocks, or items, this returns the number of successful - * applications of this command. + * Push a volume item to the stack. The volume item contains + * an 'action' parameter which determines whether this volume + * is a positive or negative space. + * The item also contains a `locationRelativity` which + * determines whether it is relative or absolute to the + * compound volume origin + * + * This function can't be called in read-only mode. * + * @param item + * Item to push to the end of the stack */ - readonly successCount: number; -} - -/** - * Base class for downstream Component implementations. - */ -export class Component { - private constructor(); + pushVolume(item: CompoundBlockVolumeItem): void; /** * @remarks - * Identifier of the component. + * If the volume stack is empty, this function will push the + * specified item to the stack. + * If the volume stack is NOT empty, this function will replace + * the last item on the stack with the new item. * + * This function can't be called in read-only mode. + * + * @param item + * Item to add or replace */ - readonly typeId: string; + replaceOrAddLastVolume(item: CompoundBlockVolumeItem): boolean; /** * @remarks - * Returns whether the component is valid. A component is - * considered valid if its owner is valid, in addition to any - * addition to any additional validation required by the - * component. + * Set the origin of the compound volume to an absolute world + * space location * - * @returns - * Whether the component is valid. + * This function can't be called in read-only mode. + * + * @param preserveExistingVolumes + * This optional boolean flag determines whether the relative + * `CompoundBlockVolumeItem`'s are frozen in place, or are + * affected by the new origin. + * Imagine a scenario where you have a series of relative + * locations around an origin which make up a sphere; all of + * these locations are in the range of -2 to 2. + * Push each of these locations to the compound volume as + * relative items. + * Now, move the origin and all of the locations representing + * the sphere move accordingly. + * However, let's say you want to add a 2nd sphere next to the + * 1st. + * In this case, set the new origin a few locations over, but + * 'preserveExistingVolumes' = true. + * This will set a new origin, but the existing sphere + * locations will remain relative to the original origin. + * Now, you can push the relative sphere locations again (this + * time they will be relative to the new origin) - resulting in + * 2 spheres next to each other. + */ + setOrigin(position: Vector3, preserveExistingVolumes?: boolean): void; + /** + * @remarks + * Similar to {@link CompoundBlockVolume.setOrigin} - this + * function will translate the origin by a given delta to a new + * position + * + * This function can't be called in read-only mode. + * + * @param preserveExistingVolumes + * See the description for the arguments to {@link + * CompoundBlockVolume.setOrigin} */ - isValid(): boolean; + translateOrigin(delta: Vector3, preserveExistingVolumes?: boolean): void; } /** @@ -4148,6 +5439,32 @@ export class Dimension { * */ readonly id: string; + /** + * @beta + * @remarks + * Searches the block volume for a block that satisfies the + * block filter. + * + * @param volume + * Volume of blocks that will be checked. + * @param filter + * Block filter that will be checked against each block in the + * volume. + * @param allowUnloadedChunks + * If set to true will suppress the UnloadedChunksError if some + * or all of the block volume is outside of the loaded chunks. + * Will only check the block locations that are within the + * loaded chunks in the volume. + * @returns + * Returns true if at least one block in the volume satisfies + * the filter, false otherwise. + * @throws This function can throw errors. + * + * {@link Error} + * + * {@link UnloadedChunksError} + */ + containsBlock(volume: BlockVolumeBase, filter: BlockFilter, allowUnloadedChunks?: boolean): boolean; /** * @remarks * Creates an explosion at the specified location. @@ -4183,6 +5500,60 @@ export class Dimension { * ``` */ createExplosion(location: Vector3, radius: number, explosionOptions?: ExplosionOptions): boolean; + /** + * @beta + * @remarks + * Fills an area between begin and end with block of type + * block. + * + * This function can't be called in read-only mode. + * + * @param block + * Type of block to fill the volume with. + * @param options + * A set of additional options, such as a matching block to + * potentially replace this fill block with. + * @returns + * Returns number of blocks placed. + * @throws This function can throw errors. + * + * {@link minecraftcommon.EngineError} + * + * {@link Error} + * + * {@link UnloadedChunksError} + */ + fillBlocks( + volume: BlockVolumeBase | CompoundBlockVolume, + block: BlockPermutation | BlockType | string, + options?: BlockFillOptions, + ): ListBlockVolume; + /** + * @beta + * @remarks + * Finds the location of the closest biome of a particular + * type. Note that the findClosestBiome operation can take some + * time to complete, so avoid using many of these calls within + * a particular tick. + * + * This function can't be called in read-only mode. + * + * @param pos + * Starting location to look for a biome to find. + * @param biomeToFind + * Identifier of the biome to look for. + * @param options + * Additional selection criteria for a biome search. + * @returns + * Returns a location of the biome, or undefined if a biome + * could not be found. + * @throws This function can throw errors. + * + * {@link minecraftcommon.EngineError} + * + * {@link Error} + */ + findClosestBiome(pos: Vector3, biomeToFind: BiomeType | string, options?: BiomeSearchOptions): Vector3 | undefined; /** * @remarks * Returns a block instance at the given location. @@ -4207,6 +5578,22 @@ export class Dimension { * {@link LocationOutOfWorldBoundariesError} */ getBlock(location: Vector3): Block | undefined; + /** + * @beta + * @remarks + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + getBlockAbove(location: Vector3, options?: BlockRaycastOptions): Block | undefined; + /** + * @beta + * @remarks + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + getBlockBelow(location: Vector3, options?: BlockRaycastOptions): Block | undefined; /** * @remarks * Gets the first block that intersects with a vector emanating @@ -4221,6 +5608,31 @@ export class Dimension { * @throws This function can throw errors. */ getBlockFromRay(location: Vector3, direction: Vector3, options?: BlockRaycastOptions): BlockRaycastHit | undefined; + /** + * @beta + * @remarks + * Gets all the blocks in a volume that satisfy the filter. + * + * @param volume + * Volume of blocks that will be checked. + * @param filter + * Block filter that will be checked against each block in the + * volume. + * @param allowUnloadedChunks + * If set to true will suppress the UnloadedChunksError if some + * or all of the block volume is outside of the loaded chunks. + * Will only check the block locations that are within the + * loaded chunks in the volume. + * @returns + * Returns the ListBlockVolume that contains all the block + * locations that satisfied the block filter. + * @throws This function can throw errors. + * + * {@link Error} + * + * {@link UnloadedChunksError} + */ + getBlocks(volume: BlockVolumeBase, filter: BlockFilter, allowUnloadedChunks?: boolean): ListBlockVolume; /** * @remarks * Returns a set of entities based on a set of conditions @@ -4328,6 +5740,18 @@ export class Dimension { * @throws This function can throw errors. */ getTopmostBlock(locationXZ: VectorXZ, minHeight?: number): Block | undefined; + /** + * @beta + * @remarks + * Returns the current weather. + * + * This function can't be called in read-only mode. + * + * @returns + * Returns a WeatherType that explains the broad category of + * weather that is currently going on. + */ + getWeather(): WeatherType; /** * @remarks * Plays a sound for all players. @@ -4539,7 +5963,7 @@ export class Dimension { * } * ``` */ - spawnEntity(identifier: string, location: Vector3): Entity; + spawnEntity(identifier: string, location: Vector3, options?: SpawnEntityOptions): Entity; /** * @remarks * Creates a new item stack as an entity at the specified @@ -5011,6 +6435,16 @@ export class Entity { * */ readonly scoreboardIdentity?: ScoreboardIdentity; + /** + * @beta + * @remarks + * Retrieves or sets an entity that is used as the target of + * AI-related behaviors, like attacking. If the entity + * currently has no target returns undefined. + * + * @throws This property can throw when used. + */ + readonly target?: Entity; /** * @remarks * Identifier of the type of the entity - for example, @@ -5299,7 +6733,7 @@ export class Entity { * Returns the component if it exists on the entity, otherwise * undefined. */ - getComponent(componentId: string): EntityComponent | undefined; + getComponent(componentId: T): EntityComponentTypeMap[T] | undefined; /** * @remarks * Returns all components that are both present on this entity @@ -6001,6 +7435,107 @@ export class EntityBaseMovementComponent extends EntityComponent { readonly maxTurn: number; } +/** + * @beta + * Defines what blocks this entity can breathe in and gives + * them the ability to suffocate. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class EntityBreathableComponent extends EntityComponent { + private constructor(); + /** + * @remarks + * The current air supply of the entity. + * + * This property can't be edited in read-only mode. + * + * @throws + * Will throw an error if the air supply is out of bounds + * [suffocationTime, maxAirSupply]. + */ + airSupply: number; + /** + * @remarks + * If true, this entity can breathe in air. + * + * @throws This property can throw when used. + */ + readonly breathesAir: boolean; + /** + * @remarks + * If true, this entity can breathe in lava. + * + * @throws This property can throw when used. + */ + readonly breathesLava: boolean; + /** + * @remarks + * If true, this entity can breathe in solid blocks. + * + * @throws This property can throw when used. + */ + readonly breathesSolids: boolean; + /** + * @remarks + * If true, this entity can breathe in water. + * + * @throws This property can throw when used. + */ + readonly breathesWater: boolean; + /** + * @remarks + * If true, the entity is able to breathe. + * + * @throws This property can throw when used. + */ + readonly canBreathe: boolean; + /** + * @remarks + * If true, this entity will have visible bubbles while in + * water. + * + * @throws This property can throw when used. + */ + readonly generatesBubbles: boolean; + /** + * @remarks + * Time in seconds to recover breath to maximum. + * + * @throws This property can throw when used. + */ + readonly inhaleTime: number; + /** + * @remarks + * Time in seconds between suffocation damage. + * + * @throws This property can throw when used. + */ + readonly suffocateTime: number; + /** + * @remarks + * Time in seconds the entity can hold its breath. + * + * @throws This property can throw when used. + */ + readonly totalSupply: number; + static readonly componentId = 'minecraft:breathable'; + /** + * @remarks + * List of blocks this entity can breathe in, in addition to + * the separate properties for classes of blocks. + * + * @throws This function can throw errors. + */ + getBreatheBlocks(): BlockPermutation[]; + /** + * @remarks + * List of blocks this entity can't breathe in. + * + * @throws This function can throw errors. + */ + getNonBreatheBlocks(): BlockPermutation[]; +} + /** * When added, this component signifies that the entity can * climb up ladders. @@ -6830,6 +8365,32 @@ export class EntityItemComponent extends EntityComponent { static readonly componentId = 'minecraft:item'; } +/** + * @beta + * This type is usable for iterating over a set of entities. + * This means it can be used in statements like for...of + * statements, Array.from(iterator), and more. + */ +export class EntityIterator implements Iterable { + private constructor(); + /** + * @remarks + * This function can't be called in read-only mode. + * + */ + [Symbol.iterator](): Iterator; + /** + * @remarks + * Retrieves the next item in this iteration. The resulting + * IteratorResult contains .done and .value properties which + * can be used to see the next Entity in the iteration. + * + * This function can't be called in read-only mode. + * + */ + next(): IteratorResult; +} + /** * Defines the base movement speed in lava of this entity. */ @@ -7332,6 +8893,42 @@ export class EntityNavigationWalkComponent extends EntityNavigationComponent { static readonly componentId = 'minecraft:navigation.walk'; } +/** + * @beta + * Adds NPC capabilities to an entity such as custom skin, + * name, and dialogue interactions. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class EntityNpcComponent extends EntityComponent { + private constructor(); + /** + * @remarks + * The DialogueScene that is opened when players first interact + * with the NPC. + * + * This property can't be edited in read-only mode. + * + */ + defaultScene: string; + /** + * @remarks + * The name of the NPC as it is displayed to players. + * + * This property can't be edited in read-only mode. + * + */ + name: string; + /** + * @remarks + * The index of the skin the NPC will use. + * + * This property can't be edited in read-only mode. + * + */ + skinIndex: number; + static readonly componentId = 'minecraft:npc'; +} + /** * When present on an entity, this entity is on fire. * @example setEntityOnFire.ts @@ -8084,11 +9681,31 @@ export class EntityTypeFamilyComponent extends EntityComponent { /** * @throws This function can throw errors. */ - getTypeFamilies(): string[]; + getTypeFamilies(): string[]; + /** + * @throws This function can throw errors. + */ + hasTypeFamily(typeFamily: string): boolean; +} + +/** + * @beta + * An iterator that loops through available entity types. + */ +export class EntityTypeIterator implements Iterable { + private constructor(); + /** + * @remarks + * This function can't be called in read-only mode. + * + */ + [Symbol.iterator](): Iterator; /** - * @throws This function can throw errors. + * @remarks + * This function can't be called in read-only mode. + * */ - hasTypeFamily(typeFamily: string): boolean; + next(): IteratorResult; } /** @@ -8319,6 +9936,36 @@ export class FeedItemEffect { readonly name: string; } +/** + * @beta + * Represents a set of filters for when an event should occur. + */ +export class FilterGroup { + private constructor(); +} + +/** + * @beta + * Represents constants related to fluid containers. + */ +export class FluidContainer { + private constructor(); + /** + * @remarks + * Constant that represents the maximum fill level of a fluid + * container. + * + */ + static readonly maxFillLevel = 6; + /** + * @remarks + * Constant that represents the minimum fill level of a fluid + * container. + * + */ + static readonly minFillLevel = 0; +} + /** * Contains information regarding a changed world.gameRules * property. @@ -9341,6 +10988,37 @@ export class ItemFoodComponent extends ItemComponent { static readonly componentId = 'minecraft:food'; } +/** + * @beta + * When present on an item, this item is a potion item. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class ItemPotionComponent extends ItemComponent { + private constructor(); + /** + * @remarks + * The PotionEffectType associated with the potion item. + * + * @throws This property can throw when used. + */ + readonly potionEffectType: PotionEffectType; + /** + * @remarks + * The PotionLiquidType associated with the potion item. + * + * @throws This property can throw when used. + */ + readonly potionLiquidType: PotionLiquidType; + /** + * @remarks + * The PotionModifierType associated with the potion item. + * + * @throws This property can throw when used. + */ + readonly potionModifierType: PotionModifierType; + static readonly componentId = 'minecraft:potion'; +} + /** * Contains information related to a chargeable item when the * player has finished using the item and released the build @@ -9610,7 +11288,7 @@ export class ItemStack { * } * ``` */ - getComponent(componentId: string): ItemComponent | undefined; + getComponent(componentId: T): ItemComponentTypeMap[T] | undefined; /** * @remarks * Returns all components that are both present on this item @@ -9834,6 +11512,16 @@ export class ItemStack { * ``` */ setLore(loreList?: string[]): void; + /** + * @beta + * @remarks + * Helper function for creating potion items. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + static createPotion(options: PotionOptions): ItemStack; } /** @@ -10208,6 +11896,15 @@ export class ItemUseOnAfterEvent { * */ readonly faceLocation: Vector3; + /** + * @beta + * @remarks + * This value will be true if the event was triggered on + * players initial interaction button press and false on events + * triggered from holding the interaction button. + * + */ + readonly isFirstEvent: boolean; /** * @remarks * The impacted item stack that is being used on a block. @@ -10412,6 +12109,33 @@ export class ListBlockVolume extends BlockVolumeBase { remove(locations: Vector3[]): void; } +/** + * @beta + * A specific currently-internal event used for passing + * messages from client to server. + */ +export class MessageReceiveAfterEvent { + private constructor(); + /** + * @remarks + * The message identifier. + * + */ + readonly id: string; + /** + * @remarks + * The message. + * + */ + readonly message: string; + /** + * @remarks + * The player who sent the message. + * + */ + readonly player: Player; +} + /** * A collection of default Minecraft dimension types. */ @@ -10705,6 +12429,20 @@ export class Player extends Entity { * @throws This function can throw errors. */ addLevels(amount: number): number; + /** + * @beta + * @remarks + * Eats an item, providing the item's hunger and saturation + * effects to the player. Can only be used on food items. + * + * This function can't be called in read-only mode. + * + * @param itemStack + * The item to eat. + * @throws + * Throws if the item is not a food item. + */ + eatItem(itemStack: ItemStack): void; /** * @remarks * Retrieves the active gamemode for this player, if specified. @@ -10737,6 +12475,14 @@ export class Player extends Entity { * @throws This function can throw errors. */ getTotalXp(): number; + /** + * @beta + * @remarks + * Returns true if this player has operator-level permissions. + * + * @throws This function can throw errors. + */ + isOp(): boolean; /** * @remarks * Plays a music track that only this particular player can @@ -10762,6 +12508,17 @@ export class Player extends Entity { * @throws This function can throw errors. */ playSound(soundId: string, soundOptions?: PlayerSoundOptions): void; + /** + * @beta + * @remarks + * This is an internal-facing method for posting a system + * message to downstream clients. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + postClientMessage(id: string, value: string): void; /** * @remarks * Queues an additional music track that only this particular @@ -10839,6 +12596,17 @@ export class Player extends Entity { * @throws This function can throw errors. */ setGameMode(gameMode?: GameMode): void; + /** + * @beta + * @remarks + * Will change the specified players permissions, and whether + * they are operator or not. + * + * This function can't be called in read-only mode. + * + * @throws This function can throw errors. + */ + setOp(isOp: boolean): void; /** * @remarks * Sets the current starting spawn point for this particular @@ -10853,6 +12621,54 @@ export class Player extends Entity { * {@link LocationOutOfWorldBoundariesError} */ setSpawnPoint(spawnPoint?: DimensionLocation): void; + /** + * @beta + * @remarks + * Creates a new particle emitter at a specified location in + * the world. Only visible to the target player. + * + * This function can't be called in read-only mode. + * + * @param effectName + * Identifier of the particle to create. + * @param location + * The location at which to create the particle emitter. + * @param molangVariables + * A set of optional, customizable variables that can be + * adjusted for this particle. + * @throws This function can throw errors. + * + * {@link Error} + * + * {@link LocationInUnloadedChunkError} + * + * {@link LocationOutOfWorldBoundariesError} + * @example spawnParticle.ts + * ```typescript + * import { world, MolangVariableMap, Vector3 } from '@minecraft/server'; + * + * world.afterEvents.playerSpawn.subscribe(event => { + * const targetLocation = event.player.location; + * for (let i = 0; i < 100; i++) { + * const molang = new MolangVariableMap(); + * + * molang.setColorRGB('variable.color', { + * red: Math.random(), + * green: Math.random(), + * blue: Math.random() + * }); + * + * const newLocation: Vector3 = { + * x: targetLocation.x + Math.floor(Math.random() * 8) - 4, + * y: targetLocation.y + Math.floor(Math.random() * 8) - 4, + * z: targetLocation.z + Math.floor(Math.random() * 8) - 4, + * }; + * event.player.spawnParticle('minecraft:colored_flame_particle', newLocation, molang); + * } + * }); + * ``` + */ + spawnParticle(effectName: string, location: Vector3, molangVariables?: MolangVariableMap): void; /** * @remarks * Sets the item cooldown time for a particular cooldown @@ -11003,7 +12819,6 @@ export class PlayerBreakBlockBeforeEventSignal { } /** - * @rc * Represents the players cursor inventory. Used when moving * items between between containers in the inventory UI. Not * used with touch controls. @@ -11095,18 +12910,12 @@ export class PlayerDimensionChangeAfterEventSignal { unsubscribe(callback: (arg: PlayerDimensionChangeAfterEvent) => void): void; } -/** - * @rc - */ export class PlayerEmoteAfterEvent { private constructor(); readonly personaPieceId: string; readonly player: Player; } -/** - * @rc - */ export class PlayerEmoteAfterEventSignal { private constructor(); /** @@ -11315,6 +13124,14 @@ export class PlayerInputPermissions { */ export class PlayerInteractWithBlockAfterEvent { private constructor(); + /** + * @beta + * @remarks + * The ItemStack before the interaction succeeded, or undefined + * if hand is empty. + * + */ + readonly beforeItemStack?: ItemStack; /** * @remarks * The block that will be interacted with. @@ -11334,6 +13151,15 @@ export class PlayerInteractWithBlockAfterEvent { * */ readonly faceLocation: Vector3; + /** + * @beta + * @remarks + * This value will be true if the event was triggered on + * players initial interaction button press and false on events + * triggered from holding the interaction button. + * + */ + readonly isFirstEvent: boolean; /** * @remarks * The ItemStack after the interaction succeeded, or undefined @@ -11408,6 +13234,15 @@ export class PlayerInteractWithBlockBeforeEvent { * */ readonly faceLocation: Vector3; + /** + * @beta + * @remarks + * This value will be true if the event was triggered on + * players initial interaction button press and false on events + * triggered from holding the interaction button. + * + */ + readonly isFirstEvent: boolean; /** * @remarks * The item stack that is being used in the interaction, or @@ -11457,6 +13292,14 @@ export class PlayerInteractWithBlockBeforeEventSignal { */ export class PlayerInteractWithEntityAfterEvent { private constructor(); + /** + * @beta + * @remarks + * The ItemStack before the interaction succeeded, or undefined + * if hand is empty. + * + */ + readonly beforeItemStack?: ItemStack; /** * @remarks * The ItemStack after the interaction succeeded, or undefined @@ -11567,6 +13410,32 @@ export class PlayerInteractWithEntityBeforeEventSignal { unsubscribe(callback: (arg: PlayerInteractWithEntityBeforeEvent) => void): void; } +/** + * @beta + * This type is usable for iterating over a set of players. + * This means it can be used in statements like for...of + * statements, Array.from(iterator), and more. + */ +export class PlayerIterator implements Iterable { + private constructor(); + /** + * @remarks + * This function can't be called in read-only mode. + * + */ + [Symbol.iterator](): Iterator; + /** + * @remarks + * Retrieves the next item in this iteration. The resulting + * IteratorResult contains .done and .value properties which + * can be used to see the next Player in the iteration. + * + * This function can't be called in read-only mode. + * + */ + next(): IteratorResult; +} + /** * Contains information regarding a player that has joined. * See the playerSpawn event for more detailed information that @@ -11665,51 +13534,122 @@ export class PlayerLeaveBeforeEventSignal { * This function can't be called in read-only mode. * */ - unsubscribe(callback: (arg: PlayerLeaveBeforeEvent) => void): void; -} - -/** - * Contains information regarding an event where a player - * places a block. - */ -// @ts-ignore Class inheritance allowed for native defined classes -export class PlayerPlaceBlockAfterEvent extends BlockEvent { - private constructor(); + unsubscribe(callback: (arg: PlayerLeaveBeforeEvent) => void): void; +} + +/** + * Contains information regarding an event where a player + * places a block. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class PlayerPlaceBlockAfterEvent extends BlockEvent { + private constructor(); + /** + * @remarks + * Player that placed the block for this event. + * + */ + readonly player: Player; +} + +/** + * Manages callbacks that are connected to when a block is + * placed by a player. + */ +export class PlayerPlaceBlockAfterEventSignal { + private constructor(); + /** + * @remarks + * Adds a callback that will be called when a block is placed + * by a player. + * + * This function can't be called in read-only mode. + * + */ + subscribe( + callback: (arg: PlayerPlaceBlockAfterEvent) => void, + options?: BlockEventOptions, + ): (arg: PlayerPlaceBlockAfterEvent) => void; + /** + * @remarks + * Removes a callback from being called when an block is placed + * by a player. + * + * This function can't be called in read-only mode. + * + */ + unsubscribe(callback: (arg: PlayerPlaceBlockAfterEvent) => void): void; +} + +/** + * @beta + * Contains information regarding an event before a player + * places a block. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class PlayerPlaceBlockBeforeEvent extends BlockEvent { + private constructor(); + /** + * @remarks + * If set to true, cancels the block place event. + * + */ + cancel: boolean; + /** + * @remarks + * The face of the block that the new block is being placed on. + * + */ + readonly face: Direction; + /** + * @remarks + * Location relative to the bottom north-west corner of the + * block where the new block is being placed onto. + * + */ + readonly faceLocation: Vector3; + /** + * @remarks + * The block permutation that is being placed. + * + */ + readonly permutationBeingPlaced: BlockPermutation; /** * @remarks - * Player that placed the block for this event. + * Player that is placing the block for this event. * */ readonly player: Player; } /** - * Manages callbacks that are connected to when a block is + * @beta + * Manages callbacks that are connected to before a block is * placed by a player. */ -export class PlayerPlaceBlockAfterEventSignal { +export class PlayerPlaceBlockBeforeEventSignal { private constructor(); /** * @remarks - * Adds a callback that will be called when a block is placed + * Adds a callback that will be called before a block is placed * by a player. * * This function can't be called in read-only mode. * */ subscribe( - callback: (arg: PlayerPlaceBlockAfterEvent) => void, + callback: (arg: PlayerPlaceBlockBeforeEvent) => void, options?: BlockEventOptions, - ): (arg: PlayerPlaceBlockAfterEvent) => void; + ): (arg: PlayerPlaceBlockBeforeEvent) => void; /** * @remarks - * Removes a callback from being called when an block is placed - * by a player. + * Removes a callback from being called before an block is + * placed by a player. * * This function can't be called in read-only mode. * */ - unsubscribe(callback: (arg: PlayerPlaceBlockAfterEvent) => void): void; + unsubscribe(callback: (arg: PlayerPlaceBlockBeforeEvent) => void): void; } /** @@ -11746,6 +13686,75 @@ export class PlayerSpawnAfterEventSignal extends IPlayerSpawnAfterEventSignal { private constructor(); } +/** + * @beta + * Represents a type of potion effect - like healing or leaping + * - that can be used with PotionOptions. + */ +export class PotionEffectType { + private constructor(); + readonly id: string; +} + +/** + * @beta + * Represents a type of potion liquid - like splash, or + * lingering - that can be used with PotionOptions. + */ +export class PotionLiquidType { + private constructor(); + readonly id: string; +} + +/** + * @beta + * Represents a type of potion modifier - like strong, or long + * - that can be used with PotionOptions. + */ +export class PotionModifierType { + private constructor(); + readonly id: string; +} + +/** + * @beta + * Used for accessing all potion effects, liquids, and + * modifiers currently available for use within the world. + */ +export class Potions { + private constructor(); + /** + * @remarks + * Retrieves a type handle for a specified potion effect id. + * + * @param potionEffectId + * A valid potion effect id. See + * @minecraft/vanilla-data.MinecraftPotionEffectTypes + * @returns + * A type handle wrapping the valid effect id, or undefined for + * an invalid effect id. + */ + static getPotionEffectType(potionEffectId: string): PotionEffectType | undefined; + /** + * @remarks + * Retrieves a type handle for a specified potion liquid id. + * + * @returns + * A type handle wrapping the valid liquid id, or undefined for + * an invalid liquid id. + */ + static getPotionLiquidType(potionLiquidId: string): PotionLiquidType | undefined; + /** + * @remarks + * Retrieves a type handle for a specified potion modifier id. + * + * @returns + * A type handle wrapping the valid modifier id, or undefined + * for an invalid modifier id. + */ + static getPotionModifierType(potionModifierId: string): PotionModifierType | undefined; +} + /** * Contains information related to changes to a pressure plate * pop. @@ -12528,6 +14537,34 @@ export class Seat { readonly seatRotation: number; } +/** + * @beta + * Manages callbacks that are message passing to a server. This + * event is not currently fully implemented, and should not be + * used. + */ +export class ServerMessageAfterEventSignal { + private constructor(); + /** + * @remarks + * Adds a callback that will be called when an internal message + * is passed. + * + * This function can't be called in read-only mode. + * + */ + subscribe(callback: (arg: MessageReceiveAfterEvent) => void): (arg: MessageReceiveAfterEvent) => void; + /** + * @remarks + * Removes a callback from being called when an internal + * message is passed. + * + * This function can't be called in read-only mode. + * + */ + unsubscribe(callback: (arg: MessageReceiveAfterEvent) => void): void; +} + /** * Represents a loaded structure template (.mcstructure file). * Structures can be placed in a world using the /structure @@ -12817,6 +14854,14 @@ export class System { * */ readonly afterEvents: SystemAfterEvents; + /** + * @beta + * @remarks + * Returns a collection of before-events for system-level + * operations. + * + */ + readonly beforeEvents: SystemBeforeEvents; /** * @remarks * Represents the current world tick of the server. @@ -12981,6 +15026,28 @@ export class SystemAfterEvents { readonly scriptEventReceive: ScriptEventCommandMessageAfterEventSignal; } +/** + * @beta + * A set of events that fire before an actual action occurs. In + * most cases, you can potentially cancel or modify the + * impending event. Note that in before events any APIs that + * modify gameplay state will not function and will throw an + * error. + */ +export class SystemBeforeEvents { + private constructor(); + /** + * @remarks + * Fires when the scripting watchdog shuts down the server. The + * can be due to using too much memory, or by causing + * significant slowdown or hang. + * To prevent shutdown, set the event's cancel property to + * true. + * + */ + readonly watchdogTerminate: WatchdogTerminateBeforeEventSignal; +} + /** * Contains information related to changes to a target block * hit. @@ -13166,6 +15233,61 @@ export class TripWireTripAfterEventSignal { unsubscribe(callback: (arg: TripWireTripAfterEvent) => void): void; } +/** + * @beta + * Contains information related to a script watchdog + * termination. + */ +export class WatchdogTerminateBeforeEvent { + private constructor(); + /** + * @remarks + * If set to true, cancels the termination of the script + * runtime. Note that depending on server configuration + * settings, cancellation of the termination may not be + * allowed. + * + */ + cancel: boolean; + /** + * @remarks + * Contains the reason why a script runtime is to be + * terminated. + * + */ + readonly terminateReason: WatchdogTerminateReason; +} + +/** + * @beta + * Manages callbacks that are connected to a callback that will + * be called when a script runtime is being terminated due to a + * violation of the performance watchdog system. + */ +export class WatchdogTerminateBeforeEventSignal { + private constructor(); + /** + * @remarks + * Adds a callback that will be called when a script runtime is + * being terminated due to a violation of the performance + * watchdog system. + * + * This function can't be called in read-only mode. + * + */ + subscribe(callback: (arg: WatchdogTerminateBeforeEvent) => void): (arg: WatchdogTerminateBeforeEvent) => void; + /** + * @remarks + * Removes a callback from being called when a script runtime + * is being terminated due to a violation of the performance + * watchdog system. + * + * This function can't be called in read-only mode. + * + */ + unsubscribe(callback: (arg: WatchdogTerminateBeforeEvent) => void): void; +} + /** * Contains information related to changes in weather in the * environment. @@ -13300,6 +15422,10 @@ export class World { * */ readonly gameRules: GameRules; + /** + * @beta + */ + readonly isHardcore: boolean; /** * @remarks * Returns the general global scoreboard that applies to the @@ -13313,6 +15439,20 @@ export class World { * */ readonly structureManager: StructureManager; + /** + * @beta + * @remarks + * A method that is internal-only, used for broadcasting + * specific messages between client and server. + * + * This function can't be called in read-only mode. + * + * @param id + * The message identifier. + * @param value + * The message. + */ + broadcastClientMessage(id: string, value: string): void; /** * @remarks * Clears the set of dynamic properties declared for this @@ -13805,6 +15945,14 @@ export class WorldAfterEvents { * */ readonly buttonPush: ButtonPushAfterEventSignal; + /** + * @beta + * @remarks + * This event is triggered after a chat message has been + * broadcast or sent to players. + * + */ + readonly chatSend: ChatSendAfterEventSignal; /** * @remarks * This event is fired when an entity event has been triggered @@ -13947,6 +16095,14 @@ export class WorldAfterEvents { * */ readonly leverAction: LeverActionAfterEventSignal; + /** + * @beta + * @remarks + * This event is an internal implementation detail, and is + * otherwise not currently functional. + * + */ + readonly messageReceive: ServerMessageAfterEventSignal; /** * @remarks * This event fires when a piston expands or retracts. @@ -13965,9 +16121,6 @@ export class WorldAfterEvents { * */ readonly playerDimensionChange: PlayerDimensionChangeAfterEventSignal; - /** - * @rc - */ readonly playerEmote: PlayerEmoteAfterEventSignal; readonly playerGameModeChange: PlayerGameModeChangeAfterEventSignal; /** @@ -13976,6 +16129,20 @@ export class WorldAfterEvents { * */ readonly playerInputPermissionCategoryChange: PlayerInputPermissionCategoryChangeAfterEventSignal; + /** + * @beta + * @remarks + * An event for when a player interacts with a block. + * + */ + readonly playerInteractWithBlock: PlayerInteractWithBlockAfterEventSignal; + /** + * @beta + * @remarks + * This event fires when a player interacts with an entity. + * + */ + readonly playerInteractWithEntity: PlayerInteractWithEntityAfterEventSignal; /** * @remarks * This event fires when a player joins a world. See also @@ -14067,6 +16234,14 @@ export class WorldAfterEvents { */ export class WorldBeforeEvents { private constructor(); + /** + * @beta + * @remarks + * This event is triggered after a chat message has been + * broadcast or sent to players. + * + */ + readonly chatSend: ChatSendBeforeEventSignal; /** * @remarks * This event is triggered after an event has been added to an @@ -14108,12 +16283,33 @@ export class WorldBeforeEvents { */ readonly playerBreakBlock: PlayerBreakBlockBeforeEventSignal; readonly playerGameModeChange: PlayerGameModeChangeBeforeEventSignal; + /** + * @beta + * @remarks + * Fires before a player interacts with a block. + * + */ + readonly playerInteractWithBlock: PlayerInteractWithBlockBeforeEventSignal; + /** + * @beta + * @remarks + * Fires before a player interacts with an entity. + * + */ + readonly playerInteractWithEntity: PlayerInteractWithEntityBeforeEventSignal; /** * @remarks * Fires when a player leaves the game. * */ readonly playerLeave: PlayerLeaveBeforeEventSignal; + /** + * @beta + * @remarks + * This event fires before a block is placed by a player. + * + */ + readonly playerPlaceBlock: PlayerPlaceBlockBeforeEventSignal; readonly weatherChange: WeatherChangeBeforeEventSignal; /** * @remarks @@ -14208,6 +16404,20 @@ export class WorldInitializeBeforeEventSignal { unsubscribe(callback: (arg: WorldInitializeBeforeEvent) => void): void; } +/** + * @beta + * Contains additional options for searches for the + * dimension.findNearestBiome API. + */ +export interface BiomeSearchOptions { + /** + * @remarks + * Bounding volume size to look within. + * + */ + boundingSize?: Vector3; +} + /** * Contains a set of events that will be raised for a block. * This object must be bound using the BlockRegistry. @@ -14297,6 +16507,15 @@ export interface BlockEventOptions { permutations?: BlockPermutation[]; } +/** + * @beta + * Contains additional options for a block fill operation. + */ +export interface BlockFillOptions { + blockFilter?: BlockFilter; + ignoreChunkBoundErrors?: boolean; +} + /** * Options to include or exclude blocks based on type, tag or * permutation. If no include options are added it will select @@ -14427,6 +16646,40 @@ export interface BlockRaycastOptions extends BlockFilter { maxDistance?: number; } +/** + * @beta + * A BoundingBox is an interface to an object which represents + * an AABB aligned rectangle. + * The BoundingBox assumes that it was created in a valid state + * (min <= max) but cannot guarantee it (unless it was created + * using the associated {@link BoundingBoxUtils} utility + * functions. + * The min/max coordinates represent the diametrically opposite + * corners of the rectangle. + * The BoundingBox is not a representation of blocks - it has + * no association with any type, it is just a mathematical + * construct - so a rectangle with + * ( 0,0,0 ) -> ( 0,0,0 ) + * has a size of ( 0,0,0 ) (unlike the very similar {@link + * BlockVolume} object) + */ +export interface BoundingBox { + /** + * @remarks + * A {@link Vector3} that represents the largest corner of the + * rectangle + * + */ + max: Vector3; + /** + * @remarks + * A {@link Vector3} that represents the smallest corner of the + * rectangle + * + */ + min: Vector3; +} + export interface CameraDefaultOptions { /** * @remarks @@ -14496,6 +16749,13 @@ export interface CameraFadeTimeOptions { holdTime: number; } +/** + * @beta + */ +export interface CameraFixedBoomOptions { + viewOffset?: Vector2; +} + export interface CameraSetFacingOptions { easeOptions?: CameraEaseOptions; facingEntity: Entity; @@ -14519,6 +16779,40 @@ export interface CameraSetRotOptions { rotation: Vector2; } +/** + * @beta + * This interface defines an entry into the {@link + * CompoundBlockVolume} which represents a volume of positive + * or negative space. + * + */ +export interface CompoundBlockVolumeItem { + /** + * @remarks + * The 'action' defines how the block volume is represented in + * the compound block volume stack. + * 'Add' creates a block volume which is positively selected + * 'Subtract' creates a block volume which represents a hole or + * negative space in the overall compound block volume. + * + */ + action?: CompoundBlockVolumeAction; + /** + * @remarks + * The relativity enumeration determines whether the + * BlockVolume specified is positioned relative to the parent + * compound block volume origin, or in absolute world space. + * + */ + locationRelativity?: CompoundBlockVolumePositionRelativity; + /** + * @remarks + * The volume of space + * + */ + volume: BlockVolume; +} + /** * Contains a set of updates to the component definition state * of an entity. @@ -14538,6 +16832,14 @@ export interface DefinitionModifier { * */ removedComponentGroups: string[]; + /** + * @beta + * @remarks + * The list of entity definition events that will be fired via + * this update. + * + */ + triggers: Trigger[]; } /** @@ -14820,9 +17122,6 @@ export interface EntityFilter { * */ name?: string; - /** - * @rc - */ propertyOptions?: EntityQueryPropertyOptions[]; /** * @remarks @@ -15076,9 +17375,6 @@ export interface EntityQueryOptions extends EntityFilter { volume?: Vector3; } -/** - * @rc - */ export interface EntityQueryPropertyOptions { exclude?: boolean; propertyId: string; @@ -15181,7 +17477,6 @@ export interface EntityRaycastOptions extends EntityFilter { } /** - * @rc * Equal to operator. */ export interface EqualsComparison { @@ -15243,7 +17538,6 @@ export interface ExplosionOptions { } /** - * @rc * Greater than operator. */ export interface GreaterThanComparison { @@ -15256,7 +17550,6 @@ export interface GreaterThanComparison { } /** - * @rc * Greater than or equal to operator. */ export interface GreaterThanOrEqualsComparison { @@ -15326,7 +17619,6 @@ export interface ItemCustomComponent { } /** - * @rc * Less than operator. */ export interface LessThanComparison { @@ -15339,7 +17631,6 @@ export interface LessThanComparison { } /** - * @rc * Less than or equal to operator. */ export interface LessThanOrEqualsComparison { @@ -15377,7 +17668,6 @@ export interface MusicOptions { } /** - * @rc * Not equal to operator. */ export interface NotEqualsComparison { @@ -15452,6 +17742,35 @@ export interface PlayerSoundOptions { volume?: number; } +/** + * @beta + * Options for use in creating potions. See + * ItemStack.createPotion. + */ +export interface PotionOptions { + /** + * @remarks + * The type of potion effect to create. See + * @minecraft/vanilla-data.MinecraftPotionEffectTypes. + * + */ + effect: PotionEffectType | string; + /** + * @remarks + * Optional potion liquid, defaults to 'Regular'. See + * @minecraft/vanilla-data.MinecraftPotionLiquidTypes. + * + */ + liquid?: PotionLiquidType | string; + /** + * @remarks + * Optional potion modifier, defaults to 'Normal'. See + * @minecraft/vanilla-data.MinecraftPotionModifierTypes. + * + */ + modifier?: PotionModifierType | string; +} + /** * Optional arguments for * @minecraft/server.EntityProjectileComponent.shoot. @@ -15467,7 +17786,6 @@ export interface ProjectileShootOptions { } /** - * @rc * Operator represents a lower/upper bound structure for * expressing a potential range of numbers. */ @@ -15697,6 +18015,13 @@ export interface ScriptEventMessageFilterOptions { namespaces: string[]; } +/** + * @beta + */ +export interface SpawnEntityOptions { + initialPersistence?: boolean; +} + /** * Provides additional options for {@link * StructureManager.createFromWorld} @@ -16022,6 +18347,14 @@ export class InvalidContainerSlotError extends Error { private constructor(); } +/** + * @beta + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class InvalidIteratorError extends Error { + private constructor(); +} + /** * Thrown when a Structure is invalid. A structure becomes * invalid when it is deleted. @@ -16087,6 +18420,16 @@ export class LocationOutOfWorldBoundariesError extends Error { private constructor(); } +/** + * @beta + * Error thrown when the specified area contains one or more + * unloaded chunks. + */ +// @ts-ignore Class inheritance allowed for native defined classes +export class UnloadedChunksError extends Error { + private constructor(); +} + export const HudElementsCount = 13; export const HudVisibilityCount = 2; /** @@ -16095,6 +18438,10 @@ export const HudVisibilityCount = 2; * */ export const MoonPhaseCount = 8; +/** + * @beta + */ +export const TicksPerDay = 24000; /** * @remarks * How many times the server ticks per second of real time. diff --git a/node_modules/@minecraft/server/package.json b/node_modules/@minecraft/server/package.json index 12874bf..82f2330 100644 --- a/node_modules/@minecraft/server/package.json +++ b/node_modules/@minecraft/server/package.json @@ -1,6 +1,6 @@ { "name": "@minecraft/server", - "version": "1.14.0-rc.1.21.30-preview.23", + "version": "1.15.0-beta.1.21.30-stable", "description": "", "contributors": [ { diff --git a/package-lock.json b/package-lock.json index ce4edb6..7021521 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,10 +6,11 @@ "": { "name": "chestlock", "dependencies": { - "@minecraft/server": "^1.14.0-beta.1.21.20-stable", - "@minecraft/server-ui": "^1.2.0", + "@minecraft/server": "^1.15.0-beta.1.21.30-stable", + "@minecraft/server-ui": "^1.3.0", "fs": "^0.0.1-security", "gettext-parser": "^8.0.0", + "npm": "^10.8.3", "path": "^0.12.7", "tsc": "^2.0.4", "typescript": "^5.3.3" @@ -24,27 +25,26 @@ "integrity": "sha512-JdmEq4P3Z/FtoBzhLijFgMSVFnFRrUoLwY8DHHrgtFo0mfLTOLTB1RErYjLMsA6b7BGVNxkX/pfFRiH7QZ0XwQ==" }, "node_modules/@minecraft/server": { - "version": "1.14.0-rc.1.21.30-preview.23", - "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.14.0-rc.1.21.30-preview.23.tgz", - "integrity": "sha512-JyNBkouvzfWYJ6Ta3f81HNZA6W+RQniR+RqE+IlJlL1a2BpDBjV0TEtw7IX/cMADjhmqX+BbVRZVs8FGgofdGg==", + "version": "1.15.0-beta.1.21.30-stable", + "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.15.0-beta.1.21.30-stable.tgz", + "integrity": "sha512-t9NhnP2W+7agojr5IWXZnC4uy9SGfcIrSFEqvNxj/NaT29/DXtH+1nJq7wLa5kGwyBlG/lDz6/CpiWn4PBv+Kg==", "dependencies": { "@minecraft/common": "^1.1.0" } }, "node_modules/@minecraft/server-ui": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@minecraft/server-ui/-/server-ui-1.2.0.tgz", - "integrity": "sha512-5TNs9mp7jW1nbcybobL0Kmnc4ioOuadp9ys7hHna1lS0rYT0ssC7Ba6bZc+xb7QhIaVsxtt8ChZwOP+paT44ww==", - "license": "MIT", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@minecraft/server-ui/-/server-ui-1.3.0.tgz", + "integrity": "sha512-Vgo7s+gxjHaNmm8lYTW+HL1JguyZggsn1UB86++eqV1KoRlLnqJH1wBJU2OIb1kQ6HXH0pnL206pxmRy7lmmjg==", "dependencies": { "@minecraft/common": "^1.0.0", - "@minecraft/server": "^1.2.0" + "@minecraft/server": "^1.3.0" } }, "node_modules/@minecraft/server-ui/node_modules/@minecraft/server": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.13.0.tgz", - "integrity": "sha512-LYmYRLjZZ5b+AO2GArQorBBo6Ad18ZmdoK2jx7mmo7Jo/gFXLiSq2xEJuLb5WBXTaBg4rBiersQiAbTj3QjNHQ==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@minecraft/server/-/server-1.14.0.tgz", + "integrity": "sha512-4oOdkbjD7UBwRUtmPcYvMmyxtDGyUipM6X4h1LjjwrZ07078q8su8F4Almj/R2Qn+e573mLJzQyGUhgtu071ZQ==", "dependencies": { "@minecraft/common": "^1.1.0" } @@ -188,6 +188,2339 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" }, + "node_modules/npm": { + "version": "10.8.3", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.8.3.tgz", + "integrity": "sha512-0IQlyAYvVtQ7uOhDFYZCGK8kkut2nh8cpAdA9E6FvRSJaTgtZRZgNjlC5ZCct//L73ygrpY93CxXpRJDtNqPVg==", + "bundleDependencies": [ + "@isaacs/string-locale-compare", + "@npmcli/arborist", + "@npmcli/config", + "@npmcli/fs", + "@npmcli/map-workspaces", + "@npmcli/package-json", + "@npmcli/promise-spawn", + "@npmcli/redact", + "@npmcli/run-script", + "@sigstore/tuf", + "abbrev", + "archy", + "cacache", + "chalk", + "ci-info", + "cli-columns", + "fastest-levenshtein", + "fs-minipass", + "glob", + "graceful-fs", + "hosted-git-info", + "ini", + "init-package-json", + "is-cidr", + "json-parse-even-better-errors", + "libnpmaccess", + "libnpmdiff", + "libnpmexec", + "libnpmfund", + "libnpmhook", + "libnpmorg", + "libnpmpack", + "libnpmpublish", + "libnpmsearch", + "libnpmteam", + "libnpmversion", + "make-fetch-happen", + "minimatch", + "minipass", + "minipass-pipeline", + "ms", + "node-gyp", + "nopt", + "normalize-package-data", + "npm-audit-report", + "npm-install-checks", + "npm-package-arg", + "npm-pick-manifest", + "npm-profile", + "npm-registry-fetch", + "npm-user-validate", + "p-map", + "pacote", + "parse-conflict-json", + "proc-log", + "qrcode-terminal", + "read", + "semver", + "spdx-expression-parse", + "ssri", + "supports-color", + "tar", + "text-table", + "tiny-relative-date", + "treeverse", + "validate-npm-package-name", + "which", + "write-file-atomic" + ], + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/arborist": "^7.5.4", + "@npmcli/config": "^8.3.4", + "@npmcli/fs": "^3.1.1", + "@npmcli/map-workspaces": "^3.0.6", + "@npmcli/package-json": "^5.2.0", + "@npmcli/promise-spawn": "^7.0.2", + "@npmcli/redact": "^2.0.1", + "@npmcli/run-script": "^8.1.0", + "@sigstore/tuf": "^2.3.4", + "abbrev": "^2.0.0", + "archy": "~1.0.0", + "cacache": "^18.0.4", + "chalk": "^5.3.0", + "ci-info": "^4.0.0", + "cli-columns": "^4.0.0", + "fastest-levenshtein": "^1.0.16", + "fs-minipass": "^3.0.3", + "glob": "^10.4.5", + "graceful-fs": "^4.2.11", + "hosted-git-info": "^7.0.2", + "ini": "^4.1.3", + "init-package-json": "^6.0.3", + "is-cidr": "^5.1.0", + "json-parse-even-better-errors": "^3.0.2", + "libnpmaccess": "^8.0.6", + "libnpmdiff": "^6.1.4", + "libnpmexec": "^8.1.4", + "libnpmfund": "^5.0.12", + "libnpmhook": "^10.0.5", + "libnpmorg": "^6.0.6", + "libnpmpack": "^7.0.4", + "libnpmpublish": "^9.0.9", + "libnpmsearch": "^7.0.6", + "libnpmteam": "^6.0.5", + "libnpmversion": "^6.0.3", + "make-fetch-happen": "^13.0.1", + "minimatch": "^9.0.5", + "minipass": "^7.1.1", + "minipass-pipeline": "^1.2.4", + "ms": "^2.1.2", + "node-gyp": "^10.2.0", + "nopt": "^7.2.1", + "normalize-package-data": "^6.0.2", + "npm-audit-report": "^5.0.0", + "npm-install-checks": "^6.3.0", + "npm-package-arg": "^11.0.3", + "npm-pick-manifest": "^9.1.0", + "npm-profile": "^10.0.0", + "npm-registry-fetch": "^17.1.0", + "npm-user-validate": "^2.0.1", + "p-map": "^4.0.0", + "pacote": "^18.0.6", + "parse-conflict-json": "^3.0.1", + "proc-log": "^4.2.0", + "qrcode-terminal": "^0.12.0", + "read": "^3.0.1", + "semver": "^7.6.3", + "spdx-expression-parse": "^4.0.0", + "ssri": "^10.0.6", + "supports-color": "^9.4.0", + "tar": "^6.2.1", + "text-table": "~0.2.0", + "tiny-relative-date": "^1.3.0", + "treeverse": "^3.0.0", + "validate-npm-package-name": "^5.0.1", + "which": "^4.0.0", + "write-file-atomic": "^5.0.1" + }, + "bin": { + "npm": "bin/npm-cli.js", + "npx": "bin/npx-cli.js" + }, + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/@isaacs/string-locale-compare": { + "version": "1.1.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/@npmcli/agent": { + "version": "2.2.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/arborist": { + "version": "7.5.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@isaacs/string-locale-compare": "^1.1.0", + "@npmcli/fs": "^3.1.1", + "@npmcli/installed-package-contents": "^2.1.0", + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/metavuln-calculator": "^7.1.1", + "@npmcli/name-from-folder": "^2.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.1.0", + "@npmcli/query": "^3.1.0", + "@npmcli/redact": "^2.0.0", + "@npmcli/run-script": "^8.1.0", + "bin-links": "^4.0.4", + "cacache": "^18.0.3", + "common-ancestor-path": "^1.0.1", + "hosted-git-info": "^7.0.2", + "json-parse-even-better-errors": "^3.0.2", + "json-stringify-nice": "^1.1.4", + "lru-cache": "^10.2.2", + "minimatch": "^9.0.4", + "nopt": "^7.2.1", + "npm-install-checks": "^6.2.0", + "npm-package-arg": "^11.0.2", + "npm-pick-manifest": "^9.0.1", + "npm-registry-fetch": "^17.0.1", + "pacote": "^18.0.6", + "parse-conflict-json": "^3.0.0", + "proc-log": "^4.2.0", + "proggy": "^2.0.0", + "promise-all-reject-late": "^1.0.0", + "promise-call-limit": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "ssri": "^10.0.6", + "treeverse": "^3.0.0", + "walk-up-path": "^3.0.1" + }, + "bin": { + "arborist": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/config": { + "version": "8.3.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/map-workspaces": "^3.0.2", + "@npmcli/package-json": "^5.1.1", + "ci-info": "^4.0.0", + "ini": "^4.1.2", + "nopt": "^7.2.1", + "proc-log": "^4.2.0", + "semver": "^7.3.5", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/fs": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/git": { + "version": "5.0.8", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/installed-package-contents": { + "version": "2.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "bin": { + "installed-package-contents": "bin/index.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/map-workspaces": { + "version": "3.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0", + "read-package-json-fast": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/metavuln-calculator": { + "version": "7.1.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cacache": "^18.0.0", + "json-parse-even-better-errors": "^3.0.0", + "pacote": "^18.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/name-from-folder": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/node-gyp": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/package-json": { + "version": "5.2.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "glob": "^10.2.2", + "hosted-git-info": "^7.0.0", + "json-parse-even-better-errors": "^3.0.0", + "normalize-package-data": "^6.0.0", + "proc-log": "^4.0.0", + "semver": "^7.5.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/promise-spawn": { + "version": "7.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/query": { + "version": "3.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/redact": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@npmcli/run-script": { + "version": "8.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", + "which": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "inBundle": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/@sigstore/bundle": { + "version": "2.3.2", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/core": { + "version": "1.1.0", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "inBundle": true, + "license": "Apache-2.0", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/sign": { + "version": "2.3.2", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/tuf": { + "version": "2.3.4", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@sigstore/verify": { + "version": "1.2.1", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/@tufjs/models": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/abbrev": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/agent-base": { + "version": "7.1.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/aggregate-error": { + "version": "3.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-regex": { + "version": "5.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ansi-styles": { + "version": "6.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/aproba": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/archy": { + "version": "1.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/balanced-match": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/bin-links": { + "version": "4.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cmd-shim": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "read-cmd-shim": "^4.0.0", + "write-file-atomic": "^5.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/binary-extensions": { + "version": "2.3.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/brace-expansion": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/npm/node_modules/cacache": { + "version": "18.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/chalk": { + "version": "5.3.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/npm/node_modules/chownr": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ci-info": { + "version": "4.0.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/cidr-regex": { + "version": "4.1.1", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "ip-regex": "^5.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/clean-stack": { + "version": "2.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/cli-columns": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm/node_modules/cmd-shim": { + "version": "6.0.3", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/color-convert": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/npm/node_modules/color-name": { + "version": "1.1.4", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/common-ancestor-path": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/cross-spawn": { + "version": "7.0.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/cssesc": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/debug": { + "version": "4.3.6", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/npm/node_modules/debug/node_modules/ms": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/diff": { + "version": "5.2.0", + "inBundle": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/npm/node_modules/eastasianwidth": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/emoji-regex": { + "version": "8.0.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/encoding": { + "version": "0.1.13", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/npm/node_modules/env-paths": { + "version": "2.2.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm/node_modules/err-code": { + "version": "2.0.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/exponential-backoff": { + "version": "3.1.1", + "inBundle": true, + "license": "Apache-2.0" + }, + "node_modules/npm/node_modules/fastest-levenshtein": { + "version": "1.0.16", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/npm/node_modules/foreground-child": { + "version": "3.3.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/fs-minipass": { + "version": "3.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/glob": { + "version": "10.4.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/graceful-fs": { + "version": "4.2.11", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/hosted-git-info": { + "version": "7.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "lru-cache": "^10.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/http-cache-semantics": { + "version": "4.1.1", + "inBundle": true, + "license": "BSD-2-Clause" + }, + "node_modules/npm/node_modules/http-proxy-agent": { + "version": "7.0.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/https-proxy-agent": { + "version": "7.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/iconv-lite": { + "version": "0.6.3", + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm/node_modules/ignore-walk": { + "version": "6.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minimatch": "^9.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/imurmurhash": { + "version": "0.1.4", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/npm/node_modules/indent-string": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/ini": { + "version": "4.1.3", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/init-package-json": { + "version": "6.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/package-json": "^5.0.0", + "npm-package-arg": "^11.0.0", + "promzard": "^1.0.0", + "read": "^3.0.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/ip-address": { + "version": "9.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/npm/node_modules/ip-regex": { + "version": "5.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/is-cidr": { + "version": "5.1.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "cidr-regex": "^4.1.1" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/npm/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/is-lambda": { + "version": "1.0.1", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/isexe": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/jackspeak": { + "version": "3.4.3", + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/npm/node_modules/jsbn": { + "version": "1.1.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/json-parse-even-better-errors": { + "version": "3.0.2", + "inBundle": true, + "license": "MIT", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/json-stringify-nice": { + "version": "1.1.4", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/jsonparse": { + "version": "1.3.1", + "engines": [ + "node >= 0.2.0" + ], + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff": { + "version": "6.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/just-diff-apply": { + "version": "5.5.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/libnpmaccess": { + "version": "8.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmdiff": { + "version": "6.1.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4", + "@npmcli/installed-package-contents": "^2.1.0", + "binary-extensions": "^2.3.0", + "diff": "^5.1.0", + "minimatch": "^9.0.4", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6", + "tar": "^6.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmexec": { + "version": "8.1.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4", + "@npmcli/run-script": "^8.1.0", + "ci-info": "^4.0.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6", + "proc-log": "^4.2.0", + "read": "^3.0.1", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.7", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmfund": { + "version": "5.0.12", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmhook": { + "version": "10.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmorg": { + "version": "6.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpack": { + "version": "7.0.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/arborist": "^7.5.4", + "@npmcli/run-script": "^8.1.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.6" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmpublish": { + "version": "9.0.9", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ci-info": "^4.0.0", + "normalize-package-data": "^6.0.1", + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.2.0", + "semver": "^7.3.7", + "sigstore": "^2.2.0", + "ssri": "^10.0.6" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmsearch": { + "version": "7.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmteam": { + "version": "6.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "aproba": "^2.0.0", + "npm-registry-fetch": "^17.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/libnpmversion": { + "version": "6.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.7", + "@npmcli/run-script": "^8.1.0", + "json-parse-even-better-errors": "^3.0.2", + "proc-log": "^4.2.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/lru-cache": { + "version": "10.4.3", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/make-fetch-happen": { + "version": "13.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/minimatch": { + "version": "9.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/minipass": { + "version": "7.1.2", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-collect": { + "version": "2.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/npm/node_modules/minipass-fetch": { + "version": "3.0.5", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm/node_modules/minipass-flush": { + "version": "1.0.5", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline": { + "version": "1.2.4", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized": { + "version": "1.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/minizlib": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/mkdirp": { + "version": "1.0.4", + "inBundle": true, + "license": "MIT", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/ms": { + "version": "2.1.3", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/mute-stream": { + "version": "1.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/negotiator": { + "version": "0.6.3", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/npm/node_modules/node-gyp": { + "version": "10.2.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/nopt": { + "version": "7.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/normalize-package-data": { + "version": "6.0.2", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-audit-report": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-bundled": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-install-checks": { + "version": "6.3.0", + "inBundle": true, + "license": "BSD-2-Clause", + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-package-arg": { + "version": "11.0.3", + "inBundle": true, + "license": "ISC", + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-packlist": { + "version": "8.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "ignore-walk": "^6.0.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-pick-manifest": { + "version": "9.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-profile": { + "version": "10.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "npm-registry-fetch": "^17.0.1", + "proc-log": "^4.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-registry-fetch": { + "version": "17.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/npm-user-validate": { + "version": "2.0.1", + "inBundle": true, + "license": "BSD-2-Clause", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/p-map": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/package-json-from-dist": { + "version": "1.0.0", + "inBundle": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/npm/node_modules/pacote": { + "version": "18.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^8.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" + }, + "bin": { + "pacote": "bin/index.js" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/parse-conflict-json": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "just-diff": "^6.0.0", + "just-diff-apply": "^5.2.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/path-key": { + "version": "3.1.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/path-scurry": { + "version": "1.11.1", + "inBundle": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/postcss-selector-parser": { + "version": "6.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm/node_modules/proc-log": { + "version": "4.2.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/proggy": { + "version": "2.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/promise-all-reject-late": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-call-limit": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/promise-inflight": { + "version": "1.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/promise-retry": { + "version": "2.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/promzard": { + "version": "1.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "read": "^3.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/qrcode-terminal": { + "version": "0.12.0", + "inBundle": true, + "bin": { + "qrcode-terminal": "bin/qrcode-terminal.js" + } + }, + "node_modules/npm/node_modules/read": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "mute-stream": "^1.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-cmd-shim": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/read-package-json-fast": { + "version": "3.0.2", + "inBundle": true, + "license": "ISC", + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/retry": { + "version": "0.12.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm/node_modules/safer-buffer": { + "version": "2.1.2", + "inBundle": true, + "license": "MIT", + "optional": true + }, + "node_modules/npm/node_modules/semver": { + "version": "7.6.3", + "inBundle": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/shebang-command": { + "version": "2.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/shebang-regex": { + "version": "3.0.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/signal-exit": { + "version": "4.1.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/npm/node_modules/sigstore": { + "version": "2.3.1", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/smart-buffer": { + "version": "4.2.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks": { + "version": "2.8.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/npm/node_modules/socks-proxy-agent": { + "version": "8.0.4", + "inBundle": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/npm/node_modules/spdx-correct": { + "version": "3.2.0", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-correct/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-exceptions": { + "version": "2.5.0", + "inBundle": true, + "license": "CC-BY-3.0" + }, + "node_modules/npm/node_modules/spdx-expression-parse": { + "version": "4.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/spdx-license-ids": { + "version": "3.0.18", + "inBundle": true, + "license": "CC0-1.0" + }, + "node_modules/npm/node_modules/sprintf-js": { + "version": "1.1.3", + "inBundle": true, + "license": "BSD-3-Clause" + }, + "node_modules/npm/node_modules/ssri": { + "version": "10.0.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/string-width": { + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "inBundle": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/supports-color": { + "version": "9.4.0", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/npm/node_modules/tar": { + "version": "6.2.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "inBundle": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=8" + } + }, + "node_modules/npm/node_modules/text-table": { + "version": "0.2.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/tiny-relative-date": { + "version": "1.3.0", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/treeverse": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/tuf-js": { + "version": "2.2.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "@tufjs/models": "2.0.1", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/unique-filename": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/unique-slug": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/util-deprecate": { + "version": "1.0.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/validate-npm-package-license": { + "version": "3.0.4", + "inBundle": true, + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse": { + "version": "3.0.1", + "inBundle": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/npm/node_modules/validate-npm-package-name": { + "version": "5.0.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/walk-up-path": { + "version": "3.0.1", + "inBundle": true, + "license": "ISC" + }, + "node_modules/npm/node_modules/which": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC", + "dependencies": { + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" + }, + "engines": { + "node": "^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "inBundle": true, + "license": "ISC", + "engines": { + "node": ">=16" + } + }, + "node_modules/npm/node_modules/wrap-ansi": { + "version": "8.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "inBundle": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "9.2.2", + "inBundle": true, + "license": "MIT" + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/string-width": { + "version": "5.1.2", + "inBundle": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "inBundle": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/npm/node_modules/write-file-atomic": { + "version": "5.0.1", + "inBundle": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm/node_modules/yallist": { + "version": "4.0.0", + "inBundle": true, + "license": "ISC" + }, "node_modules/path": { "version": "0.12.7", "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", diff --git a/package.json b/package.json index 3256354..4078729 100644 --- a/package.json +++ b/package.json @@ -5,10 +5,11 @@ "private": true, "type": "module", "dependencies": { - "@minecraft/server": "^1.14.0-beta.1.21.20-stable", - "@minecraft/server-ui": "^1.2.0", + "@minecraft/server": "^1.15.0-beta.1.21.30-stable", + "@minecraft/server-ui": "^1.3.0", "fs": "^0.0.1-security", "gettext-parser": "^8.0.0", + "npm": "^10.8.3", "path": "^0.12.7", "tsc": "^2.0.4", "typescript": "^5.3.3"