>;
+
+declare const defaultBaseUrl = "https://api.telegram.org";
+declare const MESSAGE_EFFECTS: {
+ readonly "\uD83D\uDD25": "5104841245755180586";
+ readonly "\uD83D\uDC4D": "5107584321108051014";
+ readonly "\uD83D\uDC4E": "5104858069142078462";
+ readonly "\u2764\uFE0F": "5159385139981059251";
+ readonly "\uD83C\uDF89": "5046509860389126442";
+ readonly "\uD83D\uDCA9": "5046589136895476101";
+};
+type MessageEffect = keyof typeof MESSAGE_EFFECTS;
+declare const messageEffectIdCodes: MessageEffect[];
+declare const isMessageEffect: (input: unknown) => input is MessageEffect;
+
+export { type AddStickerToSetInput, type AffiliateInfo, type Animation, type AnswerCallbackQueryInput, type AnswerInlineQueryInput, type AnswerPreCheckoutQueryInput, type AnswerShippingQueryInput, type AnswerWebAppQueryInput, type Api, type ApproveChatJoinRequestInput, type Audio, type AvailableUpdateTypes, type BackgroundFill, type BackgroundFillFreeformGradient, type BackgroundFillGradient, type BackgroundFillSolid, type BackgroundType, type BackgroundTypeChatTheme, type BackgroundTypeFill, type BackgroundTypePattern, type BackgroundTypeWallpaper, type BanChatMemberInput, type BanChatSenderChatInput, type Birthdate, type BotCommand, type BotCommandScope, type BotCommandScopeAllChatAdministrators, type BotCommandScopeAllGroupChats, type BotCommandScopeAllPrivateChats, type BotCommandScopeChat, type BotCommandScopeChatAdministrators, type BotCommandScopeChatMember, type BotCommandScopeDefault, type BotDescription, type BotMessageHandlerSettings, type BotMessageHandlers, type BotName, type BotResponse, type BotShortDescription, type BusinessConnection, type BusinessIntro, type BusinessLocation, type BusinessMessagesDeleted, type BusinessOpeningHours, type BusinessOpeningHoursInterval, type CallbackGame, type CallbackQuery, type Chat, type ChatAdministratorRights, type ChatBackground, type ChatBoost, type ChatBoostAdded, type ChatBoostRemoved, type ChatBoostSource, type ChatBoostSourceGiftCode, type ChatBoostSourceGiveaway, type ChatBoostSourcePremium, type ChatBoostUpdated, type ChatFullInfo, type ChatInviteLink, type ChatJoinRequest, type ChatLocation, type ChatMember, type ChatMemberAdministrator, type ChatMemberBanned, type ChatMemberLeft, type ChatMemberMember, type ChatMemberOwner, type ChatMemberRestricted, type ChatMemberUpdated, type ChatPermissions, type ChatPhoto, type ChatShared, type ChosenInlineResult, type CloseForumTopicInput, type CloseGeneralForumTopicInput, type CloseInput, type Contact, type CopyMessageInput, type CopyMessagesInput, type CopyTextButton, type CreateChatInviteLinkInput, type CreateChatSubscriptionInviteLinkInput, type CreateForumTopicInput, type CreateInvoiceLinkInput, type CreateNewStickerSetInput, type DeclineChatJoinRequestInput, type DeleteChatPhotoInput, type DeleteChatStickerSetInput, type DeleteForumTopicInput, type DeleteMessageInput, type DeleteMessagesInput, type DeleteMyCommandsInput, type DeleteStickerFromSetInput, type DeleteStickerSetInput, type DeleteWebhookInput, type Dice, type Document, type EditChatInviteLinkInput, type EditChatSubscriptionInviteLinkInput, type EditForumTopicInput, type EditGeneralForumTopicInput, type EditMessageCaptionInput, type EditMessageLiveLocationInput, type EditMessageMediaInput, type EditMessageReplyMarkupInput, type EditMessageTextInput, type EditUserStarSubscriptionInput, type EncryptedCredentials, type EncryptedPassportElement, type ExportChatInviteLinkInput, type ExternalReplyInfo, type File$1 as File, type ForceReply, type ForumTopic, type ForumTopicClosed, type ForumTopicCreated, type ForumTopicEdited, type ForumTopicReopened, type ForwardMessageInput, type ForwardMessagesInput, type Game, type GameHighScore, type GeneralForumTopicHidden, type GeneralForumTopicUnhidden, type GetAvailableGiftsInput, type GetBusinessConnectionInput, type GetChatAdministratorsInput, type GetChatInput, type GetChatMemberCountInput, type GetChatMemberInput, type GetChatMenuButtonInput, type GetCustomEmojiStickersInput, type GetFileInput, type GetForumTopicIconStickersInput, type GetGameHighScoresInput, type GetMeInput, type GetMyCommandsInput, type GetMyDefaultAdministratorRightsInput, type GetMyDescriptionInput, type GetMyNameInput, type GetMyShortDescriptionInput, type GetStarTransactionsInput, type GetStickerSetInput, type GetUpdatesInput, type GetUserChatBoostsInput, type GetUserProfilePhotosInput, type GetWebhookInfoInput, type Gift, type Gifts, type Giveaway, type GiveawayCompleted, type GiveawayCreated, type GiveawayWinners, type HideGeneralForumTopicInput, type InaccessibleMessage, type InlineKeyboardButton, type InlineKeyboardMarkup, type InlineQuery, type InlineQueryResult, type InlineQueryResultArticle, type InlineQueryResultAudio, type InlineQueryResultCachedAudio, type InlineQueryResultCachedDocument, type InlineQueryResultCachedGif, type InlineQueryResultCachedMpeg4Gif, type InlineQueryResultCachedPhoto, type InlineQueryResultCachedSticker, type InlineQueryResultCachedVideo, type InlineQueryResultCachedVoice, type InlineQueryResultContact, type InlineQueryResultDocument, type InlineQueryResultGame, type InlineQueryResultGif, type InlineQueryResultLocation, type InlineQueryResultMpeg4Gif, type InlineQueryResultPhoto, type InlineQueryResultVenue, type InlineQueryResultVideo, type InlineQueryResultVoice, type InlineQueryResultsButton, type InputContactMessageContent, type InputFile, type InputInvoiceMessageContent, type InputLocationMessageContent, type InputMedia, type InputMediaAnimation, type InputMediaAudio, type InputMediaDocument, type InputMediaPhoto, type InputMediaVideo, type InputMessageContent, type InputPaidMedia, type InputPaidMediaPhoto, type InputPaidMediaVideo, type InputPollOption, type InputSticker, type InputTextMessageContent, type InputVenueMessageContent, type Invoice, type KeyboardButton, type KeyboardButtonPollType, type KeyboardButtonRequestChat, type KeyboardButtonRequestUsers, type LabeledPrice, type LeaveChatInput, type LinkPreviewOptions, type Location, type LogOutInput, type LoginUrl, MESSAGE_EFFECTS, type MaskPosition, type MaybeInaccessibleMessage, type MenuButton, type MenuButtonCommands, type MenuButtonDefault, type MenuButtonWebApp, type Message, type MessageAutoDeleteTimerChanged, type MessageEffect, type MessageEntity, type MessageId, type MessageOrigin, type MessageOriginChannel, type MessageOriginChat, type MessageOriginHiddenUser, type MessageOriginUser, type MessageReactionCountUpdated, type MessageReactionUpdated, type OrderInfo, type PaidMedia, type PaidMediaInfo, type PaidMediaPhoto, type PaidMediaPreview, type PaidMediaPurchased, type PaidMediaVideo, type PassportData, type PassportElementError, type PassportElementErrorDataField, type PassportElementErrorFile, type PassportElementErrorFiles, type PassportElementErrorFrontSide, type PassportElementErrorReverseSide, type PassportElementErrorSelfie, type PassportElementErrorTranslationFile, type PassportElementErrorTranslationFiles, type PassportElementErrorUnspecified, type PassportFile, type PhotoSize, type PinChatMessageInput, type Poll, type PollAnswer, type PollOption, type PreCheckoutQuery, type PreparedInlineMessage, type PromoteChatMemberInput, type ProximityAlertTriggered, type ReactionCount, type ReactionType, type ReactionTypeCustomEmoji, type ReactionTypeEmoji, type ReactionTypePaid, type RefundStarPaymentInput, type RefundedPayment, type ReopenForumTopicInput, type ReopenGeneralForumTopicInput, type ReplaceStickerInSetInput, type ReplyKeyboardMarkup, type ReplyKeyboardRemove, type ReplyParameters, type ResponseParameters, type RestrictChatMemberInput, type RevenueWithdrawalState, type RevenueWithdrawalStateFailed, type RevenueWithdrawalStatePending, type RevenueWithdrawalStateSucceeded, type RevokeChatInviteLinkInput, type SavePreparedInlineMessageInput, type SendAnimationInput, type SendAudioInput, type SendChatActionInput, type SendContactInput, type SendDiceInput, type SendDocumentInput, type SendGameInput, type SendGiftInput, type SendInvoiceInput, type SendLocationInput, type SendMediaGroupInput, type SendMessageInput, type SendPaidMediaInput, type SendPhotoInput, type SendPollInput, type SendStickerInput, type SendVenueInput, type SendVideoInput, type SendVideoNoteInput, type SendVoiceInput, type SentWebAppMessage, type SetChatAdministratorCustomTitleInput, type SetChatDescriptionInput, type SetChatMenuButtonInput, type SetChatPermissionsInput, type SetChatPhotoInput, type SetChatStickerSetInput, type SetChatTitleInput, type SetCustomEmojiStickerSetThumbnailInput, type SetGameScoreInput, type SetMessageReactionInput, type SetMyCommandsInput, type SetMyDefaultAdministratorRightsInput, type SetMyDescriptionInput, type SetMyNameInput, type SetMyShortDescriptionInput, type SetPassportDataErrorsInput, type SetStickerEmojiListInput, type SetStickerKeywordsInput, type SetStickerMaskPositionInput, type SetStickerPositionInSetInput, type SetStickerSetThumbnailInput, type SetStickerSetTitleInput, type SetUserEmojiStatusInput, type SetWebhookInput, type SharedUser, type ShippingAddress, type ShippingOption, type ShippingQuery, type StarTransaction, type StarTransactions, type Sticker, type StickerSet, type StopMessageLiveLocationInput, type StopPollInput, type Story, type SuccessfulPayment, type SwitchInlineQueryChosenChat, type TextQuote, type TgBotClient, type TransactionPartner, type TransactionPartnerAffiliateProgram, type TransactionPartnerFragment, type TransactionPartnerOther, type TransactionPartnerTelegramAds, type TransactionPartnerTelegramApi, type TransactionPartnerUser, type UnbanChatMemberInput, type UnbanChatSenderChatInput, type UnhideGeneralForumTopicInput, type UnpinAllChatMessagesInput, type UnpinAllForumTopicMessagesInput, type UnpinAllGeneralForumTopicMessagesInput, type UnpinChatMessageInput, type Update, type UploadStickerFileInput, type User, type UserChatBoosts, type UserProfilePhotos, type UsersShared, type Venue, type Video, type VideoChatEnded, type VideoChatParticipantsInvited, type VideoChatScheduled, type VideoChatStarted, type VideoNote, type Voice, type WebAppData, type WebAppInfo, type WebhookInfo, type WriteAccessAllowed, defaultBaseUrl, isMessageEffect, makeTgBotClient, messageEffectIdCodes, runTgChatBot };
diff --git a/docs/telegram-bot-playground/example/command.ts b/docs/telegram-bot-playground/example/command.ts
new file mode 100644
index 0000000..44c23a1
--- /dev/null
+++ b/docs/telegram-bot-playground/example/command.ts
@@ -0,0 +1,34 @@
+import type { BotMessageHandlers } from "@effect-ak/tg-bot-client"
+
+export default {
+ on_message: (msg) => {
+
+ const commandEntity = msg.entities?.find(_ => _.type == "bot_command");
+ const command = msg.text?.slice(commandEntity?.offset, commandEntity?.length);
+
+ console.log("command", command);
+
+ if (command == "/bye") {
+ return {
+ type: "message",
+ text: "See you later!"
+ }
+ }
+
+ if (command == "/echo") {
+ return {
+ type: "message",
+ text: `${JSON.stringify(msg, undefined, 2)}
`,
+ parse_mode: "HTML"
+ }
+ }
+
+ console.log("got a message", msg.text)
+
+ return {
+ type: "message",
+ text: "hey :)"
+ }
+ },
+} as BotMessageHandlers
+
diff --git a/docs/telegram-bot-playground/example/empty.ts b/docs/telegram-bot-playground/example/empty.ts
new file mode 100644
index 0000000..50ac103
--- /dev/null
+++ b/docs/telegram-bot-playground/example/empty.ts
@@ -0,0 +1,11 @@
+import type { BotMessageHandlers } from "@effect-ak/tg-bot-client"
+
+export default {
+ on_message: (msg) => {
+
+ return {
+ type: "message",
+ text: "hey :)"
+ }
+ },
+} as BotMessageHandlers
diff --git a/docs/telegram-bot-playground/example/file.ts b/docs/telegram-bot-playground/example/file.ts
new file mode 100644
index 0000000..4b16f6a
--- /dev/null
+++ b/docs/telegram-bot-playground/example/file.ts
@@ -0,0 +1,27 @@
+import type { BotMessageHandlers } from "@effect-ak/tg-bot-client"
+
+export default {
+ on_message: (msg) => {
+ if (msg.text?.includes("+")) {
+ const numbers = msg.text.split("+");
+ let result = 0;
+ for (const num of numbers) {
+ result += parseInt(num);
+ }
+ return {
+ type: "document",
+ caption: "sum result",
+ document: {
+ file_content: new TextEncoder().encode(`your sum is ${result}`),
+ file_name: "hello.txt"
+ }
+ }
+ }
+
+ return {
+ type: "message",
+ text: "hey, send me a message in the format '3+3+3' and I will return you the sum of it in a text file"
+ }
+ },
+} as BotMessageHandlers
+
diff --git a/docs/telegram-bot-playground/index.html b/docs/telegram-bot-playground/index.html
new file mode 100644
index 0000000..f2861a5
--- /dev/null
+++ b/docs/telegram-bot-playground/index.html
@@ -0,0 +1,92 @@
+
+
+
+
+ telegram bot playground
+
+
+
+
+
+
+
+
+
+
+
+ Telegram Bot Playground ๐ค
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/telegram-bot-playground/scripts/init.js b/docs/telegram-bot-playground/scripts/init.js
new file mode 100644
index 0000000..0aeca00
--- /dev/null
+++ b/docs/telegram-bot-playground/scripts/init.js
@@ -0,0 +1,7 @@
+// src/tg-bot-playground/init.ts
+var worker = new Worker("./scripts/web-worker.js", { type: "module" });
+worker.addEventListener("message", (msg) => {
+ console.log("From worker", msg.data);
+});
+window.playground = {};
+window.playground.worker = worker;
diff --git a/docs/telegram-bot-playground/scripts/main.js b/docs/telegram-bot-playground/scripts/main.js
new file mode 100644
index 0000000..73fb266
--- /dev/null
+++ b/docs/telegram-bot-playground/scripts/main.js
@@ -0,0 +1,120 @@
+// src/tg-bot-playground/utils.ts
+async function getDefaultExport(code) {
+ try {
+ const encodedCode = encodeURIComponent(code);
+ const module = await import(`data:text/javascript,${encodedCode}`);
+ const result = module.default;
+ return { default: result };
+ } catch (e) {
+ console.warn("get default error", e);
+ return void 0;
+ }
+}
+var getJsCode = async () => {
+ const tsModelUri = window.playground.tsModel?.uri;
+ if (!tsModelUri) {
+ console.warn("tsModel uri not defined");
+ return;
+ }
+ const worker = await window.monaco.languages.typescript.getTypeScriptWorker();
+ const modelWorker = await worker(tsModelUri);
+ const output = await modelWorker.getEmitOutput(tsModelUri.toString());
+ const code = output.outputFiles[0].text;
+ const result = await getDefaultExport(code);
+ return serialize(result?.default);
+};
+var fetchText = (path) => fetch(path).then((_) => _.text());
+var setupDts = async (monaco) => {
+ const dts = await fetchText("declarations.d.ts");
+ monaco.languages.typescript.typescriptDefaults.setExtraLibs([
+ {
+ content: dts,
+ filePath: "node_modules/@effect-ak/tg-bot-client/index.d.ts"
+ }
+ ]);
+ monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
+ ...monaco.languages.typescript.typescriptDefaults.getCompilerOptions(),
+ moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs,
+ typeRoots: [
+ "node_modules"
+ ],
+ strict: true
+ });
+};
+var serialize = (input) => {
+ if (typeof input != "object" || !input) {
+ return void 0;
+ }
+ const result = [];
+ for (const [key, value] of Object.entries(input)) {
+ if (typeof value != "function") {
+ continue;
+ }
+ result.push([key, value.toString()]);
+ }
+ return JSON.stringify(Object.fromEntries(result));
+};
+
+// src/tg-bot-playground/main.ts
+window.playground.start = () => {
+ const container = document.getElementById("container");
+ if (!container) {
+ return console.error("container not found");
+ }
+ window.monaco_loader.config({
+ paths: {
+ vs: "https://cdn.jsdelivr.net/npm/monaco-editor@latest/min/vs"
+ }
+ });
+ Promise.all([
+ window.monaco_loader.init(),
+ fetchText("./example/empty.ts")
+ ]).then(([monaco, emptyExample]) => {
+ window.playground.tsModel = monaco.editor.createModel(emptyExample, "typescript");
+ setupDts(monaco);
+ window.playground.editor = monaco.editor.create(container, {
+ model: window.playground.tsModel,
+ contextmenu: false,
+ minimap: {
+ enabled: false
+ }
+ });
+ }).catch((error) => console.warn("init error", error));
+};
+window.playground.loadExample = (name) => {
+ if (!name) return;
+ fetchText(`./example/${name}`).then((_) => window.playground.editor?.setValue(_)).catch((error) => {
+ console.error("Cannot load example", error);
+ });
+};
+window.playground.runBot = (state) => {
+ const token = state.token;
+ if (!token) return;
+ getJsCode().then((code) => {
+ if (!code) {
+ console.warn("Js Code not defined");
+ return;
+ }
+ window.playground.worker?.postMessage({
+ command: "run-bot",
+ token,
+ code
+ });
+ state.status = "active";
+ }).catch((error) => {
+ console.warn("cannot run bot", error);
+ });
+};
+window.playground.checkToken = (state) => {
+ const token = state.token;
+ if (!token) return;
+ fetch(`https://api.telegram.org/bot${token}/getMe`).then((_) => _.json()).then((info) => {
+ if (info.ok) {
+ state.name = info.result.first_name;
+ } else {
+ state.name = "nameless";
+ }
+ }).catch((error) => {
+ console.warn("check token error", error);
+ });
+};
diff --git a/docs/telegram-bot-playground/scripts/web-worker.js b/docs/telegram-bot-playground/scripts/web-worker.js
new file mode 100644
index 0000000..318035b
--- /dev/null
+++ b/docs/telegram-bot-playground/scripts/web-worker.js
@@ -0,0 +1,3772 @@
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Function.js
+var isFunction = (input) => typeof input === "function";
+var dual = function(arity, body) {
+ if (typeof arity === "function") {
+ return function() {
+ if (arity(arguments)) {
+ return body.apply(this, arguments);
+ }
+ return (self2) => body(self2, ...arguments);
+ };
+ }
+ switch (arity) {
+ case 0:
+ case 1:
+ throw new RangeError(`Invalid arity ${arity}`);
+ case 2:
+ return function(a, b) {
+ if (arguments.length >= 2) {
+ return body(a, b);
+ }
+ return function(self2) {
+ return body(self2, a);
+ };
+ };
+ case 3:
+ return function(a, b, c) {
+ if (arguments.length >= 3) {
+ return body(a, b, c);
+ }
+ return function(self2) {
+ return body(self2, a, b);
+ };
+ };
+ case 4:
+ return function(a, b, c, d) {
+ if (arguments.length >= 4) {
+ return body(a, b, c, d);
+ }
+ return function(self2) {
+ return body(self2, a, b, c);
+ };
+ };
+ case 5:
+ return function(a, b, c, d, e) {
+ if (arguments.length >= 5) {
+ return body(a, b, c, d, e);
+ }
+ return function(self2) {
+ return body(self2, a, b, c, d);
+ };
+ };
+ default:
+ return function() {
+ if (arguments.length >= arity) {
+ return body.apply(this, arguments);
+ }
+ const args2 = arguments;
+ return function(self2) {
+ return body(self2, ...args2);
+ };
+ };
+ }
+};
+var identity = (a) => a;
+var constant = (value) => () => value;
+var constTrue = /* @__PURE__ */ constant(true);
+var constFalse = /* @__PURE__ */ constant(false);
+var constUndefined = /* @__PURE__ */ constant(void 0);
+var constVoid = constUndefined;
+function pipe(a, ab, bc, cd, de, ef, fg, gh, hi) {
+ switch (arguments.length) {
+ case 1:
+ return a;
+ case 2:
+ return ab(a);
+ case 3:
+ return bc(ab(a));
+ case 4:
+ return cd(bc(ab(a)));
+ case 5:
+ return de(cd(bc(ab(a))));
+ case 6:
+ return ef(de(cd(bc(ab(a)))));
+ case 7:
+ return fg(ef(de(cd(bc(ab(a))))));
+ case 8:
+ return gh(fg(ef(de(cd(bc(ab(a)))))));
+ case 9:
+ return hi(gh(fg(ef(de(cd(bc(ab(a))))))));
+ default: {
+ let ret = arguments[0];
+ for (let i = 1; i < arguments.length; i++) {
+ ret = arguments[i](ret);
+ }
+ return ret;
+ }
+ }
+}
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Equivalence.js
+var make = (isEquivalent) => (self2, that) => self2 === that || isEquivalent(self2, that);
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/version.js
+var moduleVersion = "3.11.9";
+var getCurrentVersion = () => moduleVersion;
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/GlobalValue.js
+var globalStoreId = /* @__PURE__ */ Symbol.for(`effect/GlobalValue/globalStoreId/${/* @__PURE__ */ getCurrentVersion()}`);
+if (!(globalStoreId in globalThis)) {
+ ;
+ globalThis[globalStoreId] = /* @__PURE__ */ new Map();
+}
+var globalStore = globalThis[globalStoreId];
+var globalValue = (id, compute) => {
+ if (!globalStore.has(id)) {
+ globalStore.set(id, compute());
+ }
+ return globalStore.get(id);
+};
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Predicate.js
+var isFunction2 = isFunction;
+var isRecordOrArray = (input) => typeof input === "object" && input !== null;
+var isObject = (input) => isRecordOrArray(input) || isFunction2(input);
+var hasProperty = /* @__PURE__ */ dual(2, (self2, property) => isObject(self2) && property in self2);
+var isTagged = /* @__PURE__ */ dual(2, (self2, tag) => hasProperty(self2, "_tag") && self2["_tag"] === tag);
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/errors.js
+var getBugErrorMessage = (message) => `BUG: ${message} - please report an issue at https://github.com/Effect-TS/effect/issues`;
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Utils.js
+var GenKindTypeId = /* @__PURE__ */ Symbol.for("effect/Gen/GenKind");
+var GenKindImpl = class {
+ value;
+ constructor(value) {
+ this.value = value;
+ }
+ /**
+ * @since 2.0.0
+ */
+ get _F() {
+ return identity;
+ }
+ /**
+ * @since 2.0.0
+ */
+ get _R() {
+ return (_) => _;
+ }
+ /**
+ * @since 2.0.0
+ */
+ get _O() {
+ return (_) => _;
+ }
+ /**
+ * @since 2.0.0
+ */
+ get _E() {
+ return (_) => _;
+ }
+ /**
+ * @since 2.0.0
+ */
+ [GenKindTypeId] = GenKindTypeId;
+ /**
+ * @since 2.0.0
+ */
+ [Symbol.iterator]() {
+ return new SingleShotGen(this);
+ }
+};
+var SingleShotGen = class _SingleShotGen {
+ self;
+ called = false;
+ constructor(self2) {
+ this.self = self2;
+ }
+ /**
+ * @since 2.0.0
+ */
+ next(a) {
+ return this.called ? {
+ value: a,
+ done: true
+ } : (this.called = true, {
+ value: this.self,
+ done: false
+ });
+ }
+ /**
+ * @since 2.0.0
+ */
+ return(a) {
+ return {
+ value: a,
+ done: true
+ };
+ }
+ /**
+ * @since 2.0.0
+ */
+ throw(e) {
+ throw e;
+ }
+ /**
+ * @since 2.0.0
+ */
+ [Symbol.iterator]() {
+ return new _SingleShotGen(this.self);
+ }
+};
+var MUL_HI = 1481765933 >>> 0;
+var MUL_LO = 1284865837 >>> 0;
+var YieldWrapTypeId = /* @__PURE__ */ Symbol.for("effect/Utils/YieldWrap");
+var YieldWrap = class {
+ /**
+ * @since 3.0.6
+ */
+ #value;
+ constructor(value) {
+ this.#value = value;
+ }
+ /**
+ * @since 3.0.6
+ */
+ [YieldWrapTypeId]() {
+ return this.#value;
+ }
+};
+function yieldWrapGet(self2) {
+ if (typeof self2 === "object" && self2 !== null && YieldWrapTypeId in self2) {
+ return self2[YieldWrapTypeId]();
+ }
+ throw new Error(getBugErrorMessage("yieldWrapGet"));
+}
+var structuralRegionState = /* @__PURE__ */ globalValue("effect/Utils/isStructuralRegion", () => ({
+ enabled: false,
+ tester: void 0
+}));
+var genConstructor = function* () {
+}.constructor;
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Hash.js
+var randomHashCache = /* @__PURE__ */ globalValue(/* @__PURE__ */ Symbol.for("effect/Hash/randomHashCache"), () => /* @__PURE__ */ new WeakMap());
+var symbol = /* @__PURE__ */ Symbol.for("effect/Hash");
+var hash = (self2) => {
+ if (structuralRegionState.enabled === true) {
+ return 0;
+ }
+ switch (typeof self2) {
+ case "number":
+ return number(self2);
+ case "bigint":
+ return string(self2.toString(10));
+ case "boolean":
+ return string(String(self2));
+ case "symbol":
+ return string(String(self2));
+ case "string":
+ return string(self2);
+ case "undefined":
+ return string("undefined");
+ case "function":
+ case "object": {
+ if (self2 === null) {
+ return string("null");
+ } else if (self2 instanceof Date) {
+ return hash(self2.toISOString());
+ } else if (isHash(self2)) {
+ return self2[symbol]();
+ } else {
+ return random(self2);
+ }
+ }
+ default:
+ throw new Error(`BUG: unhandled typeof ${typeof self2} - please report an issue at https://github.com/Effect-TS/effect/issues`);
+ }
+};
+var random = (self2) => {
+ if (!randomHashCache.has(self2)) {
+ randomHashCache.set(self2, number(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER)));
+ }
+ return randomHashCache.get(self2);
+};
+var combine = (b) => (self2) => self2 * 53 ^ b;
+var optimize = (n) => n & 3221225471 | n >>> 1 & 1073741824;
+var isHash = (u) => hasProperty(u, symbol);
+var number = (n) => {
+ if (n !== n || n === Infinity) {
+ return 0;
+ }
+ let h = n | 0;
+ if (h !== n) {
+ h ^= n * 4294967295;
+ }
+ while (n > 4294967295) {
+ h ^= n /= 4294967295;
+ }
+ return optimize(h);
+};
+var string = (str) => {
+ let h = 5381, i = str.length;
+ while (i) {
+ h = h * 33 ^ str.charCodeAt(--i);
+ }
+ return optimize(h);
+};
+var structureKeys = (o, keys2) => {
+ let h = 12289;
+ for (let i = 0; i < keys2.length; i++) {
+ h ^= pipe(string(keys2[i]), combine(hash(o[keys2[i]])));
+ }
+ return optimize(h);
+};
+var structure = (o) => structureKeys(o, Object.keys(o));
+var array = (arr) => {
+ let h = 6151;
+ for (let i = 0; i < arr.length; i++) {
+ h = pipe(h, combine(hash(arr[i])));
+ }
+ return optimize(h);
+};
+var cached = function() {
+ if (arguments.length === 1) {
+ const self3 = arguments[0];
+ return function(hash3) {
+ Object.defineProperty(self3, symbol, {
+ value() {
+ return hash3;
+ },
+ enumerable: false
+ });
+ return hash3;
+ };
+ }
+ const self2 = arguments[0];
+ const hash2 = arguments[1];
+ Object.defineProperty(self2, symbol, {
+ value() {
+ return hash2;
+ },
+ enumerable: false
+ });
+ return hash2;
+};
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Equal.js
+var symbol2 = /* @__PURE__ */ Symbol.for("effect/Equal");
+function equals() {
+ if (arguments.length === 1) {
+ return (self2) => compareBoth(self2, arguments[0]);
+ }
+ return compareBoth(arguments[0], arguments[1]);
+}
+function compareBoth(self2, that) {
+ if (self2 === that) {
+ return true;
+ }
+ const selfType = typeof self2;
+ if (selfType !== typeof that) {
+ return false;
+ }
+ if (selfType === "object" || selfType === "function") {
+ if (self2 !== null && that !== null) {
+ if (isEqual(self2) && isEqual(that)) {
+ if (hash(self2) === hash(that) && self2[symbol2](that)) {
+ return true;
+ } else {
+ return structuralRegionState.enabled && structuralRegionState.tester ? structuralRegionState.tester(self2, that) : false;
+ }
+ } else if (self2 instanceof Date && that instanceof Date) {
+ return self2.toISOString() === that.toISOString();
+ }
+ }
+ if (structuralRegionState.enabled) {
+ if (Array.isArray(self2) && Array.isArray(that)) {
+ return self2.length === that.length && self2.every((v, i) => compareBoth(v, that[i]));
+ }
+ if (Object.getPrototypeOf(self2) === Object.prototype && Object.getPrototypeOf(self2) === Object.prototype) {
+ const keysSelf = Object.keys(self2);
+ const keysThat = Object.keys(that);
+ if (keysSelf.length === keysThat.length) {
+ for (const key of keysSelf) {
+ if (!(key in that && compareBoth(self2[key], that[key]))) {
+ return structuralRegionState.tester ? structuralRegionState.tester(self2, that) : false;
+ }
+ }
+ return true;
+ }
+ }
+ return structuralRegionState.tester ? structuralRegionState.tester(self2, that) : false;
+ }
+ }
+ return structuralRegionState.enabled && structuralRegionState.tester ? structuralRegionState.tester(self2, that) : false;
+}
+var isEqual = (u) => hasProperty(u, symbol2);
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Inspectable.js
+var NodeInspectSymbol = /* @__PURE__ */ Symbol.for("nodejs.util.inspect.custom");
+var toJSON = (x) => {
+ try {
+ if (hasProperty(x, "toJSON") && isFunction2(x["toJSON"]) && x["toJSON"].length === 0) {
+ return x.toJSON();
+ } else if (Array.isArray(x)) {
+ return x.map(toJSON);
+ }
+ } catch (_) {
+ return {};
+ }
+ return redact(x);
+};
+var format = (x) => JSON.stringify(x, null, 2);
+var BaseProto = {
+ toJSON() {
+ return toJSON(this);
+ },
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ },
+ toString() {
+ return format(this.toJSON());
+ }
+};
+var Class = class {
+ /**
+ * @since 2.0.0
+ */
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ }
+ /**
+ * @since 2.0.0
+ */
+ toString() {
+ return format(this.toJSON());
+ }
+};
+var toStringUnknown = (u, whitespace = 2) => {
+ if (typeof u === "string") {
+ return u;
+ }
+ try {
+ return typeof u === "object" ? stringifyCircular(u, whitespace) : String(u);
+ } catch (_) {
+ return String(u);
+ }
+};
+var stringifyCircular = (obj, whitespace) => {
+ let cache = [];
+ const retVal = JSON.stringify(obj, (_key, value) => typeof value === "object" && value !== null ? cache.includes(value) ? void 0 : cache.push(value) && (redactableState.fiberRefs !== void 0 && isRedactable(value) ? value[symbolRedactable](redactableState.fiberRefs) : value) : value, whitespace);
+ cache = void 0;
+ return retVal;
+};
+var symbolRedactable = /* @__PURE__ */ Symbol.for("effect/Inspectable/Redactable");
+var isRedactable = (u) => typeof u === "object" && u !== null && symbolRedactable in u;
+var redactableState = /* @__PURE__ */ globalValue("effect/Inspectable/redactableState", () => ({
+ fiberRefs: void 0
+}));
+var redact = (u) => {
+ if (isRedactable(u) && redactableState.fiberRefs !== void 0) {
+ return u[symbolRedactable](redactableState.fiberRefs);
+ }
+ return u;
+};
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Pipeable.js
+var pipeArguments = (self2, args2) => {
+ switch (args2.length) {
+ case 0:
+ return self2;
+ case 1:
+ return args2[0](self2);
+ case 2:
+ return args2[1](args2[0](self2));
+ case 3:
+ return args2[2](args2[1](args2[0](self2)));
+ case 4:
+ return args2[3](args2[2](args2[1](args2[0](self2))));
+ case 5:
+ return args2[4](args2[3](args2[2](args2[1](args2[0](self2)))));
+ case 6:
+ return args2[5](args2[4](args2[3](args2[2](args2[1](args2[0](self2))))));
+ case 7:
+ return args2[6](args2[5](args2[4](args2[3](args2[2](args2[1](args2[0](self2)))))));
+ case 8:
+ return args2[7](args2[6](args2[5](args2[4](args2[3](args2[2](args2[1](args2[0](self2))))))));
+ case 9:
+ return args2[8](args2[7](args2[6](args2[5](args2[4](args2[3](args2[2](args2[1](args2[0](self2)))))))));
+ default: {
+ let ret = self2;
+ for (let i = 0, len = args2.length; i < len; i++) {
+ ret = args2[i](ret);
+ }
+ return ret;
+ }
+ }
+};
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/opCodes/effect.js
+var OP_COMMIT = "Commit";
+var OP_FAILURE = "Failure";
+var OP_WITH_RUNTIME = "WithRuntime";
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/effectable.js
+var EffectTypeId = /* @__PURE__ */ Symbol.for("effect/Effect");
+var StreamTypeId = /* @__PURE__ */ Symbol.for("effect/Stream");
+var SinkTypeId = /* @__PURE__ */ Symbol.for("effect/Sink");
+var ChannelTypeId = /* @__PURE__ */ Symbol.for("effect/Channel");
+var effectVariance = {
+ /* c8 ignore next */
+ _R: (_) => _,
+ /* c8 ignore next */
+ _E: (_) => _,
+ /* c8 ignore next */
+ _A: (_) => _,
+ _V: /* @__PURE__ */ getCurrentVersion()
+};
+var sinkVariance = {
+ /* c8 ignore next */
+ _A: (_) => _,
+ /* c8 ignore next */
+ _In: (_) => _,
+ /* c8 ignore next */
+ _L: (_) => _,
+ /* c8 ignore next */
+ _E: (_) => _,
+ /* c8 ignore next */
+ _R: (_) => _
+};
+var channelVariance = {
+ /* c8 ignore next */
+ _Env: (_) => _,
+ /* c8 ignore next */
+ _InErr: (_) => _,
+ /* c8 ignore next */
+ _InElem: (_) => _,
+ /* c8 ignore next */
+ _InDone: (_) => _,
+ /* c8 ignore next */
+ _OutErr: (_) => _,
+ /* c8 ignore next */
+ _OutElem: (_) => _,
+ /* c8 ignore next */
+ _OutDone: (_) => _
+};
+var EffectPrototype = {
+ [EffectTypeId]: effectVariance,
+ [StreamTypeId]: effectVariance,
+ [SinkTypeId]: sinkVariance,
+ [ChannelTypeId]: channelVariance,
+ [symbol2](that) {
+ return this === that;
+ },
+ [symbol]() {
+ return cached(this, random(this));
+ },
+ [Symbol.iterator]() {
+ return new SingleShotGen(new YieldWrap(this));
+ },
+ pipe() {
+ return pipeArguments(this, arguments);
+ }
+};
+var StructuralPrototype = {
+ [symbol]() {
+ return cached(this, structure(this));
+ },
+ [symbol2](that) {
+ const selfKeys = Object.keys(this);
+ const thatKeys = Object.keys(that);
+ if (selfKeys.length !== thatKeys.length) {
+ return false;
+ }
+ for (const key of selfKeys) {
+ if (!(key in that && equals(this[key], that[key]))) {
+ return false;
+ }
+ }
+ return true;
+ }
+};
+var CommitPrototype = {
+ ...EffectPrototype,
+ _op: OP_COMMIT
+};
+var StructuralCommitPrototype = {
+ ...CommitPrototype,
+ ...StructuralPrototype
+};
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/option.js
+var TypeId = /* @__PURE__ */ Symbol.for("effect/Option");
+var CommonProto = {
+ ...EffectPrototype,
+ [TypeId]: {
+ _A: (_) => _
+ },
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ },
+ toString() {
+ return format(this.toJSON());
+ }
+};
+var SomeProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(CommonProto), {
+ _tag: "Some",
+ _op: "Some",
+ [symbol2](that) {
+ return isOption(that) && isSome(that) && equals(this.value, that.value);
+ },
+ [symbol]() {
+ return cached(this, combine(hash(this._tag))(hash(this.value)));
+ },
+ toJSON() {
+ return {
+ _id: "Option",
+ _tag: this._tag,
+ value: toJSON(this.value)
+ };
+ }
+});
+var NoneHash = /* @__PURE__ */ hash("None");
+var NoneProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(CommonProto), {
+ _tag: "None",
+ _op: "None",
+ [symbol2](that) {
+ return isOption(that) && isNone(that);
+ },
+ [symbol]() {
+ return NoneHash;
+ },
+ toJSON() {
+ return {
+ _id: "Option",
+ _tag: this._tag
+ };
+ }
+});
+var isOption = (input) => hasProperty(input, TypeId);
+var isNone = (fa) => fa._tag === "None";
+var isSome = (fa) => fa._tag === "Some";
+var none = /* @__PURE__ */ Object.create(NoneProto);
+var some = (value) => {
+ const a = Object.create(SomeProto);
+ a.value = value;
+ return a;
+};
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/either.js
+var TypeId2 = /* @__PURE__ */ Symbol.for("effect/Either");
+var CommonProto2 = {
+ ...EffectPrototype,
+ [TypeId2]: {
+ _R: (_) => _
+ },
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ },
+ toString() {
+ return format(this.toJSON());
+ }
+};
+var RightProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(CommonProto2), {
+ _tag: "Right",
+ _op: "Right",
+ [symbol2](that) {
+ return isEither(that) && isRight(that) && equals(this.right, that.right);
+ },
+ [symbol]() {
+ return combine(hash(this._tag))(hash(this.right));
+ },
+ toJSON() {
+ return {
+ _id: "Either",
+ _tag: this._tag,
+ right: toJSON(this.right)
+ };
+ }
+});
+var LeftProto = /* @__PURE__ */ Object.assign(/* @__PURE__ */ Object.create(CommonProto2), {
+ _tag: "Left",
+ _op: "Left",
+ [symbol2](that) {
+ return isEither(that) && isLeft(that) && equals(this.left, that.left);
+ },
+ [symbol]() {
+ return combine(hash(this._tag))(hash(this.left));
+ },
+ toJSON() {
+ return {
+ _id: "Either",
+ _tag: this._tag,
+ left: toJSON(this.left)
+ };
+ }
+});
+var isEither = (input) => hasProperty(input, TypeId2);
+var isLeft = (ma) => ma._tag === "Left";
+var isRight = (ma) => ma._tag === "Right";
+var left = (left3) => {
+ const a = Object.create(LeftProto);
+ a.left = left3;
+ return a;
+};
+var right = (right3) => {
+ const a = Object.create(RightProto);
+ a.right = right3;
+ return a;
+};
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Either.js
+var right2 = right;
+var left2 = left;
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Option.js
+var none2 = () => none;
+var some2 = some;
+var isNone2 = isNone;
+var isSome2 = isSome;
+var getOrElse = /* @__PURE__ */ dual(2, (self2, onNone) => isNone2(self2) ? onNone() : self2.value);
+var getOrUndefined = /* @__PURE__ */ getOrElse(constUndefined);
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Array.js
+var fromIterable = (collection) => Array.isArray(collection) ? collection : Array.from(collection);
+var isArray = Array.isArray;
+var reverse = (self2) => Array.from(self2).reverse();
+var reduce = /* @__PURE__ */ dual(3, (self2, b, f) => fromIterable(self2).reduce((b2, a, i) => f(b2, a, i), b));
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/context.js
+var TagTypeId = /* @__PURE__ */ Symbol.for("effect/Context/Tag");
+var ReferenceTypeId = /* @__PURE__ */ Symbol.for("effect/Context/Reference");
+var STMSymbolKey = "effect/STM";
+var STMTypeId = /* @__PURE__ */ Symbol.for(STMSymbolKey);
+var TagProto = {
+ ...EffectPrototype,
+ _op: "Tag",
+ [STMTypeId]: effectVariance,
+ [TagTypeId]: {
+ _Service: (_) => _,
+ _Identifier: (_) => _
+ },
+ toString() {
+ return format(this.toJSON());
+ },
+ toJSON() {
+ return {
+ _id: "Tag",
+ key: this.key,
+ stack: this.stack
+ };
+ },
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ },
+ of(self2) {
+ return self2;
+ },
+ context(self2) {
+ return make2(this, self2);
+ }
+};
+var ReferenceProto = {
+ ...TagProto,
+ [ReferenceTypeId]: ReferenceTypeId
+};
+var Tag = (id) => () => {
+ const limit = Error.stackTraceLimit;
+ Error.stackTraceLimit = 2;
+ const creationError = new Error();
+ Error.stackTraceLimit = limit;
+ function TagClass() {
+ }
+ Object.setPrototypeOf(TagClass, TagProto);
+ TagClass.key = id;
+ Object.defineProperty(TagClass, "stack", {
+ get() {
+ return creationError.stack;
+ }
+ });
+ return TagClass;
+};
+var Reference = () => (id, options) => {
+ const limit = Error.stackTraceLimit;
+ Error.stackTraceLimit = 2;
+ const creationError = new Error();
+ Error.stackTraceLimit = limit;
+ function ReferenceClass() {
+ }
+ Object.setPrototypeOf(ReferenceClass, ReferenceProto);
+ ReferenceClass.key = id;
+ ReferenceClass.defaultValue = options.defaultValue;
+ Object.defineProperty(ReferenceClass, "stack", {
+ get() {
+ return creationError.stack;
+ }
+ });
+ return ReferenceClass;
+};
+var TypeId3 = /* @__PURE__ */ Symbol.for("effect/Context");
+var ContextProto = {
+ [TypeId3]: {
+ _Services: (_) => _
+ },
+ [symbol2](that) {
+ if (isContext(that)) {
+ if (this.unsafeMap.size === that.unsafeMap.size) {
+ for (const k of this.unsafeMap.keys()) {
+ if (!that.unsafeMap.has(k) || !equals(this.unsafeMap.get(k), that.unsafeMap.get(k))) {
+ return false;
+ }
+ }
+ return true;
+ }
+ }
+ return false;
+ },
+ [symbol]() {
+ return cached(this, number(this.unsafeMap.size));
+ },
+ pipe() {
+ return pipeArguments(this, arguments);
+ },
+ toString() {
+ return format(this.toJSON());
+ },
+ toJSON() {
+ return {
+ _id: "Context",
+ services: Array.from(this.unsafeMap).map(toJSON)
+ };
+ },
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ }
+};
+var makeContext = (unsafeMap) => {
+ const context = Object.create(ContextProto);
+ context.unsafeMap = unsafeMap;
+ return context;
+};
+var serviceNotFoundError = (tag) => {
+ const error = new Error(`Service not found${tag.key ? `: ${String(tag.key)}` : ""}`);
+ if (tag.stack) {
+ const lines = tag.stack.split("\n");
+ if (lines.length > 2) {
+ const afterAt = lines[2].match(/at (.*)/);
+ if (afterAt) {
+ error.message = error.message + ` (defined at ${afterAt[1]})`;
+ }
+ }
+ }
+ if (error.stack) {
+ const lines = error.stack.split("\n");
+ lines.splice(1, 3);
+ error.stack = lines.join("\n");
+ }
+ return error;
+};
+var isContext = (u) => hasProperty(u, TypeId3);
+var make2 = (tag, service2) => makeContext(/* @__PURE__ */ new Map([[tag.key, service2]]));
+var add = /* @__PURE__ */ dual(3, (self2, tag, service2) => {
+ const map7 = new Map(self2.unsafeMap);
+ map7.set(tag.key, service2);
+ return makeContext(map7);
+});
+var defaultValueCache = /* @__PURE__ */ globalValue("effect/Context/defaultValueCache", () => /* @__PURE__ */ new Map());
+var getDefaultValue = (tag) => {
+ if (defaultValueCache.has(tag.key)) {
+ return defaultValueCache.get(tag.key);
+ }
+ const value = tag.defaultValue();
+ defaultValueCache.set(tag.key, value);
+ return value;
+};
+var unsafeGetReference = (self2, tag) => {
+ return self2.unsafeMap.has(tag.key) ? self2.unsafeMap.get(tag.key) : getDefaultValue(tag);
+};
+var unsafeGet = /* @__PURE__ */ dual(2, (self2, tag) => {
+ if (!self2.unsafeMap.has(tag.key)) {
+ if (ReferenceTypeId in tag) return getDefaultValue(tag);
+ throw serviceNotFoundError(tag);
+ }
+ return self2.unsafeMap.get(tag.key);
+});
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Context.js
+var add2 = add;
+var unsafeGet2 = unsafeGet;
+var Tag2 = Tag;
+var Reference2 = Reference;
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Effectable.js
+var EffectPrototype2 = EffectPrototype;
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Micro.js
+var TypeId4 = /* @__PURE__ */ Symbol.for("effect/Micro");
+var MicroExitTypeId = /* @__PURE__ */ Symbol.for("effect/Micro/MicroExit");
+var isMicro = (u) => typeof u === "object" && u !== null && TypeId4 in u;
+var MicroCauseTypeId = /* @__PURE__ */ Symbol.for("effect/Micro/MicroCause");
+var microCauseVariance = {
+ _E: identity
+};
+var MicroCauseImpl = class extends globalThis.Error {
+ _tag;
+ traces;
+ [MicroCauseTypeId];
+ constructor(_tag, originalError, traces) {
+ const causeName = `MicroCause.${_tag}`;
+ let name;
+ let message;
+ let stack;
+ if (originalError instanceof globalThis.Error) {
+ name = `(${causeName}) ${originalError.name}`;
+ message = originalError.message;
+ const messageLines = message.split("\n").length;
+ stack = originalError.stack ? `(${causeName}) ${originalError.stack.split("\n").slice(0, messageLines + 3).join("\n")}` : `${name}: ${message}`;
+ } else {
+ name = causeName;
+ message = toStringUnknown(originalError, 0);
+ stack = `${name}: ${message}`;
+ }
+ if (traces.length > 0) {
+ stack += `
+ ${traces.join("\n ")}`;
+ }
+ super(message);
+ this._tag = _tag;
+ this.traces = traces;
+ this[MicroCauseTypeId] = microCauseVariance;
+ this.name = name;
+ this.stack = stack;
+ }
+ pipe() {
+ return pipeArguments(this, arguments);
+ }
+ toString() {
+ return this.stack;
+ }
+ [NodeInspectSymbol]() {
+ return this.stack;
+ }
+};
+var Fail = class extends MicroCauseImpl {
+ error;
+ constructor(error, traces = []) {
+ super("Fail", error, traces);
+ this.error = error;
+ }
+};
+var causeFail = (error, traces = []) => new Fail(error, traces);
+var Die = class extends MicroCauseImpl {
+ defect;
+ constructor(defect, traces = []) {
+ super("Die", defect, traces);
+ this.defect = defect;
+ }
+};
+var causeDie = (defect, traces = []) => new Die(defect, traces);
+var Interrupt = class extends MicroCauseImpl {
+ constructor(traces = []) {
+ super("Interrupt", "interrupted", traces);
+ }
+};
+var causeInterrupt = (traces = []) => new Interrupt(traces);
+var causeIsFail = (self2) => self2._tag === "Fail";
+var causeIsInterrupt = (self2) => self2._tag === "Interrupt";
+var MicroFiberTypeId = /* @__PURE__ */ Symbol.for("effect/Micro/MicroFiber");
+var fiberVariance = {
+ _A: identity,
+ _E: identity
+};
+var MicroFiberImpl = class {
+ context;
+ interruptible;
+ [MicroFiberTypeId];
+ _stack = [];
+ _observers = [];
+ _exit;
+ _children;
+ currentOpCount = 0;
+ constructor(context, interruptible2 = true) {
+ this.context = context;
+ this.interruptible = interruptible2;
+ this[MicroFiberTypeId] = fiberVariance;
+ }
+ getRef(ref) {
+ return unsafeGetReference(this.context, ref);
+ }
+ addObserver(cb) {
+ if (this._exit) {
+ cb(this._exit);
+ return constVoid;
+ }
+ this._observers.push(cb);
+ return () => {
+ const index = this._observers.indexOf(cb);
+ if (index >= 0) {
+ this._observers.splice(index, 1);
+ }
+ };
+ }
+ _interrupted = false;
+ unsafeInterrupt() {
+ if (this._exit) {
+ return;
+ }
+ this._interrupted = true;
+ if (this.interruptible) {
+ this.evaluate(exitInterrupt);
+ }
+ }
+ unsafePoll() {
+ return this._exit;
+ }
+ evaluate(effect) {
+ if (this._exit) {
+ return;
+ } else if (this._yielded !== void 0) {
+ const yielded = this._yielded;
+ this._yielded = void 0;
+ yielded();
+ }
+ const exit2 = this.runLoop(effect);
+ if (exit2 === Yield) {
+ return;
+ }
+ const interruptChildren = fiberMiddleware.interruptChildren && fiberMiddleware.interruptChildren(this);
+ if (interruptChildren !== void 0) {
+ return this.evaluate(flatMap(interruptChildren, () => exit2));
+ }
+ this._exit = exit2;
+ for (let i = 0; i < this._observers.length; i++) {
+ this._observers[i](exit2);
+ }
+ this._observers.length = 0;
+ }
+ runLoop(effect) {
+ let yielding = false;
+ let current = effect;
+ this.currentOpCount = 0;
+ try {
+ while (true) {
+ this.currentOpCount++;
+ if (!yielding && this.getRef(CurrentScheduler).shouldYield(this)) {
+ yielding = true;
+ const prev = current;
+ current = flatMap(yieldNow, () => prev);
+ }
+ current = current[evaluate](this);
+ if (current === Yield) {
+ const yielded = this._yielded;
+ if (MicroExitTypeId in yielded) {
+ this._yielded = void 0;
+ return yielded;
+ }
+ return Yield;
+ }
+ }
+ } catch (error) {
+ if (!hasProperty(current, evaluate)) {
+ return exitDie(`MicroFiber.runLoop: Not a valid effect: ${String(current)}`);
+ }
+ return exitDie(error);
+ }
+ }
+ getCont(symbol3) {
+ while (true) {
+ const op = this._stack.pop();
+ if (!op) return void 0;
+ const cont = op[ensureCont] && op[ensureCont](this);
+ if (cont) return {
+ [symbol3]: cont
+ };
+ if (op[symbol3]) return op;
+ }
+ }
+ // cancel the yielded operation, or for the yielded exit value
+ _yielded = void 0;
+ yieldWith(value) {
+ this._yielded = value;
+ return Yield;
+ }
+ children() {
+ return this._children ??= /* @__PURE__ */ new Set();
+ }
+};
+var fiberMiddleware = /* @__PURE__ */ globalValue("effect/Micro/fiberMiddleware", () => ({
+ interruptChildren: void 0
+}));
+var fiberInterruptAll = (fibers) => suspend(() => {
+ for (const fiber of fibers) fiber.unsafeInterrupt();
+ const iter = fibers[Symbol.iterator]();
+ const wait = suspend(() => {
+ let result = iter.next();
+ while (!result.done) {
+ if (result.value.unsafePoll()) {
+ result = iter.next();
+ continue;
+ }
+ const fiber = result.value;
+ return async((resume) => {
+ fiber.addObserver((_) => {
+ resume(wait);
+ });
+ });
+ }
+ return exitVoid;
+ });
+ return wait;
+});
+var identifier = /* @__PURE__ */ Symbol.for("effect/Micro/identifier");
+var args = /* @__PURE__ */ Symbol.for("effect/Micro/args");
+var evaluate = /* @__PURE__ */ Symbol.for("effect/Micro/evaluate");
+var successCont = /* @__PURE__ */ Symbol.for("effect/Micro/successCont");
+var failureCont = /* @__PURE__ */ Symbol.for("effect/Micro/failureCont");
+var ensureCont = /* @__PURE__ */ Symbol.for("effect/Micro/ensureCont");
+var Yield = /* @__PURE__ */ Symbol.for("effect/Micro/Yield");
+var microVariance = {
+ _A: identity,
+ _E: identity,
+ _R: identity
+};
+var MicroProto = {
+ ...EffectPrototype2,
+ _op: "Micro",
+ [TypeId4]: microVariance,
+ pipe() {
+ return pipeArguments(this, arguments);
+ },
+ [Symbol.iterator]() {
+ return new SingleShotGen(new YieldWrap(this));
+ },
+ toJSON() {
+ return {
+ _id: "Micro",
+ op: this[identifier],
+ ...args in this ? {
+ args: this[args]
+ } : void 0
+ };
+ },
+ toString() {
+ return format(this);
+ },
+ [NodeInspectSymbol]() {
+ return format(this);
+ }
+};
+function defaultEvaluate(_fiber) {
+ return exitDie(`Micro.evaluate: Not implemented`);
+}
+var makePrimitiveProto = (options) => ({
+ ...MicroProto,
+ [identifier]: options.op,
+ [evaluate]: options.eval ?? defaultEvaluate,
+ [successCont]: options.contA,
+ [failureCont]: options.contE,
+ [ensureCont]: options.ensure
+});
+var makePrimitive = (options) => {
+ const Proto = makePrimitiveProto(options);
+ return function() {
+ const self2 = Object.create(Proto);
+ self2[args] = options.single === false ? arguments : arguments[0];
+ return self2;
+ };
+};
+var makeExit = (options) => {
+ const Proto = {
+ ...makePrimitiveProto(options),
+ [MicroExitTypeId]: MicroExitTypeId,
+ _tag: options.op,
+ get [options.prop]() {
+ return this[args];
+ },
+ toJSON() {
+ return {
+ _id: "MicroExit",
+ _tag: options.op,
+ [options.prop]: this[args]
+ };
+ },
+ [symbol2](that) {
+ return isMicroExit(that) && that._tag === options.op && equals(this[args], that[args]);
+ },
+ [symbol]() {
+ return cached(this, combine(string(options.op))(hash(this[args])));
+ }
+ };
+ return function(value) {
+ const self2 = Object.create(Proto);
+ self2[args] = value;
+ self2[successCont] = void 0;
+ self2[failureCont] = void 0;
+ self2[ensureCont] = void 0;
+ return self2;
+ };
+};
+var succeed = /* @__PURE__ */ makeExit({
+ op: "Success",
+ prop: "value",
+ eval(fiber) {
+ const cont = fiber.getCont(successCont);
+ return cont ? cont[successCont](this[args], fiber) : fiber.yieldWith(this);
+ }
+});
+var failCause = /* @__PURE__ */ makeExit({
+ op: "Failure",
+ prop: "cause",
+ eval(fiber) {
+ let cont = fiber.getCont(failureCont);
+ while (causeIsInterrupt(this[args]) && cont && fiber.interruptible) {
+ cont = fiber.getCont(failureCont);
+ }
+ return cont ? cont[failureCont](this[args], fiber) : fiber.yieldWith(this);
+ }
+});
+var fail = (error) => failCause(causeFail(error));
+var sync = /* @__PURE__ */ makePrimitive({
+ op: "Sync",
+ eval(fiber) {
+ const value = this[args]();
+ const cont = fiber.getCont(successCont);
+ return cont ? cont[successCont](value, fiber) : fiber.yieldWith(exitSucceed(value));
+ }
+});
+var suspend = /* @__PURE__ */ makePrimitive({
+ op: "Suspend",
+ eval(_fiber) {
+ return this[args]();
+ }
+});
+var yieldNowWith = /* @__PURE__ */ makePrimitive({
+ op: "Yield",
+ eval(fiber) {
+ let resumed = false;
+ fiber.getRef(CurrentScheduler).scheduleTask(() => {
+ if (resumed) return;
+ fiber.evaluate(exitVoid);
+ }, this[args] ?? 0);
+ return fiber.yieldWith(() => {
+ resumed = true;
+ });
+ }
+});
+var yieldNow = /* @__PURE__ */ yieldNowWith(0);
+var void_ = /* @__PURE__ */ succeed(void 0);
+var tryPromise = (options) => asyncOptions(function(resume, signal) {
+ try {
+ options.try(signal).then((a) => resume(succeed(a)), (e) => resume(fail(options.catch(e))));
+ } catch (err) {
+ resume(fail(options.catch(err)));
+ }
+}, options.try.length !== 0);
+var withMicroFiber = /* @__PURE__ */ makePrimitive({
+ op: "WithMicroFiber",
+ eval(fiber) {
+ return this[args](fiber);
+ }
+});
+var asyncOptions = /* @__PURE__ */ makePrimitive({
+ op: "Async",
+ single: false,
+ eval(fiber) {
+ const register = this[args][0];
+ let resumed = false;
+ let yielded = false;
+ const controller = this[args][1] ? new AbortController() : void 0;
+ const onCancel = register((effect) => {
+ if (resumed) return;
+ resumed = true;
+ if (yielded) {
+ fiber.evaluate(effect);
+ } else {
+ yielded = effect;
+ }
+ }, controller?.signal);
+ if (yielded !== false) return yielded;
+ yielded = true;
+ fiber._yielded = () => {
+ resumed = true;
+ };
+ if (controller === void 0 && onCancel === void 0) {
+ return Yield;
+ }
+ fiber._stack.push(asyncFinalizer(() => {
+ resumed = true;
+ controller?.abort();
+ return onCancel ?? exitVoid;
+ }));
+ return Yield;
+ }
+});
+var asyncFinalizer = /* @__PURE__ */ makePrimitive({
+ op: "AsyncFinalizer",
+ ensure(fiber) {
+ if (fiber.interruptible) {
+ fiber.interruptible = false;
+ fiber._stack.push(setInterruptible(true));
+ }
+ },
+ contE(cause, _fiber) {
+ return causeIsInterrupt(cause) ? flatMap(this[args](), () => failCause(cause)) : failCause(cause);
+ }
+});
+var async = (register) => asyncOptions(register, register.length >= 2);
+var gen = (...args2) => suspend(() => fromIterator(args2.length === 1 ? args2[0]() : args2[1].call(args2[0])));
+var fromIterator = /* @__PURE__ */ makePrimitive({
+ op: "Iterator",
+ contA(value, fiber) {
+ const state = this[args].next(value);
+ if (state.done) return succeed(state.value);
+ fiber._stack.push(this);
+ return yieldWrapGet(state.value);
+ },
+ eval(fiber) {
+ return this[successCont](void 0, fiber);
+ }
+});
+var as = /* @__PURE__ */ dual(2, (self2, value) => map2(self2, (_) => value));
+var andThen = /* @__PURE__ */ dual(2, (self2, f) => flatMap(self2, (a) => {
+ const value = isMicro(f) ? f : typeof f === "function" ? f(a) : f;
+ return isMicro(value) ? value : succeed(value);
+}));
+var exit = (self2) => matchCause(self2, {
+ onFailure: exitFailCause,
+ onSuccess: exitSucceed
+});
+var flatMap = /* @__PURE__ */ dual(2, (self2, f) => {
+ const onSuccess = Object.create(OnSuccessProto);
+ onSuccess[args] = self2;
+ onSuccess[successCont] = f;
+ return onSuccess;
+});
+var OnSuccessProto = /* @__PURE__ */ makePrimitiveProto({
+ op: "OnSuccess",
+ eval(fiber) {
+ fiber._stack.push(this);
+ return this[args];
+ }
+});
+var map2 = /* @__PURE__ */ dual(2, (self2, f) => flatMap(self2, (a) => succeed(f(a))));
+var isMicroExit = (u) => hasProperty(u, MicroExitTypeId);
+var exitSucceed = succeed;
+var exitFailCause = failCause;
+var exitInterrupt = /* @__PURE__ */ exitFailCause(/* @__PURE__ */ causeInterrupt());
+var exitDie = (defect) => exitFailCause(causeDie(defect));
+var exitVoid = /* @__PURE__ */ exitSucceed(void 0);
+var exitVoidAll = (exits) => {
+ for (const exit2 of exits) {
+ if (exit2._tag === "Failure") {
+ return exit2;
+ }
+ }
+ return exitVoid;
+};
+var setImmediate = "setImmediate" in globalThis ? globalThis.setImmediate : (f) => setTimeout(f, 0);
+var MicroSchedulerDefault = class {
+ tasks = [];
+ running = false;
+ /**
+ * @since 3.5.9
+ */
+ scheduleTask(task, _priority) {
+ this.tasks.push(task);
+ if (!this.running) {
+ this.running = true;
+ setImmediate(this.afterScheduled);
+ }
+ }
+ /**
+ * @since 3.5.9
+ */
+ afterScheduled = () => {
+ this.running = false;
+ this.runTasks();
+ };
+ /**
+ * @since 3.5.9
+ */
+ runTasks() {
+ const tasks = this.tasks;
+ this.tasks = [];
+ for (let i = 0, len = tasks.length; i < len; i++) {
+ tasks[i]();
+ }
+ }
+ /**
+ * @since 3.5.9
+ */
+ shouldYield(fiber) {
+ return fiber.currentOpCount >= fiber.getRef(MaxOpsBeforeYield);
+ }
+ /**
+ * @since 3.5.9
+ */
+ flush() {
+ while (this.tasks.length > 0) {
+ this.runTasks();
+ }
+ }
+};
+var service = (tag) => withMicroFiber((fiber) => succeed(unsafeGet2(fiber.context, tag)));
+var updateContext = /* @__PURE__ */ dual(2, (self2, f) => withMicroFiber((fiber) => {
+ const prev = fiber.context;
+ fiber.context = f(prev);
+ return onExit(self2, () => {
+ fiber.context = prev;
+ return void_;
+ });
+}));
+var provideService = /* @__PURE__ */ dual(3, (self2, tag, service2) => updateContext(self2, add2(tag, service2)));
+var provideServiceEffect = /* @__PURE__ */ dual(3, (self2, tag, acquire) => flatMap(acquire, (service2) => provideService(self2, tag, service2)));
+var MaxOpsBeforeYield = class extends (/* @__PURE__ */ Reference2()("effect/Micro/currentMaxOpsBeforeYield", {
+ defaultValue: () => 2048
+})) {
+};
+var CurrentConcurrency = class extends (/* @__PURE__ */ Reference2()("effect/Micro/currentConcurrency", {
+ defaultValue: () => "unbounded"
+})) {
+};
+var CurrentScheduler = class extends (/* @__PURE__ */ Reference2()("effect/Micro/currentScheduler", {
+ defaultValue: () => new MicroSchedulerDefault()
+})) {
+};
+var repeatExit = /* @__PURE__ */ dual(2, (self2, options) => suspend(() => {
+ const startedAt = options.schedule ? Date.now() : 0;
+ let attempt = 0;
+ const loop = flatMap(exit(self2), (exit2) => {
+ if (options.while !== void 0 && !options.while(exit2)) {
+ return exit2;
+ } else if (options.times !== void 0 && attempt >= options.times) {
+ return exit2;
+ }
+ attempt++;
+ let delayEffect = yieldNow;
+ if (options.schedule !== void 0) {
+ const elapsed = Date.now() - startedAt;
+ const duration = options.schedule(attempt, elapsed);
+ if (isNone2(duration)) {
+ return exit2;
+ }
+ delayEffect = sleep(duration.value);
+ }
+ return flatMap(delayEffect, () => loop);
+ });
+ return loop;
+}));
+var repeat = /* @__PURE__ */ dual((args2) => isMicro(args2[0]), (self2, options) => repeatExit(self2, {
+ ...options,
+ while: (exit2) => exit2._tag === "Success" && (options?.while === void 0 || options.while(exit2.value))
+}));
+var catchAllCause = /* @__PURE__ */ dual(2, (self2, f) => {
+ const onFailure = Object.create(OnFailureProto);
+ onFailure[args] = self2;
+ onFailure[failureCont] = f;
+ return onFailure;
+});
+var OnFailureProto = /* @__PURE__ */ makePrimitiveProto({
+ op: "OnFailure",
+ eval(fiber) {
+ fiber._stack.push(this);
+ return this[args];
+ }
+});
+var catchCauseIf = /* @__PURE__ */ dual(3, (self2, predicate, f) => catchAllCause(self2, (cause) => predicate(cause) ? f(cause) : failCause(cause)));
+var tapErrorCauseIf = /* @__PURE__ */ dual(3, (self2, refinement, f) => catchCauseIf(self2, refinement, (cause) => andThen(f(cause), failCause(cause))));
+var tapError = /* @__PURE__ */ dual(2, (self2, f) => tapErrorCauseIf(self2, causeIsFail, (fail4) => f(fail4.error)));
+var matchCauseEffect = /* @__PURE__ */ dual(2, (self2, options) => {
+ const primitive = Object.create(OnSuccessAndFailureProto);
+ primitive[args] = self2;
+ primitive[successCont] = options.onSuccess;
+ primitive[failureCont] = options.onFailure;
+ return primitive;
+});
+var OnSuccessAndFailureProto = /* @__PURE__ */ makePrimitiveProto({
+ op: "OnSuccessAndFailure",
+ eval(fiber) {
+ fiber._stack.push(this);
+ return this[args];
+ }
+});
+var matchCause = /* @__PURE__ */ dual(2, (self2, options) => matchCauseEffect(self2, {
+ onFailure: (cause) => sync(() => options.onFailure(cause)),
+ onSuccess: (value) => sync(() => options.onSuccess(value))
+}));
+var sleep = (millis) => async((resume) => {
+ const timeout = setTimeout(() => {
+ resume(void_);
+ }, millis);
+ return sync(() => {
+ clearTimeout(timeout);
+ });
+});
+var delay = /* @__PURE__ */ dual(2, (self2, millis) => andThen(sleep(millis), self2));
+var MicroScopeTypeId = /* @__PURE__ */ Symbol.for("effect/Micro/MicroScope");
+var MicroScopeImpl = class _MicroScopeImpl {
+ [MicroScopeTypeId];
+ state = {
+ _tag: "Open",
+ finalizers: /* @__PURE__ */ new Set()
+ };
+ constructor() {
+ this[MicroScopeTypeId] = MicroScopeTypeId;
+ }
+ unsafeAddFinalizer(finalizer) {
+ if (this.state._tag === "Open") {
+ this.state.finalizers.add(finalizer);
+ }
+ }
+ addFinalizer(finalizer) {
+ return suspend(() => {
+ if (this.state._tag === "Open") {
+ this.state.finalizers.add(finalizer);
+ return void_;
+ }
+ return finalizer(this.state.exit);
+ });
+ }
+ unsafeRemoveFinalizer(finalizer) {
+ if (this.state._tag === "Open") {
+ this.state.finalizers.delete(finalizer);
+ }
+ }
+ close(microExit) {
+ return suspend(() => {
+ if (this.state._tag === "Open") {
+ const finalizers = Array.from(this.state.finalizers).reverse();
+ this.state = {
+ _tag: "Closed",
+ exit: microExit
+ };
+ return flatMap(forEach(finalizers, (finalizer) => exit(finalizer(microExit))), exitVoidAll);
+ }
+ return void_;
+ });
+ }
+ get fork() {
+ return sync(() => {
+ const newScope = new _MicroScopeImpl();
+ if (this.state._tag === "Closed") {
+ newScope.state = this.state;
+ return newScope;
+ }
+ function fin(exit2) {
+ return newScope.close(exit2);
+ }
+ this.state.finalizers.add(fin);
+ newScope.unsafeAddFinalizer((_) => sync(() => this.unsafeRemoveFinalizer(fin)));
+ return newScope;
+ });
+ }
+};
+var onExit = /* @__PURE__ */ dual(2, (self2, f) => uninterruptibleMask((restore) => matchCauseEffect(restore(self2), {
+ onFailure: (cause) => flatMap(f(exitFailCause(cause)), () => failCause(cause)),
+ onSuccess: (a) => flatMap(f(exitSucceed(a)), () => succeed(a))
+})));
+var setInterruptible = /* @__PURE__ */ makePrimitive({
+ op: "SetInterruptible",
+ ensure(fiber) {
+ fiber.interruptible = this[args];
+ if (fiber._interrupted && fiber.interruptible) {
+ return () => exitInterrupt;
+ }
+ }
+});
+var interruptible = (self2) => withMicroFiber((fiber) => {
+ if (fiber.interruptible) return self2;
+ fiber.interruptible = true;
+ fiber._stack.push(setInterruptible(false));
+ if (fiber._interrupted) return exitInterrupt;
+ return self2;
+});
+var uninterruptibleMask = (f) => withMicroFiber((fiber) => {
+ if (!fiber.interruptible) return f(identity);
+ fiber.interruptible = false;
+ fiber._stack.push(setInterruptible(true));
+ return f(interruptible);
+});
+var whileLoop = /* @__PURE__ */ makePrimitive({
+ op: "While",
+ contA(value, fiber) {
+ this[args].step(value);
+ if (this[args].while()) {
+ fiber._stack.push(this);
+ return this[args].body();
+ }
+ return exitVoid;
+ },
+ eval(fiber) {
+ if (this[args].while()) {
+ fiber._stack.push(this);
+ return this[args].body();
+ }
+ return exitVoid;
+ }
+});
+var forEach = (iterable, f, options) => withMicroFiber((parent) => {
+ const concurrencyOption = options?.concurrency === "inherit" ? parent.getRef(CurrentConcurrency) : options?.concurrency ?? 1;
+ const concurrency = concurrencyOption === "unbounded" ? Number.POSITIVE_INFINITY : Math.max(1, concurrencyOption);
+ const items = fromIterable(iterable);
+ let length = items.length;
+ if (length === 0) {
+ return options?.discard ? void_ : succeed([]);
+ }
+ const out = options?.discard ? void 0 : new Array(length);
+ let index = 0;
+ if (concurrency === 1) {
+ return as(whileLoop({
+ while: () => index < items.length,
+ body: () => f(items[index], index),
+ step: out ? (b) => out[index++] = b : (_) => index++
+ }), out);
+ }
+ return async((resume) => {
+ const fibers = /* @__PURE__ */ new Set();
+ let result = void 0;
+ let inProgress = 0;
+ let doneCount = 0;
+ let pumping = false;
+ let interrupted = false;
+ function pump() {
+ pumping = true;
+ while (inProgress < concurrency && index < length) {
+ const currentIndex = index;
+ const item = items[currentIndex];
+ index++;
+ inProgress++;
+ try {
+ const child = unsafeFork(parent, f(item, currentIndex), true, true);
+ fibers.add(child);
+ child.addObserver((exit2) => {
+ fibers.delete(child);
+ if (interrupted) {
+ return;
+ } else if (exit2._tag === "Failure") {
+ if (result === void 0) {
+ result = exit2;
+ length = index;
+ fibers.forEach((fiber) => fiber.unsafeInterrupt());
+ }
+ } else if (out !== void 0) {
+ out[currentIndex] = exit2.value;
+ }
+ doneCount++;
+ inProgress--;
+ if (doneCount === length) {
+ resume(result ?? succeed(out));
+ } else if (!pumping && inProgress < concurrency) {
+ pump();
+ }
+ });
+ } catch (err) {
+ result = exitDie(err);
+ length = index;
+ fibers.forEach((fiber) => fiber.unsafeInterrupt());
+ }
+ }
+ pumping = false;
+ }
+ pump();
+ return suspend(() => {
+ interrupted = true;
+ index = length;
+ return fiberInterruptAll(fibers);
+ });
+ });
+});
+var unsafeFork = (parent, effect, immediate = false, daemon = false) => {
+ const child = new MicroFiberImpl(parent.context, parent.interruptible);
+ if (!daemon) {
+ parent.children().add(child);
+ child.addObserver(() => parent.children().delete(child));
+ }
+ if (immediate) {
+ child.evaluate(effect);
+ } else {
+ parent.getRef(CurrentScheduler).scheduleTask(() => child.evaluate(effect), 0);
+ }
+ return child;
+};
+var forkDaemon = (self2) => withMicroFiber((fiber) => succeed(unsafeFork(fiber, self2, false, true)));
+var runFork = (effect, options) => {
+ const fiber = new MicroFiberImpl(CurrentScheduler.context(options?.scheduler ?? new MicroSchedulerDefault()));
+ fiber.evaluate(effect);
+ if (options?.signal) {
+ if (options.signal.aborted) {
+ fiber.unsafeInterrupt();
+ } else {
+ const abort = () => fiber.unsafeInterrupt();
+ options.signal.addEventListener("abort", abort, {
+ once: true
+ });
+ fiber.addObserver(() => options.signal.removeEventListener("abort", abort));
+ }
+ }
+ return fiber;
+};
+var runPromiseExit = (effect, options) => new Promise((resolve, _reject) => {
+ const handle = runFork(effect, options);
+ handle.addObserver(resolve);
+});
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/String.js
+var snakeToCamel = (self2) => {
+ let str = self2[0];
+ for (let i = 1; i < self2.length; i++) {
+ str += self2[i] === "_" ? self2[++i].toUpperCase() : self2[i];
+ }
+ return str;
+};
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Chunk.js
+var TypeId5 = /* @__PURE__ */ Symbol.for("effect/Chunk");
+function copy(src, srcPos, dest, destPos, len) {
+ for (let i = srcPos; i < Math.min(src.length, srcPos + len); i++) {
+ dest[destPos + i - srcPos] = src[i];
+ }
+ return dest;
+}
+var emptyArray = [];
+var getEquivalence = (isEquivalent) => make((self2, that) => self2.length === that.length && toReadonlyArray(self2).every((value, i) => isEquivalent(value, unsafeGet3(that, i))));
+var _equivalence = /* @__PURE__ */ getEquivalence(equals);
+var ChunkProto = {
+ [TypeId5]: {
+ _A: (_) => _
+ },
+ toString() {
+ return format(this.toJSON());
+ },
+ toJSON() {
+ return {
+ _id: "Chunk",
+ values: toReadonlyArray(this).map(toJSON)
+ };
+ },
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ },
+ [symbol2](that) {
+ return isChunk(that) && _equivalence(this, that);
+ },
+ [symbol]() {
+ return cached(this, array(toReadonlyArray(this)));
+ },
+ [Symbol.iterator]() {
+ switch (this.backing._tag) {
+ case "IArray": {
+ return this.backing.array[Symbol.iterator]();
+ }
+ case "IEmpty": {
+ return emptyArray[Symbol.iterator]();
+ }
+ default: {
+ return toReadonlyArray(this)[Symbol.iterator]();
+ }
+ }
+ },
+ pipe() {
+ return pipeArguments(this, arguments);
+ }
+};
+var makeChunk = (backing) => {
+ const chunk = Object.create(ChunkProto);
+ chunk.backing = backing;
+ switch (backing._tag) {
+ case "IEmpty": {
+ chunk.length = 0;
+ chunk.depth = 0;
+ chunk.left = chunk;
+ chunk.right = chunk;
+ break;
+ }
+ case "IConcat": {
+ chunk.length = backing.left.length + backing.right.length;
+ chunk.depth = 1 + Math.max(backing.left.depth, backing.right.depth);
+ chunk.left = backing.left;
+ chunk.right = backing.right;
+ break;
+ }
+ case "IArray": {
+ chunk.length = backing.array.length;
+ chunk.depth = 0;
+ chunk.left = _empty;
+ chunk.right = _empty;
+ break;
+ }
+ case "ISingleton": {
+ chunk.length = 1;
+ chunk.depth = 0;
+ chunk.left = _empty;
+ chunk.right = _empty;
+ break;
+ }
+ case "ISlice": {
+ chunk.length = backing.length;
+ chunk.depth = backing.chunk.depth + 1;
+ chunk.left = _empty;
+ chunk.right = _empty;
+ break;
+ }
+ }
+ return chunk;
+};
+var isChunk = (u) => hasProperty(u, TypeId5);
+var _empty = /* @__PURE__ */ makeChunk({
+ _tag: "IEmpty"
+});
+var empty2 = () => _empty;
+var make3 = (...as2) => as2.length === 1 ? of(as2[0]) : unsafeFromNonEmptyArray(as2);
+var of = (a) => makeChunk({
+ _tag: "ISingleton",
+ a
+});
+var fromIterable2 = (self2) => isChunk(self2) ? self2 : makeChunk({
+ _tag: "IArray",
+ array: fromIterable(self2)
+});
+var copyToArray = (self2, array2, initial) => {
+ switch (self2.backing._tag) {
+ case "IArray": {
+ copy(self2.backing.array, 0, array2, initial, self2.length);
+ break;
+ }
+ case "IConcat": {
+ copyToArray(self2.left, array2, initial);
+ copyToArray(self2.right, array2, initial + self2.left.length);
+ break;
+ }
+ case "ISingleton": {
+ array2[initial] = self2.backing.a;
+ break;
+ }
+ case "ISlice": {
+ let i = 0;
+ let j = initial;
+ while (i < self2.length) {
+ array2[j] = unsafeGet3(self2, i);
+ i += 1;
+ j += 1;
+ }
+ break;
+ }
+ }
+};
+var toReadonlyArray_ = (self2) => {
+ switch (self2.backing._tag) {
+ case "IEmpty": {
+ return emptyArray;
+ }
+ case "IArray": {
+ return self2.backing.array;
+ }
+ default: {
+ const arr = new Array(self2.length);
+ copyToArray(self2, arr, 0);
+ self2.backing = {
+ _tag: "IArray",
+ array: arr
+ };
+ self2.left = _empty;
+ self2.right = _empty;
+ self2.depth = 0;
+ return arr;
+ }
+ }
+};
+var toReadonlyArray = toReadonlyArray_;
+var reverseChunk = (self2) => {
+ switch (self2.backing._tag) {
+ case "IEmpty":
+ case "ISingleton":
+ return self2;
+ case "IArray": {
+ return makeChunk({
+ _tag: "IArray",
+ array: reverse(self2.backing.array)
+ });
+ }
+ case "IConcat": {
+ return makeChunk({
+ _tag: "IConcat",
+ left: reverse2(self2.backing.right),
+ right: reverse2(self2.backing.left)
+ });
+ }
+ case "ISlice":
+ return unsafeFromArray(reverse(toReadonlyArray(self2)));
+ }
+};
+var reverse2 = reverseChunk;
+var unsafeFromArray = (self2) => makeChunk({
+ _tag: "IArray",
+ array: self2
+});
+var unsafeFromNonEmptyArray = (self2) => unsafeFromArray(self2);
+var unsafeGet3 = /* @__PURE__ */ dual(2, (self2, index) => {
+ switch (self2.backing._tag) {
+ case "IEmpty": {
+ throw new Error(`Index out of bounds`);
+ }
+ case "ISingleton": {
+ if (index !== 0) {
+ throw new Error(`Index out of bounds`);
+ }
+ return self2.backing.a;
+ }
+ case "IArray": {
+ if (index >= self2.length || index < 0) {
+ throw new Error(`Index out of bounds`);
+ }
+ return self2.backing.array[index];
+ }
+ case "IConcat": {
+ return index < self2.left.length ? unsafeGet3(self2.left, index) : unsafeGet3(self2.right, index - self2.left.length);
+ }
+ case "ISlice": {
+ return unsafeGet3(self2.backing.chunk, index + self2.backing.offset);
+ }
+ }
+});
+var prepend = /* @__PURE__ */ dual(2, (self2, elem) => appendAll(of(elem), self2));
+var appendAll = /* @__PURE__ */ dual(2, (self2, that) => {
+ if (self2.backing._tag === "IEmpty") {
+ return that;
+ }
+ if (that.backing._tag === "IEmpty") {
+ return self2;
+ }
+ const diff = that.depth - self2.depth;
+ if (Math.abs(diff) <= 1) {
+ return makeChunk({
+ _tag: "IConcat",
+ left: self2,
+ right: that
+ });
+ } else if (diff < -1) {
+ if (self2.left.depth >= self2.right.depth) {
+ const nr = appendAll(self2.right, that);
+ return makeChunk({
+ _tag: "IConcat",
+ left: self2.left,
+ right: nr
+ });
+ } else {
+ const nrr = appendAll(self2.right.right, that);
+ if (nrr.depth === self2.depth - 3) {
+ const nr = makeChunk({
+ _tag: "IConcat",
+ left: self2.right.left,
+ right: nrr
+ });
+ return makeChunk({
+ _tag: "IConcat",
+ left: self2.left,
+ right: nr
+ });
+ } else {
+ const nl = makeChunk({
+ _tag: "IConcat",
+ left: self2.left,
+ right: self2.right.left
+ });
+ return makeChunk({
+ _tag: "IConcat",
+ left: nl,
+ right: nrr
+ });
+ }
+ }
+ } else {
+ if (that.right.depth >= that.left.depth) {
+ const nl = appendAll(self2, that.left);
+ return makeChunk({
+ _tag: "IConcat",
+ left: nl,
+ right: that.right
+ });
+ } else {
+ const nll = appendAll(self2, that.left.left);
+ if (nll.depth === that.depth - 3) {
+ const nl = makeChunk({
+ _tag: "IConcat",
+ left: nll,
+ right: that.left.right
+ });
+ return makeChunk({
+ _tag: "IConcat",
+ left: nl,
+ right: that.right
+ });
+ } else {
+ const nr = makeChunk({
+ _tag: "IConcat",
+ left: that.left.right,
+ right: that.right
+ });
+ return makeChunk({
+ _tag: "IConcat",
+ left: nll,
+ right: nr
+ });
+ }
+ }
+ }
+});
+var isEmpty = (self2) => self2.length === 0;
+var isNonEmpty = (self2) => self2.length > 0;
+var unsafeHead = (self2) => unsafeGet3(self2, 0);
+var headNonEmpty = unsafeHead;
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/hashMap/config.js
+var SIZE = 5;
+var BUCKET_SIZE = /* @__PURE__ */ Math.pow(2, SIZE);
+var MASK = BUCKET_SIZE - 1;
+var MAX_INDEX_NODE = BUCKET_SIZE / 2;
+var MIN_ARRAY_NODE = BUCKET_SIZE / 4;
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/hashMap/bitwise.js
+function popcount(x) {
+ x -= x >> 1 & 1431655765;
+ x = (x & 858993459) + (x >> 2 & 858993459);
+ x = x + (x >> 4) & 252645135;
+ x += x >> 8;
+ x += x >> 16;
+ return x & 127;
+}
+function hashFragment(shift, h) {
+ return h >>> shift & MASK;
+}
+function toBitmap(x) {
+ return 1 << x;
+}
+function fromBitmap(bitmap, bit) {
+ return popcount(bitmap & bit - 1);
+}
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/stack.js
+var make4 = (value, previous) => ({
+ value,
+ previous
+});
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/hashMap/array.js
+function arrayUpdate(mutate2, at, v, arr) {
+ let out = arr;
+ if (!mutate2) {
+ const len = arr.length;
+ out = new Array(len);
+ for (let i = 0; i < len; ++i) out[i] = arr[i];
+ }
+ out[at] = v;
+ return out;
+}
+function arraySpliceOut(mutate2, at, arr) {
+ const newLen = arr.length - 1;
+ let i = 0;
+ let g = 0;
+ let out = arr;
+ if (mutate2) {
+ i = g = at;
+ } else {
+ out = new Array(newLen);
+ while (i < at) out[g++] = arr[i++];
+ }
+ ;
+ ++i;
+ while (i <= newLen) out[g++] = arr[i++];
+ if (mutate2) {
+ out.length = newLen;
+ }
+ return out;
+}
+function arraySpliceIn(mutate2, at, v, arr) {
+ const len = arr.length;
+ if (mutate2) {
+ let i2 = len;
+ while (i2 >= at) arr[i2--] = arr[i2];
+ arr[at] = v;
+ return arr;
+ }
+ let i = 0, g = 0;
+ const out = new Array(len + 1);
+ while (i < at) out[g++] = arr[i++];
+ out[at] = v;
+ while (i < len) out[++g] = arr[i++];
+ return out;
+}
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/hashMap/node.js
+var EmptyNode = class _EmptyNode {
+ _tag = "EmptyNode";
+ modify(edit, _shift, f, hash2, key, size4) {
+ const v = f(none2());
+ if (isNone2(v)) return new _EmptyNode();
+ ++size4.value;
+ return new LeafNode(edit, hash2, key, v);
+ }
+};
+function isEmptyNode(a) {
+ return isTagged(a, "EmptyNode");
+}
+function isLeafNode(node) {
+ return isEmptyNode(node) || node._tag === "LeafNode" || node._tag === "CollisionNode";
+}
+function canEditNode(node, edit) {
+ return isEmptyNode(node) ? false : edit === node.edit;
+}
+var LeafNode = class _LeafNode {
+ edit;
+ hash;
+ key;
+ value;
+ _tag = "LeafNode";
+ constructor(edit, hash2, key, value) {
+ this.edit = edit;
+ this.hash = hash2;
+ this.key = key;
+ this.value = value;
+ }
+ modify(edit, shift, f, hash2, key, size4) {
+ if (equals(key, this.key)) {
+ const v2 = f(this.value);
+ if (v2 === this.value) return this;
+ else if (isNone2(v2)) {
+ ;
+ --size4.value;
+ return new EmptyNode();
+ }
+ if (canEditNode(this, edit)) {
+ this.value = v2;
+ return this;
+ }
+ return new _LeafNode(edit, hash2, key, v2);
+ }
+ const v = f(none2());
+ if (isNone2(v)) return this;
+ ++size4.value;
+ return mergeLeaves(edit, shift, this.hash, this, hash2, new _LeafNode(edit, hash2, key, v));
+ }
+};
+var CollisionNode = class _CollisionNode {
+ edit;
+ hash;
+ children;
+ _tag = "CollisionNode";
+ constructor(edit, hash2, children) {
+ this.edit = edit;
+ this.hash = hash2;
+ this.children = children;
+ }
+ modify(edit, shift, f, hash2, key, size4) {
+ if (hash2 === this.hash) {
+ const canEdit = canEditNode(this, edit);
+ const list = this.updateCollisionList(canEdit, edit, this.hash, this.children, f, key, size4);
+ if (list === this.children) return this;
+ return list.length > 1 ? new _CollisionNode(edit, this.hash, list) : list[0];
+ }
+ const v = f(none2());
+ if (isNone2(v)) return this;
+ ++size4.value;
+ return mergeLeaves(edit, shift, this.hash, this, hash2, new LeafNode(edit, hash2, key, v));
+ }
+ updateCollisionList(mutate2, edit, hash2, list, f, key, size4) {
+ const len = list.length;
+ for (let i = 0; i < len; ++i) {
+ const child = list[i];
+ if ("key" in child && equals(key, child.key)) {
+ const value = child.value;
+ const newValue2 = f(value);
+ if (newValue2 === value) return list;
+ if (isNone2(newValue2)) {
+ ;
+ --size4.value;
+ return arraySpliceOut(mutate2, i, list);
+ }
+ return arrayUpdate(mutate2, i, new LeafNode(edit, hash2, key, newValue2), list);
+ }
+ }
+ const newValue = f(none2());
+ if (isNone2(newValue)) return list;
+ ++size4.value;
+ return arrayUpdate(mutate2, len, new LeafNode(edit, hash2, key, newValue), list);
+ }
+};
+var IndexedNode = class _IndexedNode {
+ edit;
+ mask;
+ children;
+ _tag = "IndexedNode";
+ constructor(edit, mask, children) {
+ this.edit = edit;
+ this.mask = mask;
+ this.children = children;
+ }
+ modify(edit, shift, f, hash2, key, size4) {
+ const mask = this.mask;
+ const children = this.children;
+ const frag = hashFragment(shift, hash2);
+ const bit = toBitmap(frag);
+ const indx = fromBitmap(mask, bit);
+ const exists = mask & bit;
+ const canEdit = canEditNode(this, edit);
+ if (!exists) {
+ const _newChild = new EmptyNode().modify(edit, shift + SIZE, f, hash2, key, size4);
+ if (!_newChild) return this;
+ return children.length >= MAX_INDEX_NODE ? expand(edit, frag, _newChild, mask, children) : new _IndexedNode(edit, mask | bit, arraySpliceIn(canEdit, indx, _newChild, children));
+ }
+ const current = children[indx];
+ const child = current.modify(edit, shift + SIZE, f, hash2, key, size4);
+ if (current === child) return this;
+ let bitmap = mask;
+ let newChildren;
+ if (isEmptyNode(child)) {
+ bitmap &= ~bit;
+ if (!bitmap) return new EmptyNode();
+ if (children.length <= 2 && isLeafNode(children[indx ^ 1])) {
+ return children[indx ^ 1];
+ }
+ newChildren = arraySpliceOut(canEdit, indx, children);
+ } else {
+ newChildren = arrayUpdate(canEdit, indx, child, children);
+ }
+ if (canEdit) {
+ this.mask = bitmap;
+ this.children = newChildren;
+ return this;
+ }
+ return new _IndexedNode(edit, bitmap, newChildren);
+ }
+};
+var ArrayNode = class _ArrayNode {
+ edit;
+ size;
+ children;
+ _tag = "ArrayNode";
+ constructor(edit, size4, children) {
+ this.edit = edit;
+ this.size = size4;
+ this.children = children;
+ }
+ modify(edit, shift, f, hash2, key, size4) {
+ let count = this.size;
+ const children = this.children;
+ const frag = hashFragment(shift, hash2);
+ const child = children[frag];
+ const newChild = (child || new EmptyNode()).modify(edit, shift + SIZE, f, hash2, key, size4);
+ if (child === newChild) return this;
+ const canEdit = canEditNode(this, edit);
+ let newChildren;
+ if (isEmptyNode(child) && !isEmptyNode(newChild)) {
+ ;
+ ++count;
+ newChildren = arrayUpdate(canEdit, frag, newChild, children);
+ } else if (!isEmptyNode(child) && isEmptyNode(newChild)) {
+ ;
+ --count;
+ if (count <= MIN_ARRAY_NODE) {
+ return pack(edit, count, frag, children);
+ }
+ newChildren = arrayUpdate(canEdit, frag, new EmptyNode(), children);
+ } else {
+ newChildren = arrayUpdate(canEdit, frag, newChild, children);
+ }
+ if (canEdit) {
+ this.size = count;
+ this.children = newChildren;
+ return this;
+ }
+ return new _ArrayNode(edit, count, newChildren);
+ }
+};
+function pack(edit, count, removed, elements) {
+ const children = new Array(count - 1);
+ let g = 0;
+ let bitmap = 0;
+ for (let i = 0, len = elements.length; i < len; ++i) {
+ if (i !== removed) {
+ const elem = elements[i];
+ if (elem && !isEmptyNode(elem)) {
+ children[g++] = elem;
+ bitmap |= 1 << i;
+ }
+ }
+ }
+ return new IndexedNode(edit, bitmap, children);
+}
+function expand(edit, frag, child, bitmap, subNodes) {
+ const arr = [];
+ let bit = bitmap;
+ let count = 0;
+ for (let i = 0; bit; ++i) {
+ if (bit & 1) arr[i] = subNodes[count++];
+ bit >>>= 1;
+ }
+ arr[frag] = child;
+ return new ArrayNode(edit, count + 1, arr);
+}
+function mergeLeavesInner(edit, shift, h1, n1, h2, n2) {
+ if (h1 === h2) return new CollisionNode(edit, h1, [n2, n1]);
+ const subH1 = hashFragment(shift, h1);
+ const subH2 = hashFragment(shift, h2);
+ if (subH1 === subH2) {
+ return (child) => new IndexedNode(edit, toBitmap(subH1) | toBitmap(subH2), [child]);
+ } else {
+ const children = subH1 < subH2 ? [n1, n2] : [n2, n1];
+ return new IndexedNode(edit, toBitmap(subH1) | toBitmap(subH2), children);
+ }
+}
+function mergeLeaves(edit, shift, h1, n1, h2, n2) {
+ let stack = void 0;
+ let currentShift = shift;
+ while (true) {
+ const res = mergeLeavesInner(edit, currentShift, h1, n1, h2, n2);
+ if (typeof res === "function") {
+ stack = make4(res, stack);
+ currentShift = currentShift + SIZE;
+ } else {
+ let final = res;
+ while (stack != null) {
+ final = stack.value(final);
+ stack = stack.previous;
+ }
+ return final;
+ }
+ }
+}
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/hashMap.js
+var HashMapSymbolKey = "effect/HashMap";
+var HashMapTypeId = /* @__PURE__ */ Symbol.for(HashMapSymbolKey);
+var HashMapProto = {
+ [HashMapTypeId]: HashMapTypeId,
+ [Symbol.iterator]() {
+ return new HashMapIterator(this, (k, v) => [k, v]);
+ },
+ [symbol]() {
+ let hash2 = hash(HashMapSymbolKey);
+ for (const item of this) {
+ hash2 ^= pipe(hash(item[0]), combine(hash(item[1])));
+ }
+ return cached(this, hash2);
+ },
+ [symbol2](that) {
+ if (isHashMap(that)) {
+ if (that._size !== this._size) {
+ return false;
+ }
+ for (const item of this) {
+ const elem = pipe(that, getHash(item[0], hash(item[0])));
+ if (isNone2(elem)) {
+ return false;
+ } else {
+ if (!equals(item[1], elem.value)) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+ return false;
+ },
+ toString() {
+ return format(this.toJSON());
+ },
+ toJSON() {
+ return {
+ _id: "HashMap",
+ values: Array.from(this).map(toJSON)
+ };
+ },
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ },
+ pipe() {
+ return pipeArguments(this, arguments);
+ }
+};
+var makeImpl = (editable, edit, root, size4) => {
+ const map7 = Object.create(HashMapProto);
+ map7._editable = editable;
+ map7._edit = edit;
+ map7._root = root;
+ map7._size = size4;
+ return map7;
+};
+var HashMapIterator = class _HashMapIterator {
+ map;
+ f;
+ v;
+ constructor(map7, f) {
+ this.map = map7;
+ this.f = f;
+ this.v = visitLazy(this.map._root, this.f, void 0);
+ }
+ next() {
+ if (isNone2(this.v)) {
+ return {
+ done: true,
+ value: void 0
+ };
+ }
+ const v0 = this.v.value;
+ this.v = applyCont(v0.cont);
+ return {
+ done: false,
+ value: v0.value
+ };
+ }
+ [Symbol.iterator]() {
+ return new _HashMapIterator(this.map, this.f);
+ }
+};
+var applyCont = (cont) => cont ? visitLazyChildren(cont[0], cont[1], cont[2], cont[3], cont[4]) : none2();
+var visitLazy = (node, f, cont = void 0) => {
+ switch (node._tag) {
+ case "LeafNode": {
+ if (isSome2(node.value)) {
+ return some2({
+ value: f(node.key, node.value.value),
+ cont
+ });
+ }
+ return applyCont(cont);
+ }
+ case "CollisionNode":
+ case "ArrayNode":
+ case "IndexedNode": {
+ const children = node.children;
+ return visitLazyChildren(children.length, children, 0, f, cont);
+ }
+ default: {
+ return applyCont(cont);
+ }
+ }
+};
+var visitLazyChildren = (len, children, i, f, cont) => {
+ while (i < len) {
+ const child = children[i++];
+ if (child && !isEmptyNode(child)) {
+ return visitLazy(child, f, [len, children, i, f, cont]);
+ }
+ }
+ return applyCont(cont);
+};
+var _empty2 = /* @__PURE__ */ makeImpl(false, 0, /* @__PURE__ */ new EmptyNode(), 0);
+var empty3 = () => _empty2;
+var isHashMap = (u) => hasProperty(u, HashMapTypeId);
+var getHash = /* @__PURE__ */ dual(3, (self2, key, hash2) => {
+ let node = self2._root;
+ let shift = 0;
+ while (true) {
+ switch (node._tag) {
+ case "LeafNode": {
+ return equals(key, node.key) ? node.value : none2();
+ }
+ case "CollisionNode": {
+ if (hash2 === node.hash) {
+ const children = node.children;
+ for (let i = 0, len = children.length; i < len; ++i) {
+ const child = children[i];
+ if ("key" in child && equals(key, child.key)) {
+ return child.value;
+ }
+ }
+ }
+ return none2();
+ }
+ case "IndexedNode": {
+ const frag = hashFragment(shift, hash2);
+ const bit = toBitmap(frag);
+ if (node.mask & bit) {
+ node = node.children[fromBitmap(node.mask, bit)];
+ shift += SIZE;
+ break;
+ }
+ return none2();
+ }
+ case "ArrayNode": {
+ node = node.children[hashFragment(shift, hash2)];
+ if (node) {
+ shift += SIZE;
+ break;
+ }
+ return none2();
+ }
+ default:
+ return none2();
+ }
+ }
+});
+var set = /* @__PURE__ */ dual(3, (self2, key, value) => modifyAt(self2, key, () => some2(value)));
+var setTree = /* @__PURE__ */ dual(3, (self2, newRoot, newSize) => {
+ if (self2._editable) {
+ ;
+ self2._root = newRoot;
+ self2._size = newSize;
+ return self2;
+ }
+ return newRoot === self2._root ? self2 : makeImpl(self2._editable, self2._edit, newRoot, newSize);
+});
+var keys = (self2) => new HashMapIterator(self2, (key) => key);
+var size = (self2) => self2._size;
+var beginMutation = (self2) => makeImpl(true, self2._edit + 1, self2._root, self2._size);
+var modifyAt = /* @__PURE__ */ dual(3, (self2, key, f) => modifyHash(self2, key, hash(key), f));
+var modifyHash = /* @__PURE__ */ dual(4, (self2, key, hash2, f) => {
+ const size4 = {
+ value: self2._size
+ };
+ const newRoot = self2._root.modify(self2._editable ? self2._edit : NaN, 0, f, hash2, key, size4);
+ return pipe(self2, setTree(newRoot, size4.value));
+});
+var forEach2 = /* @__PURE__ */ dual(2, (self2, f) => reduce2(self2, void 0, (_, value, key) => f(value, key)));
+var reduce2 = /* @__PURE__ */ dual(3, (self2, zero, f) => {
+ const root = self2._root;
+ if (root._tag === "LeafNode") {
+ return isSome2(root.value) ? f(zero, root.value.value, root.key) : zero;
+ }
+ if (root._tag === "EmptyNode") {
+ return zero;
+ }
+ const toVisit = [root.children];
+ let children;
+ while (children = toVisit.pop()) {
+ for (let i = 0, len = children.length; i < len; ) {
+ const child = children[i++];
+ if (child && !isEmptyNode(child)) {
+ if (child._tag === "LeafNode") {
+ if (isSome2(child.value)) {
+ zero = f(zero, child.value.value, child.key);
+ }
+ } else {
+ toVisit.push(child.children);
+ }
+ }
+ }
+ }
+ return zero;
+});
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/hashSet.js
+var HashSetSymbolKey = "effect/HashSet";
+var HashSetTypeId = /* @__PURE__ */ Symbol.for(HashSetSymbolKey);
+var HashSetProto = {
+ [HashSetTypeId]: HashSetTypeId,
+ [Symbol.iterator]() {
+ return keys(this._keyMap);
+ },
+ [symbol]() {
+ return cached(this, combine(hash(this._keyMap))(hash(HashSetSymbolKey)));
+ },
+ [symbol2](that) {
+ if (isHashSet(that)) {
+ return size(this._keyMap) === size(that._keyMap) && equals(this._keyMap, that._keyMap);
+ }
+ return false;
+ },
+ toString() {
+ return format(this.toJSON());
+ },
+ toJSON() {
+ return {
+ _id: "HashSet",
+ values: Array.from(this).map(toJSON)
+ };
+ },
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ },
+ pipe() {
+ return pipeArguments(this, arguments);
+ }
+};
+var makeImpl2 = (keyMap) => {
+ const set2 = Object.create(HashSetProto);
+ set2._keyMap = keyMap;
+ return set2;
+};
+var isHashSet = (u) => hasProperty(u, HashSetTypeId);
+var _empty3 = /* @__PURE__ */ makeImpl2(/* @__PURE__ */ empty3());
+var empty4 = () => _empty3;
+var size2 = (self2) => size(self2._keyMap);
+var beginMutation2 = (self2) => makeImpl2(beginMutation(self2._keyMap));
+var endMutation = (self2) => {
+ ;
+ self2._keyMap._editable = false;
+ return self2;
+};
+var mutate = /* @__PURE__ */ dual(2, (self2, f) => {
+ const transient = beginMutation2(self2);
+ f(transient);
+ return endMutation(transient);
+});
+var add3 = /* @__PURE__ */ dual(2, (self2, value) => self2._keyMap._editable ? (set(value, true)(self2._keyMap), self2) : makeImpl2(set(value, true)(self2._keyMap)));
+var union2 = /* @__PURE__ */ dual(2, (self2, that) => mutate(empty4(), (set2) => {
+ forEach3(self2, (value) => add3(set2, value));
+ for (const value of that) {
+ add3(set2, value);
+ }
+}));
+var forEach3 = /* @__PURE__ */ dual(2, (self2, f) => forEach2(self2._keyMap, (_, k) => f(k)));
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/HashSet.js
+var empty5 = empty4;
+var size3 = size2;
+var add4 = add3;
+var union3 = union2;
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/opCodes/cause.js
+var OP_DIE = "Die";
+var OP_EMPTY = "Empty";
+var OP_FAIL = "Fail";
+var OP_INTERRUPT = "Interrupt";
+var OP_PARALLEL = "Parallel";
+var OP_SEQUENTIAL = "Sequential";
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/cause.js
+var CauseSymbolKey = "effect/Cause";
+var CauseTypeId = /* @__PURE__ */ Symbol.for(CauseSymbolKey);
+var variance = {
+ /* c8 ignore next */
+ _E: (_) => _
+};
+var proto = {
+ [CauseTypeId]: variance,
+ [symbol]() {
+ return pipe(hash(CauseSymbolKey), combine(hash(flattenCause(this))), cached(this));
+ },
+ [symbol2](that) {
+ return isCause(that) && causeEquals(this, that);
+ },
+ pipe() {
+ return pipeArguments(this, arguments);
+ },
+ toJSON() {
+ switch (this._tag) {
+ case "Empty":
+ return {
+ _id: "Cause",
+ _tag: this._tag
+ };
+ case "Die":
+ return {
+ _id: "Cause",
+ _tag: this._tag,
+ defect: toJSON(this.defect)
+ };
+ case "Interrupt":
+ return {
+ _id: "Cause",
+ _tag: this._tag,
+ fiberId: this.fiberId.toJSON()
+ };
+ case "Fail":
+ return {
+ _id: "Cause",
+ _tag: this._tag,
+ failure: toJSON(this.error)
+ };
+ case "Sequential":
+ case "Parallel":
+ return {
+ _id: "Cause",
+ _tag: this._tag,
+ left: toJSON(this.left),
+ right: toJSON(this.right)
+ };
+ }
+ },
+ toString() {
+ return pretty(this);
+ },
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ }
+};
+var fail2 = (error) => {
+ const o = Object.create(proto);
+ o._tag = OP_FAIL;
+ o.error = error;
+ return o;
+};
+var parallel = (left3, right3) => {
+ const o = Object.create(proto);
+ o._tag = OP_PARALLEL;
+ o.left = left3;
+ o.right = right3;
+ return o;
+};
+var sequential = (left3, right3) => {
+ const o = Object.create(proto);
+ o._tag = OP_SEQUENTIAL;
+ o.left = left3;
+ o.right = right3;
+ return o;
+};
+var isCause = (u) => hasProperty(u, CauseTypeId);
+var isInterruptedOnly = (self2) => reduceWithContext(void 0, IsInterruptedOnlyCauseReducer)(self2);
+var causeEquals = (left3, right3) => {
+ let leftStack = of(left3);
+ let rightStack = of(right3);
+ while (isNonEmpty(leftStack) && isNonEmpty(rightStack)) {
+ const [leftParallel, leftSequential] = pipe(headNonEmpty(leftStack), reduce4([empty5(), empty2()], ([parallel2, sequential2], cause) => {
+ const [par, seq] = evaluateCause(cause);
+ return some2([pipe(parallel2, union3(par)), pipe(sequential2, appendAll(seq))]);
+ }));
+ const [rightParallel, rightSequential] = pipe(headNonEmpty(rightStack), reduce4([empty5(), empty2()], ([parallel2, sequential2], cause) => {
+ const [par, seq] = evaluateCause(cause);
+ return some2([pipe(parallel2, union3(par)), pipe(sequential2, appendAll(seq))]);
+ }));
+ if (!equals(leftParallel, rightParallel)) {
+ return false;
+ }
+ leftStack = leftSequential;
+ rightStack = rightSequential;
+ }
+ return true;
+};
+var flattenCause = (cause) => {
+ return flattenCauseLoop(of(cause), empty2());
+};
+var flattenCauseLoop = (causes, flattened) => {
+ while (1) {
+ const [parallel2, sequential2] = pipe(causes, reduce([empty5(), empty2()], ([parallel3, sequential3], cause) => {
+ const [par, seq] = evaluateCause(cause);
+ return [pipe(parallel3, union3(par)), pipe(sequential3, appendAll(seq))];
+ }));
+ const updated = size3(parallel2) > 0 ? pipe(flattened, prepend(parallel2)) : flattened;
+ if (isEmpty(sequential2)) {
+ return reverse2(updated);
+ }
+ causes = sequential2;
+ flattened = updated;
+ }
+ throw new Error(getBugErrorMessage("Cause.flattenCauseLoop"));
+};
+var evaluateCause = (self2) => {
+ let cause = self2;
+ const stack = [];
+ let _parallel = empty5();
+ let _sequential = empty2();
+ while (cause !== void 0) {
+ switch (cause._tag) {
+ case OP_EMPTY: {
+ if (stack.length === 0) {
+ return [_parallel, _sequential];
+ }
+ cause = stack.pop();
+ break;
+ }
+ case OP_FAIL: {
+ _parallel = add4(_parallel, make3(cause._tag, cause.error));
+ if (stack.length === 0) {
+ return [_parallel, _sequential];
+ }
+ cause = stack.pop();
+ break;
+ }
+ case OP_DIE: {
+ _parallel = add4(_parallel, make3(cause._tag, cause.defect));
+ if (stack.length === 0) {
+ return [_parallel, _sequential];
+ }
+ cause = stack.pop();
+ break;
+ }
+ case OP_INTERRUPT: {
+ _parallel = add4(_parallel, make3(cause._tag, cause.fiberId));
+ if (stack.length === 0) {
+ return [_parallel, _sequential];
+ }
+ cause = stack.pop();
+ break;
+ }
+ case OP_SEQUENTIAL: {
+ switch (cause.left._tag) {
+ case OP_EMPTY: {
+ cause = cause.right;
+ break;
+ }
+ case OP_SEQUENTIAL: {
+ cause = sequential(cause.left.left, sequential(cause.left.right, cause.right));
+ break;
+ }
+ case OP_PARALLEL: {
+ cause = parallel(sequential(cause.left.left, cause.right), sequential(cause.left.right, cause.right));
+ break;
+ }
+ default: {
+ _sequential = prepend(_sequential, cause.right);
+ cause = cause.left;
+ break;
+ }
+ }
+ break;
+ }
+ case OP_PARALLEL: {
+ stack.push(cause.right);
+ cause = cause.left;
+ break;
+ }
+ }
+ }
+ throw new Error(getBugErrorMessage("Cause.evaluateCauseLoop"));
+};
+var IsInterruptedOnlyCauseReducer = {
+ emptyCase: constTrue,
+ failCase: constFalse,
+ dieCase: constFalse,
+ interruptCase: constTrue,
+ sequentialCase: (_, left3, right3) => left3 && right3,
+ parallelCase: (_, left3, right3) => left3 && right3
+};
+var OP_SEQUENTIAL_CASE = "SequentialCase";
+var OP_PARALLEL_CASE = "ParallelCase";
+var reduce4 = /* @__PURE__ */ dual(3, (self2, zero, pf) => {
+ let accumulator = zero;
+ let cause = self2;
+ const causes = [];
+ while (cause !== void 0) {
+ const option = pf(accumulator, cause);
+ accumulator = isSome2(option) ? option.value : accumulator;
+ switch (cause._tag) {
+ case OP_SEQUENTIAL: {
+ causes.push(cause.right);
+ cause = cause.left;
+ break;
+ }
+ case OP_PARALLEL: {
+ causes.push(cause.right);
+ cause = cause.left;
+ break;
+ }
+ default: {
+ cause = void 0;
+ break;
+ }
+ }
+ if (cause === void 0 && causes.length > 0) {
+ cause = causes.pop();
+ }
+ }
+ return accumulator;
+});
+var reduceWithContext = /* @__PURE__ */ dual(3, (self2, context, reducer) => {
+ const input = [self2];
+ const output = [];
+ while (input.length > 0) {
+ const cause = input.pop();
+ switch (cause._tag) {
+ case OP_EMPTY: {
+ output.push(right2(reducer.emptyCase(context)));
+ break;
+ }
+ case OP_FAIL: {
+ output.push(right2(reducer.failCase(context, cause.error)));
+ break;
+ }
+ case OP_DIE: {
+ output.push(right2(reducer.dieCase(context, cause.defect)));
+ break;
+ }
+ case OP_INTERRUPT: {
+ output.push(right2(reducer.interruptCase(context, cause.fiberId)));
+ break;
+ }
+ case OP_SEQUENTIAL: {
+ input.push(cause.right);
+ input.push(cause.left);
+ output.push(left2({
+ _tag: OP_SEQUENTIAL_CASE
+ }));
+ break;
+ }
+ case OP_PARALLEL: {
+ input.push(cause.right);
+ input.push(cause.left);
+ output.push(left2({
+ _tag: OP_PARALLEL_CASE
+ }));
+ break;
+ }
+ }
+ }
+ const accumulator = [];
+ while (output.length > 0) {
+ const either = output.pop();
+ switch (either._tag) {
+ case "Left": {
+ switch (either.left._tag) {
+ case OP_SEQUENTIAL_CASE: {
+ const left3 = accumulator.pop();
+ const right3 = accumulator.pop();
+ const value = reducer.sequentialCase(context, left3, right3);
+ accumulator.push(value);
+ break;
+ }
+ case OP_PARALLEL_CASE: {
+ const left3 = accumulator.pop();
+ const right3 = accumulator.pop();
+ const value = reducer.parallelCase(context, left3, right3);
+ accumulator.push(value);
+ break;
+ }
+ }
+ break;
+ }
+ case "Right": {
+ accumulator.push(either.right);
+ break;
+ }
+ }
+ }
+ if (accumulator.length === 0) {
+ throw new Error("BUG: Cause.reduceWithContext - please report an issue at https://github.com/Effect-TS/effect/issues");
+ }
+ return accumulator.pop();
+});
+var pretty = (cause, options) => {
+ if (isInterruptedOnly(cause)) {
+ return "All fibers interrupted without errors.";
+ }
+ return prettyErrors(cause).map(function(e) {
+ if (options?.renderErrorCause !== true || e.cause === void 0) {
+ return e.stack;
+ }
+ return `${e.stack} {
+${renderErrorCause(e.cause, " ")}
+}`;
+ }).join("\n");
+};
+var renderErrorCause = (cause, prefix) => {
+ const lines = cause.stack.split("\n");
+ let stack = `${prefix}[cause]: ${lines[0]}`;
+ for (let i = 1, len = lines.length; i < len; i++) {
+ stack += `
+${prefix}${lines[i]}`;
+ }
+ if (cause.cause) {
+ stack += ` {
+${renderErrorCause(cause.cause, `${prefix} `)}
+${prefix}}`;
+ }
+ return stack;
+};
+var PrettyError = class _PrettyError extends globalThis.Error {
+ span = void 0;
+ constructor(originalError) {
+ const originalErrorIsObject = typeof originalError === "object" && originalError !== null;
+ const prevLimit = Error.stackTraceLimit;
+ Error.stackTraceLimit = 1;
+ super(prettyErrorMessage(originalError), originalErrorIsObject && "cause" in originalError && typeof originalError.cause !== "undefined" ? {
+ cause: new _PrettyError(originalError.cause)
+ } : void 0);
+ if (this.message === "") {
+ this.message = "An error has occurred";
+ }
+ Error.stackTraceLimit = prevLimit;
+ this.name = originalError instanceof Error ? originalError.name : "Error";
+ if (originalErrorIsObject) {
+ if (spanSymbol in originalError) {
+ this.span = originalError[spanSymbol];
+ }
+ Object.keys(originalError).forEach((key) => {
+ if (!(key in this)) {
+ this[key] = originalError[key];
+ }
+ });
+ }
+ this.stack = prettyErrorStack(`${this.name}: ${this.message}`, originalError instanceof Error && originalError.stack ? originalError.stack : "", this.span);
+ }
+};
+var prettyErrorMessage = (u) => {
+ if (typeof u === "string") {
+ return u;
+ }
+ if (typeof u === "object" && u !== null && u instanceof Error) {
+ return u.message;
+ }
+ try {
+ if (hasProperty(u, "toString") && isFunction2(u["toString"]) && u["toString"] !== Object.prototype.toString && u["toString"] !== globalThis.Array.prototype.toString) {
+ return u["toString"]();
+ }
+ } catch {
+ }
+ return stringifyCircular(u);
+};
+var locationRegex = /\((.*)\)/;
+var spanToTrace = /* @__PURE__ */ globalValue("effect/Tracer/spanToTrace", () => /* @__PURE__ */ new WeakMap());
+var prettyErrorStack = (message, stack, span) => {
+ const out = [message];
+ const lines = stack.startsWith(message) ? stack.slice(message.length).split("\n") : stack.split("\n");
+ for (let i = 1; i < lines.length; i++) {
+ if (lines[i].includes("Generator.next")) {
+ break;
+ }
+ if (lines[i].includes("effect_internal_function")) {
+ out.pop();
+ break;
+ }
+ out.push(lines[i].replace(/at .*effect_instruction_i.*\((.*)\)/, "at $1").replace(/EffectPrimitive\.\w+/, ""));
+ }
+ if (span) {
+ let current = span;
+ let i = 0;
+ while (current && current._tag === "Span" && i < 10) {
+ const stackFn = spanToTrace.get(current);
+ if (typeof stackFn === "function") {
+ const stack2 = stackFn();
+ if (typeof stack2 === "string") {
+ const locationMatch = stack2.match(locationRegex);
+ const location = locationMatch ? locationMatch[1] : stack2.replace(/^at /, "");
+ out.push(` at ${current.name} (${location})`);
+ } else {
+ out.push(` at ${current.name}`);
+ }
+ } else {
+ out.push(` at ${current.name}`);
+ }
+ current = getOrUndefined(current.parent);
+ i++;
+ }
+ }
+ return out.join("\n");
+};
+var spanSymbol = /* @__PURE__ */ Symbol.for("effect/SpanAnnotation");
+var prettyErrors = (cause) => reduceWithContext(cause, void 0, {
+ emptyCase: () => [],
+ dieCase: (_, unknownError) => {
+ return [new PrettyError(unknownError)];
+ },
+ failCase: (_, error) => {
+ return [new PrettyError(error)];
+ },
+ interruptCase: () => [],
+ parallelCase: (_, l, r) => [...l, ...r],
+ sequentialCase: (_, l, r) => [...l, ...r]
+});
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/singleShotGen.js
+var SingleShotGen2 = class _SingleShotGen {
+ self;
+ called = false;
+ constructor(self2) {
+ this.self = self2;
+ }
+ next(a) {
+ return this.called ? {
+ value: a,
+ done: true
+ } : (this.called = true, {
+ value: this.self,
+ done: false
+ });
+ }
+ return(a) {
+ return {
+ value: a,
+ done: true
+ };
+ }
+ throw(e) {
+ throw e;
+ }
+ [Symbol.iterator]() {
+ return new _SingleShotGen(this.self);
+ }
+};
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/internal/core.js
+var EffectTypeId2 = /* @__PURE__ */ Symbol.for("effect/Effect");
+var EffectPrimitive = class {
+ _op;
+ effect_instruction_i0 = void 0;
+ effect_instruction_i1 = void 0;
+ effect_instruction_i2 = void 0;
+ trace = void 0;
+ [EffectTypeId2] = effectVariance;
+ constructor(_op) {
+ this._op = _op;
+ }
+ [symbol2](that) {
+ return this === that;
+ }
+ [symbol]() {
+ return cached(this, random(this));
+ }
+ pipe() {
+ return pipeArguments(this, arguments);
+ }
+ toJSON() {
+ return {
+ _id: "Effect",
+ _op: this._op,
+ effect_instruction_i0: toJSON(this.effect_instruction_i0),
+ effect_instruction_i1: toJSON(this.effect_instruction_i1),
+ effect_instruction_i2: toJSON(this.effect_instruction_i2)
+ };
+ }
+ toString() {
+ return format(this.toJSON());
+ }
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ }
+ [Symbol.iterator]() {
+ return new SingleShotGen2(new YieldWrap(this));
+ }
+};
+var EffectPrimitiveFailure = class {
+ _op;
+ effect_instruction_i0 = void 0;
+ effect_instruction_i1 = void 0;
+ effect_instruction_i2 = void 0;
+ trace = void 0;
+ [EffectTypeId2] = effectVariance;
+ constructor(_op) {
+ this._op = _op;
+ this._tag = _op;
+ }
+ [symbol2](that) {
+ return exitIsExit(that) && that._op === "Failure" && // @ts-expect-error
+ equals(this.effect_instruction_i0, that.effect_instruction_i0);
+ }
+ [symbol]() {
+ return pipe(
+ // @ts-expect-error
+ string(this._tag),
+ // @ts-expect-error
+ combine(hash(this.effect_instruction_i0)),
+ cached(this)
+ );
+ }
+ get cause() {
+ return this.effect_instruction_i0;
+ }
+ pipe() {
+ return pipeArguments(this, arguments);
+ }
+ toJSON() {
+ return {
+ _id: "Exit",
+ _tag: this._op,
+ cause: this.cause.toJSON()
+ };
+ }
+ toString() {
+ return format(this.toJSON());
+ }
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ }
+ [Symbol.iterator]() {
+ return new SingleShotGen2(new YieldWrap(this));
+ }
+};
+var EffectPrimitiveSuccess = class {
+ _op;
+ effect_instruction_i0 = void 0;
+ effect_instruction_i1 = void 0;
+ effect_instruction_i2 = void 0;
+ trace = void 0;
+ [EffectTypeId2] = effectVariance;
+ constructor(_op) {
+ this._op = _op;
+ this._tag = _op;
+ }
+ [symbol2](that) {
+ return exitIsExit(that) && that._op === "Success" && // @ts-expect-error
+ equals(this.effect_instruction_i0, that.effect_instruction_i0);
+ }
+ [symbol]() {
+ return pipe(
+ // @ts-expect-error
+ string(this._tag),
+ // @ts-expect-error
+ combine(hash(this.effect_instruction_i0)),
+ cached(this)
+ );
+ }
+ get value() {
+ return this.effect_instruction_i0;
+ }
+ pipe() {
+ return pipeArguments(this, arguments);
+ }
+ toJSON() {
+ return {
+ _id: "Exit",
+ _tag: this._op,
+ value: toJSON(this.value)
+ };
+ }
+ toString() {
+ return format(this.toJSON());
+ }
+ [NodeInspectSymbol]() {
+ return this.toJSON();
+ }
+ [Symbol.iterator]() {
+ return new SingleShotGen2(new YieldWrap(this));
+ }
+};
+var isEffect = (u) => hasProperty(u, EffectTypeId2);
+var withFiberRuntime = (withRuntime) => {
+ const effect = new EffectPrimitive(OP_WITH_RUNTIME);
+ effect.effect_instruction_i0 = withRuntime;
+ return effect;
+};
+var spanSymbol2 = /* @__PURE__ */ Symbol.for("effect/SpanAnnotation");
+var originalSymbol = /* @__PURE__ */ Symbol.for("effect/OriginalAnnotation");
+var capture = (obj, span) => {
+ if (isSome2(span)) {
+ return new Proxy(obj, {
+ has(target, p) {
+ return p === spanSymbol2 || p === originalSymbol || p in target;
+ },
+ get(target, p) {
+ if (p === spanSymbol2) {
+ return span.value;
+ }
+ if (p === originalSymbol) {
+ return obj;
+ }
+ return target[p];
+ }
+ });
+ }
+ return obj;
+};
+var fail3 = (error) => isObject(error) && !(spanSymbol2 in error) ? withFiberRuntime((fiber) => failCause2(fail2(capture(error, currentSpanFromFiber(fiber))))) : failCause2(fail2(error));
+var failCause2 = (cause) => {
+ const effect = new EffectPrimitiveFailure(OP_FAILURE);
+ effect.effect_instruction_i0 = cause;
+ return effect;
+};
+var logLevelAll = {
+ _tag: "All",
+ syslog: 0,
+ label: "ALL",
+ ordinal: Number.MIN_SAFE_INTEGER,
+ pipe() {
+ return pipeArguments(this, arguments);
+ }
+};
+var logLevelNone = {
+ _tag: "None",
+ syslog: 7,
+ label: "OFF",
+ ordinal: Number.MAX_SAFE_INTEGER,
+ pipe() {
+ return pipeArguments(this, arguments);
+ }
+};
+var RequestResolverSymbolKey = "effect/RequestResolver";
+var RequestResolverTypeId = /* @__PURE__ */ Symbol.for(RequestResolverSymbolKey);
+var requestResolverVariance = {
+ /* c8 ignore next */
+ _A: (_) => _,
+ /* c8 ignore next */
+ _R: (_) => _
+};
+var RequestResolverImpl = class _RequestResolverImpl {
+ runAll;
+ target;
+ [RequestResolverTypeId] = requestResolverVariance;
+ constructor(runAll, target) {
+ this.runAll = runAll;
+ this.target = target;
+ }
+ [symbol]() {
+ return cached(this, this.target ? hash(this.target) : random(this));
+ }
+ [symbol2](that) {
+ return this.target ? isRequestResolver(that) && equals(this.target, that.target) : this === that;
+ }
+ identified(...ids) {
+ return new _RequestResolverImpl(this.runAll, fromIterable2(ids));
+ }
+ pipe() {
+ return pipeArguments(this, arguments);
+ }
+};
+var isRequestResolver = (u) => hasProperty(u, RequestResolverTypeId);
+var YieldableError = /* @__PURE__ */ function() {
+ class YieldableError2 extends globalThis.Error {
+ commit() {
+ return fail3(this);
+ }
+ toJSON() {
+ return {
+ ...this
+ };
+ }
+ [NodeInspectSymbol]() {
+ if (this.toString !== globalThis.Error.prototype.toString) {
+ return this.stack ? `${this.toString()}
+${this.stack.split("\n").slice(1).join("\n")}` : this.toString();
+ } else if ("Bun" in globalThis) {
+ return pretty(fail2(this), {
+ renderErrorCause: true
+ });
+ }
+ return this;
+ }
+ }
+ Object.assign(YieldableError2.prototype, StructuralCommitPrototype);
+ return YieldableError2;
+}();
+var makeException = (proto2, tag) => {
+ class Base2 extends YieldableError {
+ _tag = tag;
+ }
+ Object.assign(Base2.prototype, proto2);
+ Base2.prototype.name = tag;
+ return Base2;
+};
+var RuntimeExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/RuntimeException");
+var RuntimeException = /* @__PURE__ */ makeException({
+ [RuntimeExceptionTypeId]: RuntimeExceptionTypeId
+}, "RuntimeException");
+var InterruptedExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/InterruptedException");
+var InterruptedException = /* @__PURE__ */ makeException({
+ [InterruptedExceptionTypeId]: InterruptedExceptionTypeId
+}, "InterruptedException");
+var IllegalArgumentExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/IllegalArgument");
+var IllegalArgumentException = /* @__PURE__ */ makeException({
+ [IllegalArgumentExceptionTypeId]: IllegalArgumentExceptionTypeId
+}, "IllegalArgumentException");
+var NoSuchElementExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/NoSuchElement");
+var NoSuchElementException = /* @__PURE__ */ makeException({
+ [NoSuchElementExceptionTypeId]: NoSuchElementExceptionTypeId
+}, "NoSuchElementException");
+var InvalidPubSubCapacityExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/InvalidPubSubCapacityException");
+var InvalidPubSubCapacityException = /* @__PURE__ */ makeException({
+ [InvalidPubSubCapacityExceptionTypeId]: InvalidPubSubCapacityExceptionTypeId
+}, "InvalidPubSubCapacityException");
+var ExceededCapacityExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/ExceededCapacityException");
+var ExceededCapacityException = /* @__PURE__ */ makeException({
+ [ExceededCapacityExceptionTypeId]: ExceededCapacityExceptionTypeId
+}, "ExceededCapacityException");
+var TimeoutExceptionTypeId = /* @__PURE__ */ Symbol.for("effect/Cause/errors/Timeout");
+var TimeoutException = /* @__PURE__ */ makeException({
+ [TimeoutExceptionTypeId]: TimeoutExceptionTypeId
+}, "TimeoutException");
+var exitIsExit = (u) => isEffect(u) && "_tag" in u && (u._tag === "Success" || u._tag === "Failure");
+var currentSpanFromFiber = (fiber) => {
+ const span = fiber.currentSpan;
+ return span !== void 0 && span._tag === "Span" ? some2(span) : none2();
+};
+
+// node_modules/.pnpm/effect@3.11.9/node_modules/effect/dist/esm/Data.js
+var Error2 = /* @__PURE__ */ function() {
+ const plainArgsSymbol = /* @__PURE__ */ Symbol.for("effect/Data/Error/plainArgs");
+ return class Base extends YieldableError {
+ constructor(args2) {
+ super(args2?.message, args2?.cause ? {
+ cause: args2.cause
+ } : void 0);
+ if (args2) {
+ Object.assign(this, args2);
+ Object.defineProperty(this, plainArgsSymbol, {
+ value: args2,
+ enumerable: false
+ });
+ }
+ }
+ toJSON() {
+ return {
+ ...this[plainArgsSymbol],
+ ...this
+ };
+ }
+ };
+}();
+var TaggedError = (tag) => {
+ class Base2 extends Error2 {
+ _tag = tag;
+ }
+ ;
+ Base2.prototype.name = tag;
+ return Base2;
+};
+
+// node_modules/.pnpm/@effect-ak+tg-bot-client@file+..+tg-bot-client+effect-ak-tg-bot-client-0.2.2.tgz/node_modules/@effect-ak/tg-bot-client/dist/index.mjs
+var defaultBaseUrl = "https://api.telegram.org";
+var MESSAGE_EFFECTS = {
+ "\u{1F525}": "5104841245755180586",
+ "\u{1F44D}": "5107584321108051014",
+ "\u{1F44E}": "5104858069142078462",
+ "\u2764\uFE0F": "5159385139981059251",
+ "\u{1F389}": "5046509860389126442",
+ "\u{1F4A9}": "5046589136895476101"
+};
+var messageEffectIdCodes = Object.keys(MESSAGE_EFFECTS);
+var makeTgBotClientConfig = (input) => TgBotClientConfig.of({
+ ...input,
+ ["base-url"]: input["base-url"] ?? defaultBaseUrl
+});
+var TgBotClientConfig = class extends Tag2("TgBotClientConfig")() {
+};
+var TgBotClientError = class _TgBotClientError extends TaggedError("TgBotClientError") {
+ static missingSuccess = new _TgBotClientError({
+ reason: {
+ type: "ClientInternalError",
+ cause: "Expected 'success' to be defined"
+ }
+ });
+};
+var isFileContent = (input) => typeof input == "object" && input != null && ("file_content" in input && input.file_content instanceof Uint8Array) && ("file_name" in input && typeof input.file_name == "string");
+var isTgBotApiResponse = (input) => typeof input == "object" && input != null && ("ok" in input && typeof input.ok == "boolean");
+var isTgBotClientSettingsInput = (input) => typeof input == "object" && input != null && ("bot-token" in input && typeof input["bot-token"] == "string");
+var makePayload = (body) => {
+ const entries = Object.entries(body);
+ if (entries.length == 0) return void 0;
+ const result = new FormData();
+ for (const [key, value] of entries) {
+ if (!value) continue;
+ if (typeof value != "object") {
+ result.append(key, `${value}`);
+ } else if (isFileContent(value)) {
+ result.append(key, new Blob([value.file_content]), value.file_name);
+ } else {
+ result.append(key, JSON.stringify(value));
+ }
+ }
+ return result;
+};
+var execute = (config, method, input) => gen(function* () {
+ const httpResponse = yield* tryPromise({
+ try: () => fetch(
+ `${config["base-url"]}/bot${config["bot-token"]}/${snakeToCamel(method)}`,
+ {
+ body: makePayload(input) ?? null,
+ method: "POST"
+ }
+ ),
+ catch: (cause) => new TgBotClientError({
+ reason: { type: "ClientInternalError", cause }
+ })
+ });
+ const response = yield* tryPromise({
+ try: () => httpResponse.json(),
+ catch: () => new TgBotClientError({
+ reason: { type: "UnexpectedResponse", response: httpResponse }
+ })
+ });
+ if (!isTgBotApiResponse(response)) {
+ return yield* fail(new TgBotClientError({
+ reason: { type: "UnexpectedResponse", response }
+ }));
+ }
+ if (!httpResponse.ok) {
+ return yield* fail(new TgBotClientError({
+ reason: {
+ type: "NotOkResponse",
+ ...response.error_code ? { errorCode: response.error_code } : void 0,
+ ...response.description ? { details: response.description } : void 0
+ }
+ }));
+ }
+ return response.result;
+});
+var ClientExecuteRequestService = class extends Tag2("ClientExecuteRequestService")() {
+};
+var ClientExecuteRequestServiceDefault = gen(function* () {
+ const config = yield* service(TgBotClientConfig);
+ return {
+ execute: (method, input) => execute(config, method, input)
+ };
+});
+var getFile = (fileId, config, execute2) => gen(function* () {
+ const response = yield* execute2.execute("get_file", { file_id: fileId });
+ const file_path = response.file_path;
+ if (!file_path || file_path.length == 0) {
+ return yield* fail(
+ new TgBotClientError({
+ reason: {
+ type: "UnableToGetFile",
+ cause: "File path not defined"
+ }
+ })
+ );
+ }
+ const file_name = file_path.replaceAll("/", "-");
+ const url = `${config["base-url"]}/file/bot${config["bot-token"]}/${file_path}`;
+ const fileContent = yield* tryPromise({
+ try: () => fetch(url).then((_) => _.arrayBuffer()),
+ catch: (cause) => new TgBotClientError({
+ reason: { type: "UnableToGetFile", cause }
+ })
+ });
+ const file = new File([new Uint8Array(fileContent)], file_name);
+ return file;
+});
+var ClientFileService = class extends Tag2("ClientFileService")() {
+};
+var ClientFileServiceDefault = gen(function* () {
+ const config = yield* service(TgBotClientConfig);
+ const execute2 = yield* service(ClientExecuteRequestService);
+ return {
+ getFile: (input) => getFile(input.file_id, config, execute2)
+ };
+}).pipe(
+ provideServiceEffect(ClientExecuteRequestService, ClientExecuteRequestServiceDefault)
+);
+var makeClientConfigFrom = (input) => gen(function* () {
+ if (input.type == "config") {
+ return makeTgBotClientConfig(input);
+ }
+ const config = yield* tryPromise({
+ try: async () => {
+ const { readFile } = await import("fs/promises");
+ return JSON.parse(await readFile("config.json", "utf-8"));
+ },
+ catch: (error) => {
+ console.warn(error);
+ return "ReadingConfigError";
+ }
+ });
+ if (!isTgBotClientSettingsInput(config)) {
+ return yield* fail("InvalidConfig");
+ }
+ return makeTgBotClientConfig(config);
+});
+var makeSettingsFrom = (input) => {
+ let limit = input.batch_size ?? 10;
+ let timeout = input.timeout ?? 10;
+ let max_empty_responses = input.max_empty_responses;
+ if (limit < 10 || limit > 100) {
+ console.warn("Wrong limit, must be in [10..100], using 10 instead");
+ limit = 10;
+ }
+ if (timeout < 2 || timeout > 10) {
+ console.warn("Wrong timeout, must be in [2..10], using 2 instead");
+ limit = 10;
+ }
+ if (max_empty_responses && max_empty_responses < 2) {
+ console.warn("Wrong max_empty_responses, must be in [2..infinity], using infinity");
+ max_empty_responses = void 0;
+ }
+ return {
+ limit,
+ timeout,
+ max_empty_responses
+ };
+};
+var extractUpdate = (input) => {
+ for (const [field, value] of Object.entries(input)) {
+ if (field == "update_id") {
+ continue;
+ }
+ return {
+ type: field,
+ ...value
+ };
+ }
+ return void 0;
+};
+var fetchUpdates = ({ state, settings, execute: execute2, handlers }) => gen(function* () {
+ const updateId = state.lastUpdateId;
+ console.info("getting updates", state);
+ const updates = yield* execute2("get_updates", {
+ ...settings,
+ ...updateId ? { offset: updateId } : void 0
+ }).pipe(
+ andThen((_) => _.sort((_2) => _2.update_id))
+ );
+ let lastSuccessId = void 0;
+ let hasError = false;
+ for (const updateObject of updates) {
+ const update = extractUpdate(updateObject);
+ if (!update) {
+ console.warn("Unknown update", update);
+ hasError = true;
+ break;
+ }
+ const handler = handlers[`on_${update.type}`];
+ if (!handler) {
+ console.warn("Handler for update not defined", update);
+ hasError = true;
+ break;
+ }
+ const handleResult = handler(update);
+ if ("chat" in update) {
+ const response = yield* execute2(`send_${handleResult.type}`, {
+ ...handleResult,
+ chat_id: update.chat.id
+ });
+ console.log("bot response", response);
+ }
+ if (!handleResult) {
+ hasError = true;
+ console.log(handleResult);
+ break;
+ }
+ ;
+ lastSuccessId = updateObject.update_id;
+ }
+ if (hasError && lastSuccessId) {
+ const resp = (
+ //commit successfully handled messages
+ yield* execute2("get_updates", {
+ offset: lastSuccessId,
+ limit: 0
+ })
+ );
+ }
+ return { updates, lastSuccessId, hasError };
+});
+var pollAndHandle = (input) => {
+ const state = {
+ lastUpdateId: void 0,
+ emptyResponses: 0
+ };
+ const settings = makeSettingsFrom(input.settings);
+ return delay(1e3)(
+ fetchUpdates({
+ state,
+ settings,
+ execute: input.execute,
+ handlers: input.settings
+ })
+ ).pipe(
+ repeat({
+ while: ({ updates, lastSuccessId, hasError }) => {
+ if (hasError) {
+ console.warn("error in handler, quitting");
+ return false;
+ }
+ if (updates.length == 0) {
+ state.emptyResponses += 1;
+ if (settings.max_empty_responses && state.emptyResponses > settings.max_empty_responses) {
+ console.info("too many empty responses, quitting");
+ return false;
+ }
+ } else {
+ state.emptyResponses = 0;
+ }
+ ;
+ if (lastSuccessId) {
+ state.lastUpdateId = lastSuccessId + 1;
+ }
+ return true;
+ }
+ })
+ );
+};
+var BotUpdatePollerService = class extends Tag2("BotUpdatePollerService")() {
+};
+var BotUpdatesPollerServiceDefault = gen(function* () {
+ const state = {
+ isActive: false
+ };
+ const client = yield* service(ClientExecuteRequestService);
+ const runBot = (messageHandler) => gen(function* () {
+ if (state.isActive) {
+ return yield* fail("AlreadyRunning");
+ }
+ const fiber = yield* pollAndHandle({
+ settings: messageHandler,
+ execute: client.execute
+ }).pipe(forkDaemon);
+ fiber.addObserver((exit2) => {
+ console.log("bot's fiber has been closed", exit2);
+ state.isActive = false;
+ });
+ console.log("Reading bot's updates...");
+ return fiber;
+ });
+ return {
+ runBot
+ };
+}).pipe(
+ provideServiceEffect(ClientExecuteRequestService, ClientExecuteRequestServiceDefault)
+);
+var makeBot = (messageHandler) => gen(function* () {
+ const { runBot } = yield* service(BotUpdatePollerService);
+ return yield* runBot(messageHandler);
+}).pipe(
+ provideServiceEffect(BotUpdatePollerService, BotUpdatesPollerServiceDefault),
+ tapError((error) => {
+ console.error(error);
+ return void_;
+ })
+);
+var BotFactoryService = class extends Tag2("BotFactoryService")() {
+};
+var BotFactoryServiceDefault = {
+ makeBot,
+ runBot: (input) => makeBot(input).pipe(
+ provideServiceEffect(TgBotClientConfig, makeClientConfigFrom(input))
+ )
+};
+var runTgChatBot = (input) => BotFactoryServiceDefault.runBot(input).pipe(runPromiseExit);
+
+// src/tg-bot-playground/utils.ts
+var parseJson = (input) => {
+ try {
+ return { parsed: JSON.parse(input) };
+ } catch {
+ return void 0;
+ }
+};
+var deserialize = (input) => {
+ const result = [];
+ const fields = parseJson(input);
+ if (typeof fields?.parsed != "object") return void 0;
+ for (const [k, v] of Object.entries(fields.parsed)) {
+ try {
+ const f = new Function(`return ${v}`)();
+ result.push([k, f]);
+ } catch (e) {
+ console.warn("deserialize field error", { k, v, e });
+ }
+ }
+ return Object.fromEntries(result);
+};
+
+// src/tg-bot-playground/web-worker.ts
+console.log("loading worker");
+var logId = 1;
+var notifyParent = (input) => {
+ self.postMessage({
+ id: logId++,
+ ...input
+ });
+};
+self.onmessage = async (msg) => {
+ const command = msg.data;
+ if (typeof command != "object" || !command.command) {
+ notifyParent({
+ error: "object command expected"
+ });
+ return;
+ }
+ if (command.command == "run-bot") {
+ const handlers = deserialize(command.code);
+ const fiber = await runTgChatBot({
+ type: "config",
+ "bot-token": command.token,
+ ...handlers
+ });
+ if (fiber._tag == "Failure") {
+ notifyParent({
+ error: "Cannot create bot's fiber",
+ cause: fiber.cause
+ });
+ return;
+ }
+ notifyParent({
+ success: "Bot's fiber has been created",
+ botState: {
+ status: "active"
+ }
+ });
+ fiber.value.addObserver((exit2) => {
+ notifyParent({
+ success: "Bot's fiber has been shutdown",
+ exit: exit2,
+ botState: {
+ status: "stopped"
+ }
+ });
+ });
+ return;
+ }
+ notifyParent({
+ error: "Unknown command"
+ });
+};
diff --git a/docs/telegram-bot-playground/styles.css b/docs/telegram-bot-playground/styles.css
new file mode 100644
index 0000000..3c96ccc
--- /dev/null
+++ b/docs/telegram-bot-playground/styles.css
@@ -0,0 +1,32 @@
+.flex-container {
+ display: flex;
+ background-color: rgb(62, 95, 113);
+ margin-top: 10px;
+}
+
+#container {
+ display: flex;
+ width: 700px;
+ height: 600px;
+ border: 1px solid grey;
+}
+
+#worker-updates {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ justify-content: flex-start;
+ height: 600px;
+ overflow-y: auto;
+}
+
+#worker-updates::-webkit-scrollbar {
+ display: none;
+}
+
+#worker-updates > div {
+ background-color: #f1f1f1;
+ margin: 10px;
+ text-align: center;
+ border-radius: 5px;
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..3421dbb
--- /dev/null
+++ b/package.json
@@ -0,0 +1,22 @@
+{
+ "private": "true",
+ "type": "module",
+ "scripts": {
+ "gen-html": "redocly build-docs --output ../effect-ak.github.io/telegram-bot-api/index.html",
+ "dev": "cd docs && http-server",
+ "build": "tsup && node scripts/prep-page.js"
+ },
+ "dependencies": {
+ "@edge-runtime/vm": "^5.0.0",
+ "@effect-ak/tg-bot-client": "file:../tg-bot-client/effect-ak-tg-bot-client-0.2.2.tgz",
+ "@monaco-editor/loader": "^1.4.0",
+ "@redocly/cli": "^1.26.0",
+ "@types/alpinejs": "^3.13.11",
+ "@types/node": "22.10.2",
+ "effect": "^3.11.9",
+ "monaco-editor": "^0.52.2",
+ "typescript": "^5.7.2",
+ "vite-tsconfig-paths": "^5.1.4",
+ "vitest": "^2.1.8"
+ }
+}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..b19279b
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,3568 @@
+lockfileVersion: '9.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+importers:
+
+ .:
+ dependencies:
+ '@edge-runtime/vm':
+ specifier: ^5.0.0
+ version: 5.0.0
+ '@effect-ak/tg-bot-client':
+ specifier: file:../tg-bot-client/effect-ak-tg-bot-client-0.2.2.tgz
+ version: file:../tg-bot-client/effect-ak-tg-bot-client-0.2.2.tgz
+ '@monaco-editor/loader':
+ specifier: ^1.4.0
+ version: 1.4.0(monaco-editor@0.52.2)
+ '@redocly/cli':
+ specifier: ^1.26.0
+ version: 1.26.1(enzyme@3.11.0)
+ '@types/alpinejs':
+ specifier: ^3.13.11
+ version: 3.13.11
+ '@types/node':
+ specifier: 22.10.2
+ version: 22.10.2
+ effect:
+ specifier: ^3.11.9
+ version: 3.11.9
+ monaco-editor:
+ specifier: ^0.52.2
+ version: 0.52.2
+ typescript:
+ specifier: ^5.7.2
+ version: 5.7.2
+ vite-tsconfig-paths:
+ specifier: ^5.1.4
+ version: 5.1.4(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.2)(lightningcss@1.28.2))
+ vitest:
+ specifier: ^2.1.8
+ version: 2.1.8(@edge-runtime/vm@5.0.0)(@types/node@22.10.2)(lightningcss@1.28.2)
+
+packages:
+
+ '@babel/runtime@7.26.0':
+ resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==, tarball: https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz}
+ engines: {node: '>=6.9.0'}
+
+ '@cfaester/enzyme-adapter-react-18@0.8.0':
+ resolution: {integrity: sha512-3Z3ThTUouHwz8oIyhTYQljEMNRFtlVyc3VOOHCbxs47U6cnXs8K9ygi/c1tv49s7MBlTXeIcuN+Ttd9aPtILFQ==, tarball: https://registry.npmjs.org/@cfaester/enzyme-adapter-react-18/-/enzyme-adapter-react-18-0.8.0.tgz}
+ peerDependencies:
+ enzyme: ^3.11.0
+ react: '>=18'
+ react-dom: '>=18'
+
+ '@edge-runtime/primitives@6.0.0':
+ resolution: {integrity: sha512-FqoxaBT+prPBHBwE1WXS1ocnu/VLTQyZ6NMUBAdbP7N2hsFTTxMC/jMu2D/8GAlMQfxeuppcPuCUk/HO3fpIvA==, tarball: https://registry.npmjs.org/@edge-runtime/primitives/-/primitives-6.0.0.tgz}
+ engines: {node: '>=18'}
+
+ '@edge-runtime/vm@5.0.0':
+ resolution: {integrity: sha512-NKBGBSIKUG584qrS1tyxVpX/AKJKQw5HgjYEnPLC0QsTw79JrGn+qUr8CXFb955Iy7GUdiiUv1rJ6JBGvaKb6w==, tarball: https://registry.npmjs.org/@edge-runtime/vm/-/vm-5.0.0.tgz}
+ engines: {node: '>=18'}
+
+ '@effect-ak/tg-bot-client@file:../tg-bot-client/effect-ak-tg-bot-client-0.2.2.tgz':
+ resolution: {integrity: sha512-RnzjXJMM6pyL60SxVMRB/BfSNyqkFRVTZS9d5QuTulZHuLT/StUzmOPtHP56REanVk8/dpqquShUNg3tIxweHw==, tarball: file:../tg-bot-client/effect-ak-tg-bot-client-0.2.2.tgz}
+ version: 0.2.2
+
+ '@emotion/is-prop-valid@1.2.2':
+ resolution: {integrity: sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==, tarball: https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz}
+
+ '@emotion/memoize@0.8.1':
+ resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==, tarball: https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz}
+
+ '@emotion/unitless@0.8.1':
+ resolution: {integrity: sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==, tarball: https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz}
+
+ '@esbuild/aix-ppc64@0.21.5':
+ resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==, tarball: https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [aix]
+
+ '@esbuild/android-arm64@0.21.5':
+ resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==, tarball: https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.21.5':
+ resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==, tarball: https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.21.5':
+ resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==, tarball: https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.21.5':
+ resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==, tarball: https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.21.5':
+ resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==, tarball: https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==, tarball: https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.21.5':
+ resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==, tarball: https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.21.5':
+ resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==, tarball: https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.21.5':
+ resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==, tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.21.5':
+ resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==, tarball: https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.21.5':
+ resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==, tarball: https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.21.5':
+ resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==, tarball: https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.21.5':
+ resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==, tarball: https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.21.5':
+ resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==, tarball: https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.21.5':
+ resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==, tarball: https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.21.5':
+ resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==, tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-x64@0.21.5':
+ resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==, tarball: https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-x64@0.21.5':
+ resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==, tarball: https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.21.5':
+ resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==, tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.21.5':
+ resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==, tarball: https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.21.5':
+ resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==, tarball: https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.21.5':
+ resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==, tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
+ '@exodus/schemasafe@1.3.0':
+ resolution: {integrity: sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw==, tarball: https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.3.0.tgz}
+
+ '@jridgewell/sourcemap-codec@1.5.0':
+ resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==, tarball: https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz}
+
+ '@monaco-editor/loader@1.4.0':
+ resolution: {integrity: sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg==, tarball: https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.4.0.tgz}
+ peerDependencies:
+ monaco-editor: '>= 0.21.0 < 1'
+
+ '@redocly/ajv@8.11.2':
+ resolution: {integrity: sha512-io1JpnwtIcvojV7QKDUSIuMN/ikdOUd1ReEnUnMKGfDVridQZ31J0MmIuqwuRjWDZfmvr+Q0MqCcfHM2gTivOg==, tarball: https://registry.npmjs.org/@redocly/ajv/-/ajv-8.11.2.tgz}
+
+ '@redocly/cli@1.26.1':
+ resolution: {integrity: sha512-ZNutKq1W+iiwpR7GtuGCfU1hU62KsP0AELDvcCvkWzcCWhRiaOGEQSSwPfRdjehgzqecApUvG0nG0nCQmwqcoQ==, tarball: https://registry.npmjs.org/@redocly/cli/-/cli-1.26.1.tgz}
+ engines: {node: '>=14.19.0', npm: '>=7.0.0'}
+ hasBin: true
+
+ '@redocly/config@0.17.1':
+ resolution: {integrity: sha512-CEmvaJuG7pm2ylQg53emPmtgm4nW2nxBgwXzbVEHpGas/lGnMyN8Zlkgiz6rPw0unASg6VW3wlz27SOL5XFHYQ==, tarball: https://registry.npmjs.org/@redocly/config/-/config-0.17.1.tgz}
+
+ '@redocly/openapi-core@1.26.1':
+ resolution: {integrity: sha512-xRuVZqMVRFzqjbUCpOTra4tbnmQMWsya996omZMV3WgD084Z6OWB3FXflhAp93E/yAmbWlWZpddw758AyoaLSw==, tarball: https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.26.1.tgz}
+ engines: {node: '>=14.19.0', npm: '>=7.0.0'}
+
+ '@rollup/rollup-android-arm-eabi@4.29.1':
+ resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz}
+ cpu: [arm]
+ os: [android]
+
+ '@rollup/rollup-android-arm64@4.29.1':
+ resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==, tarball: https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz}
+ cpu: [arm64]
+ os: [android]
+
+ '@rollup/rollup-darwin-arm64@4.29.1':
+ resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@rollup/rollup-darwin-x64@4.29.1':
+ resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==, tarball: https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz}
+ cpu: [x64]
+ os: [darwin]
+
+ '@rollup/rollup-freebsd-arm64@4.29.1':
+ resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@rollup/rollup-freebsd-x64@4.29.1':
+ resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==, tarball: https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.29.1':
+ resolution: {integrity: sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz}
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm-musleabihf@4.29.1':
+ resolution: {integrity: sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz}
+ cpu: [arm]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-gnu@4.29.1':
+ resolution: {integrity: sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-arm64-musl@4.29.1':
+ resolution: {integrity: sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz}
+ cpu: [arm64]
+ os: [linux]
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.29.1':
+ resolution: {integrity: sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz}
+ cpu: [loong64]
+ os: [linux]
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.29.1':
+ resolution: {integrity: sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@rollup/rollup-linux-riscv64-gnu@4.29.1':
+ resolution: {integrity: sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@rollup/rollup-linux-s390x-gnu@4.29.1':
+ resolution: {integrity: sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz}
+ cpu: [s390x]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-gnu@4.29.1':
+ resolution: {integrity: sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz}
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-linux-x64-musl@4.29.1':
+ resolution: {integrity: sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==, tarball: https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz}
+ cpu: [x64]
+ os: [linux]
+
+ '@rollup/rollup-win32-arm64-msvc@4.29.1':
+ resolution: {integrity: sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz}
+ cpu: [arm64]
+ os: [win32]
+
+ '@rollup/rollup-win32-ia32-msvc@4.29.1':
+ resolution: {integrity: sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz}
+ cpu: [ia32]
+ os: [win32]
+
+ '@rollup/rollup-win32-x64-msvc@4.29.1':
+ resolution: {integrity: sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==, tarball: https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz}
+ cpu: [x64]
+ os: [win32]
+
+ '@types/alpinejs@3.13.11':
+ resolution: {integrity: sha512-3KhGkDixCPiLdL3Z/ok1GxHwLxEWqQOKJccgaQL01wc0EVM2tCTaqlC3NIedmxAXkVzt/V6VTM8qPgnOHKJ1MA==, tarball: https://registry.npmjs.org/@types/alpinejs/-/alpinejs-3.13.11.tgz}
+
+ '@types/estree@1.0.6':
+ resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==, tarball: https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz}
+
+ '@types/json-schema@7.0.15':
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, tarball: https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz}
+
+ '@types/node@22.10.2':
+ resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==, tarball: https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz}
+
+ '@types/stylis@4.2.5':
+ resolution: {integrity: sha512-1Xve+NMN7FWjY14vLoY5tL3BVEQ/n42YLwaqJIPYhotZ9uBHt87VceMwWQpzmdEt2TNXIorIFG+YeCUUW7RInw==, tarball: https://registry.npmjs.org/@types/stylis/-/stylis-4.2.5.tgz}
+
+ '@types/trusted-types@2.0.7':
+ resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==, tarball: https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz}
+
+ '@vitest/expect@2.1.8':
+ resolution: {integrity: sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==, tarball: https://registry.npmjs.org/@vitest/expect/-/expect-2.1.8.tgz}
+
+ '@vitest/mocker@2.1.8':
+ resolution: {integrity: sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==, tarball: https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.8.tgz}
+ peerDependencies:
+ msw: ^2.4.9
+ vite: ^5.0.0
+ peerDependenciesMeta:
+ msw:
+ optional: true
+ vite:
+ optional: true
+
+ '@vitest/pretty-format@2.1.8':
+ resolution: {integrity: sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==, tarball: https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.8.tgz}
+
+ '@vitest/runner@2.1.8':
+ resolution: {integrity: sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==, tarball: https://registry.npmjs.org/@vitest/runner/-/runner-2.1.8.tgz}
+
+ '@vitest/snapshot@2.1.8':
+ resolution: {integrity: sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==, tarball: https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.8.tgz}
+
+ '@vitest/spy@2.1.8':
+ resolution: {integrity: sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==, tarball: https://registry.npmjs.org/@vitest/spy/-/spy-2.1.8.tgz}
+
+ '@vitest/utils@2.1.8':
+ resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==, tarball: https://registry.npmjs.org/@vitest/utils/-/utils-2.1.8.tgz}
+
+ abort-controller@3.0.0:
+ resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, tarball: https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz}
+ engines: {node: '>=6.5'}
+
+ agent-base@7.1.3:
+ resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==, tarball: https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz}
+ engines: {node: '>= 14'}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, tarball: https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz}
+ engines: {node: '>=8'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, tarball: https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz}
+ engines: {node: '>=8'}
+
+ anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, tarball: https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz}
+ engines: {node: '>= 8'}
+
+ argparse@2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, tarball: https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz}
+
+ array-buffer-byte-length@1.0.2:
+ resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==, tarball: https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.filter@1.0.4:
+ resolution: {integrity: sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==, tarball: https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.4.tgz}
+ engines: {node: '>= 0.4'}
+
+ array.prototype.flat@1.3.3:
+ resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==, tarball: https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz}
+ engines: {node: '>= 0.4'}
+
+ arraybuffer.prototype.slice@1.0.4:
+ resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==, tarball: https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz}
+ engines: {node: '>= 0.4'}
+
+ assertion-error@2.0.1:
+ resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==, tarball: https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz}
+ engines: {node: '>=12'}
+
+ asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, tarball: https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz}
+
+ available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, tarball: https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz}
+ engines: {node: '>= 0.4'}
+
+ balanced-match@1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, tarball: https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz}
+
+ binary-extensions@2.3.0:
+ resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, tarball: https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz}
+ engines: {node: '>=8'}
+
+ boolbase@1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==, tarball: https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz}
+
+ brace-expansion@1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, tarball: https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz}
+
+ brace-expansion@2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, tarball: https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz}
+
+ braces@3.0.3:
+ resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, tarball: https://registry.npmjs.org/braces/-/braces-3.0.3.tgz}
+ engines: {node: '>=8'}
+
+ cac@6.7.14:
+ resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, tarball: https://registry.npmjs.org/cac/-/cac-6.7.14.tgz}
+ engines: {node: '>=8'}
+
+ call-bind-apply-helpers@1.0.1:
+ resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==, tarball: https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ call-bind@1.0.8:
+ resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==, tarball: https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz}
+ engines: {node: '>= 0.4'}
+
+ call-bound@1.0.3:
+ resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==, tarball: https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz}
+ engines: {node: '>= 0.4'}
+
+ call-me-maybe@1.0.2:
+ resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==, tarball: https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz}
+
+ camelize@1.0.1:
+ resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==, tarball: https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz}
+
+ chai@5.1.2:
+ resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==, tarball: https://registry.npmjs.org/chai/-/chai-5.1.2.tgz}
+ engines: {node: '>=12'}
+
+ check-error@2.1.1:
+ resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==, tarball: https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz}
+ engines: {node: '>= 16'}
+
+ cheerio-select@2.1.0:
+ resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==, tarball: https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz}
+
+ cheerio@1.0.0:
+ resolution: {integrity: sha512-quS9HgjQpdaXOvsZz82Oz7uxtXiy6UIsIQcpBj7HRw2M63Skasm9qlDocAM7jNuaxdhpPU7c4kJN+gA5MCu4ww==, tarball: https://registry.npmjs.org/cheerio/-/cheerio-1.0.0.tgz}
+ engines: {node: '>=18.17'}
+
+ chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, tarball: https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz}
+ engines: {node: '>= 8.10.0'}
+
+ classnames@2.5.1:
+ resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==, tarball: https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz}
+
+ cliui@7.0.4:
+ resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, tarball: https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz}
+
+ clsx@2.1.1:
+ resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==, tarball: https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz}
+ engines: {node: '>=6'}
+
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, tarball: https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, tarball: https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz}
+
+ colorette@1.4.0:
+ resolution: {integrity: sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==, tarball: https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz}
+
+ combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, tarball: https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz}
+ engines: {node: '>= 0.8'}
+
+ commander@2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, tarball: https://registry.npmjs.org/commander/-/commander-2.20.3.tgz}
+
+ concat-map@0.0.1:
+ resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, tarball: https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz}
+
+ core-js@3.39.0:
+ resolution: {integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==, tarball: https://registry.npmjs.org/core-js/-/core-js-3.39.0.tgz}
+
+ css-color-keywords@1.0.0:
+ resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==, tarball: https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz}
+ engines: {node: '>=4'}
+
+ css-select@5.1.0:
+ resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==, tarball: https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz}
+
+ css-to-react-native@3.2.0:
+ resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==, tarball: https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz}
+
+ css-what@6.1.0:
+ resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==, tarball: https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz}
+ engines: {node: '>= 6'}
+
+ csstype@3.1.3:
+ resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, tarball: https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz}
+
+ data-view-buffer@1.0.2:
+ resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==, tarball: https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-length@1.0.2:
+ resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==, tarball: https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz}
+ engines: {node: '>= 0.4'}
+
+ data-view-byte-offset@1.0.1:
+ resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==, tarball: https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ debug@4.4.0:
+ resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==, tarball: https://registry.npmjs.org/debug/-/debug-4.4.0.tgz}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
+ decko@1.2.0:
+ resolution: {integrity: sha512-m8FnyHXV1QX+S1cl+KPFDIl6NMkxtKsy6+U/aYyjrOqWMuwAwYWu7ePqrsUHtDR5Y8Yk2pi/KIDSgF+vT4cPOQ==, tarball: https://registry.npmjs.org/decko/-/decko-1.2.0.tgz}
+
+ deep-eql@5.0.2:
+ resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==, tarball: https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz}
+ engines: {node: '>=6'}
+
+ define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, tarball: https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz}
+ engines: {node: '>= 0.4'}
+
+ define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, tarball: https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, tarball: https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz}
+ engines: {node: '>=0.4.0'}
+
+ detect-libc@1.0.3:
+ resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==, tarball: https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz}
+ engines: {node: '>=0.10'}
+ hasBin: true
+
+ discontinuous-range@1.0.0:
+ resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==, tarball: https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz}
+
+ dom-serializer@2.0.0:
+ resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, tarball: https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz}
+
+ domelementtype@2.3.0:
+ resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, tarball: https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz}
+
+ domhandler@5.0.3:
+ resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, tarball: https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz}
+ engines: {node: '>= 4'}
+
+ dompurify@3.2.3:
+ resolution: {integrity: sha512-U1U5Hzc2MO0oW3DF+G9qYN0aT7atAou4AgI0XjWz061nyBPbdxkfdhfy5uMgGn6+oLFCfn44ZGbdDqCzVmlOWA==, tarball: https://registry.npmjs.org/dompurify/-/dompurify-3.2.3.tgz}
+
+ domutils@3.1.0:
+ resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==, tarball: https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz}
+
+ dunder-proto@1.0.1:
+ resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==, tarball: https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ effect@3.11.9:
+ resolution: {integrity: sha512-BeEOFVpe+f7S9mTiA2CLIzi1ywxgF1fUbcAank4jwdd6P0ZHQhaW3XVPZ7vkCNDTqmJs2f/gN2uV+Yw0ZqfDng==, tarball: https://registry.npmjs.org/effect/-/effect-3.11.9.tgz}
+
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, tarball: https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz}
+
+ encoding-sniffer@0.2.0:
+ resolution: {integrity: sha512-ju7Wq1kg04I3HtiYIOrUrdfdDvkyO9s5XM8QAj/bN61Yo/Vb4vgJxy5vi4Yxk01gWHbrofpPtpxM8bKger9jhg==, tarball: https://registry.npmjs.org/encoding-sniffer/-/encoding-sniffer-0.2.0.tgz}
+
+ entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, tarball: https://registry.npmjs.org/entities/-/entities-4.5.0.tgz}
+ engines: {node: '>=0.12'}
+
+ enzyme-shallow-equal@1.0.7:
+ resolution: {integrity: sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg==, tarball: https://registry.npmjs.org/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.7.tgz}
+
+ enzyme@3.11.0:
+ resolution: {integrity: sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==, tarball: https://registry.npmjs.org/enzyme/-/enzyme-3.11.0.tgz}
+
+ es-abstract@1.23.7:
+ resolution: {integrity: sha512-OygGC8kIcDhXX+6yAZRGLqwi2CmEXCbLQixeGUgYeR+Qwlppqmo7DIDr8XibtEBZp+fJcoYpoatp5qwLMEdcqQ==, tarball: https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.7.tgz}
+ engines: {node: '>= 0.4'}
+
+ es-array-method-boxes-properly@1.0.0:
+ resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==, tarball: https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz}
+
+ es-define-property@1.0.1:
+ resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==, tarball: https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, tarball: https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ es-module-lexer@1.5.4:
+ resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==, tarball: https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz}
+
+ es-object-atoms@1.0.0:
+ resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==, tarball: https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ es-set-tostringtag@2.0.3:
+ resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==, tarball: https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz}
+ engines: {node: '>= 0.4'}
+
+ es-shim-unscopables@1.0.2:
+ resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==, tarball: https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz}
+
+ es-to-primitive@1.3.0:
+ resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==, tarball: https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ es6-promise@3.3.1:
+ resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==, tarball: https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz}
+
+ esbuild@0.21.5:
+ resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==, tarball: https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz}
+ engines: {node: '>=12'}
+ hasBin: true
+
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==, tarball: https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz}
+ engines: {node: '>=6'}
+
+ estree-walker@3.0.3:
+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, tarball: https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz}
+
+ event-target-shim@5.0.1:
+ resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, tarball: https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz}
+ engines: {node: '>=6'}
+
+ eventemitter3@5.0.1:
+ resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, tarball: https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz}
+
+ expect-type@1.1.0:
+ resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==, tarball: https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz}
+ engines: {node: '>=12.0.0'}
+
+ fast-check@3.23.2:
+ resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==, tarball: https://registry.npmjs.org/fast-check/-/fast-check-3.23.2.tgz}
+ engines: {node: '>=8.0.0'}
+
+ fast-deep-equal@3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, tarball: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz}
+
+ fast-safe-stringify@2.1.1:
+ resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, tarball: https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz}
+
+ fast-xml-parser@4.5.1:
+ resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==, tarball: https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.5.1.tgz}
+ hasBin: true
+
+ fill-range@7.1.1:
+ resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==, tarball: https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz}
+ engines: {node: '>=8'}
+
+ for-each@0.3.3:
+ resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, tarball: https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz}
+
+ foreach@2.0.6:
+ resolution: {integrity: sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==, tarball: https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz}
+
+ form-data@4.0.1:
+ resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==, tarball: https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz}
+ engines: {node: '>= 6'}
+
+ fs.realpath@1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, tarball: https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz}
+
+ fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+
+ function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, tarball: https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz}
+
+ function.prototype.name@1.1.8:
+ resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==, tarball: https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz}
+ engines: {node: '>= 0.4'}
+
+ functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, tarball: https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz}
+
+ get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, tarball: https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz}
+ engines: {node: 6.* || 8.* || >= 10.*}
+
+ get-intrinsic@1.2.6:
+ resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==, tarball: https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz}
+ engines: {node: '>= 0.4'}
+
+ get-port-please@3.1.2:
+ resolution: {integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==, tarball: https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz}
+
+ get-symbol-description@1.1.0:
+ resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==, tarball: https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ glob-parent@5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz}
+ engines: {node: '>= 6'}
+
+ glob@7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, tarball: https://registry.npmjs.org/glob/-/glob-7.2.3.tgz}
+ deprecated: Glob versions prior to v9 are no longer supported
+
+ globalthis@1.0.4:
+ resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==, tarball: https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz}
+ engines: {node: '>= 0.4'}
+
+ globrex@0.1.2:
+ resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, tarball: https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz}
+
+ gopd@1.2.0:
+ resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==, tarball: https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ handlebars@4.7.8:
+ resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==, tarball: https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz}
+ engines: {node: '>=0.4.7'}
+ hasBin: true
+
+ has-bigints@1.1.0:
+ resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==, tarball: https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, tarball: https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz}
+
+ has-proto@1.2.0:
+ resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==, tarball: https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ has-symbols@1.1.0:
+ resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==, tarball: https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, tarball: https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz}
+ engines: {node: '>= 0.4'}
+
+ has@1.0.4:
+ resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==, tarball: https://registry.npmjs.org/has/-/has-1.0.4.tgz}
+ engines: {node: '>= 0.4.0'}
+
+ hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, tarball: https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz}
+ engines: {node: '>= 0.4'}
+
+ html-element-map@1.3.1:
+ resolution: {integrity: sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==, tarball: https://registry.npmjs.org/html-element-map/-/html-element-map-1.3.1.tgz}
+
+ htmlparser2@9.1.0:
+ resolution: {integrity: sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==, tarball: https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz}
+
+ http2-client@1.3.5:
+ resolution: {integrity: sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA==, tarball: https://registry.npmjs.org/http2-client/-/http2-client-1.3.5.tgz}
+
+ https-proxy-agent@7.0.6:
+ resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==, tarball: https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz}
+ engines: {node: '>= 14'}
+
+ iconv-lite@0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, tarball: https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz}
+ engines: {node: '>=0.10.0'}
+
+ inflight@1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, tarball: https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz}
+ deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
+
+ inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, tarball: https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz}
+
+ internal-slot@1.1.0:
+ resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==, tarball: https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-array-buffer@3.0.5:
+ resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==, tarball: https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-async-function@2.0.0:
+ resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==, tarball: https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-bigint@1.1.0:
+ resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==, tarball: https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, tarball: https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz}
+ engines: {node: '>=8'}
+
+ is-boolean-object@1.2.1:
+ resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==, tarball: https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, tarball: https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-data-view@1.0.2:
+ resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==, tarball: https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-date-object@1.1.0:
+ resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==, tarball: https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-extglob@2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, tarball: https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz}
+ engines: {node: '>=0.10.0'}
+
+ is-finalizationregistry@1.1.1:
+ resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==, tarball: https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, tarball: https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz}
+ engines: {node: '>=8'}
+
+ is-generator-function@1.0.10:
+ resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==, tarball: https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-glob@4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, tarball: https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz}
+ engines: {node: '>=0.10.0'}
+
+ is-map@2.0.3:
+ resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==, tarball: https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-number-object@1.1.1:
+ resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==, tarball: https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-number@7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, tarball: https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz}
+ engines: {node: '>=0.12.0'}
+
+ is-regex@1.2.1:
+ resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==, tarball: https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-set@2.0.3:
+ resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==, tarball: https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-shared-array-buffer@1.0.4:
+ resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==, tarball: https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-string@1.1.1:
+ resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==, tarball: https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-subset@0.1.1:
+ resolution: {integrity: sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==, tarball: https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz}
+
+ is-symbol@1.1.1:
+ resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==, tarball: https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-typed-array@1.1.15:
+ resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==, tarball: https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-weakmap@2.0.2:
+ resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==, tarball: https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-weakref@1.1.0:
+ resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==, tarball: https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ is-weakset@2.0.4:
+ resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==, tarball: https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz}
+ engines: {node: '>= 0.4'}
+
+ isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, tarball: https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz}
+
+ js-levenshtein@1.1.6:
+ resolution: {integrity: sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==, tarball: https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz}
+ engines: {node: '>=0.10.0'}
+
+ js-tokens@4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, tarball: https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz}
+
+ js-yaml@4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, tarball: https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz}
+ hasBin: true
+
+ json-pointer@0.6.2:
+ resolution: {integrity: sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==, tarball: https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz}
+
+ json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, tarball: https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz}
+
+ lightningcss-darwin-arm64@1.28.2:
+ resolution: {integrity: sha512-/8cPSqZiusHSS+WQz0W4NuaqFjquys1x+NsdN/XOHb+idGHJSoJ7SoQTVl3DZuAgtPZwFZgRfb/vd1oi8uX6+g==, tarball: https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.28.2.tgz}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+
+ lightningcss-darwin-x64@1.28.2:
+ resolution: {integrity: sha512-R7sFrXlgKjvoEG8umpVt/yutjxOL0z8KWf0bfPT3cYMOW4470xu5qSHpFdIOpRWwl3FKNMUdbKtMUjYt0h2j4g==, tarball: https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.28.2.tgz}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+
+ lightningcss-freebsd-x64@1.28.2:
+ resolution: {integrity: sha512-l2qrCT+x7crAY+lMIxtgvV10R8VurzHAoUZJaVFSlHrN8kRLTvEg9ObojIDIexqWJQvJcVVV3vfzsEynpiuvgA==, tarball: https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.28.2.tgz}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+
+ lightningcss-linux-arm-gnueabihf@1.28.2:
+ resolution: {integrity: sha512-DKMzpICBEKnL53X14rF7hFDu8KKALUJtcKdFUCW5YOlGSiwRSgVoRjM97wUm/E0NMPkzrTi/rxfvt7ruNK8meg==, tarball: https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.28.2.tgz}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+
+ lightningcss-linux-arm64-gnu@1.28.2:
+ resolution: {integrity: sha512-nhfjYkfymWZSxdtTNMWyhFk2ImUm0X7NAgJWFwnsYPOfmtWQEapzG/DXZTfEfMjSzERNUNJoQjPAbdqgB+sjiw==, tarball: https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.28.2.tgz}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-arm64-musl@1.28.2:
+ resolution: {integrity: sha512-1SPG1ZTNnphWvAv8RVOymlZ8BDtAg69Hbo7n4QxARvkFVCJAt0cgjAw1Fox0WEhf4PwnyoOBaVH0Z5YNgzt4dA==, tarball: https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.28.2.tgz}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+
+ lightningcss-linux-x64-gnu@1.28.2:
+ resolution: {integrity: sha512-ZhQy0FcO//INWUdo/iEdbefntTdpPVQ0XJwwtdbBuMQe+uxqZoytm9M+iqR9O5noWFaxK+nbS2iR/I80Q2Ofpg==, tarball: https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.28.2.tgz}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-linux-x64-musl@1.28.2:
+ resolution: {integrity: sha512-alb/j1NMrgQmSFyzTbN1/pvMPM+gdDw7YBuQ5VSgcFDypN3Ah0BzC2dTZbzwzaMdUVDszX6zH5MzjfVN1oGuww==, tarball: https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.28.2.tgz}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+
+ lightningcss-win32-arm64-msvc@1.28.2:
+ resolution: {integrity: sha512-WnwcjcBeAt0jGdjlgbT9ANf30pF0C/QMb1XnLnH272DQU8QXh+kmpi24R55wmWBwaTtNAETZ+m35ohyeMiNt+g==, tarball: https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.28.2.tgz}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [win32]
+
+ lightningcss-win32-x64-msvc@1.28.2:
+ resolution: {integrity: sha512-3piBifyT3avz22o6mDKywQC/OisH2yDK+caHWkiMsF82i3m5wDBadyCjlCQ5VNgzYkxrWZgiaxHDdd5uxsi0/A==, tarball: https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.28.2.tgz}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+
+ lightningcss@1.28.2:
+ resolution: {integrity: sha512-ePLRrbt3fgjXI5VFZOLbvkLD5ZRuxGKm+wJ3ujCqBtL3NanDHPo/5zicR5uEKAPiIjBYF99BM4K4okvMznjkVA==, tarball: https://registry.npmjs.org/lightningcss/-/lightningcss-1.28.2.tgz}
+ engines: {node: '>= 12.0.0'}
+
+ lodash.escape@4.0.1:
+ resolution: {integrity: sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==, tarball: https://registry.npmjs.org/lodash.escape/-/lodash.escape-4.0.1.tgz}
+
+ lodash.flattendeep@4.4.0:
+ resolution: {integrity: sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==, tarball: https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz}
+
+ lodash.isequal@4.5.0:
+ resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==, tarball: https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz}
+
+ loose-envify@1.4.0:
+ resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, tarball: https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz}
+ hasBin: true
+
+ loupe@3.1.2:
+ resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==, tarball: https://registry.npmjs.org/loupe/-/loupe-3.1.2.tgz}
+
+ lunr@2.3.9:
+ resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==, tarball: https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz}
+
+ magic-string@0.30.17:
+ resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==, tarball: https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz}
+
+ mark.js@8.11.1:
+ resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==, tarball: https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz}
+
+ marked@4.3.0:
+ resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==, tarball: https://registry.npmjs.org/marked/-/marked-4.3.0.tgz}
+ engines: {node: '>= 12'}
+ hasBin: true
+
+ math-intrinsics@1.1.0:
+ resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==, tarball: https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, tarball: https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz}
+ engines: {node: '>= 0.6'}
+
+ mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, tarball: https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz}
+ engines: {node: '>= 0.6'}
+
+ minimatch@3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, tarball: https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz}
+
+ minimatch@5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, tarball: https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz}
+ engines: {node: '>=10'}
+
+ minimist@1.2.8:
+ resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, tarball: https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz}
+
+ mobx-react-lite@4.1.0:
+ resolution: {integrity: sha512-QEP10dpHHBeQNv1pks3WnHRCem2Zp636lq54M2nKO2Sarr13pL4u6diQXf65yzXUn0mkk18SyIDCm9UOJYTi1w==, tarball: https://registry.npmjs.org/mobx-react-lite/-/mobx-react-lite-4.1.0.tgz}
+ peerDependencies:
+ mobx: ^6.9.0
+ react: ^16.8.0 || ^17 || ^18 || ^19
+ react-dom: '*'
+ react-native: '*'
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+ react-native:
+ optional: true
+
+ mobx-react@9.2.0:
+ resolution: {integrity: sha512-dkGWCx+S0/1mfiuFfHRH8D9cplmwhxOV5CkXMp38u6rQGG2Pv3FWYztS0M7ncR6TyPRQKaTG/pnitInoYE9Vrw==, tarball: https://registry.npmjs.org/mobx-react/-/mobx-react-9.2.0.tgz}
+ peerDependencies:
+ mobx: ^6.9.0
+ react: ^16.8.0 || ^17 || ^18 || ^19
+ react-dom: '*'
+ react-native: '*'
+ peerDependenciesMeta:
+ react-dom:
+ optional: true
+ react-native:
+ optional: true
+
+ mobx@6.13.5:
+ resolution: {integrity: sha512-/HTWzW2s8J1Gqt+WmUj5Y0mddZk+LInejADc79NJadrWla3rHzmRHki/mnEUH1AvOmbNTZ1BRbKxr8DSgfdjMA==, tarball: https://registry.npmjs.org/mobx/-/mobx-6.13.5.tgz}
+
+ monaco-editor@0.52.2:
+ resolution: {integrity: sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==, tarball: https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.52.2.tgz}
+
+ moo@0.5.2:
+ resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==, tarball: https://registry.npmjs.org/moo/-/moo-0.5.2.tgz}
+
+ ms@2.1.3:
+ resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, tarball: https://registry.npmjs.org/ms/-/ms-2.1.3.tgz}
+
+ nanoid@3.3.8:
+ resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==, tarball: https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ nearley@2.20.1:
+ resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==, tarball: https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz}
+ hasBin: true
+
+ neo-async@2.6.2:
+ resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, tarball: https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz}
+
+ node-fetch-h2@2.3.0:
+ resolution: {integrity: sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg==, tarball: https://registry.npmjs.org/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz}
+ engines: {node: 4.x || >=6.0.0}
+
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, tarball: https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
+ node-readfiles@0.2.0:
+ resolution: {integrity: sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA==, tarball: https://registry.npmjs.org/node-readfiles/-/node-readfiles-0.2.0.tgz}
+
+ normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, tarball: https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz}
+ engines: {node: '>=0.10.0'}
+
+ nth-check@2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==, tarball: https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz}
+
+ oas-kit-common@1.0.8:
+ resolution: {integrity: sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==, tarball: https://registry.npmjs.org/oas-kit-common/-/oas-kit-common-1.0.8.tgz}
+
+ oas-linter@3.2.2:
+ resolution: {integrity: sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ==, tarball: https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.2.tgz}
+
+ oas-resolver@2.5.6:
+ resolution: {integrity: sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ==, tarball: https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.6.tgz}
+ hasBin: true
+
+ oas-schema-walker@1.1.5:
+ resolution: {integrity: sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==, tarball: https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz}
+
+ oas-validator@5.0.8:
+ resolution: {integrity: sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw==, tarball: https://registry.npmjs.org/oas-validator/-/oas-validator-5.0.8.tgz}
+
+ object-assign@4.1.1:
+ resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, tarball: https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz}
+ engines: {node: '>=0.10.0'}
+
+ object-inspect@1.13.3:
+ resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==, tarball: https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz}
+ engines: {node: '>= 0.4'}
+
+ object-is@1.1.6:
+ resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==, tarball: https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz}
+ engines: {node: '>= 0.4'}
+
+ object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, tarball: https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ object.assign@4.1.7:
+ resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==, tarball: https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz}
+ engines: {node: '>= 0.4'}
+
+ object.entries@1.1.8:
+ resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==, tarball: https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz}
+ engines: {node: '>= 0.4'}
+
+ object.values@1.2.1:
+ resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==, tarball: https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, tarball: https://registry.npmjs.org/once/-/once-1.4.0.tgz}
+
+ openapi-sampler@1.6.1:
+ resolution: {integrity: sha512-s1cIatOqrrhSj2tmJ4abFYZQK6l5v+V4toO5q1Pa0DyN8mtyqy2I+Qrj5W9vOELEtybIMQs/TBZGVO/DtTFK8w==, tarball: https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.6.1.tgz}
+
+ parse5-htmlparser2-tree-adapter@7.1.0:
+ resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==, tarball: https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz}
+
+ parse5-parser-stream@7.1.2:
+ resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==, tarball: https://registry.npmjs.org/parse5-parser-stream/-/parse5-parser-stream-7.1.2.tgz}
+
+ parse5@7.2.1:
+ resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==, tarball: https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz}
+
+ path-browserify@1.0.1:
+ resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==, tarball: https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz}
+
+ path-is-absolute@1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, tarball: https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz}
+ engines: {node: '>=0.10.0'}
+
+ pathe@1.1.2:
+ resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==, tarball: https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz}
+
+ pathval@2.0.0:
+ resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==, tarball: https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz}
+ engines: {node: '>= 14.16'}
+
+ perfect-scrollbar@1.5.6:
+ resolution: {integrity: sha512-rixgxw3SxyJbCaSpo1n35A/fwI1r2rdwMKOTCg/AcG+xOEyZcE8UHVjpZMFCVImzsFoCZeJTT+M/rdEIQYO2nw==, tarball: https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.6.tgz}
+
+ performance-now@2.1.0:
+ resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, tarball: https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz}
+
+ picocolors@1.1.1:
+ resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, tarball: https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz}
+
+ picomatch@2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, tarball: https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz}
+ engines: {node: '>=8.6'}
+
+ pluralize@8.0.0:
+ resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, tarball: https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz}
+ engines: {node: '>=4'}
+
+ polished@4.3.1:
+ resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==, tarball: https://registry.npmjs.org/polished/-/polished-4.3.1.tgz}
+ engines: {node: '>=10'}
+
+ possible-typed-array-names@1.0.0:
+ resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==, tarball: https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ postcss-value-parser@4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, tarball: https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz}
+
+ postcss@8.4.38:
+ resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==, tarball: https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz}
+ engines: {node: ^10 || ^12 || >=14}
+
+ postcss@8.4.49:
+ resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==, tarball: https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz}
+ engines: {node: ^10 || ^12 || >=14}
+
+ prismjs@1.29.0:
+ resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==, tarball: https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz}
+ engines: {node: '>=6'}
+
+ prop-types@15.8.1:
+ resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, tarball: https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz}
+
+ pure-rand@6.1.0:
+ resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==, tarball: https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz}
+
+ queue-microtask@1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, tarball: https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz}
+
+ raf@3.4.1:
+ resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==, tarball: https://registry.npmjs.org/raf/-/raf-3.4.1.tgz}
+
+ railroad-diagrams@1.0.0:
+ resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==, tarball: https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz}
+
+ randexp@0.4.6:
+ resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==, tarball: https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz}
+ engines: {node: '>=0.12'}
+
+ randombytes@2.1.0:
+ resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, tarball: https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz}
+
+ react-dom@18.3.1:
+ resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==, tarball: https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz}
+ peerDependencies:
+ react: ^18.3.1
+
+ react-is@16.13.1:
+ resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, tarball: https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz}
+
+ react-is@18.3.1:
+ resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==, tarball: https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz}
+
+ react-shallow-renderer@16.15.0:
+ resolution: {integrity: sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==, tarball: https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz}
+ peerDependencies:
+ react: ^16.0.0 || ^17.0.0 || ^18.0.0
+
+ react-tabs@6.1.0:
+ resolution: {integrity: sha512-6QtbTRDKM+jA/MZTTefvigNxo0zz+gnBTVFw2CFVvq+f2BuH0nF0vDLNClL045nuTAdOoK/IL1vTP0ZLX0DAyQ==, tarball: https://registry.npmjs.org/react-tabs/-/react-tabs-6.1.0.tgz}
+ peerDependencies:
+ react: ^18.0.0 || ^19.0.0
+
+ react@18.3.1:
+ resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==, tarball: https://registry.npmjs.org/react/-/react-18.3.1.tgz}
+ engines: {node: '>=0.10.0'}
+
+ readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, tarball: https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz}
+ engines: {node: '>= 6'}
+
+ readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, tarball: https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz}
+ engines: {node: '>=8.10.0'}
+
+ redoc@2.2.0:
+ resolution: {integrity: sha512-52rz/xJtpUBc3Y/GAkaX03czKhQXTxoU7WnkXNzRLuGwiGb/iEO4OgwcgQqtwHWrYNaZXTyqZ4MAVXpi/e1gAg==, tarball: https://registry.npmjs.org/redoc/-/redoc-2.2.0.tgz}
+ engines: {node: '>=6.9', npm: '>=3.0.0'}
+ peerDependencies:
+ core-js: ^3.1.4
+ mobx: ^6.0.4
+ react: ^16.8.4 || ^17.0.0 || ^18.0.0
+ react-dom: ^16.8.4 || ^17.0.0 || ^18.0.0
+ styled-components: ^4.1.1 || ^5.1.1 || ^6.0.5
+
+ reflect.getprototypeof@1.0.9:
+ resolution: {integrity: sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==, tarball: https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz}
+ engines: {node: '>= 0.4'}
+
+ reftools@1.1.9:
+ resolution: {integrity: sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w==, tarball: https://registry.npmjs.org/reftools/-/reftools-1.1.9.tgz}
+
+ regenerator-runtime@0.14.1:
+ resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, tarball: https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz}
+
+ regexp.prototype.flags@1.5.3:
+ resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==, tarball: https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz}
+ engines: {node: '>= 0.4'}
+
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, tarball: https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz}
+ engines: {node: '>=0.10.0'}
+
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, tarball: https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz}
+ engines: {node: '>=0.10.0'}
+
+ ret@0.1.15:
+ resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==, tarball: https://registry.npmjs.org/ret/-/ret-0.1.15.tgz}
+ engines: {node: '>=0.12'}
+
+ rollup@4.29.1:
+ resolution: {integrity: sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==, tarball: https://registry.npmjs.org/rollup/-/rollup-4.29.1.tgz}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+
+ rst-selector-parser@2.2.3:
+ resolution: {integrity: sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==, tarball: https://registry.npmjs.org/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz}
+
+ safe-array-concat@1.1.3:
+ resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==, tarball: https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz}
+ engines: {node: '>=0.4'}
+
+ safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, tarball: https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz}
+
+ safe-regex-test@1.1.0:
+ resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==, tarball: https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, tarball: https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz}
+
+ scheduler@0.23.2:
+ resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==, tarball: https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz}
+
+ semver@7.6.3:
+ resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==, tarball: https://registry.npmjs.org/semver/-/semver-7.6.3.tgz}
+ engines: {node: '>=10'}
+ hasBin: true
+
+ set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, tarball: https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz}
+ engines: {node: '>= 0.4'}
+
+ set-function-name@2.0.2:
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==, tarball: https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz}
+ engines: {node: '>= 0.4'}
+
+ shallowequal@1.1.0:
+ resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==, tarball: https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz}
+
+ should-equal@2.0.0:
+ resolution: {integrity: sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA==, tarball: https://registry.npmjs.org/should-equal/-/should-equal-2.0.0.tgz}
+
+ should-format@3.0.3:
+ resolution: {integrity: sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q==, tarball: https://registry.npmjs.org/should-format/-/should-format-3.0.3.tgz}
+
+ should-type-adaptors@1.1.0:
+ resolution: {integrity: sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA==, tarball: https://registry.npmjs.org/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz}
+
+ should-type@1.4.0:
+ resolution: {integrity: sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ==, tarball: https://registry.npmjs.org/should-type/-/should-type-1.4.0.tgz}
+
+ should-util@1.0.1:
+ resolution: {integrity: sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==, tarball: https://registry.npmjs.org/should-util/-/should-util-1.0.1.tgz}
+
+ should@13.2.3:
+ resolution: {integrity: sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ==, tarball: https://registry.npmjs.org/should/-/should-13.2.3.tgz}
+
+ side-channel-list@1.0.0:
+ resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==, tarball: https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ side-channel-map@1.0.1:
+ resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==, tarball: https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ side-channel-weakmap@1.0.2:
+ resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==, tarball: https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz}
+ engines: {node: '>= 0.4'}
+
+ side-channel@1.1.0:
+ resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==, tarball: https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ siginfo@2.0.0:
+ resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, tarball: https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz}
+
+ simple-websocket@9.1.0:
+ resolution: {integrity: sha512-8MJPnjRN6A8UCp1I+H/dSFyjwJhp6wta4hsVRhjf8w9qBHRzxYt14RaOcjvQnhD1N4yKOddEjflwMnQM4VtXjQ==, tarball: https://registry.npmjs.org/simple-websocket/-/simple-websocket-9.1.0.tgz}
+
+ slugify@1.4.7:
+ resolution: {integrity: sha512-tf+h5W1IrjNm/9rKKj0JU2MDMruiopx0jjVA5zCdBtcGjfp0+c5rHw/zADLC3IeKlGHtVbHtpfzvYA0OYT+HKg==, tarball: https://registry.npmjs.org/slugify/-/slugify-1.4.7.tgz}
+ engines: {node: '>=8.0.0'}
+
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, tarball: https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz}
+ engines: {node: '>=0.10.0'}
+
+ source-map@0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, tarball: https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz}
+ engines: {node: '>=0.10.0'}
+
+ stackback@0.0.2:
+ resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, tarball: https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz}
+
+ state-local@1.0.7:
+ resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==, tarball: https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz}
+
+ std-env@3.8.0:
+ resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==, tarball: https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz}
+
+ stickyfill@1.1.1:
+ resolution: {integrity: sha512-GCp7vHAfpao+Qh/3Flh9DXEJ/qSi0KJwJw6zYlZOtRYXWUIpMM6mC2rIep/dK8RQqwW0KxGJIllmjPIBOGN8AA==, tarball: https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz}
+
+ string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, tarball: https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz}
+ engines: {node: '>=8'}
+
+ string.prototype.trim@1.2.10:
+ resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==, tarball: https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimend@1.0.9:
+ resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==, tarball: https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz}
+ engines: {node: '>= 0.4'}
+
+ string.prototype.trimstart@1.0.8:
+ resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==, tarball: https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz}
+ engines: {node: '>= 0.4'}
+
+ string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, tarball: https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz}
+
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, tarball: https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz}
+ engines: {node: '>=8'}
+
+ strnum@1.0.5:
+ resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==, tarball: https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz}
+
+ styled-components@6.1.13:
+ resolution: {integrity: sha512-M0+N2xSnAtwcVAQeFEsGWFFxXDftHUD7XrKla06QbpUMmbmtFBMMTcKWvFXtWxuD5qQkB8iU5gk6QASlx2ZRMw==, tarball: https://registry.npmjs.org/styled-components/-/styled-components-6.1.13.tgz}
+ engines: {node: '>= 16'}
+ peerDependencies:
+ react: '>= 16.8.0'
+ react-dom: '>= 16.8.0'
+
+ stylis@4.3.2:
+ resolution: {integrity: sha512-bhtUjWd/z6ltJiQwg0dUfxEJ+W+jdqQd8TbWLWyeIJHlnsqmGLRFFd8e5mA0AZi/zx90smXRlN66YMTcaSFifg==, tarball: https://registry.npmjs.org/stylis/-/stylis-4.3.2.tgz}
+
+ swagger2openapi@7.0.8:
+ resolution: {integrity: sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g==, tarball: https://registry.npmjs.org/swagger2openapi/-/swagger2openapi-7.0.8.tgz}
+ hasBin: true
+
+ tinybench@2.9.0:
+ resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==, tarball: https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz}
+
+ tinyexec@0.3.1:
+ resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==, tarball: https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.1.tgz}
+
+ tinypool@1.0.2:
+ resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==, tarball: https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz}
+ engines: {node: ^18.0.0 || >=20.0.0}
+
+ tinyrainbow@1.2.0:
+ resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==, tarball: https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz}
+ engines: {node: '>=14.0.0'}
+
+ tinyspy@3.0.2:
+ resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==, tarball: https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz}
+ engines: {node: '>=14.0.0'}
+
+ to-regex-range@5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, tarball: https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz}
+ engines: {node: '>=8.0'}
+
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, tarball: https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz}
+
+ tsconfck@3.1.4:
+ resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==, tarball: https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.4.tgz}
+ engines: {node: ^18 || >=20}
+ hasBin: true
+ peerDependencies:
+ typescript: ^5.0.0
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+
+ tslib@2.6.2:
+ resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==, tarball: https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz}
+
+ typed-array-buffer@1.0.3:
+ resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==, tarball: https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-length@1.0.3:
+ resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==, tarball: https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz}
+ engines: {node: '>= 0.4'}
+
+ typed-array-byte-offset@1.0.4:
+ resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==, tarball: https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz}
+ engines: {node: '>= 0.4'}
+
+ typed-array-length@1.0.7:
+ resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==, tarball: https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz}
+ engines: {node: '>= 0.4'}
+
+ typescript@5.7.2:
+ resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==, tarball: https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz}
+ engines: {node: '>=14.17'}
+ hasBin: true
+
+ uglify-js@3.19.3:
+ resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==, tarball: https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz}
+ engines: {node: '>=0.8.0'}
+ hasBin: true
+
+ unbox-primitive@1.1.0:
+ resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==, tarball: https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz}
+ engines: {node: '>= 0.4'}
+
+ undici-types@6.20.0:
+ resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==, tarball: https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz}
+
+ undici@6.21.0:
+ resolution: {integrity: sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==, tarball: https://registry.npmjs.org/undici/-/undici-6.21.0.tgz}
+ engines: {node: '>=18.17'}
+
+ uri-js-replace@1.0.1:
+ resolution: {integrity: sha512-W+C9NWNLFOoBI2QWDp4UT9pv65r2w5Cx+3sTYFvtMdDBxkKt1syCqsUdSFAChbEe1uK5TfS04wt/nGwmaeIQ0g==, tarball: https://registry.npmjs.org/uri-js-replace/-/uri-js-replace-1.0.1.tgz}
+
+ url-template@2.0.8:
+ resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==, tarball: https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz}
+
+ use-sync-external-store@1.4.0:
+ resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==, tarball: https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.4.0.tgz}
+ peerDependencies:
+ react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
+
+ util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, tarball: https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz}
+
+ vite-node@2.1.8:
+ resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==, tarball: https://registry.npmjs.org/vite-node/-/vite-node-2.1.8.tgz}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+
+ vite-tsconfig-paths@5.1.4:
+ resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==, tarball: https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-5.1.4.tgz}
+ peerDependencies:
+ vite: '*'
+ peerDependenciesMeta:
+ vite:
+ optional: true
+
+ vite@5.4.11:
+ resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==, tarball: https://registry.npmjs.org/vite/-/vite-5.4.11.tgz}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ sass-embedded: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ sass-embedded:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+
+ vitest@2.1.8:
+ resolution: {integrity: sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==, tarball: https://registry.npmjs.org/vitest/-/vitest-2.1.8.tgz}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@edge-runtime/vm': '*'
+ '@types/node': ^18.0.0 || >=20.0.0
+ '@vitest/browser': 2.1.8
+ '@vitest/ui': 2.1.8
+ happy-dom: '*'
+ jsdom: '*'
+ peerDependenciesMeta:
+ '@edge-runtime/vm':
+ optional: true
+ '@types/node':
+ optional: true
+ '@vitest/browser':
+ optional: true
+ '@vitest/ui':
+ optional: true
+ happy-dom:
+ optional: true
+ jsdom:
+ optional: true
+
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, tarball: https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz}
+
+ whatwg-encoding@3.1.1:
+ resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==, tarball: https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz}
+ engines: {node: '>=18'}
+
+ whatwg-mimetype@4.0.0:
+ resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==, tarball: https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz}
+ engines: {node: '>=18'}
+
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, tarball: https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz}
+
+ which-boxed-primitive@1.1.1:
+ resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==, tarball: https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ which-builtin-type@1.2.1:
+ resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==, tarball: https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz}
+ engines: {node: '>= 0.4'}
+
+ which-collection@1.0.2:
+ resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==, tarball: https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz}
+ engines: {node: '>= 0.4'}
+
+ which-typed-array@1.1.18:
+ resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==, tarball: https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz}
+ engines: {node: '>= 0.4'}
+
+ why-is-node-running@2.3.0:
+ resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==, tarball: https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz}
+ engines: {node: '>=8'}
+ hasBin: true
+
+ wordwrap@1.0.0:
+ resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, tarball: https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz}
+
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, tarball: https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz}
+ engines: {node: '>=10'}
+
+ wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, tarball: https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz}
+
+ ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==, tarball: https://registry.npmjs.org/ws/-/ws-7.5.10.tgz}
+ engines: {node: '>=8.3.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+
+ y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, tarball: https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz}
+ engines: {node: '>=10'}
+
+ yaml-ast-parser@0.0.43:
+ resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==, tarball: https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz}
+
+ yaml@1.10.2:
+ resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, tarball: https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz}
+ engines: {node: '>= 6'}
+
+ yargs-parser@20.2.9:
+ resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, tarball: https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz}
+ engines: {node: '>=10'}
+
+ yargs@17.0.1:
+ resolution: {integrity: sha512-xBBulfCc8Y6gLFcrPvtqKz9hz8SO0l1Ni8GgDekvBX2ro0HRQImDGnikfc33cgzcYUSncapnNcZDjVFIH3f6KQ==, tarball: https://registry.npmjs.org/yargs/-/yargs-17.0.1.tgz}
+ engines: {node: '>=12'}
+
+snapshots:
+
+ '@babel/runtime@7.26.0':
+ dependencies:
+ regenerator-runtime: 0.14.1
+
+ '@cfaester/enzyme-adapter-react-18@0.8.0(enzyme@3.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+ dependencies:
+ enzyme: 3.11.0
+ enzyme-shallow-equal: 1.0.7
+ function.prototype.name: 1.1.8
+ has: 1.0.4
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-is: 18.3.1
+ react-shallow-renderer: 16.15.0(react@18.3.1)
+
+ '@edge-runtime/primitives@6.0.0': {}
+
+ '@edge-runtime/vm@5.0.0':
+ dependencies:
+ '@edge-runtime/primitives': 6.0.0
+
+ '@effect-ak/tg-bot-client@file:../tg-bot-client/effect-ak-tg-bot-client-0.2.2.tgz':
+ dependencies:
+ effect: 3.11.9
+
+ '@emotion/is-prop-valid@1.2.2':
+ dependencies:
+ '@emotion/memoize': 0.8.1
+
+ '@emotion/memoize@0.8.1': {}
+
+ '@emotion/unitless@0.8.1': {}
+
+ '@esbuild/aix-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/android-arm@0.21.5':
+ optional: true
+
+ '@esbuild/android-x64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/darwin-x64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-arm@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/linux-loong64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.21.5':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.21.5':
+ optional: true
+
+ '@esbuild/linux-s390x@0.21.5':
+ optional: true
+
+ '@esbuild/linux-x64@0.21.5':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.21.5':
+ optional: true
+
+ '@esbuild/sunos-x64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-arm64@0.21.5':
+ optional: true
+
+ '@esbuild/win32-ia32@0.21.5':
+ optional: true
+
+ '@esbuild/win32-x64@0.21.5':
+ optional: true
+
+ '@exodus/schemasafe@1.3.0': {}
+
+ '@jridgewell/sourcemap-codec@1.5.0': {}
+
+ '@monaco-editor/loader@1.4.0(monaco-editor@0.52.2)':
+ dependencies:
+ monaco-editor: 0.52.2
+ state-local: 1.0.7
+
+ '@redocly/ajv@8.11.2':
+ dependencies:
+ fast-deep-equal: 3.1.3
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+ uri-js-replace: 1.0.1
+
+ '@redocly/cli@1.26.1(enzyme@3.11.0)':
+ dependencies:
+ '@redocly/openapi-core': 1.26.1
+ abort-controller: 3.0.0
+ chokidar: 3.6.0
+ colorette: 1.4.0
+ core-js: 3.39.0
+ form-data: 4.0.1
+ get-port-please: 3.1.2
+ glob: 7.2.3
+ handlebars: 4.7.8
+ mobx: 6.13.5
+ node-fetch: 2.7.0
+ pluralize: 8.0.0
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ redoc: 2.2.0(core-js@3.39.0)(enzyme@3.11.0)(mobx@6.13.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1))
+ semver: 7.6.3
+ simple-websocket: 9.1.0
+ styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ yargs: 17.0.1
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - enzyme
+ - react-native
+ - supports-color
+ - utf-8-validate
+
+ '@redocly/config@0.17.1': {}
+
+ '@redocly/openapi-core@1.26.1':
+ dependencies:
+ '@redocly/ajv': 8.11.2
+ '@redocly/config': 0.17.1
+ colorette: 1.4.0
+ https-proxy-agent: 7.0.6
+ js-levenshtein: 1.1.6
+ js-yaml: 4.1.0
+ minimatch: 5.1.6
+ node-fetch: 2.7.0
+ pluralize: 8.0.0
+ yaml-ast-parser: 0.0.43
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+
+ '@rollup/rollup-android-arm-eabi@4.29.1':
+ optional: true
+
+ '@rollup/rollup-android-arm64@4.29.1':
+ optional: true
+
+ '@rollup/rollup-darwin-arm64@4.29.1':
+ optional: true
+
+ '@rollup/rollup-darwin-x64@4.29.1':
+ optional: true
+
+ '@rollup/rollup-freebsd-arm64@4.29.1':
+ optional: true
+
+ '@rollup/rollup-freebsd-x64@4.29.1':
+ optional: true
+
+ '@rollup/rollup-linux-arm-gnueabihf@4.29.1':
+ optional: true
+
+ '@rollup/rollup-linux-arm-musleabihf@4.29.1':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-gnu@4.29.1':
+ optional: true
+
+ '@rollup/rollup-linux-arm64-musl@4.29.1':
+ optional: true
+
+ '@rollup/rollup-linux-loongarch64-gnu@4.29.1':
+ optional: true
+
+ '@rollup/rollup-linux-powerpc64le-gnu@4.29.1':
+ optional: true
+
+ '@rollup/rollup-linux-riscv64-gnu@4.29.1':
+ optional: true
+
+ '@rollup/rollup-linux-s390x-gnu@4.29.1':
+ optional: true
+
+ '@rollup/rollup-linux-x64-gnu@4.29.1':
+ optional: true
+
+ '@rollup/rollup-linux-x64-musl@4.29.1':
+ optional: true
+
+ '@rollup/rollup-win32-arm64-msvc@4.29.1':
+ optional: true
+
+ '@rollup/rollup-win32-ia32-msvc@4.29.1':
+ optional: true
+
+ '@rollup/rollup-win32-x64-msvc@4.29.1':
+ optional: true
+
+ '@types/alpinejs@3.13.11': {}
+
+ '@types/estree@1.0.6': {}
+
+ '@types/json-schema@7.0.15': {}
+
+ '@types/node@22.10.2':
+ dependencies:
+ undici-types: 6.20.0
+
+ '@types/stylis@4.2.5': {}
+
+ '@types/trusted-types@2.0.7':
+ optional: true
+
+ '@vitest/expect@2.1.8':
+ dependencies:
+ '@vitest/spy': 2.1.8
+ '@vitest/utils': 2.1.8
+ chai: 5.1.2
+ tinyrainbow: 1.2.0
+
+ '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.2)(lightningcss@1.28.2))':
+ dependencies:
+ '@vitest/spy': 2.1.8
+ estree-walker: 3.0.3
+ magic-string: 0.30.17
+ optionalDependencies:
+ vite: 5.4.11(@types/node@22.10.2)(lightningcss@1.28.2)
+
+ '@vitest/pretty-format@2.1.8':
+ dependencies:
+ tinyrainbow: 1.2.0
+
+ '@vitest/runner@2.1.8':
+ dependencies:
+ '@vitest/utils': 2.1.8
+ pathe: 1.1.2
+
+ '@vitest/snapshot@2.1.8':
+ dependencies:
+ '@vitest/pretty-format': 2.1.8
+ magic-string: 0.30.17
+ pathe: 1.1.2
+
+ '@vitest/spy@2.1.8':
+ dependencies:
+ tinyspy: 3.0.2
+
+ '@vitest/utils@2.1.8':
+ dependencies:
+ '@vitest/pretty-format': 2.1.8
+ loupe: 3.1.2
+ tinyrainbow: 1.2.0
+
+ abort-controller@3.0.0:
+ dependencies:
+ event-target-shim: 5.0.1
+
+ agent-base@7.1.3: {}
+
+ ansi-regex@5.0.1: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
+ anymatch@3.1.3:
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+
+ argparse@2.0.1: {}
+
+ array-buffer-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.3
+ is-array-buffer: 3.0.5
+
+ array.prototype.filter@1.0.4:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-array-method-boxes-properly: 1.0.0
+ es-object-atoms: 1.0.0
+ is-string: 1.1.1
+
+ array.prototype.flat@1.3.3:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-shim-unscopables: 1.0.2
+
+ arraybuffer.prototype.slice@1.0.4:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.6
+ is-array-buffer: 3.0.5
+
+ assertion-error@2.0.1: {}
+
+ asynckit@0.4.0: {}
+
+ available-typed-arrays@1.0.7:
+ dependencies:
+ possible-typed-array-names: 1.0.0
+
+ balanced-match@1.0.2: {}
+
+ binary-extensions@2.3.0: {}
+
+ boolbase@1.0.0: {}
+
+ brace-expansion@1.1.11:
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ brace-expansion@2.0.1:
+ dependencies:
+ balanced-match: 1.0.2
+
+ braces@3.0.3:
+ dependencies:
+ fill-range: 7.1.1
+
+ cac@6.7.14: {}
+
+ call-bind-apply-helpers@1.0.1:
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+
+ call-bind@1.0.8:
+ dependencies:
+ call-bind-apply-helpers: 1.0.1
+ es-define-property: 1.0.1
+ get-intrinsic: 1.2.6
+ set-function-length: 1.2.2
+
+ call-bound@1.0.3:
+ dependencies:
+ call-bind-apply-helpers: 1.0.1
+ get-intrinsic: 1.2.6
+
+ call-me-maybe@1.0.2: {}
+
+ camelize@1.0.1: {}
+
+ chai@5.1.2:
+ dependencies:
+ assertion-error: 2.0.1
+ check-error: 2.1.1
+ deep-eql: 5.0.2
+ loupe: 3.1.2
+ pathval: 2.0.0
+
+ check-error@2.1.1: {}
+
+ cheerio-select@2.1.0:
+ dependencies:
+ boolbase: 1.0.0
+ css-select: 5.1.0
+ css-what: 6.1.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+
+ cheerio@1.0.0:
+ dependencies:
+ cheerio-select: 2.1.0
+ dom-serializer: 2.0.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ encoding-sniffer: 0.2.0
+ htmlparser2: 9.1.0
+ parse5: 7.2.1
+ parse5-htmlparser2-tree-adapter: 7.1.0
+ parse5-parser-stream: 7.1.2
+ undici: 6.21.0
+ whatwg-mimetype: 4.0.0
+
+ chokidar@3.6.0:
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.3
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ classnames@2.5.1: {}
+
+ cliui@7.0.4:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
+ clsx@2.1.1: {}
+
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
+ colorette@1.4.0: {}
+
+ combined-stream@1.0.8:
+ dependencies:
+ delayed-stream: 1.0.0
+
+ commander@2.20.3: {}
+
+ concat-map@0.0.1: {}
+
+ core-js@3.39.0: {}
+
+ css-color-keywords@1.0.0: {}
+
+ css-select@5.1.0:
+ dependencies:
+ boolbase: 1.0.0
+ css-what: 6.1.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ nth-check: 2.1.1
+
+ css-to-react-native@3.2.0:
+ dependencies:
+ camelize: 1.0.1
+ css-color-keywords: 1.0.0
+ postcss-value-parser: 4.2.0
+
+ css-what@6.1.0: {}
+
+ csstype@3.1.3: {}
+
+ data-view-buffer@1.0.2:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-length@1.0.2:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ data-view-byte-offset@1.0.1:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ is-data-view: 1.0.2
+
+ debug@4.4.0:
+ dependencies:
+ ms: 2.1.3
+
+ decko@1.2.0: {}
+
+ deep-eql@5.0.2: {}
+
+ define-data-property@1.1.4:
+ dependencies:
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ define-properties@1.2.1:
+ dependencies:
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
+ object-keys: 1.1.1
+
+ delayed-stream@1.0.0: {}
+
+ detect-libc@1.0.3:
+ optional: true
+
+ discontinuous-range@1.0.0: {}
+
+ dom-serializer@2.0.0:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ entities: 4.5.0
+
+ domelementtype@2.3.0: {}
+
+ domhandler@5.0.3:
+ dependencies:
+ domelementtype: 2.3.0
+
+ dompurify@3.2.3:
+ optionalDependencies:
+ '@types/trusted-types': 2.0.7
+
+ domutils@3.1.0:
+ dependencies:
+ dom-serializer: 2.0.0
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+
+ dunder-proto@1.0.1:
+ dependencies:
+ call-bind-apply-helpers: 1.0.1
+ es-errors: 1.3.0
+ gopd: 1.2.0
+
+ effect@3.11.9:
+ dependencies:
+ fast-check: 3.23.2
+
+ emoji-regex@8.0.0: {}
+
+ encoding-sniffer@0.2.0:
+ dependencies:
+ iconv-lite: 0.6.3
+ whatwg-encoding: 3.1.1
+
+ entities@4.5.0: {}
+
+ enzyme-shallow-equal@1.0.7:
+ dependencies:
+ hasown: 2.0.2
+ object-is: 1.1.6
+
+ enzyme@3.11.0:
+ dependencies:
+ array.prototype.flat: 1.3.3
+ cheerio: 1.0.0
+ enzyme-shallow-equal: 1.0.7
+ function.prototype.name: 1.1.8
+ has: 1.0.4
+ html-element-map: 1.3.1
+ is-boolean-object: 1.2.1
+ is-callable: 1.2.7
+ is-number-object: 1.1.1
+ is-regex: 1.2.1
+ is-string: 1.1.1
+ is-subset: 0.1.1
+ lodash.escape: 4.0.1
+ lodash.isequal: 4.5.0
+ object-inspect: 1.13.3
+ object-is: 1.1.6
+ object.assign: 4.1.7
+ object.entries: 1.1.8
+ object.values: 1.2.1
+ raf: 3.4.1
+ rst-selector-parser: 2.2.3
+ string.prototype.trim: 1.2.10
+
+ es-abstract@1.23.7:
+ dependencies:
+ array-buffer-byte-length: 1.0.2
+ arraybuffer.prototype.slice: 1.0.4
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ data-view-buffer: 1.0.2
+ data-view-byte-length: 1.0.2
+ data-view-byte-offset: 1.0.1
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.0.0
+ es-set-tostringtag: 2.0.3
+ es-to-primitive: 1.3.0
+ function.prototype.name: 1.1.8
+ get-intrinsic: 1.2.6
+ get-symbol-description: 1.1.0
+ globalthis: 1.0.4
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+ has-proto: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ internal-slot: 1.1.0
+ is-array-buffer: 3.0.5
+ is-callable: 1.2.7
+ is-data-view: 1.0.2
+ is-regex: 1.2.1
+ is-shared-array-buffer: 1.0.4
+ is-string: 1.1.1
+ is-typed-array: 1.1.15
+ is-weakref: 1.1.0
+ math-intrinsics: 1.1.0
+ object-inspect: 1.13.3
+ object-keys: 1.1.1
+ object.assign: 4.1.7
+ regexp.prototype.flags: 1.5.3
+ safe-array-concat: 1.1.3
+ safe-regex-test: 1.1.0
+ string.prototype.trim: 1.2.10
+ string.prototype.trimend: 1.0.9
+ string.prototype.trimstart: 1.0.8
+ typed-array-buffer: 1.0.3
+ typed-array-byte-length: 1.0.3
+ typed-array-byte-offset: 1.0.4
+ typed-array-length: 1.0.7
+ unbox-primitive: 1.1.0
+ which-typed-array: 1.1.18
+
+ es-array-method-boxes-properly@1.0.0: {}
+
+ es-define-property@1.0.1: {}
+
+ es-errors@1.3.0: {}
+
+ es-module-lexer@1.5.4: {}
+
+ es-object-atoms@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+
+ es-set-tostringtag@2.0.3:
+ dependencies:
+ get-intrinsic: 1.2.6
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ es-shim-unscopables@1.0.2:
+ dependencies:
+ hasown: 2.0.2
+
+ es-to-primitive@1.3.0:
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.1.0
+ is-symbol: 1.1.1
+
+ es6-promise@3.3.1: {}
+
+ esbuild@0.21.5:
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.21.5
+ '@esbuild/android-arm': 0.21.5
+ '@esbuild/android-arm64': 0.21.5
+ '@esbuild/android-x64': 0.21.5
+ '@esbuild/darwin-arm64': 0.21.5
+ '@esbuild/darwin-x64': 0.21.5
+ '@esbuild/freebsd-arm64': 0.21.5
+ '@esbuild/freebsd-x64': 0.21.5
+ '@esbuild/linux-arm': 0.21.5
+ '@esbuild/linux-arm64': 0.21.5
+ '@esbuild/linux-ia32': 0.21.5
+ '@esbuild/linux-loong64': 0.21.5
+ '@esbuild/linux-mips64el': 0.21.5
+ '@esbuild/linux-ppc64': 0.21.5
+ '@esbuild/linux-riscv64': 0.21.5
+ '@esbuild/linux-s390x': 0.21.5
+ '@esbuild/linux-x64': 0.21.5
+ '@esbuild/netbsd-x64': 0.21.5
+ '@esbuild/openbsd-x64': 0.21.5
+ '@esbuild/sunos-x64': 0.21.5
+ '@esbuild/win32-arm64': 0.21.5
+ '@esbuild/win32-ia32': 0.21.5
+ '@esbuild/win32-x64': 0.21.5
+
+ escalade@3.2.0: {}
+
+ estree-walker@3.0.3:
+ dependencies:
+ '@types/estree': 1.0.6
+
+ event-target-shim@5.0.1: {}
+
+ eventemitter3@5.0.1: {}
+
+ expect-type@1.1.0: {}
+
+ fast-check@3.23.2:
+ dependencies:
+ pure-rand: 6.1.0
+
+ fast-deep-equal@3.1.3: {}
+
+ fast-safe-stringify@2.1.1: {}
+
+ fast-xml-parser@4.5.1:
+ dependencies:
+ strnum: 1.0.5
+
+ fill-range@7.1.1:
+ dependencies:
+ to-regex-range: 5.0.1
+
+ for-each@0.3.3:
+ dependencies:
+ is-callable: 1.2.7
+
+ foreach@2.0.6: {}
+
+ form-data@4.0.1:
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+
+ fs.realpath@1.0.0: {}
+
+ fsevents@2.3.3:
+ optional: true
+
+ function-bind@1.1.2: {}
+
+ function.prototype.name@1.1.8:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ define-properties: 1.2.1
+ functions-have-names: 1.2.3
+ hasown: 2.0.2
+ is-callable: 1.2.7
+
+ functions-have-names@1.2.3: {}
+
+ get-caller-file@2.0.5: {}
+
+ get-intrinsic@1.2.6:
+ dependencies:
+ call-bind-apply-helpers: 1.0.1
+ dunder-proto: 1.0.1
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.0.0
+ function-bind: 1.1.2
+ gopd: 1.2.0
+ has-symbols: 1.1.0
+ hasown: 2.0.2
+ math-intrinsics: 1.1.0
+
+ get-port-please@3.1.2: {}
+
+ get-symbol-description@1.1.0:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.6
+
+ glob-parent@5.1.2:
+ dependencies:
+ is-glob: 4.0.3
+
+ glob@7.2.3:
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ globalthis@1.0.4:
+ dependencies:
+ define-properties: 1.2.1
+ gopd: 1.2.0
+
+ globrex@0.1.2: {}
+
+ gopd@1.2.0: {}
+
+ handlebars@4.7.8:
+ dependencies:
+ minimist: 1.2.8
+ neo-async: 2.6.2
+ source-map: 0.6.1
+ wordwrap: 1.0.0
+ optionalDependencies:
+ uglify-js: 3.19.3
+
+ has-bigints@1.1.0: {}
+
+ has-property-descriptors@1.0.2:
+ dependencies:
+ es-define-property: 1.0.1
+
+ has-proto@1.2.0:
+ dependencies:
+ dunder-proto: 1.0.1
+
+ has-symbols@1.1.0: {}
+
+ has-tostringtag@1.0.2:
+ dependencies:
+ has-symbols: 1.1.0
+
+ has@1.0.4: {}
+
+ hasown@2.0.2:
+ dependencies:
+ function-bind: 1.1.2
+
+ html-element-map@1.3.1:
+ dependencies:
+ array.prototype.filter: 1.0.4
+ call-bind: 1.0.8
+
+ htmlparser2@9.1.0:
+ dependencies:
+ domelementtype: 2.3.0
+ domhandler: 5.0.3
+ domutils: 3.1.0
+ entities: 4.5.0
+
+ http2-client@1.3.5: {}
+
+ https-proxy-agent@7.0.6:
+ dependencies:
+ agent-base: 7.1.3
+ debug: 4.4.0
+ transitivePeerDependencies:
+ - supports-color
+
+ iconv-lite@0.6.3:
+ dependencies:
+ safer-buffer: 2.1.2
+
+ inflight@1.0.6:
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ inherits@2.0.4: {}
+
+ internal-slot@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ hasown: 2.0.2
+ side-channel: 1.1.0
+
+ is-array-buffer@3.0.5:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ get-intrinsic: 1.2.6
+
+ is-async-function@2.0.0:
+ dependencies:
+ has-tostringtag: 1.0.2
+
+ is-bigint@1.1.0:
+ dependencies:
+ has-bigints: 1.1.0
+
+ is-binary-path@2.1.0:
+ dependencies:
+ binary-extensions: 2.3.0
+
+ is-boolean-object@1.2.1:
+ dependencies:
+ call-bound: 1.0.3
+ has-tostringtag: 1.0.2
+
+ is-callable@1.2.7: {}
+
+ is-data-view@1.0.2:
+ dependencies:
+ call-bound: 1.0.3
+ get-intrinsic: 1.2.6
+ is-typed-array: 1.1.15
+
+ is-date-object@1.1.0:
+ dependencies:
+ call-bound: 1.0.3
+ has-tostringtag: 1.0.2
+
+ is-extglob@2.1.1: {}
+
+ is-finalizationregistry@1.1.1:
+ dependencies:
+ call-bound: 1.0.3
+
+ is-fullwidth-code-point@3.0.0: {}
+
+ is-generator-function@1.0.10:
+ dependencies:
+ has-tostringtag: 1.0.2
+
+ is-glob@4.0.3:
+ dependencies:
+ is-extglob: 2.1.1
+
+ is-map@2.0.3: {}
+
+ is-number-object@1.1.1:
+ dependencies:
+ call-bound: 1.0.3
+ has-tostringtag: 1.0.2
+
+ is-number@7.0.0: {}
+
+ is-regex@1.2.1:
+ dependencies:
+ call-bound: 1.0.3
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+
+ is-set@2.0.3: {}
+
+ is-shared-array-buffer@1.0.4:
+ dependencies:
+ call-bound: 1.0.3
+
+ is-string@1.1.1:
+ dependencies:
+ call-bound: 1.0.3
+ has-tostringtag: 1.0.2
+
+ is-subset@0.1.1: {}
+
+ is-symbol@1.1.1:
+ dependencies:
+ call-bound: 1.0.3
+ has-symbols: 1.1.0
+ safe-regex-test: 1.1.0
+
+ is-typed-array@1.1.15:
+ dependencies:
+ which-typed-array: 1.1.18
+
+ is-weakmap@2.0.2: {}
+
+ is-weakref@1.1.0:
+ dependencies:
+ call-bound: 1.0.3
+
+ is-weakset@2.0.4:
+ dependencies:
+ call-bound: 1.0.3
+ get-intrinsic: 1.2.6
+
+ isarray@2.0.5: {}
+
+ js-levenshtein@1.1.6: {}
+
+ js-tokens@4.0.0: {}
+
+ js-yaml@4.1.0:
+ dependencies:
+ argparse: 2.0.1
+
+ json-pointer@0.6.2:
+ dependencies:
+ foreach: 2.0.6
+
+ json-schema-traverse@1.0.0: {}
+
+ lightningcss-darwin-arm64@1.28.2:
+ optional: true
+
+ lightningcss-darwin-x64@1.28.2:
+ optional: true
+
+ lightningcss-freebsd-x64@1.28.2:
+ optional: true
+
+ lightningcss-linux-arm-gnueabihf@1.28.2:
+ optional: true
+
+ lightningcss-linux-arm64-gnu@1.28.2:
+ optional: true
+
+ lightningcss-linux-arm64-musl@1.28.2:
+ optional: true
+
+ lightningcss-linux-x64-gnu@1.28.2:
+ optional: true
+
+ lightningcss-linux-x64-musl@1.28.2:
+ optional: true
+
+ lightningcss-win32-arm64-msvc@1.28.2:
+ optional: true
+
+ lightningcss-win32-x64-msvc@1.28.2:
+ optional: true
+
+ lightningcss@1.28.2:
+ dependencies:
+ detect-libc: 1.0.3
+ optionalDependencies:
+ lightningcss-darwin-arm64: 1.28.2
+ lightningcss-darwin-x64: 1.28.2
+ lightningcss-freebsd-x64: 1.28.2
+ lightningcss-linux-arm-gnueabihf: 1.28.2
+ lightningcss-linux-arm64-gnu: 1.28.2
+ lightningcss-linux-arm64-musl: 1.28.2
+ lightningcss-linux-x64-gnu: 1.28.2
+ lightningcss-linux-x64-musl: 1.28.2
+ lightningcss-win32-arm64-msvc: 1.28.2
+ lightningcss-win32-x64-msvc: 1.28.2
+ optional: true
+
+ lodash.escape@4.0.1: {}
+
+ lodash.flattendeep@4.4.0: {}
+
+ lodash.isequal@4.5.0: {}
+
+ loose-envify@1.4.0:
+ dependencies:
+ js-tokens: 4.0.0
+
+ loupe@3.1.2: {}
+
+ lunr@2.3.9: {}
+
+ magic-string@0.30.17:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.0
+
+ mark.js@8.11.1: {}
+
+ marked@4.3.0: {}
+
+ math-intrinsics@1.1.0: {}
+
+ mime-db@1.52.0: {}
+
+ mime-types@2.1.35:
+ dependencies:
+ mime-db: 1.52.0
+
+ minimatch@3.1.2:
+ dependencies:
+ brace-expansion: 1.1.11
+
+ minimatch@5.1.6:
+ dependencies:
+ brace-expansion: 2.0.1
+
+ minimist@1.2.8: {}
+
+ mobx-react-lite@4.1.0(mobx@6.13.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ mobx: 6.13.5
+ react: 18.3.1
+ use-sync-external-store: 1.4.0(react@18.3.1)
+ optionalDependencies:
+ react-dom: 18.3.1(react@18.3.1)
+
+ mobx-react@9.2.0(mobx@6.13.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ mobx: 6.13.5
+ mobx-react-lite: 4.1.0(mobx@6.13.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ react: 18.3.1
+ optionalDependencies:
+ react-dom: 18.3.1(react@18.3.1)
+
+ mobx@6.13.5: {}
+
+ monaco-editor@0.52.2: {}
+
+ moo@0.5.2: {}
+
+ ms@2.1.3: {}
+
+ nanoid@3.3.8: {}
+
+ nearley@2.20.1:
+ dependencies:
+ commander: 2.20.3
+ moo: 0.5.2
+ railroad-diagrams: 1.0.0
+ randexp: 0.4.6
+
+ neo-async@2.6.2: {}
+
+ node-fetch-h2@2.3.0:
+ dependencies:
+ http2-client: 1.3.5
+
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+
+ node-readfiles@0.2.0:
+ dependencies:
+ es6-promise: 3.3.1
+
+ normalize-path@3.0.0: {}
+
+ nth-check@2.1.1:
+ dependencies:
+ boolbase: 1.0.0
+
+ oas-kit-common@1.0.8:
+ dependencies:
+ fast-safe-stringify: 2.1.1
+
+ oas-linter@3.2.2:
+ dependencies:
+ '@exodus/schemasafe': 1.3.0
+ should: 13.2.3
+ yaml: 1.10.2
+
+ oas-resolver@2.5.6:
+ dependencies:
+ node-fetch-h2: 2.3.0
+ oas-kit-common: 1.0.8
+ reftools: 1.1.9
+ yaml: 1.10.2
+ yargs: 17.0.1
+
+ oas-schema-walker@1.1.5: {}
+
+ oas-validator@5.0.8:
+ dependencies:
+ call-me-maybe: 1.0.2
+ oas-kit-common: 1.0.8
+ oas-linter: 3.2.2
+ oas-resolver: 2.5.6
+ oas-schema-walker: 1.1.5
+ reftools: 1.1.9
+ should: 13.2.3
+ yaml: 1.10.2
+
+ object-assign@4.1.1: {}
+
+ object-inspect@1.13.3: {}
+
+ object-is@1.1.6:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+
+ object-keys@1.1.1: {}
+
+ object.assign@4.1.7:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+ has-symbols: 1.1.0
+ object-keys: 1.1.1
+
+ object.entries@1.1.8:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ object.values@1.2.1:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ once@1.4.0:
+ dependencies:
+ wrappy: 1.0.2
+
+ openapi-sampler@1.6.1:
+ dependencies:
+ '@types/json-schema': 7.0.15
+ fast-xml-parser: 4.5.1
+ json-pointer: 0.6.2
+
+ parse5-htmlparser2-tree-adapter@7.1.0:
+ dependencies:
+ domhandler: 5.0.3
+ parse5: 7.2.1
+
+ parse5-parser-stream@7.1.2:
+ dependencies:
+ parse5: 7.2.1
+
+ parse5@7.2.1:
+ dependencies:
+ entities: 4.5.0
+
+ path-browserify@1.0.1: {}
+
+ path-is-absolute@1.0.1: {}
+
+ pathe@1.1.2: {}
+
+ pathval@2.0.0: {}
+
+ perfect-scrollbar@1.5.6: {}
+
+ performance-now@2.1.0: {}
+
+ picocolors@1.1.1: {}
+
+ picomatch@2.3.1: {}
+
+ pluralize@8.0.0: {}
+
+ polished@4.3.1:
+ dependencies:
+ '@babel/runtime': 7.26.0
+
+ possible-typed-array-names@1.0.0: {}
+
+ postcss-value-parser@4.2.0: {}
+
+ postcss@8.4.38:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ postcss@8.4.49:
+ dependencies:
+ nanoid: 3.3.8
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
+ prismjs@1.29.0: {}
+
+ prop-types@15.8.1:
+ dependencies:
+ loose-envify: 1.4.0
+ object-assign: 4.1.1
+ react-is: 16.13.1
+
+ pure-rand@6.1.0: {}
+
+ queue-microtask@1.2.3: {}
+
+ raf@3.4.1:
+ dependencies:
+ performance-now: 2.1.0
+
+ railroad-diagrams@1.0.0: {}
+
+ randexp@0.4.6:
+ dependencies:
+ discontinuous-range: 1.0.0
+ ret: 0.1.15
+
+ randombytes@2.1.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ react-dom@18.3.1(react@18.3.1):
+ dependencies:
+ loose-envify: 1.4.0
+ react: 18.3.1
+ scheduler: 0.23.2
+
+ react-is@16.13.1: {}
+
+ react-is@18.3.1: {}
+
+ react-shallow-renderer@16.15.0(react@18.3.1):
+ dependencies:
+ object-assign: 4.1.1
+ react: 18.3.1
+ react-is: 18.3.1
+
+ react-tabs@6.1.0(react@18.3.1):
+ dependencies:
+ clsx: 2.1.1
+ prop-types: 15.8.1
+ react: 18.3.1
+
+ react@18.3.1:
+ dependencies:
+ loose-envify: 1.4.0
+
+ readable-stream@3.6.2:
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+
+ readdirp@3.6.0:
+ dependencies:
+ picomatch: 2.3.1
+
+ redoc@2.2.0(core-js@3.39.0)(enzyme@3.11.0)(mobx@6.13.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)):
+ dependencies:
+ '@cfaester/enzyme-adapter-react-18': 0.8.0(enzyme@3.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ '@redocly/openapi-core': 1.26.1
+ classnames: 2.5.1
+ core-js: 3.39.0
+ decko: 1.2.0
+ dompurify: 3.2.3
+ eventemitter3: 5.0.1
+ json-pointer: 0.6.2
+ lunr: 2.3.9
+ mark.js: 8.11.1
+ marked: 4.3.0
+ mobx: 6.13.5
+ mobx-react: 9.2.0(mobx@6.13.5)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ openapi-sampler: 1.6.1
+ path-browserify: 1.0.1
+ perfect-scrollbar: 1.5.6
+ polished: 4.3.1
+ prismjs: 1.29.0
+ prop-types: 15.8.1
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ react-tabs: 6.1.0(react@18.3.1)
+ slugify: 1.4.7
+ stickyfill: 1.1.1
+ styled-components: 6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+ swagger2openapi: 7.0.8
+ url-template: 2.0.8
+ transitivePeerDependencies:
+ - encoding
+ - enzyme
+ - react-native
+ - supports-color
+
+ reflect.getprototypeof@1.0.9:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ dunder-proto: 1.0.1
+ es-abstract: 1.23.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.6
+ gopd: 1.2.0
+ which-builtin-type: 1.2.1
+
+ reftools@1.1.9: {}
+
+ regenerator-runtime@0.14.1: {}
+
+ regexp.prototype.flags@1.5.3:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-errors: 1.3.0
+ set-function-name: 2.0.2
+
+ require-directory@2.1.1: {}
+
+ require-from-string@2.0.2: {}
+
+ ret@0.1.15: {}
+
+ rollup@4.29.1:
+ dependencies:
+ '@types/estree': 1.0.6
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.29.1
+ '@rollup/rollup-android-arm64': 4.29.1
+ '@rollup/rollup-darwin-arm64': 4.29.1
+ '@rollup/rollup-darwin-x64': 4.29.1
+ '@rollup/rollup-freebsd-arm64': 4.29.1
+ '@rollup/rollup-freebsd-x64': 4.29.1
+ '@rollup/rollup-linux-arm-gnueabihf': 4.29.1
+ '@rollup/rollup-linux-arm-musleabihf': 4.29.1
+ '@rollup/rollup-linux-arm64-gnu': 4.29.1
+ '@rollup/rollup-linux-arm64-musl': 4.29.1
+ '@rollup/rollup-linux-loongarch64-gnu': 4.29.1
+ '@rollup/rollup-linux-powerpc64le-gnu': 4.29.1
+ '@rollup/rollup-linux-riscv64-gnu': 4.29.1
+ '@rollup/rollup-linux-s390x-gnu': 4.29.1
+ '@rollup/rollup-linux-x64-gnu': 4.29.1
+ '@rollup/rollup-linux-x64-musl': 4.29.1
+ '@rollup/rollup-win32-arm64-msvc': 4.29.1
+ '@rollup/rollup-win32-ia32-msvc': 4.29.1
+ '@rollup/rollup-win32-x64-msvc': 4.29.1
+ fsevents: 2.3.3
+
+ rst-selector-parser@2.2.3:
+ dependencies:
+ lodash.flattendeep: 4.4.0
+ nearley: 2.20.1
+
+ safe-array-concat@1.1.3:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ get-intrinsic: 1.2.6
+ has-symbols: 1.1.0
+ isarray: 2.0.5
+
+ safe-buffer@5.2.1: {}
+
+ safe-regex-test@1.1.0:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ is-regex: 1.2.1
+
+ safer-buffer@2.1.2: {}
+
+ scheduler@0.23.2:
+ dependencies:
+ loose-envify: 1.4.0
+
+ semver@7.6.3: {}
+
+ set-function-length@1.2.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.6
+ gopd: 1.2.0
+ has-property-descriptors: 1.0.2
+
+ set-function-name@2.0.2:
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.2
+
+ shallowequal@1.1.0: {}
+
+ should-equal@2.0.0:
+ dependencies:
+ should-type: 1.4.0
+
+ should-format@3.0.3:
+ dependencies:
+ should-type: 1.4.0
+ should-type-adaptors: 1.1.0
+
+ should-type-adaptors@1.1.0:
+ dependencies:
+ should-type: 1.4.0
+ should-util: 1.0.1
+
+ should-type@1.4.0: {}
+
+ should-util@1.0.1: {}
+
+ should@13.2.3:
+ dependencies:
+ should-equal: 2.0.0
+ should-format: 3.0.3
+ should-type: 1.4.0
+ should-type-adaptors: 1.1.0
+ should-util: 1.0.1
+
+ side-channel-list@1.0.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.3
+
+ side-channel-map@1.0.1:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.6
+ object-inspect: 1.13.3
+
+ side-channel-weakmap@1.0.2:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.6
+ object-inspect: 1.13.3
+ side-channel-map: 1.0.1
+
+ side-channel@1.1.0:
+ dependencies:
+ es-errors: 1.3.0
+ object-inspect: 1.13.3
+ side-channel-list: 1.0.0
+ side-channel-map: 1.0.1
+ side-channel-weakmap: 1.0.2
+
+ siginfo@2.0.0: {}
+
+ simple-websocket@9.1.0:
+ dependencies:
+ debug: 4.4.0
+ queue-microtask: 1.2.3
+ randombytes: 2.1.0
+ readable-stream: 3.6.2
+ ws: 7.5.10
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+
+ slugify@1.4.7: {}
+
+ source-map-js@1.2.1: {}
+
+ source-map@0.6.1: {}
+
+ stackback@0.0.2: {}
+
+ state-local@1.0.7: {}
+
+ std-env@3.8.0: {}
+
+ stickyfill@1.1.1: {}
+
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
+ string.prototype.trim@1.2.10:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ define-data-property: 1.1.4
+ define-properties: 1.2.1
+ es-abstract: 1.23.7
+ es-object-atoms: 1.0.0
+ has-property-descriptors: 1.0.2
+
+ string.prototype.trimend@1.0.9:
+ dependencies:
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ string.prototype.trimstart@1.0.8:
+ dependencies:
+ call-bind: 1.0.8
+ define-properties: 1.2.1
+ es-object-atoms: 1.0.0
+
+ string_decoder@1.3.0:
+ dependencies:
+ safe-buffer: 5.2.1
+
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
+ strnum@1.0.5: {}
+
+ styled-components@6.1.13(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
+ dependencies:
+ '@emotion/is-prop-valid': 1.2.2
+ '@emotion/unitless': 0.8.1
+ '@types/stylis': 4.2.5
+ css-to-react-native: 3.2.0
+ csstype: 3.1.3
+ postcss: 8.4.38
+ react: 18.3.1
+ react-dom: 18.3.1(react@18.3.1)
+ shallowequal: 1.1.0
+ stylis: 4.3.2
+ tslib: 2.6.2
+
+ stylis@4.3.2: {}
+
+ swagger2openapi@7.0.8:
+ dependencies:
+ call-me-maybe: 1.0.2
+ node-fetch: 2.7.0
+ node-fetch-h2: 2.3.0
+ node-readfiles: 0.2.0
+ oas-kit-common: 1.0.8
+ oas-resolver: 2.5.6
+ oas-schema-walker: 1.1.5
+ oas-validator: 5.0.8
+ reftools: 1.1.9
+ yaml: 1.10.2
+ yargs: 17.0.1
+ transitivePeerDependencies:
+ - encoding
+
+ tinybench@2.9.0: {}
+
+ tinyexec@0.3.1: {}
+
+ tinypool@1.0.2: {}
+
+ tinyrainbow@1.2.0: {}
+
+ tinyspy@3.0.2: {}
+
+ to-regex-range@5.0.1:
+ dependencies:
+ is-number: 7.0.0
+
+ tr46@0.0.3: {}
+
+ tsconfck@3.1.4(typescript@5.7.2):
+ optionalDependencies:
+ typescript: 5.7.2
+
+ tslib@2.6.2: {}
+
+ typed-array-buffer@1.0.3:
+ dependencies:
+ call-bound: 1.0.3
+ es-errors: 1.3.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-length@1.0.3:
+ dependencies:
+ call-bind: 1.0.8
+ for-each: 0.3.3
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+
+ typed-array-byte-offset@1.0.4:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ for-each: 0.3.3
+ gopd: 1.2.0
+ has-proto: 1.2.0
+ is-typed-array: 1.1.15
+ reflect.getprototypeof: 1.0.9
+
+ typed-array-length@1.0.7:
+ dependencies:
+ call-bind: 1.0.8
+ for-each: 0.3.3
+ gopd: 1.2.0
+ is-typed-array: 1.1.15
+ possible-typed-array-names: 1.0.0
+ reflect.getprototypeof: 1.0.9
+
+ typescript@5.7.2: {}
+
+ uglify-js@3.19.3:
+ optional: true
+
+ unbox-primitive@1.1.0:
+ dependencies:
+ call-bound: 1.0.3
+ has-bigints: 1.1.0
+ has-symbols: 1.1.0
+ which-boxed-primitive: 1.1.1
+
+ undici-types@6.20.0: {}
+
+ undici@6.21.0: {}
+
+ uri-js-replace@1.0.1: {}
+
+ url-template@2.0.8: {}
+
+ use-sync-external-store@1.4.0(react@18.3.1):
+ dependencies:
+ react: 18.3.1
+
+ util-deprecate@1.0.2: {}
+
+ vite-node@2.1.8(@types/node@22.10.2)(lightningcss@1.28.2):
+ dependencies:
+ cac: 6.7.14
+ debug: 4.4.0
+ es-module-lexer: 1.5.4
+ pathe: 1.1.2
+ vite: 5.4.11(@types/node@22.10.2)(lightningcss@1.28.2)
+ transitivePeerDependencies:
+ - '@types/node'
+ - less
+ - lightningcss
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+
+ vite-tsconfig-paths@5.1.4(typescript@5.7.2)(vite@5.4.11(@types/node@22.10.2)(lightningcss@1.28.2)):
+ dependencies:
+ debug: 4.4.0
+ globrex: 0.1.2
+ tsconfck: 3.1.4(typescript@5.7.2)
+ optionalDependencies:
+ vite: 5.4.11(@types/node@22.10.2)(lightningcss@1.28.2)
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+
+ vite@5.4.11(@types/node@22.10.2)(lightningcss@1.28.2):
+ dependencies:
+ esbuild: 0.21.5
+ postcss: 8.4.49
+ rollup: 4.29.1
+ optionalDependencies:
+ '@types/node': 22.10.2
+ fsevents: 2.3.3
+ lightningcss: 1.28.2
+
+ vitest@2.1.8(@edge-runtime/vm@5.0.0)(@types/node@22.10.2)(lightningcss@1.28.2):
+ dependencies:
+ '@vitest/expect': 2.1.8
+ '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.2)(lightningcss@1.28.2))
+ '@vitest/pretty-format': 2.1.8
+ '@vitest/runner': 2.1.8
+ '@vitest/snapshot': 2.1.8
+ '@vitest/spy': 2.1.8
+ '@vitest/utils': 2.1.8
+ chai: 5.1.2
+ debug: 4.4.0
+ expect-type: 1.1.0
+ magic-string: 0.30.17
+ pathe: 1.1.2
+ std-env: 3.8.0
+ tinybench: 2.9.0
+ tinyexec: 0.3.1
+ tinypool: 1.0.2
+ tinyrainbow: 1.2.0
+ vite: 5.4.11(@types/node@22.10.2)(lightningcss@1.28.2)
+ vite-node: 2.1.8(@types/node@22.10.2)(lightningcss@1.28.2)
+ why-is-node-running: 2.3.0
+ optionalDependencies:
+ '@edge-runtime/vm': 5.0.0
+ '@types/node': 22.10.2
+ transitivePeerDependencies:
+ - less
+ - lightningcss
+ - msw
+ - sass
+ - sass-embedded
+ - stylus
+ - sugarss
+ - supports-color
+ - terser
+
+ webidl-conversions@3.0.1: {}
+
+ whatwg-encoding@3.1.1:
+ dependencies:
+ iconv-lite: 0.6.3
+
+ whatwg-mimetype@4.0.0: {}
+
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
+ which-boxed-primitive@1.1.1:
+ dependencies:
+ is-bigint: 1.1.0
+ is-boolean-object: 1.2.1
+ is-number-object: 1.1.1
+ is-string: 1.1.1
+ is-symbol: 1.1.1
+
+ which-builtin-type@1.2.1:
+ dependencies:
+ call-bound: 1.0.3
+ function.prototype.name: 1.1.8
+ has-tostringtag: 1.0.2
+ is-async-function: 2.0.0
+ is-date-object: 1.1.0
+ is-finalizationregistry: 1.1.1
+ is-generator-function: 1.0.10
+ is-regex: 1.2.1
+ is-weakref: 1.1.0
+ isarray: 2.0.5
+ which-boxed-primitive: 1.1.1
+ which-collection: 1.0.2
+ which-typed-array: 1.1.18
+
+ which-collection@1.0.2:
+ dependencies:
+ is-map: 2.0.3
+ is-set: 2.0.3
+ is-weakmap: 2.0.2
+ is-weakset: 2.0.4
+
+ which-typed-array@1.1.18:
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.8
+ call-bound: 1.0.3
+ for-each: 0.3.3
+ gopd: 1.2.0
+ has-tostringtag: 1.0.2
+
+ why-is-node-running@2.3.0:
+ dependencies:
+ siginfo: 2.0.0
+ stackback: 0.0.2
+
+ wordwrap@1.0.0: {}
+
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
+ wrappy@1.0.2: {}
+
+ ws@7.5.10: {}
+
+ y18n@5.0.8: {}
+
+ yaml-ast-parser@0.0.43: {}
+
+ yaml@1.10.2: {}
+
+ yargs-parser@20.2.9: {}
+
+ yargs@17.0.1:
+ dependencies:
+ cliui: 7.0.4
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 20.2.9
diff --git a/scripts/prep-page.js b/scripts/prep-page.js
new file mode 100644
index 0000000..cf0d923
--- /dev/null
+++ b/scripts/prep-page.js
@@ -0,0 +1,44 @@
+import { existsSync } from "fs";
+import { readFile, writeFile } from "fs/promises"
+import * as Path from "path"
+
+const files = [
+ "styles.css",
+ "scripts/init.js",
+ "scripts/main.js",
+ "scripts/web-worker.js",
+];
+
+const indexPagePath = "./docs/telegram-bot-playground/index.html";
+
+let html = await readFile(indexPagePath, "utf-8");
+
+for (const relativePath of files) {
+
+ const absolutePath = Path.join("./docs/telegram-bot-playground", relativePath);
+
+ if (!existsSync(absolutePath)) {
+ console.warn(`File '${absolutePath}' does not exist`)
+ continue;
+ }
+
+ const content = await readFile(absolutePath, "utf-8");
+ const hash = getShortHash(content);
+
+ const filename = Path.basename(relativePath).replace(".", "\\.");
+
+ const regex = new RegExp(`(${filename}\\?v=)\\w*`, "g");
+ html = html.replace(regex, `$1${hash}`);
+
+}
+
+await writeFile(indexPagePath, html, "utf-8");
+
+function getShortHash(str) {
+ let hash = 0;
+ for (let i = 0; i < str.length; i++) {
+ hash = (hash << 5) - hash + str.charCodeAt(i);
+ hash |= 0;
+ }
+ return Math.abs(hash).toString(36);
+}
diff --git a/src/globals.d.ts b/src/globals.d.ts
new file mode 100644
index 0000000..8fb92b4
--- /dev/null
+++ b/src/globals.d.ts
@@ -0,0 +1,13 @@
+interface Window {
+ monaco: typeof import("monaco-editor")
+ monaco_loader: typeof import("@monaco-editor/loader").default
+ playground: {
+ worker?: Worker
+ tsModel?: import("monaco-editor").editor.ITextModel
+ start?: typeof import("./tg-bot-playground/main.js").startPlayground
+ editor?: import("monaco-editor").editor.IStandaloneCodeEditor
+ loadExample?: (name: string) => void
+ runBot?: (_: BotState) => void
+ checkToken?: (_: BotState) => void
+ }
+}
diff --git a/src/tg-bot-playground/init.ts b/src/tg-bot-playground/init.ts
new file mode 100644
index 0000000..af17d5d
--- /dev/null
+++ b/src/tg-bot-playground/init.ts
@@ -0,0 +1,8 @@
+const worker = new Worker('./scripts/web-worker.js', { type: "module" });
+
+worker.addEventListener("message", msg => {
+ console.log("From worker", msg.data);
+});
+
+window.playground = {};
+window.playground.worker = worker;
diff --git a/src/tg-bot-playground/main.ts b/src/tg-bot-playground/main.ts
new file mode 100644
index 0000000..aaf9607
--- /dev/null
+++ b/src/tg-bot-playground/main.ts
@@ -0,0 +1,97 @@
+import type { BotState } from "./types.js";
+import { fetchText, getJsCode, setupDts } from "./utils.js";
+
+window.playground.start = () => {
+
+ const container = document.getElementById('container');
+
+ if (!container) {
+ return console.error("container not found");
+ }
+
+ window.monaco_loader.config({
+ paths: {
+ vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@latest/min/vs'
+ }
+ });
+
+ Promise.all([
+ window.monaco_loader.init(),
+ fetchText("./example/empty.ts")
+ ]).then(([monaco, emptyExample]) => {
+
+ window.playground.tsModel =
+ monaco.editor.createModel(emptyExample, 'typescript');
+
+ setupDts(monaco);
+
+ window.playground.editor =
+ monaco.editor.create(container, {
+ model: window.playground.tsModel,
+ contextmenu: false,
+ minimap: {
+ enabled: false
+ }
+ });
+
+ }).catch(error => console.warn("init error", error));
+
+}
+
+window.playground.loadExample =
+ (name) => {
+ if (!name) return;
+ fetchText(`./example/${name}`)
+ .then(_ => window.playground.editor?.setValue(_))
+ .catch(error => {
+ console.error("Cannot load example", error)
+ })
+ }
+
+window.playground.runBot =
+ (state: BotState) => {
+
+ const token = state.token;
+
+ if (!token) return;
+
+ getJsCode().then(code => {
+
+ if (!code) {
+ console.warn("Js Code not defined");
+ return;
+ }
+
+ window.playground.worker?.postMessage({
+ command: 'run-bot',
+ token,
+ code
+ });
+
+ state.status = "active"
+ }).catch(error => {
+ console.warn("cannot run bot", error)
+ })
+
+ }
+
+window.playground.checkToken =
+ (state: BotState) => {
+
+ const token = state.token;
+
+ if (!token) return;
+
+ fetch(`https://api.telegram.org/bot${token}/getMe`)
+ .then(_ => _.json())
+ .then(info => {
+ if (info.ok) {
+ state.name = info.result.first_name;
+ } else {
+ state.name = "nameless";
+ }
+ }).catch(error => {
+ console.warn("check token error", error)
+ });
+
+ }
diff --git a/src/tg-bot-playground/types.ts b/src/tg-bot-playground/types.ts
new file mode 100644
index 0000000..6b97672
--- /dev/null
+++ b/src/tg-bot-playground/types.ts
@@ -0,0 +1,5 @@
+export type BotState = {
+ status: string
+ token: string
+ name: string
+}
diff --git a/src/tg-bot-playground/utils.ts b/src/tg-bot-playground/utils.ts
new file mode 100644
index 0000000..2f3e973
--- /dev/null
+++ b/src/tg-bot-playground/utils.ts
@@ -0,0 +1,103 @@
+export async function getDefaultExport(code: string) {
+ try {
+ const encodedCode = encodeURIComponent(code);
+ const module = await import(`data:text/javascript,${encodedCode}`);
+ const result = module.default;
+ return { default: result as D };
+ } catch (e) {
+ console.warn("get default error", e);
+ return undefined;
+ }
+
+}
+
+export const getJsCode = async () => {
+
+ const tsModelUri = window.playground.tsModel?.uri;
+
+ if (!tsModelUri) {
+ console.warn("tsModel uri not defined")
+ return;
+ }
+
+ const worker = await window.monaco.languages.typescript.getTypeScriptWorker();
+
+ const modelWorker = await worker(tsModelUri);
+
+ const output = await modelWorker.getEmitOutput(tsModelUri.toString());
+ const code = output.outputFiles[0].text;
+ const result = await getDefaultExport(code);
+
+ return serialize(result?.default);
+
+}
+
+export const fetchText = (path: string) =>
+ fetch(path).then(_ => _.text())
+
+export const setupDts = async (
+ monaco: import("@monaco-editor/loader").Monaco
+) => {
+
+ const dts = await fetchText("declarations.d.ts");
+
+ monaco.languages.typescript.typescriptDefaults.setExtraLibs([
+ {
+ content: dts,
+ filePath: "node_modules/@effect-ak/tg-bot-client/index.d.ts",
+ }
+ ]);
+
+ monaco.languages.typescript.typescriptDefaults.setCompilerOptions({
+ ...monaco.languages.typescript.typescriptDefaults.getCompilerOptions(),
+ moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs,
+ typeRoots: [
+ "node_modules"
+ ],
+ strict: true
+ });
+
+}
+
+export const serialize = (input: unknown) => {
+ if (typeof input != "object" || !input) {
+ return undefined;
+ }
+ const result = [] as [string, string][];
+
+ for (const [key, value] of Object.entries(input)) {
+ if (typeof value != "function") {
+ continue;
+ }
+ result.push([ key, value.toString() ])
+ }
+
+ return JSON.stringify(Object.fromEntries(result));
+}
+
+const parseJson = (input: string) => {
+ try {
+ return { parsed: JSON.parse(input) }
+ } catch { return undefined }
+}
+
+export const deserialize = (input: string) => {
+
+ const result = [] as [string, unknown][];
+
+ const fields = parseJson(input);
+
+ if (typeof fields?.parsed != "object") return undefined;
+
+ for (const [k, v] of Object.entries(fields.parsed)) {
+ try {
+ const f = new Function(`return ${v}`)();
+ result.push([k, f]);
+ } catch (e) {
+ console.warn("deserialize field error", { k, v, e });
+ }
+
+ }
+
+ return Object.fromEntries(result);
+}
\ No newline at end of file
diff --git a/src/tg-bot-playground/web-worker.ts b/src/tg-bot-playground/web-worker.ts
new file mode 100644
index 0000000..c44e653
--- /dev/null
+++ b/src/tg-bot-playground/web-worker.ts
@@ -0,0 +1,76 @@
+import { runTgChatBot } from "@effect-ak/tg-bot-client"
+
+import { deserialize } from "./utils.js"
+import type { BotState } from "./types.js"
+
+console.log("loading worker")
+
+type RunBot = {
+ command: "run-bot"
+ token: string
+ code: string
+}
+
+let logId = 1;
+
+const notifyParent = (input: object) => {
+ self.postMessage({
+ id: logId++,
+ ...input
+ });
+}
+
+self.onmessage = async (msg: MessageEvent) => {
+
+ const command = msg.data as RunBot;
+
+ if (typeof command != "object" || !command.command) {
+ notifyParent({
+ error: "object command expected"
+ });
+ return;
+ }
+
+ if (command.command == "run-bot") {
+
+ const handlers = deserialize(command.code);
+ const fiber =
+ await runTgChatBot({
+ type: "config",
+ "bot-token": command.token,
+ ...handlers
+ });
+
+ if (fiber._tag == "Failure") {
+ notifyParent({
+ error: "Cannot create bot's fiber",
+ cause: fiber.cause
+ });
+ return;
+ }
+
+ notifyParent({
+ success: "Bot's fiber has been created",
+ botState: {
+ status: "active"
+ } as BotState
+ });
+
+ fiber.value.addObserver(exit => {
+ notifyParent({
+ success: "Bot's fiber has been shutdown",
+ exit,
+ botState: {
+ status: "stopped"
+ } as BotState
+ })
+ });
+
+ return;
+ }
+
+ notifyParent({
+ error: "Unknown command"
+ })
+
+}
diff --git a/test/utils.test.ts b/test/utils.test.ts
new file mode 100644
index 0000000..50a39c0
--- /dev/null
+++ b/test/utils.test.ts
@@ -0,0 +1,41 @@
+// @vitest-environment edge-runtime
+
+import { describe, expect, it } from "vitest";
+
+import { serialize, deserialize, getDefaultExport } from "#tg-bot-playground/utils.js"
+import assert from "assert";
+
+describe("utils", () => {
+
+ it("serialize and deserialize", () => {
+
+ const obj = {
+ a: (arg: number) => { return arg }
+ };
+
+ const ser = serialize(obj);
+
+ assert(ser);
+
+ const actual = deserialize(ser) as typeof obj;
+ expect(actual.a(123)).toEqual(123)
+
+ });
+
+ it("get default", async () => {
+
+ const obj = `
+ const a = 3 + 7;
+
+ export default {
+ b: a
+ }
+ `;
+
+ const actual = await getDefaultExport(obj);
+
+ expect(actual?.default.b).toEqual(10)
+
+ })
+
+})
\ No newline at end of file
diff --git a/test/worker.test.ts b/test/worker.test.ts
new file mode 100644
index 0000000..8946b65
--- /dev/null
+++ b/test/worker.test.ts
@@ -0,0 +1,32 @@
+import { describe, expect, it } from "vitest";
+import * as Path from "path";
+import { Worker } from "worker_threads";
+import assert from "assert";
+import { existsSync } from "fs";
+
+describe("web worker", () => {
+
+ it("create", async () => {
+
+ const path =
+ Path.join(__dirname, "..", "docs", "telegram-bot-playground", "scripts", "web-workers.js");
+
+ // assert(existsSync(path))
+
+ const w = new Worker(path);
+
+ w.postMessage("hey");
+
+ w.on("message", (msg) => {
+ console.log("got a message", msg)
+ });
+
+ const a = 1;
+
+ expect(w).toBeDefined();
+
+ await new Promise(resolve => setTimeout(() => resolve(1), 2000))
+
+ })
+
+})
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..fbe41d5
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,20 @@
+{
+ "compilerOptions": {
+ "isolatedModules": true,
+ "strict": true,
+ "exactOptionalPropertyTypes": true,
+ "target": "ES2022",
+ "module": "NodeNext",
+ "lib": ["ESNext", "DOM", "WebWorker"],
+ "moduleResolution": "NodeNext",
+ "moduleDetection": "force",
+ "skipLibCheck": true,
+ "noFallthroughCasesInSwitch": true,
+ "resolveJsonModule": true,
+ "noEmit": true,
+ "baseUrl": ".",
+ "paths": {
+ "#tg-bot-playground/*": ["./src/tg-bot-playground/*"],
+ }
+ }
+}
diff --git a/tsup.config.json b/tsup.config.json
new file mode 100644
index 0000000..e436bd8
--- /dev/null
+++ b/tsup.config.json
@@ -0,0 +1,17 @@
+{
+ "$schema": "https://cdn.jsdelivr.net/npm/tsup/schema.json",
+ "entry": [
+ "src/tg-bot-playground/web-worker.ts",
+ "src/tg-bot-playground/main.ts",
+ "src/tg-bot-playground/init.ts"
+ ],
+ "splitting": false,
+ "outDir": "docs/telegram-bot-playground/scripts",
+ "format": [ "esm" ],
+ "platform": "browser",
+ "external": ["fs/promises", "alpinejs"],
+ "noExternal": [
+ "@effect-ak",
+ "effect"
+ ]
+}
diff --git a/vitest.config.ts b/vitest.config.ts
new file mode 100644
index 0000000..ab24a24
--- /dev/null
+++ b/vitest.config.ts
@@ -0,0 +1,11 @@
+import { defineConfig } from 'vitest/config'
+import tsconfigPaths from "vite-tsconfig-paths"
+
+export default defineConfig({
+ plugins: [
+ tsconfigPaths()
+ ],
+ test: {
+ testTimeout: 30000
+ }
+});