mirror of
https://github.com/Significant-Gravitas/AutoGPT.git
synced 2026-04-08 03:00:28 -04:00
add support for oneOf and optional oneOf
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
from datetime import datetime
|
||||
from typing import cast
|
||||
from typing import List, Literal, Optional, Union, cast
|
||||
from pydantic import BaseModel
|
||||
|
||||
import tweepy
|
||||
from tweepy.client import Response
|
||||
@@ -36,6 +37,27 @@ from backend.blocks.twitter.tweepy_exceptions import handle_tweepy_exception
|
||||
from backend.data.block import Block, BlockCategory, BlockOutput, BlockSchema
|
||||
from backend.data.model import SchemaField
|
||||
|
||||
class Media(BaseModel):
|
||||
discriminator: Literal['media']
|
||||
media_ids: Optional[List[str]] = None
|
||||
media_tagged_user_ids: Optional[List[str]] = None
|
||||
|
||||
class DeepLink(BaseModel):
|
||||
discriminator: Literal['deep_link']
|
||||
direct_message_deep_link: Optional[str] = None
|
||||
|
||||
class Poll(BaseModel):
|
||||
discriminator: Literal['poll']
|
||||
poll_options: Optional[List[str]] = None
|
||||
poll_duration_minutes: Optional[int] = None
|
||||
|
||||
class Place(BaseModel):
|
||||
discriminator: Literal['place']
|
||||
place_id: Optional[str] = None
|
||||
|
||||
class Quote(BaseModel):
|
||||
discriminator: Literal['quote']
|
||||
quote_tweet_id: Optional[str] = None
|
||||
|
||||
class TwitterPostTweetBlock(Block):
|
||||
"""
|
||||
@@ -48,71 +70,33 @@ class TwitterPostTweetBlock(Block):
|
||||
)
|
||||
|
||||
tweet_text: str = SchemaField(
|
||||
description="Text of the tweet to post [It's Optional if you want to add media, quote, or deep link]",
|
||||
description="Text of the tweet to post",
|
||||
placeholder="Enter your tweet",
|
||||
advanced=False,
|
||||
default="",
|
||||
)
|
||||
|
||||
media_ids: list = SchemaField(
|
||||
description="List of media IDs to attach to the tweet, [ex - 1455952740635586573]",
|
||||
placeholder="Enter media IDs",
|
||||
default=[],
|
||||
)
|
||||
|
||||
media_tagged_user_ids: list = SchemaField(
|
||||
description="List of user IDs to tag in media, [ex - 1455952740635586573]",
|
||||
placeholder="Enter media tagged user IDs",
|
||||
default=[],
|
||||
)
|
||||
|
||||
direct_message_deep_link: str = SchemaField(
|
||||
description="Link directly to a Direct Message conversation with an account [ex - https://twitter.com/messages/compose?recipient_id={your_id}]",
|
||||
placeholder="Enter direct message deep link",
|
||||
default="",
|
||||
)
|
||||
|
||||
poll_options: list = SchemaField(
|
||||
description="List of poll options",
|
||||
placeholder="Enter poll options",
|
||||
default=[],
|
||||
)
|
||||
|
||||
poll_duration_minutes: int = SchemaField(
|
||||
description="Duration of the poll in minutes",
|
||||
placeholder="Enter poll duration in minutes",
|
||||
default=0,
|
||||
)
|
||||
|
||||
for_super_followers_only: bool = SchemaField(
|
||||
description="Tweet exclusively for Super Followers",
|
||||
placeholder="Enter for super followers only",
|
||||
advanced=True,
|
||||
default=False,
|
||||
)
|
||||
|
||||
place_id: str = SchemaField(
|
||||
description="Adds optional location information to a tweet if geo settings are enabled in your profile.",
|
||||
placeholder="Enter place ID",
|
||||
default="",
|
||||
)
|
||||
|
||||
quote_tweet_id: str = SchemaField(
|
||||
description="Link to the Tweet being quoted, [ex- 1455953449422516226]",
|
||||
attachment: Union[Media, DeepLink, Poll, Place, Quote] | None = SchemaField(
|
||||
discriminator='discriminator',
|
||||
description="Additional tweet data (media, deep link, poll, place or quote)",
|
||||
advanced=True,
|
||||
placeholder="Enter quote tweet ID",
|
||||
default="",
|
||||
)
|
||||
|
||||
exclude_reply_user_ids: list = SchemaField(
|
||||
description="User IDs to exclude from reply Tweet thread. [ex - 6253282] ",
|
||||
exclude_reply_user_ids: Optional[List[str]] = SchemaField(
|
||||
description="User IDs to exclude from reply Tweet thread. [ex - 6253282]",
|
||||
placeholder="Enter user IDs to exclude",
|
||||
advanced=True,
|
||||
default=[],
|
||||
default=None,
|
||||
)
|
||||
|
||||
in_reply_to_tweet_id: str = SchemaField(
|
||||
in_reply_to_tweet_id: Optional[str] = SchemaField(
|
||||
description="Tweet ID being replied to. Please note that in_reply_to_tweet_id needs to be in the request if exclude_reply_user_ids is present",
|
||||
default="",
|
||||
default=None,
|
||||
placeholder="Enter in reply to tweet ID",
|
||||
advanced=True,
|
||||
)
|
||||
@@ -141,12 +125,11 @@ class TwitterPostTweetBlock(Block):
|
||||
test_input={
|
||||
"tweet_text": "This is a test tweet.",
|
||||
"credentials": TEST_CREDENTIALS_INPUT,
|
||||
"direct_message_deep_link": "",
|
||||
"attachment": {
|
||||
"discriminator": "deep_link",
|
||||
"direct_message_deep_link": "https://twitter.com/messages/compose"
|
||||
},
|
||||
"for_super_followers_only": False,
|
||||
"place_id": "",
|
||||
"media_ids": [],
|
||||
"media_tagged_user_ids": [],
|
||||
"quote_tweet_id": "",
|
||||
"exclude_reply_user_ids": [],
|
||||
"in_reply_to_tweet_id": "",
|
||||
},
|
||||
@@ -163,20 +146,14 @@ class TwitterPostTweetBlock(Block):
|
||||
},
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def post_tweet(
|
||||
self,
|
||||
credentials: TwitterCredentials,
|
||||
input_txt: str,
|
||||
media_ids: list,
|
||||
media_tagged_user_ids: list,
|
||||
direct_message_deep_link: str,
|
||||
attachment: Union[Media, DeepLink, Poll, Place, Quote],
|
||||
for_super_followers_only: bool,
|
||||
place_id: str,
|
||||
poll_options: list,
|
||||
poll_duration_minutes: int,
|
||||
quote_tweet_id: str,
|
||||
exclude_reply_user_ids: list,
|
||||
in_reply_to_tweet_id: str,
|
||||
exclude_reply_user_ids: Optional[List[str]],
|
||||
in_reply_to_tweet_id: Optional[str],
|
||||
reply_settings: TweetReplySettingsFilter,
|
||||
):
|
||||
try:
|
||||
@@ -187,20 +164,27 @@ class TwitterPostTweetBlock(Block):
|
||||
params = (
|
||||
TweetPostBuilder()
|
||||
.add_text(input_txt)
|
||||
.add_media(media_ids, media_tagged_user_ids)
|
||||
.add_deep_link(direct_message_deep_link)
|
||||
.add_super_followers(for_super_followers_only)
|
||||
.add_poll_options(poll_options)
|
||||
.add_poll_duration(poll_duration_minutes)
|
||||
.add_place(place_id)
|
||||
.add_quote(quote_tweet_id)
|
||||
.add_reply_settings(
|
||||
exclude_reply_user_ids, in_reply_to_tweet_id, reply_settings
|
||||
exclude_reply_user_ids or [],
|
||||
in_reply_to_tweet_id or "",
|
||||
reply_settings
|
||||
)
|
||||
.build()
|
||||
)
|
||||
|
||||
tweet = cast(Response, client.create_tweet(**params))
|
||||
if isinstance(attachment, Media):
|
||||
params.add_media(attachment.media_ids or [], attachment.media_tagged_user_ids or [])
|
||||
elif isinstance(attachment, DeepLink):
|
||||
params.add_deep_link(attachment.direct_message_deep_link or "")
|
||||
elif isinstance(attachment, Poll):
|
||||
params.add_poll_options(attachment.poll_options or [])
|
||||
params.add_poll_duration(attachment.poll_duration_minutes or 0)
|
||||
elif isinstance(attachment, Place):
|
||||
params.add_place(attachment.place_id or "")
|
||||
elif isinstance(attachment, Quote):
|
||||
params.add_quote(attachment.quote_tweet_id or "")
|
||||
|
||||
tweet = cast(Response, client.create_tweet(**params.build()))
|
||||
|
||||
if not tweet.data:
|
||||
raise Exception("Failed to create tweet")
|
||||
@@ -225,14 +209,8 @@ class TwitterPostTweetBlock(Block):
|
||||
tweet_id, tweet_url = self.post_tweet(
|
||||
credentials,
|
||||
input_data.tweet_text,
|
||||
input_data.media_ids,
|
||||
input_data.media_tagged_user_ids,
|
||||
input_data.direct_message_deep_link,
|
||||
input_data.attachment,
|
||||
input_data.for_super_followers_only,
|
||||
input_data.place_id,
|
||||
input_data.poll_options,
|
||||
input_data.poll_duration_minutes,
|
||||
input_data.quote_tweet_id,
|
||||
input_data.exclude_reply_user_ids,
|
||||
input_data.in_reply_to_tweet_id,
|
||||
input_data.reply_settings,
|
||||
|
||||
4
autogpt_platform/backend/poetry.lock
generated
4
autogpt_platform/backend/poetry.lock
generated
@@ -1,4 +1,4 @@
|
||||
# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand.
|
||||
# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand.
|
||||
|
||||
[[package]]
|
||||
name = "aio-pika"
|
||||
@@ -4189,4 +4189,4 @@ type = ["pytest-mypy"]
|
||||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = ">=3.10,<3.13"
|
||||
content-hash = "9325d134cf2c4390c520b9c5e8bae290a0fa05e0c782aa6b1f079d31d9a5c8f5"
|
||||
content-hash = "edbddc68b7bfc01b2eb5a8d17933ea22277acc1d7ed8169781dc0f2f70313d7d"
|
||||
|
||||
@@ -252,7 +252,13 @@ export function CustomNode({
|
||||
!isHidden &&
|
||||
(isRequired || isAdvancedOpen || isConnected || !isAdvanced) && (
|
||||
<div key={propKey} data-id={`input-handle-${propKey}`}>
|
||||
{isConnectable ? (
|
||||
{isConnectable &&
|
||||
!(
|
||||
"oneOf" in propSchema &&
|
||||
propSchema.oneOf &&
|
||||
"discriminator" in propSchema &&
|
||||
propSchema.discriminator
|
||||
) ? (
|
||||
<NodeHandle
|
||||
keyName={propKey}
|
||||
isConnected={isConnected}
|
||||
|
||||
@@ -227,6 +227,8 @@ export const NodeGenericInputField: FC<{
|
||||
);
|
||||
}
|
||||
|
||||
console.log("propSchema", propSchema);
|
||||
|
||||
if ("properties" in propSchema) {
|
||||
// Render a multi-select for all-boolean sub-schemas with more than 3 properties
|
||||
if (
|
||||
@@ -292,6 +294,29 @@ export const NodeGenericInputField: FC<{
|
||||
}
|
||||
|
||||
if ("anyOf" in propSchema) {
|
||||
// Optional oneOf
|
||||
if (
|
||||
"oneOf" in propSchema.anyOf[0] &&
|
||||
propSchema.anyOf[0].oneOf &&
|
||||
"discriminator" in propSchema.anyOf[0] &&
|
||||
propSchema.anyOf[0].discriminator
|
||||
) {
|
||||
return (
|
||||
<NodeOneOfDiscriminatorField
|
||||
nodeId={nodeId}
|
||||
propKey={propKey}
|
||||
propSchema={propSchema.anyOf[0]}
|
||||
currentValue={currentValue}
|
||||
errors={errors}
|
||||
connections={connections}
|
||||
handleInputChange={handleInputChange}
|
||||
handleInputClick={handleInputClick}
|
||||
className={className}
|
||||
displayName={displayName}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
// optional items
|
||||
const types = propSchema.anyOf.map((s) =>
|
||||
"type" in s ? s.type : undefined,
|
||||
@@ -579,7 +604,7 @@ const NodeOneOfDiscriminatorField: FC<{
|
||||
propSchema: any;
|
||||
currentValue?: any;
|
||||
errors: { [key: string]: string | undefined };
|
||||
connections: any;
|
||||
connections: ConnectionData;
|
||||
handleInputChange: (key: string, value: any) => void;
|
||||
handleInputClick: (key: string) => void;
|
||||
className?: string;
|
||||
@@ -594,7 +619,6 @@ const NodeOneOfDiscriminatorField: FC<{
|
||||
handleInputChange,
|
||||
handleInputClick,
|
||||
className,
|
||||
displayName,
|
||||
}) => {
|
||||
const discriminator = propSchema.discriminator;
|
||||
|
||||
@@ -610,7 +634,7 @@ const NodeOneOfDiscriminatorField: FC<{
|
||||
|
||||
return {
|
||||
value: variantDiscValue,
|
||||
schema: variant,
|
||||
schema: variant as BlockIOSubSchema,
|
||||
};
|
||||
})
|
||||
.filter((v: any) => v.value != null);
|
||||
@@ -641,8 +665,23 @@ const NodeOneOfDiscriminatorField: FC<{
|
||||
(opt: any) => opt.value === chosenType,
|
||||
)?.schema;
|
||||
|
||||
function getEntryKey(key: string): string {
|
||||
return `${propKey}_#_${key}`;
|
||||
}
|
||||
|
||||
function isConnected(key: string): boolean {
|
||||
return connections.some(
|
||||
(c) => c.targetHandle === getEntryKey(key) && c.target === nodeId,
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={cn("flex flex-col space-y-2", className)}>
|
||||
<div
|
||||
className={cn(
|
||||
"flex min-w-[400px] max-w-[95%] flex-col space-y-4",
|
||||
className,
|
||||
)}
|
||||
>
|
||||
<Select value={chosenType || ""} onValueChange={handleVariantChange}>
|
||||
<SelectTrigger className="w-full">
|
||||
<SelectValue placeholder="Select a type..." />
|
||||
@@ -667,28 +706,32 @@ const NodeOneOfDiscriminatorField: FC<{
|
||||
return (
|
||||
<div
|
||||
key={childKey}
|
||||
className="flex w-full flex-row justify-between space-y-2"
|
||||
className="mb-4 flex w-full flex-col justify-between space-y-2"
|
||||
>
|
||||
<span className="mr-2 mt-3 dark:text-gray-300">
|
||||
{(childSchema as BlockIOSubSchema).title ||
|
||||
beautifyString(someKey)}
|
||||
</span>
|
||||
<NodeGenericInputField
|
||||
nodeId={nodeId}
|
||||
key={propKey}
|
||||
propKey={childKey}
|
||||
propSchema={childSchema as BlockIOSubSchema}
|
||||
currentValue={
|
||||
currentValue ? currentValue[someKey] : undefined
|
||||
}
|
||||
errors={errors}
|
||||
connections={connections}
|
||||
handleInputChange={handleInputChange}
|
||||
handleInputClick={handleInputClick}
|
||||
displayName={
|
||||
chosenVariantSchema.title || beautifyString(someKey)
|
||||
}
|
||||
<NodeHandle
|
||||
keyName={getEntryKey(childKey)}
|
||||
schema={childSchema as BlockIOSubSchema}
|
||||
isConnected={isConnected(getEntryKey(childKey))}
|
||||
isRequired={false}
|
||||
side="left"
|
||||
/>
|
||||
|
||||
{!isConnected(childKey) && (
|
||||
<NodeGenericInputField
|
||||
nodeId={nodeId}
|
||||
key={propKey}
|
||||
propKey={childKey}
|
||||
propSchema={childSchema as BlockIOSubSchema}
|
||||
currentValue={
|
||||
currentValue ? currentValue[someKey] : undefined
|
||||
}
|
||||
errors={errors}
|
||||
connections={connections}
|
||||
handleInputChange={handleInputChange}
|
||||
handleInputClick={handleInputClick}
|
||||
displayName={beautifyString(someKey)}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
|
||||
@@ -3798,9 +3798,9 @@
|
||||
integrity sha512-JkXTOdKs5MF086b/pt8C3+yVp3iDUwG635L7oCH6HvJvvr6lSUU5oe/gLXnPEfYRROHjJIPgCV6cuAg8gGkntQ==
|
||||
|
||||
"@types/node@*", "@types/node@^22.0.0", "@types/node@^22.9.0":
|
||||
version "22.10.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.2.tgz#a485426e6d1fdafc7b0d4c7b24e2c78182ddabb9"
|
||||
integrity sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==
|
||||
version "22.10.3"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.3.tgz#cdc2a89bf6e5d5e593fad08e83f74d7348d5dd10"
|
||||
integrity sha512-DifAyw4BkrufCILvD3ucnuN8eydUfc/C1GlyrnI+LK6543w5/L3VeVgf05o3B4fqSXP1dKYLOZsKfutpxPzZrw==
|
||||
dependencies:
|
||||
undici-types "~6.20.0"
|
||||
|
||||
@@ -3950,61 +3950,61 @@
|
||||
"@types/yargs-parser" "*"
|
||||
|
||||
"@typescript-eslint/eslint-plugin@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
|
||||
version "8.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.2.tgz#c78e363ab5fe3b21dd1c90d8be9581534417f78e"
|
||||
integrity sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==
|
||||
version "8.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.0.tgz#2b1e1b791e21d5fc27ddc93884db066444f597b5"
|
||||
integrity sha512-NggSaEZCdSrFddbctrVjkVZvFC6KGfKfNK0CU7mNK/iKHGKbzT4Wmgm08dKpcZECBu9f5FypndoMyRHkdqfT1Q==
|
||||
dependencies:
|
||||
"@eslint-community/regexpp" "^4.10.0"
|
||||
"@typescript-eslint/scope-manager" "8.18.2"
|
||||
"@typescript-eslint/type-utils" "8.18.2"
|
||||
"@typescript-eslint/utils" "8.18.2"
|
||||
"@typescript-eslint/visitor-keys" "8.18.2"
|
||||
"@typescript-eslint/scope-manager" "8.19.0"
|
||||
"@typescript-eslint/type-utils" "8.19.0"
|
||||
"@typescript-eslint/utils" "8.19.0"
|
||||
"@typescript-eslint/visitor-keys" "8.19.0"
|
||||
graphemer "^1.4.0"
|
||||
ignore "^5.3.1"
|
||||
natural-compare "^1.4.0"
|
||||
ts-api-utils "^1.3.0"
|
||||
|
||||
"@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0":
|
||||
version "8.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.18.2.tgz#0379a2e881d51d8fcf7ebdfa0dd18eee79182ce2"
|
||||
integrity sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==
|
||||
version "8.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.19.0.tgz#f1512e6e5c491b03aabb2718b95becde22b15292"
|
||||
integrity sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "8.18.2"
|
||||
"@typescript-eslint/types" "8.18.2"
|
||||
"@typescript-eslint/typescript-estree" "8.18.2"
|
||||
"@typescript-eslint/visitor-keys" "8.18.2"
|
||||
"@typescript-eslint/scope-manager" "8.19.0"
|
||||
"@typescript-eslint/types" "8.19.0"
|
||||
"@typescript-eslint/typescript-estree" "8.19.0"
|
||||
"@typescript-eslint/visitor-keys" "8.19.0"
|
||||
debug "^4.3.4"
|
||||
|
||||
"@typescript-eslint/scope-manager@8.18.2":
|
||||
version "8.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.18.2.tgz#d193c200d61eb0ddec5987c8e48c9d4e1c0510bd"
|
||||
integrity sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==
|
||||
"@typescript-eslint/scope-manager@8.19.0":
|
||||
version "8.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.19.0.tgz#28fa413a334f70e8b506a968531e0a7c9c3076dc"
|
||||
integrity sha512-hkoJiKQS3GQ13TSMEiuNmSCvhz7ujyqD1x3ShbaETATHrck+9RaDdUbt+osXaUuns9OFwrDTTrjtwsU8gJyyRA==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "8.18.2"
|
||||
"@typescript-eslint/visitor-keys" "8.18.2"
|
||||
"@typescript-eslint/types" "8.19.0"
|
||||
"@typescript-eslint/visitor-keys" "8.19.0"
|
||||
|
||||
"@typescript-eslint/type-utils@8.18.2":
|
||||
version "8.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.18.2.tgz#5ad07e09002eee237591881df674c1c0c91ca52f"
|
||||
integrity sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==
|
||||
"@typescript-eslint/type-utils@8.19.0":
|
||||
version "8.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.19.0.tgz#41abd7d2e4cf93b6854b1fe6cbf416fab5abf89f"
|
||||
integrity sha512-TZs0I0OSbd5Aza4qAMpp1cdCYVnER94IziudE3JU328YUHgWu9gwiwhag+fuLeJ2LkWLXI+F/182TbG+JaBdTg==
|
||||
dependencies:
|
||||
"@typescript-eslint/typescript-estree" "8.18.2"
|
||||
"@typescript-eslint/utils" "8.18.2"
|
||||
"@typescript-eslint/typescript-estree" "8.19.0"
|
||||
"@typescript-eslint/utils" "8.19.0"
|
||||
debug "^4.3.4"
|
||||
ts-api-utils "^1.3.0"
|
||||
|
||||
"@typescript-eslint/types@8.18.2":
|
||||
version "8.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.18.2.tgz#5ebad5b384c8aa1c0f86cee1c61bcdbe7511f547"
|
||||
integrity sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==
|
||||
"@typescript-eslint/types@8.19.0":
|
||||
version "8.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.19.0.tgz#a190a25c5484a42b81eaad06989579fdeb478cbb"
|
||||
integrity sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==
|
||||
|
||||
"@typescript-eslint/typescript-estree@8.18.2":
|
||||
version "8.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.2.tgz#fffb85527f8304e29bfbbdc712f4515da9f8b47c"
|
||||
integrity sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==
|
||||
"@typescript-eslint/typescript-estree@8.19.0":
|
||||
version "8.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.0.tgz#6b4f48f98ffad6597379951b115710f4d68c9ccb"
|
||||
integrity sha512-WW9PpDaLIFW9LCbucMSdYUuGeFUz1OkWYS/5fwZwTA+l2RwlWFdJvReQqMUMBw4yJWJOfqd7An9uwut2Oj8sLw==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "8.18.2"
|
||||
"@typescript-eslint/visitor-keys" "8.18.2"
|
||||
"@typescript-eslint/types" "8.19.0"
|
||||
"@typescript-eslint/visitor-keys" "8.19.0"
|
||||
debug "^4.3.4"
|
||||
fast-glob "^3.3.2"
|
||||
is-glob "^4.0.3"
|
||||
@@ -4012,22 +4012,22 @@
|
||||
semver "^7.6.0"
|
||||
ts-api-utils "^1.3.0"
|
||||
|
||||
"@typescript-eslint/utils@8.18.2", "@typescript-eslint/utils@^8.8.1":
|
||||
version "8.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.18.2.tgz#a2635f71904a84f9e47fe1b6f65a6d944ff1adf9"
|
||||
integrity sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==
|
||||
"@typescript-eslint/utils@8.19.0", "@typescript-eslint/utils@^8.8.1":
|
||||
version "8.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.19.0.tgz#33824310e1fccc17f27fbd1030fd8bbd9a674684"
|
||||
integrity sha512-PTBG+0oEMPH9jCZlfg07LCB2nYI0I317yyvXGfxnvGvw4SHIOuRnQ3kadyyXY6tGdChusIHIbM5zfIbp4M6tCg==
|
||||
dependencies:
|
||||
"@eslint-community/eslint-utils" "^4.4.0"
|
||||
"@typescript-eslint/scope-manager" "8.18.2"
|
||||
"@typescript-eslint/types" "8.18.2"
|
||||
"@typescript-eslint/typescript-estree" "8.18.2"
|
||||
"@typescript-eslint/scope-manager" "8.19.0"
|
||||
"@typescript-eslint/types" "8.19.0"
|
||||
"@typescript-eslint/typescript-estree" "8.19.0"
|
||||
|
||||
"@typescript-eslint/visitor-keys@8.18.2":
|
||||
version "8.18.2"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.2.tgz#b3e434b701f086b10a7c82416ebc56899d27ef2f"
|
||||
integrity sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==
|
||||
"@typescript-eslint/visitor-keys@8.19.0":
|
||||
version "8.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.0.tgz#dc313f735e64c4979c9073f51ffcefb6d9be5c77"
|
||||
integrity sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "8.18.2"
|
||||
"@typescript-eslint/types" "8.19.0"
|
||||
eslint-visitor-keys "^4.2.0"
|
||||
|
||||
"@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.2.0":
|
||||
@@ -5275,9 +5275,9 @@ concat-map@0.0.1:
|
||||
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
|
||||
|
||||
concurrently@^9.0.1:
|
||||
version "9.1.1"
|
||||
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-9.1.1.tgz#609dde2ce12f4f12d6a5ea6eace4c38bb7ab2ead"
|
||||
integrity sha512-6VX8lrBIycgZKTwBsWS+bLrmkGRkDmvtGsYylRN9b93CygN6CbK46HmnQ3rdSOR8HRjdahDrxb5MqD9cEFOg5Q==
|
||||
version "9.1.2"
|
||||
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-9.1.2.tgz#22d9109296961eaee773e12bfb1ce9a66bc9836c"
|
||||
integrity sha512-H9MWcoPsYddwbOGM6difjVwVZHl63nwMEwDJG/L7VGtuaJhb12h2caPG2tVPWs7emuYix252iGfqOyrz1GczTQ==
|
||||
dependencies:
|
||||
chalk "^4.1.2"
|
||||
lodash "^4.17.21"
|
||||
@@ -6125,13 +6125,14 @@ es-object-atoms@^1.0.0:
|
||||
es-errors "^1.3.0"
|
||||
|
||||
es-set-tostringtag@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777"
|
||||
integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
|
||||
integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
|
||||
dependencies:
|
||||
get-intrinsic "^1.2.4"
|
||||
es-errors "^1.3.0"
|
||||
get-intrinsic "^1.2.6"
|
||||
has-tostringtag "^1.0.2"
|
||||
hasown "^2.0.1"
|
||||
hasown "^2.0.2"
|
||||
|
||||
es-shim-unscopables@^1.0.2:
|
||||
version "1.0.2"
|
||||
@@ -7197,7 +7198,7 @@ hasha@^5.0.0:
|
||||
is-stream "^2.0.0"
|
||||
type-fest "^0.8.0"
|
||||
|
||||
hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2:
|
||||
hasown@^2.0.0, hasown@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
|
||||
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
|
||||
@@ -12151,9 +12152,9 @@ yaml@^1.10.0:
|
||||
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
|
||||
|
||||
yaml@^2.3.4:
|
||||
version "2.6.1"
|
||||
resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.6.1.tgz#42f2b1ba89203f374609572d5349fb8686500773"
|
||||
integrity sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.0.tgz#aef9bb617a64c937a9a748803786ad8d3ffe1e98"
|
||||
integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==
|
||||
|
||||
yargs-parser@^18.1.2:
|
||||
version "18.1.3"
|
||||
|
||||
Reference in New Issue
Block a user