@jchat/create-addon 1.0.0-alpha.30 → 1.0.0-alpha.32

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/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @jchat/create-addon
2
2
 
3
+ ## 1.0.0-alpha.32
4
+
5
+ ### Patch Changes
6
+
7
+ - Bumped `@jchat/*` dependencies:
8
+ - [`addon-sdk@1.0.0-alpha.32`](https://github.com/jchatcloud/jchat/releases/tag/addon-sdk@v1.0.0-alpha.32)
9
+
10
+ ## 1.0.0-alpha.31
11
+
12
+ ### Patch Changes
13
+
14
+ - Update addon test template for mandatory English and optional host translations
15
+
16
+ - Update addon scaffolding templates to import UI and icons from @jchat/addon-sdk/ui
17
+
18
+ - Upgrade package type-checking to native bun check for faster validation
19
+
20
+ - Bumped `@jchat/*` dependencies:
21
+ - [`addon-sdk@1.0.0-alpha.31`](https://github.com/jchatcloud/jchat/releases/tag/addon-sdk@v1.0.0-alpha.31)
22
+
3
23
  ## 1.0.0-alpha.30
4
24
 
5
25
  ### Patch Changes
package/README.md CHANGED
@@ -183,8 +183,7 @@ Addons mount into specific extension slots across the host application:
183
183
  Generated addons import exclusively from `@jchat/addon-sdk` subpaths:
184
184
 
185
185
  - **`@jchat/addon-sdk`**: Manifest definitions, backend Elysia server utilities, permissions, contracts, and lifecycle types.
186
- - **`@jchat/addon-sdk/ui`**: Base UI component library, design tokens, and unified `toast` notifications (`import { Button, toast } from "@jchat/addon-sdk/ui"`).
187
- - **`@jchat/addon-sdk/icon`**: Centralized icon pack with direct TypeScript definitions (`import Icons from "@jchat/addon-sdk/icon"`).
186
+ - **`@jchat/addon-sdk/ui`**: Base UI component library, design tokens, unified `toast` notifications, and icons (`import { Button, Icons, toast } from "@jchat/addon-sdk/ui"`).
188
187
  - **`@jchat/addon-sdk/state`**: Shared atomic state powered by Jotai (`import { atom, useAtom } from "@jchat/addon-sdk/state"`).
189
188
 
190
189
  ---
@@ -100,7 +100,7 @@ export default (
100
100
  }
101
101
  `}function c(e,t,n){return n?`import type { AddonProps } from "@jchat/addon-sdk"
102
102
  import { useAddonMutation, useAddonQuery, useAddonSDK, useTranslation } from "@jchat/addon-sdk"
103
- import Icons from "@jchat/addon-sdk/icon"
103
+ import { Icons } from "@jchat/addon-sdk/ui"
104
104
  import { useState } from "react"
105
105
  import locales from "./locales"
106
106
  import "./tailwind.css"
@@ -209,7 +209,7 @@ export default function Addon({ mountPoint, roomId }: AddonProps) {
209
209
  }
210
210
  `:`import type { AddonProps } from "@jchat/addon-sdk"
211
211
  import { useAddonSDK, useTranslation } from "@jchat/addon-sdk"
212
- import Icons from "@jchat/addon-sdk/icon"
212
+ import { Icons } from "@jchat/addon-sdk/ui"
213
213
  import locales from "./locales"
214
214
  import "./tailwind.css"
215
215
 
@@ -435,7 +435,7 @@ import { validateAddonLocales } from "@jchat/addon-sdk/i18n-validator"
435
435
  import * as path from "node:path"
436
436
 
437
437
  describe("addon locales", () => {
438
- test("maintains key parity across all 20 host languages", () => {
438
+ test("validates mandatory English locale and host translations", () => {
439
439
  const localesDir = path.join(import.meta.dir, "locales")
440
440
  const result = validateAddonLocales(localesDir)
441
441
  if (!result.valid) {
@@ -460,7 +460,7 @@ describe("addon locales", () => {
460
460
  const manifest: AddonManifest = ${JSON.stringify(e,null,2)}
461
461
 
462
462
  export default manifest
463
- `}function y(){return`@import "@jchat/addon-sdk/ui/tailwind.css";`}var b={name:`jchat`,version:`0.0.0`,private:!0,author:{name:`Jchat Cloud`,email:`support@jchatcloud.com`,url:`https://github.com/jchatcloud`},workspaces:[`apps/*`,`!apps/android`,`packages/*`,`addons/*`],scripts:{dev:`bun run --parallel chat:dev addons:dev`,"chat:dev":`bun --watch apps/chat/server.ts`,build:`bun run --filter @jchat/chat build`,start:`bun apps/chat/server.ts`,"db:generate":`bun --env-file=.env --filter="@jchat/db" run db:generate`,"db:migrate":`bun --env-file=.env --filter="@jchat/db" run db:migrate`,"db:seed":`bun --env-file=.env --filter="@jchat/db" run db:seed`,"db:studio":`bun --env-file=.env --filter="@jchat/db" run db:studio`,"db:push":`bun --env-file=.env --filter="@jchat/db" run db:push`,"db:pull":`bun --env-file=.env --filter="@jchat/db" run db:pull`,"icon:build":`bun run --filter @jchat/icon build`,"ui:build":`bun run --filter @jchat/ui build`,"addon-sdk:build":`bun run icon:build && bun run ui:build && bun run --filter @jchat/addon-sdk build`,"create-addon:build":`bun run --filter @jchat/create-addon build`,"create-addon:test":`bun run --filter @jchat/create-addon test`,"create-addon":`bun run ./packages/create-addon/src/cli.ts`,"runtime:build":`bun run --filter @jchat/runtime build`,"addons:dev":`bun --filter='./addons/*' --parallel run dev`,"addons:init":`bun run ./packages/create-addon/src/cli.ts --workspace`,"addons:sync":`bun run ./scripts/sync-local-addons.ts`,"addons:sandbox":`bun run ./scripts/developer-sandbox.ts run`,"addons:sandbox:init":`bun run ./scripts/developer-sandbox.ts init`,"addons:sandbox:test":`bun run ./scripts/developer-sandbox.ts test`,"addons:sandbox:reset":`bun run ./scripts/developer-sandbox.ts reset`,"addons:sandbox:package":`bun run ./scripts/developer-sandbox.ts package`,"addons:sandbox:cleanup":`bun run ./scripts/developer-sandbox.ts cleanup`,"addons:package":`bun run ./scripts/package-addons.ts`,"addon:release":`bun run ./scripts/release-addon.ts`,"addons:devkit:init":`bun run ./scripts/create-addon-development-kit.ts`,"addons:devkit:artifacts:check":`bun run addon-sdk:build && bun run create-addon:build && bun run ./scripts/validate-addon-development-artifacts.ts`,"store:build":`bun run --filter @jchat/store build`,"store:dev":`bun --watch apps/store/server.ts`,"store:db:generate":`bun --filter @jchat/store db:generate`,"store:db:migrate":`bun --env-file=apps/store/.env --filter @jchat/store db:migrate`,"store:db:seed":`bun --env-file=apps/store/.env --filter @jchat/store db:seed`,"store:test":`bun run --filter @jchat/store test`,"store:contracts:test":`bun run --filter @jchat/store-contracts test`,"license:build":`bun run --filter @jchat/license build`,"license:dev":`bun --watch apps/license/server.ts`,"license:start":`bun run --filter @jchat/license start`,"license:db:generate":`bun --filter @jchat/license db:generate`,"license:db:push":`bun --filter @jchat/license db:push`,"license:test":`bun --env-file=apps/license/.env.test test apps/license`,prepare:`git config core.hooksPath .githooks && bun run addon-sdk:build && bun run runtime:build`,predev:`bun run addon-sdk:build && bun run runtime:build`,release:`bun run ./scripts/release.ts`,"version:addon-sdk":`bun run ./scripts/set-addon-artifact-version.ts sdk`,"version:create-addon":`bun run ./scripts/set-addon-artifact-version.ts creator`,"check:translations":`bun ./scripts/check-translations.ts`,"audit:changes":`bun ./scripts/audit-changes.ts`,"update:geoip":`bun ./scripts/update-geoip.ts`,test:`bun --filter="@jchat/chat" run test:api`,"test:api":`bun --env-file=.env.test --filter="@jchat/chat" run test:api`,"test:unit":`bun --filter="@jchat/chat" run test:unit`,"test:packages":`bun test packages/`,"test:store":`bun run --filter @jchat/store test`,"test:license":`bun --env-file=apps/license/.env.test test apps/license`,"test:watch":`bun --filter="@jchat/chat" run test:api:watch`,"test:coverage":`bun --filter="@jchat/chat" run test:api:coverage`,"test:e2e":`playwright test`,"test:e2e:ui":`playwright test --ui`,"benchmark:chat":`bun run ./scripts/benchmark-chat.ts`,pretypecheck:`bun run addon-sdk:build && bun run runtime:build`,typecheck:`bun --filter='*' run typecheck`,lint:`bun --filter='*' run lint`,format:`bun --filter='*' run format`,change:`bun run ./scripts/release-engine/cli.ts`,"version-packages":`bun run ./scripts/release-engine/version.ts`,"release-packages":`bun run ./scripts/release-engine/publish.ts`,"sync-changelogs":`bun run ./scripts/release-engine/sync-changelog.ts`},devDependencies:{"@clack/prompts":`catalog:`,"@playwright/test":`^1.63.0`,"@types/bun":`catalog:`,elysia:`catalog:`,oxfmt:`catalog:`,oxlint:`catalog:`,typescript:`catalog:`},engines:{node:`>=22.22.0`},packageManager:`bun@1.4.0`,catalog:{"@better-auth/api-key":`^1.7.7`,"@better-auth/passkey":`^1.7.7`,"@casl/ability":`^7.0.1`,"@casl/react":`^7.0.1`,"@clack/prompts":`^1.8.1`,"@daypicker/react":`^10.0.2`,"@elysiajs/cors":`^1.4.1`,"@elysiajs/cron":`^1.4.2`,"@elysiajs/eden":`^1.4.9`,"@elysiajs/static":`^1.4.10`,"@react-router/dev":`^8.4.0`,"@react-router/node":`^8.4.0`,"@react-router/serve":`^8.4.0`,"@tailwindcss/vite":`^4.3.3`,"@tanstack/react-query":`^5.104.0`,"@tanstack/react-virtual":`^3.14.13`,"@types/bun":`^1.4.2`,"@types/nodemailer":`^8.0.2`,"@types/react":`^19.3.0`,"@types/react-dom":`^19.3.0`,"better-auth":`^1.7.7`,cn:`^0.4.0`,"date-fns":`4.4.0`,"drizzle-orm":`^0.45.3`,"drizzle-kit":`^0.31.11`,effect:`^4.0.0`,elysia:`^1.4.30`,"elysia-helmet":`^3.0.0`,"elysia-ip":`^1.1.1`,"elysia-rate-limit":`^4.6.3`,motion:`^13.5.0`,nodemailer:`^10.0.13`,i18next:`^26.4.2`,"i18next-browser-languagedetector":`^8.2.1`,isbot:`^5.2.2`,jotai:`^3.0.1`,kysely:`^0.29.6`,"lucide-react":`1.49.0`,oxfmt:`^0.71.0`,oxlint:`^1.86.0`,react:`^19.3.0`,"react-dom":`^19.3.0`,"react-hook-form":`7.54.2`,"react-hot-toast":`^2.6.1`,"react-i18next":`^17.0.15`,"react-router":`^8.4.0`,"tailwind-scrollbar":`^4.0.2`,tailwindcss:`^4.3.3`,tsdown:`0.23.0`,typescript:`^7.0.2`,vite:`^8.3.2`,zod:`^4.6.5`},trustedDependencies:[`@tailwindcss/oxide`,`esbuild`,`unrs-resolver`]};function x(){return b&&`catalog`in b&&typeof b.catalog==`object`&&b.catalog!==null?b.catalog:{}}function S(e){return{name:`${e}-development-kit`,private:!0,type:`module`,workspaces:[`addon`],scripts:{sandbox:`bun run ./scripts/devkit.ts run`,"sandbox:test":`bun run ./scripts/devkit.ts test`,"sandbox:reset":`bun run ./scripts/devkit.ts reset`,"sandbox:package":`bun run ./scripts/devkit.ts package`,"sandbox:cleanup":`bun run ./scripts/devkit.ts cleanup`},devDependencies:{"@types/bun":`^1.4.0`},engines:{bun:`>=1.4.0`}}}function C(e,t){return{name:`@jchat/${e}`,version:`1.0.0-alpha.0`,private:!0,description:`${t} addon for JChat`,repository:{type:`git`,url:`git+https://github.com/jchatcloud/jchat.git`,directory:`addons/${e}`},type:`module`,scripts:{dev:`jchat-addon dev`,build:`tsc --noEmit && jchat-addon build`,test:`bun test`,lint:`oxlint .`,format:`oxfmt . --write`,typecheck:`tsc --noEmit`},dependencies:{},devDependencies:{"@tailwindcss/vite":`catalog:`,"@types/bun":`catalog:`,"@types/react":`catalog:`,"@types/react-dom":`catalog:`,elysia:`catalog:`,vite:`catalog:`},peerDependencies:{"@jchat/addon-sdk":`workspace:*`,"@tanstack/react-query":`catalog:`,react:`catalog:`,"react-dom":`catalog:`}}}function w(e,t){let n=x();return{name:`@jchat/${e}`,version:`1.0.0`,private:!0,type:`module`,scripts:{dev:`jchat-addon dev`,build:`tsc --noEmit && jchat-addon build`,test:`bun test`,typecheck:`tsc --noEmit`},dependencies:{},devDependencies:{"@tailwindcss/vite":n[`@tailwindcss/vite`]??`^4.3.3`,"@types/bun":n[`@types/bun`]??`^1.4.0`,"@types/react":n[`@types/react`]??`^19.2.18`,"@types/react-dom":n[`@types/react-dom`]??`^19.2.4`,elysia:n.elysia??`^1.4.29`,tailwindcss:n.tailwindcss??`^4.3.3`,vite:n.vite??`^8.2.1`},peerDependencies:{"@jchat/addon-sdk":`^${t}`,"@tanstack/react-query":n[`@tanstack/react-query`]??`^5.101.4`,react:n.react??`^19.2.8`,"react-dom":n[`react-dom`]??`^19.2.8`}}}function T(){return{extends:`@jchat/addon-sdk/tsconfig.json`,include:[`src/**/*`]}}function E(){return{extends:`@jchat/addon-sdk/tsconfig.json`,include:[`src/**/*.ts`,`src/**/*.tsx`]}}function D(){return`---
463
+ `}function y(){return`@import "@jchat/addon-sdk/ui";`}var b={name:`jchat`,version:`0.0.0`,private:!0,author:{name:`Jchat Cloud`,email:`support@jchatcloud.com`,url:`https://github.com/jchatcloud`},workspaces:[`apps/*`,`!apps/android`,`packages/*`,`addons/*`],scripts:{dev:`bun run --parallel chat:dev addons:dev`,"chat:dev":`bun --watch apps/chat/server.ts`,build:`bun run --filter @jchat/chat build`,start:`bun apps/chat/server.ts`,"db:generate":`bun --env-file=.env --filter="@jchat/db" run db:generate`,"db:migrate":`bun --env-file=.env --filter="@jchat/db" run db:migrate`,"db:seed":`bun --env-file=.env --filter="@jchat/db" run db:seed`,"db:studio":`bun --env-file=.env --filter="@jchat/db" run db:studio`,"db:push":`bun --env-file=.env --filter="@jchat/db" run db:push`,"db:pull":`bun --env-file=.env --filter="@jchat/db" run db:pull`,"ui:build":`bun run --filter @jchat/ui build`,"addon-sdk:build":`bun run ui:build; bun run --filter @jchat/addon-sdk build`,"create-addon:build":`bun run --filter @jchat/create-addon build`,"create-addon:test":`bun run --filter @jchat/create-addon test`,"create-addon":`bun run ./packages/create-addon/src/cli.ts`,"runtime:build":`bun run --filter @jchat/runtime build`,"addons:dev":`bun --filter='./addons/*' --parallel run dev`,"addons:init":`bun run ./packages/create-addon/src/cli.ts --workspace`,"addons:sync":`bun run ./scripts/sync-local-addons.ts`,"addons:sandbox":`bun run ./scripts/developer-sandbox.ts run`,"addons:sandbox:init":`bun run ./scripts/developer-sandbox.ts init`,"addons:sandbox:test":`bun run ./scripts/developer-sandbox.ts test`,"addons:sandbox:reset":`bun run ./scripts/developer-sandbox.ts reset`,"addons:sandbox:package":`bun run ./scripts/developer-sandbox.ts package`,"addons:sandbox:cleanup":`bun run ./scripts/developer-sandbox.ts cleanup`,"addons:package":`bun run ./scripts/package-addons.ts`,"addon:release":`bun run ./scripts/release-addon.ts`,"addons:devkit:init":`bun run ./scripts/create-addon-development-kit.ts`,"addons:devkit:artifacts:check":`bun run addon-sdk:build && bun run create-addon:build && bun run ./scripts/validate-addon-development-artifacts.ts`,openspec:`openspec`,"store:build":`bun run --filter @jchat/store build`,"store:dev":`bun --watch apps/store/server.ts`,"store:db:generate":`bun --filter @jchat/store db:generate`,"store:db:migrate":`bun --env-file=apps/store/.env --filter @jchat/store db:migrate`,"store:db:seed":`bun --env-file=apps/store/.env --filter @jchat/store db:seed`,"store:test":`bun run --filter @jchat/store test`,"store:contracts:test":`bun run --filter @jchat/store-contracts test`,"license:build":`bun run --filter @jchat/license build`,"license:dev":`bun --watch apps/license/server.ts`,"license:start":`bun run --filter @jchat/license start`,"license:db:generate":`bun --filter @jchat/license db:generate`,"license:db:push":`bun --filter @jchat/license db:push`,"license:test":`bun --env-file=apps/license/.env.test test apps/license`,prepare:`git config core.hooksPath .githooks`,release:`bun run ./scripts/release.ts`,"version:addon-sdk":`bun run ./scripts/set-addon-artifact-version.ts sdk`,"version:create-addon":`bun run ./scripts/set-addon-artifact-version.ts creator`,"check:translations":`bun ./scripts/check-translations.ts`,"audit:changes":`bun ./scripts/audit-changes.ts`,"update:geoip":`bun ./scripts/update-geoip.ts`,test:`bun --filter="@jchat/chat" run test:api`,"test:api":`bun --env-file=.env.test --filter="@jchat/chat" run test:api`,"test:unit":`bun --filter="@jchat/chat" run test:unit`,"test:packages":`bun test packages/`,"test:store":`bun run --filter @jchat/store test`,"test:license":`bun --env-file=apps/license/.env.test test apps/license`,"test:watch":`bun --filter="@jchat/chat" run test:api:watch`,"test:coverage":`bun --filter="@jchat/chat" run test:api:coverage`,"test:e2e":`playwright test`,"test:e2e:ui":`playwright test --ui`,"benchmark:chat":`bun run ./scripts/benchmark-chat.ts`,typecheck:`bun --filter="*" run typecheck`,lint:`bun --filter="*" run lint`,format:`bun --filter="*" run format`,change:`bun run ./scripts/release-engine/cli.ts`,"version-packages":`bun run ./scripts/release-engine/version.ts`,"release-packages":`bun run ./scripts/release-engine/publish.ts`,"sync-changelogs":`bun run ./scripts/release-engine/sync-changelog.ts`},devDependencies:{"@clack/prompts":`catalog:`,"@fission-ai/openspec":`^1.14.1`,"@playwright/test":`^1.63.0`,"@types/bun":`catalog:`,elysia:`catalog:`,oxfmt:`catalog:`,oxlint:`catalog:`,typescript:`catalog:`},engines:{node:`>=22.22.0`},packageManager:`bun@1.4.3`,catalog:{"@better-auth/api-key":`^1.7.7`,"@better-auth/passkey":`^1.7.7`,"@casl/ability":`^7.0.1`,"@casl/react":`^7.0.1`,"@clack/prompts":`^1.8.1`,"@daypicker/react":`^10.0.2`,"@elysiajs/cors":`^1.4.1`,"@elysiajs/cron":`^1.4.2`,"@elysiajs/eden":`^1.4.9`,"@elysiajs/static":`^1.4.10`,"@react-router/dev":`^8.4.0`,"@react-router/node":`^8.4.0`,"@react-router/serve":`^8.4.0`,"@tailwindcss/vite":`^4.3.3`,"@tanstack/react-query":`^5.104.0`,"@tanstack/react-virtual":`^3.14.13`,"@types/bun":`^1.4.2`,"@types/nodemailer":`^8.0.2`,"@types/react":`^19.3.0`,"@types/react-dom":`^19.3.0`,"better-auth":`^1.7.7`,cn:`^0.4.0`,"date-fns":`4.4.0`,"drizzle-orm":`^1.0.0-rc.4`,"drizzle-kit":`^1.0.0-rc.4`,elysia:`^1.4.30`,"elysia-ip":`^1.1.1`,"elysia-rate-limit":`^4.6.3`,motion:`^13.5.0`,nodemailer:`^10.0.13`,i18next:`^26.4.2`,"i18next-browser-languagedetector":`^8.2.1`,isbot:`^5.2.2`,jotai:`^3.0.1`,kysely:`^0.29.6`,"lucide-react":`1.49.0`,oxfmt:`^0.71.0`,oxlint:`^1.86.0`,react:`^19.3.0`,"react-dom":`^19.3.0`,"react-hot-toast":`^2.6.1`,"react-i18next":`^17.0.15`,"react-router":`^8.4.0`,"tailwind-scrollbar":`^4.0.2`,tailwindcss:`^4.3.3`,tsdown:`0.23.0`,typescript:`^7.0.2`,vite:`^8.3.2`,zod:`^4.6.5`},trustedDependencies:[`@tailwindcss/oxide`,`esbuild`,`unrs-resolver`]};function x(){return b&&`catalog`in b&&typeof b.catalog==`object`&&b.catalog!==null?b.catalog:{}}function S(e){return{name:`${e}-development-kit`,private:!0,type:`module`,workspaces:[`addon`],scripts:{sandbox:`bun run ./scripts/devkit.ts run`,"sandbox:test":`bun run ./scripts/devkit.ts test`,"sandbox:reset":`bun run ./scripts/devkit.ts reset`,"sandbox:package":`bun run ./scripts/devkit.ts package`,"sandbox:cleanup":`bun run ./scripts/devkit.ts cleanup`},devDependencies:{"@types/bun":`^1.4.0`},engines:{bun:`>=1.4.0`}}}function C(e,t){return{name:`@jchat/${e}`,version:`1.0.0-alpha.0`,private:!0,description:`${t} addon for JChat`,repository:{type:`git`,url:`git+https://github.com/jchatcloud/jchat.git`,directory:`addons/${e}`},type:`module`,scripts:{dev:`jchat-addon dev`,build:`tsc --noEmit && jchat-addon build`,test:`bun test`,lint:`oxlint .`,format:`oxfmt . --write`,typecheck:`tsc --noEmit`},dependencies:{},devDependencies:{"@tailwindcss/vite":`catalog:`,"@types/bun":`catalog:`,"@types/react":`catalog:`,"@types/react-dom":`catalog:`,elysia:`catalog:`,vite:`catalog:`},peerDependencies:{"@jchat/addon-sdk":`workspace:*`,"@tanstack/react-query":`catalog:`,react:`catalog:`,"react-dom":`catalog:`}}}function w(e,t){let n=x();return{name:`@jchat/${e}`,version:`1.0.0`,private:!0,type:`module`,scripts:{dev:`jchat-addon dev`,build:`tsc --noEmit && jchat-addon build`,test:`bun test`,typecheck:`tsc --noEmit`},dependencies:{},devDependencies:{"@tailwindcss/vite":n[`@tailwindcss/vite`]??`^4.3.3`,"@types/bun":n[`@types/bun`]??`^1.4.0`,"@types/react":n[`@types/react`]??`^19.2.18`,"@types/react-dom":n[`@types/react-dom`]??`^19.2.4`,elysia:n.elysia??`^1.4.29`,tailwindcss:n.tailwindcss??`^4.3.3`,vite:n.vite??`^8.2.1`},peerDependencies:{"@jchat/addon-sdk":`^${t}`,"@tanstack/react-query":n[`@tanstack/react-query`]??`^5.101.4`,react:n.react??`^19.2.8`,"react-dom":n[`react-dom`]??`^19.2.8`}}}function T(){return{extends:`@jchat/addon-sdk/tsconfig.json`,include:[`src/**/*`]}}function E(){return{extends:`@jchat/addon-sdk/tsconfig.json`,include:[`src/**/*.ts`,`src/**/*.tsx`]}}function D(){return`---
464
464
  name: jchat-addon-development
465
465
  description: Comprehensive guide for developing JChat addons using @jchat/addon-sdk, including manifests, UI widgets, direct icon imports, Elysia backend, isolated DB schemas, and i18n.
466
466
  ---
@@ -474,11 +474,11 @@ Use this skill when developing, updating, or debugging JChat addons using \`@jch
474
474
  ## 1. Architectural Guardrails (Non-Negotiable)
475
475
 
476
476
  1. **Import Boundaries**:
477
- - Addons MUST ONLY import \`@jchat/addon-sdk\`, \`@jchat/addon-sdk/ui\` (components & toast), \`@jchat/addon-sdk/state\` (atomic state), \`@jchat/addon-sdk/icon\`, and \`@jchat/addon-sdk/server\`.
478
- - NEVER import private internal monorepo packages (\`@jchat/icon\`, \`@jchat/ui\`, \`@jchat/db\`, \`@jchat/shared\`, etc.).
477
+ - Addons MUST ONLY import \`@jchat/addon-sdk\`, \`@jchat/addon-sdk/ui\` (components, icons & toast), \`@jchat/addon-sdk/state\` (atomic state), and \`@jchat/addon-sdk/server\`.
478
+ - NEVER import private internal monorepo packages (\`@jchat/ui\`, \`@jchat/db\`, \`@jchat/shared\`, etc.).
479
479
  - Host externals (\`react\`, \`react-dom\`, \`@tanstack/react-query\`) are provided at runtime by the JChat host.
480
480
  2. **Icons**:
481
- - Use direct imports: \`import Icons from "@jchat/addon-sdk/icon"\`.
481
+ - Use direct imports: \`import { Icons } from "@jchat/addon-sdk/ui"\`.
482
482
  - Never call \`useIcons()\` or install \`lucide-react\` / \`react-icons\` directly in the addon.
483
483
  3. **Database Isolation**:
484
484
  - All addon tables MUST reside in the isolated \`addons\` PostgreSQL schema (e.g. \`addons.GlimpseStories\`).
@@ -542,7 +542,7 @@ import {
542
542
  useAddonMutation,
543
543
  useAddonTranslation
544
544
  } from "@jchat/addon-sdk"
545
- import Icons from "@jchat/addon-sdk/icon"
545
+ import { Icons } from "@jchat/addon-sdk/ui"
546
546
 
547
547
  export default function PollwiseAddon({ mountPoint, roomId }: AddonProps) {
548
548
  const sdk = useAddonSDK()
@@ -596,7 +596,7 @@ export default function PollwiseAddon({ mountPoint, roomId }: AddonProps) {
596
596
  ### Direct Icon Usage
597
597
  Icons are rendered directly:
598
598
  \`\`\`tsx
599
- import Icons, { resolveIcon } from "@jchat/addon-sdk/icon"
599
+ import { Icons, resolveIcon } from "@jchat/addon-sdk/ui"
600
600
 
601
601
  // Direct JSX:
602
602
  <Icons.Sparkles className="size-4 text-primary" />
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jchat/create-addon",
3
- "version": "1.0.0-alpha.30",
3
+ "version": "1.0.0-alpha.32",
4
4
  "private": false,
5
5
  "description": "Command line tool for jchat addon creation.",
6
6
  "keywords": [
@@ -49,7 +49,7 @@
49
49
  "test": "bun test",
50
50
  "lint": "oxlint .",
51
51
  "format": "oxfmt . --write",
52
- "typecheck": "tsc --noEmit"
52
+ "typecheck": "bun check"
53
53
  },
54
54
  "dependencies": {
55
55
  "@clack/prompts": "catalog:"