From dc19f546ef956855452abdc4c973cfa8ac20c446 Mon Sep 17 00:00:00 2001 From: Zach Parks Date: Fri, 15 Nov 2024 08:19:44 -0600 Subject: [PATCH] 2.0.2 docs --- docs/dev | 2 +- docs/stable | 2 +- docs/v2.0 | 2 +- docs/v2.0.2/CNAME | 1 + docs/v2.0.2/assets/custom.css | 29 + docs/v2.0.2/assets/dmt/dmt-component-data.js | 1 + docs/v2.0.2/assets/dmt/dmt-components.css | 20 + docs/v2.0.2/assets/dmt/dmt-components.js | 67 + docs/v2.0.2/assets/dmt/dmt-search.cmp | Bin 0 -> 16759 bytes docs/v2.0.2/assets/dmt/dmt-theme.css | 1 + .../assets/dmt/icons/service/discord.png | Bin 0 -> 6041 bytes .../assets/dmt/icons/service/github.png | Bin 0 -> 6395 bytes docs/v2.0.2/assets/dmt/icons/service/npm.png | Bin 0 -> 4545 bytes docs/v2.0.2/assets/highlight.css | 141 ++ docs/v2.0.2/assets/icons.js | 18 + docs/v2.0.2/assets/icons.svg | 1 + docs/v2.0.2/assets/main.js | 60 + docs/v2.0.2/assets/style.css | 1493 +++++++++++++++++ docs/v2.0.2/assets/versionsMenu.js | 21 + .../v2.0.2/classes/index.BaseMessageNode.html | 27 + docs/v2.0.2/classes/index.Client.html | 106 ++ .../classes/index.ColorMessageNode.html | 29 + .../classes/index.DataPackageManager.html | 62 + .../classes/index.DataStorageManager.html | 48 + .../classes/index.DeathLinkManager.html | 47 + .../classes/index.EventBasedManager.html | 34 + docs/v2.0.2/classes/index.Hint.html | 12 + .../index.IntermediateDataOperation.html | 65 + docs/v2.0.2/classes/index.Item.html | 34 + .../v2.0.2/classes/index.ItemMessageNode.html | 28 + docs/v2.0.2/classes/index.ItemsManager.html | 41 + .../classes/index.LocationMessageNode.html | 28 + docs/v2.0.2/classes/index.MessageManager.html | 42 + .../v2.0.2/classes/index.PackageMetadata.html | 21 + docs/v2.0.2/classes/index.Player.html | 33 + .../classes/index.PlayerMessageNode.html | 28 + docs/v2.0.2/classes/index.PlayersManager.html | 49 + .../classes/index.RoomStateManager.html | 68 + docs/v2.0.2/classes/index.SocketManager.html | 53 + .../classes/index.TextualMessageNode.html | 27 + .../documents/Creating_Your_Client.html | 41 + docs/v2.0.2/documents/Installation.html | 43 + .../documents/Introduction.Reports.html | 24 + docs/v2.0.2/documents/Introduction.html | 39 + docs/v2.0.2/documents/placeholder.html | 9 + docs/v2.0.2/favicon.png | Bin 0 -> 1487 bytes docs/v2.0.2/hierarchy.html | 5 + docs/v2.0.2/index.html | 32 + ...ndex.API.AdminCommandResultJSONPacket.html | 12 + .../interfaces/index.API.BouncePacket.html | 17 + .../interfaces/index.API.BouncedPacket.html | 15 + .../interfaces/index.API.ChatJSONPacket.html | 18 + .../index.API.CollectJSONPacket.html | 16 + .../index.API.CommandResultJSONPacket.html | 12 + .../interfaces/index.API.ConnectPacket.html | 24 + .../index.API.ConnectUpdatePacket.html | 12 + .../interfaces/index.API.ConnectedPacket.html | 26 + .../index.API.ConnectionRefusedPacket.html | 10 + .../index.API.CountdownJSONPacket.html | 14 + .../index.API.DataPackagePacket.html | 11 + .../index.API.GetDataPackagePacket.html | 10 + .../interfaces/index.API.GetPacket.html | 24 + .../interfaces/index.API.GoalJSONPacket.html | 16 + .../interfaces/index.API.HintJSONPacket.html | 18 + ...ndex.API.InvalidArgumentsPacketPacket.html | 12 + .../index.API.InvalidCommandPacketPacket.html | 14 + .../index.API.ItemCheatJSONPacket.html | 18 + .../index.API.ItemSendJSONPacket.html | 16 + .../interfaces/index.API.JoinJSONPacket.html | 18 + .../index.API.LocationChecksPacket.html | 11 + .../index.API.LocationInfoPacket.html | 10 + .../index.API.LocationScoutsPacket.html | 20 + .../interfaces/index.API.PartJSONPacket.html | 16 + .../index.API.ReceivedItemsPacket.html | 11 + .../index.API.ReleaseJSONPacket.html | 16 + .../interfaces/index.API.RetrievedPacket.html | 12 + .../interfaces/index.API.RoomInfoPacket.html | 31 + .../index.API.RoomUpdatePacket.html | 29 + .../interfaces/index.API.SayPacket.html | 9 + .../index.API.ServerChatJSONPacket.html | 14 + .../interfaces/index.API.SetNotifyPacket.html | 10 + .../interfaces/index.API.SetPacket.html | 20 + .../interfaces/index.API.SetReplyPacket.html | 18 + .../index.API.StatusUpdatePacket.html | 10 + .../interfaces/index.API.SyncPacket.html | 10 + .../index.API.TagsChangedJSONPacket.html | 18 + .../index.API.TutorialJSONPacket.html | 12 + .../interfaces/index.ClientOptions.html | 30 + .../interfaces/index.ConnectionOptions.html | 40 + docs/v2.0.2/media/creating.md | 22 + docs/v2.0.2/media/example_1.gif | Bin 0 -> 84475 bytes docs/v2.0.2/media/icon_small.png | Bin 0 -> 1164 bytes docs/v2.0.2/media/placeholder.md | 7 + docs/v2.0.2/modules.html | 18 + docs/v2.0.2/modules/index.API.html | 107 ++ docs/v2.0.2/modules/index.html | 49 + docs/v2.0.2/sitemap.xml | 531 ++++++ .../index.API.AddDataStorageOperation.html | 9 + .../index.API.AndDataStorageOperation.html | 8 + ...index.API.CeilingDataStorageOperation.html | 8 + docs/v2.0.2/types/index.API.ClientPacket.html | 5 + .../types/index.API.ColorJSONMessagePart.html | 10 + .../types/index.API.ConnectionError.html | 7 + docs/v2.0.2/types/index.API.DataPackage.html | 14 + .../types/index.API.DataStorageOperation.html | 15 + ...index.API.DefaultDataStorageOperation.html | 9 + .../index.API.FloorDataStorageOperation.html | 8 + docs/v2.0.2/types/index.API.GamePackage.html | 9 + .../types/index.API.InvalidPacketPacket.html | 9 + .../types/index.API.ItemJSONMessagePart.html | 11 + .../types/index.API.JSONMessagePart.html | 8 + docs/v2.0.2/types/index.API.JSONRecord.html | 6 + .../types/index.API.JSONSerializable.html | 6 + ...dex.API.LeftShiftDataStorageOperation.html | 8 + .../index.API.LocationJSONMessagePart.html | 10 + .../index.API.MaxDataStorageOperation.html | 8 + .../index.API.MinDataStorageOperation.html | 8 + .../index.API.ModuloDataStorageOperation.html | 8 + ...ndex.API.MultiplyDataStorageOperation.html | 8 + docs/v2.0.2/types/index.API.NetworkHint.html | 13 + docs/v2.0.2/types/index.API.NetworkItem.html | 11 + .../v2.0.2/types/index.API.NetworkPlayer.html | 12 + docs/v2.0.2/types/index.API.NetworkSlot.html | 10 + .../types/index.API.NetworkVersion.html | 12 + .../index.API.OrDataStorageOperation.html | 8 + .../types/index.API.PermissionTable.html | 35 + .../types/index.API.PermissionValue.html | 6 + .../index.API.PopDataStorageOperation.html | 9 + .../index.API.PowerDataStorageOperation.html | 8 + .../types/index.API.PrintJSONPacket.html | 9 + .../v2.0.2/types/index.API.PrintJSONType.html | 6 + .../index.API.RemoveDataStorageOperation.html | 8 + ...index.API.ReplaceDataStorageOperation.html | 8 + ...ex.API.RightShiftDataStorageOperation.html | 8 + docs/v2.0.2/types/index.API.ServerPacket.html | 5 + .../types/index.API.TextJSONMessagePart.html | 10 + .../index.API.UpdateDataStorageOperation.html | 9 + .../types/index.API.ValidJSONColorType.html | 9 + .../index.API.ValidJSONMessagePartType.html | 18 + .../index.API.XorDataStorageOperation.html | 8 + docs/v2.0.2/types/index.ClientStatus.html | 6 + .../types/index.DataChangeCallback.html | 6 + docs/v2.0.2/types/index.DeathEvents.html | 12 + .../types/index.DeathReceivedCallback.html | 6 + docs/v2.0.2/types/index.ItemEvents.html | 16 + docs/v2.0.2/types/index.MessageEvents.html | 73 + docs/v2.0.2/types/index.MessageLog.html | 6 + docs/v2.0.2/types/index.MessageNode.html | 6 + docs/v2.0.2/types/index.PlayerEvents.html | 9 + docs/v2.0.2/types/index.RoomStateEvents.html | 25 + docs/v2.0.2/types/index.SocketEvents.html | 45 + .../variables/index.API.clientStatuses.html | 12 + .../index.API.itemClassifications.html | 10 + .../index.API.itemsHandlingFlags.html | 11 + .../variables/index.API.permissions.html | 14 + .../v2.0.2/variables/index.API.slotTypes.html | 9 + .../variables/index.libraryVersion.html | 5 + .../v2.0.2/variables/index.targetVersion.html | 7 + 158 files changed, 5037 insertions(+), 3 deletions(-) create mode 100644 docs/v2.0.2/CNAME create mode 100644 docs/v2.0.2/assets/custom.css create mode 100644 docs/v2.0.2/assets/dmt/dmt-component-data.js create mode 100644 docs/v2.0.2/assets/dmt/dmt-components.css create mode 100644 docs/v2.0.2/assets/dmt/dmt-components.js create mode 100644 docs/v2.0.2/assets/dmt/dmt-search.cmp create mode 100644 docs/v2.0.2/assets/dmt/dmt-theme.css create mode 100644 docs/v2.0.2/assets/dmt/icons/service/discord.png create mode 100644 docs/v2.0.2/assets/dmt/icons/service/github.png create mode 100644 docs/v2.0.2/assets/dmt/icons/service/npm.png create mode 100644 docs/v2.0.2/assets/highlight.css create mode 100644 docs/v2.0.2/assets/icons.js create mode 100644 docs/v2.0.2/assets/icons.svg create mode 100644 docs/v2.0.2/assets/main.js create mode 100644 docs/v2.0.2/assets/style.css create mode 100644 docs/v2.0.2/assets/versionsMenu.js create mode 100644 docs/v2.0.2/classes/index.BaseMessageNode.html create mode 100644 docs/v2.0.2/classes/index.Client.html create mode 100644 docs/v2.0.2/classes/index.ColorMessageNode.html create mode 100644 docs/v2.0.2/classes/index.DataPackageManager.html create mode 100644 docs/v2.0.2/classes/index.DataStorageManager.html create mode 100644 docs/v2.0.2/classes/index.DeathLinkManager.html create mode 100644 docs/v2.0.2/classes/index.EventBasedManager.html create mode 100644 docs/v2.0.2/classes/index.Hint.html create mode 100644 docs/v2.0.2/classes/index.IntermediateDataOperation.html create mode 100644 docs/v2.0.2/classes/index.Item.html create mode 100644 docs/v2.0.2/classes/index.ItemMessageNode.html create mode 100644 docs/v2.0.2/classes/index.ItemsManager.html create mode 100644 docs/v2.0.2/classes/index.LocationMessageNode.html create mode 100644 docs/v2.0.2/classes/index.MessageManager.html create mode 100644 docs/v2.0.2/classes/index.PackageMetadata.html create mode 100644 docs/v2.0.2/classes/index.Player.html create mode 100644 docs/v2.0.2/classes/index.PlayerMessageNode.html create mode 100644 docs/v2.0.2/classes/index.PlayersManager.html create mode 100644 docs/v2.0.2/classes/index.RoomStateManager.html create mode 100644 docs/v2.0.2/classes/index.SocketManager.html create mode 100644 docs/v2.0.2/classes/index.TextualMessageNode.html create mode 100644 docs/v2.0.2/documents/Creating_Your_Client.html create mode 100644 docs/v2.0.2/documents/Installation.html create mode 100644 docs/v2.0.2/documents/Introduction.Reports.html create mode 100644 docs/v2.0.2/documents/Introduction.html create mode 100644 docs/v2.0.2/documents/placeholder.html create mode 100644 docs/v2.0.2/favicon.png create mode 100644 docs/v2.0.2/hierarchy.html create mode 100644 docs/v2.0.2/index.html create mode 100644 docs/v2.0.2/interfaces/index.API.AdminCommandResultJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.BouncePacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.BouncedPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.ChatJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.CollectJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.CommandResultJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.ConnectPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.ConnectUpdatePacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.ConnectedPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.ConnectionRefusedPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.CountdownJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.DataPackagePacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.GetDataPackagePacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.GetPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.GoalJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.HintJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.InvalidArgumentsPacketPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.InvalidCommandPacketPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.ItemCheatJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.ItemSendJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.JoinJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.LocationChecksPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.LocationInfoPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.LocationScoutsPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.PartJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.ReceivedItemsPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.ReleaseJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.RetrievedPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.RoomInfoPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.RoomUpdatePacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.SayPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.ServerChatJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.SetNotifyPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.SetPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.SetReplyPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.StatusUpdatePacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.SyncPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.TagsChangedJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.API.TutorialJSONPacket.html create mode 100644 docs/v2.0.2/interfaces/index.ClientOptions.html create mode 100644 docs/v2.0.2/interfaces/index.ConnectionOptions.html create mode 100644 docs/v2.0.2/media/creating.md create mode 100644 docs/v2.0.2/media/example_1.gif create mode 100644 docs/v2.0.2/media/icon_small.png create mode 100644 docs/v2.0.2/media/placeholder.md create mode 100644 docs/v2.0.2/modules.html create mode 100644 docs/v2.0.2/modules/index.API.html create mode 100644 docs/v2.0.2/modules/index.html create mode 100644 docs/v2.0.2/sitemap.xml create mode 100644 docs/v2.0.2/types/index.API.AddDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.AndDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.CeilingDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.ClientPacket.html create mode 100644 docs/v2.0.2/types/index.API.ColorJSONMessagePart.html create mode 100644 docs/v2.0.2/types/index.API.ConnectionError.html create mode 100644 docs/v2.0.2/types/index.API.DataPackage.html create mode 100644 docs/v2.0.2/types/index.API.DataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.DefaultDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.FloorDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.GamePackage.html create mode 100644 docs/v2.0.2/types/index.API.InvalidPacketPacket.html create mode 100644 docs/v2.0.2/types/index.API.ItemJSONMessagePart.html create mode 100644 docs/v2.0.2/types/index.API.JSONMessagePart.html create mode 100644 docs/v2.0.2/types/index.API.JSONRecord.html create mode 100644 docs/v2.0.2/types/index.API.JSONSerializable.html create mode 100644 docs/v2.0.2/types/index.API.LeftShiftDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.LocationJSONMessagePart.html create mode 100644 docs/v2.0.2/types/index.API.MaxDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.MinDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.ModuloDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.MultiplyDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.NetworkHint.html create mode 100644 docs/v2.0.2/types/index.API.NetworkItem.html create mode 100644 docs/v2.0.2/types/index.API.NetworkPlayer.html create mode 100644 docs/v2.0.2/types/index.API.NetworkSlot.html create mode 100644 docs/v2.0.2/types/index.API.NetworkVersion.html create mode 100644 docs/v2.0.2/types/index.API.OrDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.PermissionTable.html create mode 100644 docs/v2.0.2/types/index.API.PermissionValue.html create mode 100644 docs/v2.0.2/types/index.API.PopDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.PowerDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.PrintJSONPacket.html create mode 100644 docs/v2.0.2/types/index.API.PrintJSONType.html create mode 100644 docs/v2.0.2/types/index.API.RemoveDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.ReplaceDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.RightShiftDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.ServerPacket.html create mode 100644 docs/v2.0.2/types/index.API.TextJSONMessagePart.html create mode 100644 docs/v2.0.2/types/index.API.UpdateDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.API.ValidJSONColorType.html create mode 100644 docs/v2.0.2/types/index.API.ValidJSONMessagePartType.html create mode 100644 docs/v2.0.2/types/index.API.XorDataStorageOperation.html create mode 100644 docs/v2.0.2/types/index.ClientStatus.html create mode 100644 docs/v2.0.2/types/index.DataChangeCallback.html create mode 100644 docs/v2.0.2/types/index.DeathEvents.html create mode 100644 docs/v2.0.2/types/index.DeathReceivedCallback.html create mode 100644 docs/v2.0.2/types/index.ItemEvents.html create mode 100644 docs/v2.0.2/types/index.MessageEvents.html create mode 100644 docs/v2.0.2/types/index.MessageLog.html create mode 100644 docs/v2.0.2/types/index.MessageNode.html create mode 100644 docs/v2.0.2/types/index.PlayerEvents.html create mode 100644 docs/v2.0.2/types/index.RoomStateEvents.html create mode 100644 docs/v2.0.2/types/index.SocketEvents.html create mode 100644 docs/v2.0.2/variables/index.API.clientStatuses.html create mode 100644 docs/v2.0.2/variables/index.API.itemClassifications.html create mode 100644 docs/v2.0.2/variables/index.API.itemsHandlingFlags.html create mode 100644 docs/v2.0.2/variables/index.API.permissions.html create mode 100644 docs/v2.0.2/variables/index.API.slotTypes.html create mode 100644 docs/v2.0.2/variables/index.libraryVersion.html create mode 100644 docs/v2.0.2/variables/index.targetVersion.html diff --git a/docs/dev b/docs/dev index 81ef58f2..b02d37b0 120000 --- a/docs/dev +++ b/docs/dev @@ -1 +1 @@ -v2.0.1 \ No newline at end of file +v2.0.2 \ No newline at end of file diff --git a/docs/stable b/docs/stable index 81ef58f2..b02d37b0 120000 --- a/docs/stable +++ b/docs/stable @@ -1 +1 @@ -v2.0.1 \ No newline at end of file +v2.0.2 \ No newline at end of file diff --git a/docs/v2.0 b/docs/v2.0 index 81ef58f2..b02d37b0 120000 --- a/docs/v2.0 +++ b/docs/v2.0 @@ -1 +1 @@ -v2.0.1 \ No newline at end of file +v2.0.2 \ No newline at end of file diff --git a/docs/v2.0.2/CNAME b/docs/v2.0.2/CNAME new file mode 100644 index 00000000..698729d0 --- /dev/null +++ b/docs/v2.0.2/CNAME @@ -0,0 +1 @@ +archipelago.js.org \ No newline at end of file diff --git a/docs/v2.0.2/assets/custom.css b/docs/v2.0.2/assets/custom.css new file mode 100644 index 00000000..17b93f41 --- /dev/null +++ b/docs/v2.0.2/assets/custom.css @@ -0,0 +1,29 @@ +.tsd-page-toolbar .tsd-toolbar-contents { + padding: 0.5rem 1rem !important; +} + +header.tsd-page-toolbar { + height: unset !important; +} + +div.svelte-wmon9h { + padding: 0 !important; +} + +#dmt-search-field.svelte-tuln0o, #tsd-search .field input { + top: -2px !important; +} + +button.svelte-10arjs8 { + border-radius: 2px !important; + border: 1px solid #333; + margin: 0 0 0 4px !important; + height: 36px !important; + width: 36px !important; +} + +#plugin-versions-select { + width: 100%; + height: 24px; + margin-top: 4px; +} diff --git a/docs/v2.0.2/assets/dmt/dmt-component-data.js b/docs/v2.0.2/assets/dmt/dmt-component-data.js new file mode 100644 index 00000000..0c1a5692 --- /dev/null +++ b/docs/v2.0.2/assets/dmt/dmt-component-data.js @@ -0,0 +1 @@ +globalThis.dmtComponentDataBCMP = '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'; \ No newline at end of file diff --git a/docs/v2.0.2/assets/dmt/dmt-components.css b/docs/v2.0.2/assets/dmt/dmt-components.css new file mode 100644 index 00000000..9788431e --- /dev/null +++ b/docs/v2.0.2/assets/dmt/dmt-components.css @@ -0,0 +1,20 @@ +label.svelte-1y7unmi{align-items:center;cursor:pointer;display:flex;-webkit-user-select:none;user-select:none;width:fit-content}input.svelte-1y7unmi{cursor:pointer;height:1.5em;opacity:0;position:absolute;width:1.5em}svg.svelte-1y7unmi{border-radius:.33em;cursor:pointer;height:1.5em;margin-right:.5em;opacity:.99;width:1.5em} +section.svelte-20evnz{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem} +details.svelte-1jmqrcb.svelte-1jmqrcb{margin-left:var(--tjs-folder-details-margin-left,-.4em);padding-left:var(--tjs-folder-details-padding-left,.4em)}summary.svelte-1jmqrcb.svelte-1jmqrcb{align-items:center;background:var(--tjs-folder-summary-background,none);background-blend-mode:var(--tjs-folder-summary-background-blend-mode,initial);border:var(--tjs-folder-summary-border,none);border-radius:var(--tjs-folder-summary-border-radius,0);border-width:var(--tjs-folder-summary-border-width,initial);cursor:var(--tjs-folder-summary-cursor,pointer);display:flex;font-family:var(--tjs-folder-summary-font-family,inherit);font-size:var(--tjs-folder-summary-font-size,inherit);font-weight:var(--tjs-folder-summary-font-weight,bold);gap:var(--tjs-folder-summary-gap,.125em);list-style:none;margin:var(--tjs-folder-summary-margin,0 0 0 -.4em);padding:var(--tjs-folder-summary-padding,.25em) 0;position:relative;transition:var(--tjs-folder-summary-transition,background .1s);-webkit-user-select:none;user-select:none;width:var(--tjs-folder-summary-width,fit-content)}summary.svelte-1jmqrcb.svelte-1jmqrcb::-webkit-details-marker{display:none}.default-cursor.svelte-1jmqrcb.svelte-1jmqrcb{cursor:default}summary.svelte-1jmqrcb svg.svelte-1jmqrcb{border-radius:var(--tjs-folder-summary-chevron-border-radius,0);color:var(--tjs-folder-summary-chevron-color,currentColor);cursor:var(--tjs-folder-summary-cursor,pointer);flex-shrink:0;height:var(--tjs-folder-summary-chevron-size,var(--tjs-folder-summary-font-size,1.25em));margin:var(--tjs-folder-summary-chevron-margin,0);opacity:var(--tjs-folder-summary-chevron-opacity,.2);transform:var(--tjs-folder-summary-chevron-rotate-closed,rotate(-90deg));transition:var(--tjs-folder-summary-chevron-transition,opacity .2s,transform .1s);width:var(--tjs-folder-summary-chevron-size,var(--tjs-folder-summary-font-size,1.25em))}summary.svelte-1jmqrcb.svelte-1jmqrcb:focus-visible{box-shadow:var(--tjs-folder-summary-box-shadow-focus-visible,var(--tjs-default-box-shadow-focus-visible));outline:var(--tjs-folder-summary-outline-focus-visible,var(--tjs-default-outline-focus-visible,revert));transition:var(--tjs-folder-summary-transition-focus-visible,var(--tjs-default-transition-focus-visible))}summary.svelte-1jmqrcb:focus-visible .label.svelte-1jmqrcb{text-shadow:var(--tjs-folder-summary-label-text-shadow-focus-visible,var(--tjs-default-text-shadow-focus-hover,revert))}summary.svelte-1jmqrcb:focus-visible .tjs-folder-focus-indicator.svelte-1jmqrcb{background:var(--tjs-folder-summary-focus-indicator-background,var(--tjs-default-focus-indicator-background,#fff))}summary.svelte-1jmqrcb:focus-visible svg.svelte-1jmqrcb{opacity:var(--tjs-folder-summary-chevron-opacity-focus-visible,1)}summary.svelte-1jmqrcb:focus-visible svg.focus-chevron.svelte-1jmqrcb{outline:var(--tjs-folder-summary-outline-focus-visible,var(--tjs-default-outline-focus-visible,revert))}summary:focus-visible.remove-focus-visible.svelte-1jmqrcb.svelte-1jmqrcb{outline:none}summary.svelte-1jmqrcb:hover svg.svelte-1jmqrcb{opacity:var(--tjs-folder-summary-chevron-opacity-hover,1)}.tjs-folder-focus-indicator.svelte-1jmqrcb.svelte-1jmqrcb{align-self:var(--tjs-folder-summary-focus-indicator-align-self,var(--tjs-default-focus-indicator-align-self,stretch));border:var(--tjs-folder-summary-focus-indicator-border,var(--tjs-default-focus-indicator-border));border-radius:var(--tjs-folder-summary-focus-indicator-border-radius,var(--tjs-default-focus-indicator-border-radius,.1em));flex:0 0 var(--tjs-folder-summary-focus-indicator-width,var(--tjs-default-focus-indicator-width,0.25em));height:var(--tjs-folder-summary-focus-indicator-height,var(--tjs-default-focus-indicator-height));pointer-events:none;transition:var(--tjs-folder-summary-focus-indicator-transition,var(--tjs-default-focus-indicator-transition))}details[open].svelte-1jmqrcb>summary.svelte-1jmqrcb{background:var(--tjs-folder-summary-background-open,var(--tjs-folder-summary-background,inherit))}[open].svelte-1jmqrcb:not(details[data-closing=true])>summary svg.svelte-1jmqrcb{transform:rotate(var(--tjs-folder-summary-chevron-rotate-open,0))}.contents.svelte-1jmqrcb.svelte-1jmqrcb{background:var(--tjs-folder-contents-background,none);background-blend-mode:var(--tjs-folder-contents-background-blend-mode,initial);border:var(--tjs-folder-contents-border,none);border-left:var(--tjs-folder-contents-border-left,none);display:var(--tjs-folder-contents-display,flex);flex-direction:var(--tjs-folder-contents-flex-direction,column);gap:var(--tjs-folder-contents-gap);margin:var(--tjs-folder-contents-margin,0 0 0 -.4em);padding:var(--tjs-folder-contents-padding,0 0 0 calc(var(--tjs-folder-summary-font-size, 1em)*.8));position:relative}.contents.svelte-1jmqrcb.svelte-1jmqrcb:before{content:"";height:calc(100% + .65em);left:0;position:absolute;top:-.65em;width:0}.contents.hidden.svelte-1jmqrcb.svelte-1jmqrcb{display:none}.label.svelte-1jmqrcb.svelte-1jmqrcb{overflow:var(--tjs-folder-summary-label-overflow,hidden);text-overflow:var(--tjs-folder-summary-label-text-overflow,ellipsis);white-space:var(--tjs-folder-summary-label-white-space,nowrap);width:var(--tjs-folder-summary-label-width,fit-content)}summary.svelte-1jmqrcb:focus-visible+.contents.svelte-1jmqrcb:before{height:100%;top:0} +details.svelte-3v63ql.svelte-3v63ql{margin-left:var(--tjs-folder-details-margin-left,-.4em);padding-left:var(--tjs-folder-details-padding-left,.4em)}summary.svelte-3v63ql.svelte-3v63ql{align-items:center;background:var(--tjs-folder-summary-background,none);background-blend-mode:var(--tjs-folder-summary-background-blend-mode,initial);border:var(--tjs-folder-summary-border,none);border-radius:var(--tjs-folder-summary-border-radius,0);border-width:var(--tjs-folder-summary-border-width,initial);cursor:var(--tjs-folder-summary-cursor,pointer);display:flex;font-family:var(--tjs-folder-summary-font-family,inherit);font-size:var(--tjs-folder-summary-font-size,inherit);font-weight:var(--tjs-folder-summary-font-weight,bold);gap:var(--tjs-folder-summary-gap,.125em);list-style:none;margin:var(--tjs-folder-summary-margin,0);padding:var(--tjs-folder-summary-padding,.25em) 0;position:relative;transition:var(--tjs-folder-summary-transition,background .1s);-webkit-user-select:none;user-select:none;width:var(--tjs-folder-summary-width,fit-content)}summary.svelte-3v63ql.svelte-3v63ql::-webkit-details-marker{display:none}summary.svelte-3v63ql i.svelte-3v63ql{border-radius:var(--tjs-folder-summary-chevron-border-radius,0);color:var(--tjs-folder-summary-chevron-color,inherit);cursor:var(--tjs-folder-summary-cursor,pointer);flex-shrink:0;margin:var(--tjs-folder-summary-chevron-margin,0 0 0 .25em);opacity:var(--tjs-folder-summary-chevron-opacity,1);transition:var(--tjs-folder-summary-chevron-transition,opacity .2s,transform .1s);width:var(--tjs-folder-summary-chevron-width,1.25em)}summary.svelte-3v63ql.svelte-3v63ql:focus-visible{box-shadow:var(--tjs-folder-summary-box-shadow-focus-visible,var(--tjs-default-box-shadow-focus-visible));outline:var(--tjs-folder-summary-outline-focus-visible,var(--tjs-default-outline-focus-visible,revert));transition:var(--tjs-folder-summary-transition-focus-visible,var(--tjs-default-transition-focus-visible))}summary.svelte-3v63ql:focus-visible .label.svelte-3v63ql{text-shadow:var(--tjs-folder-summary-label-text-shadow-focus-visible,var(--tjs-default-text-shadow-focus-hover,revert))}summary.svelte-3v63ql:focus-visible .tjs-folder-focus-indicator.svelte-3v63ql{background:var(--tjs-folder-summary-focus-indicator-background,var(--tjs-default-focus-indicator-background,#fff))}summary.svelte-3v63ql:focus-visible i.svelte-3v63ql{opacity:var(--tjs-folder-summary-chevron-opacity-focus-visible,1)}summary.svelte-3v63ql:focus-visible i.focus-chevron.svelte-3v63ql:before{outline:var(--tjs-folder-summary-outline-focus-visible,var(--tjs-default-outline-focus-visible,revert))}summary:focus-visible.remove-focus-visible.svelte-3v63ql.svelte-3v63ql{outline:none}summary.svelte-3v63ql:hover i.svelte-3v63ql{opacity:var(--tjs-folder-summary-chevron-opacity-hover,1)}.tjs-folder-focus-indicator.svelte-3v63ql.svelte-3v63ql{align-self:var(--tjs-folder-summary-focus-indicator-align-self,var(--tjs-default-focus-indicator-align-self,stretch));border:var(--tjs-folder-summary-focus-indicator-border,var(--tjs-default-focus-indicator-border));border-radius:var(--tjs-folder-summary-focus-indicator-border-radius,var(--tjs-default-focus-indicator-border-radius,.1em));flex:0 0 var(--tjs-folder-summary-focus-indicator-width,var(--tjs-default-focus-indicator-width,0.25em));height:var(--tjs-folder-summary-focus-indicator-height,var(--tjs-default-focus-indicator-height));pointer-events:none;transition:var(--tjs-folder-summary-focus-indicator-transition,var(--tjs-default-focus-indicator-transition))}.default-cursor.svelte-3v63ql.svelte-3v63ql{cursor:default}details[open].svelte-3v63ql>summary.svelte-3v63ql{background:var(--tjs-folder-summary-background-open,var(--tjs-folder-summary-background,inherit))}.contents.svelte-3v63ql.svelte-3v63ql{background:var(--tjs-folder-contents-background,none);background-blend-mode:var(--tjs-folder-contents-background-blend-mode,initial);border:var(--tjs-folder-contents-border,none);border-left:var(--tjs-folder-contents-border-left,none);display:var(--tjs-folder-contents-display,flex);flex-direction:var(--tjs-folder-contents-flex-direction,column);gap:var(--tjs-folder-contents-gap);margin:var(--tjs-folder-contents-margin,0 0 0 -.4em);padding:var(--tjs-folder-contents-padding,0 0 0 calc(var(--tjs-folder-summary-font-size, 1em)*.8));position:relative}.contents.svelte-3v63ql.svelte-3v63ql:before{content:"";height:calc(100% + .65em);left:0;position:absolute;top:-.65em;width:0}.contents.hidden.svelte-3v63ql.svelte-3v63ql{display:none}.label.svelte-3v63ql.svelte-3v63ql{overflow:var(--tjs-folder-summary-label-overflow,hidden);text-overflow:var(--tjs-folder-summary-label-text-overflow,ellipsis);white-space:var(--tjs-folder-summary-label-white-space,nowrap);width:var(--tjs-folder-summary-label-width,fit-content)}summary.svelte-3v63ql:focus-visible+.contents.svelte-3v63ql:before{height:100%;top:0} +a.svelte-14yttr0{width:fit-content}a.svelte-14yttr0,span.svelte-14yttr0{margin-right:.25rem}span.svelte-14yttr0,svg.svelte-14yttr0{pointer-events:none}.indent-icon.svelte-14yttr0{margin-left:var(--dmt-nav-entry-indent-icon,28px)}.indent-no-icon.svelte-14yttr0{margin-left:var(--dmt-nav-entry-indent-no-icon,18px)}.indent-none.svelte-14yttr0{margin-left:.25rem} +.dmt-navigation-content.svelte-cugiyd{display:flex;flex-direction:column;--tjs-folder-summary-font-weight:normal;--tjs-folder-summary-font-size:1em;--tjs-folder-summary-margin:0;--tjs-folder-summary-padding:0;--tjs-folder-summary-width:100%;--tjs-folder-contents-margin:var(--dmt-nav-folder-contents-margin,0 0 0 7px);--tjs-folder-contents-border-left:var(--dmt-nav-folder-contents-border-left,2px solid var(--dmt-nav-folder-contents-border-color,#0003));--tjs-folder-contents-padding:var(--dmt-nav-folder-contents-padding,0 0 0 9px);outline:#0000;overflow-x:auto;padding-left:var(--dmt-nav-tree-padding-left,3px);padding-top:var(--dmt-nav-tree-padding-top,.25rem);touch-action:pan-x pan-y}.dmt-navigation-content.svelte-cugiyd>:last-child{margin-bottom:var(--dmt-nav-tree-bottom-margin,.25rem)} +hr.svelte-wwxcg7{border:unset;border-bottom:var(--dmt-container-border);margin:.25rem .5rem 0 0}section.svelte-wwxcg7{--tjs-folder-summary-margin:0 0.25rem;--tjs-folder-summary-width:100%;background:var(--dmt-container-background);border:var(--dmt-container-border);border-radius:var(--dmt-container-border-radius);box-shadow:var(--dmt-container-box-shadow);margin:0 1rem 0 0;padding-bottom:.25rem} +a.svelte-ietkuq{display:block;overflow:var(--dmt-sidebarlinks-overflow,unset);text-overflow:var(--dmt-sidebarlinks-text-overflow,ellipsis);white-space:var(--dmt-sidebarlinks-white-space,normal)}section.svelte-ietkuq{background:var(--dmt-container-background);border:var(--dmt-container-border);border-radius:var(--dmt-container-border-radius);box-shadow:var(--dmt-container-box-shadow);display:flex;flex-direction:column;gap:.25em;margin:0 1rem 0 0;padding:.25rem} +div.svelte-1uxeem0{background:var(--dmt-overlay-panel-background);border-bottom:1px solid #0003;border-left:1px solid #0003;border-radius:0 0 .25rem .25rem;border-right:1px solid #0003;box-shadow:-.25rem 0 .25rem -.25rem var(--dmt-box-shadow-color),.25rem 0 .25rem -.25rem var(--dmt-box-shadow-color),0 .75rem .75rem -.75rem var(--dmt-box-shadow-color);display:flex;flex-direction:column;gap:.25rem;height:fit-content;padding:.5rem;position:absolute;top:2.6rem;width:calc(100% - 1.5rem)}span.svelte-1uxeem0{align-items:center;display:flex;gap:.5rem}svg.svelte-1uxeem0{margin:0}.key.svelte-1uxeem0{background:#ffffff40;border:1px solid #999;border-radius:.25rem;box-shadow:1px 1px var(--dmt-help-panel-key-box-shadow-color);min-width:52px;padding:0 3px;text-align:center}.reflection-kinds.svelte-1uxeem0{display:grid;grid-template-columns:1fr 1fr;grid-row-gap:.1rem}.title.svelte-1uxeem0{-webkit-text-decoration:underline;text-decoration:underline}:root[data-theme=dark]{--dmt-help-panel-key-box-shadow-color:#aaa}:root[data-theme=light]{--dmt-help-panel-key-box-shadow-color:#444}@media(prefers-color-scheme:dark){:root{--dmt-help-panel-key-box-shadow-color:#aaa}}@media(prefers-color-scheme:light){:root{--dmt-help-panel-key-box-shadow-color:#444}} +button.svelte-1xrvgp2{background:#0000;border-radius:50%;cursor:pointer;height:2rem;line-height:0;width:2rem}section.svelte-1xrvgp2{align-items:center;background:var(--color-background);border-bottom:var(--dmt-container-border);display:flex;gap:.5rem;height:fit-content;padding:.25rem 1rem .25rem 0;position:sticky;top:0;width:inherit;z-index:10}svg.svelte-1xrvgp2{height:1rem;width:1rem;fill:currentColor;stroke:currentColor;overflow:hidden}.flipped-vertical.svelte-1xrvgp2{transform:scaleY(-1)} +section.svelte-13h1skr{--dmt-nav-tree-bottom-margin:1rem} +button.svelte-10arjs8{background:#0000;border-radius:50%;cursor:pointer;height:33px;line-height:0;margin:0 3px 3px;width:33px} +li.svelte-5rxzhp{align-items:center;background-color:var(--color-background);cursor:pointer;display:flex;gap:.25rem;overflow:hidden;padding:0 10px;text-overflow:ellipsis;transition:background .15s ease-in-out}li.selected.svelte-5rxzhp{background:var(--dmt-menu-item-background-selected)}li.svelte-5rxzhp:hover{background:var(--dmt-menu-item-background-hover)}li.svelte-5rxzhp:not(:last-child){border-bottom:var(--dmt-container-separator-border)}li.svelte-5rxzhp:nth-child(2n):not(:hover):not(.selected){background-color:var(--color-background-secondary)}ul.svelte-5rxzhp{border:var(--dmt-container-floating-border);border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem;box-shadow:var(--dmt-container-floating-box-shadow);list-style:none;margin:0 0 0 -4px;overflow:hidden;padding:0;position:absolute;top:calc(var(--dmt-header-height) - 2px);width:calc(100% - 4px)} +#dmt-search-field.svelte-tuln0o,#tsd-search .field input{background:revert;border:1px solid var(--color-accent);border-radius:.5em;box-sizing:border-box;color:var(--color-text);font-size:16px;height:35px;opacity:1;outline:2px solid #0000;padding:revert;position:relative;right:4px;top:0;width:100%;z-index:10} +div.svelte-wmon9h{box-sizing:border-box;line-height:0;padding:4px 0;position:absolute;right:-40px;width:40px}.dmt-widget.svelte-wmon9h{display:inline-block;height:40px;opacity:.8;overflow:hidden;transition:opacity .1s,background-color .2s;vertical-align:bottom} +div.svelte-kjcljd{flex:0;height:0;width:0}div.svelte-kjcljd:focus{outline:none} +section.svelte-1pcybcf.svelte-1pcybcf{background:var(--color-background);border:var(--dmt-container-border);border-radius:var(--dmt-container-border-radius);box-shadow:0 0 6px #000;height:max-content;left:50%;overflow:hidden;padding:.25rem;position:absolute;top:calc(100% + 10px);transform:translateX(-50%);width:max-content;z-index:1}div.svelte-1pcybcf.svelte-1pcybcf{align-items:center;display:flex;flex-direction:column;flex-wrap:nowrap;gap:.5rem}section.svelte-1pcybcf.svelte-1pcybcf:focus-visible{outline:2px solid #0000}a.svelte-1pcybcf.svelte-1pcybcf{align-items:center;display:flex;flex-shrink:0}a.svelte-1pcybcf:focus-visible img.svelte-1pcybcf{filter:brightness(1.5)}img.svelte-1pcybcf.svelte-1pcybcf{max-height:24px;width:auto}img.svelte-1pcybcf.svelte-1pcybcf:hover{filter:brightness(1.5)} +button.svelte-1ebh1s9{background:#0000;border-radius:50%;cursor:pointer;height:33px;line-height:0;margin:1px 3px 0;width:33px}section.svelte-1ebh1s9{display:flex;margin-left:auto;min-width:fit-content;position:relative}svg.svelte-1ebh1s9{fill:var(--color-text)} +a.svelte-1f93d1m.svelte-1f93d1m{align-items:center;display:flex;flex-shrink:0;margin:4px}a.svelte-1f93d1m:focus-visible img.svelte-1f93d1m{filter:brightness(1.5)}img.svelte-1f93d1m.svelte-1f93d1m{height:24px;width:auto}img.svelte-1f93d1m.svelte-1f93d1m:hover{filter:brightness(1.5)}section.svelte-1f93d1m.svelte-1f93d1m{align-items:center;display:flex;flex-wrap:nowrap;gap:.35rem;margin-left:auto;min-width:0;overflow:hidden} +section.svelte-j9157o{align-items:center;display:flex;flex-wrap:nowrap;height:100%;margin-right:.5rem;width:100%} \ No newline at end of file diff --git a/docs/v2.0.2/assets/dmt/dmt-components.js b/docs/v2.0.2/assets/dmt/dmt-components.js new file mode 100644 index 00000000..b4202c55 --- /dev/null +++ b/docs/v2.0.2/assets/dmt/dmt-components.js @@ -0,0 +1,67 @@ +/** + * @module @typhonjs-typedoc/typedoc-theme-dmt + * @license MPL-2.0 + * @see https://github.com/typhonjs-typedoc/typedoc-theme-dmt + */ +import"./dmt-component-data.js";var e,t,n;try{e=new TextDecoder}catch(e){}var r,o,s,i,a,l=0,c={},u=0,f=0,d=[],h={useRecords:!1,mapsAsObjects:!0};class p{}const g=new p;g.name="MessagePack 0xC1";var m=!1,y=2;try{new Function("")}catch(e){y=1/0}class b{constructor(e){e&&(!1===e.useRecords&&void 0===e.mapsAsObjects&&(e.mapsAsObjects=!0),e.sequential&&!1!==e.trusted&&(e.trusted=!0,e.structures||0==e.useRecords||(e.structures=[],e.maxSharedStructures||(e.maxSharedStructures=0))),e.structures?e.structures.sharedLength=e.structures.length:e.getStructures&&((e.structures=[]).uninitialized=!0,e.structures.sharedLength=0),e.int64AsNumber&&(e.int64AsType="number")),Object.assign(this,e)}unpack(e,i){if(t)return W((()=>(J(),this?this.unpack(e,i):b.prototype.unpack.call(h,e,i))));e.buffer||e.constructor!==ArrayBuffer||(e="undefined"!=typeof Buffer?Buffer.from(e):new Uint8Array(e)),"object"==typeof i?(n=i.end||e.length,l=i.start||0):(l=0,n=i>-1?i:e.length),f=0,o=null,s=null,t=e;try{a=e.dataView||(e.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength))}catch(n){if(t=null,e instanceof Uint8Array)throw n;throw new Error("Source must be a Uint8Array or Buffer but was a "+(e&&"object"==typeof e?e.constructor.name:typeof e))}if(this instanceof b){if(c=this,this.structures)return r=this.structures,v(i);(!r||r.length>0)&&(r=[])}else c=h,(!r||r.length>0)&&(r=[]);return v(i)}unpackMultiple(e,t){let n,r=0;try{m=!0;let o=e.length,s=this?this.unpack(e,o):G.unpack(e,o);if(!t){for(n=[s];le.slice(0))));for(let t=0,n=e.length;t=32&&(n.highByte=t-32>>5))}e.sharedLength=e.length;for(let n in t||[])if(n>=0){let r=e[n],o=t[n];o&&(r&&((e.restoreStructures||(e.restoreStructures=[]))[n]=r),e[n]=o)}return this.structures=e}decode(e,t){return this.unpack(e,t)}}function v(e){try{if(!c.trusted&&!m){let e=r.sharedLength||0;en)throw new Error("Unexpected end of MessagePack data");if(!m){let t;try{t=JSON.stringify(e,((e,t)=>"bigint"==typeof t?`${t}n`:t)).slice(0,100)}catch(e){t="(JSON view not available "+e+")"}throw new Error("Data read, but end of buffer not reached "+t)}}return e}catch(e){throw r&&r.restoreStructures&&w(),J(),(e instanceof RangeError||e.message.startsWith("Unexpected end of buffer")||l>n)&&(e.incomplete=!0),e}}function w(){for(let e in r.restoreStructures)r[e]=r.restoreStructures[e];r.restoreStructures=null}function x(){let e=t[l++];if(e<160){if(e<128){if(e<64)return e;{let t=r[63&e]||c.getStructures&&T()[63&e];return t?(t.read||(t.read=$(t,63&e)),t.read()):e}}if(e<144){if(e-=128,c.mapsAsObjects){let t={};for(let n=0;n=l)return o.slice(l-u,(l+=t)-u);if(0==f&&n<140){let e=t<16?R(t):D(t);if(null!=e)return e}return E(t)}{let n;switch(e){case 192:return null;case 193:return s?(n=x(),n>0?s[1].slice(s.position1,s.position1+=n):s[0].slice(s.position0,s.position0-=n)):g;case 194:return!1;case 195:return!0;case 196:if(n=t[l++],void 0===n)throw new Error("Unexpected end of buffer");return N(n);case 197:return n=a.getUint16(l),l+=2,N(n);case 198:return n=a.getUint32(l),l+=4,N(n);case 199:return U(t[l++]);case 200:return n=a.getUint16(l),l+=2,U(n);case 201:return n=a.getUint32(l),l+=4,U(n);case 202:if(n=a.getFloat32(l),c.useFloat32>2){let e=K[(127&t[l])<<1|t[l+1]>>7];return l+=4,(e*n+(n>0?.5:-.5)|0)/e}return l+=4,n;case 203:return n=a.getFloat64(l),l+=8,n;case 204:return t[l++];case 205:return n=a.getUint16(l),l+=2,n;case 206:return n=a.getUint32(l),l+=4,n;case 207:return"number"===c.int64AsType?(n=4294967296*a.getUint32(l),n+=a.getUint32(l+4)):"string"===c.int64AsType?n=a.getBigUint64(l).toString():"auto"===c.int64AsType?(n=a.getBigUint64(l),n<=BigInt(2)<=BigInt(-2)<=l?o.slice(l-u,(l+=n)-u):C(n);case 218:return n=a.getUint16(l),f>=(l+=2)?o.slice(l-u,(l+=n)-u):L(n);case 219:return n=a.getUint32(l),f>=(l+=4)?o.slice(l-u,(l+=n)-u):P(n);case 220:return n=a.getUint16(l),l+=2,I(n);case 221:return n=a.getUint32(l),l+=4,I(n);case 222:return n=a.getUint16(l),l+=2,A(n);case 223:return n=a.getUint32(l),l+=4,A(n);default:if(e>=224)return e-256;if(void 0===e){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+e)}}}const S=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function $(e,t){function n(){if(n.count++>y){let n=e.read=new Function("r","return function(){return "+(c.freezeData?"Object.freeze":"")+"({"+e.map((e=>"__proto__"===e?"__proto_:r()":S.test(e)?e+":r()":"["+JSON.stringify(e)+"]:r()")).join(",")+"})}")(x);return 0===e.highByte&&(e.read=k(t,e.read)),n()}let r={};for(let t=0,n=e.length;tfunction(){let o=t[l++];if(0===o)return n();let s=e<32?-(e+(o<<5)):e+(o<<5),i=r[s]||T()[s];if(!i)throw new Error("Record id is not defined for "+s);return i.read||(i.read=$(i,e)),i.read()};function T(){let e=W((()=>(t=null,c.getStructures())));return r=c._mergeStructures(e,r)}var E=O,C=O,L=O,P=O;function O(n){let r;if(n<16&&(r=R(n)))return r;if(n>64&&e)return e.decode(t.subarray(l,l+=n));const o=l+n,s=[];for(r="";l65535&&(n-=65536,s.push(n>>>10&1023|55296),n=56320|1023&n),s.push(n)}else s.push(e);else s.push(e);s.length>=4096&&(r+=M.apply(String,s),s.length=0)}return s.length>0&&(r+=M.apply(String,s)),r}function I(e){let t=new Array(e);for(let n=0;n0)return void(l=n);r[o]=e}return M.apply(String,r)}function R(e){if(e<4){if(e<2){if(0===e)return"";{let e=t[l++];return(128&e)>1?void(l-=1):M(e)}}{let n=t[l++],r=t[l++];if((128&n)>0||(128&r)>0)return void(l-=2);if(e<3)return M(n,r);let o=t[l++];return(128&o)>0?void(l-=3):M(n,r,o)}}{let n=t[l++],r=t[l++],o=t[l++],s=t[l++];if((128&n)>0||(128&r)>0||(128&o)>0||(128&s)>0)return void(l-=4);if(e<6){if(4===e)return M(n,r,o,s);{let e=t[l++];return(128&e)>0?void(l-=5):M(n,r,o,s,e)}}if(e<8){let i=t[l++],a=t[l++];if((128&i)>0||(128&a)>0)return void(l-=6);if(e<7)return M(n,r,o,s,i,a);let c=t[l++];return(128&c)>0?void(l-=7):M(n,r,o,s,i,a,c)}{let i=t[l++],a=t[l++],c=t[l++],u=t[l++];if((128&i)>0||(128&a)>0||(128&c)>0||(128&u)>0)return void(l-=8);if(e<10){if(8===e)return M(n,r,o,s,i,a,c,u);{let e=t[l++];return(128&e)>0?void(l-=9):M(n,r,o,s,i,a,c,u,e)}}if(e<12){let f=t[l++],d=t[l++];if((128&f)>0||(128&d)>0)return void(l-=10);if(e<11)return M(n,r,o,s,i,a,c,u,f,d);let h=t[l++];return(128&h)>0?void(l-=11):M(n,r,o,s,i,a,c,u,f,d,h)}{let f=t[l++],d=t[l++],h=t[l++],p=t[l++];if((128&f)>0||(128&d)>0||(128&h)>0||(128&p)>0)return void(l-=12);if(e<14){if(12===e)return M(n,r,o,s,i,a,c,u,f,d,h,p);{let e=t[l++];return(128&e)>0?void(l-=13):M(n,r,o,s,i,a,c,u,f,d,h,p,e)}}{let g=t[l++],m=t[l++];if((128&g)>0||(128&m)>0)return void(l-=14);if(e<15)return M(n,r,o,s,i,a,c,u,f,d,h,p,g,m);let y=t[l++];return(128&y)>0?void(l-=15):M(n,r,o,s,i,a,c,u,f,d,h,p,g,m,y)}}}}}function F(){let e,n=t[l++];if(n<192)e=n-160;else switch(n){case 217:e=t[l++];break;case 218:e=a.getUint16(l),l+=2;break;case 219:e=a.getUint32(l),l+=4;break;default:throw new Error("Expected string")}return O(e)}function N(e){return c.copyBuffers?Uint8Array.prototype.slice.call(t,l,l+=e):t.subarray(l,l+=e)}function U(e){let n=t[l++];if(d[n]){let r;return d[n](t.subarray(l,r=l+=e),(e=>{l=e;try{return x()}finally{l=r}}))}throw new Error("Unknown extension type "+n)}var j=new Array(4096);function _(){let e=t[l++];if(!(e>=160&&e<192))return l--,Q(x());if(e-=160,f>=l)return o.slice(l-u,(l+=e)-u);if(!(0==f&&n<180))return E(e);let r,s=4095&(e<<5^(e>1?a.getUint16(l):e>0?t[l]:0)),i=j[s],c=l,d=l+e-3,h=0;if(i&&i.bytes==e){for(;c{let n=x().map(Q),o=e;void 0!==t&&(e=e<32?-((t<<5)+e):(t<<5)+e,n.highByte=t);let s=r[e];return s&&(s.isShared||m)&&((r.restoreStructures||(r.restoreStructures=[]))[e]=s),r[e]=n,n.read=$(n,o),n.read()};d[0]=()=>{},d[0].noBuffer=!0,d[66]=e=>{let t=e.length,n=BigInt(128&e[0]?e[0]-256:e[0]);for(let r=1;r{let e=x();return(z[e[0]]||Error)(e[1],{cause:e[2]})},d[105]=e=>{if(!1===c.structuredClone)throw new Error("Structured clone extension is disabled");let n=a.getUint32(l-4);i||(i=new Map);let r,o=t[l];r=o>=144&&o<160||220==o||221==o?[]:{};let s={target:r};i.set(n,s);let u=x();return s.used?Object.assign(r,u):(s.target=u,u)},d[112]=e=>{if(!1===c.structuredClone)throw new Error("Structured clone extension is disabled");let t=a.getUint32(l-4),n=i.get(t);return n.used=!0,n.target},d[115]=()=>new Set(x());const H=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map((e=>e+"Array"));let q="object"==typeof globalThis?globalThis:window;d[116]=e=>{let t=e[0],n=H[t];if(!n){if(16===t){let t=new ArrayBuffer(e.length-1);return new Uint8Array(t).set(e.subarray(1)),t}throw new Error("Could not find typed array for code "+t)}return new q[n](Uint8Array.prototype.slice.call(e,1).buffer)},d[120]=()=>{let e=x();return new RegExp(e[0],e[1])};const V=[];function W(e){let d=n,h=l,p=u,g=f,y=o,b=i,v=s,w=new Uint8Array(t.slice(0,n)),x=r,S=r.slice(0,r.length),$=c,k=m,T=e();return n=d,l=h,u=p,f=g,o=y,i=b,s=v,t=w,m=k,(r=x).splice(0,r.length,...S),c=$,a=new DataView(t.buffer,t.byteOffset,t.byteLength),T}function J(){t=null,i=null,r=null}d[98]=e=>{let t=(e[0]<<24)+(e[1]<<16)+(e[2]<<8)+e[3],n=l;return l+=t-e.length,s=V,(s=[F(),F()]).position0=0,s.position1=0,s.postBundlePosition=l,l=n,x()},d[255]=e=>4==e.length?new Date(1e3*(16777216*e[0]+(e[1]<<16)+(e[2]<<8)+e[3])):8==e.length?new Date(((e[0]<<22)+(e[1]<<14)+(e[2]<<6)+(e[3]>>2))/1e6+1e3*(4294967296*(3&e[3])+16777216*e[4]+(e[5]<<16)+(e[6]<<8)+e[7])):12==e.length?new Date(((e[0]<<24)+(e[1]<<16)+(e[2]<<8)+e[3])/1e6+1e3*((128&e[4]?-281474976710656:0)+1099511627776*e[6]+4294967296*e[7]+16777216*e[8]+(e[9]<<16)+(e[10]<<8)+e[11])):new Date("invalid");const K=new Array(147);for(let e=0;e<256;e++)K[e]=+("1e"+Math.floor(45.15-.30103*e));var G=new b({useRecords:!1});const Z=G.unpack;G.unpackMultiple,G.unpack;let Y,X,ee,te=new Float32Array(1);new Uint8Array(te.buffer,0,4);try{Y=new TextEncoder}catch(e){}const ne="undefined"!=typeof Buffer,re=ne?function(e){return Buffer.allocUnsafeSlow(e)}:Uint8Array,oe=ne?Buffer:Uint8Array,se=ne?4294967296:2144337920;let ie,ae,le,ce,ue=0,fe=null;const de=/[\u0080-\uFFFF]/,he=Symbol("record-id");function pe(e,t,n,r){let o=e.byteLength;if(o+1<256){var{target:s,position:i}=n(4+o);s[i++]=199,s[i++]=o+1}else if(o+1<65536){var{target:s,position:i}=n(5+o);s[i++]=200,s[i++]=o+1>>8,s[i++]=o+1&255}else{var{target:s,position:i,targetView:a}=n(7+o);s[i++]=201,a.setUint32(i,o+1),i+=4}s[i++]=116,s[i++]=t,e.buffer||(e=new Uint8Array(e)),s.set(new Uint8Array(e.buffer,e.byteOffset,e.byteLength),i)}function ge(e,t){let n=e.byteLength;var r,o;if(n<256){var{target:r,position:o}=t(n+2);r[o++]=196,r[o++]=n}else if(n<65536){var{target:r,position:o}=t(n+3);r[o++]=197,r[o++]=n>>8,r[o++]=255&n}else{var{target:r,position:o,targetView:s}=t(n+5);r[o++]=198,s.setUint32(o,n),o+=4}r.set(e,o)}function me(e,t,n,r){let o=e.length;switch(o){case 1:t[n++]=212;break;case 2:t[n++]=213;break;case 4:t[n++]=214;break;case 8:t[n++]=215;break;case 16:t[n++]=216;break;default:o<256?(t[n++]=199,t[n++]=o):o<65536?(t[n++]=200,t[n++]=o>>8,t[n++]=255&o):(t[n++]=201,t[n++]=o>>24,t[n++]=o>>16&255,t[n++]=o>>8&255,t[n++]=255&o)}return t[n++]=r,t.set(e,n),n+=o}function ye(e,t,n){if(fe.length>0){le.setUint32(fe.position+e,ue+n-fe.position-e),fe.stringsPosition=ue-e;let r=fe;fe=null,t(r[0]),t(r[1])}}ee=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,p],X=[{pack(e,t,n){let r=e.getTime()/1e3;if((this.useTimestamp32||0===e.getMilliseconds())&&r>=0&&r<4294967296){let{target:e,targetView:n,position:o}=t(6);e[o++]=214,e[o++]=255,n.setUint32(o,r)}else if(r>0&&r<4294967296){let{target:n,targetView:o,position:s}=t(10);n[s++]=215,n[s++]=255,o.setUint32(s,4e6*e.getMilliseconds()+(r/1e3/4294967296|0)),o.setUint32(s+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),n(this.onInvalidDate());let{target:e,targetView:r,position:o}=t(3);e[o++]=212,e[o++]=255,e[o++]=255}else{let{target:n,targetView:o,position:s}=t(15);n[s++]=199,n[s++]=12,n[s++]=255,o.setUint32(s,1e6*e.getMilliseconds()),o.setBigInt64(s+4,BigInt(Math.floor(r)))}}},{pack(e,t,n){if(this.setAsEmptyObject)return t(0),n({});let r=Array.from(e),{target:o,position:s}=t(this.moreTypes?3:0);this.moreTypes&&(o[s++]=212,o[s++]=115,o[s++]=0),n(r)}},{pack(e,t,n){let{target:r,position:o}=t(this.moreTypes?3:0);this.moreTypes&&(r[o++]=212,r[o++]=101,r[o++]=0),n([e.name,e.message,e.cause])}},{pack(e,t,n){let{target:r,position:o}=t(this.moreTypes?3:0);this.moreTypes&&(r[o++]=212,r[o++]=120,r[o++]=0),n([e.source,e.flags])}},{pack(e,t){this.moreTypes?pe(e,16,t):ge(ne?Buffer.from(e):new Uint8Array(e),t)}},{pack(e,t){let n=e.constructor;n!==oe&&this.moreTypes?pe(e,H.indexOf(n.name),t):ge(e,t)}},{pack(e,t){let{target:n,position:r}=t(1);n[r]=193}}];let be=new class extends b{constructor(e){let t,n,r,o;super(e),this.offset=0;let s=oe.prototype.utf8Write?function(e,t){return ie.utf8Write(e,t,4294967295)}:!(!Y||!Y.encodeInto)&&function(e,t){return Y.encodeInto(e,ie.subarray(t)).written},i=this;e||(e={});let a=e&&e.sequential,l=e.structures||e.saveStructures,c=e.maxSharedStructures;if(null==c&&(c=l?32:0),c>8160)throw new Error("Maximum maxSharedStructure is 8160");e.structuredClone&&null==e.moreTypes&&(this.moreTypes=!0);let u=e.maxOwnStructures;null==u&&(u=l?32:64),this.structures||0==e.useRecords||(this.structures=[]);let f=c>32||u+c>64,d=c+64,h=c+u+64;if(h>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let p=[],g=0,m=0;this.pack=this.encode=function(e,s){if(ie||(ie=new re(8192),le=ie.dataView||(ie.dataView=new DataView(ie.buffer,0,8192)),ue=0),ce=ie.length-10,ce-ue<2048?(ie=new re(ie.length),le=ie.dataView||(ie.dataView=new DataView(ie.buffer,0,ie.length)),ce=ie.length-10,ue=0):ue=ue+7&2147483640,t=ue,s&xe&&(ue+=255&s),o=i.structuredClone?new Map:null,i.bundleStrings&&"string"!=typeof e?(fe=[],fe.size=1/0):fe=null,r=i.structures,r){r.uninitialized&&(r=i._mergeStructures(i.getStructures()));let e=r.sharedLength||0;if(e>c)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+r.sharedLength);if(!r.transitions){r.transitions=Object.create(null);for(let t=0;te.offset>t.offset?1:-1)),r=e.length,s=-1;for(;n&&r>0;){let o=e[--r].offset+t;on.position+t?s>=0&&(s+=6):(s>=0&&(le.setUint32(n.position+t,le.getUint32(n.position+t)+s),s=-1),n=n.previous,r++)}s>=0&&n&&le.setUint32(n.position+t,le.getUint32(n.position+t)+s),ue+=6*e.length,ue>ce&&k(ue),i.offset=ue;let a=function(e,t){let n,r=6*t.length,o=e.length-r;for(;n=t.pop();){let t=n.offset,s=n.id;e.copyWithin(t+r,t,o),r-=6;let i=t+r;e[i++]=214,e[i++]=105,e[i++]=s>>24,e[i++]=s>>16&255,e[i++]=s>>8&255,e[i++]=255&s,o=t}return e}(ie.subarray(t,ue),e);return o=null,a}return i.offset=ue,s&ve?(ie.start=t,ie.end=ue,ie):ie.subarray(t,ue)}catch(e){throw l=e,e}finally{if(r&&(y(),n&&i.saveStructures)){let n=r.sharedLength||0,o=ie.subarray(t,ue),a=function(e,t){return e.isCompatible=e=>{let n=!e||(t.lastNamedStructuresLength||0)===e.length;return n||t._mergeStructures(e),n},e}(r,i);if(!l)return!1===i.saveStructures(a,a.isCompatible)?i.pack(e,s):(i.lastNamedStructuresLength=n,ie.length>1073741824&&(ie=null),o)}ie.length>1073741824&&(ie=null),s&we&&(ue=t)}};const y=()=>{m<10&&m++;let e=r.sharedLength||0;if(r.length>e&&!a&&(r.length=e),g>1e4)r.transitions=null,m=0,g=0,p.length>0&&(p=[]);else if(p.length>0&&!a){for(let e=0,t=p.length;e{var t=e.length;t<16?ie[ue++]=144|t:t<65536?(ie[ue++]=220,ie[ue++]=t>>8,ie[ue++]=255&t):(ie[ue++]=221,le.setUint32(ue,t),ue+=4);for(let n=0;n{ue>ce&&(ie=k(ue));var n,r=typeof e;if("string"===r){let r,o=e.length;if(fe&&o>=4&&o<4096){if((fe.size+=o)>21760){let e,n,r=(fe[0]?3*fe[0].length+fe[1].length:0)+10;ue+r>ce&&(ie=k(ue+r)),fe.position?(n=fe,ie[ue]=200,ue+=3,ie[ue++]=98,e=ue-t,ue+=4,ye(t,v,0),le.setUint16(e+t-3,ue-t-e)):(ie[ue++]=214,ie[ue++]=98,e=ue-t,ue+=4),fe=["",""],fe.previous=n,fe.size=0,fe.position=e}let n=de.test(e);return fe[n?0:1]+=e,ie[ue++]=193,void v(n?-o:o)}r=o<32?1:o<256?2:o<65536?3:5;let i=3*o;if(ue+i>ce&&(ie=k(ue+i)),o<64||!s){let t,s,i,a=ue+r;for(t=0;t>6|192,ie[a++]=63&s|128):55296==(64512&s)&&56320==(64512&(i=e.charCodeAt(t+1)))?(s=65536+((1023&s)<<10)+(1023&i),t++,ie[a++]=s>>18|240,ie[a++]=s>>12&63|128,ie[a++]=s>>6&63|128,ie[a++]=63&s|128):(ie[a++]=s>>12|224,ie[a++]=s>>6&63|128,ie[a++]=63&s|128);n=a-ue-r}else n=s(e,ue+r);n<32?ie[ue++]=160|n:n<256?(r<2&&ie.copyWithin(ue+2,ue+1,ue+1+n),ie[ue++]=217,ie[ue++]=n):n<65536?(r<3&&ie.copyWithin(ue+3,ue+2,ue+2+n),ie[ue++]=218,ie[ue++]=n>>8,ie[ue++]=255&n):(r<5&&ie.copyWithin(ue+5,ue+3,ue+3+n),ie[ue++]=219,le.setUint32(ue,n),ue+=4),ue+=n}else if("number"===r)if(e>>>0===e)e<32||e<128&&!1===this.useRecords||e<64&&!this.randomAccessStructure?ie[ue++]=e:e<256?(ie[ue++]=204,ie[ue++]=e):e<65536?(ie[ue++]=205,ie[ue++]=e>>8,ie[ue++]=255&e):(ie[ue++]=206,le.setUint32(ue,e),ue+=4);else if((e|0)===e)e>=-32?ie[ue++]=256+e:e>=-128?(ie[ue++]=208,ie[ue++]=e+256):e>=-32768?(ie[ue++]=209,le.setInt16(ue,e),ue+=2):(ie[ue++]=210,le.setInt32(ue,e),ue+=4);else{let t;if((t=this.useFloat32)>0&&e<4294967296&&e>=-2147483648){let n;if(ie[ue++]=202,le.setFloat32(ue,e),t<4||((n=e*K[(127&ie[ue])<<1|ie[ue+1]>>7])|0)===n)return void(ue+=4);ue--}ie[ue++]=203,le.setFloat64(ue,e),ue+=8}else if("object"===r||"function"===r)if(e){if(o){let n=o.get(e);if(n){if(!n.id){let e=o.idsToInsert||(o.idsToInsert=[]);n.id=e.push(n)}return ie[ue++]=214,ie[ue++]=112,le.setUint32(ue,n.id),void(ue+=4)}o.set(e,{offset:ue-t})}let s=e.constructor;if(s===Object)$(e);else if(s===Array)b(e);else if(s===Map)if(this.mapAsEmptyObject)ie[ue++]=128;else{(n=e.size)<16?ie[ue++]=128|n:n<65536?(ie[ue++]=222,ie[ue++]=n>>8,ie[ue++]=255&n):(ie[ue++]=223,le.setUint32(ue,n),ue+=4);for(let[t,n]of e)v(t),v(n)}else{for(let t=0,n=X.length;t(ie=o,o=null,ue+=e,ue>ce&&k(ue),{target:ie,targetView:le,position:ue-e})),v)}finally{o&&(ie=o,le=s,ue=i,ce=ie.length-10)}return void(r&&(r.length+ue>ce&&k(r.length+ue),ue=me(r,ie,ue,n.type)))}}if(Array.isArray(e))b(e);else{if(e.toJSON){const t=e.toJSON();if(t!==e)return v(t)}if("function"===r)return v(this.writeFunction&&this.writeFunction(e));$(e)}}}else ie[ue++]=192;else if("boolean"===r)ie[ue++]=e?195:194;else if("bigint"===r){if(e=-(BigInt(1)<0)ie[ue++]=207,le.setBigUint64(ue,e);else{if(!this.largeBigIntToFloat){if(this.useBigIntExtension&&e<2n**1023n&&e>-(2n**1023n)){ie[ue++]=199,ue++,ie[ue++]=66;let t,n=[];do{let r=0xffn&e;t=(0x80n&r)===(e<0n?0x80n:0n),n.push(r),e>>=8n}while(0n!==e&&-1n!==e||!t);ie[ue-2]=n.length;for(let e=n.length;e>0;)ie[ue++]=Number(n[--e]);return}throw new RangeError(e+" was too large to fit in MessagePack 64-bit integer format, use useBigIntExtension or set largeBigIntToFloat to convert to float-64")}ie[ue++]=203,le.setFloat64(ue,Number(e))}ue+=8}else{if("undefined"!==r)throw new Error("Unknown type: "+r);this.encodeUndefinedAsNil?ie[ue++]=192:(ie[ue++]=212,ie[ue++]=0,ie[ue++]=0)}},w=this.variableMapSize||this.coercibleKeyAsNumber||this.skipValues?e=>{let t;if(this.skipValues){t=[];for(let n in e)"function"==typeof e.hasOwnProperty&&!e.hasOwnProperty(n)||this.skipValues.includes(e[n])||t.push(n)}else t=Object.keys(e);let n,r=t.length;if(r<16?ie[ue++]=128|r:r<65536?(ie[ue++]=222,ie[ue++]=r>>8,ie[ue++]=255&r):(ie[ue++]=223,le.setUint32(ue,r),ue+=4),this.coercibleKeyAsNumber)for(let o=0;o{ie[ue++]=222;let n=ue-t;ue+=2;let r=0;for(let t in e)("function"!=typeof e.hasOwnProperty||e.hasOwnProperty(t))&&(v(t),v(e[t]),r++);ie[n+++t]=r>>8,ie[n+t]=255&r},x=!1===this.useRecords?w:e.progressiveRecords&&!f?e=>{let n,o,s=r.transitions||(r.transitions=Object.create(null)),i=ue++-t;for(let a in e)if("function"!=typeof e.hasOwnProperty||e.hasOwnProperty(a)){if(n=s[a],n)s=n;else{let l=Object.keys(e),c=s;s=r.transitions;let u=0;for(let e=0,t=l.length;e{let t,n=r.transitions||(r.transitions=Object.create(null)),o=0;for(let r in e)("function"!=typeof e.hasOwnProperty||e.hasOwnProperty(r))&&(t=n[r],t||(t=n[r]=Object.create(null),o++),n=t);let s=n[he];s?s>=96&&f?(ie[ue++]=96+(31&(s-=96)),ie[ue++]=s>>5):ie[ue++]=s:T(n,n.__keys__||Object.keys(e),o);for(let t in e)("function"!=typeof e.hasOwnProperty||e.hasOwnProperty(t))&&v(e[t])},S="function"==typeof this.useRecords&&this.useRecords,$=S?e=>{S(e)?x(e):w(e)}:x,k=e=>{let n;if(e>16777216){if(e-t>se)throw new Error("Packed buffer would be larger than maximum buffer size");n=Math.min(se,4096*Math.round(Math.max((e-t)*(e>67108864?1.25:2),4194304)/4096))}else n=1+(Math.max(e-t<<2,ie.length-1)>>12)<<12;let r=new re(n);return le=r.dataView||(r.dataView=new DataView(r.buffer,0,n)),e=Math.min(e,ie.length),ie.copy?ie.copy(r,0,t,e):r.set(ie.slice(t,e)),ue-=t,t=0,ce=r.length-10,ie=r},T=(e,t,o)=>{let s=r.nextId;s||(s=64),s=h&&(s=d),r.nextId=s+1);let i=t.highByte=s>=96&&f?s-96>>5:-1;e[he]=s,e.__keys__=t,r[s-64]=t,s=0?(ie[ue++]=96+(31&s),ie[ue++]=i):ie[ue++]=s):(i>=0?(ie[ue++]=213,ie[ue++]=114,ie[ue++]=96+(31&s),ie[ue++]=i):(ie[ue++]=212,ie[ue++]=114,ie[ue++]=s),o&&(g+=m*o),p.length>=u&&(p.shift()[he]=0),p.push(e),v(t))},E=(e,n,r,o)=>{let s=ie,i=ue,a=ce,l=t;ie=ae,ue=0,t=0,ie||(ae=ie=new re(8192)),ce=ie.length-10,T(e,n,o),ae=ie;let c=ue;if(ie=s,ue=i,ce=a,t=l,c>1){let e=ue+c-1;e>ce&&k(e);let n=r+t;ie.copyWithin(n+c,n+1,ue),ie.set(ae.slice(0,c),n),ue=e}else ie[r+t]=ae[0]},C=e=>{let o=undefined(e,ie,t,ue,r,k,((e,t,r)=>{if(r)return n=!0;ue=t;let o=ie;return v(e),y(),o!==ie?{position:ue,targetView:le,target:ie}:ue}),this);if(0===o)return $(e);ue=o}}useBuffer(e){ie=e,ie.dataView||(ie.dataView=new DataView(ie.buffer,ie.byteOffset,ie.byteLength)),ue=0}set position(e){ue=e}get position(){return ue}clearSharedData(){this.structures&&(this.structures=[]),this.typedStructs&&(this.typedStructs=[])}}({useRecords:!1});be.pack,be.pack;const ve=512,we=1024,xe=2048;var Se=Uint8Array,$e=Uint16Array,ke=Int32Array,Te=new Se([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),Ee=new Se([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),Ce=new Se([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Le=function(e,t){for(var n=new $e(31),r=0;r<31;++r)n[r]=t+=1<>1|(21845&De)<<1;Re=(61680&(Re=(52428&Re)>>2|(13107&Re)<<2))>>4|(3855&Re)<<4,Me[De]=((65280&Re)>>8|(255&Re)<<8)>>1}var Fe=function(e,t,n){for(var r=e.length,o=0,s=new $e(t);o>l]=c}else for(i=new $e(r),o=0;o>15-e[o]);return i},Ne=new Se(288);for(De=0;De<144;++De)Ne[De]=8;for(De=144;De<256;++De)Ne[De]=9;for(De=256;De<280;++De)Ne[De]=7;for(De=280;De<288;++De)Ne[De]=8;var Ue=new Se(32);for(De=0;De<32;++De)Ue[De]=5;var je=Fe(Ne,9,1),_e=Fe(Ue,5,1),Qe=function(e){for(var t=e[0],n=1;nt&&(t=e[n]);return t},Be=function(e,t,n){var r=t/8|0;return(e[r]|e[r+1]<<8)>>(7&t)&n},ze=function(e,t){var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},He=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],qe=function(e,t,n){var r=new Error(t||He[e]);if(r.code=e,Error.captureStackTrace&&Error.captureStackTrace(r,qe),!n)throw r;return r},Ve=function(e,t,n,r){var o=e.length,s=r?r.length:0;if(!o||t.f&&!t.l)return n||new Se(0);var i=!n,a=i||2!=t.i,l=t.i;i&&(n=new Se(3*o));var c=function(e){var t=n.length;if(e>t){var r=new Se(Math.max(2*t,e));r.set(n),n=r}},u=t.f||0,f=t.p||0,d=t.b||0,h=t.l,p=t.d,g=t.m,m=t.n,y=8*o;do{if(!h){u=Be(e,f,1);var b=Be(e,f+1,3);if(f+=3,!b){var v=e[(O=4+((f+7)/8|0))-4]|e[O-3]<<8,w=O+v;if(w>o){l&&qe(0);break}a&&c(d+v),n.set(e.subarray(O,w),d),t.b=d+=v,t.p=f=8*w,t.f=u;continue}if(1==b)h=je,p=_e,g=9,m=5;else if(2==b){var x=Be(e,f,31)+257,S=Be(e,f+10,15)+4,$=x+Be(e,f+5,31)+1;f+=14;for(var k=new Se($),T=new Se(19),E=0;E>4)<16)k[E++]=O;else{var A=0,M=0;for(16==O?(M=3+Be(e,f,3),f+=2,A=k[E-1]):17==O?(M=3+Be(e,f,7),f+=3):18==O&&(M=11+Be(e,f,127),f+=7);M--;)k[E++]=A}}var D=k.subarray(0,x),R=k.subarray(x);g=Qe(D),m=Qe(R),h=Fe(D,g,1),p=Fe(R,m,1)}else qe(1);if(f>y){l&&qe(0);break}}a&&c(d+131072);for(var F=(1<>4;if((f+=15&A)>y){l&&qe(0);break}if(A||qe(2),j<256)n[d++]=j;else{if(256==j){U=f,h=null;break}var _=j-254;if(j>264){var Q=Te[E=j-257];_=Be(e,f,(1<>4;B||qe(3),f+=15&B;R=Ae[z];if(z>3){Q=Ee[z];R+=ze(e,f)&(1<y){l&&qe(0);break}a&&c(d+131072);var H=d+_;if(de.length)&&(n=e.length),new Se(e.subarray(t,n))}(n,0,d):n.subarray(0,d)},We=new Se(0);function Je(e,t){return Ve(e,{i:2},t&&t.out,t&&t.dictionary)}var Ke="undefined"!=typeof TextDecoder&&new TextDecoder;try{Ke.decode(We,{stream:!0})}catch(e){}const Ge="function"==typeof Buffer;"function"==typeof TextDecoder&&new TextDecoder,"function"==typeof TextEncoder&&new TextEncoder;const Ze=Array.prototype.slice.call("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="),Ye=(()=>{let e={};return Ze.forEach(((t,n)=>e[t]=n)),e})(),Xe=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,et=String.fromCharCode.bind(String),tt="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):e=>new Uint8Array(Array.prototype.slice.call(e,0)),nt=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),rt="function"==typeof atob?e=>atob(nt(e)):Ge?e=>Buffer.from(e,"base64").toString("binary"):e=>{if(e=e.replace(/\s+/g,""),!Xe.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(3&e.length));let t,n,r,o="";for(let s=0;s>16&255):64===r?et(t>>16&255,t>>8&255):et(t>>16&255,t>>8&255,255&t);return o},ot=Ge?e=>tt(Buffer.from(e,"base64")):e=>tt(rt(e).split("").map((e=>e.charCodeAt(0)))),st=e=>nt(e.replace(/[-_]/g,(e=>"-"==e?"+":"/")));function it(e){if(null==e)return!1;switch(typeof e){case"function":case"object":return"function"==typeof e.subscribe&&"function"==typeof e.set}return!1}function at(e){if(null==e)return!1;switch(typeof e){case"function":case"object":return"function"==typeof e.subscribe&&"function"==typeof e.set&&"function"==typeof e.update}return!1}function lt(e,t,n){let r=!1;return e.subscribe((e=>{r?n(e):(r=!0,t(e))}))}function ct(e){return null!=e&&"object"==typeof e&&Symbol.iterator in e}function ut(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function ft(e,t,n){if("object"!=typeof e)return n;if("string"!=typeof t)return n;const r=t.split(".");for(let t=0;t{for(const t of e){const e=this.#t.get(t?.target);if(Array.isArray(e)){const n=t.contentRect.width,r=t.contentRect.height;for(const t of e)ht.#o(t,n,r)}}}))}add(e,t){if(!(e instanceof HTMLElement))throw new TypeError("ResizeObserverManager.add error: 'el' is not a HTMLElement.");if(this.#s(e,t))return;const n=ht.#i(t);if(0===n)throw new Error("ResizeObserverManager.add error: 'target' is not a valid ResizeObserverManager target.");const r=globalThis.getComputedStyle(e),o=dt.pixels(e.style.borderBottom)??dt.pixels(r.borderBottom)??0,s=dt.pixels(e.style.borderLeft)??dt.pixels(r.borderLeft)??0,i=dt.pixels(e.style.borderRight)??dt.pixels(r.borderRight)??0,a=dt.pixels(e.style.borderTop)??dt.pixels(r.borderTop)??0,l=dt.pixels(e.style.paddingBottom)??dt.pixels(r.paddingBottom)??0,c={updateType:n,target:t,contentWidth:0,contentHeight:0,styles:{additionalWidth:s+i+(dt.pixels(e.style.paddingLeft)??dt.pixels(r.paddingLeft)??0)+(dt.pixels(e.style.paddingRight)??dt.pixels(r.paddingRight)??0),additionalHeight:a+o+(dt.pixels(e.style.paddingTop)??dt.pixels(r.paddingTop)??0)+l}};if(this.#t.has(e)){this.#t.get(e).push(c)}else this.#t.set(e,[c]);this.#n.observe(e)}clear(){for(const e of this.#t.keys())this.#n.unobserve(e);this.#t.clear()}remove(e,t=void 0){const n=this.#t.get(e);if(Array.isArray(n)){if(void 0!==t){const e=n.findIndex((e=>e.target===t));e>=0&&n.splice(e,1)}else n.length=0;0===n.length&&(this.#t.delete(e),this.#n.unobserve(e))}}updateCache(e){const t=this.#t.get(e);if(Array.isArray(t)){const n=globalThis.getComputedStyle(e),r=dt.pixels(e.style.borderBottom)??dt.pixels(n.borderBottom)??0,o=dt.pixels(e.style.borderLeft)??dt.pixels(n.borderLeft)??0,s=dt.pixels(e.style.borderRight)??dt.pixels(n.borderRight)??0,i=dt.pixels(e.style.borderTop)??dt.pixels(n.borderTop)??0,a=dt.pixels(e.style.paddingBottom)??dt.pixels(n.paddingBottom)??0,l=o+s+(dt.pixels(e.style.paddingLeft)??dt.pixels(n.paddingLeft)??0)+(dt.pixels(e.style.paddingRight)??dt.pixels(n.paddingRight)??0),c=i+r+(dt.pixels(e.style.paddingTop)??dt.pixels(n.paddingTop)??0)+a;for(const e of t)e.styles.additionalWidth=l,e.styles.additionalHeight=c,ht.#o(e,e.contentWidth,e.contentHeight)}}static#i(e){if("function"==typeof e?.resizeObserved)return this.#r.resizeObserved;if("function"==typeof e?.setDimension)return this.#r.setDimension;if("function"==typeof e?.setContentBounds)return this.#r.setContentBounds;const t=typeof e;if(null!==t&&("object"===t||"function"===t)){if(at(e.resizeObserved))return this.#r.storeObject;const t=e?.stores;if((ut(t)||"function"==typeof t)&&at(t.resizeObserved))return this.#r.storesObject}return null!==t&&"object"===t?this.#r.attribute:"function"===t?this.#r.function:this.#r.none}#s(e,t){if(null==t)return!1;const n=this.#t.get(e);return!!Array.isArray(n)&&n.findIndex((e=>e.target===t))>=0}static#o(e,t,n){const r=e.styles;e.contentWidth=t,e.contentHeight=n;const o=Number.isFinite(t)?t+r.additionalWidth:void 0,s=Number.isFinite(n)?n+r.additionalHeight:void 0,i=e.target;switch(e.updateType){case this.#r.attribute:i.contentWidth=t,i.contentHeight=n,i.offsetWidth=o,i.offsetHeight=s;break;case this.#r.function:i?.(o,s,t,n);break;case this.#r.resizeObserved:i.resizeObserved?.(o,s,t,n);break;case this.#r.setContentBounds:i.setContentBounds?.(t,n);break;case this.#r.setDimension:i.setDimension?.(o,s);break;case this.#r.storeObject:i.resizeObserved.update((e=>(e.contentHeight=n,e.contentWidth=t,e.offsetHeight=s,e.offsetWidth=o,e)));break;case this.#r.storesObject:i.stores.resizeObserved.update((e=>(e.contentHeight=n,e.contentWidth=t,e.offsetHeight=s,e.offsetWidth=o,e)))}}}const pt=new ht;function gt(e,t){return pt.add(e,t),{update:n=>{pt.remove(e,t),t=n,pt.add(e,t)},destroy:()=>{pt.remove(e,t)}}}gt.updateCache=function(e){pt.updateCache(e)};class mt{constructor(){throw new Error("Timing constructor: This is a static class and should not be constructed.")}static debounce(e,t){if("function"!=typeof e)throw new TypeError("'callback' must be a function.");if(!Number.isInteger(t)||t<0)throw new TypeError("'delay' must be a positive integer representing milliseconds.");let n;return function(...r){globalThis.clearTimeout(n),n=globalThis.setTimeout((()=>{e.apply(this,r)}),t)}}static doubleClick({single:e,double:t,delay:n=400}){if(void 0!==e&&"function"!=typeof e)throw new TypeError("'single' must be a function.");if(void 0!==t&&"function"!=typeof t)throw new TypeError("'double' must be a function.");if(!Number.isInteger(n)||n<0)throw new TypeError("'delay' must be a positive integer representing milliseconds.");let r,o=0;return s=>{globalThis.clearTimeout(r),o++,1===o?r=globalThis.setTimeout((()=>{"function"==typeof e&&e(s),o=0}),n):("function"==typeof t&&t(s),o=0)}}}function yt(){}const bt=e=>e;function vt(e,t){for(const n in t)e[n]=t[n];return e}function wt(e){return e()}function xt(){return Object.create(null)}function St(e){e.forEach(wt)}function $t(e){return"function"==typeof e}function kt(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}let Tt;function Et(e,t){return e===t||(Tt||(Tt=document.createElement("a")),Tt.href=t,e===Tt.href)}function Ct(e,...t){if(null==e){for(const e of t)e(void 0);return yt}const n=e.subscribe(...t);return n.unsubscribe?()=>n.unsubscribe():n}function Lt(e){let t;return Ct(e,(e=>t=e))(),t}function Pt(e,t,n){e.$$.on_destroy.push(Ct(t,n))}function Ot(e,t,n,r){if(e){const o=It(e,t,n,r);return e[0](o)}}function It(e,t,n,r){return e[1]&&r?vt(n.ctx.slice(),e[1](r(t))):n.ctx}function At(e,t,n,r){if(e[2]&&r){const o=e[2](r(n));if(void 0===t.dirty)return o;if("object"==typeof o){const e=[],n=Math.max(t.dirty.length,o.length);for(let r=0;r32){const t=[],n=e.ctx.length/32;for(let e=0;ewindow.performance.now():()=>Date.now(),_t=Ut?e=>requestAnimationFrame(e):yt;const Qt=new Set;function Bt(e){Qt.forEach((t=>{t.c(e)||(Qt.delete(t),t.f())})),0!==Qt.size&&_t(Bt)}const zt="undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:global;function Ht(e,t){e.appendChild(t)}function qt(e){if(!e)return document;const t=e.getRootNode?e.getRootNode():e.ownerDocument;return t&&t.host?t:e.ownerDocument}function Vt(e){const t=Kt("style");return t.textContent="/* empty */",function(e,t){Ht(e.head||e,t),t.sheet}(qt(e),t),t.sheet}function Wt(e,t,n){e.insertBefore(t,n||null)}function Jt(e){e.parentNode&&e.parentNode.removeChild(e)}function Kt(e){return document.createElement(e)}function Gt(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function Zt(e){return document.createTextNode(e)}function Yt(){return Zt(" ")}function Xt(){return Zt("")}function en(e,t,n,r){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}function tn(e){return function(t){return t.stopPropagation(),e.call(this,t)}}function nn(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function rn(e,t){t=""+t,e.data!==t&&(e.data=t)}function on(e,t){e.value=null==t?"":t}function sn(e,t,n,r){null==n?e.style.removeProperty(t):e.style.setProperty(t,n,"")}function an(e,t,n){e.classList.toggle(t,!!n)}function ln(e,t){return new e(t)}const cn=new Map;let un,fn=0;function dn(e,t,n,r,o,s,i,a=0){const l=16.666/r;let c="{\n";for(let e=0;e<=1;e+=l){const r=t+(n-t)*s(e);c+=100*e+`%{${i(r,1-r)}}\n`}const u=c+`100% {${i(n,1-n)}}\n}`,f=`__svelte_${function(e){let t=5381,n=e.length;for(;n--;)t=(t<<5)-t^e.charCodeAt(n);return t>>>0}(u)}_${a}`,d=qt(e),{stylesheet:h,rules:p}=cn.get(d)||function(e,t){const n={stylesheet:Vt(t),rules:{}};return cn.set(e,n),n}(d,e);p[f]||(p[f]=!0,h.insertRule(`@keyframes ${f} ${u}`,h.cssRules.length));const g=e.style.animation||"";return e.style.animation=`${g?`${g}, `:""}${f} ${r}ms linear ${o}ms 1 both`,fn+=1,f}function hn(e,t){const n=(e.style.animation||"").split(", "),r=n.filter(t?e=>e.indexOf(t)<0:e=>-1===e.indexOf("__svelte")),o=n.length-r.length;o&&(e.style.animation=r.join(", "),fn-=o,fn||_t((()=>{fn||(cn.forEach((e=>{const{ownerNode:t}=e.stylesheet;t&&Jt(t)})),cn.clear())})))}function pn(e){un=e}function gn(){if(!un)throw new Error("Function called outside component initialization");return un}function mn(e){gn().$$.on_mount.push(e)}function yn(e,t){return gn().$$.context.set(e,t),t}function bn(e){return gn().$$.context.get(e)}function vn(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach((e=>e.call(this,t)))}const wn=[],xn=[];let Sn=[];const $n=[],kn=Promise.resolve();let Tn=!1;function En(){Tn||(Tn=!0,kn.then(An))}function Cn(){return En(),kn}function Ln(e){Sn.push(e)}const Pn=new Set;let On,In=0;function An(){if(0!==In)return;const e=un;do{try{for(;In{Rn.delete(e),r&&(n&&e.d(1),r())})),e.o(t)}else r&&r()}const Qn={duration:0};function Bn(e,t,n,r){let o,s=t(e,n,{direction:"both"}),i=r?0:1,a=null,l=null,c=null;function u(){c&&hn(e,c)}function f(e,t){const n=e.b-i;return t*=Math.abs(n),{a:i,b:e.b,d:n,duration:t,start:e.start,end:e.start+t,group:e.group}}function d(t){const{delay:n=0,duration:r=300,easing:d=bt,tick:h=yt,css:p}=s||Qn,g={start:jt()+n,b:t};t||(g.group=Fn,Fn.r+=1),"inert"in e&&(t?void 0!==o&&(e.inert=o):(o=e.inert,e.inert=!0)),a||l?l=g:(p&&(u(),c=dn(e,i,t,r,n,d,p)),t&&h(0,1),a=f(g,r),Ln((()=>Dn(e,t,"start"))),function(e){let t;0===Qt.size&&_t(Bt),new Promise((n=>{Qt.add(t={c:e,f:n})}))}((t=>{if(l&&t>l.start&&(a=f(l,r),l=null,Dn(e,a.b,"start"),p&&(u(),c=dn(e,i,a.b,a.duration,0,d,s.css))),a)if(t>=a.end)h(i=a.b,1-i),Dn(e,a.b,"end"),l||(a.b?u():--a.group.r||St(a.group.c)),a=null;else if(t>=a.start){const e=t-a.start;i=a.a+a.d*d(e/a.duration),h(i,1-i)}return!(!a&&!l)})))}return{run(e){$t(s)?(On||(On=Promise.resolve(),On.then((()=>{On=null}))),On).then((()=>{s=s({direction:e?"in":"out"}),d(e)})):d(e)},end(){u(),a=l=null}}}function zn(e){return void 0!==e?.length?e:Array.from(e)}function Hn(e,t){e.d(1),t.delete(e.key)}function qn(e,t){_n(e,1,1,(()=>{t.delete(e.key)}))}function Vn(e,t,n,r,o,s,i,a,l,c,u,f){let d=e.length,h=s.length,p=d;const g={};for(;p--;)g[e[p].key]=p;const m=[],y=new Map,b=new Map,v=[];for(p=h;p--;){const e=f(o,s,p),r=n(e);let a=i.get(r);a?v.push((()=>a.p(e,t))):(a=c(r,e),a.c()),y.set(r,m[p]=a),r in g&&b.set(r,Math.abs(p-g[r]))}const w=new Set,x=new Set;function S(e){jn(e,1),e.m(a,u),i.set(e.key,e),u=e.first,h--}for(;d&&h;){const t=m[h-1],n=e[d-1],r=t.key,o=n.key;t===n?(u=t.first,d--,h--):y.has(o)?!i.has(r)||w.has(r)?S(t):x.has(o)?d--:b.get(r)>b.get(o)?(x.add(r),S(t)):(w.add(o),d--):(l(n,i),d--)}for(;d--;){const t=e[d];y.has(t.key)||l(t,i)}for(;h;)S(m[h-1]);return St(v),m}function Wn(e,t){const n={},r={},o={$$scope:1};let s=e.length;for(;s--;){const i=e[s],a=t[s];if(a){for(const e in i)e in a||(r[e]=1);for(const e in a)o[e]||(n[e]=a[e],o[e]=1);e[s]=a}else for(const e in i)o[e]=1}for(const e in r)e in n||(n[e]=void 0);return n}function Jn(e){return"object"==typeof e&&null!==e?e:{}}function Kn(e){e&&e.c()}function Gn(e,t,n){const{fragment:r,after_update:o}=e.$$;r&&r.m(t,n),Ln((()=>{const t=e.$$.on_mount.map(wt).filter($t);e.$$.on_destroy?e.$$.on_destroy.push(...t):St(t),e.$$.on_mount=[]})),o.forEach(Ln)}function Zn(e,t){const n=e.$$;null!==n.fragment&&(!function(e){const t=[],n=[];Sn.forEach((r=>-1===e.indexOf(r)?t.push(r):n.push(r))),n.forEach((e=>e())),Sn=t}(n.after_update),St(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function Yn(e,t,n,r,o,s,i=null,a=[-1]){const l=un;pn(e);const c=e.$$={fragment:null,ctx:[],props:s,update:yt,not_equal:o,bound:xt(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(t.context||(l?l.$$.context:[])),callbacks:xt(),dirty:a,skip_bound:!1,root:t.target||l.$$.root};i&&i(c.root);let u=!1;if(c.ctx=n?n(e,t.props||{},((t,n,...r)=>{const s=r.length?r[0]:n;return c.ctx&&o(c.ctx[t],c.ctx[t]=s)&&(!c.skip_bound&&c.bound[t]&&c.bound[t](s),u&&function(e,t){-1===e.$$.dirty[0]&&(wn.push(e),En(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}function er(e,{store:t,animate:n=!0,clickActive:r=!0}={}){e.dataset.closing="false";const o=e.querySelector("summary");let s,i=null;for(const t of e.children)if("SUMMARY"!==t.tagName){i=t;break}let a,l=e.open;function c(t,r,o){const a=Math.max(0,30*Math.log(Math.abs(r-t)+Number.EPSILON));n?(e.style.overflow="hidden",i&&(i.style.overflow="hidden"),s=e.animate({height:[`${t}px`,`${r}px`]},{duration:a,easing:"ease-out"}),s.onfinish=()=>{e.open=o,e.dataset.closing="false",e.style.overflow=null,i&&(i.style.overflow=null)}):(e.open=o,e.dataset.closing="false",e.style.overflow=null,i&&(i.style.overflow=null))}function u(){if(n)if(l){const t=e.offsetHeight;s&&s.cancel(),e.open=!0;c(t,e.offsetHeight,!0)}else{const t=e.offsetHeight;s&&s.cancel();const n=o.offsetHeight;e.dataset.closing="true",c(t,n,!1)}else e.open=l}function f(e){r&&(e.preventDefault(),t.set(!l))}return t&&(a=lt(t,(t=>{l=t,e.open=l}),(async e=>{l=e,await Cn(),u()}))),o.addEventListener("click",f),{update(o){it(o.store)&&o.store!==t&&("function"==typeof a&&a(),t=o.store,a=lt(t,(t=>{l=t,e.open=l}),(async e=>{l=e,await Cn(),u()}))),"boolean"==typeof o.animate&&(n=o.animate),"boolean"==typeof o.clickActive&&(r=o.clickActive)},destroy(){"function"==typeof a&&a(),o.removeEventListener("click",f)}}}const tr=[];function nr(e,t){return{subscribe:rr(e,t).subscribe}}function rr(e,t=yt){let n;const r=new Set;function o(t){if(kt(e,t)&&(e=t,n)){const t=!tr.length;for(const t of r)t[1](),tr.push(t,e);if(t){for(let e=0;e{r.delete(l),0===r.size&&n&&(n(),n=null)}}}}function or({storage:e,serialize:t=JSON.stringify,deserialize:n=JSON.parse}){function r(e,t,n){return{subscribe:o(e,t,n).subscribe}}function o(r,o,s){if(e){const s=e.getItem(r);try{s&&(o=n(s))}catch(e){}e.setItem(r,t(o))}const i=rr(o,s?function(n){return s((function(o){return e&&e.setItem(r,t(o)),n(o)}),(function(e){a(e(Lt(i)))}))}:void 0);function a(n){e&&e.setItem(r,t(n)),i.set(n)}return{set:a,update:function(e){a(e(Lt(i)))},subscribe:function(e,t){return i.subscribe(e,t)}}}return{readable:r,writable:o,derived:function(t,o,s,i){const a=!Array.isArray(o),l=a?[o]:o;if(e&&e.getItem(t))try{i=n(e.getItem(t))}catch(e){}return r(t,i,((e,t)=>{let n=!1;const r=[];let o,i=0;const c=()=>{if(i)return;o?.();const n=a?r[0]:r;if(s.length<2)e(s(n));else{const r=s(n,e,t);"function"==typeof r&&(o=r)}},u=l.map(((e,t)=>e.subscribe((e=>{r[t]=e,i&=~(1<{i|=1<e())),o?.()}}))},storage:e,serialize:t,deserialize:n}}const sr=or({storage:globalThis?.localStorage}),ir=or({storage:globalThis?.sessionStorage});class ar{#a;#l=new Map;constructor(e){this.#a=e}#c(e,t=void 0,n){try{const r=this.#a.storage.getItem(e);if(null!==r){t=(n?.deserialize??this.#a.deserialize)(r)}}catch(e){}return(n?.writable??this.#a.writable)(e,t)}#u(e){return this.#l.get(e)?.deserialize??this.#a.deserialize}#f(e){return this.#l.get(e)?.serialize??this.#a.serialize}#d(e,t=void 0,n){const r=this.#l.get(e);if(r)return r.store;const o=this.#c(e,t,n);return this.#l.set(e,{store:o,deserialize:n?.deserialize,serialize:n?.serialize}),o}getItem(e,t){let n=t;const r=this.#a.storage.getItem(e);if(null!==r)try{n=this.#u(e)(r)}catch(e){n=t}else if(void 0!==t)try{const n=this.#f(e)(t);this.#a.storage.setItem(e,n)}catch(e){}return n}getStore(e,t,n){return this.#d(e,t,n)}hasStore(e){return this.#l.has(e)}setItem(e,t){this.#d(e).set(t)}swapItemBoolean(e,t){const n=this.#d(e,t);let r=!1;try{r=!!this.#u(e)(this.#a.storage.getItem(e))}catch(e){}const o="boolean"==typeof r&&!r;return n.set(o),o}*entries(e=void 0){if(void 0!==e&&!(e instanceof RegExp))throw new TypeError("'regex' is not a RegExp");if(this.#l.size)if(e)for(const t of this.#l.keys())e.test(t)&&(yield[t,this.getStore(t)]);else for(const e of this.#l.keys())yield[e,this.getStore(e)]}*keys(e=void 0){if(void 0!==e&&!(e instanceof RegExp))throw new TypeError("'regex' is not a RegExp");if(this.#l.size)if(e)for(const t of this.#l.keys())e.test(t)&&(yield t);else for(const e of this.#l.keys())yield e}*stores(e=void 0){if(void 0!==e&&!(e instanceof RegExp))throw new TypeError("'regex' is not a RegExp");if(this.#l.size)if(e)for(const t of this.#l.keys())e.test(t)&&(yield this.getStore(t));else for(const e of this.#l.keys())yield this.getStore(e)}}class lr extends ar{constructor(){super(sr)}}class cr extends ar{constructor(){super(ir)}}class ur{static#h=[];static#p=new cr;static#g;static get sessionStorage(){return this.#p}static initialize(e){globalThis.requestAnimationFrame((()=>{this.#m(e.storagePrepend),e.settingStores.themeAnimate.subscribe((e=>this.#y(e)))}))}static openOnThisPage({focus:e=!0}={}){const t=globalThis.document.querySelector("details.tsd-page-navigation");if(t){const n=t.querySelector("summary");n&&(this.#p.hasStore(this.#g)&&this.#p.getStore(this.#g).set(!0),e&&setTimeout((()=>n.focus({focusVisible:!0})),0))}}static#m(e){const t=document.querySelectorAll("details.tsd-accordion"),n=new Map;for(const r of t){const t=r.querySelector("summary");let o;t&&(o=`${e}-accordion-${t.dataset.key??t.textContent?.trim?.()?.replace(/\s+/g,"-").toLowerCase()}`),o===`${e}-accordion-on-this-page`&&(this.#g=o),"string"==typeof o&&o.length&&n.set(o,r)}const r=new RegExp(`${e}-accordion-(?section-|tsd-otp-)(?.*)`),o=new Map;for(const[t,s]of n){const n=r.exec(t);if(n){const t=`${e}-accordion-section-otp-${n.groups.key}`,r=o.get(t)??new Set;r.add(s),o.set(t,r)}else{const e=this.#p.getStore(t,s.open);this.#h.push(er(s,{store:e})),s.addEventListener("toggle",(t=>e.set(t.target.open)))}}const s=globalThis.location.hash;for(const[e,t]of o){const n=this.#p.getStore(e,!0);if(s)for(const e of t){Array.from(e.querySelectorAll("*")).find((e=>`#${e.id}`===s))&&n.set(!0)}for(const e of t)this.#h.push(er(e,{store:n})),e.addEventListener("toggle",(e=>n.set(e.target.open)))}setTimeout((()=>{for(const e of n.values()){const t=e.querySelector("summary svg");t&&t.classList.add("dmt-summary-svg")}}),500)}static#y(e){for(const t of this.#h)t?.update({animate:e})}}class fr{static#b=new Set(["KeyboardEvent","MouseEvent","PointerEvent"]);static#v=new Set(["MouseEvent","PointerEvent"]);static#w=!1;static get debug(){return this.#w}static set debug(e){if("boolean"!=typeof e)throw new TypeError("'debug' is not a boolean.");this.#w=e}static get prefersReducedMotion(){return globalThis?.matchMedia("(prefers-reduced-motion: reduce)")?.matches??!1}static applyFocusSource(e){if(!ut(e))return;const t=ut(e?.focusSource)?e.focusSource:e;setTimeout((()=>{const e="boolean"==typeof t.debug?this.debug||t.debug:this.debug;if(ct(t.focusEl)){e&&console.debug("A11yHelper.applyFocusSource debug - Attempting to apply focus target: ",t.focusEl);for(const n of t.focusEl){if(n?.nodeType===Node.ELEMENT_NODE&&n?.isConnected){n?.focus(),e&&console.debug("A11yHelper.applyFocusSource debug - Applied focus to target: ",n);break}if("string"==typeof n){const t=document.querySelector(n);if(t?.nodeType===Node.ELEMENT_NODE&&t?.isConnected){t?.focus(),e&&console.debug("A11yHelper.applyFocusSource debug - Applied focus to target: ",t);break}e&&console.debug("A11yHelper.applyFocusSource debug - Could not query selector: ",n)}}}else e&&console.debug("A11yHelper.applyFocusSource debug - No focus targets defined.")}),0)}static getFirstFocusableElement(e=document,t){const n=this.getFocusableElements(e,t);return n.length>0?n[0]:void 0}static getFocusableElements(e=document,{anchorHref:t=!0,ignoreClasses:n,ignoreElements:r,selectors:o}={}){if(e?.nodeType!==Node.ELEMENT_NODE&&e?.nodeType!==Node.DOCUMENT_NODE)throw new TypeError("'element' is not a HTMLElement, SVGElement, or Document instance.");if("boolean"!=typeof t)throw new TypeError("'anchorHref' is not a boolean.");if(void 0!==n&&!ct(n))throw new TypeError("'ignoreClasses' is not an iterable list.");if(void 0!==r&&!(r instanceof Set))throw new TypeError("'ignoreElements' is not a Set.");if(void 0!==o&&"string"!=typeof o)throw new TypeError("'selectors' is not a string.");const s=o??this.#x(t),i=[...e.querySelectorAll(s)];return r&&n?i.filter((e=>{let t=!1;for(const r of n)if(e.classList.contains(r)){t=!0;break}return!(t||r.has(e)||"none"===e.style.display||"hidden"===e.style.visibility||e.hasAttribute("disabled")||e.hasAttribute("inert")||"true"===e.getAttribute("aria-hidden"))})):n?i.filter((e=>{let t=!1;for(const r of n)if(e.classList.contains(r)){t=!0;break}return!t&&"none"!==e.style.display&&"hidden"!==e.style.visibility&&!e.hasAttribute("disabled")&&!e.hasAttribute("inert")&&"true"!==e.getAttribute("aria-hidden")})):r?i.filter((e=>!r.has(e)&&"none"!==e.style.display&&"hidden"!==e.style.visibility&&!e.hasAttribute("disabled")&&!e.hasAttribute("inert")&&"true"!==e.getAttribute("aria-hidden"))):i.filter((e=>"none"!==e.style.display&&"hidden"!==e.style.visibility&&!e.hasAttribute("disabled")&&!e.hasAttribute("inert")&&"true"!==e.getAttribute("aria-hidden")))}static#x(e=!0){return`button, [contenteditable=""], [contenteditable="true"], details summary:not([tabindex="-1"]), embed, a${e?"[href]":""}, iframe, object, input:not([type=hidden]), select, textarea, [tabindex]:not([tabindex="-1"])`}static getFocusSource({event:e,x:t,y:n,focusEl:r,debug:o=!1}){if(void 0!==r&&!this.isFocusSource(r))throw new TypeError("A11yHelper.getFocusSource error: 'focusEl' is not a HTMLElement, SVGElement, or string.");if(void 0!==o&&"boolean"!=typeof o)throw new TypeError("A11yHelper.getFocusSource error: 'debug' is not a boolean.");const s="boolean"==typeof o?this.debug||o:this.debug;if(void 0===e){if("number"!=typeof t)throw new TypeError("A11yHelper.getFocusSource error: 'event' not defined and 'x' is not a number.");if("number"!=typeof n)throw new TypeError("A11yHelper.getFocusSource error: 'event' not defined and 'y' is not a number.");const e={debug:o,focusEl:void 0!==r?[r]:void 0,x:t,y:n};return s&&console.debug("A11yHelper.getFocusSource debug: generated 'focusSource' without event: ",e),e}if(!fr.#b.has(e?.constructor?.name))throw new TypeError("A11yHelper.getFocusSource error: 'event' is not a KeyboardEvent, MouseEvent, or PointerEvent.");if(void 0!==t&&!Number.isInteger(t))throw new TypeError("A11yHelper.getFocusSource error: 'x' is not a number.");if(void 0!==n&&!Number.isInteger(n))throw new TypeError("A11yHelper.getFocusSource error: 'y' is not a number.");let i;if(e&&(fr.isFocusable(e.target)?(i=e.target,s&&console.debug("A11yHelper.getFocusSource debug: 'targetEl' set to event.target: ",i)):fr.isFocusable(e.currentTarget)?(i=e.currentTarget,s&&console.debug("A11yHelper.getFocusSource debug: 'targetEl' set to event.currentTarget: ",i)):s&&(console.debug("A11yHelper.getFocusSource debug: 'event.target' / 'event.currentTarget' are not focusable."),console.debug("A11yHelper.getFocusSource debug: 'event.target': ",e.target),console.debug("A11yHelper.getFocusSource debug: 'event.currentTarget': ",e.currentTarget)),i&&i?.nodeType!==Node.ELEMENT_NODE&&"function"!=typeof i?.focus))throw new TypeError("A11yHelper.getFocusSource error: 'targetEl' is not an HTMLElement or SVGElement.");const a={debug:o};if(fr.#v.has(e?.constructor?.name))if(2!==e?.button&&"contextmenu"===e.type){const o=(i??e.target).getBoundingClientRect();a.source="keyboard",a.x=t??o.left+o.width/2,a.y=n??o.top+o.height/2,a.focusEl=i?[i]:[],r&&a.focusEl.push(r)}else a.source="pointer",a.x=t??e.pageX,a.y=n??e.pageY,a.focusEl=i?[i]:[],r&&a.focusEl.push(r);else{const o=(i??e.target).getBoundingClientRect();a.source="keyboard",a.x=t??o.left+o.width/2,a.y=n??o.top+o.height/2,a.focusEl=i?[i]:[],r&&a.focusEl.push(r)}return s&&console.debug("A11yHelper.getFocusSource debug: generated 'focusSource' with event: ",a),a}static getLastFocusableElement(e=document,t){const n=this.getFocusableElements(e,t);return n.length>0?n[n.length-1]:void 0}static isFocusable(e,{anchorHref:t=!0,ignoreClasses:n}={}){if(null==e||e?.hidden||!e?.isConnected||e?.nodeType!==Node.ELEMENT_NODE||"function"!=typeof e?.focus)return!1;if("boolean"!=typeof t)throw new TypeError("'anchorHref' is not a boolean.");if(void 0!==n&&!ct(n))throw new TypeError("'ignoreClasses' is not an iterable list.");const r=e.getAttribute("contenteditable"),o="string"==typeof r&&(""===r||"true"===r),s=globalThis.parseInt(e.getAttribute("tabindex")),i=Number.isInteger(s)&&s>=0,a=e instanceof HTMLAnchorElement;return!!(o||i||a||e instanceof HTMLButtonElement||e instanceof HTMLDetailsElement||e instanceof HTMLEmbedElement||e instanceof HTMLIFrameElement||e instanceof HTMLInputElement||e instanceof HTMLObjectElement||e instanceof HTMLSelectElement||e instanceof HTMLTextAreaElement)&&(!(a&&!i&&t&&"string"!=typeof e.getAttribute("href"))&&("none"!==e.style.display&&"hidden"!==e.style.visibility&&!e.hasAttribute("disabled")&&!e.hasAttribute("inert")&&"true"!==e.getAttribute("aria-hidden")))}static isFocusSource(e){return"string"==typeof e||e?.nodeType===Node.ELEMENT_NODE&&"function"==typeof e?.focus}static isFocusTarget(e){return null!=e&&e?.nodeType===Node.ELEMENT_NODE&&"function"==typeof e?.focus}static isFocusWithin(e,t=globalThis){if(null==e||e?.hidden||!e?.isConnected)return!1;if("[object Window]"!==Object.prototype.toString.call(t))return!1;let n=t.document.activeElement;for(;n;){if(n===e)return!0;n=n.parentElement}return!1}}async function dr(e=1){if(!Number.isInteger(e)||e<1)throw new TypeError("nextAnimationFrame error: 'cntr' must be a positive integer greater than 0.");let t;for(;--e>=0;)t=await new Promise((e=>requestAnimationFrame(e)));return t}let hr=class{static searchPath(e,t,n){if(!e?.length)return!1;for(const n of e)if(!Array.isArray(n.children)&&n?.path===t)return!0;for(const r of e)if(Array.isArray(r.children)&&this.#S(r,t,n))return!0;return!1}static walk(e,t){for(const n of e)Array.isArray(n.children)&&this.#$(n,void 0,t)}static walkFrom(e,t){this.#$(e,void 0,t)}static#S(e,t,n){if(e.path===t)return!0;if(Array.isArray(e.children))for(const r of e.children){if(this.#S(r,t,n))return n({entry:e}),!0}return!1}static#$(e,t,n){if(Array.isArray(e.children))for(const t of e.children)this.#$(t,e,n);n({entry:e,parentEntry:t})}};class pr{#k;#T=!1;#E;#C;#L;#P;#O;constructor({currentPathURL:e,setCurrentPathURL:t,elementIndex:n,storagePrepend:r,treeName:o}){this.#C=t,this.#k=n,this.#L=r,this.#O=o,this.#E=new cr,this.#I(e),this.#A()}get elementIndex(){return this.#k}get hasData(){return this.#k?.length>0}get hasFolders(){return this.#T}get sessionStorage(){return this.#E}get storeFoldersAllOpen(){return this.#P}ensureCurrentPath(e,{setCurrent:t=!0}={}){const n=hr.searchPath(this.elementIndex,e,(({entry:e})=>{e.storageKey&&this.#E.setItem(e.storageKey,!0)}));return n&&t&&this.#C(e,this.#O),n}setChildFolderState(e,t){hr.walkFrom(e,(({entry:e})=>{e.storageKey&&this.#E.setItem(e.storageKey,t)}))}setFoldersAllOpen(e){for(const t of this.sessionStorage.stores())t.set(e)}swapFoldersAllOpen(){this.setFoldersAllOpen(!Lt(this.storeFoldersAllOpen))}#A(){this.#P=function(e,t,n){const r=!Array.isArray(e),o=r?[e]:e;if(!o.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");const s=t.length<2;return nr(n,((e,n)=>{let i=!1;const a=[];let l=0,c=yt;const u=()=>{if(l)return;c();const o=t(r?a[0]:a,e,n);s?e(o):c=$t(o)?o:yt},f=o.map(((e,t)=>Ct(e,(e=>{a[t]=e,l&=~(1<{l|=1<t(!!e.reduce(((e,t)=>e&t),!0))))}#M(e){return hr.searchPath(this.elementIndex,e,(({entry:e})=>{e.storageKey&&this.#E.setItem(e.storageKey,!0)}))}#D(){let e=0;hr.walk(this.#k,(({entry:t,parentEntry:n})=>{if(n||e++,!Array.isArray(t?.children))return;const r=n?n.path??n.text:"";t.storageKey=`${this.#L}-${t.path??`${r}-${t.text}`}`,this.#E.getStore(t.storageKey,!1)})),this.#T=e>0}#I(e){this.#D();const t=this.#M(e);if(t)this.#C(e,this.#O);else if(e.includes("#")){const n=e.split("#");if(!t){const e=n[0];e&&this.#M(e)&&this.#C(e,this.#O)}}}}class gr{#R="";#F;#N;#U;#j;#_;#Q;constructor(e,t,n){this.#N=e,this.#F=t.initialPathURL;const{subscribe:r,update:o}=rr(this.#F);this.#U=Object.freeze({subscribe:r}),this.#j=o;const s=t.storagePrepend,i=this.#C.bind(this);this.#_=new pr({currentPathURL:this.#F,setCurrentPathURL:i,elementIndex:n?.markdown??[],storagePrepend:`${s}-markdown`,treeName:"markdown"}),this.#Q=new pr({currentPathURL:this.#F,setCurrentPathURL:i,elementIndex:n?.source??[],storagePrepend:`${s}-source`,treeName:"source"}),this.#B(),globalThis.addEventListener("hashchange",this.#z.bind(this))}get activeTreeName(){return this.#R}get currentPathURL(){return this.#F}get markdown(){return this.#_}get source(){return this.#Q}get storeCurrentPathURL(){return this.#U}ensureCurrentPath({pathURL:e=this.#F,focus:t=!1}={}){let n=!1;n|=this.#_.ensureCurrentPath(e),n|=this.#Q.ensureCurrentPath(e),n&&t&&dr().then((()=>document.querySelector("nav.tsd-navigation")?.querySelector(`a[href*="${e}"]`)?.focus({focusVisible:!0})))}#B(){const e=this;function t(t){t.preventDefault();if(globalThis.location.href.split("#")[0]!==this.href.split("#")[0]||globalThis.location.hash!==this.hash)return void(globalThis.location.href=this.href);const n=this.href.replace(e.#N.baseURL,"");if(!e.ensureCurrentPath({pathURL:n})&&n.includes("#")){const t=n.split("#");t[0]&&e.ensureCurrentPath({pathURL:t[0]})}}const n=document.querySelectorAll('div.col-content a[href*="#"], details.tsd-page-navigation a[href*="#"]');for(const e of n)e.addEventListener("click",t)}#z(e){const t=e.newURL.replace(this.#N.baseURL,"");if(!this.ensureCurrentPath({pathURL:t})&&t.includes("#")){const e=t.split("#")[0];e&&this.ensureCurrentPath({pathURL:e})}}#C(e,t){switch(t){case"markdown":case"source":this.#R=t;break;default:this.#R=""}this.#F=e,this.#j((()=>e))}}class mr{#H;constructor(e,t){this.#H=new gr(this,e,t)}get treeState(){return this.#H}}var yr,br={exports:{}}; +/** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + */var vr,wr=(yr||(yr=1,vr=br,function(){var e,t,n,r,o,s,i,a,l,c,u,f,d,h,p,g,m,y,b,v,w,x,S,$,k,T,E,C,L,P=function(e){var t=new P.Builder;return t.pipeline.add(P.trimmer,P.stopWordFilter,P.stemmer),t.searchPipeline.add(P.stemmer),e.call(t,t),t.build()};P.version="2.3.9", +/*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + */ +P.utils={},P.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),P.utils.asString=function(e){return null==e?"":e.toString()},P.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var l=P.utils.clone(t)||{};l.position=[i,a],l.index=o.length,o.push(new P.Token(n.slice(i,s),l))}i=s+1}}return o},P.tokenizer.separator=/[\s\-]+/, +/*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + */ +P.Pipeline=function(){this._stack=[]},P.Pipeline.registeredFunctions=Object.create(null),P.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&P.utils.warn("Overwriting existing registered function: "+t),e.label=t,P.Pipeline.registeredFunctions[e.label]=e},P.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||P.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},P.Pipeline.load=function(e){var t=new P.Pipeline;return e.forEach((function(e){var n=P.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},P.Pipeline.prototype.add=function(){Array.prototype.slice.call(arguments).forEach((function(e){P.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},P.Pipeline.prototype.after=function(e,t){P.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},P.Pipeline.prototype.before=function(e,t){P.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},P.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},P.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(se&&(n=o),s!=e);)r=n-t,o=t+Math.floor(r/2),s=this.elements[2*o];return s==e||s>e?2*o:sa?c+=2:i==a&&(t+=n[l+1]*r[c+1],l+=2,c+=2);return t},P.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},P.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var s,i=o.str.charAt(0);i in o.node.edges?s=o.node.edges[i]:(s=new P.TokenSet,o.node.edges[i]=s),1==o.str.length&&(s.final=!0),r.push({node:s,editsRemaining:o.editsRemaining,str:o.str.slice(1)})}if(0!=o.editsRemaining){if("*"in o.node.edges)var a=o.node.edges["*"];else a=new P.TokenSet,o.node.edges["*"]=a;if(0==o.str.length&&(a.final=!0),r.push({node:a,editsRemaining:o.editsRemaining-1,str:o.str}),o.str.length>1&&r.push({node:o.node,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)}),1==o.str.length&&(o.node.final=!0),o.str.length>=1){if("*"in o.node.edges)var l=o.node.edges["*"];else l=new P.TokenSet,o.node.edges["*"]=l;1==o.str.length&&(l.final=!0),r.push({node:l,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)})}if(o.str.length>1){var c,u=o.str.charAt(0),f=o.str.charAt(1);f in o.node.edges?c=o.node.edges[f]:(c=new P.TokenSet,o.node.edges[f]=c),1==o.str.length&&(c.final=!0),r.push({node:c,editsRemaining:o.editsRemaining-1,str:u+o.str.slice(2)})}}}return n},P.TokenSet.fromString=function(e){for(var t=new P.TokenSet,n=t,r=0,o=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}}, +/*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + */ +P.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},P.Index.prototype.search=function(e){return this.query((function(t){new P.QueryParser(e,t).parse()}))},P.Index.prototype.query=function(e){for(var t=new P.Query(this.fields),n=Object.create(null),r=Object.create(null),o=Object.create(null),s=Object.create(null),i=Object.create(null),a=0;a1?1:e},P.Builder.prototype.k1=function(e){this._k1=e},P.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var o=0;o=this.length)return P.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},P.QueryLexer.prototype.width=function(){return this.pos-this.start},P.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},P.QueryLexer.prototype.backup=function(){this.pos-=1},P.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=P.QueryLexer.EOS&&this.backup()},P.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(P.QueryLexer.TERM)),e.ignore(),e.more())return P.QueryLexer.lexText},P.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(P.QueryLexer.EDIT_DISTANCE),P.QueryLexer.lexText},P.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(P.QueryLexer.BOOST),P.QueryLexer.lexText},P.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(P.QueryLexer.TERM)},P.QueryLexer.termSeparator=P.tokenizer.separator,P.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==P.QueryLexer.EOS)return P.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return P.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(P.QueryLexer.TERM),P.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(P.QueryLexer.TERM),P.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(P.QueryLexer.PRESENCE),P.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(P.QueryLexer.PRESENCE),P.QueryLexer.lexText;if(t.match(P.QueryLexer.termSeparator))return P.QueryLexer.lexTerm}else e.escapeCharacter()}},P.QueryParser=function(e,t){this.lexer=new P.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},P.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=P.QueryParser.parseClause;e;)e=e(this);return this.query},P.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},P.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},P.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},P.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case P.QueryLexer.PRESENCE:return P.QueryParser.parsePresence;case P.QueryLexer.FIELD:return P.QueryParser.parseField;case P.QueryLexer.TERM:return P.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new P.QueryParseError(n,t.start,t.end)}},P.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=P.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=P.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new P.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r)throw n="expecting term or field, found nothing",new P.QueryParseError(n,t.start,t.end);switch(r.type){case P.QueryLexer.FIELD:return P.QueryParser.parseField;case P.QueryLexer.TERM:return P.QueryParser.parseTerm;default:throw n="expecting term or field, found '"+r.type+"'",new P.QueryParseError(n,r.start,r.end)}}},P.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new P.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var o=e.peekLexeme();if(null==o)throw r="expecting term, found nothing",new P.QueryParseError(r,t.start,t.end);if(o.type===P.QueryLexer.TERM)return P.QueryParser.parseTerm;throw r="expecting term, found '"+o.type+"'",new P.QueryParseError(r,o.start,o.end)}},P.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case P.QueryLexer.TERM:return e.nextClause(),P.QueryParser.parseTerm;case P.QueryLexer.FIELD:return e.nextClause(),P.QueryParser.parseField;case P.QueryLexer.EDIT_DISTANCE:return P.QueryParser.parseEditDistance;case P.QueryLexer.BOOST:return P.QueryParser.parseBoost;case P.QueryLexer.PRESENCE:return e.nextClause(),P.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new P.QueryParseError(r,n.start,n.end)}else e.nextClause()}},P.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new P.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case P.QueryLexer.TERM:return e.nextClause(),P.QueryParser.parseTerm;case P.QueryLexer.FIELD:return e.nextClause(),P.QueryParser.parseField;case P.QueryLexer.EDIT_DISTANCE:return P.QueryParser.parseEditDistance;case P.QueryLexer.BOOST:return P.QueryParser.parseBoost;case P.QueryLexer.PRESENCE:return e.nextClause(),P.QueryParser.parsePresence;default:throw r="Unexpected lexeme type '"+o.type+"'",new P.QueryParseError(r,o.start,o.end)}else e.nextClause()}},P.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new P.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case P.QueryLexer.TERM:return e.nextClause(),P.QueryParser.parseTerm;case P.QueryLexer.FIELD:return e.nextClause(),P.QueryParser.parseField;case P.QueryLexer.EDIT_DISTANCE:return P.QueryParser.parseEditDistance;case P.QueryLexer.BOOST:return P.QueryParser.parseBoost;case P.QueryLexer.PRESENCE:return e.nextClause(),P.QueryParser.parsePresence;default:throw r="Unexpected lexeme type '"+o.type+"'",new P.QueryParseError(r,o.start,o.end)}else e.nextClause()}},vr.exports=P}()),br.exports);function xr(e,t){if(""===t)return e;const n=e.toLocaleLowerCase(),r=t.toLocaleLowerCase(),o=[];let s=0,i=n.indexOf(r);for(;-1!==i;)o.push($r(e.substring(s,i)),`${$r(e.substring(i,i+r.length))}`),s=i+r.length,i=n.indexOf(r,s);return o.push($r(e.substring(s))),o.join("")}const Sr={"&":"&","<":"<",">":">","'":"'",'"':"""};function $r(e){return e.replace(/[&<>"']/g,(e=>Sr[e]))}class kr{static async getDimensions(e,{accessor:t="url",warn:n=!1}={}){const r=[],o=[],s=[],i=ct(e)?e:[e];for(const e of i){let o;"string"==typeof e?o=e:ut(e)&&(o=ft(e,t)),"string"==typeof o?r.push(new Promise(((e,t)=>{const n=new Image;n.src=o,n.onload=()=>e({url:o,width:n.naturalWidth,height:n.naturalHeight}),n.onerror=()=>t({url:o})}))):n&&console.warn("ImageData.getDimensions warning: Failed to locate target URL.")}const a=await Promise.allSettled(r);for(const e of a)switch(e.status){case"fulfilled":o.push(e.value);break;case"rejected":s.push(e.reason)}return{fulfilled:o,rejected:s}}}function Tr(e,t){const n={icons:[],totalWidth:0},r=[];r.push(...t?.iconLinks?.user??[]),r.push(...t?.iconLinks?.service??[]);for(const t of r)n.icons.push({iconURL:"string"==typeof t.dmtPath?`${e.dmtURL}${t.dmtPath}`:t.iconURL,title:t.title,url:t.url});const o=rr(n),s=`${e.storagePrepend}-toolbar-iconlinks-width`;if(0===n.icons.length)globalThis.sessionStorage.removeItem(s);else{const t=e.dmtSessionStorage.getItem(s);Number.isFinite(t)&&t>0?n.totalWidth=t:kr.getDimensions(n.icons,{accessor:"iconURL"}).then((({fulfilled:t,rejected:r})=>{r.length?globalThis.sessionStorage.removeItem(s):(o.update((e=>{for(const n of t){const t=24/n.height*n.width;e.totalWidth+=t+8}return e.totalWidth+=dt.remPixels(.35)*(t.length-1),e})),e.dmtSessionStorage.setItem(s,Math.floor(n.totalWidth)))}))}return o}const Er="docs-dmt-theme-animate";function Cr(e){let t,n,r,o,s,i,a,l,c,u,f;return{c(){t=Kt("label"),n=Kt("input"),r=Yt(),o=Gt("svg"),s=Gt("rect"),i=Gt("path"),a=Yt(),l=Kt("span"),c=Zt(e[1]),nn(n,"type","checkbox"),nn(n,"class","svelte-1y7unmi"),nn(s,"class","tsd-checkbox-background"),nn(s,"width","30"),nn(s,"height","30"),nn(s,"x","1"),nn(s,"y","1"),nn(s,"rx","6"),nn(s,"fill","none"),nn(i,"class","tsd-checkbox-checkmark"),nn(i,"d","M8.35422 16.8214L13.2143 21.75L24.6458 10.25"),nn(i,"stroke","none"),nn(i,"stroke-width","3.5"),nn(i,"stroke-linejoin","round"),nn(i,"fill","none"),nn(o,"width","32"),nn(o,"height","32"),nn(o,"viewBox","0 0 32 32"),nn(o,"aria-hidden","true"),nn(o,"class","svelte-1y7unmi"),nn(t,"class","svelte-1y7unmi")},m(d,h){Wt(d,t,h),Ht(t,n),n.checked=e[2],Ht(t,r),Ht(t,o),Ht(o,s),Ht(o,i),Ht(t,a),Ht(t,l),Ht(l,c),u||(f=en(n,"change",e[3]),u=!0)},p(e,[t]){4&t&&(n.checked=e[2]),2&t&&rn(c,e[1])},i:yt,o:yt,d(e){e&&Jt(t),u=!1,f()}}}function Lr(e,t,n){let r,o=yt,s=()=>(o(),o=Ct(i,(e=>n(2,r=e))),i);e.$$.on_destroy.push((()=>o()));let{store:i}=t;s();let{label:a}=t;return e.$$set=e=>{"store"in e&&s(n(0,i=e.store)),"label"in e&&n(1,a=e.label)},[i,a,r,function(){r=this.checked,i.set(r)}]}"undefined"!=typeof window&&(window.__svelte||(window.__svelte={v:new Set})).v.add("4");class Pr extends Xn{constructor(e){super(),Yn(this,e,Lr,Cr,kt,{store:0,label:1})}}function Or(e){let t,n,r=at(e[0].themeAnimate),o=r&&function(e){let t,n,r;return n=new Pr({props:{store:e[0].themeAnimate,label:"Animation"}}),{c(){t=Kt("section"),Kn(n.$$.fragment),nn(t,"class","svelte-20evnz")},m(e,o){Wt(e,t,o),Gn(n,t,null),r=!0},p:yt,i(e){r||(jn(n.$$.fragment,e),r=!0)},o(e){_n(n.$$.fragment,e),r=!1},d(e){e&&Jt(t),Zn(n)}}}(e);return{c(){o&&o.c(),t=Xt()},m(e,r){o&&o.m(e,r),Wt(e,t,r),n=!0},p(e,[t]){r&&o.p(e,t)},i(e){n||(jn(o),n=!0)},o(e){_n(o),n=!1},d(e){e&&Jt(t),o&&o.d(e)}}}function Ir(e){const{settingStores:t}=bn("#dmtComponentData");return[t]}function Ar(e,t){function n(){if(ut(t))for(const n of Object.keys(t))e.style.setProperty(`${n}`,t[n])}return n(),{update:e=>{t=e,n()}}}class Mr{static isComponent(e){if(null==e||"function"!=typeof e)return!1;const t=e?.prototype?.constructor?.name;return!("string"!=typeof t||!t.startsWith("Proxy<")&&"ProxyComponent"!==t)||("undefined"!=typeof window?"function"==typeof e.prototype.$destroy&&"function"==typeof e.prototype.$on:"function"==typeof e.render)}static isHMRProxy(e){const t=e?.constructor?.name;if("string"==typeof t&&(t.startsWith("Proxy<")||"ProxyComponent"===t))return!0;const n=e?.prototype?.constructor?.name;return"string"==typeof n&&(n.startsWith("Proxy<")||"ProxyComponent"===n)}static async outroAndDestroy(e){return null==e?Promise.resolve():new Promise((t=>{e?.$$?.fragment&&e?.$$?.fragment?.o?(Nn(),_n(e.$$.fragment,0,0,(()=>{e?.$destroy?.(),t()})),Un()):(e?.$destroy?.(),t())}))}}Object.seal(Mr);function Dr(e,t){return e}Object.seal(class{static isConfig(e,{raiseException:t=!1}={}){if(!ut(e)){if(t)throw new TypeError("TJSSvelteConfigUtil.isConfig error: 'config' is not an object.");return!1}if(!Mr.isComponent(e.class)){if(t)throw new TypeError("TJSSvelteConfigUtil.isConfig error: 'config.class' is not a Svelte component constructor.");return!1}return!0}static parseConfig(e,t=void 0){if(!ut(e))throw new TypeError(`TJSSvelteConfigUtil.parseConfig - 'config' is not an object:\n${JSON.stringify(e)}.`);if(!Mr.isComponent(e.class))throw new TypeError(`TJSSvelteConfigUtil.parseConfig - 'class' is not a Svelte component constructor for config:\n${JSON.stringify(e)}.`);if(void 0!==e.hydrate&&"boolean"!=typeof e.hydrate)throw new TypeError(`TJSSvelteConfigUtil.parseConfig - 'hydrate' is not a boolean for config:\n${JSON.stringify(e)}.`);if(void 0!==e.intro&&"boolean"!=typeof e.intro)throw new TypeError(`TJSSvelteConfigUtil.parseConfig - 'intro' is not a boolean for config:\n${JSON.stringify(e)}.`);if(!(void 0===e.target||"string"==typeof e.target||e.target instanceof Element||e.target instanceof ShadowRoot||e.target instanceof DocumentFragment))throw new TypeError(`TJSSvelteConfigUtil.parseConfig - 'target' is not a Element, ShadowRoot, or DocumentFragment for config:\n${JSON.stringify(e)}.`);if(!(void 0===e.anchor||"string"==typeof e.anchor||e.anchor instanceof Element||e.anchor instanceof ShadowRoot||e.anchor instanceof DocumentFragment))throw new TypeError(`TJSSvelteConfigUtil.parseConfig - 'anchor' is not a string, Element for config:\n${JSON.stringify(e)}.`);if(!(void 0===e.context||"function"==typeof e.context||e.context instanceof Map||ut(e.context)))throw new TypeError(`TJSSvelteConfigUtil.parseConfig - 'context' is not a Map, function or object for config:\n${JSON.stringify(e)}.`);if(void 0!==e.selectorTarget&&"string"!=typeof e.selectorTarget)throw new TypeError(`TJSSvelteConfigUtil.parseConfig - 'selectorTarget' is not a string for config:\n${JSON.stringify(e)}.`);if(void 0!==e.options&&!ut(e.options))throw new TypeError(`TJSSvelteConfigUtil.parseConfig - 'options' is not an object for config:\n${JSON.stringify(e)}.`);if(ut(e.options)){if(void 0!==e.options.injectApp&&"boolean"!=typeof e.options.injectApp)throw new TypeError(`TJSSvelteConfigUtil.parseConfig - 'options.injectApp' is not a boolean for config:\n${JSON.stringify(e)}.`);if(void 0!==e.options.injectEventbus&&"boolean"!=typeof e.options.injectEventbus)throw new TypeError(`TJSSvelteConfigUtil.parseConfig - 'options.injectEventbus' is not a boolean for config:\n${JSON.stringify(e)}.`);if(void 0!==e.options.selectorElement&&"string"!=typeof e.options.selectorElement)throw new TypeError(`TJSSvelteConfigUtil.parseConfig - 'selectorElement' is not a string for config:\n${JSON.stringify(e)}.`)}const n={...e};delete n.options;let r={};if("function"==typeof n.context){const o=n.context;delete n.context;const s=o.call(t);if(!ut(s))throw new Error(`TJSSvelteConfigUtil.parseConfig - 'context' is a function that did not return an object for config:\n${JSON.stringify(e)}`);r={...s}}else n.context instanceof Map?(r=Object.fromEntries(n.context),delete n.context):ut(n.context)&&(r=n.context,delete n.context);if(n.props=this.#q(n.props,t,e),Array.isArray(n.children)){const o=[];for(let r=0;r0&&(r.children=o),delete n.children}else if(ut(n.children)){if(!Mr.isComponent(n.children.class))throw new Error(`TJSSvelteConfigUtil.parseConfig - 'class' is not a Svelte component for children object for config:\n${JSON.stringify(e)}`);n.children.props=this.#q(n.children.props,t,e),r.children=[n.children],delete n.children}return n.context instanceof Map||(n.context=new Map),n.context.set("#external",r),n}static#q(e,t,n){if("function"==typeof e){const r=e.call(t);if(ut(r))return r;throw new Error(`TJSSvelteConfigUtil.parseConfig - 'props' is a function that did not return an object for config:\n${JSON.stringify(n)}`)}if(ut(e))return e;if(void 0!==e)throw new Error(`TJSSvelteConfigUtil.parseConfig - 'props' is not a function or an object for config:\n${JSON.stringify(n)}`);return{}}});const Rr=e=>({}),Fr=e=>({}),Nr=e=>({}),Ur=e=>({});function jr(e){let t;return{c(){t=Kt("div"),nn(t,"class","tjs-folder-focus-indicator svelte-1jmqrcb")},m(e,n){Wt(e,t,n)},d(e){e&&Jt(t)}}}function _r(e){let t,n,r=Dr(e[2])+"";return{c(){t=Kt("div"),n=Zt(r),nn(t,"class","label svelte-1jmqrcb")},m(r,o){Wt(r,t,o),Ht(t,n),e[36](t)},p(e,t){4&t[0]&&r!==(r=Dr(e[2])+"")&&rn(n,r)},i:yt,o:yt,d(n){n&&Jt(t),e[36](null)}}}function Qr(e){let t,n,r;const o=[ut(e[5]?.slotLabel?.props)?e[5].slotLabel.props:{}];var s=e[5].slotLabel.class;function i(e,t){let n={};for(let e=0;e{Zn(e,1)})),Un()}s?(t=ln(s,i(e,r)),Kn(t.$$.fragment),jn(t.$$.fragment,1),Gn(t,n.parentNode,n)):t=null}else if(s){const n=32&r[0]?Wn(o,[Jn(ut(e[5]?.slotLabel?.props)?e[5].slotLabel.props:{})]):{};t.$set(n)}},i(e){r||(t&&jn(t.$$.fragment,e),r=!0)},o(e){t&&_n(t.$$.fragment,e),r=!1},d(e){e&&Jt(n),t&&Zn(t,e)}}}function Br(e){let t,n,r;const o=[ut(e[5]?.slotSummaryEnd?.props)?e[5].slotSummaryEnd.props:{}];var s=e[5].slotSummaryEnd.class;function i(e,t){let n={};for(let e=0;e{Zn(e,1)})),Un()}s?(t=ln(s,i(e,r)),Kn(t.$$.fragment),jn(t.$$.fragment,1),Gn(t,n.parentNode,n)):t=null}else if(s){const n=32&r[0]?Wn(o,[Jn(ut(e[5]?.slotSummaryEnd?.props)?e[5].slotSummaryEnd.props:{})]):{};t.$set(n)}},i(e){r||(t&&jn(t.$$.fragment,e),r=!0)},o(e){t&&_n(t.$$.fragment,e),r=!1},d(e){e&&Jt(n),t&&Zn(t,e)}}}function zr(e){let t,n,r;const o=[ut(e[5]?.slotDefault?.props)?e[5].slotDefault.props:{}];var s=e[5].slotDefault.class;function i(e,t){let n={};for(let e=0;e{Zn(e,1)})),Un()}s?(t=ln(s,i(e,r)),Kn(t.$$.fragment),jn(t.$$.fragment,1),Gn(t,n.parentNode,n)):t=null}else if(s){const n=32&r[0]?Wn(o,[Jn(ut(e[5]?.slotDefault?.props)?e[5].slotDefault.props:{})]):{};t.$set(n)}},i(e){r||(t&&jn(t.$$.fragment,e),r=!0)},o(e){t&&_n(t.$$.fragment,e),r=!1},d(e){e&&Jt(n),t&&Zn(t,e)}}}function Hr(e){let t,n,r,o,s,i,a,l,c,u,f,d,h,p,g,m=e[8].focusIndicator&&jr();const y=e[27].label,b=Ot(y,e,e[26],Ur),v=b||function(e){let t,n,r,o,s;const i=[Qr,_r],a=[];function l(e,n){return 32&n[0]&&(t=null),null==t&&(t=!!Mr.isComponent(e[5]?.slotLabel?.class)),t?0:1}return n=l(e,[-1,-1]),r=a[n]=i[n](e),{c(){r.c(),o=Xt()},m(e,t){a[n].m(e,t),Wt(e,o,t),s=!0},p(e,t){let s=n;n=l(e,t),n===s?a[n].p(e,t):(Nn(),_n(a[s],1,1,(()=>{a[s]=null})),Un(),r=a[n],r?r.p(e,t):(r=a[n]=i[n](e),r.c()),jn(r,1),r.m(o.parentNode,o))},i(e){s||(jn(r),s=!0)},o(e){_n(r),s=!1},d(e){e&&Jt(o),a[n].d(e)}}}(e),w=e[27]["summary-end"],x=Ot(w,e,e[26],Fr),S=x||function(e){let t,n,r=Mr.isComponent(e[5]?.slotSummaryEnd?.class),o=r&&Br(e);return{c(){o&&o.c(),t=Xt()},m(e,r){o&&o.m(e,r),Wt(e,t,r),n=!0},p(e,n){32&n[0]&&(r=Mr.isComponent(e[5]?.slotSummaryEnd?.class)),r?o?(o.p(e,n),32&n[0]&&jn(o,1)):(o=Br(e),o.c(),jn(o,1),o.m(t.parentNode,t)):o&&(Nn(),_n(o,1,1,(()=>{o=null})),Un())},i(e){n||(jn(o),n=!0)},o(e){_n(o),n=!1},d(e){e&&Jt(t),o&&o.d(e)}}}(e),$=e[27].default,k=Ot($,e,e[26],null),T=k||function(e){let t,n,r=Mr.isComponent(e[5]?.slotDefault?.class),o=r&&zr(e);return{c(){o&&o.c(),t=Xt()},m(e,r){o&&o.m(e,r),Wt(e,t,r),n=!0},p(e,n){32&n[0]&&(r=Mr.isComponent(e[5]?.slotDefault?.class)),r?o?(o.p(e,n),32&n[0]&&jn(o,1)):(o=zr(e),o.c(),jn(o,1),o.m(t.parentNode,t)):o&&(Nn(),_n(o,1,1,(()=>{o=null})),Un())},i(e){n||(jn(o),n=!0)},o(e){_n(o),n=!1},d(e){e&&Jt(t),o&&o.d(e)}}}(e);return{c(){t=Kt("details"),n=Kt("summary"),r=Gt("svg"),o=Gt("path"),s=Yt(),m&&m.c(),i=Yt(),v&&v.c(),a=Yt(),S&&S.c(),l=Yt(),c=Kt("div"),T&&T.c(),nn(o,"fill","currentColor"),nn(o,"stroke","currentColor"),sn(o,"stroke-linejoin","round"),sn(o,"stroke-width","3"),nn(o,"d","M5,8L19,8L12,15Z"),nn(r,"viewBox","0 0 24 24"),nn(r,"class","svelte-1jmqrcb"),an(r,"focus-chevron",e[8].focusChevron),nn(n,"role","button"),nn(n,"tabindex","0"),nn(n,"class","svelte-1jmqrcb"),an(n,"default-cursor",e[8].chevronOnly),an(n,"remove-focus-visible",e[8].focusIndicator||e[8].focusChevron),nn(c,"class","contents svelte-1jmqrcb"),nn(c,"aria-hidden",u=!e[12]),an(c,"hidden",!e[12]),nn(t,"class","tjs-svg-folder svelte-1jmqrcb"),nn(t,"data-id",e[1]),nn(t,"data-label",e[2]),nn(t,"data-closing","false")},m(u,y){Wt(u,t,y),Ht(t,n),Ht(n,r),Ht(r,o),e[35](r),Ht(n,s),m&&m.m(n,null),Ht(n,i),v&&v.m(n,null),Ht(n,a),S&&S.m(n,null),e[37](n),Ht(t,l),Ht(t,c),T&&T.m(c,null),e[38](t),h=!0,p||(g=[en(n,"click",e[13]),en(n,"contextmenu",e[14]),en(n,"keydown",e[15],!0),en(n,"keyup",e[16],!0),en(t,"close",e[17]),en(t,"open",e[18]),en(t,"toggle",e[39]),en(t,"click",e[28]),en(t,"keydown",e[29]),en(t,"keyup",e[30]),en(t,"open",e[31]),en(t,"close",e[32]),en(t,"openAny",e[33]),en(t,"closeAny",e[34]),Nt(f=er.call(null,t,{store:e[3],animate:e[0],clickActive:!1})),Nt(d=Ar.call(null,t,e[4]))],p=!0)},p(e,o){(!h||256&o[0])&&an(r,"focus-chevron",e[8].focusChevron),e[8].focusIndicator?m||(m=jr(),m.c(),m.m(n,i)):m&&(m.d(1),m=null),b?b.p&&(!h||67108864&o[0])&&Mt(b,y,e,e[26],h?At(y,e[26],o,Nr):Dt(e[26]),Ur):v&&v.p&&(!h||548&o[0])&&v.p(e,h?o:[-1,-1]),x?x.p&&(!h||67108864&o[0])&&Mt(x,w,e,e[26],h?At(w,e[26],o,Rr):Dt(e[26]),Fr):S&&S.p&&(!h||32&o[0])&&S.p(e,h?o:[-1,-1]),(!h||256&o[0])&&an(n,"default-cursor",e[8].chevronOnly),(!h||256&o[0])&&an(n,"remove-focus-visible",e[8].focusIndicator||e[8].focusChevron),k?k.p&&(!h||67108864&o[0])&&Mt(k,$,e,e[26],h?At($,e[26],o,null):Dt(e[26]),null):T&&T.p&&(!h||32&o[0])&&T.p(e,h?o:[-1,-1]),(!h||4096&o[0]&&u!==(u=!e[12]))&&nn(c,"aria-hidden",u),(!h||4096&o[0])&&an(c,"hidden",!e[12]),(!h||2&o[0])&&nn(t,"data-id",e[1]),(!h||4&o[0])&&nn(t,"data-label",e[2]),f&&$t(f.update)&&9&o[0]&&f.update.call(null,{store:e[3],animate:e[0],clickActive:!1}),d&&$t(d.update)&&16&o[0]&&d.update.call(null,e[4])},i(e){h||(jn(v,e),jn(S,e),jn(T,e),h=!0)},o(e){_n(v,e),_n(S,e),_n(T,e),h=!1},d(n){n&&Jt(t),e[35](null),m&&m.d(),v&&v.d(n),S&&S.d(n),e[37](null),T&&T.d(n),e[38](null),p=!1,St(g)}}}function qr(e,t,n){let r,o=yt,s=()=>(o(),o=Ct(p,(e=>n(7,r=e))),p);e.$$.on_destroy.push((()=>o()));let{$$slots:i={},$$scope:a}=t,{folder:l}=t,{animate:c}=t,{id:u}=t,{label:f}=t,{keyCode:d}=t,{options:h}=t,{store:p}=t;s();let{styles:g}=t,{onClose:m}=t,{onOpen:y}=t,{onContextMenu:b}=t;const v=bn("#external")?.application,w={chevronOnly:!1,focusChevron:!1,focusIndicator:!1};let x,S,$,k,T,E,C=r;var L;function P(e,t=!1){return new CustomEvent(e,{detail:{element:x,folder:l,id:u,label:f,store:p},bubbles:t})}function O(e,t=!1){const n=e.target,o=n===k||k.contains(n);if(n===$||n===S||o){if(!t&&w.chevronOnly&&!o)return e.preventDefault(),void e.stopPropagation();Ft(p,r=!r,r),r&&"function"==typeof y?y({event:e,element:x,folder:l,id:u,label:f,store:p}):r||"function"!=typeof m||m({event:e,element:x,folder:l,id:u,label:f,store:p})}e.preventDefault(),e.stopPropagation()}L=()=>T(),gn().$$.on_destroy.push(L);return e.$$set=e=>{"folder"in e&&n(5,l=e.folder),"animate"in e&&n(0,c=e.animate),"id"in e&&n(1,u=e.id),"label"in e&&n(2,f=e.label),"keyCode"in e&&n(19,d=e.keyCode),"options"in e&&n(20,h=e.options),"store"in e&&s(n(3,p=e.store)),"styles"in e&&n(4,g=e.styles),"onClose"in e&&n(21,m=e.onClose),"onOpen"in e&&n(22,y=e.onOpen),"onContextMenu"in e&&n(23,b=e.onContextMenu),"$$scope"in e&&n(26,a=e.$$scope)},e.$$.update=()=>{33&e.$$.dirty[0]&&n(0,c=ut(l)&&"boolean"==typeof l.animate?l.animate:"boolean"!=typeof c||c),34&e.$$.dirty[0]&&n(1,u=ut(l)&&"string"==typeof l.id?l.id:"string"==typeof u?u:void 0),36&e.$$.dirty[0]&&n(2,f=ut(l)&&"string"==typeof l.label?l.label:"string"==typeof f?f:""),524320&e.$$.dirty[0]&&n(19,d=ut(l)&&"string"==typeof l.keyCode?l.keyCode:"string"==typeof d?d:"Enter"),1048608&e.$$.dirty[0]&&(n(20,h=ut(l)&&ut(l.options)?l.options:ut(h)?h:{}),"boolean"==typeof h?.chevronOnly&&n(8,w.chevronOnly=h.chevronOnly,w),"boolean"==typeof h?.focusChevron&&n(8,w.focusChevron=h.focusChevron,w),"boolean"==typeof h?.focusIndicator&&n(8,w.focusIndicator=h.focusIndicator,w)),16777320&e.$$.dirty[0]&&(s(n(3,p=ut(l)&&it(l.store)?l.store:it(p)?p:rr(!1))),"function"==typeof T&&T(),n(24,T=function(e,t){let n=!1;return e.subscribe((e=>{n?t(e):n=!0}))}(p,(e=>{x&&(x.dispatchEvent(P(e?"open":"close")),x.dispatchEvent(P(e?"openAny":"closeAny",!0)))})))),48&e.$$.dirty[0]&&n(4,g=ut(l)&&ut(l.styles)?l.styles:ut(g)?g:void 0),2097184&e.$$.dirty[0]&&n(21,m=ut(l)&&"function"==typeof l.onClose?l.onClose:"function"==typeof m?m:void 0),4194336&e.$$.dirty[0]&&n(22,y=ut(l)&&"function"==typeof l.onOpen?l.onOpen:"function"==typeof y?y:void 0),8388640&e.$$.dirty[0]&&n(23,b=ut(l)&&"function"==typeof l.onContextMenu?l.onContextMenu:"function"==typeof b?b:void 0),33554560&e.$$.dirty[0]&&(r?(clearTimeout(E),n(12,C=!0)):n(25,E=setTimeout((()=>n(12,C=!1)),500)))},[c,u,f,p,g,l,x,r,w,S,$,k,C,function(e){if((v?.reactive?.activeWindow??globalThis).document.activeElement===$&&(-1===e?.pointerId||6===e?.mozInputSource))return e.preventDefault(),void e.stopPropagation();O(e)},function(e){"function"==typeof b&&b({event:e,element:x,folder:l,id:u,label:f,store:p})},function(e){(v?.reactive?.activeWindow??globalThis).document.activeElement===$&&e.code===d&&(e.preventDefault(),e.stopPropagation())},function(e){(v?.reactive?.activeWindow??globalThis).document.activeElement===$&&e.code===d&&(O(e,!0),e.preventDefault(),e.stopPropagation())},function(e){e.preventDefault(),e.stopPropagation(),p.set(!1)},function(e){e.preventDefault(),e.stopPropagation(),p.set(!0)},d,h,m,y,b,T,E,a,i,function(t){vn.call(this,e,t)},function(t){vn.call(this,e,t)},function(t){vn.call(this,e,t)},function(t){vn.call(this,e,t)},function(t){vn.call(this,e,t)},function(t){vn.call(this,e,t)},function(t){vn.call(this,e,t)},function(e){xn[e?"unshift":"push"]((()=>{k=e,n(11,k)}))},function(e){xn[e?"unshift":"push"]((()=>{S=e,n(9,S)}))},function(e){xn[e?"unshift":"push"]((()=>{$=e,n(10,$)}))},function(e){xn[e?"unshift":"push"]((()=>{x=e,n(6,x)}))},()=>n(6,x.open=r,x)]}class Vr extends Xn{constructor(e){super(),Yn(this,e,qr,Hr,kt,{folder:5,animate:0,id:1,label:2,keyCode:19,options:20,store:3,styles:4,onClose:21,onOpen:22,onContextMenu:23},null,[-1,-1])}}function Wr(e){let t,n,r=e[0].text+"";return{c(){t=Kt("span"),n=Zt(r),nn(t,"class","svelte-14yttr0"),an(t,"indent-icon","indent-icon"===e[1]),an(t,"indent-no-icon","indent-no-icon"===e[1])},m(e,r){Wt(e,t,r),Ht(t,n)},p(e,o){1&o&&r!==(r=e[0].text+"")&&rn(n,r),2&o&&an(t,"indent-icon","indent-icon"===e[1]),2&o&&an(t,"indent-no-icon","indent-no-icon"===e[1])},d(e){e&&Jt(t)}}}function Jr(e){let t,n,r,o,s,i,a=e[0].text+"",l=e[5]&&function(e){let t,n;return{c(){t=Gt("svg"),n=Gt("use"),nn(n,"href",`#icon-${e[5]}`),nn(t,"class","tsd-kind-icon svelte-14yttr0"),nn(t,"viewBox","0 0 24 24")},m(e,r){Wt(e,t,r),Ht(t,n)},p:yt,d(e){e&&Jt(t)}}}(e);return{c(){t=Kt("a"),l&&l.c(),n=Yt(),r=Kt("span"),o=Zt(a),nn(r,"class","svelte-14yttr0"),nn(t,"href",e[6]),nn(t,"data-storage-key",e[2]),nn(t,"class","svelte-14yttr0"),an(t,"current",e[3]),an(t,"indent-icon","indent-icon"===e[1]),an(t,"indent-no-icon","indent-no-icon"===e[1]),an(t,"indent-none","indent-none"===e[1])},m(a,c){var u;Wt(a,t,c),l&&l.m(t,null),Ht(t,n),Ht(t,r),Ht(r,o),s||(i=en(t,"click",tn((u=e[7],function(e){return e.preventDefault(),u.call(this,e)}))),s=!0)},p(e,n){e[5]&&l.p(e,n),1&n&&a!==(a=e[0].text+"")&&rn(o,a),4&n&&nn(t,"data-storage-key",e[2]),8&n&&an(t,"current",e[3]),2&n&&an(t,"indent-icon","indent-icon"===e[1]),2&n&&an(t,"indent-no-icon","indent-no-icon"===e[1]),2&n&&an(t,"indent-none","indent-none"===e[1])},d(e){e&&Jt(t),l&&l.d(),s=!1,i()}}}function Kr(e){let t;let n=function(e){return e[6]?Jr:Wr}(e),r=n(e);return{c(){r.c(),t=Xt()},m(e,n){r.m(e,n),Wt(e,t,n)},p(e,[t]){r.p(e,t)},i:yt,o:yt,d(e){e&&Jt(t),r.d(e)}}}function Gr(e,t,n){let r,o,{entry:s}=t,{removeIcon:i=!1}=t,{indentIcon:a}=t,{storageKey:l=null}=t;const{basePath:c,navigation:u}=bn("#dmtComponentData"),f=u.treeState.storeCurrentPathURL;Pt(e,f,(e=>n(9,o=e)));const d=!i&&s.kind?s.kind:void 0,h=s.path?`${c}${s.path}`:void 0;return e.$$set=e=>{"entry"in e&&n(0,s=e.entry),"removeIcon"in e&&n(8,i=e.removeIcon),"indentIcon"in e&&n(1,a=e.indentIcon),"storageKey"in e&&n(2,l=e.storageKey)},e.$$.update=()=>{513&e.$$.dirty&&n(3,r=!!s.path&&s.path===o)},[s,a,l,r,f,d,h,function(){globalThis.location.href=h},i,o]}class Zr extends Xn{constructor(e){super(),Yn(this,e,Gr,Kr,kt,{entry:0,removeIcon:8,indentIcon:1,storageKey:2})}}function Yr(e,t,n){const r=e.slice();return r[14]=t[n],r}function Xr(e){let t,n;return t=new Zr({props:{entry:e[14],indentIcon:e[6],removeIcon:!e[2]&&2===e[14]?.kind}}),{c(){Kn(t.$$.fragment)},m(e,r){Gn(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.entry=e[14]),1&n&&(r.removeIcon=!e[2]&&2===e[14]?.kind),t.$set(r)},i(e){n||(jn(t.$$.fragment,e),n=!0)},o(e){_n(t.$$.fragment,e),n=!1},d(e){Zn(t,e)}}}function eo(e){let t,n;return t=new io({props:{entry:e[14],parentIcon:!e[5]}}),{c(){Kn(t.$$.fragment)},m(e,r){Gn(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.entry=e[14]),t.$set(r)},i(e){n||(jn(t.$$.fragment,e),n=!0)},o(e){_n(t.$$.fragment,e),n=!1},d(e){Zn(t,e)}}}function to(e,t){let n,r,o,s,i,a;const l=[eo,Xr],c=[];function u(e,t){return 1&t&&(r=null),null==r&&(r=!!Array.isArray(e[14].children)),r?0:1}return o=u(t,-1),s=c[o]=l[o](t),{key:e,first:null,c(){n=Xt(),s.c(),i=Xt(),this.first=n},m(e,t){Wt(e,n,t),c[o].m(e,t),Wt(e,i,t),a=!0},p(e,n){let r=o;o=u(t=e,n),o===r?c[o].p(t,n):(Nn(),_n(c[r],1,1,(()=>{c[r]=null})),Un(),s=c[o],s?s.p(t,n):(s=c[o]=l[o](t),s.c()),jn(s,1),s.m(i.parentNode,i))},i(e){a||(jn(s),a=!0)},o(e){_n(s),a=!1},d(e){e&&(Jt(n),Jt(i)),c[o].d(e)}}}function no(e){let t,n,r=[],o=new Map,s=zn(e[0].children);const i=e=>e[14].path;for(let t=0;tn(1,r=e)));const c=bn("#treeState"),u=o.storageKey,f=u?c.sessionStorage.getStore(u,!1):void 0,d=!a&&(void 0===o.kind||2===o.kind),h=d?"indent-no-icon":"indent-icon",p={store:f,options:{focusChevron:!0},styles:s?{"--tjs-folder-details-margin-left":"3.5px"}:void 0};return e.$$set=e=>{"entry"in e&&n(0,o=e.entry),"parentIcon"in e&&n(10,s=e.parentIcon)},[o,r,a,l,u,d,h,p,function(e){e?.event?.altKey&&c.setChildFolderState(o,!1)},function(e){e?.event?.altKey&&c.setChildFolderState(o,!0)},s]}class io extends Xn{constructor(e){super(),Yn(this,e,so,oo,kt,{entry:0,parentIcon:10})}}function ao(e,t,n){const r=e.slice();return r[8]=t[n],r}function lo(e){let t,n;return t=new Zr({props:{entry:e[8],indentIcon:e[4],removeIcon:!e[2]&&2===e[8]?.kind}}),{c(){Kn(t.$$.fragment)},m(e,r){Gn(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.entry=e[8]),1&n&&(r.removeIcon=!e[2]&&2===e[8]?.kind),t.$set(r)},i(e){n||(jn(t.$$.fragment,e),n=!0)},o(e){_n(t.$$.fragment,e),n=!1},d(e){Zn(t,e)}}}function co(e){let t,n;return t=new io({props:{entry:e[8]}}),{c(){Kn(t.$$.fragment)},m(e,r){Gn(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.entry=e[8]),t.$set(r)},i(e){n||(jn(t.$$.fragment,e),n=!0)},o(e){_n(t.$$.fragment,e),n=!1},d(e){Zn(t,e)}}}function uo(e,t){let n,r,o,s,i,a;const l=[co,lo],c=[];function u(e,t){return 1&t&&(r=null),null==r&&(r=!!Array.isArray(e[8].children)),r?0:1}return o=u(t,-1),s=c[o]=l[o](t),{key:e,first:null,c(){n=Xt(),s.c(),i=Xt(),this.first=n},m(e,t){Wt(e,n,t),c[o].m(e,t),Wt(e,i,t),a=!0},p(e,n){let r=o;o=u(t=e,n),o===r?c[o].p(t,n):(Nn(),_n(c[r],1,1,(()=>{c[r]=null})),Un(),s=c[o],s?s.p(t,n):(s=c[o]=l[o](t),s.c()),jn(s,1),s.m(i.parentNode,i))},i(e){a||(jn(s),a=!0)},o(e){_n(s),a=!1},d(e){e&&(Jt(n),Jt(i)),c[o].d(e)}}}function fo(e){let t,n,r,o,s=[],i=new Map,a=zn(e[0].elementIndex);const l=e=>e[8].path;for(let t=0;tn(5,r=e)));const c=o.hasFolders?"indent-no-icon":"indent-none";return e.$$set=e=>{"treeState"in e&&n(0,o=e.treeState)},e.$$.update=()=>{34&e.$$.dirty&&r&&dr().then((()=>{const e=l.querySelector(`a[href*="${r}"]`);e&&e.scrollIntoView({block:"center",inline:"center"})}))},[o,l,i,a,c,r,function(e){xn[e?"unshift":"push"]((()=>{l=e,n(1,l)}))}]}class go extends Xn{constructor(e){super(),Yn(this,e,po,fo,kt,{treeState:0})}}function mo(e){let t,n,r,o;return r=new go({props:{treeState:e[1].treeState.markdown}}),{c(){t=Kt("hr"),n=Yt(),Kn(r.$$.fragment),nn(t,"class","svelte-wwxcg7")},m(e,s){Wt(e,t,s),Wt(e,n,s),Gn(r,e,s),o=!0},p:yt,i(e){o||(jn(r.$$.fragment,e),o=!0)},o(e){_n(r.$$.fragment,e),o=!1},d(e){e&&(Jt(t),Jt(n)),Zn(r,e)}}}function yo(e){let t,n,r=e[1].treeState.markdown.hasData&&function(e){let t,n,r;return n=new Vr({props:{folder:e[4],animate:e[0],$$slots:{default:[mo]},$$scope:{ctx:e}}}),{c(){t=Kt("section"),Kn(n.$$.fragment),nn(t,"class","dmt-document-index svelte-wwxcg7")},m(e,o){Wt(e,t,o),Gn(n,t,null),r=!0},p(e,t){const r={};1&t&&(r.animate=e[0]),512&t&&(r.$$scope={dirty:t,ctx:e}),n.$set(r)},i(e){r||(jn(n.$$.fragment,e),r=!0)},o(e){_n(n.$$.fragment,e),r=!1},d(e){e&&Jt(t),Zn(n)}}}(e);return{c(){r&&r.c(),t=Xt()},m(e,o){r&&r.m(e,o),Wt(e,t,o),n=!0},p(e,[t]){e[1].treeState.markdown.hasData&&r.p(e,t)},i(e){n||(jn(r),n=!0)},o(e){_n(r),n=!1},d(e){e&&Jt(t),r&&r.d(e)}}}function bo(e,t,n){let r,o;const{dmtSessionStorage:s,navigation:i,settingStores:a,storagePrepend:l}=bn("#dmtComponentData"),c=a.themeAnimate;Pt(e,c,(e=>n(0,o=e)));const u=s.getStore(`${l}-document-index`,!0);Pt(e,u,(e=>n(5,r=e))),"markdown"===i.treeState.activeTreeName&&Ft(u,r=!0,r);return[o,i,c,u,{store:u,label:"Document Index",options:{focusChevron:!0}}]}class vo extends Xn{constructor(e){super(),Yn(this,e,bo,yo,kt,{})}}function wo(e,t,n){const r=e.slice();return r[2]=t[n],r}function xo(e,t){let n,r;return{key:e,first:null,c(){n=Kt("a"),r=Kt("span"),r.textContent=`${t[2]}`,nn(n,"href",`${t[0][t[2]]}`),nn(n,"target","_blank"),nn(n,"class","svelte-ietkuq"),this.first=n},m(e,t){Wt(e,n,t),Ht(n,r)},p(e,n){t=e},d(e){e&&Jt(n)}}}function So(e){let t,n=e[1]&&function(e){let t,n=[],r=new Map,o=zn(Object.keys(e[0]));const s=e=>e[0][e[2]];for(let t=0;t0]}class ko extends Xn{constructor(e){super(),Yn(this,e,$o,So,kt,{})}}function To(e){const t=e*e;return e<4/11?7.5625*t:e<8/11?9.075*t-9.9*e+3.4:e<.9?4356/361*t-35442/1805*e+16061/1805:10.8*e*e-20.52*e+10.72}function Eo(e){const t=e-1;return t*t*t+1}function Co(e){return e*e*e*e*e}const Lo=Object.freeze({__proto__:null,backIn:function(e){const t=1.70158;return e*e*((t+1)*e-t)},backInOut:function(e){const t=2.5949095;return(e*=2)<1?e*e*((t+1)*e-t)*.5:.5*((e-=2)*e*((t+1)*e+t)+2)},backOut:function(e){const t=1.70158;return--e*e*((t+1)*e+t)+1},bounceIn:function(e){return 1-To(1-e)},bounceInOut:function(e){return e<.5?.5*(1-To(1-2*e)):.5*To(2*e-1)+.5},bounceOut:To,circIn:function(e){return 1-Math.sqrt(1-e*e)},circInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},circOut:function(e){return Math.sqrt(1- --e*e)},cubicIn:function(e){return e*e*e},cubicInOut:function(e){return e<.5?4*e*e*e:.5*Math.pow(2*e-2,3)+1},cubicOut:Eo,elasticIn:function(e){return Math.sin(13*e*Math.PI/2)*Math.pow(2,10*(e-1))},elasticInOut:function(e){return e<.5?.5*Math.sin(13*Math.PI/2*2*e)*Math.pow(2,10*(2*e-1)):.5*Math.sin(-13*Math.PI/2*(2*e-1+1))*Math.pow(2,-10*(2*e-1))+1},elasticOut:function(e){return Math.sin(-13*(e+1)*Math.PI/2)*Math.pow(2,-10*e)+1},expoIn:function(e){return 0===e?e:Math.pow(2,10*(e-1))},expoInOut:function(e){return 0===e||1===e?e:e<.5?.5*Math.pow(2,20*e-10):-.5*Math.pow(2,10-20*e)+1},expoOut:function(e){return 1===e?e:1-Math.pow(2,-10*e)},linear:bt,quadIn:function(e){return e*e},quadInOut:function(e){return(e/=.5)<1?.5*e*e:-.5*(--e*(e-2)-1)},quadOut:function(e){return-e*(e-2)},quartIn:function(e){return Math.pow(e,4)},quartInOut:function(e){return e<.5?8*Math.pow(e,4):-8*Math.pow(e-1,4)+1},quartOut:function(e){return Math.pow(e-1,3)*(1-e)+1},quintIn:Co,quintInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},quintOut:function(e){return--e*e*e*e*e+1},sineIn:function(e){const t=Math.cos(e*Math.PI*.5);return Math.abs(t)<1e-14?1:1-t},sineInOut:function(e){return-.5*(Math.cos(Math.PI*e)-1)},sineOut:function(e){return Math.sin(e*Math.PI/2)}});function Po(e,t){if("function"==typeof e)return e;const n=Lo[e];return n||Lo.linear}function Oo(e,t){const n=Po(t.easingFade??t.easing),r=Po(t.easingSlide??t.easing),o=function(e,{delay:t=0,duration:n=400,easing:r=bt}={}){const o=+getComputedStyle(e).opacity;return{delay:t,duration:n,easing:r,css:e=>"opacity: "+e*o}}(e),s=function(e,{delay:t=0,duration:n=400,easing:r=Eo,axis:o="y"}={}){const s=getComputedStyle(e),i=+s.opacity,a="y"===o?"height":"width",l=parseFloat(s[a]),c="y"===o?["top","bottom"]:["left","right"],u=c.map((e=>`${e[0].toUpperCase()}${e.slice(1)}`)),f=parseFloat(s[`padding${u[0]}`]),d=parseFloat(s[`padding${u[1]}`]),h=parseFloat(s[`margin${u[0]}`]),p=parseFloat(s[`margin${u[1]}`]),g=parseFloat(s[`border${u[0]}Width`]),m=parseFloat(s[`border${u[1]}Width`]);return{delay:t,duration:n,easing:r,css:e=>`overflow: hidden;opacity: ${Math.min(20*e,1)*i};${a}: ${e*l}px;padding-${c[0]}: ${e*f}px;padding-${c[1]}: ${e*d}px;margin-${c[0]}: ${e*h}px;margin-${c[1]}: ${e*p}px;border-${c[0]}-width: ${e*g}px;border-${c[1]}-width: ${e*m}px;`}}(e,{axis:t.axis});return{delay:t.delay??0,duration:t.duration??500,easing:bt,css:e=>{const t=n(e),i=r(e);return`${s.css(i,1-i)}; ${o.css(t,1-t)}`}}}function Io(e,t,n){const r=e.slice();return r[13]=t[n],r}function Ao(e,t){let n,r,o,s,i,a,l=t[13].key+"";return{key:e,first:null,c(){n=Kt("span"),r=Gt("svg"),o=Gt("use"),s=Yt(),i=Zt(l),a=Yt(),nn(o,"href",`#icon-${t[13].value}`),nn(r,"class","tsd-kind-icon svelte-1uxeem0"),nn(r,"viewBox","0 0 24 24"),nn(n,"class","svelte-1uxeem0"),this.first=n},m(e,t){Wt(e,n,t),Ht(n,r),Ht(r,o),Ht(n,s),Ht(n,i),Ht(n,a)},p(e,n){t=e},d(e){e&&Jt(n)}}}function Mo(e){let t,n,r,o,s,i,a,l,c,u,f,d,h,p,g,m,y,b,v,w,x,S,$,k,T,E=[],C=new Map,L=zn(e[7]);const P=e=>e[13].value;for(let t=0;tAlt + DOpen / focus "Document Index"',nn(e,"class","svelte-1uxeem0")},m(t,n){Wt(t,e,n)},d(t){t&&Jt(e)}}}(),I=e[3]&&function(){let e;return{c(){e=Kt("span"),e.innerHTML='Alt + ESource (Nav) open / close all',nn(e,"class","svelte-1uxeem0")},m(t,n){Wt(t,e,n)},d(t){t&&Jt(e)}}}(),A=e[0].modules&&function(e){let t,n,r,o,s;return{c(){t=Kt("span"),n=Kt("i"),n.textContent="Alt + M",r=Zt("Go to "),o=Zt(e[6]),s=Zt(" page"),nn(n,"class","key svelte-1uxeem0"),nn(t,"class","svelte-1uxeem0")},m(e,i){Wt(e,t,i),Ht(t,n),Ht(t,r),Ht(t,o),Ht(t,s)},p:yt,d(e){e&&Jt(t)}}}(e),M=e[0].hierarchy&&function(){let e;return{c(){e=Kt("span"),e.innerHTML='Alt + YGo to class hierarchy page',nn(e,"class","svelte-1uxeem0")},m(t,n){Wt(t,e,n)},d(t){t&&Jt(e)}}}(),D=e[1]&&function(){let e;return{c(){e=Kt("span"),e.innerHTML='AltPress when opening / closing folders to open / close all child folders.',nn(e,"class","svelte-1uxeem0")},m(t,n){Wt(t,e,n)},d(t){t&&Jt(e)}}}();return{c(){t=Kt("div"),n=Kt("span"),n.textContent="Reflection Icon Reference:",r=Yt(),o=Kt("section");for(let e=0;eAlt + CFocus main content',c=Yt(),O&&O.c(),u=Yt(),I&&I.c(),f=Yt(),d=Kt("span"),d.innerHTML='Alt + HOpen / close help',h=Yt(),p=Kt("span"),p.innerHTML='Alt + IGo to home / index page',g=Yt(),m=Kt("span"),m.innerHTML='Alt + NSource (Nav) focus selected',y=Yt(),A&&A.c(),b=Yt(),v=Kt("span"),v.innerHTML='Alt + OOpen / focus "On This Page"',w=Yt(),x=Kt("span"),x.innerHTML='Alt + SActivate search',S=Yt(),M&&M.c(),$=Yt(),D&&D.c(),nn(n,"class","title svelte-1uxeem0"),nn(o,"class","reflection-kinds svelte-1uxeem0"),nn(i,"class","title svelte-1uxeem0"),nn(l,"class","svelte-1uxeem0"),nn(d,"class","svelte-1uxeem0"),nn(p,"class","svelte-1uxeem0"),nn(m,"class","svelte-1uxeem0"),nn(v,"class","svelte-1uxeem0"),nn(x,"class","svelte-1uxeem0"),nn(t,"class","svelte-1uxeem0")},m(e,k){Wt(e,t,k),Ht(t,n),Ht(t,r),Ht(t,o);for(let e=0;e{T&&(k||(k=Bn(t,e[5],{duration:100},!0)),k.run(1))})),T=!0)},o(n){n&&(k||(k=Bn(t,e[5],{duration:100},!1)),k.run(0)),T=!1},d(e){e&&Jt(t);for(let e=0;en(8,r=e)));const h=r?Oo:()=>{},p=o?"package":"module",g=[];for(const[e,t]of Object.entries(a))"number"==typeof t&&g.push({key:e,value:t});return g.sort(((e,t)=>e.key.localeCompare(t.key))),[i,c,u,f,d,h,p,g]}class Ro extends Xn{constructor(e){super(),Yn(this,e,Do,Mo,kt,{})}}function Fo(e){let t,n;return t=new Ro({}),{c(){Kn(t.$$.fragment)},m(e,r){Gn(t,e,r),n=!0},i(e){n||(jn(t.$$.fragment,e),n=!0)},o(e){_n(t.$$.fragment,e),n=!1},d(e){Zn(t,e)}}}function No(e){let t,n,r,o,s,i,a,l,c,u,f,d,h,p=e[5]>0&&function(e){let t,n,r,o,s,i,a,l,c;return{c(){t=Gt("svg"),n=Gt("symbol"),r=Gt("path"),o=Yt(),s=Kt("button"),s.innerHTML='',i=Yt(),a=Kt("button"),a.innerHTML='',nn(r,"d","M517.408 993.568l-0.448 0.256c-18.592-0.032-37.152-7.168-51.328-21.344L51.392 558.24c-27.904-27.904-28.32-74.624 0.224-103.2 28.768-28.768 74.784-28.672 103.2-0.224l362.272 362.272L879.36 454.816c27.904-27.904 74.624-28.32 103.2 0.224 28.768 28.768 28.672 74.784 0.224 103.2l-414.24 414.24c-13.92 13.92-32.512 20.992-51.2 21.056z m0-397.408l-0.448 0.256c-18.592-0.032-37.152-7.168-51.328-21.344l-414.24-414.24c-27.904-27.904-28.32-74.624 0.224-103.2 28.768-28.768 74.784-28.672 103.2-0.224L517.088 419.68 879.36 57.408c27.904-27.904 74.624-28.32 103.2 0.224 28.768 28.768 28.672 74.784 0.224 103.2l-414.24 414.24c-13.92 13.92-32.512 20.992-51.2 21.056z"),nn(n,"id","dmt-double-icon-arrow"),nn(n,"viewBox","0 0 1024 1024"),sn(t,"display","none"),nn(t,"class","svelte-1xrvgp2"),nn(s,"title","Open All"),nn(s,"class","svelte-1xrvgp2"),nn(a,"title","Close All"),nn(a,"class","svelte-1xrvgp2")},m(u,f){Wt(u,t,f),Ht(t,n),Ht(n,r),Wt(u,o,f),Wt(u,s,f),Wt(u,i,f),Wt(u,a,f),l||(c=[en(s,"click",e[10]),en(s,"keydown",Uo),en(s,"pointerdown",tn(e[9])),en(a,"click",e[11]),en(a,"keydown",Uo),en(a,"pointerdown",tn(e[8]))],l=!0)},p:yt,d(e){e&&(Jt(t),Jt(o),Jt(s),Jt(i),Jt(a)),l=!1,St(c)}}}(e),g=e[4].hierarchy&&function(e){let t,n,r;return{c(){t=Kt("button"),t.innerHTML='',nn(t,"title","Class Hierarchy"),nn(t,"class","svelte-1xrvgp2")},m(o,s){Wt(o,t,s),n||(r=[en(t,"click",e[12]),en(t,"keydown",Uo)],n=!0)},p:yt,d(e){e&&Jt(t),n=!1,St(r)}}}(e),m=e[4].modules&&function(e){let t,n,r,o,s,i,a;return{c(){t=Kt("button"),n=Gt("svg"),r=Gt("rect"),o=Gt("rect"),s=Gt("rect"),nn(r,"x","10"),nn(r,"y","0"),nn(r,"width","12"),nn(r,"height","6"),nn(o,"x","6"),nn(o,"y","13"),nn(o,"width","20"),nn(o,"height","6"),nn(s,"x","0"),nn(s,"y","26"),nn(s,"width","32"),nn(s,"height","6"),nn(n,"width","32"),nn(n,"height","32"),nn(n,"viewBox","0 0 32 32"),nn(n,"xmlns","http://www.w3.org/2000/svg"),nn(n,"class","svelte-1xrvgp2"),nn(t,"title",e[7]),nn(t,"class","svelte-1xrvgp2")},m(l,c){Wt(l,t,c),Ht(t,n),Ht(n,r),Ht(n,o),Ht(n,s),i||(a=[en(t,"click",e[13]),en(t,"keydown",Uo)],i=!0)},p:yt,d(e){e&&Jt(t),i=!1,St(a)}}}(e),y=e[0]&&Fo();return{c(){t=Kt("section"),p&&p.c(),n=Yt(),g&&g.c(),r=Yt(),m&&m.c(),o=Yt(),s=Kt("button"),i=Gt("svg"),a=Gt("g"),l=Gt("path"),c=Gt("path"),u=Yt(),y&&y.c(),nn(l,"d","M502.29,788.199h-47c-33.1,0-60,26.9-60,60v64.9c0,33.1,26.9,60,60,60h47c33.101,0,60-26.9,60-60v-64.9 C562.29,815,535.391,788.199,502.29,788.199z"),nn(c,"d","M170.89,285.8l86.7,10.8c27.5,3.4,53.6-12.4,63.5-38.3c12.5-32.7,29.9-58.5,52.2-77.3c31.601-26.6,70.9-40,117.9-40\r\n c48.7,0,87.5,12.8,116.3,38.3c28.8,25.6,43.1,56.2,43.1,92.1c0,25.8-8.1,49.4-24.3,70.8c-10.5,13.6-42.8,42.2-96.7,85.9\r\n c-54,43.7-89.899,83.099-107.899,118.099c-18.4,35.801-24.8,75.5-26.4,115.301c-1.399,34.1,25.8,62.5,60,62.5h49\r\n c31.2,0,57-23.9,59.8-54.9c2-22.299,5.7-39.199,11.301-50.699c9.399-19.701,33.699-45.701,72.699-78.1\r\n C723.59,477.8,772.79,428.4,795.891,392c23-36.3,34.6-74.8,34.6-115.5c0-73.5-31.3-138-94-193.4c-62.6-55.4-147-83.1-253-83.1\r\n c-100.8,0-182.1,27.3-244.1,82c-52.8,46.6-84.9,101.8-96.2,165.5C139.69,266.1,152.39,283.5,170.89,285.8z"),nn(i,"viewBox","0 0 973.1 973.1"),nn(i,"class","svelte-1xrvgp2"),nn(s,"title",e[1]),nn(s,"class","svelte-1xrvgp2"),nn(t,"class","svelte-1xrvgp2")},m(b,v){Wt(b,t,v),p&&p.m(t,null),Ht(t,n),g&&g.m(t,null),Ht(t,r),m&&m.m(t,null),Ht(t,o),Ht(t,s),Ht(s,i),Ht(i,a),Ht(a,l),Ht(a,c),Ht(t,u),y&&y.m(t,null),f=!0,d||(h=[en(s,"click",e[14]),en(s,"keydown",Uo)],d=!0)},p(e,[n]){e[5]>0&&p.p(e,n),e[4].hierarchy&&g.p(e,n),e[4].modules&&m.p(e,n),(!f||2&n)&&nn(s,"title",e[1]),e[0]?y?1&n&&jn(y,1):(y=Fo(),y.c(),jn(y,1),y.m(t,null)):y&&(Nn(),_n(y,1,1,(()=>{y=null})),Un())},i(e){f||(jn(y),f=!0)},o(e){_n(y),f=!1},d(e){e&&Jt(t),p&&p.d(),g&&g.d(),m&&m.d(),y&&y.d(),d=!1,St(h)}}}function Uo(e){e.repeat&&(e.stopPropagation(),e.preventDefault())}function jo(e,t,n){let r,o;const{baseURL:s,moduleIsPackage:i,navigation:a,pageIndex:l,stateStores:c}=bn("#dmtComponentData"),u=a.treeState.source.hasFolders,f=c.helpPanelVisible;Pt(e,f,(e=>n(0,o=e)));const d=i?"Package Index":"Module Index";return e.$$.update=()=>{1&e.$$.dirty&&n(1,r=o?"Close Help":"Open Help")},[o,r,s,a,l,u,f,d,function(t){vn.call(this,e,t)},function(t){vn.call(this,e,t)},()=>a.treeState.source.setFoldersAllOpen(!0),()=>a.treeState.source.setFoldersAllOpen(!1),()=>globalThis.location.href=`${s}${l.hierarchy}`,()=>globalThis.location.href=`${s}${l.modules}`,()=>Ft(f,o=!o,o)]}class _o extends Xn{constructor(e){super(),Yn(this,e,jo,No,kt,{})}}function Qo(e){let t,n,r,o,s;return n=new _o({}),o=new go({props:{treeState:e[0].treeState.source}}),{c(){t=Kt("section"),Kn(n.$$.fragment),r=Yt(),Kn(o.$$.fragment),nn(t,"class","source-index svelte-13h1skr")},m(e,i){Wt(e,t,i),Gn(n,t,null),Ht(t,r),Gn(o,t,null),s=!0},p:yt,i(e){s||(jn(n.$$.fragment,e),jn(o.$$.fragment,e),s=!0)},o(e){_n(n.$$.fragment,e),_n(o.$$.fragment,e),s=!1},d(e){e&&Jt(t),Zn(n),Zn(o)}}}function Bo(e){const{navigation:t}=bn("#dmtComponentData");return[t]}class zo extends Xn{constructor(e){super(),Yn(this,e,Bo,Qo,kt,{})}}function Ho(e){let t,n,r,o,s,i;return t=new ko({}),r=new vo({}),s=new zo({}),{c(){Kn(t.$$.fragment),n=Yt(),Kn(r.$$.fragment),o=Yt(),Kn(s.$$.fragment)},m(e,a){Gn(t,e,a),Wt(e,n,a),Gn(r,e,a),Wt(e,o,a),Gn(s,e,a),i=!0},p:yt,i(e){i||(jn(t.$$.fragment,e),jn(r.$$.fragment,e),jn(s.$$.fragment,e),i=!0)},o(e){_n(t.$$.fragment,e),_n(r.$$.fragment,e),_n(s.$$.fragment,e),i=!1},d(e){e&&(Jt(n),Jt(o)),Zn(t,e),Zn(r,e),Zn(s,e)}}}function qo(e){let t,n,r;return{c(){t=Kt("button"),t.innerHTML='',nn(t,"class","svelte-10arjs8")},m(o,s){Wt(o,t,s),n||(r=[en(t,"click",e[3]),en(t,"pointerdown",tn(e[2]))],n=!0)},p:yt,i:yt,o:yt,d(e){e&&Jt(t),n=!1,St(r)}}}function Vo(e,t,n){let r;const{stateStores:o}=bn("#dmtComponentData"),s=o.mainSearchVisible;Pt(e,s,(e=>n(0,r=e)));return[r,s,function(t){vn.call(this,e,t)},()=>Ft(s,r=!r,r)]}class Wo extends Xn{constructor(e){super(),Yn(this,e,Vo,qo,kt,{})}}function Jo(e,t,n){const r=e.slice();return r[14]=t[n],r}function Ko(e){let t,n,r;return{c(){t=Gt("svg"),n=Gt("use"),nn(n,"href",r=`#icon-${e[14].kind}`),nn(t,"class","tsd-kind-icon"),nn(t,"viewBox","0 0 24 24")},m(e,r){Wt(e,t,r),Ht(t,n)},p(e,t){2&t&&r!==(r=`#icon-${e[14].kind}`)&&nn(n,"href",r)},d(e){e&&Jt(t)}}}function Go(e,t){let n,r,o,s,i,a,l,c=t[14].name+"",u=t[14].kind&&Ko(t);function f(){return t[8](t[14])}return{key:e,first:null,c(){n=Kt("li"),u&&u.c(),r=Yt(),o=Kt("span"),s=Yt(),nn(o,"class","parent"),nn(n,"class",i=Rt(t[14].classes)+" svelte-5rxzhp"),nn(n,"role","menuitem"),an(n,"selected",t[14].id===t[2]),this.first=n},m(e,t){Wt(e,n,t),u&&u.m(n,null),Ht(n,r),Ht(n,o),o.innerHTML=c,Ht(n,s),a||(l=en(n,"click",f),a=!0)},p(e,s){(t=e)[14].kind?u?u.p(t,s):(u=Ko(t),u.c(),u.m(n,r)):u&&(u.d(1),u=null),2&s&&c!==(c=t[14].name+"")&&(o.innerHTML=c),2&s&&i!==(i=Rt(t[14].classes)+" svelte-5rxzhp")&&nn(n,"class",i),6&s&&an(n,"selected",t[14].id===t[2])},d(e){e&&Jt(n),u&&u.d(),a=!1,l()}}}function Zo(e){let t,n,r,o=[],s=new Map,i=zn(e[1]);const a=e=>e[14].id;for(let t=0;t{r&&(n||(n=Bn(t,e[6],{duration:100},!0)),n.run(1))})),r=!0)},o(o){n||(n=Bn(t,e[6],{duration:100},!1)),n.run(0),r=!1},d(r){r&&Jt(t);for(let e=0;en(10,r=e)));const f=l.themeAnimate;Pt(e,f,(e=>n(11,o=e)));const d=bn("#storeCurrentId");Pt(e,d,(e=>n(2,s=e)));const h=o?Oo:()=>{};function p(e){Ft(u,r=!1,r),globalThis.location.href=e}return e.$$set=e=>{"results"in e&&n(1,i=e.results),"resultsEl"in e&&n(0,a=e.resultsEl)},[a,i,s,u,f,d,h,p,e=>p(e.href),function(e){xn[e?"unshift":"push"]((()=>{a=e,n(0,a)}))}]}class Xo extends Xn{constructor(e){super(),Yn(this,e,Yo,Zo,kt,{results:1,resultsEl:0})}}const{window:es}=zt;function ts(e){let t,n,r;function o(t){e[13](t)}let s={results:e[0]};return void 0!==e[3]&&(s.resultsEl=e[3]),t=new Xo({props:s}),xn.push((()=>function(e,t,n){const r=e.$$.props[t];void 0!==r&&(e.$$.bound[r]=n,n(e.$$.ctx[r]))}(t,"resultsEl",o))),{c(){Kn(t.$$.fragment)},m(e,n){Gn(t,e,n),r=!0},p(e,r){const o={};var s;1&r&&(o.results=e[0]),!n&&8&r&&(n=!0,o.resultsEl=e[3],s=()=>n=!1,$n.push(s)),t.$set(o)},i(e){r||(jn(t.$$.fragment,e),r=!0)},o(e){_n(t.$$.fragment,e),r=!1},d(e){Zn(t,e)}}}function ns(e){let t,n,r,o,s,i,a,l=e[0].length&&ts(e);return{c(){t=Kt("input"),r=Yt(),l&&l.c(),o=Xt(),nn(t,"type","search"),nn(t,"id","dmt-search-field"),nn(t,"aria-label","Search"),nn(t,"class","svelte-tuln0o"),sn(t,"color",e[4]?"red":null),sn(t,"border-color",e[4]?"red":null)},m(n,c){Wt(n,t,c),e[11](t),on(t,e[1]),Wt(n,r,c),l&&l.m(n,c),Wt(n,o,c),s=!0,i||(a=[en(es,"pointerdown",e[10]),en(t,"input",e[12]),en(t,"keydown",e[9])],i=!0)},p(e,[n]){2&n&&t.value!==e[1]&&on(t,e[1]),16&n&&sn(t,"color",e[4]?"red":null),16&n&&sn(t,"border-color",e[4]?"red":null),e[0].length?l?(l.p(e,n),1&n&&jn(l,1)):(l=ts(e),l.c(),jn(l,1),l.m(o.parentNode,o)):l&&(Nn(),_n(l,1,1,(()=>{l=null})),Un())},i(r){s||(r&&Ln((()=>{s&&(n||(n=Bn(t,e[8],{duration:200},!0)),n.run(1))})),jn(l),s=!0)},o(r){r&&(n||(n=Bn(t,e[8],{duration:200},!1)),n.run(0)),_n(l),s=!1},d(s){s&&(Jt(t),Jt(r),Jt(o)),e[11](null),s&&n&&n.end(),l&&l.d(s),i=!1,St(a)}}}function rs(e,t,n){let r,o,s,i;const a=rr(void 0);yn("#storeCurrentId",a);const{basePath:l,showModuleIcon:c,searchOptions:u,settingStores:f,stateStores:d}=bn("#dmtComponentData"),h=d.mainSearchVisible;Pt(e,h,(e=>n(15,o=e)));const p=f.themeAnimate;Pt(e,p,(e=>n(16,i=e)));const g=u?.fullName??!1,m=u?.limit??10,y=rr("");Pt(e,y,(e=>n(1,s=e)));const b=i?Oo:()=>{},v=mt.debounce(((e,t)=>n(0,k=function(e,{basePath:t,showModuleIcon:n=!0,searchFullName:r=!1,searchLimit:o=10}={}){if(!globalThis.dmtSearchMainIndex||!globalThis.dmtSearchMainRows)return[];const s=e.trim();if(0===s.length)return[];const i=globalThis.dmtSearchMainIndex.search(`*${s}*`),a=[];for(let e=0;et.score-e.score));for(let e=Math.min(o,i.length),l=0;l${xr(c.p,s)}.${u}`);const f=n||2!==c.k?c.k:void 0;a.push({id:o,kind:f,classes:c.c??"",href:`${t}${c.u}`,name:u})}return a}(e,t))),250),w={basePath:l,showModuleIcon:c,searchFullName:g,searchLimit:m};let x,S,$=0,k=[];return mn((()=>x.focus())),e.$$.update=()=>{2&e.$$.dirty&&v(s,{...w}),1&e.$$.dirty&&k?.length&&($=-1,a.set(void 0)),3&e.$$.dirty&&n(4,r=s.length&&!k?.length)},[k,s,x,S,r,h,p,y,b,function(e){switch(e.code){case"ArrowDown":if(0===k.length)return;$0&&(a.set(k[--$].id),e.preventDefault());break;case"Enter":$>=0&&(window.location.href=k[$].href),e.preventDefault();break;case"Escape":o&&!s.length&&Ft(h,o=!1,o);break;case"Tab":if(0===k.length)return void e.preventDefault();e.shiftKey?$>0&&a.set(k[--$].id):${x=e,n(2,x)}))},function(){s=this.value,y.set(s)},function(e){S=e,n(3,S)}]}class os extends Xn{constructor(e){super(),Yn(this,e,rs,ns,kt,{})}}function ss(e){let t,n;return t=new os({}),{c(){Kn(t.$$.fragment)},m(e,r){Gn(t,e,r),n=!0},i(e){n||(jn(t.$$.fragment,e),n=!0)},o(e){_n(t.$$.fragment,e),n=!1},d(e){Zn(t,e)}}}function is(e){let t,n,r,o,s=e[0]&&ss();return r=new Wo({}),{c(){s&&s.c(),t=Yt(),n=Kt("div"),Kn(r.$$.fragment),nn(n,"class","dmt-widget dmt-toolbar-icon search no-caption svelte-wmon9h")},m(e,i){s&&s.m(e,i),Wt(e,t,i),Wt(e,n,i),Gn(r,n,null),o=!0},p(e,[n]){e[0]?s?1&n&&jn(s,1):(s=ss(),s.c(),jn(s,1),s.m(t.parentNode,t)):s&&(Nn(),_n(s,1,1,(()=>{s=null})),Un())},i(e){o||(jn(s),jn(r.$$.fragment,e),o=!0)},o(e){_n(s),_n(r.$$.fragment,e),o=!1},d(e){e&&(Jt(t),Jt(n)),s&&s.d(e),Zn(r)}}}function as(e,t,n){let r;const{stateStores:o}=bn("#dmtComponentData"),s=o.mainSearchVisible;return Pt(e,s,(e=>n(0,r=e))),[r,s]}class ls extends Xn{constructor(e){super(),Yn(this,e,as,is,kt,{})}}function cs(e){let t,n,r;return{c(){t=Kt("div"),nn(t,"class","tjs-focus-wrap svelte-kjcljd"),nn(t,"tabindex","0")},m(o,s){Wt(o,t,s),e[4](t),n||(r=en(t,"focus",e[1]),n=!0)},p:yt,i:yt,o:yt,d(o){o&&Jt(t),e[4](null),n=!1,r()}}}function us(e,t,n){let r,o,{elementRoot:s}=t,{enabled:i=!0}=t;return e.$$set=e=>{"elementRoot"in e&&n(2,s=e.elementRoot),"enabled"in e&&n(3,i=e.enabled)},e.$$.update=()=>{1&e.$$.dirty&&o&&(r=new Set([o]))},[o,function(){if(i&&fr.isFocusTarget(s)){const e=fr.getFirstFocusableElement(s,r);fr.isFocusTarget(e)&&e!==o?e.focus():s.focus()}},s,i,function(e){xn[e?"unshift":"push"]((()=>{o=e,n(0,o)}))}]}class fs extends Xn{constructor(e){super(),Yn(this,e,us,cs,kt,{elementRoot:2,enabled:3})}}function ds(e,t,n){const r=e.slice();return r[15]=t[n],r}function hs(e,t){let n,r,o,s,i,a,l;return{key:e,first:null,c(){n=Kt("a"),r=Kt("img"),i=Yt(),Et(r.src,o=t[15].iconURL)||nn(r,"src",o),nn(r,"alt",s=t[15].title),nn(r,"class","svelte-1pcybcf"),nn(n,"href",a=t[15].url),nn(n,"target","_blank"),nn(n,"title",l=t[15].title),nn(n,"class","svelte-1pcybcf"),this.first=n},m(e,t){Wt(e,n,t),Ht(n,r),Ht(n,i)},p(e,i){t=e,2&i&&!Et(r.src,o=t[15].iconURL)&&nn(r,"src",o),2&i&&s!==(s=t[15].title)&&nn(r,"alt",s),2&i&&a!==(a=t[15].url)&&nn(n,"href",a),2&i&&l!==(l=t[15].title)&&nn(n,"title",l)},d(e){e&&Jt(n)}}}function ps(e){let t,n,r,o,s,i,a,l,c=[],u=new Map,f=zn(e[1].icons);const d=e=>e[15].url;for(let t=0;t{i&&(s||(s=Bn(t,e[4],{duration:250,easing:Co},!0)),s.run(1))})),i=!0)},o(n){_n(o.$$.fragment,n),s||(s=Bn(t,e[4],{duration:250,easing:Co},!1)),s.run(0),i=!1},d(n){n&&Jt(t);for(let e=0;en(1,s=e)));const{themeAnimate:c}=a;Pt(e,c,(e=>n(11,o=e)));const u=o?Oo:()=>{},f={ignoreClasses:["tjs-focus-wrap"]},d=bn("menuVisible");let h;return Pt(e,d,(e=>n(10,r=e))),mn((()=>h.focus())),[h,s,l,c,u,d,function(e){if("Tab"===e.code)if(e.stopPropagation(),e.shiftKey){const t=fr.getFocusableElements(h,f),n=t.length>0?t[0]:void 0,r=t.length>0?t[t.length-1]:void 0;h!==globalThis.document.activeElement&&n!==globalThis.document.activeElement||(r instanceof HTMLElement&&n!==r&&r.focus(),e.preventDefault())}e.stopPropagation()},function(e){if("Escape"===e.code)Ft(d,r=!1,r),e.preventDefault();e.stopPropagation()},function(e){h?.parentElement?.contains?.(e.target)||Ft(d,r=!1,r)},function(e){xn[e?"unshift":"push"]((()=>{h=e,n(0,h)}))}]}class ms extends Xn{constructor(e){super(),Yn(this,e,gs,ps,kt,{})}}function ys(e){let t,n;return t=new ms({props:{buttonHostEl:e[0]}}),{c(){Kn(t.$$.fragment)},m(e,r){Gn(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.buttonHostEl=e[0]),t.$set(r)},i(e){n||(jn(t.$$.fragment,e),n=!0)},o(e){_n(t.$$.fragment,e),n=!1},d(e){Zn(t,e)}}}function bs(e){let t,n,r,o,s,i,a=e[1]&&ys(e);return{c(){t=Kt("section"),n=Kt("button"),n.innerHTML='',r=Yt(),a&&a.c(),nn(n,"class","svelte-1ebh1s9"),nn(t,"class","svelte-1ebh1s9")},m(l,c){Wt(l,t,c),Ht(t,n),Ht(t,r),a&&a.m(t,null),e[5](t),o=!0,s||(i=[en(n,"click",e[4]),en(n,"pointerdown",tn(e[3]))],s=!0)},p(e,[n]){e[1]?a?(a.p(e,n),2&n&&jn(a,1)):(a=ys(e),a.c(),jn(a,1),a.m(t,null)):a&&(Nn(),_n(a,1,1,(()=>{a=null})),Un())},i(e){o||(jn(a),o=!0)},o(e){_n(a),o=!1},d(n){n&&Jt(t),a&&a.d(),e[5](null),s=!1,St(i)}}}function vs(e,t,n){let r;const o=rr(!1);let s;Pt(e,o,(e=>n(1,r=e))),yn("menuVisible",o);return[s,r,o,function(t){vn.call(this,e,t)},()=>Ft(o,r=!r,r),function(e){xn[e?"unshift":"push"]((()=>{s=e,n(0,s)}))}]}class ws extends Xn{constructor(e){super(),Yn(this,e,vs,bs,kt,{})}}function xs(e,t,n){const r=e.slice();return r[3]=t[n],r}function Ss(e,t){let n,r,o,s,i,a,l;return{key:e,first:null,c(){n=Kt("a"),r=Kt("img"),i=Yt(),Et(r.src,o=t[3].iconURL)||nn(r,"src",o),nn(r,"alt",s=t[3].title),nn(r,"class","svelte-1f93d1m"),nn(n,"href",a=t[3].url),nn(n,"target","_blank"),nn(n,"title",l=t[3].title),nn(n,"class","svelte-1f93d1m"),this.first=n},m(e,t){Wt(e,n,t),Ht(n,r),Ht(n,i)},p(e,i){t=e,1&i&&!Et(r.src,o=t[3].iconURL)&&nn(r,"src",o),1&i&&s!==(s=t[3].title)&&nn(r,"alt",s),1&i&&a!==(a=t[3].url)&&nn(n,"href",a),1&i&&l!==(l=t[3].title)&&nn(n,"title",l)},d(e){e&&Jt(n)}}}function $s(e){let t,n=[],r=new Map,o=zn(e[0].icons);const s=e=>e[3].url;for(let t=0;tn(0,r=e))),[r,s]}class Ts extends Xn{constructor(e){super(),Yn(this,e,ks,$s,kt,{})}}function Es(e){let t,n,r;var o=e[1];return o&&(t=ln(o,{})),{c(){t&&Kn(t.$$.fragment),n=Xt()},m(e,o){t&&Gn(t,e,o),Wt(e,n,o),r=!0},p(e,r){if(2&r&&o!==(o=e[1])){if(t){Nn();const e=t;_n(e.$$.fragment,1,0,(()=>{Zn(e,1)})),Un()}o?(t=ln(o,{}),Kn(t.$$.fragment),jn(t.$$.fragment,1),Gn(t,n.parentNode,n)):t=null}},i(e){r||(t&&jn(t.$$.fragment,e),r=!0)},o(e){t&&_n(t.$$.fragment,e),r=!1},d(e){e&&Jt(n),t&&Zn(t,e)}}}function Cs(e){let t,n,r=e[0].icons.length&&Es(e);return{c(){r&&r.c(),t=Xt()},m(e,o){r&&r.m(e,o),Wt(e,t,o),n=!0},p(e,[n]){e[0].icons.length?r?(r.p(e,n),1&n&&jn(r,1)):(r=Es(e),r.c(),jn(r,1),r.m(t.parentNode,t)):r&&(Nn(),_n(r,1,1,(()=>{r=null})),Un())},i(e){n||(jn(r),n=!0)},o(e){_n(r),n=!1},d(e){e&&Jt(t),r&&r.d(e)}}}function Ls(e,t,n){let r,o;const{componentStores:s}=bn("#dmtComponentData"),i=bn("toolbarOffsetWidth");Pt(e,i,(e=>n(4,r=e)));const{toolbarIconLinks:a}=s;Pt(e,a,(e=>n(0,o=e)));let l=Ts;return e.$$.update=()=>{17&e.$$.dirty&&r>0&&(o.totalWidth>0&&n(1,l=o.totalWidth>r?ws:Ts),r<40&&n(1,l=void 0))},[o,l,i,a,r]}class Ps extends Xn{constructor(e){super(),Yn(this,e,Ls,Cs,kt,{})}}function Os(e){let t,n,r,o,s,i;return n=new Ps({}),{c(){t=Kt("section"),Kn(n.$$.fragment),nn(t,"class","svelte-j9157o")},m(a,l){Wt(a,t,l),Gn(n,t,null),o=!0,s||(i=Nt(r=gt.call(null,t,e[2])),s=!0)},p(e,[t]){r&&$t(r.update)&&1&t&&r.update.call(null,e[2])},i(e){o||(jn(n.$$.fragment,e),o=!0)},o(e){_n(n.$$.fragment,e),o=!1},d(e){e&&Jt(t),Zn(n),s=!1,i()}}}function Is(e,t,n){let r;const o=rr(0);Pt(e,o,(e=>n(0,r=e))),yn("toolbarOffsetWidth",o);return[r,o,e=>Ft(o,r=e,r)]}globalThis.dmtInflateAndUnpack=function(e,{inflateOptions:t}={}){return Z(Je(e,t))},globalThis.dmtInflateAndUnpackB64=function(e,{inflateOptions:t}={}){return Z(Je(ot(st(e)),t))};const As=new class{#V;#W;#J;#K;#G;#Z;#Y={local:new lr,session:new cr};constructor(e){this.#W="string"==typeof globalThis.dmtComponentDataBCMP?globalThis.dmtInflateAndUnpackB64(globalThis.dmtComponentDataBCMP):{};const t=e.replace(/assets\/dmt\/dmt-components.js/,""),n=e.replace(/dmt-components.js/,""),r=globalThis.location.href.replace(t,""),o=(r.match(/\//)??[]).length,s="../".repeat(o);this.#J={basePath:s,baseURL:t,dmtURL:n,initialPathURL:r},this.#K=new mr(this,this.#W.navigationIndex),this.#V=Object.freeze({toolbarIconLinks:Tr(this,this.#W)});const i="boolean"!=typeof this.#W?.settingOptions?.animation||this.#W?.settingOptions?.animation;this.#G=Object.freeze({themeAnimate:i?this.#Y.local.getStore(Er,!fr.prefersReducedMotion):nr(!1)}),this.#Z=Object.freeze({helpPanelVisible:rr(!1),mainSearchVisible:rr(!1),swapHelpPanelVisible:()=>this.#Z.helpPanelVisible.set(!Lt(this.#Z.helpPanelVisible))})}get basePath(){return this.#J.basePath}get baseURL(){return this.#J.baseURL}get componentStores(){return this.#V}get dmtLocalStorage(){return this.#Y.local}get dmtSessionStorage(){return this.#Y.session}get dmtURL(){return this.#J.dmtURL}get initialPathURL(){return this.#J.initialPathURL}get navigation(){return this.#K}get settingStores(){return this.#G}get stateStores(){return this.#Z}get iconLinks(){return this.#W.iconLinks}get pageIndex(){return this.#W.pageIndex??{}}get moduleIsPackage(){return this.#W.moduleIsPackage??!1}get showModuleIcon(){return this.#W.showModuleIcon??!0}get searchOptions(){return this.#W.searchOptions}get ReflectionKind(){return this.#W.ReflectionKind}get sidebarLinks(){return this.#W?.sidebarLinks??{}}get storagePrepend(){return this.#W.storagePrepend??"docs-unnamed"}}(import.meta.url),Ms=new Map([["#dmtComponentData",As]]),Ds=new class extends Xn{constructor(e){super(),Yn(this,e,Ir,Or,kt,{})}}({target:document.querySelector(".tsd-navigation.settings .tsd-accordion-details"),context:Ms}),Rs=document.querySelector("nav#tsd-sidebar-links");Rs&&Rs.remove();const Fs=document.querySelector("nav.tsd-navigation");if(Fs&&Fs.firstChild)for(;Fs.firstChild;)Fs.removeChild(Fs.firstChild);const Ns=new class extends Xn{constructor(e){super(),Yn(this,e,null,Ho,kt,{})}}({target:document.querySelector("nav.tsd-navigation"),context:Ms}),Us=new class extends Xn{constructor(e){super(),Yn(this,e,Is,Os,kt,{})}}({target:document.querySelector("#dmt-toolbar"),context:Ms});globalThis.dmtComponents={dmtSettings:Ds,navigation:Ns,toolbar:Us},As.searchOptions&&(!async function(){const e=import.meta.url.replace(/\/dmt-components.js/,""),t=await fetch(`${e}/dmt-search.cmp`);if(!t.ok)return console.warn("[typedoc-theme-default-modern] Could not load search index."),!1;try{const e=await t.arrayBuffer(),n=globalThis.dmtInflateAndUnpack(new Uint8Array(e));globalThis.dmtSearchMainRows=n.rows,globalThis.dmtSearchMainIndex=wr.Index.load(n.index)}catch(e){return console.warn("[typedoc-theme-default-modern] Could not load search index."),console.error(e),!1}}(),globalThis.dmtComponents.searchMain=new ls({target:document.querySelector("#dmt-search-main"),context:Ms})),function(e){const{baseURL:t,dmtSessionStorage:n,pageIndex:r,navigation:o,stateStores:s,storagePrepend:i}=e;globalThis.document.addEventListener("keydown",(e=>{if(e.altKey&&!e.repeat)switch(e.code){case"KeyC":{const t=document.querySelector(".col-content");if(t){const e=fr.getFirstFocusableElement(t);e&&e.focus({focusVisible:!0})}e.preventDefault();break}case"KeyD":{const t=`${i}-document-index`;n.hasStore(t)&&(n.getStore(t).set(!0),setTimeout((()=>{const e=globalThis.document.querySelector("section.dmt-document-index");if(e){const t=e.querySelector("a");t&&t.focus({focusVisible:!0})}}),0)),e.preventDefault();break}case"KeyE":o.treeState.source.swapFoldersAllOpen(),e.preventDefault();break;case"KeyH":s.swapHelpPanelVisible(),e.preventDefault();break;case"KeyI":globalThis.location.href=`${t}index.html`,e.preventDefault();break;case"KeyM":"string"==typeof r.modules&&(globalThis.location.href=`${t}${r.modules}`),e.preventDefault();break;case"KeyN":o.treeState.ensureCurrentPath({focus:!0}),e.preventDefault();break;case"KeyO":ur.openOnThisPage(),e.preventDefault();break;case"KeyS":s.mainSearchVisible.set(!0),e.preventDefault();break;case"KeyY":"string"==typeof r.hierarchy&&(globalThis.location.href=`${t}${r.hierarchy}`),e.preventDefault()}}))}(As),function(){const e=globalThis.document.querySelector("div.dmt-navigation-content"),t=globalThis.document.querySelector("details.tsd-page-navigation .tsd-accordion-details"),n=globalThis.document.querySelector("div.container.container-main"),r=globalThis.document.querySelector("div.col-content"),o=new Set([n,e,t,null]);e&&e.addEventListener("pointerenter",(t=>{t.preventDefault(),t.stopImmediatePropagation();const n=globalThis.document.querySelector(":focus-visible");globalThis.document.activeElement!==e&&o.has(n)&&globalThis.requestAnimationFrame((()=>e.focus({preventScroll:!0})))})),t&&t.addEventListener("pointerenter",(e=>{e.preventDefault(),e.stopImmediatePropagation();const n=globalThis.document.querySelector(":focus-visible");globalThis.document.activeElement!==t&&o.has(n)&&globalThis.requestAnimationFrame((()=>t.focus({preventScroll:!0})))})),r&&r.addEventListener("pointerenter",(e=>{e.preventDefault(),e.stopImmediatePropagation();const t=globalThis.document.querySelector(":focus-visible");globalThis.document.activeElement!==n&&o.has(t)&&globalThis.requestAnimationFrame((()=>n.focus({preventScroll:!0})))}))}(),ur.initialize(As),globalThis.requestAnimationFrame((()=>{const e=document.createElement("style");e.innerHTML="body { visibility: visible; }",document.head.appendChild(e);const t=document.querySelector("body main footer");t&&document.documentElement.style.setProperty("--dmt-footer-height",`${t.offsetHeight}px`)})); diff --git a/docs/v2.0.2/assets/dmt/dmt-search.cmp b/docs/v2.0.2/assets/dmt/dmt-search.cmp new file mode 100644 index 0000000000000000000000000000000000000000..8a0c6e8bdc4afd305ce1032cbf6d0e69f132c454 GIT binary patch literal 16759 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:visible}summary.tsd-accordion-summary:focus-visible{outline:revert}.tsd-panel.tsd-member .tsd-anchor-link .tsd-anchor-icon{margin-right:auto}.site-menu:focus-visible,details.tsd-page-navigation .tsd-accordion-details:focus-visible,div.container.container-main{outline:2px solid #0000}header.tsd-page-toolbar{flex-shrink:0;height:var(--dmt-header-height);left:unset;position:unset;top:unset}.container{max-width:unset}.container.container-main{box-sizing:border-box;flex-grow:1;overflow-x:hidden;width:100%}.col-content{contain:layout style paint;display:flex;flex-direction:column;height:fit-content;margin-bottom:1rem;margin-top:.75rem;max-width:1300px;overflow:hidden}.col-content .tsd-panel,.col-content .tsd-panel-group{margin-bottom:0}.col-content details[open].tsd-hierarchy>.tsd-accordion-summary,.col-content details[open].tsd-index-content>.tsd-accordion-summary{border-bottom:var(--dmt-container-border);padding-bottom:var(--dmt-container-padding)}.col-content details.tsd-panel-group summary{background:linear-gradient(to right,var(--dmt-container-background),var(--color-background));border-bottom:var(--dmt-container-border);border-radius:var(--dmt-container-border-radius) 0 0 var(--dmt-container-border-radius);padding:.25rem}.site-menu{contain:layout style paint;margin-top:0;max-height:unset;padding-left:.1rem;top:0}.site-menu .tsd-accordion-summary{align-items:center;display:flex}.site-menu .tsd-nested-navigation{margin-left:2.5rem}.page-menu{contain:layout style paint;display:flex;flex-direction:column;gap:1rem;max-height:var(--dmt-page-menu-max-height);overflow:revert;padding:.75rem .5rem .5rem;position:sticky;top:0}@media (min-width:770px) and (max-width:1399px){.col-sidebar{max-height:unset;padding-top:0;top:0}}details.tsd-accordion{will-change:height}details.tsd-accordion[open]:not(details[data-closing=true])>summary svg{transform:rotate(0deg)}details.tsd-accordion:not([open])>summary svg{transform:rotate(-90deg)}.dmt-summary-svg{transition:transform .1s}.container-main{background:var(--color-background)}:focus-visible{outline:var(--dmt-outline-focus-visible)}details .tsd-accordion-summary:focus-visible{outline:none}details .tsd-accordion-summary:focus-visible svg{border-radius:.25rem;outline:var(--dmt-outline-focus-visible)}details .tsd-accordion-summary h3,details .tsd-accordion-summary h5{align-items:center;display:flex;gap:.25rem}nav.tsd-navigation{display:flex;flex-direction:column;gap:.75rem}nav.tsd-navigation>section:first-child{margin-top:.75rem}nav.tsd-navigation>section:first-child.source-index{margin-top:0}.tsd-navigation a,.tsd-navigation summary>span,.tsd-page-navigation a{padding:.25rem}a{border-radius:.25rem}@container dmt-toolbar (min-width: 0){.title{font-size:clamp(.75rem,2.5cqi,1rem)}}@container col-content (min-width: 0){.tsd-page-title h1{font-size:clamp(1rem,3.5cqi,2rem)}.tsd-kind-icon~span,h5{font-size:clamp(.8rem,2.5cqi,1rem)}}@container site-menu (min-width: 0){.tsd-navigation span{font-size:clamp(.8rem,5cqi,1rem)}}.tsd-page-toolbar{box-shadow:var(--dmt-header-box-shadow)}.tsd-page-toolbar .tsd-toolbar-contents{padding:0 .25rem 0 1rem}.tsd-page-toolbar .tsd-toolbar-icon{padding:12px}.tsd-page-toolbar .tsd-toolbar-icon.menu{height:30px;margin:6px;padding:6px;width:28px}#dmt-toolbar{align-items:center;display:flex}#dmt-toolbar a.title{height:32px;line-height:32px;padding-right:.5rem}.container{margin:0 auto;padding:0 1rem}.container .tsd-signature{border-radius:.5rem}.container .tsd-signatures .tsd-signature{border-radius:0}.container .tsd-panel-group.tsd-index-group details,.container .tsd-panel-group.tsd-index-group details .tsd-accordion-summary .tsd-index-heading{margin:0}.container .tsd-panel-group.tsd-index-group details .tsd-accordion-details .tsd-index-heading{margin:0 0 15px}.container .tsd-panel-group.tsd-index-group details .tsd-accordion-details section:not(:last-child){margin-bottom:15px}.container .tsd-panel-group.tsd-index-group .tsd-index-list{overflow:auto}.container .tsd-panel-group.tsd-index-group .tsd-index-list.col1-grid{grid-template-columns:repeat(1,1fr)}.container .tsd-panel-group.tsd-hierarchy .tsd-accordion-summary a,.container .tsd-panel-group.tsd-index-group .tsd-accordion-summary a{width:unset}.container .tsd-panel-group.tsd-hierarchy details,.container .tsd-panel-group.tsd-index-group details{background:var(--dmt-container-background);border:var(--dmt-container-border);border-radius:var(--dmt-container-border-radius);box-shadow:var(--dmt-container-box-shadow);padding:var(--dmt-container-padding)}.container .tsd-panel-group.tsd-hierarchy .tsd-accordion-details{padding-top:.75rem}.container .tsd-panel-group.tsd-hierarchy .tsd-accordion-details ul.tsd-hierarchy{padding-left:1.25rem}.container section.tsd-index-section .tsd-index-list{padding:var(--dmt-container-padding)}.container section.tsd-index-section .tsd-index-list,.container section.tsd-panel.tsd-member{background:var(--dmt-container-background);border:var(--dmt-container-border);border-radius:var(--dmt-container-border-radius);box-shadow:var(--dmt-container-box-shadow)}.container section.tsd-panel.tsd-member{margin-bottom:2rem;padding:var(--dmt-container-padding-member)}.container .tsd-returns-title p,.container li.tsd-description,.container ul.tsd-signatures{margin-bottom:0}.container ul.tsd-parameter-list{background:var(--dmt-container-background);border:var(--dmt-container-border);border-radius:var(--dmt-container-border-radius);box-shadow:var(--dmt-container-box-shadow);padding:var(--dmt-container-padding-member);padding-left:1.5rem}.container ul.tsd-parameter-list h5:first-child,.container ul.tsd-parameter-list h5:last-child{margin-top:0}.container ul.tsd-parameter-list ul.tsd-parameters{background:unset;border:unset;border-radius:unset;box-shadow:unset}.container ul.tsd-parameters{background:var(--dmt-container-background);border:var(--dmt-container-border);border-radius:var(--dmt-container-border-radius);box-shadow:var(--dmt-container-box-shadow);display:flex;flex-direction:column;gap:1rem;margin-bottom:0;padding:var(--dmt-container-padding-member);padding-left:1.5rem}.container ul.tsd-parameters h5:first-child{margin-top:0}.container ul.tsd-parameters h5:last-child{margin-bottom:0}.container ul.tsd-parameters.no-children{background:unset;border:unset;border-radius:unset;box-shadow:unset;margin:0;padding:0}.container .tsd-breadcrumb li:last-child:after{content:""}@media (min-width:2190px){.page-menu{max-width:350px}.container-main{grid-template-columns:minmax(0,520px) minmax(0,1300px) 1fr;padding-left:calc(50% - 1095px)}}@media (width < 1200px){.tsd-accordion.tsd-page-navigation{display:none}.page-menu{margin-bottom:.75rem;padding-right:1rem;position:static}.site-menu{max-height:unset}}@media (max-width:769px){.from-has-menu .col-sidebar{display:flex;flex-direction:column}.from-has-menu .col-sidebar,.has-menu .col-sidebar{gap:.5rem;padding:0 0 0 1rem}}.page-menu .tsd-navigation.settings{background:var(--dmt-container-background);border:var(--dmt-container-border);border-radius:var(--dmt-container-border-radius);box-shadow:var(--dmt-container-box-shadow-floating);margin:0;padding:var(--dmt-container-padding)}.page-menu .tsd-navigation.settings .tsd-accordion-summary{width:inherit}.page-menu .tsd-navigation.settings .tsd-filter-visibility h4{padding-top:.25rem}.page-menu .tsd-navigation.settings input[type=checkbox]:focus-visible+svg{outline:var(--dmt-outline-focus-visible)}.page-menu details.tsd-accordion.tsd-page-navigation{background:var(--dmt-container-background);border:var(--dmt-container-border);border-radius:var(--dmt-container-border-radius);box-shadow:var(--dmt-container-box-shadow-floating);overflow:hidden;padding:var(--dmt-container-padding)}.page-menu details.tsd-accordion.tsd-page-navigation .tsd-accordion-details{height:calc(100% - var(--dmt-header-height));overflow:auto}.page-menu details.tsd-accordion.tsd-page-navigation .tsd-accordion-details ul{padding:.25rem 0 .25rem .5rem}.page-menu details[open].tsd-accordion.tsd-page-navigation{padding:var(--dmt-container-padding) 0 var(--dmt-container-padding) var(--dmt-container-padding)}.page-menu details[open].tsd-accordion.tsd-page-navigation>.tsd-accordion-summary{width:calc(100% - 1rem)}.page-menu details[open].tsd-accordion.tsd-page-navigation .tsd-accordion-details{padding-top:.75rem}.page-menu .tsd-navigation.settings details[open]>.tsd-accordion-summary,.page-menu details[open].tsd-page-navigation>.tsd-accordion-summary{border-bottom:var(--dmt-container-border);padding-bottom:var(--dmt-container-padding)}.page-menu .tsd-page-navigation details.tsd-page-navigation-section{margin:0 var(--dmt-container-padding) 0 0}.page-menu .tsd-page-navigation details.tsd-page-navigation-section:not(:last-child){margin-bottom:.25rem}.page-menu .tsd-page-navigation details.tsd-page-navigation-section summary{align-items:center;background:linear-gradient(to right,var(--dmt-container-background),#0000);border-bottom:var(--dmt-container-border);border-radius:var(--dmt-container-border-radius) 0 0 var(--dmt-container-border-radius);display:flex;gap:.25rem} \ No newline at end of file diff --git a/docs/v2.0.2/assets/dmt/icons/service/discord.png b/docs/v2.0.2/assets/dmt/icons/service/discord.png new file mode 100644 index 0000000000000000000000000000000000000000..74ceb184ac23989d68ca248b025c240df2b3fea1 GIT binary patch literal 6041 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 literal 0 HcmV?d00001 diff --git a/docs/v2.0.2/assets/dmt/icons/service/github.png b/docs/v2.0.2/assets/dmt/icons/service/github.png new file mode 100644 index 0000000000000000000000000000000000000000..7c8a23eea0a60b8a5beb99cc345e6c1d69905b9c GIT binary patch literal 6395 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 YGtx6`f+Plfg@L#_c{rX~5w_)j0G^rpt^fc4 literal 0 HcmV?d00001 diff --git a/docs/v2.0.2/assets/dmt/icons/service/npm.png b/docs/v2.0.2/assets/dmt/icons/service/npm.png new file mode 100644 index 0000000000000000000000000000000000000000..5b031f3106a6683359cc5484786cc5d19641f66f GIT binary patch literal 4545 zcmeHKdsGzH8DAhEZqPz&)cPC;JSOPuJoY(L7El&t#f1gIf+r}mGk0JLJG1T#?4nJM zE9MvsK0=yDts+NE(k3U?c$7Sh4`QgMsjByACQa1@t-Uh~2&Xxxhtv8W zvu9r4{e8dteZTL!_v|!z3l@ztPB9t`hH>sZS24Vo!81EC0bW~^_r48pU8_sV)M7S- z1cI_4)&fLr2ml0xMZsVQf9m%ZjX#DY-o7;9C$X{VGmh`6*f;fyn>n2?R9ydI%%4*W zV>X}ai{BEnIJV{GXO~^#9=%%Z zU$e&6(loxHdEzg-vX1r=0efT~YOh&xn)um{TT|Yh__bVk|F!sQYs+W3lODNjFvP4E zb8@`yoScD#U>e&WdD5A8EPGnl%B9bzKd_-bdDRK;jxTnhZ$6zqv2%eqcmL(e;OCPp zVqWpX)8ao_*EsWu(lL{&DyBaiKmS_XJ0Ews|CGD<*2?1Ql-|x&Sr;#?Ie#c_z3}vJ zgu*1R^}W0~JwDTs^n?{DuB-)#l?A>RTK_Ol=%x?G4m+WIpNm zoq7zth_s&FufE^+4!i7`2|Y^B*hW*{trK-;|6+fC_J;V@AKUhQ-q1t5T6Wp@#uMdd zy-hDRrEYww=fom_qE=7taDvQOE+_}C~fchwBqDh?VF7+?M;5ZG_}jM z?RxKwf2ADXi9Wkzk8v_R(c5Tz_p8P`omZukJs<7<)r97_LwLt+GU2}Z$g*P{N4EG6 z*2Ui38JYV^?{BS( zUW!Dluf29XvtZ`hd36VV9ye`TZ13#fuecEotqjR`TE!bT;tqcq?CNVTY%>_fmx{2# z$~;RLPWGEvUiJY~*dKtMXE0=Bg##>C160HZszk|&UOjjOMMU0-{?zIrJb@fgE#|Eb zf~BhqO1RZE9L=LynZ}GT0}1>4Jsv2N$JQNC1C7 z7Kh!6u{MFmd=y1kIRTJ1iqNTej#(%N{VXh}=x3_{9+0Z^0ZnjbzSr$UDN_`xTfDWb zDnJLg21JRML&{xniRcGQRaVoJv=bC*wGp)0W_Qpw>Mm#*2r94_HCB=^nJxN=Ru~4R z1EpoPPK5-z9cIJi1Ocnc!4g@nb)s4bh~_ys?12l4XI0k4ssNG_l$jwZhM-GGGebBS z(u~0?F$6F3qR{Z)(Ax4rGNMJ#6BRgrgKmnhsik05^ey^YE9#30LG)$8uv|0+g{=p? z9w+3A4sq42R0ZJv(ciEGcJX_ffi#np%}3cW-t6Eoi;adABn1j1Sel@04wCmd9K+ca zSx`f45X`TFIzp{rgX&r#5B8Vpq2c&YHPGq+CBsO_3nil%%FbA66us5BGmhufHP((#ycL4RN5D8TfycI|>-GgF;!NHn=mx zjUFG|>HGE4_SAcL^tahPoB>jgPBJ2WN97uoYeWi+2t3+dqjHT%ff0d6yX*fZm+|hm zB9P!8yb$~njBLr4;8$dVFMpBCa7X*K9eVL8Xc-&GD_0DL`+uaJF@|m1Cqv^H)$Pe0 zb17-;1Bv54{M-I4Xli!5=9h#&{qhWHT#Fd8i#D0gosZcSX9=BOJ~gDfG z?meoX|JZr-z+0Cd{qE&?`%)J`@awZ*{cHZ*e-_k?InuV__05Tq_=S}kb=$Z(?bl}K UH=X(TIqlV*Tj1KWpmN>60Rx^=(f|Me literal 0 HcmV?d00001 diff --git a/docs/v2.0.2/assets/highlight.css b/docs/v2.0.2/assets/highlight.css new file mode 100644 index 00000000..2738a7ea --- /dev/null +++ b/docs/v2.0.2/assets/highlight.css @@ -0,0 +1,141 @@ +:root { + --light-hl-0: #795E26; + --dark-hl-0: #DCDCAA; + --light-hl-1: #000000; + --dark-hl-1: #D4D4D4; + --light-hl-2: #A31515; + --dark-hl-2: #CE9178; + --light-hl-3: #008000; + --dark-hl-3: #6A9955; + --light-hl-4: #AF00DB; + --dark-hl-4: #C586C0; + --light-hl-5: #800000; + --dark-hl-5: #808080; + --light-hl-6: #800000; + --dark-hl-6: #569CD6; + --light-hl-7: #000000FF; + --dark-hl-7: #D4D4D4; + --light-hl-8: #E50000; + --dark-hl-8: #9CDCFE; + --light-hl-9: #0000FF; + --dark-hl-9: #CE9178; + --light-hl-10: #001080; + --dark-hl-10: #9CDCFE; + --light-hl-11: #0000FF; + --dark-hl-11: #569CD6; + --light-hl-12: #0070C1; + --dark-hl-12: #4FC1FF; + --light-hl-13: #098658; + --dark-hl-13: #B5CEA8; + --light-hl-14: #000000; + --dark-hl-14: #C8C8C8; + --light-hl-15: #0451A5; + --dark-hl-15: #9CDCFE; + --light-hl-16: #267F99; + --dark-hl-16: #4EC9B0; + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); + --hl-12: var(--light-hl-12); + --hl-13: var(--light-hl-13); + --hl-14: var(--light-hl-14); + --hl-15: var(--light-hl-15); + --hl-16: var(--light-hl-16); + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); + --hl-12: var(--dark-hl-12); + --hl-13: var(--dark-hl-13); + --hl-14: var(--dark-hl-14); + --hl-15: var(--dark-hl-15); + --hl-16: var(--dark-hl-16); + --code-background: var(--dark-code-background); +} } + +:root[data-theme='light'] { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --hl-10: var(--light-hl-10); + --hl-11: var(--light-hl-11); + --hl-12: var(--light-hl-12); + --hl-13: var(--light-hl-13); + --hl-14: var(--light-hl-14); + --hl-15: var(--light-hl-15); + --hl-16: var(--light-hl-16); + --code-background: var(--light-code-background); +} + +:root[data-theme='dark'] { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --hl-10: var(--dark-hl-10); + --hl-11: var(--dark-hl-11); + --hl-12: var(--dark-hl-12); + --hl-13: var(--dark-hl-13); + --hl-14: var(--dark-hl-14); + --hl-15: var(--dark-hl-15); + --hl-16: var(--dark-hl-16); + --code-background: var(--dark-code-background); +} + +.hl-0 { color: var(--hl-0); } +.hl-1 { color: var(--hl-1); } +.hl-2 { color: var(--hl-2); } +.hl-3 { color: var(--hl-3); } +.hl-4 { color: var(--hl-4); } +.hl-5 { color: var(--hl-5); } +.hl-6 { color: var(--hl-6); } +.hl-7 { color: var(--hl-7); } +.hl-8 { color: var(--hl-8); } +.hl-9 { color: var(--hl-9); } +.hl-10 { color: var(--hl-10); } +.hl-11 { color: var(--hl-11); } +.hl-12 { color: var(--hl-12); } +.hl-13 { color: var(--hl-13); } +.hl-14 { color: var(--hl-14); } +.hl-15 { color: var(--hl-15); } +.hl-16 { color: var(--hl-16); } +pre, code { background: var(--code-background); } diff --git a/docs/v2.0.2/assets/icons.js b/docs/v2.0.2/assets/icons.js new file mode 100644 index 00000000..3dfbd322 --- /dev/null +++ b/docs/v2.0.2/assets/icons.js @@ -0,0 +1,18 @@ +(function() { + addIcons(); + function addIcons() { + if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons); + const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg")); + svg.innerHTML = `MMNEPVFCICPMFPCPTTAAATR`; + svg.style.display = "none"; + if (location.protocol === "file:") updateUseElements(); + } + + function updateUseElements() { + document.querySelectorAll("use").forEach(el => { + if (el.getAttribute("href").includes("#icon-")) { + el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#")); + } + }); + } +})() \ No newline at end of file diff --git a/docs/v2.0.2/assets/icons.svg b/docs/v2.0.2/assets/icons.svg new file mode 100644 index 00000000..a19417dc --- /dev/null +++ b/docs/v2.0.2/assets/icons.svg @@ -0,0 +1 @@ +MMNEPVFCICPMFPCPTTAAATR \ No newline at end of file diff --git a/docs/v2.0.2/assets/main.js b/docs/v2.0.2/assets/main.js new file mode 100644 index 00000000..58c5cbb5 --- /dev/null +++ b/docs/v2.0.2/assets/main.js @@ -0,0 +1,60 @@ +"use strict"; +window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings."}; +"use strict";(()=>{var Pe=Object.create;var ie=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _e(e))!Me.call(t,i)&&i!==n&&ie(t,i,{get:()=>e[i],enumerable:!(r=Oe(e,i))||r.enumerable});return t};var Ae=(t,e,n)=>(n=t!=null?Pe(Re(t)):{},De(e||!t||!t.__esModule?ie(n,"default",{value:t,enumerable:!0}):n,t));var ue=Fe((ae,le)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ae=="object"?le.exports=n():e.lunr=n()}(this,function(){return t})})()});var se=[];function G(t,e){se.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){se.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!Ve(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function Ve(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var oe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var pe=Ae(ue());async function ce(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=pe.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{ce(e,t)}),ce(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{te(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),He(t,i,r,e)}function He(t,e,n,r){n.addEventListener("input",oe(()=>{Ne(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Be(e,t):i.key=="ArrowUp"?(de(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(de(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),te(t))})}function te(t){t.classList.remove("has-focus")}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=he(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${he(l.parent,i)}.${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function de(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Be(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),te(e)}}function he(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ee(t.substring(s,o)),`${ee(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ee(t.substring(s))),i.join("")}var je={"&":"&","<":"<",">":">","'":"'",'"':"""};function ee(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",ye="mousemove",N="mouseup",J={x:0,y:0},me=!1,ne=!1,qe=!1,D=!1,ve=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(ve?"is-mobile":"not-mobile");ve&&"ontouchstart"in document.documentElement&&(qe=!0,F="touchstart",ye="touchmove",N="touchend");document.addEventListener(F,t=>{ne=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(ye,t=>{if(ne&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(N,()=>{ne=!1});document.addEventListener("click",t=>{me&&(t.preventDefault(),t.stopImmediatePropagation(),me=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var re;try{re=localStorage}catch{re={getItem(){return null},setItem(){}}}var Q=re;var ge=document.head.appendChild(document.createElement("style"));ge.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ge.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else{let r=e.appendChild(document.createElement("span"));r.innerHTML='',r.appendChild(document.createElement("span")).textContent=t.text}}G(X,"a[data-toggle]");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var $e=new U;Object.defineProperty(window,"app",{value:$e});})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/docs/v2.0.2/assets/style.css b/docs/v2.0.2/assets/style.css new file mode 100644 index 00000000..178bfb02 --- /dev/null +++ b/docs/v2.0.2/assets/style.css @@ -0,0 +1,1493 @@ +:root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + + --light-color-icon-background: var(--light-color-background); + --light-color-icon-text: var(--light-color-text); + + --light-color-comment-tag-text: var(--light-color-text); + --light-color-comment-tag: var(--light-color-background); + + --light-color-link: #1f70c2; + --light-color-focus-outline: #3584e4; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: #4d7fff; + --light-color-ts-property: #ff984d; + --light-color-ts-method: #ff4db8; + --light-color-ts-reference: #ff4d82; + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var(--light-color-ts-constructor); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: #ff4d4d; + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + --light-color-document: #000000; + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-icon-text: var(--dark-color-text); + + --dark-color-comment-tag-text: var(--dark-color-text); + --dark-color-comment-tag: var(--dark-color-background); + + --dark-color-link: #00aff4; + --dark-color-focus-outline: #4c97f2; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: #4d7fff; + --dark-color-ts-property: #ff984d; + --dark-color-ts-method: #ff4db8; + --dark-color-ts-reference: #ff4d82; + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: #ff4d4d; + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + --dark-color-document: #ffffff; + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; +} + +@media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + + --color-icon-background: var(--light-color-icon-background); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + + --color-icon-background: var(--dark-color-icon-background); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } +} + +html { + color-scheme: var(--color-scheme); +} + +body { + margin: 0; +} + +:root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-icon-text: var(--light-color-icon-text); + + --color-comment-tag-text: var(--light-color-text); + --color-comment-tag: var(--light-color-background); + + --color-link: var(--light-color-link); + --color-focus-outline: var(--light-color-focus-outline); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-project: var(--light-color-ts-project); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-reference: var(--light-color-ts-reference); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + --color-document: var(--light-color-document); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); +} + +:root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-icon-text: var(--dark-color-icon-text); + + --color-comment-tag-text: var(--dark-color-text); + --color-comment-tag: var(--dark-color-background); + + --color-link: var(--dark-color-link); + --color-focus-outline: var(--dark-color-focus-outline); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-project: var(--dark-color-ts-project); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-reference: var(--dark-color-ts-reference); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + --color-document: var(--dark-color-document); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); +} + +*:focus-visible, +.tsd-accordion-summary:focus-visible svg { + outline: 2px solid var(--color-focus-outline); +} + +.always-visible, +.always-visible .tsd-signatures { + display: inherit !important; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +h1 { + font-size: 1.875rem; + margin: 0.67rem 0; +} + +h2 { + font-size: 1.5rem; + margin: 0.83rem 0; +} + +h3 { + font-size: 1.25rem; + margin: 1rem 0; +} + +h4 { + font-size: 1.05rem; + margin: 1.33rem 0; +} + +h5 { + font-size: 1rem; + margin: 1.5rem 0; +} + +h6 { + font-size: 0.875rem; + margin: 2.33rem 0; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1700px; + padding: 0 2rem; +} + +/* Footer */ +footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} +footer > p { + margin: 0 1em; +} + +.container-main { + margin: 0 auto; + /* toolbar, footer, margin */ + min-height: calc(100vh - 41px - 56px - 4rem); +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } +} +@keyframes fade-in-delayed { + 0% { + opacity: 0; + } + 33% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fade-out-delayed { + 0% { + opacity: 1; + visibility: visible; + } + 66% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } +} +@keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } +} +body { + background: var(--color-background); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); +} + +a { + color: var(--color-link); + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; +} +a.tsd-anchor-link { + color: var(--color-text); +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; +} + +pre { + position: relative; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); +} +pre code { + padding: 0; + font-size: 100%; +} +pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; +} +pre:hover > button, +pre > button.visible { + opacity: 1; +} + +blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; +} + +.tsd-typography { + line-height: 1.333em; +} +.tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h4, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} +.tsd-typography table { + border-collapse: collapse; + border: none; +} +.tsd-typography td, +.tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); +} +.tsd-typography thead, +.tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); +} + +.tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); +} +.tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; +} +.tsd-breadcrumb a:hover { + text-decoration: underline; +} +.tsd-breadcrumb li { + display: inline; +} +.tsd-breadcrumb li:after { + content: " / "; +} + +.tsd-comment-tags { + display: flex; + flex-direction: column; +} +dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; +} +dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; +} +dl.tsd-comment-tag-group dd { + margin: 0; +} +code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; +} +h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; +} + +dl.tsd-comment-tag-group dd:before, +dl.tsd-comment-tag-group dd:after { + content: " "; +} +dl.tsd-comment-tag-group dd pre, +dl.tsd-comment-tag-group dd:after { + clear: both; +} +dl.tsd-comment-tag-group p { + margin: 0; +} + +.tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; +} +.tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; +} + +.tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; +} +.tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; +} +.tsd-filter-input { + display: flex; + width: -moz-fit-content; + width: fit-content; + align-items: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; +} +.tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; +} +.tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; +} +.tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; +} +.tsd-filter-input input[type="checkbox"]:focus-visible + svg { + outline: 2px solid var(--color-focus-outline); +} +.tsd-checkbox-background { + fill: var(--color-accent); +} +input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); +} + +.settings-label { + font-weight: bold; + text-transform: uppercase; + display: inline-block; +} + +.tsd-filter-visibility .settings-label { + margin: 0.75rem 0 0.5rem 0; +} + +.tsd-theme-toggle .settings-label { + margin: 0.75rem 0.75rem 0 0; +} + +.tsd-hierarchy { + list-style: square; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); +} +.tsd-full-hierarchy, +.tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; +} +.tsd-full-hierarchy ul { + padding-left: 1.5rem; +} +.tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} + +.tsd-panel-group.tsd-index-group { + margin-bottom: 0; +} +.tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; +} +@media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } +} +@media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } +} +.tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; +} + +.tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; +} + +.tsd-anchor { + position: relative; + top: -100px; +} + +.tsd-member { + position: relative; +} +.tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; +} + +.tsd-navigation.settings { + margin: 1rem 0; +} +.tsd-navigation > a, +.tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; +} +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; +} +.tsd-navigation a.current, +.tsd-page-navigation a.current { + background: var(--color-active-menu-item); +} +.tsd-navigation a:hover, +.tsd-page-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul, +.tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li, +.tsd-page-navigation li { + padding: 0; + max-width: 100%; +} +.tsd-navigation .tsd-nav-link { + display: none; +} +.tsd-nested-navigation { + margin-left: 3rem; +} +.tsd-nested-navigation > li > details { + margin-left: -1.5rem; +} +.tsd-small-nested-navigation { + margin-left: 1.5rem; +} +.tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; +} + +.tsd-page-navigation-section { + margin-left: 10px; +} +.tsd-page-navigation-section > summary { + padding: 0.25rem; +} +.tsd-page-navigation-section > div { + margin-left: 20px; +} +.tsd-page-navigation ul { + padding-left: 1.75rem; +} + +#tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; +} +#tsd-sidebar-links a:last-of-type { + margin-bottom: 0; +} + +a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} +.tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ +} +.tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ +} +.tsd-accordion-summary, +.tsd-accordion-summary a { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + + cursor: pointer; +} +.tsd-accordion-summary a { + width: calc(100% - 1.5rem); +} +.tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; +} +.tsd-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; + vertical-align: text-top; +} +.tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; +} +.tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; +} + +.tsd-no-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; +} +.tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; +} + +.tsd-panel { + margin-bottom: 2.5rem; +} +.tsd-panel.tsd-member { + margin-bottom: 4rem; +} +.tsd-panel:empty { + display: none; +} +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; +} +.tsd-panel > h1.tsd-before-signature, +.tsd-panel > h2.tsd-before-signature, +.tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; +} + +.tsd-panel-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group details { + margin: 2rem 0; +} +.tsd-panel-group > .tsd-accordion-summary { + margin-bottom: 1rem; +} + +#tsd-search { + transition: background-color 0.2s; +} +#tsd-search .title { + position: relative; + z-index: 2; +} +#tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; +} +#tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); +} +#tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; +} +#tsd-search .field input, +#tsd-search .title, +#tsd-toolbar-links a { + transition: opacity 0.2s; +} +#tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); +} +#tsd-search .results li { + background-color: var(--color-background); + line-height: initial; + padding: 4px; +} +#tsd-search .results li:nth-child(even) { + background-color: var(--color-background-secondary); +} +#tsd-search .results li.state { + display: none; +} +#tsd-search .results li.current:not(.no-results), +#tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); +} +#tsd-search .results a { + display: flex; + align-items: center; + padding: 0.25rem; + box-sizing: border-box; +} +#tsd-search .results a:before { + top: 10px; +} +#tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; +} +#tsd-search.has-focus { + background-color: var(--color-accent); +} +#tsd-search.has-focus .field input { + top: 0; + opacity: 1; +} +#tsd-search.has-focus .title, +#tsd-search.has-focus #tsd-toolbar-links a { + z-index: 0; + opacity: 0; +} +#tsd-search.has-focus .results { + visibility: visible; +} +#tsd-search.loading .results li.state.loading { + display: block; +} +#tsd-search.failure .results li.state.failure { + display: block; +} + +#tsd-toolbar-links { + position: absolute; + top: 0; + right: 2rem; + height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +#tsd-toolbar-links a { + margin-left: 1.5rem; +} +#tsd-toolbar-links a:hover { + text-decoration: underline; +} + +.tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; +} + +.tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; +} + +.tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; +} + +.tsd-signature-type { + font-style: italic; + font-weight: normal; +} + +.tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; +} +.tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; +} +.tsd-signatures .tsd-index-signature:not(:last-child) { + margin-bottom: 1em; +} +.tsd-signatures .tsd-index-signature .tsd-signature { + border-width: 1px; +} +.tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; +} + +ul.tsd-parameter-list, +ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; +} +ul.tsd-parameter-list > li.tsd-parameter-signature, +ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; +} +ul.tsd-parameter-list h5, +ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} +.tsd-sources { + margin-top: 1rem; + font-size: 0.875em; +} +.tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; +} +.tsd-sources ul { + list-style: none; + padding: 0; +} + +.tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; +} +.tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; +} +.tsd-page-toolbar a.title { + font-weight: bold; +} +.tsd-page-toolbar a.title:hover { + text-decoration: underline; +} +.tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; +} +.tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; +} +.tsd-page-toolbar .table-cell:first-child { + width: 100%; +} +.tsd-page-toolbar .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; +} + +.tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: + opacity 0.1s, + background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-widget:hover { + opacity: 0.9; +} +.tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); +} +.tsd-widget.no-caption { + width: 40px; +} +.tsd-widget.no-caption:before { + margin: 0; +} + +.tsd-widget.options, +.tsd-widget.menu { + display: none; +} +input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; +} +input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; +} + +img { + max-width: 100%; +} + +.tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + vertical-align: middle; + color: var(--color-text); +} + +.tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; +} + +.tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; +} + +.deprecated { + text-decoration: line-through !important; +} + +.warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); +} + +.tsd-kind-project { + color: var(--color-ts-project); +} +.tsd-kind-module { + color: var(--color-ts-module); +} +.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-kind-enum-member { + color: var(--color-ts-enum-member); +} +.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-kind-constructor { + color: var(--color-ts-constructor); +} +.tsd-kind-property { + color: var(--color-ts-property); +} +.tsd-kind-method { + color: var(--color-ts-method); +} +.tsd-kind-reference { + color: var(--color-ts-reference); +} +.tsd-kind-call-signature { + color: var(--color-ts-call-signature); +} +.tsd-kind-index-signature { + color: var(--color-ts-index-signature); +} +.tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); +} +.tsd-kind-parameter { + color: var(--color-ts-parameter); +} +.tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); +} +.tsd-kind-accessor { + color: var(--color-ts-accessor); +} +.tsd-kind-get-signature { + color: var(--color-ts-get-signature); +} +.tsd-kind-set-signature { + color: var(--color-ts-set-signature); +} +.tsd-kind-type-alias { + color: var(--color-ts-type-alias); +} + +/* if we have a kind icon, don't color the text by kind */ +.tsd-kind-icon ~ span { + color: var(--color-text); +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); +} + +*::-webkit-scrollbar { + width: 0.75rem; +} + +*::-webkit-scrollbar-track { + background: var(--color-icon-background); +} + +*::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); +} + +/* mobile */ +@media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } + #tsd-toolbar-links { + display: none; + } + .tsd-navigation .tsd-nav-link { + display: flex; + } +} + +/* one sidebar */ +@media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } +} +@media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } +} + +/* two sidebars */ +@media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } +} diff --git a/docs/v2.0.2/assets/versionsMenu.js b/docs/v2.0.2/assets/versionsMenu.js new file mode 100644 index 00000000..b4bdf6b3 --- /dev/null +++ b/docs/v2.0.2/assets/versionsMenu.js @@ -0,0 +1,21 @@ +import { DOC_VERSIONS } from '../../versions.js'; + +const select = document.getElementById('plugin-versions-select'); + +DOC_VERSIONS.forEach((version) => { + const option = document.createElement('option'); + option.value = version; + option.innerHTML = version; + select.appendChild(option); +}); + +const locationSplit = location.pathname.split('/'); +const thisVersion = locationSplit.find((path) => ['stable', 'dev', ...DOC_VERSIONS].includes(path)); +select.value = DOC_VERSIONS.includes(thisVersion) + ? thisVersion + : DOC_VERSIONS[0]; +select.onchange = () => { + const newPaths = window.location.pathname.replace(`/${thisVersion}/`, `/${select.value}/`); + const newUrl = new URL(newPaths, window.location.origin); + window.location.assign(newUrl); +}; diff --git a/docs/v2.0.2/classes/index.BaseMessageNode.html b/docs/v2.0.2/classes/index.BaseMessageNode.html new file mode 100644 index 00000000..92f512a7 --- /dev/null +++ b/docs/v2.0.2/classes/index.BaseMessageNode.html @@ -0,0 +1,27 @@ +BaseMessageNode | archipelago.js - v2.0.2
+

    Class BaseMessageNodeAbstract

    The base class for all message node objects.

    +
    +
    + +
    + + Hierarchy
    +
    + +
    +

    Properties

    Accessors

    Methods

    Properties

    client: Client

    The client object containing additional context metadata.

    +

    The underlying message part component.

    +
    type: string

    The type of this message node.

    +

    Accessors

    • get text(): string
    • Returns the plaintext component of this message node.

      +

      Returns string

      Same value returned from .toString().

      +

    Methods

    \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.Client.html b/docs/v2.0.2/classes/index.Client.html new file mode 100644 index 00000000..3c42cd1f --- /dev/null +++ b/docs/v2.0.2/classes/index.Client.html @@ -0,0 +1,106 @@ +Client | archipelago.js - v2.0.2
    +

      Class Client

      The client that connects to an Archipelago server and provides helper methods and objects to facilitate +communication, listen for events, and manage data.

      +

      Constructors

      Properties

      deathLink: DeathLinkManager = ...

      A helper object for handling DeathLink mechanics.

      +
      items: ItemsManager = ...

      A helper object for handling received items and hints.

      +
      messages: MessageManager = ...

      A helper object for handling chat messages.

      +
      options: Required<ClientOptions>

      Current options for this client.

      +
      package: DataPackageManager = ...

      A helper object for handling game data packages.

      +
      players: PlayersManager = ...

      A helper object for handling players (including self).

      +
      room: RoomStateManager = ...

      A helper object for handling room state.

      +
      socket: SocketManager = ...

      A helper object for handling websocket communication and AP network protocol.

      +
      storage: DataStorageManager = ...

      A helper object for handling the data storage API.

      +

      Accessors

      • get authenticated(): boolean
      • Returns true if currently connected and authenticated to the Archipelago server.

        +

        Returns boolean

      • get game(): string
      • Returns the client's current game name (or an empty string, if never connected).

        +

        Returns string

      • get name(): string
      • Returns the client's current slot name (or an empty string, if never connected).

        +

        Returns string

      Methods

      • Send a bounce packet targeting any clients that fulfil any target parameters. Can be listened for by listening to +"bounced" events on SocketManager.

        +

        Parameters

        • targets: {
              games?: string[];
              slots?: number[];
              tags?: string[];
          }

          The targets to receive this bounce packet.

          +
          • Optionalgames?: string[]

            Specific games that should receive this bounce.

            +
          • Optionalslots?: number[]

            Specific slots that should receive this bounce.

            +
          • Optionaltags?: string[]

            Specific clients with these tags that should receive this bounce.

            +
        • data: JSONRecord

          The json-serializable data to send.

          +

        Returns void

        UnauthenticatedError If attempting to send a bounce while not authenticated.

        +

        If no targets are specified, no clients will receive this bounce packet.

        +
      • Marks a list of locations as checked on the server.

        +

        Parameters

        • Rest...locations: number[]

          Location ids to check.

          +

        Returns void

        UnauthenticatedError If attempting to check locations while not authenticated.

        +

        Locations that do not exist or have already been checked in the multi-world are ignored.

        +
      • A shorthand for running Client.updateStatus(clientStatuses.goal). Once set, cannot be changed and if release +and/or collect is set to automatic, will release/collect all items.

        +

        Returns void

        UnauthenticatedError If not connected and authenticated.

        +
      • Connect and authenticate to an Archipelago server.

        +

        Type Parameters

        • SlotData extends JSONRecord

          If slot data is requested, this sets the type of the returning slot data.

          +

        Parameters

        • url: string | URL

          The url of the server, including the protocol (e.g., wss://archipelago.gg:38281).

          +
        • name: string

          The slot name this client will be connecting to.

          +
        • game: string = ""

          The game name this client will be connecting to. If omitted, client will connect in "TextOnly" mode.

          +
        • Optionaloptions: ConnectionOptions

          Additional optional connection arguments.

          +

        Returns Promise<SlotData>

        ArgumentError If slot name is empty.

        +

        LoginError If the server refuses the authentication attempt.

        +

        TypeError If provided URL is malformed or invalid protocol.

        +

        If the port is omitted, the client will default to 38281 (AP default).

        +

        If the protocol is omitted, client will attempt to connect via wss, then fallback to ws if unsuccessful.

        +

        Any paths, queries, fragments, or userinfo components of the provided url will be ignored.

        +
        import { Client } from "archipelago.js";

        const client = new Client();

        await client.login("archipelago.gg:38281", "Phar", "Clique", {
        slotData: false,
        password: "4444"
        }); +
        + +
        import { Client } from "archipelago.js";

        type CliqueSlotData = {
        color: string
        hard_mode: boolean
        }

        const client = new Client();

        // slotData: CliqueSlotData { color: "red", hard_mode: false }
        const slotData = await client.login<CliqueSlotData>("archipelago.gg:38281", "Phar", "Clique"); +
        + +
      • Scout a list of locations for their containing items.

        +

        Parameters

        • locations: number[]

          A list of location ids to scout.

          +
        • createHint: 0 | 1 | 2 = 0

          Whether to create hints for these locations.

          +
            +
          • If set to 0, this packet will not create hints for any locations in this packet.
          • +
          • If set to 1, this packet will create hints for all locations in this packet and broadcast them to all +relevant clients.
          • +
          • If set to 2, this packet will create hints for all locations in this packet and broadcast only new hints to +all relevant clients.
          • +
          +

        Returns Promise<Item[]>

        UnauthenticatedError If attempting to scout locations while not authenticated.

        +
      • Request the server update the kinds of item received events this client should receive.

        +

        Parameters

        • items: number

          New item handling flags.

          +

        Returns void

        UnauthenticatedError If not connected and authenticated.

        +
      • Update the client status for the current player. For a list of known client statuses, see clientStatuses.

        +

        Parameters

        Returns void

        UnauthenticatedError If not connected and authenticated.

        +

        The server will automatically set the player's status to clientStatuses.disconnected when all +clients connected to this slot have disconnected, set the status to clientStatuses.connected if a client +connects to this slot when previously set to clientStatuses.disconnected, or ignores any future updates +if ever set to clientStatuses.goal.

        +
        import { Client, clientStatuses } from "archipelago.js";

        const client = new Client();
        await client.login("wss://archipelago.gg:38281", "Phar", "Clique");

        // Mark client as ready to start.
        client.updateStatus(clientStatuses.ready); +
        + +
      • Request the server update this client's tags.

        +

        Parameters

        • tags: string[]

          Tags to replace the current ones.

          +

        Returns void

        UnauthenticatedError If not connected and authenticated.

        +
      \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.ColorMessageNode.html b/docs/v2.0.2/classes/index.ColorMessageNode.html new file mode 100644 index 00000000..4c9d26c4 --- /dev/null +++ b/docs/v2.0.2/classes/index.ColorMessageNode.html @@ -0,0 +1,29 @@ +ColorMessageNode | archipelago.js - v2.0.2
      +

        Class ColorMessageNode

        A message node object containing explicit color metadata.

        +
        +
        + +
        + + Hierarchy
        +
        +
        +
        +
        +

        Properties

        Accessors

        Methods

        Properties

        client: Client

        The client object containing additional context metadata.

        +

        The explicit color (or style) of this node.

        +

        The underlying message part component.

        +
        type: "color" = ...

        The type of this message node.

        +

        Accessors

        • get text(): string
        • Returns the plaintext component of this message node.

          +

          Returns string

          Same value returned from .toString().

          +

        Methods

        \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.DataPackageManager.html b/docs/v2.0.2/classes/index.DataPackageManager.html new file mode 100644 index 00000000..3c3a22e1 --- /dev/null +++ b/docs/v2.0.2/classes/index.DataPackageManager.html @@ -0,0 +1,62 @@ +DataPackageManager | archipelago.js - v2.0.2
        +

          Class DataPackageManager

          Managers data packages metadata and exposes name lookup methods.

          +

          Methods

          • Export a DataPackage object for local caching purposes.

            +

            Returns DataPackage

            It is recommended to export/import any data packages ahead of time to reduce unnecessary calls to +DataPackageManager.fetchPackage and reduce connection startup time and lighten network overhead. See +below for an example.

            +
            import fs from "node:fs";
            import { Client } from "archipelago.js";

            // ... misc client code (connecting and fetching data package).

            // Save data package to a local file.
            const data = client.package.exportPackage();
            fs.writeFileSync("path/to/cache/datapackage_cache.json", JSON.stringify(data), "utf8"); +
            + +
          • Fetches and returns the DataPackage from the server, if the games are not locally cached or checksums +do not match.

            +

            Parameters

            • games: string[] = []

              A list of game packages to fetch. If omitted, will fetch all available game packages from the +current room.

              +
            • update: boolean = true

              If true, after fetching the data package, any changes will automatically be updated without +needing to manually call DataPackageManager.importPackage.

              +

            Returns Promise<DataPackage>

            It is recommended to export and locally cache the data package after fetching, then prior to any future +connections, importing the locally cached package to reduce unnecessary network bandwidth.

            +

            Any requested games that do not exist in the current room will be ignored.

            +
          • Import a DataPackage object to prepopulate local cache.

            +

            Parameters

            Returns void

            It is recommended to export/import any data packages ahead of time to reduce unnecessary calls to +DataPackageManager.fetchPackage and reduce connection startup time and lighten network overhead. See +below for an example.

            +
            import fs from "node:fs";
            import { Client } from "archipelago.js";

            const data = fs.readFileSync("path/to/cache/datapackage_cache.json");
            const client = new Client();

            client.package.importPackage(JSON.parse(data));
            await client.login("wss://archipelago.gg:38281", "Phar", "Clique"); +
            + +
            <script src="archipelago.js" type="module">
            import { Client } from "archipelago.js";

            const data = localStorage.getItem("datapackage_cache");
            const client = new Client();

            client.package.importPackage(JSON.parse(data));
            await client.login("wss://archipelago.gg:38281", "Phar", "Clique");
            </script> +
            + +
          • Lookup an item name by its integer id.

            +

            Parameters

            • game: string

              The name of the game this item is associated with.

              +
            • id: number

              The id of the item to name lookup.

              +
            • Optionalfallback: true

              If true, returns "Unknown Item {id}" instead of undefined, if id does not exist in package. +Defaults to true, if omitted.

              +

            Returns string

          • Lookup an item name by its integer id.

            +

            Parameters

            • game: string

              The name of the game this item is associated with.

              +
            • id: number

              The id of the item to name lookup.

              +
            • fallback: false

              If true, returns "Unknown Item {id}" instead of undefined, if id does not exist in package. +Defaults to true, if omitted.

              +

            Returns undefined | string

          • Lookup a location name by its integer id.

            +

            Parameters

            • game: string

              The name of the game this location is associated with.

              +
            • id: number

              The id of the location to name lookup.

              +
            • Optionalfallback: true

              If true, returns "Unknown Location {id}" instead of undefined, if id does not exist in +package. Defaults to true, if omitted.

              +

            Returns string

          • Lookup a location name by its integer id.

            +

            Parameters

            • game: string

              The name of the game this location is associated with.

              +
            • id: number

              The id of the location to name lookup.

              +
            • fallback: false

              If true, returns "Unknown Location {id}" instead of undefined, if id does not exist in +package. Defaults to true, if omitted.

              +

            Returns undefined | string

          \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.DataStorageManager.html b/docs/v2.0.2/classes/index.DataStorageManager.html new file mode 100644 index 00000000..ed5f9fdf --- /dev/null +++ b/docs/v2.0.2/classes/index.DataStorageManager.html @@ -0,0 +1,48 @@ +DataStorageManager | archipelago.js - v2.0.2
          +

            Class DataStorageManager

            Manages communication between the data storage API and notifies subscribers of changes to storage updates.

            +

            Accessors

            Methods

            • Fetches a list of key-value pairs from data storage.

              +

              Type Parameters

              • T extends JSONRecord

                The expected key-value types to be returned.

                +

              Parameters

              • keys: (keyof T)[]

                A list of keys to fetch values for.

                +
              • Optionalmonitor: boolean

                Adds keys to local cache and request the server to update client when changes are made to speed up +subsequent lookups.

                +

              Returns Promise<T>

              An object containing all current values for each key requested.

              +

              Any keys not currently cached and monitored will be requested over the network instead of from memory.

              +
            • Fetches a single key-value pair from data storage.

              +

              Type Parameters

              Parameters

              • key: string

                The key to fetch a value for.

                +
              • Optionalmonitor: boolean

                Adds key to local cache and request the server to update client when changes are made to speed up +subsequent lookups.

                +

              Returns Promise<T>

              The current value for this key.

              +

              Any keys not currently cached and monitored will be requested over the network instead of from memory.

              +
            • Returns item name groups for this package from data storage API.

              +

              Parameters

              • game: string

                The game name to look up item name groups for.

                +

              Returns Promise<Record<string, string[]>>

            • Returns location name groups for this package from the data storage API.

              +

              Parameters

              • game: string

                The game name to look up location name groups for.

                +

              Returns Promise<Record<string, string[]>>

            • Add a list of keys to be monitored for changes and fire a callback when changes are detected.

              +

              Type Parameters

              Parameters

              • keys: (keyof T)[]

                A list of keys to fetch and watch for changes.

                +
              • callback: DataChangeCallback

                A callback to fire whenever one of these keys change.

                +

              Returns Promise<T>

              An object containing all current values for each key requested.

              +

              If connection to the Archipelago server is lost, keys will no longer be tracked for changes and need to +be monitored again.

              +
              const keys = ["key1", "key2"];
              const data = await client.storage.notify(keys, (key, value, oldValue) => {
              console.log(`Key '${key}' has been updated from ${oldValue} to ${value}!`);
              });

              client.storage
              .prepare("key2", 0)
              .add(5)
              .commit();
              // Key 'key2' has been updated from 0 to 5! +
              + +
            • Create a new transaction for setting a data storage key by returning an IntermediateDataOperation. To +perform certain operations, just chain additional methods until finished, then call prepare().

              +

              Type Parameters

              Parameters

              • key: string

                The key to manipulate.

                +
              • _default: T

                The default value to be used if key does not exist.

                +

              Returns IntermediateDataOperation<T>

              TypeError if attempting to modify a read only key.

              +
              // Prepare key "my-key" and set initial value to 100, if key doesn't exist.
              client.storage
              .prepare("my-key", 100)
              .multiply(0.25) // Multiply value by 0.25.
              .floor() // Round down to nearest integer.
              .max(0) // Clamp value above 0.
              .commit(); // Commit operations to data storage. +
              + +
            \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.DeathLinkManager.html b/docs/v2.0.2/classes/index.DeathLinkManager.html new file mode 100644 index 00000000..b2284f6e --- /dev/null +++ b/docs/v2.0.2/classes/index.DeathLinkManager.html @@ -0,0 +1,47 @@ +DeathLinkManager | archipelago.js - v2.0.2
            +

              Class DeathLinkManager

              Manages DeathLink mechanics for clients that choose to opt in to the mechanic.

              +
              +
              + +
              + + Hierarchy
              +
              + +
              +

              Accessors

              Methods

              • If DeathLink is enabled, sends a DeathLink to all DeathLink enabled players, otherwise this method does nothing.

                +

                Parameters

                • source: string

                  The name of the player who died. Can be a slot name, but could also be a name from within a +multiplayer game.

                  +
                • Optionalcause: string

                  Optional text explaining the cause of death. When provided, this should include the player's name. +(e.g., Phar drowned in a vat of kittens.)

                  +

                Returns void

                UnauthenticatedError If attempting to send a death link before authenticating to the server.

                +

                DeathLinks sent from this client will not fire a DeathEvents.deathReceived event to avoid +an infinite feedback loop of deaths.

                +
              • Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +dispatched with the event.

                +

                Type Parameters

                • Event extends "deathReceived"

                Parameters

                • event: Event

                  The event name to listen for.

                  +
                • clearPredicate: ((...args: DeathEvents[Event]) => boolean) = ...

                  An optional predicate to check on incoming events to validate if the correct event has +been received. If omitted, will return immediately on next event type received.

                  +

                Returns Promise<DeathEvents[Event]>

              \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.EventBasedManager.html b/docs/v2.0.2/classes/index.EventBasedManager.html new file mode 100644 index 00000000..ee7d6b6f --- /dev/null +++ b/docs/v2.0.2/classes/index.EventBasedManager.html @@ -0,0 +1,34 @@ +EventBasedManager | archipelago.js - v2.0.2
              +

                Class EventBasedManager<Events>Abstract

                An abstract class for managers that offer an event-based API.

                +

                Type Parameters

                • Events extends {
                      [p: string]: unknown[];
                  }

                  An interface of events supported by this derived manager.

                  +
                +
                + +
                + + Hierarchy
                +
                + +
                +

                Constructors

                Methods

                off +on +wait +

                Constructors

                Methods

                • Removes an existing event listener.

                  +

                  Type Parameters

                  • Event extends string

                  Parameters

                  • event: Event

                    The event name associated with this listener to remove.

                    +
                  • listener: ((...args: Events[Event]) => void)

                    The callback function to remove.

                    +
                      • (...args): void
                      • Parameters

                        Returns void

                  Returns this

                  This object.

                  +
                • Add an event listener for a specific event.

                  +

                  Type Parameters

                  • Event extends string

                  Parameters

                  • event: Event

                    The event name to listen for.

                    +
                  • listener: ((...args: Events[Event]) => void)

                    The callback function to fire when this event is received.

                    +
                      • (...args): void
                      • Parameters

                        Returns void

                  Returns this

                  This object.

                  +
                • Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +dispatched with the event.

                  +

                  Type Parameters

                  • Event extends string

                  Parameters

                  • event: Event

                    The event name to listen for.

                    +
                  • clearPredicate: ((...args: Events[Event]) => boolean) = ...

                    An optional predicate to check on incoming events to validate if the correct event has +been received. If omitted, will return immediately on next event type received.

                    +
                      • (...args): boolean
                      • Parameters

                        Returns boolean

                  Returns Promise<Events[Event]>

                \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.Hint.html b/docs/v2.0.2/classes/index.Hint.html new file mode 100644 index 00000000..634592b5 --- /dev/null +++ b/docs/v2.0.2/classes/index.Hint.html @@ -0,0 +1,12 @@ +Hint | archipelago.js - v2.0.2
                +

                  Class Hint

                  An abstraction of NetworkHint that exposes additional helper methods and accessors received hint data.

                  +

                  Accessors

                  Accessors

                  • get entrance(): string
                  • Returns the entrance this location is at if entrance data is available, otherwise "Vanilla".

                    +

                    Returns string

                  • get found(): boolean
                  • Returns true if this item has been found.

                    +

                    Returns boolean

                  \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.IntermediateDataOperation.html b/docs/v2.0.2/classes/index.IntermediateDataOperation.html new file mode 100644 index 00000000..ac9bf4e9 --- /dev/null +++ b/docs/v2.0.2/classes/index.IntermediateDataOperation.html @@ -0,0 +1,65 @@ +IntermediateDataOperation | archipelago.js - v2.0.2
                  +

                    Class IntermediateDataOperation<T>

                    An intermediate abstract object holding an array of data storage operations to be performed in order by the server.

                    +

                    Type Parameters

                    Methods

                    • Commit the current operations to data store and return a Promise with the updated key, once fulfilled.

                      +

                      Parameters

                      • awaitReply: true

                        If true, a promise will be returned with the new value. Otherwise, immediately resolves.

                        +

                      Returns Promise<T>

                    • Commit the current operations to data store.

                      +

                      Parameters

                      • OptionalawaitReply: false

                      Returns Promise<void>

                    \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.Item.html b/docs/v2.0.2/classes/index.Item.html new file mode 100644 index 00000000..9195f380 --- /dev/null +++ b/docs/v2.0.2/classes/index.Item.html @@ -0,0 +1,34 @@ +Item | archipelago.js - v2.0.2
                    +

                      Class Item

                      An abstraction of NetworkItem that exposes additional helper methods and accessors for this item data.

                      +

                      Accessors

                      • get filler(): boolean
                      • Returns true if this item has no special flags.

                        +

                        Returns boolean

                      • get flags(): number
                      • Returns the item classification bitflags for this item.

                        +

                        Returns number

                      • get locationGame(): string
                      • Returns the game name for the location this item was contained.

                        +

                        Returns string

                      • get locationId(): number
                      • Returns the id of the location where this item was contained.

                        +

                        Returns number

                      • get locationName(): string
                      • Returns the name of the location where this item was contained.

                        +

                        Returns string

                      • get progression(): boolean
                      • Returns true if this item is flagged as progression.

                        +

                        Returns boolean

                      • get trap(): boolean
                      • Returns true if this item is flagged as a trap.

                        +

                        Returns boolean

                      • get useful(): boolean
                      • Returns true if this item is flagged as useful.

                        +

                        Returns boolean

                      Methods

                      \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.ItemMessageNode.html b/docs/v2.0.2/classes/index.ItemMessageNode.html new file mode 100644 index 00000000..c9e8dd5d --- /dev/null +++ b/docs/v2.0.2/classes/index.ItemMessageNode.html @@ -0,0 +1,28 @@ +ItemMessageNode | archipelago.js - v2.0.2
                      +

                        Class ItemMessageNode

                        A message node object containing item metadata.

                        +
                        +
                        + +
                        + + Hierarchy
                        +
                        +
                        +
                        +
                        +

                        Properties

                        Accessors

                        Methods

                        Properties

                        client: Client

                        The client object containing additional context metadata.

                        +
                        item: Item

                        The item this node is referring to.

                        +

                        The underlying message part component.

                        +
                        type: "item" = ...

                        The type of this message node.

                        +

                        Accessors

                        Methods

                        \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.ItemsManager.html b/docs/v2.0.2/classes/index.ItemsManager.html new file mode 100644 index 00000000..84fb6846 --- /dev/null +++ b/docs/v2.0.2/classes/index.ItemsManager.html @@ -0,0 +1,41 @@ +ItemsManager | archipelago.js - v2.0.2
                        +

                          Class ItemsManager

                          Manages tracking and receiving of all received items and hints.

                          +
                          +
                          + +
                          + + Hierarchy
                          +
                          + +
                          +

                          Accessors

                          Methods

                          off +on +wait +

                          Accessors

                          • get hints(): Hint[]
                          • Returns a copy of all hints for this player.

                            +

                            Returns Hint[]

                            Hints may take a moment to populate after establishing connection to server, as it needs to wait for +data storage to fetch all current hints. If you need hints right after connecting, listen for the +ItemEvents.hintsInitialized event.

                            +

                          Methods

                          • Removes an existing event listener.

                            +

                            Type Parameters

                            • Event extends
                                  | "itemsReceived"
                                  | "hintReceived"
                                  | "hintFound"
                                  | "hintsInitialized"

                            Parameters

                            • event: Event

                              The event name associated with this listener to remove.

                              +
                            • listener: ((...args: ItemEvents[Event]) => void)

                              The callback function to remove.

                              +

                            Returns this

                            This object.

                            +
                          • Add an event listener for a specific event.

                            +

                            Type Parameters

                            • Event extends
                                  | "itemsReceived"
                                  | "hintReceived"
                                  | "hintFound"
                                  | "hintsInitialized"

                            Parameters

                            • event: Event

                              The event name to listen for.

                              +
                            • listener: ((...args: ItemEvents[Event]) => void)

                              The callback function to fire when this event is received.

                              +

                            Returns this

                            This object.

                            +
                          • Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +dispatched with the event.

                            +

                            Type Parameters

                            • Event extends
                                  | "itemsReceived"
                                  | "hintReceived"
                                  | "hintFound"
                                  | "hintsInitialized"

                            Parameters

                            • event: Event

                              The event name to listen for.

                              +
                            • clearPredicate: ((...args: ItemEvents[Event]) => boolean) = ...

                              An optional predicate to check on incoming events to validate if the correct event has +been received. If omitted, will return immediately on next event type received.

                              +

                            Returns Promise<ItemEvents[Event]>

                          \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.LocationMessageNode.html b/docs/v2.0.2/classes/index.LocationMessageNode.html new file mode 100644 index 00000000..3044c9fa --- /dev/null +++ b/docs/v2.0.2/classes/index.LocationMessageNode.html @@ -0,0 +1,28 @@ +LocationMessageNode | archipelago.js - v2.0.2
                          +

                            Class LocationMessageNode

                            A message node object containing location metadata.

                            +
                            +
                            + +
                            + + Hierarchy
                            +
                            +
                            +
                            +
                            +

                            Properties

                            Accessors

                            Methods

                            Properties

                            client: Client

                            The client object containing additional context metadata.

                            +
                            id: number

                            The integer id of this location.

                            +

                            The underlying message part component.

                            +
                            type: "location" = ...

                            The type of this message node.

                            +

                            Accessors

                            Methods

                            \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.MessageManager.html b/docs/v2.0.2/classes/index.MessageManager.html new file mode 100644 index 00000000..c3eb2972 --- /dev/null +++ b/docs/v2.0.2/classes/index.MessageManager.html @@ -0,0 +1,42 @@ +MessageManager | archipelago.js - v2.0.2
                            +

                              Class MessageManager

                              Manages and stores PrintJSONPacket messages, notifies subscribers of new messages, and exposes helper methods +to interact with the chat system.

                              +
                              +
                              + +
                              + + Hierarchy
                              +
                              + +
                              +

                              Accessors

                              log +

                              Methods

                              off +on +say +wait +

                              Accessors

                              Methods

                              • Removes an existing event listener.

                                +

                                Type Parameters

                                • Event extends
                                      | "disconnected"
                                      | "connected"
                                      | "message"
                                      | "itemSent"
                                      | "itemCheated"
                                      | "itemHinted"
                                      | "chat"
                                      | "serverChat"
                                      | "tutorial"
                                      | "tagsUpdated"
                                      | "userCommand"
                                      | "adminCommand"
                                      | "goaled"
                                      | "released"
                                      | "collected"
                                      | "countdown"

                                Parameters

                                • event: Event

                                  The event name associated with this listener to remove.

                                  +
                                • listener: ((...args: MessageEvents[Event]) => void)

                                  The callback function to remove.

                                  +

                                Returns this

                                This object.

                                +
                              • Add an event listener for a specific event.

                                +

                                Type Parameters

                                • Event extends
                                      | "disconnected"
                                      | "connected"
                                      | "message"
                                      | "itemSent"
                                      | "itemCheated"
                                      | "itemHinted"
                                      | "chat"
                                      | "serverChat"
                                      | "tutorial"
                                      | "tagsUpdated"
                                      | "userCommand"
                                      | "adminCommand"
                                      | "goaled"
                                      | "released"
                                      | "collected"
                                      | "countdown"

                                Parameters

                                • event: Event

                                  The event name to listen for.

                                  +
                                • listener: ((...args: MessageEvents[Event]) => void)

                                  The callback function to fire when this event is received.

                                  +

                                Returns this

                                This object.

                                +
                              • Sends a chat message to the server.

                                +

                                Parameters

                                • text: string

                                  The textual message to broadcast to all connected clients.

                                  +

                                Returns Promise<void>

                                A promise that resolves when the server has broadcast the chat message.

                                +

                                UnauthenticatedError if attempting to send a chat message when not connected or authenticated.

                                +
                              • Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +dispatched with the event.

                                +

                                Type Parameters

                                • Event extends
                                      | "disconnected"
                                      | "connected"
                                      | "message"
                                      | "itemSent"
                                      | "itemCheated"
                                      | "itemHinted"
                                      | "chat"
                                      | "serverChat"
                                      | "tutorial"
                                      | "tagsUpdated"
                                      | "userCommand"
                                      | "adminCommand"
                                      | "goaled"
                                      | "released"
                                      | "collected"
                                      | "countdown"

                                Parameters

                                • event: Event

                                  The event name to listen for.

                                  +
                                • clearPredicate: ((...args: MessageEvents[Event]) => boolean) = ...

                                  An optional predicate to check on incoming events to validate if the correct event has +been received. If omitted, will return immediately on next event type received.

                                  +

                                Returns Promise<MessageEvents[Event]>

                              \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.PackageMetadata.html b/docs/v2.0.2/classes/index.PackageMetadata.html new file mode 100644 index 00000000..37993e43 --- /dev/null +++ b/docs/v2.0.2/classes/index.PackageMetadata.html @@ -0,0 +1,21 @@ +PackageMetadata | archipelago.js - v2.0.2
                              +

                                Class PackageMetadata

                                An abstraction of a GamePackage object which includes additional helper methods for interacting with a game's +package.

                                +

                                Properties

                                checksum: string

                                The SHA256 hexadecimal string representation of this game package.

                                +
                                game: string

                                The name of the game this game package is for.

                                +
                                itemTable: Readonly<Record<string, number>>

                                A record of names to ids for all items in this game package.

                                +
                                locationTable: Readonly<Record<string, number>>

                                A record of names to ids for all locations in this game package.

                                +
                                reverseItemTable: Readonly<Record<number, string>>

                                A record of ids to names for all items in this game package.

                                +
                                reverseLocationTable: Readonly<Record<number, string>>

                                A record of ids to names for all locations in this game package.

                                +

                                Methods

                                \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.Player.html b/docs/v2.0.2/classes/index.Player.html new file mode 100644 index 00000000..d17f2935 --- /dev/null +++ b/docs/v2.0.2/classes/index.Player.html @@ -0,0 +1,33 @@ +Player | archipelago.js - v2.0.2
                                +

                                  Class Player

                                  A collection of metadata and helper methods for interacting with a particular player.

                                  +

                                  Accessors

                                  • get alias(): string
                                  • Returns the current nickname for this player or the slot name if not set.

                                    +

                                    Returns string

                                  Methods

                                  • Fetch this player's slot data over the network.

                                    +

                                    Type Parameters

                                    • SlotData extends JSONRecord

                                      The type of the slot data that is returned, for better typing information.

                                      +

                                    Returns Promise<SlotData>

                                    This data is not tracked after running, so slot data should be cached to reduce additional network +calls, if necessary.

                                    +
                                  \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.PlayerMessageNode.html b/docs/v2.0.2/classes/index.PlayerMessageNode.html new file mode 100644 index 00000000..5979ab0d --- /dev/null +++ b/docs/v2.0.2/classes/index.PlayerMessageNode.html @@ -0,0 +1,28 @@ +PlayerMessageNode | archipelago.js - v2.0.2
                                  +

                                    Class PlayerMessageNode

                                    A message node object containing explicit color metadata.

                                    +
                                    +
                                    + +
                                    + + Hierarchy
                                    +
                                    +
                                    +
                                    +
                                    +

                                    Properties

                                    Accessors

                                    Methods

                                    Properties

                                    client: Client

                                    The client object containing additional context metadata.

                                    +

                                    The underlying message part component.

                                    +
                                    player: Player

                                    The player being referenced by this node.

                                    +
                                    type: "player" = ...

                                    The type of this message node.

                                    +

                                    Accessors

                                    Methods

                                    \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.PlayersManager.html b/docs/v2.0.2/classes/index.PlayersManager.html new file mode 100644 index 00000000..e4b1a742 --- /dev/null +++ b/docs/v2.0.2/classes/index.PlayersManager.html @@ -0,0 +1,49 @@ +PlayersManager | archipelago.js - v2.0.2
                                    +

                                      Class PlayersManager

                                      Manages tracking and updating all players in the room session.

                                      +
                                      +
                                      + +
                                      + + Hierarchy
                                      +
                                      + +
                                      +

                                      Accessors

                                      Methods

                                      Accessors

                                      • get teams(): Player[][]
                                      • Returns a 2D array of player metadata ranked by team number, then slot number.

                                        +

                                        Returns Player[][]

                                        for (const team of client.players.teams) {
                                        for (const player of team) {
                                        console.log(player.alias);
                                        }
                                        } +
                                        + +

                                      Methods

                                      • Attempt to find a player by their team or slot name.

                                        +

                                        Parameters

                                        • slot: number

                                          The slot id associated with the searched player.

                                          +
                                        • Optionalteam: number

                                          The team id associated with the searched player. If omitted, defaults to the team of the client +player.

                                          +

                                        Returns undefined | Player

                                        The player's metadata or undefined if not found.

                                        +
                                      • Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +dispatched with the event.

                                        +

                                        Type Parameters

                                        • Event extends "aliasUpdated"

                                        Parameters

                                        • event: Event

                                          The event name to listen for.

                                          +
                                        • clearPredicate: ((...args: PlayerEvents[Event]) => boolean) = ...

                                          An optional predicate to check on incoming events to validate if the correct event has +been received. If omitted, will return immediately on next event type received.

                                          +

                                        Returns Promise<PlayerEvents[Event]>

                                      \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.RoomStateManager.html b/docs/v2.0.2/classes/index.RoomStateManager.html new file mode 100644 index 00000000..aae20218 --- /dev/null +++ b/docs/v2.0.2/classes/index.RoomStateManager.html @@ -0,0 +1,68 @@ +RoomStateManager | archipelago.js - v2.0.2
                                      +

                                        Class RoomStateManager

                                        Managers room state information, notifies subscribers of changes, and exposes helper methods for interacting with the +room.

                                        +
                                        +
                                        + +
                                        + + Hierarchy
                                        +
                                        + +
                                        +

                                        Accessors

                                        • get generatorVersion(): {
                                              build: number;
                                              major: number;
                                              minor: number;
                                          }
                                        • Returns the version of Archipelago the seed was generated from.

                                          +

                                          Returns {
                                              build: number;
                                              major: number;
                                              minor: number;
                                          }

                                          • build: number
                                          • major: number
                                          • minor: number

                                          All properties will be -1 prior to initial connection.

                                          +
                                        • get race(): boolean
                                        • Experimental

                                          Returns if this seed was generated with race mode enabled (to be used to obscure unnecessary details to make +clients race legal depending on rules).

                                          +

                                          Returns boolean

                                        • get seedName(): string
                                        • Get the seed name for this room.

                                          +

                                          Returns string

                                          In non-race seeds, this is based on the seed to generate this multi-world, but not exactly the same to +prevent reverse engineering. In race seeds, this is completely random.

                                          +
                                        • get serverVersion(): {
                                              build: number;
                                              major: number;
                                              minor: number;
                                          }
                                        • Returns the version of Archipelago the server is currently running.

                                          +

                                          Returns {
                                              build: number;
                                              major: number;
                                              minor: number;
                                          }

                                          • build: number
                                          • major: number
                                          • minor: number

                                          All properties will be -1 prior to initial connection.

                                          +

                                        Methods

                                        • Removes an existing event listener.

                                          +

                                          Type Parameters

                                          • Event extends
                                                | "passwordUpdated"
                                                | "permissionsUpdated"
                                                | "locationCheckPointsUpdated"
                                                | "hintCostUpdated"
                                                | "hintPointsUpdated"
                                                | "locationsChecked"

                                          Parameters

                                          • event: Event

                                            The event name associated with this listener to remove.

                                            +
                                          • listener: ((...args: RoomStateEvents[Event]) => void)

                                            The callback function to remove.

                                            +

                                          Returns this

                                          This object.

                                          +
                                        • Add an event listener for a specific event.

                                          +

                                          Type Parameters

                                          • Event extends
                                                | "passwordUpdated"
                                                | "permissionsUpdated"
                                                | "locationCheckPointsUpdated"
                                                | "hintCostUpdated"
                                                | "hintPointsUpdated"
                                                | "locationsChecked"

                                          Parameters

                                          • event: Event

                                            The event name to listen for.

                                            +
                                          • listener: ((...args: RoomStateEvents[Event]) => void)

                                            The callback function to fire when this event is received.

                                            +

                                          Returns this

                                          This object.

                                          +
                                        • Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +dispatched with the event.

                                          +

                                          Type Parameters

                                          • Event extends
                                                | "passwordUpdated"
                                                | "permissionsUpdated"
                                                | "locationCheckPointsUpdated"
                                                | "hintCostUpdated"
                                                | "hintPointsUpdated"
                                                | "locationsChecked"

                                          Parameters

                                          • event: Event

                                            The event name to listen for.

                                            +
                                          • clearPredicate: ((...args: RoomStateEvents[Event]) => boolean) = ...

                                            An optional predicate to check on incoming events to validate if the correct event has +been received. If omitted, will return immediately on next event type received.

                                            +

                                          Returns Promise<RoomStateEvents[Event]>

                                        \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.SocketManager.html b/docs/v2.0.2/classes/index.SocketManager.html new file mode 100644 index 00000000..cb039d97 --- /dev/null +++ b/docs/v2.0.2/classes/index.SocketManager.html @@ -0,0 +1,53 @@ +SocketManager | archipelago.js - v2.0.2
                                        +

                                          Class SocketManager

                                          Manages socket-level communication and exposes helper methods/events for interacting with the Archipelago API +directly.

                                          +
                                          +
                                          + +
                                          + + Hierarchy
                                          +
                                          + +
                                          +

                                          Accessors

                                          Methods

                                          Accessors

                                          Methods

                                          • Establish a connection to an Archipelago server before authenticating; useful if there might be tasked that are +needed to be performed before authenticating, but after connecting (e.g., DataPackage).

                                            +

                                            Parameters

                                            • url: string | URL

                                              The url of the server, including the protocol (e.g., wss://archipelago.gg:38281).

                                              +

                                            Returns Promise<RoomInfoPacket>

                                            The RoomInfoPacket received on initial connection.

                                            +

                                            SocketError If failed to connect or no websocket API is available.

                                            +

                                            TypeError If provided URL is malformed or invalid protocol.

                                            +

                                            If the port is omitted, client will default to 38281.

                                            +

                                            If the protocol is omitted, client will attempt to connect via wss, then fallback to ws if unsuccessful.

                                            +
                                          • Removes an existing event listener.

                                            +

                                            Type Parameters

                                            • Event extends
                                                  | "disconnected"
                                                  | "connected"
                                                  | "bounced"
                                                  | "connectionRefused"
                                                  | "dataPackage"
                                                  | "invalidPacket"
                                                  | "locationInfo"
                                                  | "printJSON"
                                                  | "receivedItems"
                                                  | "retrieved"
                                                  | "roomInfo"
                                                  | "roomUpdate"
                                                  | "setReply"
                                                  | "receivedPacket"
                                                  | "sentPackets"

                                            Parameters

                                            • event: Event

                                              The event name associated with this listener to remove.

                                              +
                                            • listener: ((...args: SocketEvents[Event]) => void)

                                              The callback function to remove.

                                              +

                                            Returns this

                                            This object.

                                            +
                                          • Add an event listener for a specific event.

                                            +

                                            Type Parameters

                                            • Event extends
                                                  | "disconnected"
                                                  | "connected"
                                                  | "bounced"
                                                  | "connectionRefused"
                                                  | "dataPackage"
                                                  | "invalidPacket"
                                                  | "locationInfo"
                                                  | "printJSON"
                                                  | "receivedItems"
                                                  | "retrieved"
                                                  | "roomInfo"
                                                  | "roomUpdate"
                                                  | "setReply"
                                                  | "receivedPacket"
                                                  | "sentPackets"

                                            Parameters

                                            • event: Event

                                              The event name to listen for.

                                              +
                                            • listener: ((...args: SocketEvents[Event]) => void)

                                              The callback function to fire when this event is received.

                                              +

                                            Returns this

                                            This object.

                                            +
                                          • Returns a promise that waits for a single specified event to be received. Resolves with the list of arguments +dispatched with the event.

                                            +

                                            Type Parameters

                                            • Event extends
                                                  | "disconnected"
                                                  | "connected"
                                                  | "bounced"
                                                  | "connectionRefused"
                                                  | "dataPackage"
                                                  | "invalidPacket"
                                                  | "locationInfo"
                                                  | "printJSON"
                                                  | "receivedItems"
                                                  | "retrieved"
                                                  | "roomInfo"
                                                  | "roomUpdate"
                                                  | "setReply"
                                                  | "receivedPacket"
                                                  | "sentPackets"

                                            Parameters

                                            • event: Event

                                              The event name to listen for.

                                              +
                                            • clearPredicate: ((...args: SocketEvents[Event]) => boolean) = ...

                                              An optional predicate to check on incoming events to validate if the correct event has +been received. If omitted, will return immediately on next event type received.

                                              +

                                            Returns Promise<SocketEvents[Event]>

                                          \ No newline at end of file diff --git a/docs/v2.0.2/classes/index.TextualMessageNode.html b/docs/v2.0.2/classes/index.TextualMessageNode.html new file mode 100644 index 00000000..28558807 --- /dev/null +++ b/docs/v2.0.2/classes/index.TextualMessageNode.html @@ -0,0 +1,27 @@ +TextualMessageNode | archipelago.js - v2.0.2
                                          +

                                            Class TextualMessageNode

                                            A message node object containing explicit color metadata.

                                            +
                                            +
                                            + +
                                            + + Hierarchy
                                            +
                                            +
                                            +
                                            +
                                            +

                                            Properties

                                            Accessors

                                            Methods

                                            Properties

                                            client: Client

                                            The client object containing additional context metadata.

                                            +

                                            The underlying message part component.

                                            +
                                            type: "text" | "entrance"

                                            The type of this message node.

                                            +

                                            Accessors

                                            • get text(): string
                                            • Returns the plaintext component of this message node.

                                              +

                                              Returns string

                                              Same value returned from .toString().

                                              +

                                            Methods

                                            \ No newline at end of file diff --git a/docs/v2.0.2/documents/Creating_Your_Client.html b/docs/v2.0.2/documents/Creating_Your_Client.html new file mode 100644 index 00000000..5b5fbb51 --- /dev/null +++ b/docs/v2.0.2/documents/Creating_Your_Client.html @@ -0,0 +1,41 @@ +Creating Your Client | archipelago.js - v2.0.2
                                            +

                                              Creating Your Client

                                              Let's start off by creating a simple client that can connect to an Archipelago server, and listen for message events.

                                              +

                                              If you haven't already, generate an Archipelago room you can connect to for testing purposes. For all examples therein, +I'll be using "Phar" as the player and "Clique" as the game, but you can replace these values with what's appropriate +for your situation.

                                              +

                                              Create a new file in your project directory called client.js and add the following code:

                                              +
                                              import { Client } from "archipelago.js";

                                              // Create a new instance of the Client class.
                                              const client = new Client();

                                              // Set up an event listener for whenever a message arrives and print the plain-text content to the console.
                                              client.messages.on("message", (content) => {
                                              console.log(content);
                                              });

                                              // Login to the server. Replace `archipelago.gg:XXXXX` and `Phar` with the address/url and slot name for your room.
                                              // If no game is provided, client will connect in "TextOnly" mode, which is fine for this example.
                                              client.login("archipelago.gg:XXXXX", "Phar")
                                              .then(() => console.log("Connected to the Archipelago server!"))
                                              .catch(console.error); +
                                              + +

                                              Now run your code in your runtime of choice, and you should see the following output in your console:

                                              +
                                              Connected to the Archipelago server!
                                              Phar (Team #1) viewing Clique has joined. Client(0.5.1), ['TextOnly'].
                                              Now that you are connected, you can use !help to list commands to run via the server. If your client supports it, you may have additional local commands you can list with /help. +
                                              + +

                                              If you connect with another client (or via the server console) and send a message, you should see it come in as well:

                                              +
                                              [Server]: Hello, world!
                                              Phar: Hello, multi-world*! ftfy +
                                              + +

                                              This is cool and all, but not very feature rich, since we can't interact back with the code we have, so let's utilize +some more methods to communicate back.

                                              +
                                              import readline from "node:readline";

                                              import { Client } from "archipelago.js";

                                              // Using the node readline module, create an interface for intercepting any user input.
                                              const rl = readline.createInterface({ input: process.stdin, output: process.stdout, terminal: false });

                                              const client = new Client();

                                              client.messages.on("message", (content) => {
                                              console.log(content);
                                              });

                                              // Add an event listener for when a "line" is entered into the standard input (e.g., the console/terminal window).
                                              rl.on("line", async (line) => {
                                              // Send the input!
                                              await client.messages.say(line)
                                              });

                                              client.login("archipelago.gg:XXXXX", "Phar")
                                              .then(() => console.log("Connected to the Archipelago server!"))
                                              .catch(console.error); +
                                              + +

                                              Then running our code we should get something like so:

                                              +

                                              Node-based Example GIF

                                              +
                                              \ No newline at end of file diff --git a/docs/v2.0.2/documents/Installation.html b/docs/v2.0.2/documents/Installation.html new file mode 100644 index 00000000..15fd97cd --- /dev/null +++ b/docs/v2.0.2/documents/Installation.html @@ -0,0 +1,43 @@ +Installation | archipelago.js - v2.0.2
                                              +

                                                Installation

                                                archipelago.js supports all currently supported versions of Node, Bun, and +Deno. To install, follow the installation directions for your desired runtime and create a new +project directory.

                                                +

                                                Then, navigate to your new project directory and run npm install archipelago.js (or whatever your package +manager's flavor of doing the same thing is).

                                                +
                                                mkdir my-project
                                                cd my-project
                                                npm init
                                                npm install archipelago.js +
                                                + +
                                                mkdir my-project
                                                cd my-project
                                                bun init
                                                bun add archipelago.js +
                                                + +
                                                deno init my-project
                                                cd my-project
                                                deno add npm:archipelago.js +
                                                + +

                                                Then, in your JavaScript or TypeScript files, just import using ESM syntax.

                                                +
                                                import { /* ... */ } from "archipelago.js";

                                                // Rest of your code here... +
                                                + +

                                                If you are planning to run in the browser without bundling your code first, you can import archipelago.js using +the ESM module syntax in your HTML files. See below for an example using the unpkg CDN as a source:

                                                +
                                                <script type="module">
                                                import { /* ... */ } from "https://unpkg.com/archipelago.js/dist/archipelago.min.js";

                                                // Rest of your code here...
                                                </script> +
                                                + +

                                                If you package the archipelago.js files with your code, you can change the CDN url with a relative path to your +provided archipelago.js bundle.

                                                +
                                                \ No newline at end of file diff --git a/docs/v2.0.2/documents/Introduction.Reports.html b/docs/v2.0.2/documents/Introduction.Reports.html new file mode 100644 index 00000000..02049ac4 --- /dev/null +++ b/docs/v2.0.2/documents/Introduction.Reports.html @@ -0,0 +1,24 @@ +Reports | archipelago.js - v2.0.2
                                                +

                                                Report Errors or Improvements to these Guides

                                                These guides are created with the sole purpose of helping new or existing developers create Archipelago JavaScript +clients quickly and easily, but sometimes mistakes happen.

                                                +

                                                If you notice an issue with any of these guides, or want to request new content to help improve the existing +documentation, please create an issue on this project's GitHub repository. +Be sure it's titled appropriately and include as much information as possible inside the issue description.

                                                +

                                                Also, if you prefer to make the improvements yourself, you can fork the repository and submit a pull request as well!

                                                +
                                                \ No newline at end of file diff --git a/docs/v2.0.2/documents/Introduction.html b/docs/v2.0.2/documents/Introduction.html new file mode 100644 index 00000000..74fafe4d --- /dev/null +++ b/docs/v2.0.2/documents/Introduction.html @@ -0,0 +1,39 @@ +Introduction | archipelago.js - v2.0.2
                                                +

                                                  Introduction to archipelago.js

                                                  I'll assume if you're reading this, you're probably looking to develop a JavaScript client for Archipelago. Well +congratulations, you've come to the right place. These guides will teach you things such as:

                                                  +
                                                    +
                                                  • How to set up your developer environment for archipelago.js.
                                                  • +
                                                  • How to create a basic chat-based client.
                                                  • +
                                                  • How to create a more advanced client that can mark locations as "checked" and listens for received item events.
                                                  • +
                                                  • An in-depth explanation and examples for commonly performed actions (e.g., data package caching, message parsing, data +storage manipulation).
                                                  • +
                                                  • Additional features supported by archipelago.js.
                                                  • +
                                                  • Common errors and "gotchas" to be expected.
                                                  • +
                                                  • And much more.
                                                  • +
                                                  +

                                                  The archipelago.js library is developed for a JavaScript (or TypeScript) based client to run in the browser or via +a server-side runtime such as Node or Bun. This will require you to have +a decent grasp of JavaScript itself, including concepts such as (but not limited to):

                                                  +
                                                    +
                                                  • How classes, objects, functions, etc. works.
                                                  • +
                                                  • How Promises and async/await works.
                                                  • +
                                                  • How ECMAScript modules (import/export) work.
                                                  • +
                                                  • How this binding works.
                                                  • +
                                                  +

                                                  You can probably get along without being familiar with these concepts, but your developer experience will be more +challenging. Don't say I didn't warn you, at least.

                                                  +
                                                  \ No newline at end of file diff --git a/docs/v2.0.2/documents/placeholder.html b/docs/v2.0.2/documents/placeholder.html new file mode 100644 index 00000000..2b2dfa33 --- /dev/null +++ b/docs/v2.0.2/documents/placeholder.html @@ -0,0 +1,9 @@ +placeholder | archipelago.js - v2.0.2
                                                  +

                                                    Documentation still under development

                                                    Oops, there's still some more guides to be created.

                                                    +

                                                    Sorry about that, maybe check through the API docs for what you're looking for or reach out for some help in the +AP discord, in the +#archipelago.js dev thread.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/favicon.png b/docs/v2.0.2/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..a6bfd9a145d1f988b3333af5a6274f3fc28d0e63 GIT binary patch literal 1487 zcmV;=1u*)FP)EX>4Tx04R}tkv&MmKpe$iQ$?wjf)){R$WWc^q9Ts93Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4P#J2)x2NQwVT3N2ziIPS;0dyl(!fKV?p&FYE)nr@q^ zL|n{dSH+%J^dW!&3?U>l%b1g-Bsz|-d-(Wz7v))<&;2?2)ttoupGX{IhG`RT5YKGd z2Iqa^Fe}O`@j3B?Nf#u3C`-Nm{=^dvC_t@XllgM#1U1~DPPEV zta9Gstd*;*c~AbrU`}6I<~q$$B(R7jND!f*iW17O5v5fp#X^eq;~o4Xu3sXTLaq`R zITlcX2HEw4|H1EWt^CxamlTWx-7k*wF$VPP0*#vEd>=bb;{@U#SDLpQP7X zTI2`_Z37qAElt@2E_Z<8Cqp)6SMt*o@_FF>jJ_!g4Bi5PHLthkK29HiGvD54??EvZl| zVyHwx3o2+2Y*0`T`lX=IVh!Ta3bh|fpisg4U}`m_lA83cx!r7T-Oats?)o9=-P~Q8 zHjSGU+4;23e`a=mJTuQcGlTS=UbvGAhC8hIKt7NU|jl2U^L(z8vyB zB-;>QH5!>B#+jUT+;pxvWij}I6nQ$z zDV*n1<~lBI<}b};dawTTg+bE*fOX7F@1C$y);#B-o;~`KJfx@8k^NqmJxPU+g!v3$9aKA)uy5 z8U8L>DVgWA(YGd2FXqyx9Xo%6ds)w=rHq=gh7V}(m(A~6z78{$6V^mA{h>NAY>(7; zY{RX64ZRx!>%H|5TOBy9eEieqclU)}s&6^wOzg|{|7;9-3xrT@+6>^pbFm#K;$OWH zepNw@HMNJPKN~6hR-{fBR+PSWC(T{T{W z3D2btmz*_*_N4nh$`0h6Ld~y=ZfU6pv|p{?4(nfzI~f4z;Ma9Y_X2=nn}g=5a+@x8 z)9go0N056!DQlf`IS~aK3l61{oC9iMZh$&GPMsSZvH-$HOa1%AZzH|EO1+`S)Ma$dgC#&?mo5H&~8x}WZt0cC6t4u4u zsHNnUJWZnr_~Es4^TlFxuv<|CT;HXJMiKD#^^x0&vd20i2R27YO;cd+!fvLo~ z$bSA*OLv@K;Gdl`o7mPI6WQw2kyyl&-k4ta=}+U>A7)u;67cgIq{llVvN->8yqK98 z8Z!q+ErV3t*&XMf=m>9FBXJC>%Vmj0zcD&4WX%!)V1!mlw;C3jMTp}9KulzL2K|@U pAdEl>af|KM5WJ literal 0 HcmV?d00001 diff --git a/docs/v2.0.2/hierarchy.html b/docs/v2.0.2/hierarchy.html new file mode 100644 index 00000000..cb54d6e2 --- /dev/null +++ b/docs/v2.0.2/hierarchy.html @@ -0,0 +1,5 @@ +archipelago.js - v2.0.2
                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/index.html b/docs/v2.0.2/index.html new file mode 100644 index 00000000..0f1cdf38 --- /dev/null +++ b/docs/v2.0.2/index.html @@ -0,0 +1,32 @@ +archipelago.js - v2.0.2
                                                    +

                                                    archipelago.js - v2.0.2

                                                    archipelago.js Icon archipelago.js

                                                    GitHub License +Types +NPM Version +NPM Downloads +Static Badge

                                                    +

                                                    A runtime-agnostic and zero dependency TypeScript/JavaScript library for communicating with Archipelago servers.

                                                    +

                                                    Targeted to work on all major desktop and mobile browsers (Firefox, +Chromium, and Safari) and server-side runtimes such as +Node.js, Bun, and Deno.

                                                    +

                                                    Install via npm install archipelago.js (or via your preferred package manager's flavor).

                                                    +

                                                    Check out the quick start documentation here!

                                                    +

                                                    The full API documentation is located here. Please be sure to reference it +while you are developing your JavaScript-based clients.

                                                    +

                                                    This library supports 100% of the Archipelago network protocol referenced +here as of 2024-11-03 +(0.5.1 RC1). See more information about Archipelago at their website.

                                                    +

                                                    Archipelago.js is built using TypeScript and the Bun bundler. You can set up your development environment by cloning +this repository to a desired location on your computer and installing its devDependencies.

                                                    +
                                                    git clone https://github.com/ThePhar/archipelago.js
                                                    cd archipelago.js
                                                    npm install # or pnpm install +
                                                    + +

                                                    Then to build, have Bun installed and run npm run build (or pnpm build).

                                                    +

                                                    Archipelago.js is written in TypeScript and includes a strong ESLint config file to ensure code consistency. Be sure +to follow the code standards of this repository and check your work with npm run lint.

                                                    +

                                                    Currently, there are no automated tests for this library, so all testing in browser, Node, Deno, and Bun are done +manually. This is certainly one area that can be expanded upon.

                                                    +

                                                    Alternatively, expanding upon the documentation (either through the JSDoc or tutorial-like guides) would be appreciated.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.AdminCommandResultJSONPacket.html b/docs/v2.0.2/interfaces/index.API.AdminCommandResultJSONPacket.html new file mode 100644 index 00000000..20f39402 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.AdminCommandResultJSONPacket.html @@ -0,0 +1,12 @@ +AdminCommandResultJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface AdminCommandResultJSONPacket

                                                    Sent to relevant clients to broadcast the result of an admin command.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface AdminCommandResultJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        type: "AdminCommandResult";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.BouncePacket.html b/docs/v2.0.2/interfaces/index.API.BouncePacket.html new file mode 100644 index 00000000..e85d8303 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.BouncePacket.html @@ -0,0 +1,17 @@ +BouncePacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface BouncePacket

                                                    Sent by the client to be broadcast from the server to all connected clients that match any one of the filter +arguments.

                                                    +

                                                    Useful for commonly implemented features such as DeathLink.

                                                    +
                                                    interface BouncePacket {
                                                        cmd: "Bounce";
                                                        data: JSONRecord;
                                                        games?: string[];
                                                        slots?: number[];
                                                        tags?: string[];
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    Any data you want to send.

                                                    +
                                                    games?: string[]

                                                    Optional. Games that should receive this message.

                                                    +
                                                    slots?: number[]

                                                    Optional. Player ids that should receive this message.

                                                    +
                                                    tags?: string[]

                                                    Optional. Client tags that should receive this message.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.BouncedPacket.html b/docs/v2.0.2/interfaces/index.API.BouncedPacket.html new file mode 100644 index 00000000..2c3dfe28 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.BouncedPacket.html @@ -0,0 +1,15 @@ +BouncedPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface BouncedPacket

                                                    Sent to clients after a client requested this message be sent to them, more info in the BouncePacket.

                                                    +
                                                    interface BouncedPacket {
                                                        cmd: "Bounced";
                                                        data: JSONRecord;
                                                        games?: string[];
                                                        slots?: number[];
                                                        tags?: string[];
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    A verbatim copy of the data in the BouncePacket package.

                                                    +
                                                    games?: string[]

                                                    Optional. Game names this message is targeting.

                                                    +
                                                    slots?: number[]

                                                    Optional. Player slot IDs that this message is targeting.

                                                    +
                                                    tags?: string[]

                                                    Optional. Client tags this message is targeting.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.ChatJSONPacket.html b/docs/v2.0.2/interfaces/index.API.ChatJSONPacket.html new file mode 100644 index 00000000..c5d40e85 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.ChatJSONPacket.html @@ -0,0 +1,18 @@ +ChatJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface ChatJSONPacket

                                                    Sent to clients to broadcast a normal chat message.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface ChatJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        message: string;
                                                        slot: number;
                                                        team: number;
                                                        type: "Chat";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +
                                                    message: string

                                                    Original chat message without sender prefix.

                                                    +
                                                    slot: number

                                                    Slot of the triggering player.

                                                    +
                                                    team: number

                                                    Team of the triggering player.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.CollectJSONPacket.html b/docs/v2.0.2/interfaces/index.API.CollectJSONPacket.html new file mode 100644 index 00000000..c2dd1205 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.CollectJSONPacket.html @@ -0,0 +1,16 @@ +CollectJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface CollectJSONPacket

                                                    Sent to clients to broadcast a player has collected all their remaining items from the multi-world.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface CollectJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        slot: number;
                                                        team: number;
                                                        type: "Collect";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +
                                                    slot: number

                                                    Slot of the triggering player.

                                                    +
                                                    team: number

                                                    Team of the triggering player.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.CommandResultJSONPacket.html b/docs/v2.0.2/interfaces/index.API.CommandResultJSONPacket.html new file mode 100644 index 00000000..7c4d5c96 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.CommandResultJSONPacket.html @@ -0,0 +1,12 @@ +CommandResultJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface CommandResultJSONPacket

                                                    Sent to relevant clients to broadcast the result of a chat command.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface CommandResultJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        type: "CommandResult";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.ConnectPacket.html b/docs/v2.0.2/interfaces/index.API.ConnectPacket.html new file mode 100644 index 00000000..22c74447 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.ConnectPacket.html @@ -0,0 +1,24 @@ +ConnectPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface ConnectPacket

                                                    Sent by the client to authenticate a connection to an Archipelago session.

                                                    +
                                                    interface ConnectPacket {
                                                        cmd: "Connect";
                                                        game: string;
                                                        items_handling: number;
                                                        name: string;
                                                        password: string;
                                                        slot_data: boolean;
                                                        tags: string[];
                                                        uuid: string;
                                                        version: NetworkVersion;
                                                    }

                                                    Properties

                                                    cmd
                                                    game: string

                                                    The name of the game the client is playing.

                                                    +
                                                    items_handling: number

                                                    Bit flags configuring which items should be sent by the server. See itemsHandlingFlags for information +on individual flags.

                                                    +
                                                    name: string

                                                    The slot name for this client.

                                                    +
                                                    password: string

                                                    If the game session requires a password, it should be passed here.

                                                    +
                                                    slot_data: boolean

                                                    If true, the ConnectedPacket will contain slot data.

                                                    +
                                                    tags: string[]

                                                    Denotes special features or capabilities that the sender is currently capable of.

                                                    +
                                                    uuid: string

                                                    Unique identifier for player client.

                                                    +

                                                    An object representing the minimum Archipelago server version this client supports.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.ConnectUpdatePacket.html b/docs/v2.0.2/interfaces/index.API.ConnectUpdatePacket.html new file mode 100644 index 00000000..3b99906f --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.ConnectUpdatePacket.html @@ -0,0 +1,12 @@ +ConnectUpdatePacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface ConnectUpdatePacket

                                                    Update arguments from the Connect packet, currently only updating tags and items_handling is supported.

                                                    +
                                                    interface ConnectUpdatePacket {
                                                        cmd: "ConnectUpdate";
                                                        items_handling: number;
                                                        tags: string[];
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd
                                                    items_handling: number

                                                    Bit flags configuring which items should be sent by the server. See itemsHandlingFlags for additional +information.

                                                    +
                                                    tags: string[]

                                                    Denotes special features or capabilities that the sender is currently capable of.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.ConnectedPacket.html b/docs/v2.0.2/interfaces/index.API.ConnectedPacket.html new file mode 100644 index 00000000..6a14a8f5 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.ConnectedPacket.html @@ -0,0 +1,26 @@ +ConnectedPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface ConnectedPacket

                                                    Sent to clients when the connection handshake is successfully completed.

                                                    +
                                                    interface ConnectedPacket {
                                                        checked_locations: number[];
                                                        cmd: "Connected";
                                                        hint_points: number;
                                                        missing_locations: number[];
                                                        players: NetworkPlayer[];
                                                        slot: number;
                                                        slot_data: JSONSerializable;
                                                        slot_info: Record<string, NetworkSlot>;
                                                        team: number;
                                                    }

                                                    Properties

                                                    checked_locations: number[]

                                                    Contains integer ids of all locations that have been checked. Useful for trackers, among other things. Location +ids are valid in the range of -2^53^ to +(2^53)-1 (inclusive), with negative values and zero reserved for +Archipelago.

                                                    +
                                                    cmd
                                                    hint_points: number

                                                    Number of hint points that the current player has.

                                                    +
                                                    missing_locations: number[]

                                                    Contains integer ids of remaining locations that need to be checked. Useful for trackers, among other things.

                                                    +
                                                    players: NetworkPlayer[]

                                                    List denoting other players in the multi-world, whether connected or not.

                                                    +
                                                    slot: number

                                                    Your slot number on your team. See NetworkPlayer for more info on the slot number.

                                                    +
                                                    slot_data: JSONSerializable

                                                    Contains an object of slot related data, which differs per slot. If slot data was not requested in the +ConnectPacket, this value be an empty object.

                                                    +
                                                    slot_info: Record<string, NetworkSlot>

                                                    Object of each slot with their NetworkSlot information.

                                                    +
                                                    team: number

                                                    Your team number. See NetworkPlayer for more info on team number.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.ConnectionRefusedPacket.html b/docs/v2.0.2/interfaces/index.API.ConnectionRefusedPacket.html new file mode 100644 index 00000000..a3858eb8 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.ConnectionRefusedPacket.html @@ -0,0 +1,10 @@ +ConnectionRefusedPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface ConnectionRefusedPacket

                                                    Sent to clients when the server refuses connection. This is sent during the initial connection handshake.

                                                    +
                                                    interface ConnectionRefusedPacket {
                                                        cmd: "ConnectionRefused";
                                                        errors?: ConnectionError[];
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd
                                                    errors?: ConnectionError[]

                                                    Optional. When provided, should contain one or more ConnectionError values. See ConnectionError +for additional information on what each error means.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.CountdownJSONPacket.html b/docs/v2.0.2/interfaces/index.API.CountdownJSONPacket.html new file mode 100644 index 00000000..2812fb70 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.CountdownJSONPacket.html @@ -0,0 +1,14 @@ +CountdownJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface CountdownJSONPacket

                                                    Sent to clients to broadcast a countdown message, usually for counting down the start of a game.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface CountdownJSONPacket {
                                                        cmd: "PrintJSON";
                                                        countdown: number;
                                                        data: JSONMessagePart[];
                                                        type: "Countdown";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd
                                                    countdown: number

                                                    Amount of seconds remaining on the countdown.

                                                    +

                                                    All the textual metadata for this packet.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.DataPackagePacket.html b/docs/v2.0.2/interfaces/index.API.DataPackagePacket.html new file mode 100644 index 00000000..9d9db757 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.DataPackagePacket.html @@ -0,0 +1,11 @@ +DataPackagePacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface DataPackagePacket

                                                    Sent to clients to provide what is known as a 'data package' which contains information to enable a client to most +easily communicate with the Archipelago server. Contents include things like location id to name mappings, among +others; see DataPackage for more info.

                                                    +
                                                    interface DataPackagePacket {
                                                        cmd: "DataPackage";
                                                        data: DataPackage;
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    The data package as an object of DataPackage.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.GetDataPackagePacket.html b/docs/v2.0.2/interfaces/index.API.GetDataPackagePacket.html new file mode 100644 index 00000000..31a5e4b2 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.GetDataPackagePacket.html @@ -0,0 +1,10 @@ +GetDataPackagePacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface GetDataPackagePacket

                                                    Sent by the client to request the data package from the server. Does not require client authentication.

                                                    +
                                                    interface GetDataPackagePacket {
                                                        cmd: "GetDataPackage";
                                                        games?: string[];
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd
                                                    games?: string[]

                                                    Optional. If specified, will only send back the specified data.

                                                    +

                                                    It is recommended to only request required data to reduce network bandwidth costs.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.GetPacket.html b/docs/v2.0.2/interfaces/index.API.GetPacket.html new file mode 100644 index 00000000..be0c7f89 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.GetPacket.html @@ -0,0 +1,24 @@ +GetPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface GetPacket

                                                    Sent by the client to request a single or multiple values from the server's data storage, see the SetPacket +for how to write values to the data storage. A GetPacket will be answered with a RetrievedPacket.

                                                    +

                                                    Additional properties sent in this package will also be added to the RetrievedPacket it triggers.

                                                    +

                                                    Some special read-only keys exist with specific return data:

                                                    +
                                                      +
                                                    • _read_hints_{team}_{slot}: NetworkHint[] - All hinted NetworkHint items relevant to the requested +player.
                                                    • +
                                                    • _read_slot_data_{slot}: JSONSerializable - slot_data belonging to the requested slot.
                                                    • +
                                                    • _read_item_name_groups_{game}: Record<string, string[]> - An object of item groups and their members.
                                                    • +
                                                    • _read_location_name_groups_{game}: Record<string, string[]> - An object of location groups and their +members.
                                                    • +
                                                    • _read_client_status_{team}_{slot}: number - The current status for the requested player. See +clientStatuses for all known client statues.
                                                    • +
                                                    • _read_race_mode: number - Returns 0 if race mode is disabled, 1 if it's enabled.
                                                    • +
                                                    +
                                                    interface GetPacket {
                                                        cmd: "Get";
                                                        keys: string[];
                                                        [p: string]: JSONSerializable;
                                                    }

                                                    Indexable

                                                    Properties

                                                    Properties

                                                    cmd
                                                    keys: string[]

                                                    Keys to retrieve the values for.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.GoalJSONPacket.html b/docs/v2.0.2/interfaces/index.API.GoalJSONPacket.html new file mode 100644 index 00000000..701c3ed2 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.GoalJSONPacket.html @@ -0,0 +1,16 @@ +GoalJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface GoalJSONPacket

                                                    Sent to clients to broadcast a player has met their goal condition.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface GoalJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        slot: number;
                                                        team: number;
                                                        type: "Goal";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +
                                                    slot: number

                                                    Slot of the triggering player.

                                                    +
                                                    team: number

                                                    Team of the triggering player.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.HintJSONPacket.html b/docs/v2.0.2/interfaces/index.API.HintJSONPacket.html new file mode 100644 index 00000000..a5b0b74f --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.HintJSONPacket.html @@ -0,0 +1,18 @@ +HintJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface HintJSONPacket

                                                    Sent to relevant clients to broadcast item hint information.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface HintJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        found: boolean;
                                                        item: NetworkItem;
                                                        receiving: number;
                                                        type: "Hint";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +
                                                    found: boolean

                                                    Whether the location hinted for was checked.

                                                    +

                                                    Source player's identifier, location identifier, item identifier and item flags.

                                                    +
                                                    receiving: number

                                                    Destination player's identifier.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.InvalidArgumentsPacketPacket.html b/docs/v2.0.2/interfaces/index.API.InvalidArgumentsPacketPacket.html new file mode 100644 index 00000000..a7e70930 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.InvalidArgumentsPacketPacket.html @@ -0,0 +1,12 @@ +InvalidArgumentsPacketPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface InvalidArgumentsPacketPacket

                                                    Sent to clients if the server caught a problem with a given packet's arguments.

                                                    +

                                                    InvalidPacketPacket for all possible InvalidPacket packet subtypes.

                                                    +
                                                    interface InvalidArgumentsPacketPacket {
                                                        cmd: "InvalidPacket";
                                                        text: string;
                                                        type: "arguments";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd
                                                    text: string

                                                    A descriptive message of the problem at hand.

                                                    +
                                                    type

                                                    The type of problem that was detected in the packet.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.InvalidCommandPacketPacket.html b/docs/v2.0.2/interfaces/index.API.InvalidCommandPacketPacket.html new file mode 100644 index 00000000..51b7f1d0 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.InvalidCommandPacketPacket.html @@ -0,0 +1,14 @@ +InvalidCommandPacketPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface InvalidCommandPacketPacket

                                                    Sent to clients if the server caught a problem with a given packet's cmd property.

                                                    +

                                                    InvalidPacketPacket for all possible InvalidPacket packet subtypes.

                                                    +
                                                    interface InvalidCommandPacketPacket {
                                                        cmd: "InvalidPacket";
                                                        original_cmd: string;
                                                        text: string;
                                                        type: "cmd";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd
                                                    original_cmd: string

                                                    The cmd argument of the faulty packet.

                                                    +
                                                    text: string

                                                    A descriptive message of the problem at hand.

                                                    +
                                                    type

                                                    The type of problem that was detected in the packet.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.ItemCheatJSONPacket.html b/docs/v2.0.2/interfaces/index.API.ItemCheatJSONPacket.html new file mode 100644 index 00000000..aa60a24d --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.ItemCheatJSONPacket.html @@ -0,0 +1,18 @@ +ItemCheatJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface ItemCheatJSONPacket

                                                    Sent to clients to broadcast a player has received a cheated item (via !getitem).

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface ItemCheatJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        item: NetworkItem;
                                                        receiving: number;
                                                        team: number;
                                                        type: "ItemCheat";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +

                                                    Source player's identifier, location identifier, item identifier and item flags.

                                                    +
                                                    receiving: number

                                                    Destination player's identifier.

                                                    +
                                                    team: number

                                                    Team of the triggering player.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.ItemSendJSONPacket.html b/docs/v2.0.2/interfaces/index.API.ItemSendJSONPacket.html new file mode 100644 index 00000000..75dd18b4 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.ItemSendJSONPacket.html @@ -0,0 +1,16 @@ +ItemSendJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface ItemSendJSONPacket

                                                    Sent to clients to broadcast a player has received an item.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface ItemSendJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        item: NetworkItem;
                                                        receiving: number;
                                                        type: "ItemSend";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +

                                                    Source player's identifier, location identifier, item identifier and item flags.

                                                    +
                                                    receiving: number

                                                    Destination player's identifier.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.JoinJSONPacket.html b/docs/v2.0.2/interfaces/index.API.JoinJSONPacket.html new file mode 100644 index 00000000..77d1760c --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.JoinJSONPacket.html @@ -0,0 +1,18 @@ +JoinJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface JoinJSONPacket

                                                    Sent to clients to broadcast a client has connected.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface JoinJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        slot: number;
                                                        tags: string[];
                                                        team: number;
                                                        type: "Join";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +
                                                    slot: number

                                                    Slot of the triggering player.

                                                    +
                                                    tags: string[]

                                                    Tags of the triggering player.

                                                    +
                                                    team: number

                                                    Team of the triggering player.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.LocationChecksPacket.html b/docs/v2.0.2/interfaces/index.API.LocationChecksPacket.html new file mode 100644 index 00000000..f92eab61 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.LocationChecksPacket.html @@ -0,0 +1,11 @@ +LocationChecksPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface LocationChecksPacket

                                                    Sent by the client to inform the server of locations that the client has checked. Used to inform the server of new +checks that are made, as well as to sync state.

                                                    +
                                                    interface LocationChecksPacket {
                                                        cmd: "LocationChecks";
                                                        locations: number[];
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd
                                                    locations: number[]

                                                    The ids of the locations checked by the client. May contain any number of checks, even ones sent before; +duplicates do not cause issues with the Archipelago server.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.LocationInfoPacket.html b/docs/v2.0.2/interfaces/index.API.LocationInfoPacket.html new file mode 100644 index 00000000..766505a2 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.LocationInfoPacket.html @@ -0,0 +1,10 @@ +LocationInfoPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface LocationInfoPacket

                                                    Sent to clients to acknowledge a received LocationScoutsPacket and responds with the item in each location +being scouted.

                                                    +
                                                    interface LocationInfoPacket {
                                                        cmd: "LocationInfo";
                                                        locations: NetworkItem[];
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd
                                                    locations: NetworkItem[]

                                                    Contains the list of item(s) in the location(s) scouted.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.LocationScoutsPacket.html b/docs/v2.0.2/interfaces/index.API.LocationScoutsPacket.html new file mode 100644 index 00000000..a885376c --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.LocationScoutsPacket.html @@ -0,0 +1,20 @@ +LocationScoutsPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface LocationScoutsPacket

                                                    Sent by the client to inform the server of locations the client has seen, but not checked. Useful in cases in which +the item may appear in the game world, but may not be immediately gettable. The server will always respond with a +LocationInfoPacket with the items located in the scouted location.

                                                    +
                                                    interface LocationScoutsPacket {
                                                        cmd: "LocationScouts";
                                                        create_as_hint: 0 | 1 | 2;
                                                        locations: number[];
                                                    }

                                                    Properties

                                                    cmd
                                                    create_as_hint: 0 | 1 | 2
                                                      +
                                                    • If set to 0, this packet will not create hints for any locations in this packet.
                                                    • +
                                                    • If set to 1, this packet will create hints for all locations in this packet and broadcast them to all +relevant clients.
                                                    • +
                                                    • If set to 2, this packet will create hints for all locations in this packet and broadcast only new hints to +all relevant clients.
                                                    • +
                                                    +
                                                    locations: number[]

                                                    The ids of the locations seen by the client. May contain any number of locations, even ones sent before; +duplicates do not cause issues with the Archipelago server.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.PartJSONPacket.html b/docs/v2.0.2/interfaces/index.API.PartJSONPacket.html new file mode 100644 index 00000000..ffa3d352 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.PartJSONPacket.html @@ -0,0 +1,16 @@ +PartJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface PartJSONPacket

                                                    Sent to clients to broadcast a client has disconnected.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface PartJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        slot: number;
                                                        team: number;
                                                        type: "Part";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +
                                                    slot: number

                                                    Slot of the triggering player.

                                                    +
                                                    team: number

                                                    Team of the triggering player.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.ReceivedItemsPacket.html b/docs/v2.0.2/interfaces/index.API.ReceivedItemsPacket.html new file mode 100644 index 00000000..0caf0bb1 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.ReceivedItemsPacket.html @@ -0,0 +1,11 @@ +ReceivedItemsPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface ReceivedItemsPacket

                                                    Sent to clients when they receive an item.

                                                    +
                                                    interface ReceivedItemsPacket {
                                                        cmd: "ReceivedItems";
                                                        index: number;
                                                        items: NetworkItem[];
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd
                                                    index: number

                                                    The next empty slot in the list of items for the receiving client. Useful for tracking items.

                                                    +
                                                    items: NetworkItem[]

                                                    The items which the client is receiving.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.ReleaseJSONPacket.html b/docs/v2.0.2/interfaces/index.API.ReleaseJSONPacket.html new file mode 100644 index 00000000..e5b9c07a --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.ReleaseJSONPacket.html @@ -0,0 +1,16 @@ +ReleaseJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface ReleaseJSONPacket

                                                    Sent to clients to broadcast a player has released all remaining items in their world.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface ReleaseJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        slot: number;
                                                        team: number;
                                                        type: "Release";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +
                                                    slot: number

                                                    Slot of the triggering player.

                                                    +
                                                    team: number

                                                    Team of the triggering player.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.RetrievedPacket.html b/docs/v2.0.2/interfaces/index.API.RetrievedPacket.html new file mode 100644 index 00000000..f84af83c --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.RetrievedPacket.html @@ -0,0 +1,12 @@ +RetrievedPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface RetrievedPacket

                                                    Sent to clients as a response to a GetPacket.

                                                    +

                                                    Additional arguments added to the GetPacket that triggered this RetrievedPacket will also be passed +along.

                                                    +
                                                    interface RetrievedPacket {
                                                        cmd: "Retrieved";
                                                        keys: {
                                                            [key: string]: JSONSerializable;
                                                        };
                                                        [p: string]: JSONSerializable;
                                                    }

                                                    Indexable

                                                    Properties

                                                    Properties

                                                    cmd
                                                    keys: {
                                                        [key: string]: JSONSerializable;
                                                    }

                                                    A key-value collection containing all the values for the keys requested in the GetPacket.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.RoomInfoPacket.html b/docs/v2.0.2/interfaces/index.API.RoomInfoPacket.html new file mode 100644 index 00000000..072357a6 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.RoomInfoPacket.html @@ -0,0 +1,31 @@ +RoomInfoPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface RoomInfoPacket

                                                    Sent to clients when they connect to an Archipelago server, but before they authenticate.

                                                    +
                                                    interface RoomInfoPacket {
                                                        cmd: "RoomInfo";
                                                        datapackage_checksums: Record<string, string>;
                                                        games: string[];
                                                        generator_version: NetworkVersion;
                                                        hint_cost: number;
                                                        location_check_points: number;
                                                        password: boolean;
                                                        permissions: PermissionTable;
                                                        seed_name: string;
                                                        tags: string[];
                                                        time: number;
                                                        version: NetworkVersion;
                                                    }

                                                    Properties

                                                    cmd
                                                    datapackage_checksums: Record<string, string>

                                                    Checksum hash of the individual games' data packages the server will send. Used by newer clients to decide which +games' caches are outdated. See DataPackage for more information on the data package.

                                                    +
                                                    games: string[]

                                                    List of games present in this multi-world.

                                                    +
                                                    generator_version: NetworkVersion

                                                    Object denoting the version of Archipelago which generated the multi-world.

                                                    +
                                                    hint_cost: number

                                                    The amount of points it costs to receive a hint from the server.

                                                    +
                                                    location_check_points: number

                                                    The amount of hint points you receive per item/location check completed.

                                                    +
                                                    password: boolean

                                                    Denoted whether a password is required to join this room.

                                                    +
                                                    permissions: PermissionTable

                                                    Mapping of restrict-able commands to their current PermissionValue level.

                                                    +
                                                    seed_name: string

                                                    Uniquely identifying name for this generation. Based on the seed, but not identical to prevent spoilers.

                                                    +
                                                    tags: string[]

                                                    Denotes special features or capabilities that the sender is capable of. Example: WebHost

                                                    +
                                                    time: number

                                                    Unix time stamp in seconds of "now". Sent for time synchronization if wanted for things like a DeathLink +BouncePacket.

                                                    +

                                                    Object denoting the version of Archipelago which the server is running.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.RoomUpdatePacket.html b/docs/v2.0.2/interfaces/index.API.RoomUpdatePacket.html new file mode 100644 index 00000000..1fae9f0d --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.RoomUpdatePacket.html @@ -0,0 +1,29 @@ +RoomUpdatePacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface RoomUpdatePacket

                                                    Sent when there is a need to update information about the present game session. Generally useful for async games. +Once authenticated, this may also contain data from ConnectedPacket.

                                                    +

                                                    All arguments for this packet are optional, only changes are sent.

                                                    +
                                                    interface RoomUpdatePacket {
                                                        checked_locations?: number[];
                                                        cmd: "RoomUpdate";
                                                        hint_cost?: number;
                                                        hint_points?: number;
                                                        location_check_points?: number;
                                                        password?: boolean;
                                                        permissions: PermissionTable;
                                                        players?: NetworkPlayer[];
                                                        tags?: string[];
                                                        time?: number;
                                                    }

                                                    Properties

                                                    checked_locations?: number[]

                                                    Might be a partial update, containing new locations that were checked, especially from a co-op partner in the +same slot.

                                                    +
                                                    cmd
                                                    hint_cost?: number

                                                    The amount of points it costs to receive a hint from the server.

                                                    +
                                                    hint_points?: number

                                                    Number of hint points that the current player has.

                                                    +
                                                    location_check_points?: number

                                                    The amount of hint points you receive per item/location check completed.

                                                    +
                                                    password?: boolean

                                                    Denoted whether a password is required to join this room.

                                                    +
                                                    permissions: PermissionTable

                                                    Mapping of restrict-able commands to their current PermissionValue level.

                                                    +
                                                    players?: NetworkPlayer[]

                                                    Information on the players, whether connected or not.

                                                    +
                                                    tags?: string[]

                                                    Denotes special features or capabilities that the sender is capable of. Example: WebHost

                                                    +
                                                    time?: number

                                                    Unix time stamp of "now". Send for time synchronization if wanted for things like a DeathLink +BouncePacket.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.SayPacket.html b/docs/v2.0.2/interfaces/index.API.SayPacket.html new file mode 100644 index 00000000..3328a318 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.SayPacket.html @@ -0,0 +1,9 @@ +SayPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface SayPacket

                                                    Basic chat-type packet which sends text to the server to be distributed to other clients.

                                                    +
                                                    interface SayPacket {
                                                        cmd: "Say";
                                                        text: string;
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd
                                                    text: string

                                                    Text to send to others.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.ServerChatJSONPacket.html b/docs/v2.0.2/interfaces/index.API.ServerChatJSONPacket.html new file mode 100644 index 00000000..83d1e0b1 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.ServerChatJSONPacket.html @@ -0,0 +1,14 @@ +ServerChatJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface ServerChatJSONPacket

                                                    Sent to clients to broadcast a server-side chat message.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface ServerChatJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        message: string;
                                                        type: "ServerChat";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +
                                                    message: string

                                                    Original chat message without sender prefix.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.SetNotifyPacket.html b/docs/v2.0.2/interfaces/index.API.SetNotifyPacket.html new file mode 100644 index 00000000..14b671b5 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.SetNotifyPacket.html @@ -0,0 +1,10 @@ +SetNotifyPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface SetNotifyPacket

                                                    Used to register your current session for receiving all SetReplyPackets of certain keys to allow your client +to keep track of changes.

                                                    +
                                                    interface SetNotifyPacket {
                                                        cmd: "SetNotify";
                                                        keys: string[];
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd
                                                    keys: string[]

                                                    Keys to receive all SetReplyPackets for.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.SetPacket.html b/docs/v2.0.2/interfaces/index.API.SetPacket.html new file mode 100644 index 00000000..3652afe2 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.SetPacket.html @@ -0,0 +1,20 @@ +SetPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface SetPacket

                                                    Sent by the client to write data to the server's data storage, that data can then be shared across worlds or just +saved for later. Values for keys in the data storage can be retrieved with a GetPacket, or monitored with a +SetNotifyPacket.

                                                    +

                                                    Additional arguments sent in this package will also be added to the SetReplyPacket it triggers.

                                                    +
                                                    interface SetPacket {
                                                        cmd: "Set";
                                                        default: JSONSerializable;
                                                        key: string;
                                                        operations: DataStorageOperation[];
                                                        want_reply: boolean;
                                                        [p: string]: JSONSerializable;
                                                    }

                                                    Indexable

                                                    Properties

                                                    cmd

                                                    The default value to use in case the key has no value on the server.

                                                    +
                                                    key: string

                                                    The key to manipulate.

                                                    +
                                                    operations: DataStorageOperation[]

                                                    Operations to apply to the value, multiple operations can be present, and they will be executed in order of +appearance. See DataStorageOperation for information on supported operations.

                                                    +
                                                    want_reply: boolean

                                                    If set, the server will send a SetReplyPacket back to the client.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.SetReplyPacket.html b/docs/v2.0.2/interfaces/index.API.SetReplyPacket.html new file mode 100644 index 00000000..6cee2b8b --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.SetReplyPacket.html @@ -0,0 +1,18 @@ +SetReplyPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface SetReplyPacket

                                                    Sent to clients in response to a SetPacket if want_reply was set to true, or if the client has registered +to receive updates for a certain key using the SetNotifyPacket. SetReplyPackets are sent even if a +SetPacket package did not alter the value for the key.

                                                    +

                                                    Additional arguments added to the SetPacket that triggered this SetReplyPacket will also be passed +along.

                                                    +
                                                    interface SetReplyPacket {
                                                        cmd: "SetReply";
                                                        key: string;
                                                        original_value: JSONSerializable;
                                                        value: JSONSerializable;
                                                        [p: string]: JSONSerializable;
                                                    }

                                                    Indexable

                                                    Properties

                                                    Properties

                                                    cmd
                                                    key: string

                                                    The key that was updated.

                                                    +
                                                    original_value: JSONSerializable

                                                    The value the key had before it was updated.

                                                    +

                                                    The new value for the key.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.StatusUpdatePacket.html b/docs/v2.0.2/interfaces/index.API.StatusUpdatePacket.html new file mode 100644 index 00000000..2e5d8d13 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.StatusUpdatePacket.html @@ -0,0 +1,10 @@ +StatusUpdatePacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface StatusUpdatePacket

                                                    Sent to the server to update on the client's status. Examples include readiness or goal completion.

                                                    +
                                                    interface StatusUpdatePacket {
                                                        cmd: "StatusUpdate";
                                                        status:
                                                            | 0
                                                            | 5
                                                            | 10
                                                            | 20
                                                            | 30;
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd
                                                    status:
                                                        | 0
                                                        | 5
                                                        | 10
                                                        | 20
                                                        | 30

                                                    The new client status value to set this slot to. See clientStatuses for all known values.

                                                    +

                                                    This packet is ignored if the client status was set to clientStatuses.goal.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.SyncPacket.html b/docs/v2.0.2/interfaces/index.API.SyncPacket.html new file mode 100644 index 00000000..a36ec77d --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.SyncPacket.html @@ -0,0 +1,10 @@ +SyncPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface SyncPacket

                                                    Sent to server to request a ReceivedItemsPacket with all items ever received.

                                                    +

                                                    In principle, a network desync of items should never occur, as if connection is broken and then +re-established, the server will resend all items ever received on reconnection, so use of this packet should never be +needed.

                                                    +
                                                    interface SyncPacket {
                                                        cmd: "Sync";
                                                    }

                                                    Properties

                                                    cmd +

                                                    Properties

                                                    cmd
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.TagsChangedJSONPacket.html b/docs/v2.0.2/interfaces/index.API.TagsChangedJSONPacket.html new file mode 100644 index 00000000..f7932af2 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.TagsChangedJSONPacket.html @@ -0,0 +1,18 @@ +TagsChangedJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface TagsChangedJSONPacket

                                                    Sent to clients to broadcast a client has changed their tags.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface TagsChangedJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        slot: number;
                                                        tags: string[];
                                                        team: number;
                                                        type: "TagsChanged";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +
                                                    slot: number

                                                    Slot of the triggering player.

                                                    +
                                                    tags: string[]

                                                    Tags of the triggering player.

                                                    +
                                                    team: number

                                                    Team of the triggering player.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.API.TutorialJSONPacket.html b/docs/v2.0.2/interfaces/index.API.TutorialJSONPacket.html new file mode 100644 index 00000000..50c325cb --- /dev/null +++ b/docs/v2.0.2/interfaces/index.API.TutorialJSONPacket.html @@ -0,0 +1,12 @@ +TutorialJSONPacket | archipelago.js - v2.0.2
                                                    +

                                                    Interface TutorialJSONPacket

                                                    Sent to relevant clients to broadcast tutorial information, usually on first connection.

                                                    +

                                                    PrintJSONPacket for all possible PrintJSON packet subtypes.

                                                    +
                                                    interface TutorialJSONPacket {
                                                        cmd: "PrintJSON";
                                                        data: JSONMessagePart[];
                                                        type: "Tutorial";
                                                    }

                                                    Properties

                                                    Properties

                                                    cmd

                                                    All the textual metadata for this packet.

                                                    +
                                                    type

                                                    The PrintJSONPacket subtype.

                                                    +
                                                    \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.ClientOptions.html b/docs/v2.0.2/interfaces/index.ClientOptions.html new file mode 100644 index 00000000..29209aa9 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.ClientOptions.html @@ -0,0 +1,30 @@ +ClientOptions | archipelago.js - v2.0.2
                                                    +

                                                      Interface ClientOptions

                                                      An interface of client options that can be set on a Client object.

                                                      +
                                                      interface ClientOptions {
                                                          autoFetchDataPackage?: boolean;
                                                          debugLogVersions: boolean;
                                                          maximumMessages?: number;
                                                          timeout?: number;
                                                      }

                                                      Properties

                                                      autoFetchDataPackage?: boolean

                                                      Automatically requests the DataPackage from the server during Client.login, if the packages are missing +in the DataPackageManager.

                                                      +
                                                      true
                                                      +
                                                      + +
                                                      debugLogVersions: boolean

                                                      If enabled, logs the game, library version, and user agent to data storage, which can be used for debugging +purposes.

                                                      +
                                                      true
                                                      +
                                                      + +
                                                      maximumMessages?: number

                                                      Determines the maximum number of chat messages to log in MessageManager.

                                                      +
                                                      1000
                                                      +
                                                      + +

                                                      If 0 or fewer, message logging will effectively be disabled.

                                                      +
                                                      timeout?: number

                                                      The maximum number of milliseconds to wait for a response from the server when awaiting a response to a client +packet.

                                                      +
                                                      10000
                                                      +
                                                      + +
                                                      \ No newline at end of file diff --git a/docs/v2.0.2/interfaces/index.ConnectionOptions.html b/docs/v2.0.2/interfaces/index.ConnectionOptions.html new file mode 100644 index 00000000..8b5d7c52 --- /dev/null +++ b/docs/v2.0.2/interfaces/index.ConnectionOptions.html @@ -0,0 +1,40 @@ +ConnectionOptions | archipelago.js - v2.0.2
                                                      +

                                                        Interface ConnectionOptions

                                                        An interface of additional connection arguments when authenticating to an Archipelago server.

                                                        +
                                                        interface ConnectionOptions {
                                                            items?: number;
                                                            password?: string;
                                                            slotData?: boolean;
                                                            tags?: string[];
                                                            uuid?: string;
                                                            version?: {
                                                                build: number;
                                                                major: number;
                                                                minor: number;
                                                            };
                                                        }

                                                        Properties

                                                        items?: number

                                                        Determines the kinds of received item events the server will broadcast to this client when locations are checked.

                                                        +

                                                        Value is an integer bitflag combination of values that is documented in itemsHandlingFlags.

                                                        +

                                                        Defaults to request all received item events, so unless you need local-only functionality this property +can usually be omitted.

                                                        +
                                                        password?: string

                                                        The room password, if the server requires a password to join. Otherwise, optional.

                                                        +
                                                        ""
                                                        +
                                                        + +
                                                        slotData?: boolean

                                                        Request this slot's data during connection. If false, server will respond with an empty object ({}) instead.

                                                        +
                                                        true
                                                        +
                                                        + +
                                                        tags?: string[]

                                                        A list of strings that denote special features or capabilities this sender is currently capable of. A list of +common tags is documented here:

                                                        +

                                                        https://github.com/ArchipelagoMW/Archipelago/blob/main/docs/network%20protocol.md#tags.

                                                        +
                                                        []
                                                        +
                                                        + +
                                                        uuid?: string

                                                        A unique identifier for this client.

                                                        +

                                                        Not currently used for anything server side, but may change or be deprecated in a future Archipelago update.

                                                        +

                                                        Defaults to a randomly generated v4 UUID.

                                                        +
                                                        version?: {
                                                            build: number;
                                                            major: number;
                                                            minor: number;
                                                        }

                                                        The version of Archipelago this client was designed for. This can be enforced on the server side to force a user +to update their client, if a new version was released.

                                                        +

                                                        Type declaration

                                                        • Readonlybuild: number

                                                          The build version component.

                                                          +
                                                        • Readonlymajor: number

                                                          The major version component.

                                                          +
                                                        • Readonlyminor: number

                                                          The minor version component.

                                                          +

                                                        targetVersion

                                                        +
                                                        \ No newline at end of file diff --git a/docs/v2.0.2/media/creating.md b/docs/v2.0.2/media/creating.md new file mode 100644 index 00000000..6bc1380f --- /dev/null +++ b/docs/v2.0.2/media/creating.md @@ -0,0 +1,22 @@ +--- +title: Creating Your Client +group: Documents +category: Creating +--- +todo + +[//]: # (Page navigation footer; needs to be updated manually for now.) + diff --git a/docs/v2.0.2/media/example_1.gif b/docs/v2.0.2/media/example_1.gif new file mode 100644 index 0000000000000000000000000000000000000000..8bf4e1fb2b75ba32d8471eafb7c66f6a9aff6290 GIT binary patch literal 84475 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 Z&r9uzBldi%zyE@Jp0VdW{_ueMKLO+B3N-)# literal 0 HcmV?d00001 diff --git a/docs/v2.0.2/media/icon_small.png b/docs/v2.0.2/media/icon_small.png new file mode 100644 index 0000000000000000000000000000000000000000..a0b3ef97ac3ba486ad008a10809d6b2fdec6044b GIT binary patch literal 1164 zcmV;71atd|P)EX>4Tx04R}tkv&MmKpe$iQ$?wjf)){R$WWc^q9Ts93Pq?8YK2xEOfLO`CJjl7 zi=*ILaPVWX>fqw6tAnc`2!4P#J2)x2NQwVT3N2ziIPS;0dyl(!fKV?p&FYE)nr@q^ zL|n{dSH+%J^dW!&3?U>l%b1g-Bsz|-d-(Wz7v))<&;2?2)ttoupGX{IhG`RT5YKGd z2Iqa^Fe}O`@j3B?Nf#u3C`-Nm{=^dvC_t@XllgM#1U1~DPPEV zta9Gstd*;*c~AbrU`}6I<~q$$B(R7jND!f*iW17O5v5fp#X^eq;~o4Xu3sXTLaq`R zITlcX2HEw4|H1EWt^CxamlTWx-7k*wF$VPP0*#vEd>=bb;{@U#SDLpQP7X zTI2`_Z37qAElt@2E_Z<8Cqp)6SMt*o@_FF>jJ_!g4Bi5PHLthkK29HiG)t*Al{DF@-<3y2Z!2|NZ}i zrGXO=hZw}9*gyi36blGTQ-d*0BPX3akiDt>6_eeng4+p$?|=(6P%83+^L_T;grQI-E{)=KwhX;J}%MD3CK(m^cZj zwQjx1xV|`h+x|4d_*y3Oq4yROsobU^sjmS50Z!!WTn>Z)05(^s+?i2CvuWcc-E4D8 zZ@89`K?{WJA3Uma3lRY|q9CXi^~UvPwg=#Ec7#Py$@YMXKmd>=;wZ7H|I6I<()4BL z`>w|3JyxnKf$~?^76#u(faYq&Q-$*y$Q!NK8dyU$bRRE`-m&j5QW;R+ZR|XjIhf^X z01zT_B2I(=2*8O1kzmGw^xhrjmT`OHuJd5jeU=67c=iZGwtCkT5CPSPNs$5opZtKr zyv*%S_g=`HZa{s^d+m|;v;Dye%2LgFQhwRYo3E=!YvmB5}BLsQ|TUHMkC z^QJo5o$BkfG!X#$SQ;K!tzi%VmPlRilXffc%gQ$s|L>$kHN!V3;!aDw`0| ekZ8!2_dft|YycaUg)qqg0000archipelago.js - v2.0.2
                                                        +

                                                          archipelago.js - v2.0.2

                                                          + +

                                                          + Index +

                                                          +
                                                          +
                                                          +

                                                          Creating

                                                          Installation

                                                          Introduction

                                                          Other

                                                          +
                                                          \ No newline at end of file diff --git a/docs/v2.0.2/modules/index.API.html b/docs/v2.0.2/modules/index.API.html new file mode 100644 index 00000000..a34bc0ab --- /dev/null +++ b/docs/v2.0.2/modules/index.API.html @@ -0,0 +1,107 @@ +API | archipelago.js - v2.0.2
                                                          +

                                                            Namespace API

                                                            A collection of types, constants, and enumerations that get passed over the Archipelago network protocol.

                                                            +

                                                            You can read more information about the Network Protocol in the Archipelago +Network Protocol +documentation on their GitHub repository. +API

                                                            +

                                                            Users of this library should utilize built-in helper methods and objects, whenever available, but these +base types are still exposed, if needed.

                                                            +
                                                            + +

                                                            + Index +

                                                            +
                                                            +
                                                            +

                                                            DataStorage

                                                            Network Packets

                                                            Other

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/modules/index.html b/docs/v2.0.2/modules/index.html new file mode 100644 index 00000000..b3eb7993 --- /dev/null +++ b/docs/v2.0.2/modules/index.html @@ -0,0 +1,49 @@ +index | archipelago.js - v2.0.2
                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/sitemap.xml b/docs/v2.0.2/sitemap.xml new file mode 100644 index 00000000..cae849b0 --- /dev/null +++ b/docs/v2.0.2/sitemap.xml @@ -0,0 +1,531 @@ + + + + https://archipelago.js.org/modules.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/index.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/hierarchy.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/documents/Introduction.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/documents/Introduction.Reports.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/documents/Installation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/documents/Creating_Your_Client.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/documents/placeholder.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/modules/index.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/modules/index.API.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.AdminCommandResultJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.BouncedPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.BouncePacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.ChatJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.CollectJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.CommandResultJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.ConnectedPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.ConnectionRefusedPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.ConnectPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.ConnectUpdatePacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.CountdownJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.DataPackagePacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.GetDataPackagePacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.GetPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.GoalJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.HintJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.InvalidArgumentsPacketPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.InvalidCommandPacketPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.ItemCheatJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.ItemSendJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.JoinJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.LocationChecksPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.LocationInfoPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.LocationScoutsPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.PartJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.ReceivedItemsPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.ReleaseJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.RetrievedPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.RoomInfoPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.RoomUpdatePacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.SayPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.ServerChatJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.SetNotifyPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.SetPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.SetReplyPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.StatusUpdatePacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.SyncPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.TagsChangedJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.API.TutorialJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.AddDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.AndDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.CeilingDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.ClientPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.ColorJSONMessagePart.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.ConnectionError.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.DataPackage.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.DataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.DefaultDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.FloorDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.GamePackage.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.InvalidPacketPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.ItemJSONMessagePart.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.JSONMessagePart.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.JSONRecord.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.JSONSerializable.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.LeftShiftDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.LocationJSONMessagePart.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.MaxDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.MinDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.ModuloDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.MultiplyDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.NetworkHint.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.NetworkItem.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.NetworkPlayer.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.NetworkSlot.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.NetworkVersion.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.OrDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.PermissionTable.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.PermissionValue.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.PopDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.PowerDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.PrintJSONPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.PrintJSONType.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.RemoveDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.ReplaceDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.RightShiftDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.ServerPacket.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.TextJSONMessagePart.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.UpdateDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.ValidJSONColorType.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.ValidJSONMessagePartType.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.API.XorDataStorageOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/variables/index.API.clientStatuses.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/variables/index.API.itemClassifications.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/variables/index.API.itemsHandlingFlags.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/variables/index.API.permissions.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/variables/index.API.slotTypes.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.BaseMessageNode.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.Client.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.ColorMessageNode.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.DataPackageManager.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.DataStorageManager.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.DeathLinkManager.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.EventBasedManager.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.Hint.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.IntermediateDataOperation.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.Item.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.ItemMessageNode.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.ItemsManager.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.LocationMessageNode.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.MessageManager.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.PackageMetadata.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.Player.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.PlayerMessageNode.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.PlayersManager.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.RoomStateManager.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.SocketManager.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/classes/index.TextualMessageNode.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.ClientOptions.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/interfaces/index.ConnectionOptions.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.ClientStatus.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.DataChangeCallback.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.DeathEvents.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.ItemEvents.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.MessageEvents.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.MessageLog.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.MessageNode.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.PlayerEvents.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.RoomStateEvents.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/types/index.SocketEvents.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/variables/index.libraryVersion.html + 2024-11-15T14:18:30.870Z + + + https://archipelago.js.org/variables/index.targetVersion.html + 2024-11-15T14:18:30.870Z + + diff --git a/docs/v2.0.2/types/index.API.AddDataStorageOperation.html b/docs/v2.0.2/types/index.API.AddDataStorageOperation.html new file mode 100644 index 00000000..7fc2aea0 --- /dev/null +++ b/docs/v2.0.2/types/index.API.AddDataStorageOperation.html @@ -0,0 +1,9 @@ +AddDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias AddDataStorageOperation

                                                            AddDataStorageOperation: {
                                                                operation: "add";
                                                                value: number | JSONSerializable[];
                                                            }

                                                            Adds value to the current value of the key, if both the current value and value are arrays then value will be +appended to the current value.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "add"
                                                            • Readonlyvalue: number | JSONSerializable[]

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.AndDataStorageOperation.html b/docs/v2.0.2/types/index.API.AndDataStorageOperation.html new file mode 100644 index 00000000..de9d2b4b --- /dev/null +++ b/docs/v2.0.2/types/index.API.AndDataStorageOperation.html @@ -0,0 +1,8 @@ +AndDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias AndDataStorageOperation

                                                            AndDataStorageOperation: {
                                                                operation: "and";
                                                                value: number;
                                                            }

                                                            Applies a bitwise AND to the current value of the key with value.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "and"
                                                            • Readonlyvalue: number

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.CeilingDataStorageOperation.html b/docs/v2.0.2/types/index.API.CeilingDataStorageOperation.html new file mode 100644 index 00000000..9da57c09 --- /dev/null +++ b/docs/v2.0.2/types/index.API.CeilingDataStorageOperation.html @@ -0,0 +1,8 @@ +CeilingDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias CeilingDataStorageOperation

                                                            CeilingDataStorageOperation: {
                                                                operation: "ceil";
                                                                value: null;
                                                            }

                                                            Rounds up the current value to the nearest integer.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "ceil"
                                                            • Readonlyvalue: null

                                                              Ignored for this operation.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.ClientPacket.html b/docs/v2.0.2/types/index.API.ClientPacket.html new file mode 100644 index 00000000..cf0628e9 --- /dev/null +++ b/docs/v2.0.2/types/index.API.ClientPacket.html @@ -0,0 +1,5 @@ +ClientPacket | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias ClientPacket

                                                            ClientPacket:
                                                                | BouncePacket
                                                                | ConnectPacket
                                                                | ConnectUpdatePacket
                                                                | GetPacket
                                                                | GetDataPackagePacket
                                                                | LocationChecksPacket
                                                                | LocationScoutsPacket
                                                                | SayPacket
                                                                | SetPacket
                                                                | SetNotifyPacket
                                                                | StatusUpdatePacket
                                                                | SyncPacket
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.ColorJSONMessagePart.html b/docs/v2.0.2/types/index.API.ColorJSONMessagePart.html new file mode 100644 index 00000000..18902268 --- /dev/null +++ b/docs/v2.0.2/types/index.API.ColorJSONMessagePart.html @@ -0,0 +1,10 @@ +ColorJSONMessagePart | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias ColorJSONMessagePart

                                                            ColorJSONMessagePart: {
                                                                color: ValidJSONColorType;
                                                                text: string;
                                                                type: "color";
                                                            }

                                                            A textual node containing color metadata.

                                                            +

                                                            Type declaration

                                                            • Readonlycolor: ValidJSONColorType

                                                              Includes the color to print this text with.

                                                              +
                                                            • Readonlytext: string

                                                              Used to supply text data for this node.

                                                              +
                                                            • Readonlytype: "color"

                                                              Used to denote the intent of the message part.

                                                              +

                                                            JSONMessagePart for all possible message part node subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.ConnectionError.html b/docs/v2.0.2/types/index.API.ConnectionError.html new file mode 100644 index 00000000..84517598 --- /dev/null +++ b/docs/v2.0.2/types/index.API.ConnectionError.html @@ -0,0 +1,7 @@ +ConnectionError | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias ConnectionError

                                                            ConnectionError:
                                                                | "InvalidSlot"
                                                                | "InvalidGame"
                                                                | "IncompatibleVersion"
                                                                | "InvalidPassword"
                                                                | "InvalidItemsHandling"

                                                            A union of known errors the Archipelago server can send back to the client when they receive a +ConnectionRefusedPacket.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.DataPackage.html b/docs/v2.0.2/types/index.API.DataPackage.html new file mode 100644 index 00000000..b29c4082 --- /dev/null +++ b/docs/v2.0.2/types/index.API.DataPackage.html @@ -0,0 +1,14 @@ +DataPackage | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias DataPackage

                                                            DataPackage: {
                                                                games: Record<string, GamePackage>;
                                                            }

                                                            A DataPackage is an object which contains arbitrary metadata about each game to enable a client to interact +with the Archipelago server easily.

                                                            +

                                                            Note:

                                                            +
                                                              +
                                                            • Any name is unique to its type across its own Game only: Single Arrow can exist in two games.
                                                            • +
                                                            • The ids from the game Archipelago may be used in any other game. Especially Location ID -1: Cheat Console +and -2: Server (typically Remote Start Inventory).
                                                            • +
                                                            +

                                                            Type declaration

                                                            • Readonlygames: Record<string, GamePackage>

                                                              Mapping of all Games and their respective data. See GamePackage for additional info.

                                                              +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.DataStorageOperation.html b/docs/v2.0.2/types/index.API.DataStorageOperation.html new file mode 100644 index 00000000..c9dc026f --- /dev/null +++ b/docs/v2.0.2/types/index.API.DataStorageOperation.html @@ -0,0 +1,15 @@ +DataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias DataStorageOperation

                                                            A union of all possible DataStorages. An operation manipulates or alters the value of a key in the data +storage. If the operation transforms the value from one state to another then the current value of the key is used +as the starting point otherwise the SetPacket's default is used if the key does not exist on the server +already.

                                                            +

                                                            Each operation object consists of an object containing both the operation to be applied, provided in the form of a +string, and the value to be used for that operation,

                                                            +

                                                            See each DataStorage subtype for more details.

                                                            +
                                                            { "operation": "add", "value": 12 }
                                                            +
                                                            + +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.DefaultDataStorageOperation.html b/docs/v2.0.2/types/index.API.DefaultDataStorageOperation.html new file mode 100644 index 00000000..5dbca717 --- /dev/null +++ b/docs/v2.0.2/types/index.API.DefaultDataStorageOperation.html @@ -0,0 +1,9 @@ +DefaultDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias DefaultDataStorageOperation

                                                            DefaultDataStorageOperation: {
                                                                operation: "default";
                                                                value: null;
                                                            }

                                                            If the key has no value yet, sets the current value of the key to default of the SetPacket's (value is +ignored).

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "default"
                                                            • Readonlyvalue: null

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.FloorDataStorageOperation.html b/docs/v2.0.2/types/index.API.FloorDataStorageOperation.html new file mode 100644 index 00000000..6266b9a4 --- /dev/null +++ b/docs/v2.0.2/types/index.API.FloorDataStorageOperation.html @@ -0,0 +1,8 @@ +FloorDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias FloorDataStorageOperation

                                                            FloorDataStorageOperation: {
                                                                operation: "floor";
                                                                value: null;
                                                            }

                                                            Rounds down the current value to the nearest integer.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "floor"
                                                            • Readonlyvalue: null

                                                              Ignored for this operation.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.GamePackage.html b/docs/v2.0.2/types/index.API.GamePackage.html new file mode 100644 index 00000000..13b7b1d4 --- /dev/null +++ b/docs/v2.0.2/types/index.API.GamePackage.html @@ -0,0 +1,9 @@ +GamePackage | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias GamePackage

                                                            GamePackage: {
                                                                checksum: string;
                                                                item_name_to_id: Record<string, number>;
                                                                location_name_to_id: Record<string, number>;
                                                            }

                                                            Collection of data that contains meta information for a particular game.

                                                            +

                                                            Type declaration

                                                            • Readonlychecksum: string

                                                              SHA1 checksum of this game's data.

                                                              +
                                                            • Readonlyitem_name_to_id: Record<string, number>

                                                              Mapping of all item names to their respective id.

                                                              +
                                                            • Readonlylocation_name_to_id: Record<string, number>

                                                              Mapping of all location names to their respective id.

                                                              +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.InvalidPacketPacket.html b/docs/v2.0.2/types/index.API.InvalidPacketPacket.html new file mode 100644 index 00000000..eba30766 --- /dev/null +++ b/docs/v2.0.2/types/index.API.InvalidPacketPacket.html @@ -0,0 +1,9 @@ +InvalidPacketPacket | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias InvalidPacketPacket

                                                            A union of possible InvalidPacket packets. Sent to clients if the server caught a problem with a packet. See each +packet subtype for more details.

                                                            +

                                                            This only occurs for errors that are explicitly checked for. All other errors will cause the server to drop +the connection instead.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.ItemJSONMessagePart.html b/docs/v2.0.2/types/index.API.ItemJSONMessagePart.html new file mode 100644 index 00000000..5e3c686c --- /dev/null +++ b/docs/v2.0.2/types/index.API.ItemJSONMessagePart.html @@ -0,0 +1,11 @@ +ItemJSONMessagePart | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias ItemJSONMessagePart

                                                            ItemJSONMessagePart: {
                                                                flags: number;
                                                                player: number;
                                                                text: string;
                                                                type: "item_id" | "item_name";
                                                            }

                                                            A textual node containing item metadata.

                                                            +

                                                            Type declaration

                                                            • Readonlyflags: number

                                                              Bit flags that determine if an item is progression, "nice to have", filler, or a trap.

                                                              +
                                                            • Readonlyplayer: number

                                                              The id of the player who owns this item.

                                                              +
                                                            • Readonlytext: string

                                                              Used to supply text data for this node.

                                                              +
                                                            • Readonlytype: "item_id" | "item_name"

                                                              Used to denote the intent of the message part.

                                                              +

                                                            JSONMessagePart for all possible message part node subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.JSONMessagePart.html b/docs/v2.0.2/types/index.API.JSONMessagePart.html new file mode 100644 index 00000000..478c28fa --- /dev/null +++ b/docs/v2.0.2/types/index.API.JSONMessagePart.html @@ -0,0 +1,8 @@ +JSONMessagePart | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias JSONMessagePart

                                                            JSONMessagePart:
                                                                | ItemJSONMessagePart
                                                                | LocationJSONMessagePart
                                                                | ColorJSONMessagePart
                                                                | TextJSONMessagePart

                                                            A union of all message node subtypes sent along with PrintJSONPacket, which can be reconstructed into a +legible message. Each node is intended to be read in the order provided in the packet.

                                                            +

                                                            See each subtype for more specific information.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.JSONRecord.html b/docs/v2.0.2/types/index.API.JSONRecord.html new file mode 100644 index 00000000..7795020a --- /dev/null +++ b/docs/v2.0.2/types/index.API.JSONRecord.html @@ -0,0 +1,6 @@ +JSONRecord | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias JSONRecord

                                                            JSONRecord: {
                                                                [p: string]: JSONSerializable;
                                                            }

                                                            A record of JSON-serializable data.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.JSONSerializable.html b/docs/v2.0.2/types/index.API.JSONSerializable.html new file mode 100644 index 00000000..c03599eb --- /dev/null +++ b/docs/v2.0.2/types/index.API.JSONSerializable.html @@ -0,0 +1,6 @@ +JSONSerializable | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias JSONSerializable

                                                            JSONSerializable:
                                                                | string
                                                                | number
                                                                | boolean
                                                                | null
                                                                | JSONRecord
                                                                | JSONSerializable[]

                                                            A type union of all basic JSON-compatible types.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.LeftShiftDataStorageOperation.html b/docs/v2.0.2/types/index.API.LeftShiftDataStorageOperation.html new file mode 100644 index 00000000..67b31344 --- /dev/null +++ b/docs/v2.0.2/types/index.API.LeftShiftDataStorageOperation.html @@ -0,0 +1,8 @@ +LeftShiftDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias LeftShiftDataStorageOperation

                                                            LeftShiftDataStorageOperation: {
                                                                operation: "left_shift";
                                                                value: number;
                                                            }

                                                            Applies a bitwise left-shift to the current value of the key by value.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "left_shift"
                                                            • Readonlyvalue: number

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.LocationJSONMessagePart.html b/docs/v2.0.2/types/index.API.LocationJSONMessagePart.html new file mode 100644 index 00000000..a4935630 --- /dev/null +++ b/docs/v2.0.2/types/index.API.LocationJSONMessagePart.html @@ -0,0 +1,10 @@ +LocationJSONMessagePart | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias LocationJSONMessagePart

                                                            LocationJSONMessagePart: {
                                                                player: number;
                                                                text: string;
                                                                type: "location_id" | "location_name";
                                                            }

                                                            A textual node containing location metadata.

                                                            +

                                                            Type declaration

                                                            • Readonlyplayer: number

                                                              The id of the player who has this location.

                                                              +
                                                            • Readonlytext: string

                                                              Used to supply text data for this node.

                                                              +
                                                            • Readonlytype: "location_id" | "location_name"

                                                              Used to denote the intent of the message part.

                                                              +

                                                            JSONMessagePart for all possible message part node subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.MaxDataStorageOperation.html b/docs/v2.0.2/types/index.API.MaxDataStorageOperation.html new file mode 100644 index 00000000..1f9de638 --- /dev/null +++ b/docs/v2.0.2/types/index.API.MaxDataStorageOperation.html @@ -0,0 +1,8 @@ +MaxDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias MaxDataStorageOperation

                                                            MaxDataStorageOperation: {
                                                                operation: "max";
                                                                value: number;
                                                            }

                                                            Sets the current value of the key to value if value is bigger.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "max"
                                                            • Readonlyvalue: number

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.MinDataStorageOperation.html b/docs/v2.0.2/types/index.API.MinDataStorageOperation.html new file mode 100644 index 00000000..feb1a2c5 --- /dev/null +++ b/docs/v2.0.2/types/index.API.MinDataStorageOperation.html @@ -0,0 +1,8 @@ +MinDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias MinDataStorageOperation

                                                            MinDataStorageOperation: {
                                                                operation: "min";
                                                                value: number;
                                                            }

                                                            Sets the current value of the key to value if value is lower.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "min"
                                                            • Readonlyvalue: number

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.ModuloDataStorageOperation.html b/docs/v2.0.2/types/index.API.ModuloDataStorageOperation.html new file mode 100644 index 00000000..15ba0706 --- /dev/null +++ b/docs/v2.0.2/types/index.API.ModuloDataStorageOperation.html @@ -0,0 +1,8 @@ +ModuloDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias ModuloDataStorageOperation

                                                            ModuloDataStorageOperation: {
                                                                operation: "mod";
                                                                value: number;
                                                            }

                                                            Sets the current value of the key to the remainder after division by value.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "mod"
                                                            • Readonlyvalue: number

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.MultiplyDataStorageOperation.html b/docs/v2.0.2/types/index.API.MultiplyDataStorageOperation.html new file mode 100644 index 00000000..9919e28e --- /dev/null +++ b/docs/v2.0.2/types/index.API.MultiplyDataStorageOperation.html @@ -0,0 +1,8 @@ +MultiplyDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias MultiplyDataStorageOperation

                                                            MultiplyDataStorageOperation: {
                                                                operation: "mul";
                                                                value: number;
                                                            }

                                                            Multiplies the current value of the key by value.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "mul"
                                                            • Readonlyvalue: number

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.NetworkHint.html b/docs/v2.0.2/types/index.API.NetworkHint.html new file mode 100644 index 00000000..fc03203f --- /dev/null +++ b/docs/v2.0.2/types/index.API.NetworkHint.html @@ -0,0 +1,13 @@ +NetworkHint | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias NetworkHint

                                                            NetworkHint: {
                                                                entrance: string;
                                                                finding_player: number;
                                                                found: boolean;
                                                                item: number;
                                                                item_flags: number;
                                                                location: number;
                                                                receiving_player: number;
                                                            }

                                                            An object representing a hint information for a particular item and location that contains it.

                                                            +

                                                            Type declaration

                                                            • Readonlyentrance: string

                                                              The name of the entrance to the location where this item is located.

                                                              +
                                                            • Readonlyfinding_player: number

                                                              The id of the player who has this item in their world.

                                                              +
                                                            • Readonlyfound: boolean

                                                              Whether this item has already been found.

                                                              +
                                                            • Readonlyitem: number

                                                              The id of this item.

                                                              +
                                                            • Readonlyitem_flags: number

                                                              The classification bit flags for this item. See itemsHandlingFlags for known flags.

                                                              +
                                                            • Readonlylocation: number

                                                              The id of the location for this item.

                                                              +
                                                            • Readonlyreceiving_player: number

                                                              The id of the player who owns this item.

                                                              +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.NetworkItem.html b/docs/v2.0.2/types/index.API.NetworkItem.html new file mode 100644 index 00000000..93b88557 --- /dev/null +++ b/docs/v2.0.2/types/index.API.NetworkItem.html @@ -0,0 +1,11 @@ +NetworkItem | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias NetworkItem

                                                            NetworkItem: {
                                                                flags: number;
                                                                item: number;
                                                                location: number;
                                                                player: number;
                                                            }

                                                            Items that are sent over the network.

                                                            +

                                                            Type declaration

                                                            • Readonlyflags: number

                                                              The classification bit flags for this item. See itemsHandlingFlags for known flags.

                                                              +
                                                            • Readonlyitem: number

                                                              The item id of the item. Item ids are in the range of -2^53 to +2^53-1.

                                                              +
                                                            • Readonlylocation: number

                                                              The location id of the location inside the world. Location ids are in the range of -2^53 to +2^53 - 1.

                                                              +
                                                            • Readonlyplayer: number

                                                              The slot id for the player whose world the item was located in, except when inside a LocationInfoPacket, +then it will be the slot id of the player the item belongs to.

                                                              +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.NetworkPlayer.html b/docs/v2.0.2/types/index.API.NetworkPlayer.html new file mode 100644 index 00000000..a9bfa0d3 --- /dev/null +++ b/docs/v2.0.2/types/index.API.NetworkPlayer.html @@ -0,0 +1,12 @@ +NetworkPlayer | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias NetworkPlayer

                                                            NetworkPlayer: {
                                                                alias: string;
                                                                name: string;
                                                                slot: number;
                                                                team: number;
                                                            }

                                                            An object that contains metadata about an individual player on the network.

                                                            +

                                                            Type declaration

                                                            • Readonlyalias: string

                                                              Represents the player's name in current time. Can be changed during a game with the !alias <name> command by +the player.

                                                              +
                                                            • Readonlyname: string

                                                              The original slot name as defined by the player's configuration file. Individual names are unique among players.

                                                              +
                                                            • Readonlyslot: number

                                                              Determines the slot id for this player. Slot numbers are unique per team and start at 1. Slot number 0 refers +to the Archipelago server; this may appear in instances where the server grants the player an item.

                                                              +
                                                            • Readonlyteam: number

                                                              Determines the team the player is on. Useful for competitive seeds. Team numbers start at 0.

                                                              +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.NetworkSlot.html b/docs/v2.0.2/types/index.API.NetworkSlot.html new file mode 100644 index 00000000..456e6145 --- /dev/null +++ b/docs/v2.0.2/types/index.API.NetworkSlot.html @@ -0,0 +1,10 @@ +NetworkSlot | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias NetworkSlot

                                                            NetworkSlot: {
                                                                game: string;
                                                                group_members: number[];
                                                                name: string;
                                                                type: typeof slotTypes[keyof typeof slotTypes];
                                                            }

                                                            An object representing metadata about a given slot on each team.

                                                            +

                                                            Type declaration

                                                            • Readonlygame: string

                                                              The game this slot is playing.

                                                              +
                                                            • Readonlygroup_members: number[]

                                                              Contains a list of player ids, if the type is slotTypes.group. Used for item links, otherwise empty.

                                                              +
                                                            • Readonlyname: string

                                                              The original slot name as defined by the player's configuration file. Individual names are unique among players.

                                                              +
                                                            • Readonlytype: typeof slotTypes[keyof typeof slotTypes]

                                                              The type of slot this is. See slotTypes for known slot types.

                                                              +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.NetworkVersion.html b/docs/v2.0.2/types/index.API.NetworkVersion.html new file mode 100644 index 00000000..6059f097 --- /dev/null +++ b/docs/v2.0.2/types/index.API.NetworkVersion.html @@ -0,0 +1,12 @@ +NetworkVersion | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias NetworkVersion

                                                            NetworkVersion: {
                                                                build: number;
                                                                class: "Version";
                                                                major: number;
                                                                minor: number;
                                                            }

                                                            An object representing software versioning. Used in the ConnectPacket to allow the client to inform the +server the minimum Archipelago version it supports.

                                                            +

                                                            Type declaration

                                                            • Readonlybuild: number

                                                              The build/patch component of the version number. (e.g., 0.0.X)

                                                              +
                                                            • Readonlyclass: "Version"

                                                              Apparently required to be present to ensure the Archipelago server parses this object correctly.

                                                              +
                                                            • Readonlymajor: number

                                                              The major component of the version number. (e.g., X.0.0)

                                                              +
                                                            • Readonlyminor: number

                                                              The minor component of the version number. (e.g., 0.X.0)

                                                              +

                                                            Archipelago does not follow a semver versioning standard.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.OrDataStorageOperation.html b/docs/v2.0.2/types/index.API.OrDataStorageOperation.html new file mode 100644 index 00000000..5d914535 --- /dev/null +++ b/docs/v2.0.2/types/index.API.OrDataStorageOperation.html @@ -0,0 +1,8 @@ +OrDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias OrDataStorageOperation

                                                            OrDataStorageOperation: {
                                                                operation: "or";
                                                                value: number;
                                                            }

                                                            Applies a bitwise OR to the current value of the key with value.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "or"
                                                            • Readonlyvalue: number

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.PermissionTable.html b/docs/v2.0.2/types/index.API.PermissionTable.html new file mode 100644 index 00000000..25e74a87 --- /dev/null +++ b/docs/v2.0.2/types/index.API.PermissionTable.html @@ -0,0 +1,35 @@ +PermissionTable | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias PermissionTable

                                                            PermissionTable: {
                                                                collect: PermissionValue;
                                                                release: PermissionValue;
                                                                remaining: Omit<PermissionValue, typeof auto | typeof autoEnabled>;
                                                            }

                                                            Mapping of restrict-able commands to their current permissions level.

                                                            +

                                                            Type declaration

                                                            • Readonlycollect: PermissionValue

                                                              Dictates what is allowed when it comes to a player collecting their run. A collect is an action which sends +the rest of the items in a player's run.

                                                              + +
                                                            • Readonlyrelease: PermissionValue

                                                              Dictates what is allowed when it comes to a player releasing their run. A release is an action which +distributes the rest of the items in a player's run to those other players awaiting them.

                                                              + +
                                                            • Readonlyremaining: Omit<PermissionValue, typeof auto | typeof autoEnabled>

                                                              Dictates what is allowed when it comes to a player querying the items remaining in their run.

                                                              +
                                                                +
                                                              • permissions.goal: Allows a player to query for items remaining in their run but only after they +completed their own goal.
                                                              • +
                                                              • permissions.enabled: Denotes that players may query for any items remaining in their run (even +those belonging to other players).
                                                              • +
                                                              • permissions.disabled: All remaining item query modes disabled.
                                                              • +
                                                              +

                                                              This command cannot have the permissions.auto or permissions.autoEnabled permission.

                                                              +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.PermissionValue.html b/docs/v2.0.2/types/index.API.PermissionValue.html new file mode 100644 index 00000000..5cbfa9d5 --- /dev/null +++ b/docs/v2.0.2/types/index.API.PermissionValue.html @@ -0,0 +1,6 @@ +PermissionValue | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias PermissionValue

                                                            PermissionValue: typeof permissions[keyof typeof permissions]

                                                            The type for a given permission value.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.PopDataStorageOperation.html b/docs/v2.0.2/types/index.API.PopDataStorageOperation.html new file mode 100644 index 00000000..c2f73c0d --- /dev/null +++ b/docs/v2.0.2/types/index.API.PopDataStorageOperation.html @@ -0,0 +1,9 @@ +PopDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias PopDataStorageOperation

                                                            PopDataStorageOperation: {
                                                                operation: "pop";
                                                                value: JSONSerializable;
                                                            }

                                                            List or Dict only: for lists it will remove the index of the value given. For dicts it removes the element with +the specified key of value.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "pop"
                                                            • Readonlyvalue: JSONSerializable

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.PowerDataStorageOperation.html b/docs/v2.0.2/types/index.API.PowerDataStorageOperation.html new file mode 100644 index 00000000..9d3cb93d --- /dev/null +++ b/docs/v2.0.2/types/index.API.PowerDataStorageOperation.html @@ -0,0 +1,8 @@ +PowerDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias PowerDataStorageOperation

                                                            PowerDataStorageOperation: {
                                                                operation: "pow";
                                                                value: number;
                                                            }

                                                            Multiplies the current value of the key to the power of value.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "pow"
                                                            • Readonlyvalue: number

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.PrintJSONPacket.html b/docs/v2.0.2/types/index.API.PrintJSONPacket.html new file mode 100644 index 00000000..e8c5d17d --- /dev/null +++ b/docs/v2.0.2/types/index.API.PrintJSONPacket.html @@ -0,0 +1,9 @@ +PrintJSONPacket | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias PrintJSONPacket

                                                            A union of possible PrintJSON packets. Sent to clients purely to display a message to the player. While various +message types provide additional arguments, clients only need to evaluate the data argument to construct the +human-readable message text. All other arguments may be ignored safely.

                                                            +

                                                            Only some of these attributes are present on each subtype, see each subtype for more information.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.PrintJSONType.html b/docs/v2.0.2/types/index.API.PrintJSONType.html new file mode 100644 index 00000000..01dbeb43 --- /dev/null +++ b/docs/v2.0.2/types/index.API.PrintJSONType.html @@ -0,0 +1,6 @@ +PrintJSONType | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias PrintJSONType

                                                            PrintJSONType:
                                                                | "ItemSend"
                                                                | "ItemCheat"
                                                                | "Hint"
                                                                | "Join"
                                                                | "Part"
                                                                | "Chat"
                                                                | "ServerChat"
                                                                | "Tutorial"
                                                                | "TagsChanged"
                                                                | "CommandResult"
                                                                | "AdminCommandResult"
                                                                | "Goal"
                                                                | "Release"
                                                                | "Collect"
                                                                | "Countdown"

                                                            A union of all known PrintJSONPacket types.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.RemoveDataStorageOperation.html b/docs/v2.0.2/types/index.API.RemoveDataStorageOperation.html new file mode 100644 index 00000000..8cfa088b --- /dev/null +++ b/docs/v2.0.2/types/index.API.RemoveDataStorageOperation.html @@ -0,0 +1,8 @@ +RemoveDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias RemoveDataStorageOperation

                                                            RemoveDataStorageOperation: {
                                                                operation: "remove";
                                                                value: JSONSerializable;
                                                            }

                                                            List only: removes the first instance of value found in the list.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "remove"
                                                            • Readonlyvalue: JSONSerializable

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.ReplaceDataStorageOperation.html b/docs/v2.0.2/types/index.API.ReplaceDataStorageOperation.html new file mode 100644 index 00000000..8554eef3 --- /dev/null +++ b/docs/v2.0.2/types/index.API.ReplaceDataStorageOperation.html @@ -0,0 +1,8 @@ +ReplaceDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias ReplaceDataStorageOperation

                                                            ReplaceDataStorageOperation: {
                                                                operation: "replace";
                                                                value: JSONSerializable;
                                                            }

                                                            Sets the current value of the key to value.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "replace"
                                                            • Readonlyvalue: JSONSerializable

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.RightShiftDataStorageOperation.html b/docs/v2.0.2/types/index.API.RightShiftDataStorageOperation.html new file mode 100644 index 00000000..e62862b2 --- /dev/null +++ b/docs/v2.0.2/types/index.API.RightShiftDataStorageOperation.html @@ -0,0 +1,8 @@ +RightShiftDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias RightShiftDataStorageOperation

                                                            RightShiftDataStorageOperation: {
                                                                operation: "right_shift";
                                                                value: number;
                                                            }

                                                            Applies a bitwise right-shift to the current value of the key by value.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "right_shift"
                                                            • Readonlyvalue: number

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.ServerPacket.html b/docs/v2.0.2/types/index.API.ServerPacket.html new file mode 100644 index 00000000..ff8d6a14 --- /dev/null +++ b/docs/v2.0.2/types/index.API.ServerPacket.html @@ -0,0 +1,5 @@ +ServerPacket | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias ServerPacket

                                                            ServerPacket:
                                                                | BouncedPacket
                                                                | ConnectedPacket
                                                                | ConnectionRefusedPacket
                                                                | DataPackagePacket
                                                                | InvalidPacketPacket
                                                                | LocationInfoPacket
                                                                | PrintJSONPacket
                                                                | ReceivedItemsPacket
                                                                | RetrievedPacket
                                                                | RoomInfoPacket
                                                                | RoomUpdatePacket
                                                                | SetReplyPacket
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.TextJSONMessagePart.html b/docs/v2.0.2/types/index.API.TextJSONMessagePart.html new file mode 100644 index 00000000..b14989af --- /dev/null +++ b/docs/v2.0.2/types/index.API.TextJSONMessagePart.html @@ -0,0 +1,10 @@ +TextJSONMessagePart | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias TextJSONMessagePart

                                                            TextJSONMessagePart: {
                                                                text: string;
                                                                type?:
                                                                    | "text"
                                                                    | "entrance_name"
                                                                    | "player_id"
                                                                    | "player_name";
                                                            }

                                                            A textual node containing plaintext metadata.

                                                            +

                                                            Type declaration

                                                            • Readonlytext: string

                                                              Used to supply text data for this node.

                                                              +
                                                            • Optional Readonlytype?:
                                                                  | "text"
                                                                  | "entrance_name"
                                                                  | "player_id"
                                                                  | "player_name"

                                                              Used to denote the intent of the message part.

                                                              +

                                                              If type is omitted, it should be treated as the text type.

                                                              +

                                                            JSONMessagePart for all possible message part node subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.UpdateDataStorageOperation.html b/docs/v2.0.2/types/index.API.UpdateDataStorageOperation.html new file mode 100644 index 00000000..7904c069 --- /dev/null +++ b/docs/v2.0.2/types/index.API.UpdateDataStorageOperation.html @@ -0,0 +1,9 @@ +UpdateDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias UpdateDataStorageOperation

                                                            UpdateDataStorageOperation: {
                                                                operation: "update";
                                                                value: JSONSerializable;
                                                            }

                                                            Dict only: Updates the dictionary with the specified elements given in value creating new keys, or updating old +ones if they previously existed.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "update"
                                                            • Readonlyvalue: JSONSerializable

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.ValidJSONColorType.html b/docs/v2.0.2/types/index.API.ValidJSONColorType.html new file mode 100644 index 00000000..c0a53111 --- /dev/null +++ b/docs/v2.0.2/types/index.API.ValidJSONColorType.html @@ -0,0 +1,9 @@ +ValidJSONColorType | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias ValidJSONColorType

                                                            ValidJSONColorType:
                                                                | "bold"
                                                                | "underline"
                                                                | "black"
                                                                | "red"
                                                                | "green"
                                                                | "yellow"
                                                                | "blue"
                                                                | "magenta"
                                                                | "cyan"
                                                                | "white"
                                                                | "black_bg"
                                                                | "red_bg"
                                                                | "green_bg"
                                                                | "yellow_bg"
                                                                | "blue_bg"
                                                                | "purple_bg"
                                                                | "cyan_bg"
                                                                | "white_bg"

                                                            This is a type union of all supported "colors" denoting a console color to display the message part with and is only +sent if the type is color. This is limited to console colors due to backwards compatibility needs with games such +as A Link to the Past. Although background colors as well as foreground colors are listed, only one may be applied +to a JSONMessagePart at a time.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.ValidJSONMessagePartType.html b/docs/v2.0.2/types/index.API.ValidJSONMessagePartType.html new file mode 100644 index 00000000..b86b5ade --- /dev/null +++ b/docs/v2.0.2/types/index.API.ValidJSONMessagePartType.html @@ -0,0 +1,18 @@ +ValidJSONMessagePartType | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias ValidJSONMessagePartType

                                                            ValidJSONMessagePartType:
                                                                | "text"
                                                                | "player_id"
                                                                | "player_name"
                                                                | "item_id"
                                                                | "item_name"
                                                                | "location_id"
                                                                | "location_name"
                                                                | "entrance_name"
                                                                | "color"

                                                            This is a type union of all supported message types for denoting the intent of the message part. This can be used to +indicate special information which may be rendered differently depending on client.

                                                            +
                                                              +
                                                            • text: Regular text content. This is also the default type and is often omitted.
                                                            • +
                                                            • player_id: Player id of someone on your team, should be resolved to player Name.
                                                            • +
                                                            • player_name: Player Name, could be a player within a multiplayer game or from another team, not id resolvable.
                                                            • +
                                                            • item_id: Item id, should be resolved to an item name.
                                                            • +
                                                            • item_name: Item name, not currently used over network, but supported by reference clients.
                                                            • +
                                                            • location_id: Location id, should be resolved to a location name.
                                                            • +
                                                            • location_name: Location name, not currently used over network, but supported by reference clients.
                                                            • +
                                                            • entrance_name: Entrance name. No id mapping exists.
                                                            • +
                                                            • color: Regular text that should be colored. Only type that will contain color data.
                                                            • +
                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.API.XorDataStorageOperation.html b/docs/v2.0.2/types/index.API.XorDataStorageOperation.html new file mode 100644 index 00000000..40716bcc --- /dev/null +++ b/docs/v2.0.2/types/index.API.XorDataStorageOperation.html @@ -0,0 +1,8 @@ +XorDataStorageOperation | archipelago.js - v2.0.2
                                                            +

                                                            Type Alias XorDataStorageOperation

                                                            XorDataStorageOperation: {
                                                                operation: "xor";
                                                                value: number;
                                                            }

                                                            Applies a bitwise XOR to the current value of the key with value.

                                                            +

                                                            Type declaration

                                                            • Readonlyoperation: "xor"
                                                            • Readonlyvalue: number

                                                              A value for the operation to apply against the current data storage value.

                                                              +

                                                            DataStorageOperation for all possible operation subtypes.

                                                            +
                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.ClientStatus.html b/docs/v2.0.2/types/index.ClientStatus.html new file mode 100644 index 00000000..6070da2c --- /dev/null +++ b/docs/v2.0.2/types/index.ClientStatus.html @@ -0,0 +1,6 @@ +ClientStatus | archipelago.js - v2.0.2
                                                            +

                                                              Type Alias ClientStatus

                                                              ClientStatus: typeof clientStatuses[keyof typeof clientStatuses]

                                                              A type alias for any known client status. See clientStatuses for more information.

                                                              +
                                                              \ No newline at end of file diff --git a/docs/v2.0.2/types/index.DataChangeCallback.html b/docs/v2.0.2/types/index.DataChangeCallback.html new file mode 100644 index 00000000..79748d0a --- /dev/null +++ b/docs/v2.0.2/types/index.DataChangeCallback.html @@ -0,0 +1,6 @@ +DataChangeCallback | archipelago.js - v2.0.2
                                                              +

                                                                Type Alias DataChangeCallback

                                                                DataChangeCallback: ((key: string, value: JSONSerializable, oldValue?: JSONSerializable) => void)

                                                                A callback that fires when a monitored key is updated in data storage.

                                                                +
                                                                \ No newline at end of file diff --git a/docs/v2.0.2/types/index.DeathEvents.html b/docs/v2.0.2/types/index.DeathEvents.html new file mode 100644 index 00000000..7677a109 --- /dev/null +++ b/docs/v2.0.2/types/index.DeathEvents.html @@ -0,0 +1,12 @@ +DeathEvents | archipelago.js - v2.0.2
                                                                +

                                                                  Type Alias DeathEvents

                                                                  DeathEvents: {
                                                                      deathReceived: [source: string, time: number, cause?: string];
                                                                  }

                                                                  An interface with all supported death events and their respective callback arguments. To be called from +MessageManager.

                                                                  +

                                                                  Type declaration

                                                                  • deathReceived: [source: string, time: number, cause?: string]

                                                                    Fired when a DeathLink-enabled player has sent a DeathLink.

                                                                    +

                                                                    The player who sent this DeathLink.

                                                                    +

                                                                    The timestamp this player died. Time is in number of milliseconds from unix epoch (same timestamp +system in JavaScript).

                                                                    +

                                                                    Optional description detailing the specific cause of death.

                                                                    +
                                                                  \ No newline at end of file diff --git a/docs/v2.0.2/types/index.DeathReceivedCallback.html b/docs/v2.0.2/types/index.DeathReceivedCallback.html new file mode 100644 index 00000000..7ae6867b --- /dev/null +++ b/docs/v2.0.2/types/index.DeathReceivedCallback.html @@ -0,0 +1,6 @@ +DeathReceivedCallback | archipelago.js - v2.0.2
                                                                  +

                                                                    Type Alias DeathReceivedCallback

                                                                    DeathReceivedCallback: ((source: string, time: number, cause?: string) => void)

                                                                    Type declaration

                                                                      • (source, time, cause?): void
                                                                      • Parameters

                                                                        • source: string

                                                                          test

                                                                          +
                                                                        • time: number
                                                                        • Optionalcause: string

                                                                        Returns void

                                                                    \ No newline at end of file diff --git a/docs/v2.0.2/types/index.ItemEvents.html b/docs/v2.0.2/types/index.ItemEvents.html new file mode 100644 index 00000000..5434084b --- /dev/null +++ b/docs/v2.0.2/types/index.ItemEvents.html @@ -0,0 +1,16 @@ +ItemEvents | archipelago.js - v2.0.2
                                                                    +

                                                                      Type Alias ItemEvents

                                                                      ItemEvents: {
                                                                          hintFound: [hint: Hint];
                                                                          hintReceived: [hint: Hint];
                                                                          hintsInitialized: [hints: Hint[]];
                                                                          itemsReceived: [items: Item[], startingIndex: number];
                                                                      }

                                                                      An interface with all supported item/hint events and their respective callback arguments. To be called from +ItemsManager.

                                                                      +

                                                                      Type declaration

                                                                      • hintFound: [hint: Hint]

                                                                        Fired when a hint has been found.

                                                                        +

                                                                        The hint that has been found.

                                                                        +
                                                                      • hintReceived: [hint: Hint]

                                                                        Fired when a new hint has been received.

                                                                        +

                                                                        The hint that has been created.

                                                                        +
                                                                      • hintsInitialized: [hints: Hint[]]

                                                                        Fired shortly after initial connection with all current hints relevant to this player.

                                                                        +

                                                                        All hints ever created relevant to this player.

                                                                        +
                                                                      • itemsReceived: [items: Item[], startingIndex: number]

                                                                        Fired when items have been received.

                                                                        +

                                                                        An array of item metadata in the order they are sent.

                                                                        +

                                                                        The ItemsManager.received index for the first item in the items array.

                                                                        +
                                                                      \ No newline at end of file diff --git a/docs/v2.0.2/types/index.MessageEvents.html b/docs/v2.0.2/types/index.MessageEvents.html new file mode 100644 index 00000000..738af438 --- /dev/null +++ b/docs/v2.0.2/types/index.MessageEvents.html @@ -0,0 +1,73 @@ +MessageEvents | archipelago.js - v2.0.2
                                                                      +

                                                                        Type Alias MessageEvents

                                                                        MessageEvents: {
                                                                            adminCommand: [text: string, nodes: MessageNode[]];
                                                                            chat: [message: string, player: Player, nodes: MessageNode[]];
                                                                            collected: [text: string, player: Player, nodes: MessageNode[]];
                                                                            connected: [text: string, player: Player, tags: string[], nodes: MessageNode[]];
                                                                            countdown: [text: string, value: number, nodes: MessageNode[]];
                                                                            disconnected: [text: string, player: Player, nodes: MessageNode[]];
                                                                            goaled: [text: string, player: Player, nodes: MessageNode[]];
                                                                            itemCheated: [text: string, item: Item, nodes: MessageNode[]];
                                                                            itemHinted: [text: string, item: Item, found: boolean, nodes: MessageNode[]];
                                                                            itemSent: [text: string, item: Item, nodes: MessageNode[]];
                                                                            message: [text: string, nodes: MessageNode[]];
                                                                            released: [text: string, player: Player, nodes: MessageNode[]];
                                                                            serverChat: [message: string, nodes: MessageNode[]];
                                                                            tagsUpdated: [text: string, player: Player, tags: string[], nodes: MessageNode[]];
                                                                            tutorial: [text: string, nodes: MessageNode[]];
                                                                            userCommand: [text: string, nodes: MessageNode[]];
                                                                        }

                                                                        An interface with all supported message events and their respective callback arguments. To be called from +MessageManager.

                                                                        +

                                                                        Type declaration

                                                                        • adminCommand: [text: string, nodes: MessageNode[]]

                                                                          Fires on the result of running an admin command via !admin.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        • chat: [message: string, player: Player, nodes: MessageNode[]]

                                                                          Fires when a player chat message is received.

                                                                          +

                                                                          The plaintext message content without the sender name prefix.

                                                                          +

                                                                          The metadata of the player who sent this message.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +

                                                                          nodes will contain the sender name prefix from the server, but message will not.

                                                                          +
                                                                        • collected: [text: string, player: Player, nodes: MessageNode[]]

                                                                          Fires when a player has collected their remaining items from the multi-world.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          The player that collected.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        • connected: [text: string, player: Player, tags: string[], nodes: MessageNode[]]

                                                                          Fires when a client connects to the room session.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          The player being connected as.

                                                                          +

                                                                          The tags of the joining client.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        • countdown: [text: string, value: number, nodes: MessageNode[]]

                                                                          Fires when a countdown message is received.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          The current countdown value.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        • disconnected: [text: string, player: Player, nodes: MessageNode[]]

                                                                          Fires when a client disconnects from the room session.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          The player being disconnected from.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        • goaled: [text: string, player: Player, nodes: MessageNode[]]

                                                                          Fires when a connected player has met their goal condition.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          The player that reached their goal.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        • itemCheated: [text: string, item: Item, nodes: MessageNode[]]

                                                                          Fires when another player is sent a cheated item.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          The item being sent.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        • itemHinted: [text: string, item: Item, found: boolean, nodes: MessageNode[]]

                                                                          Fires when a hint-style message is received.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          The item being hinted.

                                                                          +

                                                                          If the item was found.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +

                                                                          This event is for hint messages received. To track more information on when hints are updated, utilize +one of the hint-type events on ItemsManager instead.

                                                                          +
                                                                        • itemSent: [text: string, item: Item, nodes: MessageNode[]]

                                                                          Fires when another player is sent an item (except for cheated items).

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          The item being sent.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        • message: [text: string, nodes: MessageNode[]]

                                                                          Fires when any kind of message is received.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        • released: [text: string, player: Player, nodes: MessageNode[]]

                                                                          Fires when a player has released their remaining items to the multi-world.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          The player that released.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        • serverChat: [message: string, nodes: MessageNode[]]

                                                                          Fires when a server chat message is received.

                                                                          +

                                                                          The plaintext message content without the sender name prefix.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +

                                                                          nodes will contain the sender name prefix from the server, but message will not.

                                                                          +
                                                                        • tagsUpdated: [text: string, player: Player, tags: string[], nodes: MessageNode[]]

                                                                          Fires when a client updates their tags.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          The player this client is connected to.

                                                                          +

                                                                          The new tags for this client.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        • tutorial: [text: string, nodes: MessageNode[]]

                                                                          Fires when tutorial-like information is received, such as on first connection explaining !help.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        • userCommand: [text: string, nodes: MessageNode[]]

                                                                          Fires on the result of running a user command, such as !status.

                                                                          +

                                                                          The plaintext message content.

                                                                          +

                                                                          An array of message nodes in this message with additional context for each textual component.

                                                                          +
                                                                        \ No newline at end of file diff --git a/docs/v2.0.2/types/index.MessageLog.html b/docs/v2.0.2/types/index.MessageLog.html new file mode 100644 index 00000000..ce25aea9 --- /dev/null +++ b/docs/v2.0.2/types/index.MessageLog.html @@ -0,0 +1,6 @@ +MessageLog | archipelago.js - v2.0.2
                                                                        +

                                                                          Type Alias MessageLog

                                                                          MessageLog: {
                                                                              nodes: MessageNode[];
                                                                              text: string;
                                                                          }[]

                                                                          A type for logged messages on MessageManager.

                                                                          +
                                                                          \ No newline at end of file diff --git a/docs/v2.0.2/types/index.MessageNode.html b/docs/v2.0.2/types/index.MessageNode.html new file mode 100644 index 00000000..f9dbcd20 --- /dev/null +++ b/docs/v2.0.2/types/index.MessageNode.html @@ -0,0 +1,6 @@ +MessageNode | archipelago.js - v2.0.2
                                                                          +

                                                                            Type Alias MessageNode

                                                                            MessageNode:
                                                                                | ItemMessageNode
                                                                                | LocationMessageNode
                                                                                | ColorMessageNode
                                                                                | TextualMessageNode
                                                                                | PlayerMessageNode

                                                                            A type union of all known message node types. See each type for more information.

                                                                            +
                                                                            \ No newline at end of file diff --git a/docs/v2.0.2/types/index.PlayerEvents.html b/docs/v2.0.2/types/index.PlayerEvents.html new file mode 100644 index 00000000..e98f29a7 --- /dev/null +++ b/docs/v2.0.2/types/index.PlayerEvents.html @@ -0,0 +1,9 @@ +PlayerEvents | archipelago.js - v2.0.2
                                                                            +

                                                                              Type Alias PlayerEvents

                                                                              PlayerEvents: {
                                                                                  aliasUpdated: [player: Player, oldAlias: string, newAlias: string];
                                                                              }

                                                                              Type declaration

                                                                              • aliasUpdated: [player: Player, oldAlias: string, newAlias: string]

                                                                                Fires when a player updates their alias.

                                                                                +

                                                                                The Player for this player with the changes applied.

                                                                                +

                                                                                The player's previous alias.

                                                                                +

                                                                                The player's new alias.

                                                                                +
                                                                              \ No newline at end of file diff --git a/docs/v2.0.2/types/index.RoomStateEvents.html b/docs/v2.0.2/types/index.RoomStateEvents.html new file mode 100644 index 00000000..d7b2d0cf --- /dev/null +++ b/docs/v2.0.2/types/index.RoomStateEvents.html @@ -0,0 +1,25 @@ +RoomStateEvents | archipelago.js - v2.0.2
                                                                              +

                                                                                Type Alias RoomStateEvents

                                                                                RoomStateEvents: {
                                                                                    hintCostUpdated: [oldCost: number, newCost: number, oldPercentage: number, newPercentage: number];
                                                                                    hintPointsUpdated: [oldValue: number, newValue: number];
                                                                                    locationCheckPointsUpdated: [oldValue: number, newValue: number];
                                                                                    locationsChecked: [locations: number[]];
                                                                                    passwordUpdated: [password: boolean];
                                                                                    permissionsUpdated: [oldValue: PermissionTable, newValue: PermissionTable];
                                                                                }

                                                                                An interface with all supported room events and their respective callback arguments. To be called from +RoomStateManager.

                                                                                +

                                                                                Type declaration

                                                                                • hintCostUpdated: [oldCost: number, newCost: number, oldPercentage: number, newPercentage: number]

                                                                                  Fires when the hint cost has been updated.

                                                                                  +

                                                                                  The previous amount of hint points required to request a hint.

                                                                                  +

                                                                                  The new amount of hint points required to request a hint.

                                                                                  +

                                                                                  The old hint cost percentage.

                                                                                  +

                                                                                  The new hint cost percentage.

                                                                                  +
                                                                                • hintPointsUpdated: [oldValue: number, newValue: number]

                                                                                  Fires when the player's hint points value has updated.

                                                                                  +

                                                                                  The old hint point value.

                                                                                  +

                                                                                  The new hint point value.

                                                                                  +
                                                                                • locationCheckPointsUpdated: [oldValue: number, newValue: number]

                                                                                  Fires when the location check points have been updated.

                                                                                  +

                                                                                  The previous location check points value.

                                                                                  +

                                                                                  The new location check points value.

                                                                                  +
                                                                                • locationsChecked: [locations: number[]]

                                                                                  Fires when new locations have been checked (or all locations on initial connection).

                                                                                  +

                                                                                  All the newly checked locations.

                                                                                  +
                                                                                • passwordUpdated: [password: boolean]

                                                                                  Fires when the room password has been toggled.

                                                                                  +

                                                                                  If the room now requires a password to join.

                                                                                  +
                                                                                • permissionsUpdated: [oldValue: PermissionTable, newValue: PermissionTable]

                                                                                  Fires when command permissions have been updated.

                                                                                  +

                                                                                  The previous command permissions table.

                                                                                  +

                                                                                  The new command permissions table.

                                                                                  +
                                                                                \ No newline at end of file diff --git a/docs/v2.0.2/types/index.SocketEvents.html b/docs/v2.0.2/types/index.SocketEvents.html new file mode 100644 index 00000000..34a71ca3 --- /dev/null +++ b/docs/v2.0.2/types/index.SocketEvents.html @@ -0,0 +1,45 @@ +SocketEvents | archipelago.js - v2.0.2
                                                                                +

                                                                                  Type Alias SocketEvents

                                                                                  SocketEvents: {
                                                                                      bounced: [packet: BouncedPacket, data: JSONRecord];
                                                                                      connected: [packet: ConnectedPacket];
                                                                                      connectionRefused: [packet: ConnectionRefusedPacket];
                                                                                      dataPackage: [packet: DataPackagePacket];
                                                                                      disconnected: [];
                                                                                      invalidPacket: [packet: InvalidPacketPacket];
                                                                                      locationInfo: [packet: LocationInfoPacket];
                                                                                      printJSON: [packet: PrintJSONPacket];
                                                                                      receivedItems: [packet: ReceivedItemsPacket];
                                                                                      receivedPacket: [packet: ServerPacket];
                                                                                      retrieved: [packet: RetrievedPacket];
                                                                                      roomInfo: [packet: RoomInfoPacket];
                                                                                      roomUpdate: [packet: RoomUpdatePacket];
                                                                                      sentPackets: [packets: ClientPacket[]];
                                                                                      setReply: [packet: SetReplyPacket];
                                                                                  }

                                                                                  An interface with all supported socket events and their respective callback arguments. To be called from +SocketManager.

                                                                                  +

                                                                                  Type declaration

                                                                                  // Print all chat messages to the console when received.
                                                                                  client.socket.on("PrintJSON", (packet, message) => {
                                                                                  console.log(message);
                                                                                  });

                                                                                  // Warn when lost connection.
                                                                                  client.socket.on("Disconnect", () => {
                                                                                  console.warn("Lost connection to the server!");
                                                                                  } +
                                                                                  + +
                                                                                  \ No newline at end of file diff --git a/docs/v2.0.2/variables/index.API.clientStatuses.html b/docs/v2.0.2/variables/index.API.clientStatuses.html new file mode 100644 index 00000000..6b5eba75 --- /dev/null +++ b/docs/v2.0.2/variables/index.API.clientStatuses.html @@ -0,0 +1,12 @@ +clientStatuses | archipelago.js - v2.0.2
                                                                                  +

                                                                                  Variable clientStatusesConst

                                                                                  clientStatuses: {
                                                                                      connected: 5;
                                                                                      disconnected: 0;
                                                                                      goal: 30;
                                                                                      playing: 20;
                                                                                      ready: 10;
                                                                                  } = ...

                                                                                  A const of known containing the possible client states that may be used to inform the server during a status update.

                                                                                  +

                                                                                  Type declaration

                                                                                  • Readonlyconnected: 5

                                                                                    Client is currently connected. This status is set automatically when a client connects.

                                                                                    +
                                                                                  • Readonlydisconnected: 0

                                                                                    Client is in an unknown or disconnected state. This status is set automatically initially and when all connected +clients have disconnected from the server.

                                                                                    +
                                                                                  • Readonlygoal: 30

                                                                                    Client has completed their goal. Once set, cannot be changed.

                                                                                    +
                                                                                  • Readonlyplaying: 20

                                                                                    Client is currently playing.

                                                                                    +
                                                                                  • Readonlyready: 10

                                                                                    Client is ready to start, but hasn't started playing yet.

                                                                                    +
                                                                                  \ No newline at end of file diff --git a/docs/v2.0.2/variables/index.API.itemClassifications.html b/docs/v2.0.2/variables/index.API.itemClassifications.html new file mode 100644 index 00000000..4cfa4305 --- /dev/null +++ b/docs/v2.0.2/variables/index.API.itemClassifications.html @@ -0,0 +1,10 @@ +itemClassifications | archipelago.js - v2.0.2
                                                                                  +

                                                                                  Variable itemClassificationsConst

                                                                                  itemClassifications: {
                                                                                      normal: 0;
                                                                                      progression: 1;
                                                                                      trap: 4;
                                                                                      useful: 2;
                                                                                  } = ...

                                                                                  Bit flags that define the special characteristics of a NetworkItem.

                                                                                  +

                                                                                  Type declaration

                                                                                  • Readonlynormal: 0

                                                                                    A shorthand with no flags set, also known as 'filler' or 'junk' items.

                                                                                    +
                                                                                  • Readonlyprogression: 1

                                                                                    If set, indicates the item may unlock logical advancement.

                                                                                    +
                                                                                  • Readonlytrap: 4

                                                                                    If set, indicates the item can inconvenience a player.

                                                                                    +
                                                                                  • Readonlyuseful: 2

                                                                                    If set, indicates the item is classified as useful to have.

                                                                                    +
                                                                                  \ No newline at end of file diff --git a/docs/v2.0.2/variables/index.API.itemsHandlingFlags.html b/docs/v2.0.2/variables/index.API.itemsHandlingFlags.html new file mode 100644 index 00000000..ef728108 --- /dev/null +++ b/docs/v2.0.2/variables/index.API.itemsHandlingFlags.html @@ -0,0 +1,11 @@ +itemsHandlingFlags | archipelago.js - v2.0.2
                                                                                  +

                                                                                  Variable itemsHandlingFlagsConst

                                                                                  itemsHandlingFlags: {
                                                                                      all: 7;
                                                                                      minimal: 0;
                                                                                      others: 1;
                                                                                      own: 2;
                                                                                      starting: 4;
                                                                                  } = ...

                                                                                  Bit flags configuring which items should be sent by the server to this client.

                                                                                  +

                                                                                  Type declaration

                                                                                  • Readonlyall: 7

                                                                                    Shorthand for REMOTE_DIFFERENT_WORLDS, REMOTE_OWN_WORLD, and REMOTE_STARTING_INVENTORY.

                                                                                    +
                                                                                  • Readonlyminimal: 0

                                                                                    Indicates the client only receives items created by cheat commands.

                                                                                    +
                                                                                  • Readonlyothers: 1

                                                                                    Indicates the client get items sent from other worlds.

                                                                                    +
                                                                                  • Readonlyown: 2

                                                                                    Indicates the client get items sent from your own world. Requires REMOTE_DIFFERENT_WORLDS to be set.

                                                                                    +
                                                                                  • Readonlystarting: 4

                                                                                    Indicates the client get your starting inventory sent. Requires REMOTE_DIFFERENT_WORLDS to be set.

                                                                                    +
                                                                                  \ No newline at end of file diff --git a/docs/v2.0.2/variables/index.API.permissions.html b/docs/v2.0.2/variables/index.API.permissions.html new file mode 100644 index 00000000..dff0a4e7 --- /dev/null +++ b/docs/v2.0.2/variables/index.API.permissions.html @@ -0,0 +1,14 @@ +permissions | archipelago.js - v2.0.2
                                                                                  +

                                                                                  Variable permissionsConst

                                                                                  permissions: {
                                                                                      auto: 6;
                                                                                      autoEnabled: 7;
                                                                                      disabled: 0;
                                                                                      enabled: 1;
                                                                                      goal: 2;
                                                                                  } = ...

                                                                                  A const containing the possible command permissions, for commands that may be restricted.

                                                                                  +

                                                                                  Type declaration

                                                                                  • Readonlyauto: 6

                                                                                    Forces players to use this command after they have completed their goal.

                                                                                    +

                                                                                    Only allowed on release and collect permissions.

                                                                                    +
                                                                                  • ReadonlyautoEnabled: 7

                                                                                    Allows players to use this command manually at any time and forces them to use this command after they have +completed their goal.

                                                                                    +

                                                                                    Only allowed on release and collect permissions.

                                                                                    +
                                                                                  • Readonlydisabled: 0

                                                                                    Prevents players from using this command at any time.

                                                                                    +
                                                                                  • Readonlyenabled: 1

                                                                                    Allows players to use this command manually at any time.

                                                                                    +
                                                                                  • Readonlygoal: 2

                                                                                    Allows players to use this command manually after they have completed their goal.

                                                                                    +
                                                                                  \ No newline at end of file diff --git a/docs/v2.0.2/variables/index.API.slotTypes.html b/docs/v2.0.2/variables/index.API.slotTypes.html new file mode 100644 index 00000000..83284ef5 --- /dev/null +++ b/docs/v2.0.2/variables/index.API.slotTypes.html @@ -0,0 +1,9 @@ +slotTypes | archipelago.js - v2.0.2
                                                                                  +

                                                                                  Variable slotTypesConst

                                                                                  slotTypes: {
                                                                                      group: 2;
                                                                                      player: 1;
                                                                                      spectator: 0;
                                                                                  } = ...

                                                                                  An enumeration representing the nature of the slot.

                                                                                  +

                                                                                  Type declaration

                                                                                  • Readonlygroup: 2

                                                                                    This client is an item links group containing at least 1 player with active item links.

                                                                                    +
                                                                                  • Readonlyplayer: 1

                                                                                    This client is a player and is participating in the current game.

                                                                                    +
                                                                                  • Readonlyspectator: 0

                                                                                    This client is a spectator and not participating in the current game.

                                                                                    +
                                                                                  \ No newline at end of file diff --git a/docs/v2.0.2/variables/index.libraryVersion.html b/docs/v2.0.2/variables/index.libraryVersion.html new file mode 100644 index 00000000..a7628f76 --- /dev/null +++ b/docs/v2.0.2/variables/index.libraryVersion.html @@ -0,0 +1,5 @@ +libraryVersion | archipelago.js - v2.0.2
                                                                                  +

                                                                                    Variable libraryVersionConst

                                                                                    libraryVersion = "2.0.2"
                                                                                    \ No newline at end of file diff --git a/docs/v2.0.2/variables/index.targetVersion.html b/docs/v2.0.2/variables/index.targetVersion.html new file mode 100644 index 00000000..f01ad023 --- /dev/null +++ b/docs/v2.0.2/variables/index.targetVersion.html @@ -0,0 +1,7 @@ +targetVersion | archipelago.js - v2.0.2
                                                                                    +

                                                                                      Variable targetVersionConst

                                                                                      targetVersion: {
                                                                                          build: number;
                                                                                          major: number;
                                                                                          minor: number;
                                                                                      } = ...

                                                                                      Archipelago version this library attempts to target. Support for older versions of the Archipelago API is not +guaranteed and some newer enhancements may no longer work or be supported.

                                                                                      +
                                                                                      \ No newline at end of file