@kb-labs/clickup-core 2.119.0-canary.f8394d5fd → 2.119.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/env.ts","../src/client.ts","../src/api.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { useEnv } from '@kb-labs/sdk';\n\nexport function requireApiKey(): string {\n const key = useEnv('CLICKUP_API_KEY');\n if (!key) { throw new Error('CLICKUP_API_KEY is not set'); }\n return key;\n}\n\nexport function requireTeamId(): string {\n const id = useEnv('CLICKUP_TEAM_ID');\n if (!id) { throw new Error('CLICKUP_TEAM_ID is not set'); }\n return id;\n}\n","const BASE_URL = 'https://api.clickup.com/api/v2';\n\nexport class ClickUpApiError extends Error {\n constructor(\n public readonly status: number,\n public readonly code: string,\n message: string,\n ) {\n super(message);\n this.name = 'ClickUpApiError';\n }\n}\n\nexport async function clickupFetch<T>(\n path: string,\n apiKey: string,\n options: RequestInit = {},\n): Promise<T> {\n const url = `${BASE_URL}${path}`;\n const res = await fetch(url, {\n ...options,\n headers: {\n 'Authorization': apiKey,\n 'Content-Type': 'application/json',\n ...options.headers,\n },\n });\n\n if (!res.ok) {\n let code = 'UNKNOWN';\n let message = `ClickUp API error ${res.status}`;\n try {\n const body = await res.json() as { err?: string; ECODE?: string };\n if (body.err) { message = body.err; }\n if (body.ECODE) { code = body.ECODE; }\n } catch {\n // ignore parse error\n }\n throw new ClickUpApiError(res.status, code, message);\n }\n\n const text = await res.text();\n if (!text) { return {} as T; }\n return JSON.parse(text) as T;\n}\n","import { clickupFetch } from './client.js';\nimport type {\n ClickUpWorkspace,\n ClickUpSpace,\n ClickUpSpaceDetail,\n ClickUpFolder,\n ClickUpList,\n ClickUpTask,\n ClickUpComment,\n ClickUpCommentCreateResult,\n ClickUpStatus,\n CreateTaskInput,\n UpdateTaskInput,\n CreateSpaceInput,\n UpdateSpaceInput,\n CreateFolderInput,\n UpdateFolderInput,\n CreateListInput,\n UpdateListInput,\n} from '@kb-labs/clickup-contracts';\n\n// ── Workspace / Hierarchy ────────────────────────────────────────────────────\n\nasync function resolveTeam(\n apiKey: string,\n teamIdHint: string,\n): Promise<{ id: string; name: string }> {\n const res = await clickupFetch<{ teams: Array<{ id: string; name: string }> }>('/team', apiKey);\n const team = res.teams.find(t => t.id === teamIdHint) ?? res.teams[0];\n if (!team) { throw new Error(`No ClickUp team found for CLICKUP_TEAM_ID=${teamIdHint}`); }\n return team;\n}\n\nexport async function getWorkspaceHierarchy(\n apiKey: string,\n teamId: string,\n): Promise<ClickUpWorkspace> {\n const team = await resolveTeam(apiKey, teamId);\n\n const spacesRes = await clickupFetch<{ spaces: ClickUpSpace[] }>(\n `/team/${team.id}/space?archived=false`,\n apiKey,\n );\n\n const spaces = await Promise.all(\n spacesRes.spaces.map(async space => {\n const [foldersRes, listsRes] = await Promise.all([\n clickupFetch<{ folders: ClickUpFolder[] }>(`/space/${space.id}/folder?archived=false`, apiKey),\n clickupFetch<{ lists: ClickUpList[] }>(`/space/${space.id}/list?archived=false`, apiKey),\n ]);\n\n const folders = await Promise.all(\n foldersRes.folders.map(async folder => {\n const folderListsRes = await clickupFetch<{ lists: ClickUpList[] }>(\n `/folder/${folder.id}/list?archived=false`,\n apiKey,\n );\n return { ...folder, lists: folderListsRes.lists };\n }),\n );\n\n return { ...space, folders, lists: listsRes.lists };\n }),\n );\n\n return { id: team.id, name: team.name, spaces };\n}\n\n// ── Tasks ────────────────────────────────────────────────────────────────────\n\nexport interface SearchTasksParams {\n query?: string;\n list_ids?: string[];\n statuses?: string[];\n assignees?: string[];\n limit?: number;\n page?: number;\n include_closed?: boolean;\n}\n\nexport async function searchTasks(\n apiKey: string,\n teamId: string,\n params: SearchTasksParams = {},\n): Promise<ClickUpTask[]> {\n const qs = new URLSearchParams();\n if (params.query) { qs.set('query', params.query); }\n if (params.list_ids?.length) { params.list_ids.forEach(id => qs.append('list_ids[]', id)); }\n if (params.statuses?.length) { params.statuses.forEach(s => qs.append('statuses[]', s)); }\n if (params.assignees?.length) { params.assignees.forEach(a => qs.append('assignees[]', a)); }\n qs.set('page', String(params.page ?? 0));\n qs.set('limit', String(Math.min(params.limit ?? 20, 100)));\n if (params.include_closed) { qs.set('include_closed', 'true'); }\n qs.set('subtasks', 'true');\n\n const team = await resolveTeam(apiKey, teamId);\n const res = await clickupFetch<{ tasks: ClickUpTask[] }>(\n `/team/${team.id}/task?${qs}`,\n apiKey,\n );\n return res.tasks;\n}\n\nexport async function getTask(apiKey: string, taskId: string): Promise<ClickUpTask> {\n return clickupFetch<ClickUpTask>(\n `/task/${taskId}?include_subtasks=true`,\n apiKey,\n );\n}\n\nexport async function createTask(\n apiKey: string,\n listId: string,\n body: CreateTaskInput,\n): Promise<ClickUpTask> {\n return clickupFetch<ClickUpTask>(`/list/${listId}/task`, apiKey, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport async function updateTask(\n apiKey: string,\n taskId: string,\n body: UpdateTaskInput,\n): Promise<ClickUpTask> {\n return clickupFetch<ClickUpTask>(`/task/${taskId}`, apiKey, {\n method: 'PUT',\n body: JSON.stringify(body),\n });\n}\n\nexport async function deleteTask(apiKey: string, taskId: string): Promise<void> {\n await clickupFetch<void>(`/task/${taskId}`, apiKey, { method: 'DELETE' });\n}\n\n// ── List ─────────────────────────────────────────────────────────────────────\n\nexport interface ListTasksParams {\n statuses?: string[];\n assignees?: string[];\n limit?: number;\n page?: number;\n include_closed?: boolean;\n}\n\nexport async function getListTasks(\n apiKey: string,\n listId: string,\n params: ListTasksParams = {},\n): Promise<ClickUpTask[]> {\n const qs = new URLSearchParams();\n if (params.statuses?.length) { params.statuses.forEach(s => qs.append('statuses[]', s)); }\n if (params.assignees?.length) { params.assignees.forEach(a => qs.append('assignees[]', a)); }\n qs.set('page', String(params.page ?? 0));\n if (params.include_closed) { qs.set('include_closed', 'true'); }\n qs.set('subtasks', 'true');\n\n const res = await clickupFetch<{ tasks: ClickUpTask[] }>(\n `/list/${listId}/task?${qs}`,\n apiKey,\n );\n return res.tasks;\n}\n\nexport async function getListStatuses(\n apiKey: string,\n listId: string,\n): Promise<ClickUpStatus[]> {\n const res = await clickupFetch<{ statuses: ClickUpStatus[] }>(\n `/list/${listId}`,\n apiKey,\n );\n return res.statuses ?? [];\n}\n\n// ── Comments ─────────────────────────────────────────────────────────────────\n\nexport async function getTaskComments(\n apiKey: string,\n taskId: string,\n): Promise<ClickUpComment[]> {\n const res = await clickupFetch<{ comments: ClickUpComment[] }>(\n `/task/${taskId}/comment`,\n apiKey,\n );\n return res.comments ?? [];\n}\n\nexport async function addTaskComment(\n apiKey: string,\n taskId: string,\n commentText: string,\n options: { assignee?: number; notifyAll?: boolean } = {},\n): Promise<ClickUpCommentCreateResult> {\n return clickupFetch<ClickUpCommentCreateResult>(`/task/${taskId}/comment`, apiKey, {\n method: 'POST',\n body: JSON.stringify({\n comment_text: commentText,\n assignee: options.assignee,\n notify_all: options.notifyAll ?? false,\n }),\n });\n}\n\n// ── Spaces ────────────────────────────────────────────────────────────────────\n\nexport async function createSpace(\n apiKey: string,\n teamId: string,\n body: CreateSpaceInput,\n): Promise<ClickUpSpaceDetail> {\n const team = await resolveTeam(apiKey, teamId);\n return clickupFetch<ClickUpSpaceDetail>(`/team/${team.id}/space`, apiKey, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport async function updateSpace(\n apiKey: string,\n spaceId: string,\n body: UpdateSpaceInput,\n): Promise<ClickUpSpaceDetail> {\n return clickupFetch<ClickUpSpaceDetail>(`/space/${spaceId}`, apiKey, {\n method: 'PUT',\n body: JSON.stringify(body),\n });\n}\n\nexport async function deleteSpace(apiKey: string, spaceId: string): Promise<void> {\n await clickupFetch<void>(`/space/${spaceId}`, apiKey, { method: 'DELETE' });\n}\n\n// ── Folders ───────────────────────────────────────────────────────────────────\n\nexport async function createFolder(\n apiKey: string,\n spaceId: string,\n body: CreateFolderInput,\n): Promise<ClickUpFolder> {\n return clickupFetch<ClickUpFolder>(`/space/${spaceId}/folder`, apiKey, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport async function updateFolder(\n apiKey: string,\n folderId: string,\n body: UpdateFolderInput,\n): Promise<ClickUpFolder> {\n return clickupFetch<ClickUpFolder>(`/folder/${folderId}`, apiKey, {\n method: 'PUT',\n body: JSON.stringify(body),\n });\n}\n\nexport async function deleteFolder(apiKey: string, folderId: string): Promise<void> {\n await clickupFetch<void>(`/folder/${folderId}`, apiKey, { method: 'DELETE' });\n}\n\n// ── Lists (create/update/delete) ──────────────────────────────────────────────\n\nexport async function createListInFolder(\n apiKey: string,\n folderId: string,\n body: CreateListInput,\n): Promise<ClickUpList> {\n return clickupFetch<ClickUpList>(`/folder/${folderId}/list`, apiKey, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport async function createListInSpace(\n apiKey: string,\n spaceId: string,\n body: CreateListInput,\n): Promise<ClickUpList> {\n return clickupFetch<ClickUpList>(`/space/${spaceId}/list`, apiKey, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport async function updateList(\n apiKey: string,\n listId: string,\n body: UpdateListInput,\n): Promise<ClickUpList> {\n return clickupFetch<ClickUpList>(`/list/${listId}`, apiKey, {\n method: 'PUT',\n body: JSON.stringify(body),\n });\n}\n\nexport async function deleteList(apiKey: string, listId: string): Promise<void> {\n await clickupFetch<void>(`/list/${listId}`, apiKey, { method: 'DELETE' });\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../home/runner/work/kb-labs/kb-labs/plugins/clickup/core/src/env.ts","../../home/runner/work/kb-labs/kb-labs/plugins/clickup/core/src/client.ts","../../home/runner/work/kb-labs/kb-labs/plugins/clickup/core/src/api.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { useEnv } from '@kb-labs/sdk';\n\nexport function requireApiKey(): string {\n const key = useEnv('CLICKUP_API_KEY');\n if (!key) { throw new Error('CLICKUP_API_KEY is not set'); }\n return key;\n}\n\nexport function requireTeamId(): string {\n const id = useEnv('CLICKUP_TEAM_ID');\n if (!id) { throw new Error('CLICKUP_TEAM_ID is not set'); }\n return id;\n}\n","const BASE_URL = 'https://api.clickup.com/api/v2';\n\nexport class ClickUpApiError extends Error {\n constructor(\n public readonly status: number,\n public readonly code: string,\n message: string,\n ) {\n super(message);\n this.name = 'ClickUpApiError';\n }\n}\n\nexport async function clickupFetch<T>(\n path: string,\n apiKey: string,\n options: RequestInit = {},\n): Promise<T> {\n const url = `${BASE_URL}${path}`;\n const res = await fetch(url, {\n ...options,\n headers: {\n 'Authorization': apiKey,\n 'Content-Type': 'application/json',\n ...options.headers,\n },\n });\n\n if (!res.ok) {\n let code = 'UNKNOWN';\n let message = `ClickUp API error ${res.status}`;\n try {\n const body = await res.json() as { err?: string; ECODE?: string };\n if (body.err) { message = body.err; }\n if (body.ECODE) { code = body.ECODE; }\n } catch {\n // ignore parse error\n }\n throw new ClickUpApiError(res.status, code, message);\n }\n\n const text = await res.text();\n if (!text) { return {} as T; }\n return JSON.parse(text) as T;\n}\n","import { clickupFetch } from './client.js';\nimport type {\n ClickUpWorkspace,\n ClickUpSpace,\n ClickUpSpaceDetail,\n ClickUpFolder,\n ClickUpList,\n ClickUpTask,\n ClickUpComment,\n ClickUpCommentCreateResult,\n ClickUpStatus,\n CreateTaskInput,\n UpdateTaskInput,\n CreateSpaceInput,\n UpdateSpaceInput,\n CreateFolderInput,\n UpdateFolderInput,\n CreateListInput,\n UpdateListInput,\n} from '@kb-labs/clickup-contracts';\n\n// ── Workspace / Hierarchy ────────────────────────────────────────────────────\n\nasync function resolveTeam(\n apiKey: string,\n teamIdHint: string,\n): Promise<{ id: string; name: string }> {\n const res = await clickupFetch<{ teams: Array<{ id: string; name: string }> }>('/team', apiKey);\n const team = res.teams.find(t => t.id === teamIdHint) ?? res.teams[0];\n if (!team) { throw new Error(`No ClickUp team found for CLICKUP_TEAM_ID=${teamIdHint}`); }\n return team;\n}\n\nexport async function getWorkspaceHierarchy(\n apiKey: string,\n teamId: string,\n): Promise<ClickUpWorkspace> {\n const team = await resolveTeam(apiKey, teamId);\n\n const spacesRes = await clickupFetch<{ spaces: ClickUpSpace[] }>(\n `/team/${team.id}/space?archived=false`,\n apiKey,\n );\n\n const spaces = await Promise.all(\n spacesRes.spaces.map(async space => {\n const [foldersRes, listsRes] = await Promise.all([\n clickupFetch<{ folders: ClickUpFolder[] }>(`/space/${space.id}/folder?archived=false`, apiKey),\n clickupFetch<{ lists: ClickUpList[] }>(`/space/${space.id}/list?archived=false`, apiKey),\n ]);\n\n const folders = await Promise.all(\n foldersRes.folders.map(async folder => {\n const folderListsRes = await clickupFetch<{ lists: ClickUpList[] }>(\n `/folder/${folder.id}/list?archived=false`,\n apiKey,\n );\n return { ...folder, lists: folderListsRes.lists };\n }),\n );\n\n return { ...space, folders, lists: listsRes.lists };\n }),\n );\n\n return { id: team.id, name: team.name, spaces };\n}\n\n// ── Tasks ────────────────────────────────────────────────────────────────────\n\nexport interface SearchTasksParams {\n query?: string;\n list_ids?: string[];\n statuses?: string[];\n assignees?: string[];\n limit?: number;\n page?: number;\n include_closed?: boolean;\n}\n\nexport async function searchTasks(\n apiKey: string,\n teamId: string,\n params: SearchTasksParams = {},\n): Promise<ClickUpTask[]> {\n const qs = new URLSearchParams();\n if (params.query) { qs.set('query', params.query); }\n if (params.list_ids?.length) { params.list_ids.forEach(id => qs.append('list_ids[]', id)); }\n if (params.statuses?.length) { params.statuses.forEach(s => qs.append('statuses[]', s)); }\n if (params.assignees?.length) { params.assignees.forEach(a => qs.append('assignees[]', a)); }\n qs.set('page', String(params.page ?? 0));\n qs.set('limit', String(Math.min(params.limit ?? 20, 100)));\n if (params.include_closed) { qs.set('include_closed', 'true'); }\n qs.set('subtasks', 'true');\n\n const team = await resolveTeam(apiKey, teamId);\n const res = await clickupFetch<{ tasks: ClickUpTask[] }>(\n `/team/${team.id}/task?${qs}`,\n apiKey,\n );\n return res.tasks;\n}\n\nexport async function getTask(apiKey: string, taskId: string): Promise<ClickUpTask> {\n return clickupFetch<ClickUpTask>(\n `/task/${taskId}?include_subtasks=true`,\n apiKey,\n );\n}\n\nexport async function createTask(\n apiKey: string,\n listId: string,\n body: CreateTaskInput,\n): Promise<ClickUpTask> {\n return clickupFetch<ClickUpTask>(`/list/${listId}/task`, apiKey, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport async function updateTask(\n apiKey: string,\n taskId: string,\n body: UpdateTaskInput,\n): Promise<ClickUpTask> {\n return clickupFetch<ClickUpTask>(`/task/${taskId}`, apiKey, {\n method: 'PUT',\n body: JSON.stringify(body),\n });\n}\n\nexport async function deleteTask(apiKey: string, taskId: string): Promise<void> {\n await clickupFetch<void>(`/task/${taskId}`, apiKey, { method: 'DELETE' });\n}\n\n// ── List ─────────────────────────────────────────────────────────────────────\n\nexport interface ListTasksParams {\n statuses?: string[];\n assignees?: string[];\n limit?: number;\n page?: number;\n include_closed?: boolean;\n}\n\nexport async function getListTasks(\n apiKey: string,\n listId: string,\n params: ListTasksParams = {},\n): Promise<ClickUpTask[]> {\n const qs = new URLSearchParams();\n if (params.statuses?.length) { params.statuses.forEach(s => qs.append('statuses[]', s)); }\n if (params.assignees?.length) { params.assignees.forEach(a => qs.append('assignees[]', a)); }\n qs.set('page', String(params.page ?? 0));\n if (params.include_closed) { qs.set('include_closed', 'true'); }\n qs.set('subtasks', 'true');\n\n const res = await clickupFetch<{ tasks: ClickUpTask[] }>(\n `/list/${listId}/task?${qs}`,\n apiKey,\n );\n return res.tasks;\n}\n\nexport async function getListStatuses(\n apiKey: string,\n listId: string,\n): Promise<ClickUpStatus[]> {\n const res = await clickupFetch<{ statuses: ClickUpStatus[] }>(\n `/list/${listId}`,\n apiKey,\n );\n return res.statuses ?? [];\n}\n\n// ── Comments ─────────────────────────────────────────────────────────────────\n\nexport async function getTaskComments(\n apiKey: string,\n taskId: string,\n): Promise<ClickUpComment[]> {\n const res = await clickupFetch<{ comments: ClickUpComment[] }>(\n `/task/${taskId}/comment`,\n apiKey,\n );\n return res.comments ?? [];\n}\n\nexport async function addTaskComment(\n apiKey: string,\n taskId: string,\n commentText: string,\n options: { assignee?: number; notifyAll?: boolean } = {},\n): Promise<ClickUpCommentCreateResult> {\n return clickupFetch<ClickUpCommentCreateResult>(`/task/${taskId}/comment`, apiKey, {\n method: 'POST',\n body: JSON.stringify({\n comment_text: commentText,\n assignee: options.assignee,\n notify_all: options.notifyAll ?? false,\n }),\n });\n}\n\n// ── Spaces ────────────────────────────────────────────────────────────────────\n\nexport async function createSpace(\n apiKey: string,\n teamId: string,\n body: CreateSpaceInput,\n): Promise<ClickUpSpaceDetail> {\n const team = await resolveTeam(apiKey, teamId);\n return clickupFetch<ClickUpSpaceDetail>(`/team/${team.id}/space`, apiKey, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport async function updateSpace(\n apiKey: string,\n spaceId: string,\n body: UpdateSpaceInput,\n): Promise<ClickUpSpaceDetail> {\n return clickupFetch<ClickUpSpaceDetail>(`/space/${spaceId}`, apiKey, {\n method: 'PUT',\n body: JSON.stringify(body),\n });\n}\n\nexport async function deleteSpace(apiKey: string, spaceId: string): Promise<void> {\n await clickupFetch<void>(`/space/${spaceId}`, apiKey, { method: 'DELETE' });\n}\n\n// ── Folders ───────────────────────────────────────────────────────────────────\n\nexport async function createFolder(\n apiKey: string,\n spaceId: string,\n body: CreateFolderInput,\n): Promise<ClickUpFolder> {\n return clickupFetch<ClickUpFolder>(`/space/${spaceId}/folder`, apiKey, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport async function updateFolder(\n apiKey: string,\n folderId: string,\n body: UpdateFolderInput,\n): Promise<ClickUpFolder> {\n return clickupFetch<ClickUpFolder>(`/folder/${folderId}`, apiKey, {\n method: 'PUT',\n body: JSON.stringify(body),\n });\n}\n\nexport async function deleteFolder(apiKey: string, folderId: string): Promise<void> {\n await clickupFetch<void>(`/folder/${folderId}`, apiKey, { method: 'DELETE' });\n}\n\n// ── Lists (create/update/delete) ──────────────────────────────────────────────\n\nexport async function createListInFolder(\n apiKey: string,\n folderId: string,\n body: CreateListInput,\n): Promise<ClickUpList> {\n return clickupFetch<ClickUpList>(`/folder/${folderId}/list`, apiKey, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport async function createListInSpace(\n apiKey: string,\n spaceId: string,\n body: CreateListInput,\n): Promise<ClickUpList> {\n return clickupFetch<ClickUpList>(`/space/${spaceId}/list`, apiKey, {\n method: 'POST',\n body: JSON.stringify(body),\n });\n}\n\nexport async function updateList(\n apiKey: string,\n listId: string,\n body: UpdateListInput,\n): Promise<ClickUpList> {\n return clickupFetch<ClickUpList>(`/list/${listId}`, apiKey, {\n method: 'PUT',\n body: JSON.stringify(body),\n });\n}\n\nexport async function deleteList(apiKey: string, listId: string): Promise<void> {\n await clickupFetch<void>(`/list/${listId}`, apiKey, { method: 'DELETE' });\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kb-labs/clickup-core",
|
|
3
|
-
"version": "2.119.0
|
|
3
|
+
"version": "2.119.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Business logic for clickup (pure, testable in isolation).",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
],
|
|
17
17
|
"sideEffects": false,
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@kb-labs/clickup-contracts": "2.119.0
|
|
19
|
+
"@kb-labs/clickup-contracts": "2.119.0",
|
|
20
20
|
"@kb-labs/sdk": "2.115.4"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
"tsup": "^8.5.0",
|
|
26
26
|
"typescript": "^5.6.3",
|
|
27
27
|
"vitest": "^3.2.6",
|
|
28
|
-
"@kb-labs/devkit": "2.119.0
|
|
28
|
+
"@kb-labs/devkit": "2.119.0"
|
|
29
29
|
},
|
|
30
30
|
"engines": {
|
|
31
|
-
"node": ">=
|
|
31
|
+
"node": ">=24.0.0",
|
|
32
32
|
"pnpm": ">=9.0.0"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|