chore: release emoji-magic v0.2.0 and create-basic-tools v1.0.4

This commit is contained in:
Ajax Davis 2025-12-05 00:10:18 +10:00
parent 8b7a52ef89
commit 3cfc141944
10 changed files with 616 additions and 11 deletions

View file

@ -1,6 +1,6 @@
{
"name": "@tpmjs/create-basic-tools",
"version": "1.0.3",
"version": "1.0.4",
"description": "CLI generator for scaffolding production-ready TPMJS tool packages",
"type": "module",
"bin": {

View file

@ -38,7 +38,7 @@ export function generatePackageJson(config: GeneratorConfig): string {
}),
},
dependencies: {
ai: '^6.0.0',
ai: '6.0.0-beta.131',
zod: '^4.1.13',
},
devDependencies: {

View file

@ -0,0 +1,7 @@
# @tpmjs/emoji-magic
## 0.2.0
### Minor Changes
- Add emoji-magic package with text-to-emoji conversion and mood detection tools

View file

@ -0,0 +1,41 @@
# @tpmjs/emoji-magic
AI SDK tools for emoji conversion and mood detection. Make your text more expressive! ✨
## Tools
### textToEmoji
Convert text into emoji representations - perfect for making messages more expressive!
```typescript
import { textToEmoji } from '@tpmjs/emoji-magic';
const result = await textToEmoji.execute({
text: "I love my cat and dog",
style: 'creative'
});
// Result: "I ❤️ my 🐱 and 🐶"
```
### emojiMood
Detect the mood/sentiment and suggest appropriate emojis for the text.
```typescript
import { emojiMood } from '@tpmjs/emoji-magic';
const result = await emojiMood.execute({
text: "This is amazing! I'm so excited!",
count: 3
});
// Returns: { mood: 'excited', suggestions: ['🎉', '🎊', '🥳'] }
```
## Installation
```bash
npm install @tpmjs/emoji-magic
```
## License
MIT

View file

@ -0,0 +1,35 @@
{
"name": "@tpmjs/emoji-magic",
"version": "0.2.0",
"description": "AI SDK tools for emoji-magic - convert text to emojis and back!",
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"scripts": {
"build": "tsc",
"type-check": "tsc --noEmit"
},
"keywords": ["tpmjs-tool", "emoji", "ai", "text-processing"],
"tpmjs": {
"category": "text-analysis",
"frameworks": ["vercel-ai"],
"tools": [
{
"exportName": "textToEmoji",
"description": "Convert text into emoji representations - perfect for making messages more expressive!"
},
{
"exportName": "emojiMood",
"description": "Detect the mood/sentiment and suggest appropriate emojis for the text"
}
]
},
"dependencies": {
"ai": "6.0.0-beta.131",
"zod": "^4.1.13"
},
"devDependencies": {
"@tpmjs/tsconfig": "workspace:*",
"typescript": "^5.9.3"
}
}

View file

@ -0,0 +1,7 @@
/**
* TPMJS Emoji Magic Tool Package
* AI SDK tools for emoji conversion and mood detection
*/
export { textToEmoji } from './tools/textToEmoji.js';
export { emojiMood } from './tools/emojiMood.js';

View file

@ -0,0 +1,105 @@
import { tool } from 'ai';
import { z } from 'zod';
const EmojiMoodSchema = z.object({
text: z
.string()
.min(1, 'Text cannot be empty')
.describe('The text to analyze for mood/sentiment'),
count: z.number().int().positive().default(3).describe('Number of emoji suggestions to return'),
});
export const emojiMood = tool({
description: 'Detect the mood/sentiment and suggest appropriate emojis for the text',
inputSchema: EmojiMoodSchema,
async execute(input: z.infer<typeof EmojiMoodSchema>) {
const { text, count } = input;
// Simple sentiment analysis based on keywords
const positiveWords = [
'happy',
'joy',
'great',
'awesome',
'excellent',
'love',
'wonderful',
'amazing',
'fantastic',
'good',
'nice',
'best',
'yay',
'win',
'success',
];
const negativeWords = [
'sad',
'bad',
'awful',
'terrible',
'hate',
'worst',
'angry',
'mad',
'upset',
'disappointed',
'fail',
'lose',
'pain',
];
const excitedWords = [
'excited',
'wow',
'omg',
'amazing',
'incredible',
'party',
'celebrate',
'yay',
];
const calmWords = ['calm', 'peace', 'relax', 'chill', 'zen', 'meditate', 'sleep', 'rest'];
const lowerText = text.toLowerCase();
let mood = 'neutral';
let emojis: string[] = [];
// Check for positive sentiment
if (positiveWords.some((word) => lowerText.includes(word))) {
mood = 'positive';
emojis = ['😊', '😄', '🎉', '❤️', '👍', '🌟', '✨', '😁', '🥳', '💖'];
}
// Check for negative sentiment
else if (negativeWords.some((word) => lowerText.includes(word))) {
mood = 'negative';
emojis = ['😢', '😞', '😔', '💔', '😭', '😟', '🙁', '😕', '😣', '😖'];
}
// Check for excited sentiment
else if (excitedWords.some((word) => lowerText.includes(word))) {
mood = 'excited';
emojis = ['🎉', '🎊', '🥳', '😆', '🤩', '⚡', '🔥', '💥', '🌟', '✨'];
}
// Check for calm sentiment
else if (calmWords.some((word) => lowerText.includes(word))) {
mood = 'calm';
emojis = ['😌', '😊', '🧘', '🌙', '☁️', '💙', '🕊️', '🌸', '🍃', '💤'];
}
// Default neutral
else {
mood = 'neutral';
emojis = ['🙂', '😐', '😶', '🤔', '💭', '📝', '💬', '👌', '✌️', '🤷'];
}
// Return requested number of suggestions
const suggestions = emojis.slice(0, count);
return {
success: true,
mood,
suggestions,
text_length: text.length,
analysis: `Detected ${mood} mood with ${suggestions.length} emoji suggestions`,
};
},
});

View file

@ -0,0 +1,92 @@
import { tool } from 'ai';
import { z } from 'zod';
const TextToEmojiSchema = z.object({
text: z.string().min(1, 'Text cannot be empty').describe('The text to convert to emoji'),
style: z
.enum(['literal', 'creative', 'random'])
.default('creative')
.describe(
'How to convert: literal (direct replacements), creative (interpretive), random (surprise me!)'
),
});
export const textToEmoji = tool({
description:
'Convert text into emoji representations - perfect for making messages more expressive!',
inputSchema: TextToEmojiSchema,
async execute(input: z.infer<typeof TextToEmojiSchema>) {
const { text, style } = input;
// Simple word-to-emoji mappings
const emojiMap: Record<string, string> = {
// Emotions
happy: '😊',
sad: '😢',
angry: '😠',
love: '❤️',
heart: '💖',
excited: '🎉',
crying: '😭',
laughing: '😂',
cool: '😎',
// Animals
cat: '🐱',
dog: '🐶',
bird: '🐦',
fish: '🐠',
monkey: '🐵',
lion: '🦁',
tiger: '🐯',
bear: '🐻',
panda: '🐼',
// Objects
car: '🚗',
house: '🏠',
tree: '🌳',
flower: '🌸',
sun: '☀️',
moon: '🌙',
star: '⭐',
fire: '🔥',
water: '💧',
food: '🍔',
// Actions
run: '🏃',
dance: '💃',
sleep: '😴',
think: '🤔',
write: '✍️',
read: '📖',
music: '🎵',
party: '🎊',
work: '💼',
};
const words = text.toLowerCase().split(/\s+/);
const converted = words
.map((word) => {
// Remove punctuation for matching
const cleanWord = word.replace(/[^\w]/g, '');
if (style === 'random') {
// 50% chance to replace with random emoji
if (Math.random() > 0.5) {
const emojis = Object.values(emojiMap);
return emojis[Math.floor(Math.random() * emojis.length)];
}
}
return emojiMap[cleanWord] || word;
})
.join(' ');
return {
success: true,
original: text,
converted,
style,
emoji_count: (converted.match(/[\u{1F300}-\u{1F9FF}]/gu) || []).length,
};
},
});

View file

@ -0,0 +1,9 @@
{
"extends": "@tpmjs/tsconfig/base.json",
"compilerOptions": {
"outDir": "dist",
"rootDir": "src"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}

327
pnpm-lock.yaml generated
View file

@ -131,10 +131,10 @@ importers:
version: 10.4.22(postcss@8.5.6)
eslint:
specifier: ^9.39.1
version: 9.39.1(jiti@2.6.1)
version: 9.39.1(jiti@1.21.7)
eslint-config-next:
specifier: ^16.0.4
version: 16.0.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
version: 16.0.4(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)
postcss:
specifier: ^8.5.1
version: 8.5.6
@ -552,6 +552,22 @@ importers:
specifier: ^5.9.3
version: 5.9.3
packages/tools/emoji-magic:
dependencies:
ai:
specifier: 6.0.0-beta.131
version: 6.0.0-beta.131(effect@3.18.4)(zod@4.1.13)
zod:
specifier: ^4.1.13
version: 4.1.13
devDependencies:
'@tpmjs/tsconfig':
specifier: workspace:*
version: link:../../config/tsconfig
typescript:
specifier: ^5.9.3
version: 5.9.3
packages/tools/hello:
dependencies:
ai:
@ -709,6 +725,12 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/gateway@2.0.0-beta.71':
resolution: {integrity: sha512-Mn5WShiC0BUVOtO6C65FKdeQxfrIaM0QeZjYcQej6+4hRgSKWlySVDWr88ZZjXGpviB7q0zINTuc6YWV6TqfvQ==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
'@ai-sdk/gateway@2.0.18':
resolution: {integrity: sha512-sDQcW+6ck2m0pTIHW6BPHD7S125WD3qNkx/B8sEzJp/hurocmJ5Cni0ybExg6sQMGo+fr/GWOwpHF1cmCdg5rQ==}
engines: {node: '>=18'}
@ -759,6 +781,22 @@ packages:
effect:
optional: true
'@ai-sdk/provider-utils@4.0.0-beta.42':
resolution: {integrity: sha512-VY+aQzlbLT4R+n3AgsRrpaeHQRhBAxBPkfXnS8PdIFKY85/W1d4emA/40j++2N0yBDBeEW4I7xAPv1t43YkjbQ==}
engines: {node: '>=18'}
peerDependencies:
'@valibot/to-json-schema': ^1.3.0
arktype: ^2.1.22
effect: ^3.18.4
zod: ^3.25.76 || ^4.1.8
peerDependenciesMeta:
'@valibot/to-json-schema':
optional: true
arktype:
optional: true
effect:
optional: true
'@ai-sdk/provider@2.0.0':
resolution: {integrity: sha512-6o7Y2SeO9vFKB8lArHXehNuusnpddKPk7xqL7T2/b+OvXMRIXUO1rR4wcv1hAFUAT9avGZshty3Wlua/XA7TvA==}
engines: {node: '>=18'}
@ -2769,6 +2807,12 @@ packages:
peerDependencies:
zod: ^3.25.76 || ^4.1.8
ai@6.0.0-beta.131:
resolution: {integrity: sha512-hoe+I4pPWjyP1CQHtftC5p7z/EEAx8nGTzzxG0Ka+cAKQW+3lQZsO3dBZ9kB2McYrLd2xntJl7V1tgqqnkfvYw==}
engines: {node: '>=18'}
peerDependencies:
zod: ^3.25.76 || ^4.1.8
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
@ -6313,6 +6357,17 @@ snapshots:
- arktype
- effect
'@ai-sdk/gateway@2.0.0-beta.71(effect@3.18.4)(zod@4.1.13)':
dependencies:
'@ai-sdk/provider': 3.0.0-beta.23
'@ai-sdk/provider-utils': 4.0.0-beta.42(effect@3.18.4)(zod@4.1.13)
'@vercel/oidc': 3.0.5
zod: 4.1.13
transitivePeerDependencies:
- '@valibot/to-json-schema'
- arktype
- effect
'@ai-sdk/gateway@2.0.18(zod@3.25.76)':
dependencies:
'@ai-sdk/provider': 2.0.0
@ -6364,6 +6419,15 @@ snapshots:
optionalDependencies:
effect: 3.18.4
'@ai-sdk/provider-utils@4.0.0-beta.42(effect@3.18.4)(zod@4.1.13)':
dependencies:
'@ai-sdk/provider': 3.0.0-beta.23
'@standard-schema/spec': 1.0.0
eventsource-parser: 3.0.6
zod: 4.1.13
optionalDependencies:
effect: 3.18.4
'@ai-sdk/provider@2.0.0':
dependencies:
json-schema: 0.4.0
@ -6948,6 +7012,11 @@ snapshots:
'@esbuild/win32-x64@0.27.0':
optional: true
'@eslint-community/eslint-utils@4.9.0(eslint@9.39.1(jiti@1.21.7))':
dependencies:
eslint: 9.39.1(jiti@1.21.7)
eslint-visitor-keys: 3.4.3
'@eslint-community/eslint-utils@4.9.0(eslint@9.39.1(jiti@2.6.1))':
dependencies:
eslint: 9.39.1(jiti@2.6.1)
@ -8003,6 +8072,23 @@ snapshots:
'@types/validate-npm-package-name@4.0.2': {}
'@typescript-eslint/eslint-plugin@8.48.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
'@typescript-eslint/parser': 8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)
'@typescript-eslint/scope-manager': 8.48.0
'@typescript-eslint/type-utils': 8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)
'@typescript-eslint/utils': 8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.48.0
eslint: 9.39.1(jiti@1.21.7)
graphemer: 1.4.0
ignore: 7.0.5
natural-compare: 1.4.0
ts-api-utils: 2.1.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/eslint-plugin@8.48.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
@ -8020,6 +8106,18 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.48.0
'@typescript-eslint/types': 8.48.0
'@typescript-eslint/typescript-estree': 8.48.0(typescript@5.9.3)
'@typescript-eslint/visitor-keys': 8.48.0
debug: 4.4.3
eslint: 9.39.1(jiti@1.21.7)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/scope-manager': 8.48.0
@ -8050,6 +8148,18 @@ snapshots:
dependencies:
typescript: 5.9.3
'@typescript-eslint/type-utils@8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/types': 8.48.0
'@typescript-eslint/typescript-estree': 8.48.0(typescript@5.9.3)
'@typescript-eslint/utils': 8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)
debug: 4.4.3
eslint: 9.39.1(jiti@1.21.7)
ts-api-utils: 2.1.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/type-utils@8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/types': 8.48.0
@ -8079,6 +8189,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)':
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@1.21.7))
'@typescript-eslint/scope-manager': 8.48.0
'@typescript-eslint/types': 8.48.0
'@typescript-eslint/typescript-estree': 8.48.0(typescript@5.9.3)
eslint: 9.39.1(jiti@1.21.7)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
'@typescript-eslint/utils@8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1))
@ -8286,6 +8407,18 @@ snapshots:
- arktype
- effect
ai@6.0.0-beta.131(effect@3.18.4)(zod@4.1.13):
dependencies:
'@ai-sdk/gateway': 2.0.0-beta.71(effect@3.18.4)(zod@4.1.13)
'@ai-sdk/provider': 3.0.0-beta.23
'@ai-sdk/provider-utils': 4.0.0-beta.42(effect@3.18.4)(zod@4.1.13)
'@opentelemetry/api': 1.9.0
zod: 4.1.13
transitivePeerDependencies:
- '@valibot/to-json-schema'
- arktype
- effect
ajv@6.12.6:
dependencies:
fast-deep-equal: 3.1.3
@ -9257,12 +9390,32 @@ snapshots:
escape-string-regexp@5.0.0: {}
eslint-config-next@16.0.4(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3):
dependencies:
'@next/eslint-plugin-next': 16.0.4
eslint: 9.39.1(jiti@1.21.7)
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@1.21.7))
eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7))
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.1(jiti@1.21.7))
eslint-plugin-react: 7.37.5(eslint@9.39.1(jiti@1.21.7))
eslint-plugin-react-hooks: 7.0.1(eslint@9.39.1(jiti@1.21.7))
globals: 16.4.0
typescript-eslint: 8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)
optionalDependencies:
typescript: 5.9.3
transitivePeerDependencies:
- '@typescript-eslint/parser'
- eslint-import-resolver-webpack
- eslint-plugin-import-x
- supports-color
eslint-config-next@16.0.4(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3):
dependencies:
'@next/eslint-plugin-next': 16.0.4
eslint: 9.39.1(jiti@2.6.1)
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-react: 7.37.5(eslint@9.39.1(jiti@2.6.1))
@ -9285,7 +9438,22 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)):
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@1.21.7)):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.4.3
eslint: 9.39.1(jiti@1.21.7)
get-tsconfig: 4.13.0
is-bun-module: 2.0.0
stable-hash: 0.0.5
tinyglobby: 0.2.15
unrs-resolver: 1.11.1
optionalDependencies:
eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7))
transitivePeerDependencies:
- supports-color
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@2.6.1)):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.4.3
@ -9310,13 +9478,23 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)):
eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7)):
dependencies:
debug: 3.2.7
optionalDependencies:
eslint: 9.39.1(jiti@1.21.7)
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@1.21.7))
transitivePeerDependencies:
- supports-color
eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)):
dependencies:
debug: 3.2.7
optionalDependencies:
eslint: 9.39.1(jiti@2.6.1)
eslint-import-resolver-node: 0.3.9
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.39.1(jiti@2.6.1))
transitivePeerDependencies:
- supports-color
@ -9349,7 +9527,7 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
eslint-plugin-import@2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)):
eslint-plugin-import@2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7)):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@ -9358,9 +9536,9 @@ snapshots:
array.prototype.flatmap: 1.3.3
debug: 3.2.7
doctrine: 2.1.0
eslint: 9.39.1(jiti@2.6.1)
eslint: 9.39.1(jiti@1.21.7)
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))
eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7))
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@ -9376,6 +9554,52 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
eslint-plugin-import@2.32.0(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1)):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
array.prototype.findlastindex: 1.2.6
array.prototype.flat: 1.3.3
array.prototype.flatmap: 1.3.3
debug: 3.2.7
doctrine: 2.1.0
eslint: 9.39.1(jiti@2.6.1)
eslint-import-resolver-node: 0.3.9
eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@2.6.1))
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
minimatch: 3.1.2
object.fromentries: 2.0.8
object.groupby: 1.0.3
object.values: 1.2.1
semver: 6.3.1
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.1(jiti@1.21.7)):
dependencies:
aria-query: 5.3.2
array-includes: 3.1.9
array.prototype.flatmap: 1.3.3
ast-types-flow: 0.0.8
axe-core: 4.11.0
axobject-query: 4.1.0
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
eslint: 9.39.1(jiti@1.21.7)
hasown: 2.0.2
jsx-ast-utils: 3.3.5
language-tags: 1.0.9
minimatch: 3.1.2
object.fromentries: 2.0.8
safe-regex-test: 1.1.0
string.prototype.includes: 2.0.1
eslint-plugin-jsx-a11y@6.10.2(eslint@9.39.1(jiti@2.6.1)):
dependencies:
aria-query: 5.3.2
@ -9399,6 +9623,17 @@ snapshots:
dependencies:
eslint: 9.39.1(jiti@2.6.1)
eslint-plugin-react-hooks@7.0.1(eslint@9.39.1(jiti@1.21.7)):
dependencies:
'@babel/core': 7.28.5
'@babel/parser': 7.28.5
eslint: 9.39.1(jiti@1.21.7)
hermes-parser: 0.25.1
zod: 4.1.13
zod-validation-error: 4.0.2(zod@4.1.13)
transitivePeerDependencies:
- supports-color
eslint-plugin-react-hooks@7.0.1(eslint@9.39.1(jiti@2.6.1)):
dependencies:
'@babel/core': 7.28.5
@ -9410,6 +9645,28 @@ snapshots:
transitivePeerDependencies:
- supports-color
eslint-plugin-react@7.37.5(eslint@9.39.1(jiti@1.21.7)):
dependencies:
array-includes: 3.1.9
array.prototype.findlast: 1.2.5
array.prototype.flatmap: 1.3.3
array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
es-iterator-helpers: 1.2.1
eslint: 9.39.1(jiti@1.21.7)
estraverse: 5.3.0
hasown: 2.0.2
jsx-ast-utils: 3.3.5
minimatch: 3.1.2
object.entries: 1.1.9
object.fromentries: 2.0.8
object.values: 1.2.1
prop-types: 15.8.1
resolve: 2.0.0-next.5
semver: 6.3.1
string.prototype.matchall: 4.0.12
string.prototype.repeat: 1.0.0
eslint-plugin-react@7.37.5(eslint@9.39.1(jiti@2.6.1)):
dependencies:
array-includes: 3.1.9
@ -9441,6 +9698,47 @@ snapshots:
eslint-visitor-keys@4.2.1: {}
eslint@9.39.1(jiti@1.21.7):
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@1.21.7))
'@eslint-community/regexpp': 4.12.2
'@eslint/config-array': 0.21.1
'@eslint/config-helpers': 0.4.2
'@eslint/core': 0.17.0
'@eslint/eslintrc': 3.3.1
'@eslint/js': 9.39.1
'@eslint/plugin-kit': 0.4.1
'@humanfs/node': 0.16.7
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.4.3
'@types/estree': 1.0.8
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.6
debug: 4.4.3
escape-string-regexp: 4.0.0
eslint-scope: 8.4.0
eslint-visitor-keys: 4.2.1
espree: 10.4.0
esquery: 1.6.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 8.0.0
find-up: 5.0.0
glob-parent: 6.0.2
ignore: 5.3.2
imurmurhash: 0.1.4
is-glob: 4.0.3
json-stable-stringify-without-jsonify: 1.0.1
lodash.merge: 4.6.2
minimatch: 3.1.2
natural-compare: 1.4.0
optionator: 0.9.4
optionalDependencies:
jiti: 1.21.7
transitivePeerDependencies:
- supports-color
eslint@9.39.1(jiti@2.6.1):
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.39.1(jiti@2.6.1))
@ -12294,6 +12592,17 @@ snapshots:
possible-typed-array-names: 1.1.0
reflect.getprototypeof: 1.0.10
typescript-eslint@8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3):
dependencies:
'@typescript-eslint/eslint-plugin': 8.48.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)
'@typescript-eslint/parser': 8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)
'@typescript-eslint/typescript-estree': 8.48.0(typescript@5.9.3)
'@typescript-eslint/utils': 8.48.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3)
eslint: 9.39.1(jiti@1.21.7)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
typescript-eslint@8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3):
dependencies:
'@typescript-eslint/eslint-plugin': 8.48.0(@typescript-eslint/parser@8.48.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)