@jchat/create-addon 1.0.0-alpha.12 → 1.0.0-alpha.15

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,19 @@
1
1
  # @jchat/create-addon
2
2
 
3
+ ## 1.0.0-alpha.15
4
+
5
+ ### Patch Changes
6
+
7
+ - adba4c7: Remove redundant `prepack` build lifecycle scripts across addon development and runtime packages to eliminate concurrent build race conditions during publication.
8
+
9
+ ## 1.0.0-alpha.14
10
+
11
+ No changes in this release.
12
+
13
+ ## 1.0.0-alpha.13
14
+
15
+ No changes in this release.
16
+
3
17
  ## 1.0.0-alpha.12
4
18
 
5
19
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- import{t as e}from"./contracts.d.mts";import*as t from"node:fs";import*as n from"node:path";function r(e){try{Bun.semver.order(e,e)}catch{throw Error(`Invalid semantic version: ${e}`)}let t=/^(?:v|=)?(\d+)\./.exec(e)?.[1],n=t?Number(t):NaN;if(!Number.isSafeInteger(n))throw Error(`Invalid semantic version: ${e}`);return`>=${e} <${n+1}.0.0`}const i=[`ar`,`bg`,`de`,`el`,`en`,`es`,`fr`,`he`,`hi`,`hr`,`kn`,`ml`,`nl`,`pt`,`ro`,`ru`,`ta`,`te`,`tr`,`ur`],a=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,o={ar:e=>({welcome:`مرحبًا بك في ${e}`,mounted_at:`تم التثبيت في {{mountPoint}}`,test_button:`اختبار الإضافة`,toast_message:`مرحبًا من ${e}`}),bg:e=>({welcome:`Добре дошли в ${e}`,mounted_at:`Монтирано на {{mountPoint}}`,test_button:`Тестване на добавката`,toast_message:`Здравейте от ${e}`}),de:e=>({welcome:`Willkommen bei ${e}`,mounted_at:`Eingebunden an {{mountPoint}}`,test_button:`Addon testen`,toast_message:`Hallo von ${e}`}),el:e=>({welcome:`Καλώς ήρθατε στο ${e}`,mounted_at:`Προσαρτήθηκε στο {{mountPoint}}`,test_button:`Δοκιμή πρόσθετου`,toast_message:`Γεια σας από το ${e}`}),en:e=>({welcome:`Welcome to ${e}`,mounted_at:`Mounted at {{mountPoint}}`,test_button:`Test addon`,toast_message:`Hello from ${e}`}),es:e=>({welcome:`Bienvenido a ${e}`,mounted_at:`Montado en {{mountPoint}}`,test_button:`Probar complemento`,toast_message:`Hola desde ${e}`}),fr:e=>({welcome:`Bienvenue sur ${e}`,mounted_at:`Monté sur {{mountPoint}}`,test_button:`Tester le plugin`,toast_message:`Bonjour de ${e}`}),he:e=>({welcome:`ברוכים הבאים אל ${e}`,mounted_at:`מותקן ב-{{mountPoint}}`,test_button:`בדיקת התוסף`,toast_message:`שלום מאת ${e}`}),hi:e=>({welcome:`${e} में आपका स्वागत है`,mounted_at:`{{mountPoint}} पर माउंट किया गया`,test_button:`ऐडऑन का परीक्षण करें`,toast_message:`${e} की ओर से नमस्कार`}),hr:e=>({welcome:`Dobrodošli u ${e}`,mounted_at:`Ugrađeno na {{mountPoint}}`,test_button:`Testiraj dodatak`,toast_message:`Pozdrav iz ${e}`}),kn:e=>({welcome:`${e} ಗೆ ಸುಸ್ವಾಗತ`,mounted_at:`{{mountPoint}} ನಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾಗಿದೆ`,test_button:`ಆಡ್ಆನ್ ಪರೀಕ್ಷಿಸಿ`,toast_message:`${e} ನಿಂದ ನಮಸ್ಕಾರ`}),ml:e=>({welcome:`${e}-ലേക്ക് സ്വാഗതം`,mounted_at:`{{mountPoint}}-ൽ ഘടിപ്പിച്ചിരിക്കുന്നു`,test_button:`ആഡ്ഓൺ പരിശോധിക്കുക`,toast_message:`${e}-ൽ നിന്നുള്ള ആശംസകൾ`}),nl:e=>({welcome:`Welkom bij ${e}`,mounted_at:`Gemonteerd op {{mountPoint}}`,test_button:`Addon testen`,toast_message:`Hallo vanuit ${e}`}),pt:e=>({welcome:`Bem-vindo ao ${e}`,mounted_at:`Montado em {{mountPoint}}`,test_button:`Testar extensão`,toast_message:`Olá de ${e}`}),ro:e=>({welcome:`Bun venit la ${e}`,mounted_at:`Montat la {{mountPoint}}`,test_button:`Testează extensia`,toast_message:`Bună din ${e}`}),ru:e=>({welcome:`Добро пожаловать в ${e}`,mounted_at:`Подключено в {{mountPoint}}`,test_button:`Проверить дополнение`,toast_message:`Привет от ${e}`}),ta:e=>({welcome:`${e}-க்கு வரவேற்கிறோம்`,mounted_at:`{{mountPoint}}-ல் பொருத்தப்பட்டுள்ளது`,test_button:`செருகுநிரலை சோதிக்கவும்`,toast_message:`${e}-லிருந்து வணக்கம்`}),te:e=>({welcome:`${e}కి స్వాగతం`,mounted_at:`{{mountPoint}} వద్ద మౌంట్ చేయబడింది`,test_button:`యాడ్ఆన్‌ని పరీక్షించండి`,toast_message:`${e} నుండి నమస్కారం`}),tr:e=>({welcome:`${e}'e hoş geldiniz`,mounted_at:`{{mountPoint}} konumuna yerleştirildi`,test_button:`Eklentiyi test et`,toast_message:`${e}'den merhaba`}),ur:e=>({welcome:`${e} میں خوش آمدید`,mounted_at:`{{mountPoint}} پر نصب ہے`,test_button:`ایڈ آن کا تجربہ کریں`,toast_message:`${e} کی طرف سے ہیلو`})};function s(t){if(!a.test(t.addonId))throw Error(`Addon id must contain lowercase letters, numbers, and hyphens`);let n=(t.template??`ui`)===`fullstack`,s=t.displayName?.trim()||A(t.addonId),c=t.mountPoints&&t.mountPoints.length>0?t.mountPoints:[e.CHAT_TOOLBAR,e.CHAT_PLUS_MENU],l={id:t.addonId,name:s,version:`1.0.0`,description:`${s} addon for JChat`,author:`Developer`,compatibility:{jchat:r(t.jchatVersion),addonSdk:r(t.addonSdkVersion)},locales:[...i],defaultLocale:`en`,frontend:{bundle:`./ui.js`,mountPoints:c},...n?{server:{bundle:`./api.ts`,migrations:[`migrations/001_initial.sql`]},permissions:[`addon.${t.addonId}.use`,`addon.${t.addonId}.manage`],permissionDefinitions:[{name:`addon.${t.addonId}.use`,label:`Use ${s}`,description:`Access and use ${s} in chat`},{name:`addon.${t.addonId}.manage`,label:`Manage ${s}`,description:`Configure and moderate ${s} settings`}]}:{permissions:[]}},u=t.isMonorepoWorkspace?m(t.addonId,s):_(t.addonId,t.addonSdkVersion),d=t.isMonorepoWorkspace?h():v(),f={"package.json":`${JSON.stringify(u,null,2)}\n`,"tsconfig.json":`${JSON.stringify(d,null,2)}\n`,"src/manifest.ts":y(l),"src/tailwind.css":S(),"src/locales/index.ts":b(),"src/locales.test.ts":x(),"src/ui.tsx":E(s,c,n),".agents/skills/jchat-addon-development/SKILL.md":O()};for(let e of i){let t=o[e];f[`src/locales/${e}.json`]=`${JSON.stringify(t(s),null,2)}\n`}return n&&(f[`src/db.ts`]=C(),f[`src/api.ts`]=T(t.addonId),f[`migrations/001_initial.sql`]=w(t.addonId)),Object.freeze(f)}async function c(e){let r=n.resolve(e.targetDir);if(t.existsSync(r))throw Error(`Addon target already exists: ${r}`);let i=Object.entries(s(e));for(let[e]of i){let i=n.join(r,...e.split(`/`));t.mkdirSync(n.dirname(i),{recursive:!0})}await Promise.all(i.map(([e,t])=>{let i=n.join(r,...e.split(`/`));return Bun.write(i,t)}))}function l(e){if(!a.test(e.addonId))throw Error(`Addon id must contain lowercase letters, numbers, and hyphens`);let t=e.sandboxImage??`ghcr.io/mjjabarullah/jchat-sandbox:${e.jchatVersion.replace(/\+/g,`-`)}`,n=s({addonId:e.addonId,isMonorepoWorkspace:!1,jchatVersion:e.jchatVersion,addonSdkVersion:e.addonSdkVersion,template:e.template,mountPoints:e.mountPoints,displayName:e.displayName}),r={".env.example":d(e.addonId,t),".gitignore":[`node_modules/`,`addon/node_modules/`,`addon/build/`,`.env`,``].join(`
1
+ import{t as e}from"./contracts.d.mts";import*as t from"node:fs";import*as n from"node:path";var[r]=[8,()=>[],[``]];const i=[`ar`,`bg`,`de`,`el`,`en`,`es`,`fr`,`he`,`hi`,`hr`,`kn`,`ml`,`nl`,`pt`,`ro`,`ru`,`ta`,`te`,`tr`,`ur`],a=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,o={ar:e=>({welcome:`مرحبًا بك في ${e}`,mounted_at:`تم التثبيت في {{mountPoint}}`,test_button:`اختبار الإضافة`,toast_message:`مرحبًا من ${e}`}),bg:e=>({welcome:`Добре дошли в ${e}`,mounted_at:`Монтирано на {{mountPoint}}`,test_button:`Тестване на добавката`,toast_message:`Здравейте от ${e}`}),de:e=>({welcome:`Willkommen bei ${e}`,mounted_at:`Eingebunden an {{mountPoint}}`,test_button:`Addon testen`,toast_message:`Hallo von ${e}`}),el:e=>({welcome:`Καλώς ήρθατε στο ${e}`,mounted_at:`Προσαρτήθηκε στο {{mountPoint}}`,test_button:`Δοκιμή πρόσθετου`,toast_message:`Γεια σας από το ${e}`}),en:e=>({welcome:`Welcome to ${e}`,mounted_at:`Mounted at {{mountPoint}}`,test_button:`Test addon`,toast_message:`Hello from ${e}`}),es:e=>({welcome:`Bienvenido a ${e}`,mounted_at:`Montado en {{mountPoint}}`,test_button:`Probar complemento`,toast_message:`Hola desde ${e}`}),fr:e=>({welcome:`Bienvenue sur ${e}`,mounted_at:`Monté sur {{mountPoint}}`,test_button:`Tester le plugin`,toast_message:`Bonjour de ${e}`}),he:e=>({welcome:`ברוכים הבאים אל ${e}`,mounted_at:`מותקן ב-{{mountPoint}}`,test_button:`בדיקת התוסף`,toast_message:`שלום מאת ${e}`}),hi:e=>({welcome:`${e} में आपका स्वागत है`,mounted_at:`{{mountPoint}} पर माउंट किया गया`,test_button:`ऐडऑन का परीक्षण करें`,toast_message:`${e} की ओर से नमस्कार`}),hr:e=>({welcome:`Dobrodošli u ${e}`,mounted_at:`Ugrađeno na {{mountPoint}}`,test_button:`Testiraj dodatak`,toast_message:`Pozdrav iz ${e}`}),kn:e=>({welcome:`${e} ಗೆ ಸುಸ್ವಾಗತ`,mounted_at:`{{mountPoint}} ನಲ್ಲಿ ಸ್ಥಾಪಿಸಲಾಗಿದೆ`,test_button:`ಆಡ್ಆನ್ ಪರೀಕ್ಷಿಸಿ`,toast_message:`${e} ನಿಂದ ನಮಸ್ಕಾರ`}),ml:e=>({welcome:`${e}-ലേക്ക് സ്വാഗതം`,mounted_at:`{{mountPoint}}-ൽ ഘടിപ്പിച്ചിരിക്കുന്നു`,test_button:`ആഡ്ഓൺ പരിശോധിക്കുക`,toast_message:`${e}-ൽ നിന്നുള്ള ആശംസകൾ`}),nl:e=>({welcome:`Welkom bij ${e}`,mounted_at:`Gemonteerd op {{mountPoint}}`,test_button:`Addon testen`,toast_message:`Hallo vanuit ${e}`}),pt:e=>({welcome:`Bem-vindo ao ${e}`,mounted_at:`Montado em {{mountPoint}}`,test_button:`Testar extensão`,toast_message:`Olá de ${e}`}),ro:e=>({welcome:`Bun venit la ${e}`,mounted_at:`Montat la {{mountPoint}}`,test_button:`Testează extensia`,toast_message:`Bună din ${e}`}),ru:e=>({welcome:`Добро пожаловать в ${e}`,mounted_at:`Подключено в {{mountPoint}}`,test_button:`Проверить дополнение`,toast_message:`Привет от ${e}`}),ta:e=>({welcome:`${e}-க்கு வரவேற்கிறோம்`,mounted_at:`{{mountPoint}}-ல் பொருத்தப்பட்டுள்ளது`,test_button:`செருகுநிரலை சோதிக்கவும்`,toast_message:`${e}-லிருந்து வணக்கம்`}),te:e=>({welcome:`${e}కి స్వాగతం`,mounted_at:`{{mountPoint}} వద్ద మౌంట్ చేయబడింది`,test_button:`యాడ్ఆన్‌ని పరీక్షించండి`,toast_message:`${e} నుండి నమస్కారం`}),tr:e=>({welcome:`${e}'e hoş geldiniz`,mounted_at:`{{mountPoint}} konumuna yerleştirildi`,test_button:`Eklentiyi test et`,toast_message:`${e}'den merhaba`}),ur:e=>({welcome:`${e} میں خوش آمدید`,mounted_at:`{{mountPoint}} پر نصب ہے`,test_button:`ایڈ آن کا تجربہ کریں`,toast_message:`${e} کی طرف سے ہیلو`})};function s(t){if(!a.test(t.addonId))throw Error(`Addon id must contain lowercase letters, numbers, and hyphens`);let n=(t.template??`ui`)===`fullstack`,s=t.displayName?.trim()||A(t.addonId),c=t.mountPoints&&t.mountPoints.length>0?t.mountPoints:[e.CHAT_TOOLBAR,e.CHAT_PLUS_MENU],l={id:t.addonId,name:s,version:`1.0.0`,description:`${s} addon for JChat`,author:`Developer`,compatibility:{jchat:r(t.jchatVersion),addonSdk:r(t.addonSdkVersion)},locales:[...i],defaultLocale:`en`,frontend:{bundle:`./ui.js`,mountPoints:c},...n?{server:{bundle:`./api.ts`,migrations:[`migrations/001_initial.sql`]},permissions:[`addon.${t.addonId}.use`,`addon.${t.addonId}.manage`],permissionDefinitions:[{name:`addon.${t.addonId}.use`,label:`Use ${s}`,description:`Access and use ${s} in chat`},{name:`addon.${t.addonId}.manage`,label:`Manage ${s}`,description:`Configure and moderate ${s} settings`}]}:{permissions:[]}},u=t.isMonorepoWorkspace?m(t.addonId,s):_(t.addonId,t.addonSdkVersion),d=t.isMonorepoWorkspace?h():v(),f={"package.json":`${JSON.stringify(u,null,2)}\n`,"tsconfig.json":`${JSON.stringify(d,null,2)}\n`,"src/manifest.ts":y(l),"src/tailwind.css":S(),"src/locales/index.ts":b(),"src/locales.test.ts":x(),"src/ui.tsx":E(s,c,n),".agents/skills/jchat-addon-development/SKILL.md":O()};for(let e of i){let t=o[e];f[`src/locales/${e}.json`]=`${JSON.stringify(t(s),null,2)}\n`}return n&&(f[`src/db.ts`]=C(),f[`src/api.ts`]=T(t.addonId),f[`migrations/001_initial.sql`]=w(t.addonId)),Object.freeze(f)}async function c(e){let r=n.resolve(e.targetDir);if(t.existsSync(r))throw Error(`Addon target already exists: ${r}`);let i=Object.entries(s(e));for(let[e]of i){let i=n.join(r,...e.split(`/`));t.mkdirSync(n.dirname(i),{recursive:!0})}await Promise.all(i.map(([e,t])=>{let i=n.join(r,...e.split(`/`));return Bun.write(i,t)}))}function l(e){if(!a.test(e.addonId))throw Error(`Addon id must contain lowercase letters, numbers, and hyphens`);let t=e.sandboxImage??`ghcr.io/mjjabarullah/jchat-sandbox:${e.jchatVersion.replace(/\+/g,`-`)}`,n=s({addonId:e.addonId,isMonorepoWorkspace:!1,jchatVersion:e.jchatVersion,addonSdkVersion:e.addonSdkVersion,template:e.template,mountPoints:e.mountPoints,displayName:e.displayName}),r={".env.example":d(e.addonId,t),".gitignore":[`node_modules/`,`addon/node_modules/`,`addon/build/`,`.env`,``].join(`
2
2
  `),"README.md":k(e.addonId),"docker-compose.yml":f(),"package.json":`${JSON.stringify(p(e.addonId),null,2)}\n`,"scripts/devkit.ts":D(),".agents/skills/jchat-addon-development/SKILL.md":O()};for(let[e,t]of Object.entries(n))r[`addon/${e}`]=t;return Object.freeze(r)}async function u(e){let r=n.resolve(e.targetDir);if(t.existsSync(r))throw Error(`Development kit target already exists: ${r}`);let i=Object.entries(l(e));for(let[e]of i){let i=n.join(r,...e.split(`/`));t.mkdirSync(n.dirname(i),{recursive:!0})}await Promise.all(i.map(([e,t])=>{let i=n.join(r,...e.split(`/`));return Bun.write(i,t)}))}function d(e,t){return[`JCHAT_SANDBOX_IMAGE=${t}`,`JCHAT_SANDBOX_ADDON_ID=${e}`,`JCHAT_SANDBOX_PORT=4317`,`JCHAT_SANDBOX_HTTP_MOCK_PORT=4318`,`JCHAT_SANDBOX_HTTP_MOCK_OFFLINE=false`,`JCHAT_SANDBOX_ADDON_HTTP_MOCK_URL=http://http-mock:4318`,``].join(`
3
3
  `)}function f(){return`services:
4
4
  sandbox:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jchat/create-addon",
3
- "version": "1.0.0-alpha.12",
3
+ "version": "1.0.0-alpha.15",
4
4
  "private": false,
5
5
  "description": "Command line tool for jchat addon creation.",
6
6
  "keywords": [
@@ -52,8 +52,7 @@
52
52
  "test": "bun test",
53
53
  "lint": "oxlint .",
54
54
  "format": "oxfmt . --write",
55
- "typecheck": "tsc --noEmit",
56
- "prepack": "bun run build"
55
+ "typecheck": "tsc --noEmit"
57
56
  },
58
57
  "dependencies": {
59
58
  "@clack/prompts": "catalog:"