create-weave-frontend-app 3.4.0-SNAPSHOT.85.1 → 3.4.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/{create-app-qs2z3yPO.js → create-app-Bwd6zkw7.js} +6 -6
- package/dist/create-app-Bwd6zkw7.js.map +1 -0
- package/dist/create-app.js +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/room-header.tsx +53 -53
- package/template/+nextjs+websockets/components/room-components/overlay/room-header.tsx +3 -3
- package/dist/create-app-qs2z3yPO.js.map +0 -1
|
@@ -76,11 +76,11 @@ function tryGitInit(root) {
|
|
|
76
76
|
//#endregion
|
|
77
77
|
//#region src/versions.js
|
|
78
78
|
const versions = {
|
|
79
|
-
"@inditextech/weave-react": "3.4.0
|
|
80
|
-
"@inditextech/weave-sdk": "3.4.0
|
|
81
|
-
"@inditextech/weave-store-azure-web-pubsub": "3.4.0
|
|
82
|
-
"@inditextech/weave-store-websockets": "3.4.0
|
|
83
|
-
"@inditextech/weave-types": "3.4.0
|
|
79
|
+
"@inditextech/weave-react": "3.4.0",
|
|
80
|
+
"@inditextech/weave-sdk": "3.4.0",
|
|
81
|
+
"@inditextech/weave-store-azure-web-pubsub": "3.4.0",
|
|
82
|
+
"@inditextech/weave-store-websockets": "3.4.0",
|
|
83
|
+
"@inditextech/weave-types": "3.4.0"
|
|
84
84
|
};
|
|
85
85
|
|
|
86
86
|
//#endregion
|
|
@@ -434,4 +434,4 @@ function pick(obj, keys) {
|
|
|
434
434
|
|
|
435
435
|
//#endregion
|
|
436
436
|
export { create, cwd, getPackageManager };
|
|
437
|
-
//# sourceMappingURL=create-app-
|
|
437
|
+
//# sourceMappingURL=create-app-Bwd6zkw7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-app-Bwd6zkw7.js","names":["cwd: string","root: string","manager: PackageManager","dest: string","options: Options","file: string","dest: string","projectName: string","from: string","to: string","rename: (s: string) => string","obj: T","keys: K[]","result: Partial<T>"],"sources":["../src/git.ts","../src/versions.js","../template/package.json","../src/auto-install.ts","../src/constants.ts","../src/create-app.ts"],"sourcesContent":["import { execSync } from 'node:child_process';\nimport { rmSync } from 'node:fs';\nimport { join } from 'node:path';\n\n/*\nInitialize a Git repo on the project.\n\nBased on https://github.com/vercel/next.js/blob/canary/packages/create-next-app/helpers/git.ts\n*/\n\nfunction isInGitRepository(cwd: string): boolean {\n try {\n execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore', cwd });\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isInMercurialRepository(cwd: string): boolean {\n try {\n execSync('hg --cwd . root', { stdio: 'ignore', cwd });\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isDefaultBranchSet(cwd: string): boolean {\n try {\n execSync('git config init.defaultBranch', { stdio: 'ignore', cwd });\n return true;\n } catch {\n return false;\n }\n}\n\nexport function tryGitInit(root: string): boolean {\n let didInit = false;\n\n try {\n execSync('git --version', { stdio: 'ignore' });\n if (isInGitRepository(root) || isInMercurialRepository(root)) {\n return false;\n }\n\n execSync('git init', { stdio: 'ignore', cwd: root });\n didInit = true;\n\n if (!isDefaultBranchSet(root)) {\n execSync('git checkout -b main', { stdio: 'ignore', cwd: root });\n }\n\n execSync('git add -A', { stdio: 'ignore', cwd: root });\n execSync('git commit -m \"Initial commit from Create Fumadocs App\"', {\n stdio: 'ignore',\n cwd: root,\n });\n return true;\n } catch {\n if (didInit) {\n try {\n rmSync(join(root, '.git'), { recursive: true, force: true });\n } catch {\n // do nothing\n }\n }\n\n return false;\n }\n}\n","export const versions = {\"@inditextech/weave-react\":\"3.4.0\",\"@inditextech/weave-sdk\":\"3.4.0\",\"@inditextech/weave-store-azure-web-pubsub\":\"3.4.0\",\"@inditextech/weave-store-websockets\":\"3.4.0\",\"@inditextech/weave-types\":\"3.4.0\"}","{\n \"name\": \"example-versions\",\n \"version\": \"0.0.0\",\n \"private\": true,\n \"description\": \"Used to track dependency versions in create-*-app\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@hookform/resolvers\": \"^4.1.3\",\n \"@inditextech/weave-react\": \"0.0.0\",\n \"@inditextech/weave-store-azure-web-pubsub\": \"0.0.0\",\n \"@inditextech/weave-store-websockets\": \"0.0.0\",\n \"@next/env\": \"^15.2.1\",\n \"@radix-ui/react-accordion\": \"^1.2.3\",\n \"@radix-ui/react-avatar\": \"^1.1.3\",\n \"@radix-ui/react-checkbox\": \"^1.1.4\",\n \"@radix-ui/react-dialog\": \"^1.1.6\",\n \"@radix-ui/react-dropdown-menu\": \"^2.1.6\",\n \"@radix-ui/react-label\": \"^2.1.2\",\n \"@radix-ui/react-popover\": \"^1.1.6\",\n \"@radix-ui/react-scroll-area\": \"^1.2.3\",\n \"@radix-ui/react-select\": \"^2.1.6\",\n \"@radix-ui/react-slider\": \"^1.2.3\",\n \"@radix-ui/react-slot\": \"^1.1.2\",\n \"@radix-ui/react-tabs\": \"^1.1.3\",\n \"@radix-ui/react-tooltip\": \"^1.1.8\",\n \"@react-three/fiber\": \"^8.18.0\",\n \"@react-three/postprocessing\": \"^2.19.1\",\n \"@tanstack/react-query\": \"^5.67.1\",\n \"boring-avatars\": \"^1.11.2\",\n \"change-case\": \"^5.4.4\",\n \"class-variance-authority\": \"^0.7.1\",\n \"clsx\": \"^2.1.1\",\n \"cmdk\": \"^1.0.0\",\n \"color\": \"^5.0.0\",\n \"framer-motion\": \"^11.18.2\",\n \"lodash\": \"^4.17.21\",\n \"motion\": \"^12.4.7\",\n \"next\": \"14.2.32\",\n \"next-themes\": \"^0.4.6\",\n \"ogl\": \"^1.0.11\",\n \"onnxruntime-web\": \"^1.21.0-dev.20250206-d981b153d3\",\n \"pdf-lib\": \"^1.17.1\",\n \"platform-detect\": \"^3.0.1\",\n \"postprocessing\": \"^6.37.1\",\n \"react\": \"18.2.0\",\n \"react-dom\": \"18.2.0\",\n \"react-hook-form\": \"^7.54.2\",\n \"react-number-format\": \"^5.4.3\",\n \"react-responsive-masonry\": \"^2.7.1\",\n \"sharp\": \"^0.33.5\",\n \"sonner\": \"^2.0.3\",\n \"tailwind-merge\": \"^3.0.2\",\n \"tailwindcss-animate\": \"^1.0.7\",\n \"three\": \"^0.167.1\",\n \"uuid\": \"^11.1.0\",\n \"vaul\": \"^1.1.2\",\n \"zod\": \"^3.24.2\",\n \"zustand\": \"^5.0.3\"\n },\n \"devDependencies\": {\n \"@eslint/eslintrc\": \"^3\",\n \"@tailwindcss/postcss\": \"^4\",\n \"@testing-library/dom\": \"^10.4.0\",\n \"@testing-library/react\": \"^16.2.0\",\n \"@types/lodash\": \"^4.17.17\",\n \"@types/node\": \"^20\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@types/react-responsive-masonry\": \"^2.6.0\",\n \"@vitejs/plugin-react\": \"^4.3.4\",\n \"@vitest/coverage-v8\": \"^3.0.7\",\n \"eslint\": \"^8\",\n \"eslint-config-next\": \"14.2.24\",\n \"eslint-config-prettier\": \"^10.0.2\",\n \"jsdom\": \"^26.0.0\",\n \"lucide-react\": \"^0.477.0\",\n \"prettier\": \"^3.6.2\",\n \"tailwindcss\": \"^4\",\n \"typescript\": \"^5\",\n \"vite-tsconfig-paths\": \"^5.1.4\",\n \"vitest\": \"^3.0.7\"\n }\n}\n","import { spawn } from 'cross-spawn';\n\nexport type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun';\n\nexport function getPackageManager(): PackageManager {\n const userAgent = process.env.npm_config_user_agent ?? '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n if (userAgent.startsWith('bun')) {\n return 'bun';\n }\n\n return 'npm';\n}\n\nexport function autoInstall(\n manager: PackageManager,\n dest: string\n): Promise<void> {\n return new Promise((res, reject) => {\n const installProcess = spawn(manager, ['install'], {\n stdio: 'ignore',\n env: {\n ...process.env,\n NODE_ENV: 'development',\n DISABLE_OPENCOLLECTIVE: '1',\n },\n cwd: dest,\n });\n\n installProcess.on('close', (code) => {\n if (code !== 0) {\n reject(new Error('Install failed'));\n } else {\n res();\n }\n });\n });\n}\n","import { fileURLToPath } from 'node:url';\n\nexport const sourceDir = fileURLToPath(new URL(`../`, import.meta.url).href);\nexport const cwd = process.cwd();\n","import path from 'node:path';\nimport fs from 'node:fs/promises';\nimport { tryGitInit } from '@/git';\nimport { versions as localVersions } from '@/versions';\nimport versionPkg from './../template/package.json' with { type: 'json' };\nimport type { PackageManager } from './auto-install';\nimport { autoInstall } from './auto-install';\nimport { cwd, sourceDir } from './constants';\n\nexport type Template = '+nextjs+websockets' | '+nextjs+azure-web-pubsub';\n\nexport interface Options {\n outputDir: string;\n template: Template;\n packageManager: PackageManager;\n installDeps?: boolean;\n initializeGit?: boolean;\n log?: (message: string) => void;\n}\n\nexport async function create(options: Options): Promise<void> {\n const {\n installDeps = true,\n initializeGit = true,\n log = console.log,\n } = options;\n const projectName = path.basename(options.outputDir);\n const dest = path.resolve(cwd, options.outputDir);\n\n function defaultRename(file: string): string {\n file = file.replace('example.gitignore', '.gitignore');\n file = file.replace('example.env', '.env');\n\n return file;\n }\n\n await copy(\n path.join(sourceDir, `template/${options.template}`),\n dest,\n defaultRename\n );\n\n const packageJson = createPackageJson(projectName, options);\n await fs.writeFile(\n path.join(dest, 'package.json'),\n JSON.stringify(packageJson, null, 2)\n );\n\n const readMe = await getReadme(dest, projectName);\n await fs.writeFile(path.join(dest, 'README.md'), readMe);\n\n if (installDeps) {\n await autoInstall(options.packageManager, dest);\n log('Installed dependencies');\n }\n\n if (initializeGit && tryGitInit(dest)) {\n log('Initialized Git repository');\n }\n}\n\nasync function getReadme(dest: string, projectName: string): Promise<string> {\n const template = await fs\n .readFile(path.join(dest, 'README.md'))\n .then((res) => res.toString());\n\n return `# ${projectName}\\n\\n${template}`;\n}\n\nasync function copy(\n from: string,\n to: string,\n rename: (s: string) => string = (s) => s\n): Promise<void> {\n const stats = await fs.stat(from);\n\n if (stats.isDirectory()) {\n const files = await fs.readdir(from);\n\n await Promise.all(\n files.map((file) =>\n copy(path.join(from, file), rename(path.join(to, file)))\n )\n );\n } else {\n await fs.mkdir(path.dirname(to), { recursive: true });\n await fs.copyFile(from, to);\n }\n}\n\nfunction createPackageJson(projectName: string, options: Options): object {\n if (options.template === '+nextjs+azure-web-pubsub') {\n const dependencies = {\n ...pick(versionPkg.dependencies, [\n '@hookform/resolvers',\n '@next/env',\n '@radix-ui/react-accordion',\n '@radix-ui/react-avatar',\n '@radix-ui/react-checkbox',\n '@radix-ui/react-dialog',\n '@radix-ui/react-dropdown-menu',\n '@radix-ui/react-label',\n '@radix-ui/react-popover',\n '@radix-ui/react-scroll-area',\n '@radix-ui/react-select',\n '@radix-ui/react-slider',\n '@radix-ui/react-slot',\n '@radix-ui/react-tabs',\n '@radix-ui/react-tooltip',\n '@react-three/fiber',\n '@react-three/postprocessing',\n '@tanstack/react-query',\n 'boring-avatars',\n 'change-case',\n 'class-variance-authority',\n 'clsx',\n 'cmdk',\n 'color',\n 'framer-motion',\n 'lodash',\n 'motion',\n 'next',\n 'next-themes',\n 'ogl',\n 'onnxruntime-web',\n 'pdf-lib',\n 'platform-detect',\n 'postprocessing',\n 'react',\n 'react-dom',\n 'react-hook-form',\n 'react-number-format',\n 'react-responsive-masonry',\n 'sharp',\n 'sonner',\n 'tailwind-merge',\n 'tailwindcss-animate',\n 'three',\n 'uuid',\n 'vaul',\n 'zod',\n 'zustand',\n ]),\n ...pick(localVersions, [\n '@inditextech/weave-react',\n '@inditextech/weave-store-azure-web-pubsub',\n ]),\n };\n\n const devDependencies = {\n ...pick(versionPkg.devDependencies, [\n '@eslint/eslintrc',\n '@tailwindcss/postcss',\n '@testing-library/dom',\n '@testing-library/react',\n '@types/lodash',\n '@types/node',\n '@types/react',\n '@types/react-dom',\n '@types/react-responsive-masonry',\n '@vitejs/plugin-react',\n 'eslint',\n 'eslint-config-next',\n 'eslint-config-prettier',\n 'jsdom',\n 'lucide-react',\n 'prettier',\n 'tailwindcss',\n 'typescript',\n 'vite-tsconfig-paths',\n ]),\n };\n\n return {\n ...versionPkg,\n name: projectName,\n scripts: {\n build: 'next build',\n dev: 'next dev --experimental-https',\n format:\n 'prettier --write ./api ./app ./assets ./components ./lib ./store next.config.js',\n lint: 'next lint',\n start: 'next start',\n },\n dependencies: sortObjectKeys(dependencies),\n devDependencies: sortObjectKeys(devDependencies),\n };\n }\n\n const dependencies = {\n ...pick(versionPkg.dependencies, [\n '@hookform/resolvers',\n '@next/env',\n '@radix-ui/react-accordion',\n '@radix-ui/react-avatar',\n '@radix-ui/react-checkbox',\n '@radix-ui/react-dialog',\n '@radix-ui/react-dropdown-menu',\n '@radix-ui/react-label',\n '@radix-ui/react-popover',\n '@radix-ui/react-scroll-area',\n '@radix-ui/react-select',\n '@radix-ui/react-slider',\n '@radix-ui/react-slot',\n '@radix-ui/react-tabs',\n '@radix-ui/react-tooltip',\n '@react-three/fiber',\n '@react-three/postprocessing',\n '@tanstack/react-query',\n 'boring-avatars',\n 'change-case',\n 'class-variance-authority',\n 'clsx',\n 'cmdk',\n 'color',\n 'framer-motion',\n 'lodash',\n 'motion',\n 'next',\n 'next-themes',\n 'ogl',\n 'onnxruntime-web',\n 'pdf-lib',\n 'platform-detect',\n 'postprocessing',\n 'react',\n 'react-dom',\n 'react-hook-form',\n 'react-number-format',\n 'react-responsive-masonry',\n 'sharp',\n 'sonner',\n 'tailwind-merge',\n 'tailwindcss-animate',\n 'three',\n 'uuid',\n 'vaul',\n 'zod',\n 'zustand',\n ]),\n ...pick(localVersions, [\n '@inditextech/weave-react',\n '@inditextech/weave-store-websockets',\n ]),\n };\n\n const devDependencies = {\n ...pick(versionPkg.devDependencies, [\n '@eslint/eslintrc',\n '@tailwindcss/postcss',\n '@testing-library/dom',\n '@testing-library/react',\n '@types/lodash',\n '@types/node',\n '@types/react',\n '@types/react-dom',\n '@types/react-responsive-masonry',\n '@vitejs/plugin-react',\n 'eslint',\n 'eslint-config-next',\n 'eslint-config-prettier',\n 'jsdom',\n 'lucide-react',\n 'prettier',\n 'tailwindcss',\n 'typescript',\n 'vite-tsconfig-paths',\n ]),\n };\n\n return {\n ...versionPkg,\n name: projectName,\n scripts: {\n build: 'next build',\n dev: 'next dev --experimental-https',\n format:\n 'prettier --write ./api ./app ./assets ./components ./lib ./store next.config.js',\n lint: 'next lint',\n start: 'next start',\n },\n dependencies: sortObjectKeys(dependencies),\n devDependencies: sortObjectKeys(devDependencies),\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction sortObjectKeys<T extends Record<string, any>>(obj: T): T {\n const sortedEntries = Object.keys(obj)\n .sort()\n .map((key) => [key, obj[key]] as [keyof T, T[keyof T]]);\n\n return Object.fromEntries(sortedEntries) as T;\n}\n\nfunction pick<T extends object, K extends keyof T>(\n obj: T,\n keys: K[]\n): Pick<T, K> {\n const result: Partial<T> = {};\n\n for (const key of keys) {\n if (key in obj) {\n result[key] = obj[key];\n }\n }\n\n return result as Pick<T, K>;\n}\n"],"mappings":"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AG;CAC5B;AACF;AAED,SAAS,kBAAkBH,aAAqBH,SAA0B;AACxE,KAAI,QAAQ,aAAa,4BAA4B;EACnD,MAAM,iBAAe;GACnB,GAAG,KAAK,gBAAW,cAAc;IAC/B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACD,EAAC;GACF,GAAG,KAAK,UAAe,CACrB,4BACA,2CACD,EAAC;EACH;EAED,MAAM,oBAAkB,EACtB,GAAG,KAAK,gBAAW,iBAAiB;GAClC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,EAAC,CACH;AAED,SAAO;GACL,GAAG;GACH,MAAM;GACN,SAAS;IACP,OAAO;IACP,KAAK;IACL,QACE;IACF,MAAM;IACN,OAAO;GACR;GACD,cAAc,eAAe,eAAa;GAC1C,iBAAiB,eAAe,kBAAgB;EACjD;CACF;CAED,MAAM,iBAAe;EACnB,GAAG,KAAK,gBAAW,cAAc;GAC/B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,EAAC;EACF,GAAG,KAAK,UAAe,CACrB,4BACA,qCACD,EAAC;CACH;CAED,MAAM,oBAAkB,EACtB,GAAG,KAAK,gBAAW,iBAAiB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,EAAC,CACH;AAED,QAAO;EACL,GAAG;EACH,MAAM;EACN,SAAS;GACP,OAAO;GACP,KAAK;GACL,QACE;GACF,MAAM;GACN,OAAO;EACR;EACD,cAAc,eAAe,eAAa;EAC1C,iBAAiB,eAAe,kBAAgB;CACjD;AACF;AAGD,SAAS,eAA8CO,KAAW;CAChE,MAAM,gBAAgB,OAAO,KAAK,IAAI,CACnC,MAAM,CACN,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAK,EAA0B;AAEzD,QAAO,OAAO,YAAY,cAAc;AACzC;AAED,SAAS,KACPA,KACAC,MACY;CACZ,MAAMC,SAAqB,CAAE;AAE7B,MAAK,MAAM,OAAO,KAChB,KAAI,OAAO,IACT,QAAO,OAAO,IAAI;AAItB,QAAO;AACR"}
|
package/dist/create-app.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { create, cwd, getPackageManager } from "./create-app-
|
|
2
|
+
import { create, cwd, getPackageManager } from "./create-app-Bwd6zkw7.js";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import fs from "node:fs/promises";
|
|
5
5
|
import { cancel, confirm, group, intro, isCancel, outro, select, spinner, text } from "@clack/prompts";
|
|
@@ -7,7 +7,7 @@ import pc from "picocolors";
|
|
|
7
7
|
|
|
8
8
|
//#region package.json
|
|
9
9
|
var name = "create-weave-frontend-app";
|
|
10
|
-
var version = "3.4.0
|
|
10
|
+
var version = "3.4.0";
|
|
11
11
|
var description = "Create a new frontend artifact for a site with Weave.js";
|
|
12
12
|
var keywords = [
|
|
13
13
|
"NextJs",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["e: unknown"],"sources":["../package.json","../src/index.ts"],"sourcesContent":["{\n \"name\": \"create-weave-frontend-app\",\n \"version\": \"3.4.0
|
|
1
|
+
{"version":3,"file":"index.js","names":["e: unknown"],"sources":["../package.json","../src/index.ts"],"sourcesContent":["{\n \"name\": \"create-weave-frontend-app\",\n \"version\": \"3.4.0\",\n \"description\": \"Create a new frontend artifact for a site with Weave.js\",\n \"keywords\": [\n \"NextJs\",\n \"next\",\n \"react\",\n \"Weave.js\"\n ],\n \"homepage\": \"https://inditextech.github.io/weavejs\",\n \"repository\": \"github:InditexTech/weavejs\",\n \"license\": \"Apache-2.0\",\n \"author\": \"Jesus Manuel Piñeiro Cid <jesusmpc@inditex.com>\",\n \"type\": \"module\",\n \"bin\": \"./dist/index.js\",\n \"module\": \"./dist/create-app.js\",\n \"types\": \"./dist/create-app.d.ts\",\n \"files\": [\n \"template/*\",\n \"dist/*\"\n ],\n \"scripts\": {\n \"bump:snapshot\": \"tsc --noEmit && tsdown --sourcemap\",\n \"build\": \"tsc --noEmit && tsdown\",\n \"clean\": \"rimraf dist\",\n \"dev\": \"tsdown --watch\",\n \"format\": \"prettier --write ./src ./template\",\n \"link\": \"npm link\",\n \"lint:fix\": \"npm run lint -- --fix\",\n \"lint\": \"eslint ./src\",\n \"pack\": \"npm pack\",\n \"publish:snapshot\": \"npm publish --tag next --access public\",\n \"release:perform\": \"npm publish --access public\",\n \"release:prepare\": \"npm run verify\",\n \"test\": \"echo \\\"No tests defined\\\" && exit 0\",\n \"types:check\": \"tsc --noEmit\",\n \"unpublish\": \"npm unpublish --force\",\n \"verify\": \"npm run lint && npm run test && npm run build\",\n \"version:development\": \"npm version $(npm version minor)-SNAPSHOT\",\n \"version:release\": \"npm version $RELEASE_VERSION -m \\\"[npm-scripts] prepare release $RELEASE_VERSION\\\" --tag-version-prefix \\\"\\\"\"\n },\n \"dependencies\": {\n \"@clack/prompts\": \"^0.10.1\",\n \"cross-spawn\": \"^7.0.6\",\n \"picocolors\": \"^1.1.1\"\n },\n \"devDependencies\": {\n \"@types/cross-spawn\": \"^6.0.6\",\n \"@types/node\": \"22.14.1\",\n \"fast-glob\": \"^3.3.3\"\n },\n \"engines\": {\n \"node\": \">=18.12\"\n },\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"nx\": {\n \"implicitDependencies\": [\n \"@inditextech/weave-react\",\n \"@inditextech/weave-sdk\",\n \"@inditextech/weave-store-azure-web-pubsub\",\n \"@inditextech/weave-store-websockets\",\n \"@inditextech/weave-types\"\n ]\n }\n}\n","#!/usr/bin/env node\nimport fs from 'node:fs/promises';\nimport path from 'node:path';\nimport {\n cancel,\n confirm,\n group,\n intro,\n isCancel,\n outro,\n select,\n spinner,\n text,\n} from '@clack/prompts';\nimport pc from 'picocolors';\nimport { getPackageManager } from './auto-install';\nimport { type Template, create } from './create-app';\nimport { cwd } from './constants';\nimport packageJson from '../package.json' with { type: 'json' };\n\nconst manager = getPackageManager();\n\nasync function main(): Promise<void> {\n intro(\n pc.bgCyan(pc.bold(`Create Weave.js Frontend App [${packageJson.version}]`))\n );\n\n const options = await group(\n {\n name: () =>\n text({\n message: 'Project name',\n placeholder: 'my-app',\n defaultValue: 'my-app',\n }),\n template: () =>\n select({\n message: 'Choose a template',\n initialValue: '+nextjs+websockets' as Template,\n options: [\n {\n value: '+nextjs+websockets',\n label: 'Next.js: Weave.js Websockets Store',\n hint: 'recommended',\n },\n {\n value: '+nextjs+azure-web-pubsub',\n label: 'Next.js: Weave.js Azure Web Pubsub Store',\n },\n ],\n }),\n installDeps: () =>\n confirm({\n message: `Do you want to install packages automatically? (detected as ${manager})`,\n }),\n },\n {\n onCancel: () => {\n cancel('Installation Stopped.');\n process.exit(0);\n },\n }\n );\n\n const projectName = options.name.toLowerCase().replace(/\\s/, '-');\n const dest = path.resolve(cwd, projectName);\n\n const destDir = await fs.readdir(dest).catch(() => null);\n if (destDir && destDir.length > 0) {\n const del = await confirm({\n message: `directory ${projectName} already exists, do you want to delete its files?`,\n });\n\n if (isCancel(del)) {\n cancel();\n return;\n }\n\n if (del) {\n const info = spinner();\n info.start(`Deleting files in ${projectName}`);\n\n await Promise.all(\n destDir.map((item) => {\n return fs.rm(path.join(dest, item), {\n recursive: true,\n force: true,\n });\n })\n );\n\n info.stop(`Deleted files in ${projectName}`);\n }\n }\n\n const info = spinner();\n info.start(`Generating Project`);\n\n await create({\n packageManager: manager,\n template: options.template,\n outputDir: dest,\n installDeps: options.installDeps,\n log: (message) => {\n info.message(message);\n },\n });\n\n info.stop('Project Generated');\n\n outro(pc.bgGreen(pc.bold('Done')));\n\n console.log(pc.bold('\\nOpen the project'));\n console.log(pc.cyan(`cd ${projectName}`));\n\n console.log(pc.bold('\\nRun Development Server'));\n console.log(pc.cyan('npm run dev | pnpm run dev | yarn dev'));\n\n process.exit(0);\n}\n\nmain().catch((e: unknown) => {\n console.error(e);\n throw e;\n});\n"],"mappings":";;;;;;;;WACU;cACG;kBACI;eACH;CACV;CACA;CACA;CACA;AACD;eACW;iBACE;cACH;aACD;WACF;UACD;aACG;YACD;YACA,CACP,cACA,QACD;cACU;CACT,iBAAiB;CACjB,SAAS;CACT,SAAS;CACT,OAAO;CACP,UAAU;CACV,QAAQ;CACR,YAAY;CACZ,QAAQ;CACR,QAAQ;CACR,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,QAAQ;CACR,eAAe;CACf,aAAa;CACb,UAAU;CACV,uBAAuB;CACvB,mBAAmB;AACpB;mBACe;CACd,kBAAkB;CAClB,eAAe;CACf,cAAc;AACf;sBACkB;CACjB,sBAAsB;CACtB,eAAe;CACf,aAAa;AACd;cACU,EACT,QAAQ,UACT;oBACgB,EACf,UAAU,SACX;SACK,EACJ,wBAAwB;CACtB;CACA;CACA;CACA;CACA;AACD,EACF;sBAlEH;;;;;;;;;;;;;;;;;;;;AAmEC;;;;AC/CD,MAAM,UAAU,mBAAmB;AAEnC,eAAe,OAAsB;AACnC,OACE,GAAG,OAAO,GAAG,MAAM,gCAAgC,gBAAY,QAAQ,GAAG,CAAC,CAC5E;CAED,MAAM,UAAU,MAAM,MACpB;EACE,MAAM,MACJ,KAAK;GACH,SAAS;GACT,aAAa;GACb,cAAc;EACf,EAAC;EACJ,UAAU,MACR,OAAO;GACL,SAAS;GACT,cAAc;GACd,SAAS,CACP;IACE,OAAO;IACP,OAAO;IACP,MAAM;GACP,GACD;IACE,OAAO;IACP,OAAO;GAEV,CAAA;EACF,EAAC;EACJ,aAAa,MACX,QAAQ,EACN,UAAU,8DAA8D,QAAQ,GACjF,EAAC;CACL,GACD,EACE,UAAU,MAAM;AACd,SAAO,wBAAwB;AAC/B,UAAQ,KAAK,EAAE;CAChB,EACF,EACF;CAED,MAAM,cAAc,QAAQ,KAAK,aAAa,CAAC,QAAQ,MAAM,IAAI;CACjE,MAAM,OAAO,KAAK,QAAQ,KAAK,YAAY;CAE3C,MAAM,UAAU,MAAM,GAAG,QAAQ,KAAK,CAAC,MAAM,MAAM,KAAK;AACxD,KAAI,WAAW,QAAQ,SAAS,GAAG;EACjC,MAAM,MAAM,MAAM,QAAQ,EACxB,UAAU,YAAY,YAAY,mDACnC,EAAC;AAEF,MAAI,SAAS,IAAI,EAAE;AACjB,WAAQ;AACR;EACD;AAED,MAAI,KAAK;GACP,MAAM,SAAO,SAAS;AACtB,UAAK,OAAO,oBAAoB,YAAY,EAAE;AAE9C,SAAM,QAAQ,IACZ,QAAQ,IAAI,CAAC,SAAS;AACpB,WAAO,GAAG,GAAG,KAAK,KAAK,MAAM,KAAK,EAAE;KAClC,WAAW;KACX,OAAO;IACR,EAAC;GACH,EAAC,CACH;AAED,UAAK,MAAM,mBAAmB,YAAY,EAAE;EAC7C;CACF;CAED,MAAM,OAAO,SAAS;AACtB,MAAK,OAAO,oBAAoB;AAEhC,OAAM,OAAO;EACX,gBAAgB;EAChB,UAAU,QAAQ;EAClB,WAAW;EACX,aAAa,QAAQ;EACrB,KAAK,CAAC,YAAY;AAChB,QAAK,QAAQ,QAAQ;EACtB;CACF,EAAC;AAEF,MAAK,KAAK,oBAAoB;AAE9B,OAAM,GAAG,QAAQ,GAAG,KAAK,OAAO,CAAC,CAAC;AAElC,SAAQ,IAAI,GAAG,KAAK,qBAAqB,CAAC;AAC1C,SAAQ,IAAI,GAAG,MAAM,KAAK,YAAY,EAAE,CAAC;AAEzC,SAAQ,IAAI,GAAG,KAAK,2BAA2B,CAAC;AAChD,SAAQ,IAAI,GAAG,KAAK,wCAAwC,CAAC;AAE7D,SAAQ,KAAK,EAAE;AAChB;AAED,MAAM,CAAC,MAAM,CAACA,MAAe;AAC3B,SAAQ,MAAM,EAAE;AAChB,OAAM;AACP,EAAC"}
|
package/package.json
CHANGED
package/template/+nextjs+azure-web-pubsub/components/room-components/overlay/room-header.tsx
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
2
|
|
|
3
|
-
import React from
|
|
4
|
-
import { cn, SYSTEM_OS } from
|
|
5
|
-
import { useRouter } from
|
|
6
|
-
import { motion } from
|
|
7
|
-
import { useWeave } from
|
|
8
|
-
import { useCollaborationRoom } from
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { cn, SYSTEM_OS } from '@/lib/utils';
|
|
5
|
+
import { useRouter } from 'next/navigation';
|
|
6
|
+
import { motion } from 'framer-motion';
|
|
7
|
+
import { useWeave } from '@inditextech/weave-react';
|
|
8
|
+
import { useCollaborationRoom } from '@/store/store';
|
|
9
9
|
import {
|
|
10
10
|
DropdownMenu,
|
|
11
11
|
DropdownMenuContent,
|
|
@@ -15,8 +15,8 @@ import {
|
|
|
15
15
|
DropdownMenuTrigger,
|
|
16
16
|
DropdownMenuShortcut,
|
|
17
17
|
DropdownMenuGroup,
|
|
18
|
-
} from
|
|
19
|
-
import { Logo } from
|
|
18
|
+
} from '@/components/ui/dropdown-menu';
|
|
19
|
+
import { Logo } from '@/components/utils/logo';
|
|
20
20
|
import {
|
|
21
21
|
Image as ImageIcon,
|
|
22
22
|
LogOut,
|
|
@@ -31,24 +31,24 @@ import {
|
|
|
31
31
|
Check,
|
|
32
32
|
Grid2X2Check,
|
|
33
33
|
Grid2X2X,
|
|
34
|
-
} from
|
|
34
|
+
} from 'lucide-react';
|
|
35
35
|
import {
|
|
36
36
|
WEAVE_GRID_TYPES,
|
|
37
37
|
WeaveStageGridPlugin,
|
|
38
38
|
WeaveStageGridType,
|
|
39
39
|
WeaveUsersPointersPlugin,
|
|
40
|
-
} from
|
|
41
|
-
import { ConnectionStatus } from
|
|
42
|
-
import { topElementVariants } from
|
|
43
|
-
import { ConnectedUsers } from
|
|
44
|
-
import { Divider } from
|
|
45
|
-
import { ZoomToolbar } from
|
|
46
|
-
import { HelpDrawerTrigger } from
|
|
47
|
-
import { DOCUMENTATION_URL, GITHUB_URL } from
|
|
48
|
-
import weavePackage from
|
|
49
|
-
import weaveReactHelperPackage from
|
|
50
|
-
import weaveStorePackage from
|
|
51
|
-
import { WEAVE_STORE_CONNECTION_STATUS } from
|
|
40
|
+
} from '@inditextech/weave-sdk';
|
|
41
|
+
import { ConnectionStatus } from '../connection-status';
|
|
42
|
+
import { topElementVariants } from './variants';
|
|
43
|
+
import { ConnectedUsers } from '../connected-users';
|
|
44
|
+
import { Divider } from './divider';
|
|
45
|
+
import { ZoomToolbar } from './zoom-toolbar';
|
|
46
|
+
import { HelpDrawerTrigger } from '../help/help-drawer';
|
|
47
|
+
import { DOCUMENTATION_URL, GITHUB_URL } from '@/lib/constants';
|
|
48
|
+
import weavePackage from '../../../node_modules/@inditextech/weave-sdk/package.json';
|
|
49
|
+
import weaveReactHelperPackage from '../../../node_modules/@inditextech/weave-react/package.json';
|
|
50
|
+
import weaveStorePackage from '../../../node_modules/@inditextech/weave-store-azure-web-pubsub/package.json';
|
|
51
|
+
import { WEAVE_STORE_CONNECTION_STATUS } from '@inditextech/weave-types';
|
|
52
52
|
|
|
53
53
|
export function RoomHeader() {
|
|
54
54
|
const router = useRouter();
|
|
@@ -61,21 +61,21 @@ export function RoomHeader() {
|
|
|
61
61
|
const room = useCollaborationRoom((state) => state.room);
|
|
62
62
|
const setExportNodes = useCollaborationRoom((state) => state.setExportNodes);
|
|
63
63
|
const setExportConfigVisible = useCollaborationRoom(
|
|
64
|
-
(state) => state.setExportConfigVisible
|
|
64
|
+
(state) => state.setExportConfigVisible
|
|
65
65
|
);
|
|
66
66
|
|
|
67
67
|
const [menuOpen, setMenuOpen] = React.useState(false);
|
|
68
68
|
const [pointersEnabled, setPointersEnabled] = React.useState(true);
|
|
69
69
|
const [gridEnabled, setGridEnabled] = React.useState(true);
|
|
70
70
|
const [gridType, setGridType] = React.useState<WeaveStageGridType>(
|
|
71
|
-
WEAVE_GRID_TYPES.LINES
|
|
71
|
+
WEAVE_GRID_TYPES.LINES
|
|
72
72
|
);
|
|
73
73
|
|
|
74
74
|
const handleToggleUsersPointers = React.useCallback(() => {
|
|
75
75
|
if (!instance) return;
|
|
76
76
|
|
|
77
77
|
const userPointersPlugin =
|
|
78
|
-
instance.getPlugin<WeaveUsersPointersPlugin>(
|
|
78
|
+
instance.getPlugin<WeaveUsersPointersPlugin>('usersPointers');
|
|
79
79
|
|
|
80
80
|
if (userPointersPlugin && userPointersPlugin.isEnabled()) {
|
|
81
81
|
userPointersPlugin.disable();
|
|
@@ -90,14 +90,14 @@ export function RoomHeader() {
|
|
|
90
90
|
}, [instance]);
|
|
91
91
|
|
|
92
92
|
const handleToggleGrid = React.useCallback(() => {
|
|
93
|
-
if (instance && instance.isPluginEnabled(
|
|
94
|
-
instance.disablePlugin(
|
|
95
|
-
setGridEnabled(instance.isPluginEnabled(
|
|
93
|
+
if (instance && instance.isPluginEnabled('stageGrid')) {
|
|
94
|
+
instance.disablePlugin('stageGrid');
|
|
95
|
+
setGridEnabled(instance.isPluginEnabled('stageGrid'));
|
|
96
96
|
return;
|
|
97
97
|
}
|
|
98
|
-
if (instance && !instance.isPluginEnabled(
|
|
99
|
-
instance.enablePlugin(
|
|
100
|
-
setGridEnabled(instance.isPluginEnabled(
|
|
98
|
+
if (instance && !instance.isPluginEnabled('stageGrid')) {
|
|
99
|
+
instance.enablePlugin('stageGrid');
|
|
100
|
+
setGridEnabled(instance.isPluginEnabled('stageGrid'));
|
|
101
101
|
return;
|
|
102
102
|
}
|
|
103
103
|
}, [instance]);
|
|
@@ -105,13 +105,13 @@ export function RoomHeader() {
|
|
|
105
105
|
const handleSetGridType = React.useCallback(
|
|
106
106
|
(type: WeaveStageGridType) => {
|
|
107
107
|
if (instance) {
|
|
108
|
-
(instance.getPlugin(
|
|
109
|
-
type
|
|
108
|
+
(instance.getPlugin('stageGrid') as WeaveStageGridPlugin)?.setType(
|
|
109
|
+
type
|
|
110
110
|
);
|
|
111
111
|
setGridType(type);
|
|
112
112
|
}
|
|
113
113
|
},
|
|
114
|
-
[instance]
|
|
114
|
+
[instance]
|
|
115
115
|
);
|
|
116
116
|
|
|
117
117
|
const handleExportToImage = React.useCallback(() => {
|
|
@@ -123,14 +123,14 @@ export function RoomHeader() {
|
|
|
123
123
|
|
|
124
124
|
React.useEffect(() => {
|
|
125
125
|
if (instance) {
|
|
126
|
-
setGridEnabled(instance.isPluginEnabled(
|
|
126
|
+
setGridEnabled(instance.isPluginEnabled('stageGrid'));
|
|
127
127
|
}
|
|
128
128
|
}, [instance]);
|
|
129
129
|
|
|
130
130
|
React.useEffect(() => {
|
|
131
131
|
if (instance) {
|
|
132
132
|
const stageGridPlugin = instance.getPlugin(
|
|
133
|
-
|
|
133
|
+
'stageGrid'
|
|
134
134
|
) as WeaveStageGridPlugin;
|
|
135
135
|
setGridType(stageGridPlugin?.getType());
|
|
136
136
|
}
|
|
@@ -139,7 +139,7 @@ export function RoomHeader() {
|
|
|
139
139
|
const handleExitRoom = React.useCallback(() => {
|
|
140
140
|
sessionStorage.removeItem(`weave.js_${room}`);
|
|
141
141
|
instance?.getStore().disconnect();
|
|
142
|
-
router.push(
|
|
142
|
+
router.push('/');
|
|
143
143
|
}, [instance, room, router]);
|
|
144
144
|
|
|
145
145
|
const handlePrintToConsoleState = React.useCallback(() => {
|
|
@@ -163,11 +163,11 @@ export function RoomHeader() {
|
|
|
163
163
|
exit="hidden"
|
|
164
164
|
variants={topElementVariants}
|
|
165
165
|
className={cn(
|
|
166
|
-
|
|
166
|
+
'w-auto z-1 flex gap-1 justify-center items-center absolute top-[16px] left-[16px]',
|
|
167
167
|
{
|
|
168
|
-
[
|
|
169
|
-
[
|
|
170
|
-
}
|
|
168
|
+
['pointer-events-none']: selectionActive,
|
|
169
|
+
['pointer-events-auto']: !selectionActive,
|
|
170
|
+
}
|
|
171
171
|
)}
|
|
172
172
|
>
|
|
173
173
|
<div className="bg-white flex justify-between items-center gap-0 py-[5px] px-[32px] border-[0.5px] border-[#c9c9c9]">
|
|
@@ -179,11 +179,11 @@ export function RoomHeader() {
|
|
|
179
179
|
>
|
|
180
180
|
<DropdownMenuTrigger
|
|
181
181
|
className={cn(
|
|
182
|
-
|
|
182
|
+
'rounded-none cursor-pointer focus:outline-none',
|
|
183
183
|
{
|
|
184
|
-
[
|
|
185
|
-
[
|
|
186
|
-
}
|
|
184
|
+
['font-normal']: menuOpen,
|
|
185
|
+
['font-extralight']: !menuOpen,
|
|
186
|
+
}
|
|
187
187
|
)}
|
|
188
188
|
>
|
|
189
189
|
<div className="flex gap-1 justify-start items-center">
|
|
@@ -217,7 +217,7 @@ export function RoomHeader() {
|
|
|
217
217
|
>
|
|
218
218
|
<Braces /> Print state to console
|
|
219
219
|
<DropdownMenuShortcut>
|
|
220
|
-
{SYSTEM_OS.MAC ?
|
|
220
|
+
{SYSTEM_OS.MAC ? '⌥ ⌘ C' : 'Alt Ctrl C'}
|
|
221
221
|
</DropdownMenuShortcut>
|
|
222
222
|
</DropdownMenuItem>
|
|
223
223
|
</DropdownMenuGroup>
|
|
@@ -330,7 +330,7 @@ export function RoomHeader() {
|
|
|
330
330
|
<DropdownMenuItem
|
|
331
331
|
className="text-foreground cursor-pointer hover:rounded-none"
|
|
332
332
|
onClick={() => {
|
|
333
|
-
window.open(GITHUB_URL,
|
|
333
|
+
window.open(GITHUB_URL, '_blank', 'noopener,noreferrer');
|
|
334
334
|
}}
|
|
335
335
|
>
|
|
336
336
|
<Github /> Code repository
|
|
@@ -340,8 +340,8 @@ export function RoomHeader() {
|
|
|
340
340
|
onClick={() => {
|
|
341
341
|
window.open(
|
|
342
342
|
DOCUMENTATION_URL,
|
|
343
|
-
|
|
344
|
-
|
|
343
|
+
'_blank',
|
|
344
|
+
'noopener,noreferrer'
|
|
345
345
|
);
|
|
346
346
|
}}
|
|
347
347
|
>
|
|
@@ -399,11 +399,11 @@ export function RoomHeader() {
|
|
|
399
399
|
exit="hidden"
|
|
400
400
|
variants={topElementVariants}
|
|
401
401
|
className={cn(
|
|
402
|
-
|
|
402
|
+
'w-auto z-1 flex gap-1 justify-center items-center absolute top-[16px] right-[16px]',
|
|
403
403
|
{
|
|
404
|
-
[
|
|
405
|
-
[
|
|
406
|
-
}
|
|
404
|
+
['pointer-events-none']: selectionActive,
|
|
405
|
+
['pointer-events-auto']: !selectionActive,
|
|
406
|
+
}
|
|
407
407
|
)}
|
|
408
408
|
>
|
|
409
409
|
<div className="w-auto h-[72px] bg-white flex justify-between items-center gap-0 py-[5px] px-[32px] border-[0.5px] border-[#c9c9c9]">
|
|
@@ -45,9 +45,9 @@ import { Divider } from "./divider";
|
|
|
45
45
|
import { ZoomToolbar } from "./zoom-toolbar";
|
|
46
46
|
import { HelpDrawerTrigger } from "../help/help-drawer";
|
|
47
47
|
import { DOCUMENTATION_URL, GITHUB_URL } from "@/lib/constants";
|
|
48
|
-
import weavePackage from "../../../node_modules/@inditextech/weave-sdk/package.json"
|
|
49
|
-
import weaveReactHelperPackage from "../../../node_modules/@inditextech/weave-react/package.json"
|
|
50
|
-
import weaveStorePackage from "../../../node_modules/@inditextech/weave-store-websockets/package.json"
|
|
48
|
+
import weavePackage from "../../../node_modules/@inditextech/weave-sdk/package.json";
|
|
49
|
+
import weaveReactHelperPackage from "../../../node_modules/@inditextech/weave-react/package.json";
|
|
50
|
+
import weaveStorePackage from "../../../node_modules/@inditextech/weave-store-websockets/package.json";
|
|
51
51
|
import { WEAVE_STORE_CONNECTION_STATUS } from "@inditextech/weave-types";
|
|
52
52
|
|
|
53
53
|
export function RoomHeader() {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-app-qs2z3yPO.js","names":["cwd: string","root: string","manager: PackageManager","dest: string","options: Options","file: string","dest: string","projectName: string","from: string","to: string","rename: (s: string) => string","obj: T","keys: K[]","result: Partial<T>"],"sources":["../src/git.ts","../src/versions.js","../template/package.json","../src/auto-install.ts","../src/constants.ts","../src/create-app.ts"],"sourcesContent":["import { execSync } from 'node:child_process';\nimport { rmSync } from 'node:fs';\nimport { join } from 'node:path';\n\n/*\nInitialize a Git repo on the project.\n\nBased on https://github.com/vercel/next.js/blob/canary/packages/create-next-app/helpers/git.ts\n*/\n\nfunction isInGitRepository(cwd: string): boolean {\n try {\n execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore', cwd });\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isInMercurialRepository(cwd: string): boolean {\n try {\n execSync('hg --cwd . root', { stdio: 'ignore', cwd });\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isDefaultBranchSet(cwd: string): boolean {\n try {\n execSync('git config init.defaultBranch', { stdio: 'ignore', cwd });\n return true;\n } catch {\n return false;\n }\n}\n\nexport function tryGitInit(root: string): boolean {\n let didInit = false;\n\n try {\n execSync('git --version', { stdio: 'ignore' });\n if (isInGitRepository(root) || isInMercurialRepository(root)) {\n return false;\n }\n\n execSync('git init', { stdio: 'ignore', cwd: root });\n didInit = true;\n\n if (!isDefaultBranchSet(root)) {\n execSync('git checkout -b main', { stdio: 'ignore', cwd: root });\n }\n\n execSync('git add -A', { stdio: 'ignore', cwd: root });\n execSync('git commit -m \"Initial commit from Create Fumadocs App\"', {\n stdio: 'ignore',\n cwd: root,\n });\n return true;\n } catch {\n if (didInit) {\n try {\n rmSync(join(root, '.git'), { recursive: true, force: true });\n } catch {\n // do nothing\n }\n }\n\n return false;\n }\n}\n","export const versions = {\"@inditextech/weave-react\":\"3.4.0-SNAPSHOT.85.1\",\"@inditextech/weave-sdk\":\"3.4.0-SNAPSHOT.85.1\",\"@inditextech/weave-store-azure-web-pubsub\":\"3.4.0-SNAPSHOT.85.1\",\"@inditextech/weave-store-websockets\":\"3.4.0-SNAPSHOT.85.1\",\"@inditextech/weave-types\":\"3.4.0-SNAPSHOT.85.1\"}","{\n \"name\": \"example-versions\",\n \"version\": \"0.0.0\",\n \"private\": true,\n \"description\": \"Used to track dependency versions in create-*-app\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@hookform/resolvers\": \"^4.1.3\",\n \"@inditextech/weave-react\": \"0.0.0\",\n \"@inditextech/weave-store-azure-web-pubsub\": \"0.0.0\",\n \"@inditextech/weave-store-websockets\": \"0.0.0\",\n \"@next/env\": \"^15.2.1\",\n \"@radix-ui/react-accordion\": \"^1.2.3\",\n \"@radix-ui/react-avatar\": \"^1.1.3\",\n \"@radix-ui/react-checkbox\": \"^1.1.4\",\n \"@radix-ui/react-dialog\": \"^1.1.6\",\n \"@radix-ui/react-dropdown-menu\": \"^2.1.6\",\n \"@radix-ui/react-label\": \"^2.1.2\",\n \"@radix-ui/react-popover\": \"^1.1.6\",\n \"@radix-ui/react-scroll-area\": \"^1.2.3\",\n \"@radix-ui/react-select\": \"^2.1.6\",\n \"@radix-ui/react-slider\": \"^1.2.3\",\n \"@radix-ui/react-slot\": \"^1.1.2\",\n \"@radix-ui/react-tabs\": \"^1.1.3\",\n \"@radix-ui/react-tooltip\": \"^1.1.8\",\n \"@react-three/fiber\": \"^8.18.0\",\n \"@react-three/postprocessing\": \"^2.19.1\",\n \"@tanstack/react-query\": \"^5.67.1\",\n \"boring-avatars\": \"^1.11.2\",\n \"change-case\": \"^5.4.4\",\n \"class-variance-authority\": \"^0.7.1\",\n \"clsx\": \"^2.1.1\",\n \"cmdk\": \"^1.0.0\",\n \"color\": \"^5.0.0\",\n \"framer-motion\": \"^11.18.2\",\n \"lodash\": \"^4.17.21\",\n \"motion\": \"^12.4.7\",\n \"next\": \"14.2.32\",\n \"next-themes\": \"^0.4.6\",\n \"ogl\": \"^1.0.11\",\n \"onnxruntime-web\": \"^1.21.0-dev.20250206-d981b153d3\",\n \"pdf-lib\": \"^1.17.1\",\n \"platform-detect\": \"^3.0.1\",\n \"postprocessing\": \"^6.37.1\",\n \"react\": \"18.2.0\",\n \"react-dom\": \"18.2.0\",\n \"react-hook-form\": \"^7.54.2\",\n \"react-number-format\": \"^5.4.3\",\n \"react-responsive-masonry\": \"^2.7.1\",\n \"sharp\": \"^0.33.5\",\n \"sonner\": \"^2.0.3\",\n \"tailwind-merge\": \"^3.0.2\",\n \"tailwindcss-animate\": \"^1.0.7\",\n \"three\": \"^0.167.1\",\n \"uuid\": \"^11.1.0\",\n \"vaul\": \"^1.1.2\",\n \"zod\": \"^3.24.2\",\n \"zustand\": \"^5.0.3\"\n },\n \"devDependencies\": {\n \"@eslint/eslintrc\": \"^3\",\n \"@tailwindcss/postcss\": \"^4\",\n \"@testing-library/dom\": \"^10.4.0\",\n \"@testing-library/react\": \"^16.2.0\",\n \"@types/lodash\": \"^4.17.17\",\n \"@types/node\": \"^20\",\n \"@types/react\": \"^18\",\n \"@types/react-dom\": \"^18\",\n \"@types/react-responsive-masonry\": \"^2.6.0\",\n \"@vitejs/plugin-react\": \"^4.3.4\",\n \"@vitest/coverage-v8\": \"^3.0.7\",\n \"eslint\": \"^8\",\n \"eslint-config-next\": \"14.2.24\",\n \"eslint-config-prettier\": \"^10.0.2\",\n \"jsdom\": \"^26.0.0\",\n \"lucide-react\": \"^0.477.0\",\n \"prettier\": \"^3.6.2\",\n \"tailwindcss\": \"^4\",\n \"typescript\": \"^5\",\n \"vite-tsconfig-paths\": \"^5.1.4\",\n \"vitest\": \"^3.0.7\"\n }\n}\n","import { spawn } from 'cross-spawn';\n\nexport type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun';\n\nexport function getPackageManager(): PackageManager {\n const userAgent = process.env.npm_config_user_agent ?? '';\n\n if (userAgent.startsWith('yarn')) {\n return 'yarn';\n }\n\n if (userAgent.startsWith('pnpm')) {\n return 'pnpm';\n }\n\n if (userAgent.startsWith('bun')) {\n return 'bun';\n }\n\n return 'npm';\n}\n\nexport function autoInstall(\n manager: PackageManager,\n dest: string\n): Promise<void> {\n return new Promise((res, reject) => {\n const installProcess = spawn(manager, ['install'], {\n stdio: 'ignore',\n env: {\n ...process.env,\n NODE_ENV: 'development',\n DISABLE_OPENCOLLECTIVE: '1',\n },\n cwd: dest,\n });\n\n installProcess.on('close', (code) => {\n if (code !== 0) {\n reject(new Error('Install failed'));\n } else {\n res();\n }\n });\n });\n}\n","import { fileURLToPath } from 'node:url';\n\nexport const sourceDir = fileURLToPath(new URL(`../`, import.meta.url).href);\nexport const cwd = process.cwd();\n","import path from 'node:path';\nimport fs from 'node:fs/promises';\nimport { tryGitInit } from '@/git';\nimport { versions as localVersions } from '@/versions';\nimport versionPkg from './../template/package.json' with { type: 'json' };\nimport type { PackageManager } from './auto-install';\nimport { autoInstall } from './auto-install';\nimport { cwd, sourceDir } from './constants';\n\nexport type Template = '+nextjs+websockets' | '+nextjs+azure-web-pubsub';\n\nexport interface Options {\n outputDir: string;\n template: Template;\n packageManager: PackageManager;\n installDeps?: boolean;\n initializeGit?: boolean;\n log?: (message: string) => void;\n}\n\nexport async function create(options: Options): Promise<void> {\n const {\n installDeps = true,\n initializeGit = true,\n log = console.log,\n } = options;\n const projectName = path.basename(options.outputDir);\n const dest = path.resolve(cwd, options.outputDir);\n\n function defaultRename(file: string): string {\n file = file.replace('example.gitignore', '.gitignore');\n file = file.replace('example.env', '.env');\n\n return file;\n }\n\n await copy(\n path.join(sourceDir, `template/${options.template}`),\n dest,\n defaultRename\n );\n\n const packageJson = createPackageJson(projectName, options);\n await fs.writeFile(\n path.join(dest, 'package.json'),\n JSON.stringify(packageJson, null, 2)\n );\n\n const readMe = await getReadme(dest, projectName);\n await fs.writeFile(path.join(dest, 'README.md'), readMe);\n\n if (installDeps) {\n await autoInstall(options.packageManager, dest);\n log('Installed dependencies');\n }\n\n if (initializeGit && tryGitInit(dest)) {\n log('Initialized Git repository');\n }\n}\n\nasync function getReadme(dest: string, projectName: string): Promise<string> {\n const template = await fs\n .readFile(path.join(dest, 'README.md'))\n .then((res) => res.toString());\n\n return `# ${projectName}\\n\\n${template}`;\n}\n\nasync function copy(\n from: string,\n to: string,\n rename: (s: string) => string = (s) => s\n): Promise<void> {\n const stats = await fs.stat(from);\n\n if (stats.isDirectory()) {\n const files = await fs.readdir(from);\n\n await Promise.all(\n files.map((file) =>\n copy(path.join(from, file), rename(path.join(to, file)))\n )\n );\n } else {\n await fs.mkdir(path.dirname(to), { recursive: true });\n await fs.copyFile(from, to);\n }\n}\n\nfunction createPackageJson(projectName: string, options: Options): object {\n if (options.template === '+nextjs+azure-web-pubsub') {\n const dependencies = {\n ...pick(versionPkg.dependencies, [\n '@hookform/resolvers',\n '@next/env',\n '@radix-ui/react-accordion',\n '@radix-ui/react-avatar',\n '@radix-ui/react-checkbox',\n '@radix-ui/react-dialog',\n '@radix-ui/react-dropdown-menu',\n '@radix-ui/react-label',\n '@radix-ui/react-popover',\n '@radix-ui/react-scroll-area',\n '@radix-ui/react-select',\n '@radix-ui/react-slider',\n '@radix-ui/react-slot',\n '@radix-ui/react-tabs',\n '@radix-ui/react-tooltip',\n '@react-three/fiber',\n '@react-three/postprocessing',\n '@tanstack/react-query',\n 'boring-avatars',\n 'change-case',\n 'class-variance-authority',\n 'clsx',\n 'cmdk',\n 'color',\n 'framer-motion',\n 'lodash',\n 'motion',\n 'next',\n 'next-themes',\n 'ogl',\n 'onnxruntime-web',\n 'pdf-lib',\n 'platform-detect',\n 'postprocessing',\n 'react',\n 'react-dom',\n 'react-hook-form',\n 'react-number-format',\n 'react-responsive-masonry',\n 'sharp',\n 'sonner',\n 'tailwind-merge',\n 'tailwindcss-animate',\n 'three',\n 'uuid',\n 'vaul',\n 'zod',\n 'zustand',\n ]),\n ...pick(localVersions, [\n '@inditextech/weave-react',\n '@inditextech/weave-store-azure-web-pubsub',\n ]),\n };\n\n const devDependencies = {\n ...pick(versionPkg.devDependencies, [\n '@eslint/eslintrc',\n '@tailwindcss/postcss',\n '@testing-library/dom',\n '@testing-library/react',\n '@types/lodash',\n '@types/node',\n '@types/react',\n '@types/react-dom',\n '@types/react-responsive-masonry',\n '@vitejs/plugin-react',\n 'eslint',\n 'eslint-config-next',\n 'eslint-config-prettier',\n 'jsdom',\n 'lucide-react',\n 'prettier',\n 'tailwindcss',\n 'typescript',\n 'vite-tsconfig-paths',\n ]),\n };\n\n return {\n ...versionPkg,\n name: projectName,\n scripts: {\n build: 'next build',\n dev: 'next dev --experimental-https',\n format:\n 'prettier --write ./api ./app ./assets ./components ./lib ./store next.config.js',\n lint: 'next lint',\n start: 'next start',\n },\n dependencies: sortObjectKeys(dependencies),\n devDependencies: sortObjectKeys(devDependencies),\n };\n }\n\n const dependencies = {\n ...pick(versionPkg.dependencies, [\n '@hookform/resolvers',\n '@next/env',\n '@radix-ui/react-accordion',\n '@radix-ui/react-avatar',\n '@radix-ui/react-checkbox',\n '@radix-ui/react-dialog',\n '@radix-ui/react-dropdown-menu',\n '@radix-ui/react-label',\n '@radix-ui/react-popover',\n '@radix-ui/react-scroll-area',\n '@radix-ui/react-select',\n '@radix-ui/react-slider',\n '@radix-ui/react-slot',\n '@radix-ui/react-tabs',\n '@radix-ui/react-tooltip',\n '@react-three/fiber',\n '@react-three/postprocessing',\n '@tanstack/react-query',\n 'boring-avatars',\n 'change-case',\n 'class-variance-authority',\n 'clsx',\n 'cmdk',\n 'color',\n 'framer-motion',\n 'lodash',\n 'motion',\n 'next',\n 'next-themes',\n 'ogl',\n 'onnxruntime-web',\n 'pdf-lib',\n 'platform-detect',\n 'postprocessing',\n 'react',\n 'react-dom',\n 'react-hook-form',\n 'react-number-format',\n 'react-responsive-masonry',\n 'sharp',\n 'sonner',\n 'tailwind-merge',\n 'tailwindcss-animate',\n 'three',\n 'uuid',\n 'vaul',\n 'zod',\n 'zustand',\n ]),\n ...pick(localVersions, [\n '@inditextech/weave-react',\n '@inditextech/weave-store-websockets',\n ]),\n };\n\n const devDependencies = {\n ...pick(versionPkg.devDependencies, [\n '@eslint/eslintrc',\n '@tailwindcss/postcss',\n '@testing-library/dom',\n '@testing-library/react',\n '@types/lodash',\n '@types/node',\n '@types/react',\n '@types/react-dom',\n '@types/react-responsive-masonry',\n '@vitejs/plugin-react',\n 'eslint',\n 'eslint-config-next',\n 'eslint-config-prettier',\n 'jsdom',\n 'lucide-react',\n 'prettier',\n 'tailwindcss',\n 'typescript',\n 'vite-tsconfig-paths',\n ]),\n };\n\n return {\n ...versionPkg,\n name: projectName,\n scripts: {\n build: 'next build',\n dev: 'next dev --experimental-https',\n format:\n 'prettier --write ./api ./app ./assets ./components ./lib ./store next.config.js',\n lint: 'next lint',\n start: 'next start',\n },\n dependencies: sortObjectKeys(dependencies),\n devDependencies: sortObjectKeys(devDependencies),\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction sortObjectKeys<T extends Record<string, any>>(obj: T): T {\n const sortedEntries = Object.keys(obj)\n .sort()\n .map((key) => [key, obj[key]] as [keyof T, T[keyof T]]);\n\n return Object.fromEntries(sortedEntries) as T;\n}\n\nfunction pick<T extends object, K extends keyof T>(\n obj: T,\n keys: K[]\n): Pick<T, K> {\n const result: Partial<T> = {};\n\n for (const key of keys) {\n if (key in obj) {\n result[key] = obj[key];\n }\n }\n\n return result as Pick<T, K>;\n}\n"],"mappings":"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AM,GAAG;CAC5B;AACF;AAED,SAAS,kBAAkBH,aAAqBH,SAA0B;AACxE,KAAI,QAAQ,aAAa,4BAA4B;EACnD,MAAM,iBAAe;GACnB,GAAG,KAAK,gBAAW,cAAc;IAC/B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACD,EAAC;GACF,GAAG,KAAK,UAAe,CACrB,4BACA,2CACD,EAAC;EACH;EAED,MAAM,oBAAkB,EACtB,GAAG,KAAK,gBAAW,iBAAiB;GAClC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,EAAC,CACH;AAED,SAAO;GACL,GAAG;GACH,MAAM;GACN,SAAS;IACP,OAAO;IACP,KAAK;IACL,QACE;IACF,MAAM;IACN,OAAO;GACR;GACD,cAAc,eAAe,eAAa;GAC1C,iBAAiB,eAAe,kBAAgB;EACjD;CACF;CAED,MAAM,iBAAe;EACnB,GAAG,KAAK,gBAAW,cAAc;GAC/B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD,EAAC;EACF,GAAG,KAAK,UAAe,CACrB,4BACA,qCACD,EAAC;CACH;CAED,MAAM,oBAAkB,EACtB,GAAG,KAAK,gBAAW,iBAAiB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACD,EAAC,CACH;AAED,QAAO;EACL,GAAG;EACH,MAAM;EACN,SAAS;GACP,OAAO;GACP,KAAK;GACL,QACE;GACF,MAAM;GACN,OAAO;EACR;EACD,cAAc,eAAe,eAAa;EAC1C,iBAAiB,eAAe,kBAAgB;CACjD;AACF;AAGD,SAAS,eAA8CO,KAAW;CAChE,MAAM,gBAAgB,OAAO,KAAK,IAAI,CACnC,MAAM,CACN,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAK,EAA0B;AAEzD,QAAO,OAAO,YAAY,cAAc;AACzC;AAED,SAAS,KACPA,KACAC,MACY;CACZ,MAAMC,SAAqB,CAAE;AAE7B,MAAK,MAAM,OAAO,KAChB,KAAI,OAAO,IACT,QAAO,OAAO,IAAI;AAItB,QAAO;AACR"}
|