create-weave-backend-app 5.4.0 → 5.4.1

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.
@@ -99,12 +99,12 @@ function tryGitInit(root) {
99
99
  //#endregion
100
100
  //#region src/versions.js
101
101
  const versions = {
102
- "@inditextech/weave-react": "5.4.0",
103
- "@inditextech/weave-sdk": "5.4.0",
104
- "@inditextech/weave-store-azure-web-pubsub": "5.4.0",
105
- "@inditextech/weave-store-standalone": "5.4.0",
106
- "@inditextech/weave-store-websockets": "5.4.0",
107
- "@inditextech/weave-types": "5.4.0"
102
+ "@inditextech/weave-react": "5.4.1",
103
+ "@inditextech/weave-sdk": "5.4.1",
104
+ "@inditextech/weave-store-azure-web-pubsub": "5.4.1",
105
+ "@inditextech/weave-store-standalone": "5.4.1",
106
+ "@inditextech/weave-store-websockets": "5.4.1",
107
+ "@inditextech/weave-types": "5.4.1"
108
108
  };
109
109
  //#endregion
110
110
  //#region template/package.json
@@ -350,4 +350,4 @@ function pick(obj, keys) {
350
350
  //#endregion
351
351
  export { cwd as n, getPackageManager as r, create as t };
352
352
 
353
- //# sourceMappingURL=create-app-FCjCsi1n.js.map
353
+ //# sourceMappingURL=create-app-BGyZtsUA.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-app-FCjCsi1n.js","names":["localVersions","versionPkg"],"sources":["../src/auto-install.ts","../src/git.ts","../src/versions.js","../template/package.json","../src/constants.ts","../src/create-app.ts"],"sourcesContent":["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 { 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\":\"5.4.0\",\"@inditextech/weave-sdk\":\"5.4.0\",\"@inditextech/weave-store-azure-web-pubsub\":\"5.4.0\",\"@inditextech/weave-store-standalone\":\"5.4.0\",\"@inditextech/weave-store-websockets\":\"5.4.0\",\"@inditextech/weave-types\":\"5.4.0\"}","","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 = '+express+websockets' | '+express+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 // update tsconfig.json for src dir\n // if (isNext && options.useSrcDir) {\n const tsconfigPath = path.join(dest, 'tsconfig.json');\n const content = (await fs.readFile(tsconfigPath)).toString();\n\n const config = JSON.parse(content);\n\n if (config.compilerOptions?.paths) {\n Object.assign(config.compilerOptions.paths, {\n '@/*': ['./src/*'],\n });\n }\n\n await fs.writeFile(tsconfigPath, JSON.stringify(config, null, 2));\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 === '+express+azure-web-pubsub') {\n const dependencies = {\n ...pick(localVersions, [\n '@inditextech/weave-sdk',\n '@inditextech/weave-store-azure-web-pubsub',\n '@inditextech/weave-store-standalone',\n ]),\n ...pick(versionPkg.dependencies, [\n '@dotenvx/dotenvx',\n '@imgly/background-removal-node',\n 'archiver',\n 'cors',\n 'dotenv',\n 'express',\n 'helmet',\n 'morgan',\n 'multer',\n 'p-queue',\n 'pino',\n 'pino-http',\n 'pino-pretty',\n 'tslib',\n 'tsx',\n 'uuid',\n 'zod',\n ]),\n };\n\n const devDependencies = {\n ...pick(versionPkg.devDependencies, [\n '@eslint/js',\n '@types/archiver',\n '@types/cors',\n '@types/express',\n '@types/morgan',\n '@types/multer',\n '@types/node',\n '@typescript-eslint/eslint-plugin',\n '@typescript-eslint/parser',\n 'cp-cli',\n 'eslint',\n 'eslint-config-prettier',\n 'globals',\n 'make-dir-cli',\n 'nodemon',\n 'prettier',\n 'tsc-alias',\n 'tsconfig-paths',\n 'typescript',\n 'typescript-eslint',\n ]),\n };\n\n return {\n ...versionPkg,\n name: projectName,\n scripts: {\n build:\n 'tsc && tsc-alias -p tsconfig.json && make-dir ./dist/public && make-dir ./dist/temp && cp-cli ./public ./dist/public && cp-cli ./package.json ./dist/package.json',\n ['copy:assets']:\n 'make-dir ./public && cp-cli node_modules/@imgly/background-removal-node/dist/. public',\n ['copy:fonts']: 'cp-cli fonts/. dist/fonts',\n dev: 'nodemon',\n format: 'prettier --write \"src/**/*.{ts,tsx}\"',\n lint: 'eslint ./src',\n postinstall: 'npm run copy:assets',\n start:\n 'node --experimental-specifier-resolution=node --loader --env-file=.env ts-node/esm dist/server.js',\n ['start:dev']:\n 'cp-cli .env ./dist/.env && cd dist && NODE_ENV=development NODE_OPTIONS=\"--max-old-space-size=4096\" node --env-file=.env ./server.js',\n },\n dependencies: sortObjectKeys(dependencies),\n devDependencies: sortObjectKeys(devDependencies),\n };\n }\n\n const dependencies = {\n ...pick(versionPkg.dependencies, [\n '@dotenvx/dotenvx',\n '@imgly/background-removal-node',\n 'archiver',\n 'cors',\n 'dotenv',\n 'express',\n 'helmet',\n 'morgan',\n 'multer',\n 'p-queue',\n 'pino',\n 'pino-http',\n 'pino-pretty',\n 'tslib',\n 'tsx',\n 'uuid',\n 'zod',\n ]),\n ...pick(localVersions, [\n '@inditextech/weave-sdk',\n '@inditextech/weave-store-websockets',\n '@inditextech/weave-store-standalone',\n ]),\n };\n\n const devDependencies = {\n ...pick(versionPkg.devDependencies, [\n '@eslint/js',\n '@types/archiver',\n '@types/cors',\n '@types/express',\n '@types/morgan',\n '@types/multer',\n '@types/node',\n '@typescript-eslint/eslint-plugin',\n '@typescript-eslint/parser',\n 'cp-cli',\n 'eslint',\n 'eslint-config-prettier',\n 'globals',\n 'make-dir-cli',\n 'nodemon',\n 'prettier',\n 'tsc-alias',\n 'tsconfig-paths',\n 'typescript',\n 'typescript-eslint',\n ]),\n };\n\n return {\n ...versionPkg,\n name: projectName,\n scripts: {\n build:\n 'tsc && tsc-alias -p tsconfig.json && make-dir ./dist/public && make-dir ./dist/temp && cp-cli ./public ./dist/public && cp-cli ./package.json ./dist/package.json',\n ['copy:assets']:\n 'make-dir ./public && cp-cli node_modules/@imgly/background-removal-node/dist/. public',\n ['copy:fonts']: 'cp-cli fonts/. dist/fonts',\n dev: 'nodemon',\n format: 'prettier --write \"src/**/*.{ts,tsx}\"',\n lint: 'eslint ./src',\n postinstall: 'npm run copy:assets',\n start:\n 'node --experimental-specifier-resolution=node --loader --env-file=.env ts-node/esm dist/server.js',\n ['start:dev']:\n 'cp-cli .env ./dist/.env && cd dist && NODE_ENV=development NODE_OPTIONS=\"--max-old-space-size=4096\" node --env-file=.env ./server.js',\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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;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;EACD,GAAG,KAAKD,UAAe;GACrB;GACA;GACA;EACF,CAAC;CACH;CAEA,MAAM,kBAAkB,EACtB,GAAG,KAAKC,gBAAW,iBAAiB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,EACH;CAEA,OAAO;EACL,GAAGA;EACH,MAAM;EACN,SAAS;GACP,OACE;IACD,gBACC;IACD,eAAe;GAChB,KAAK;GACL,QAAQ;GACR,MAAM;GACN,aAAa;GACb,OACE;IACD,cACC;EACJ;EACA,cAAc,eAAe,YAAY;EACzC,iBAAiB,eAAe,eAAe;CACjD;AACF;AAGA,SAAS,eAA8C,KAAW;CAChE,MAAM,gBAAgB,OAAO,KAAK,GAAG,CAAC,CACnC,KAAK,CAAC,CACN,KAAK,QAAQ,CAAC,KAAK,IAAI,IAAI,CAA0B;CAExD,OAAO,OAAO,YAAY,aAAa;AACzC;AAEA,SAAS,KACP,KACA,MACY;CACZ,MAAM,SAAqB,CAAC;CAE5B,KAAK,MAAM,OAAO,MAChB,IAAI,OAAO,KACT,OAAO,OAAO,IAAI;CAItB,OAAO;AACT"}
1
+ {"version":3,"file":"create-app-BGyZtsUA.js","names":["localVersions","versionPkg"],"sources":["../src/auto-install.ts","../src/git.ts","../src/versions.js","../template/package.json","../src/constants.ts","../src/create-app.ts"],"sourcesContent":["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 { 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\":\"5.4.1\",\"@inditextech/weave-sdk\":\"5.4.1\",\"@inditextech/weave-store-azure-web-pubsub\":\"5.4.1\",\"@inditextech/weave-store-standalone\":\"5.4.1\",\"@inditextech/weave-store-websockets\":\"5.4.1\",\"@inditextech/weave-types\":\"5.4.1\"}","","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 = '+express+websockets' | '+express+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 // update tsconfig.json for src dir\n // if (isNext && options.useSrcDir) {\n const tsconfigPath = path.join(dest, 'tsconfig.json');\n const content = (await fs.readFile(tsconfigPath)).toString();\n\n const config = JSON.parse(content);\n\n if (config.compilerOptions?.paths) {\n Object.assign(config.compilerOptions.paths, {\n '@/*': ['./src/*'],\n });\n }\n\n await fs.writeFile(tsconfigPath, JSON.stringify(config, null, 2));\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 === '+express+azure-web-pubsub') {\n const dependencies = {\n ...pick(localVersions, [\n '@inditextech/weave-sdk',\n '@inditextech/weave-store-azure-web-pubsub',\n '@inditextech/weave-store-standalone',\n ]),\n ...pick(versionPkg.dependencies, [\n '@dotenvx/dotenvx',\n '@imgly/background-removal-node',\n 'archiver',\n 'cors',\n 'dotenv',\n 'express',\n 'helmet',\n 'morgan',\n 'multer',\n 'p-queue',\n 'pino',\n 'pino-http',\n 'pino-pretty',\n 'tslib',\n 'tsx',\n 'uuid',\n 'zod',\n ]),\n };\n\n const devDependencies = {\n ...pick(versionPkg.devDependencies, [\n '@eslint/js',\n '@types/archiver',\n '@types/cors',\n '@types/express',\n '@types/morgan',\n '@types/multer',\n '@types/node',\n '@typescript-eslint/eslint-plugin',\n '@typescript-eslint/parser',\n 'cp-cli',\n 'eslint',\n 'eslint-config-prettier',\n 'globals',\n 'make-dir-cli',\n 'nodemon',\n 'prettier',\n 'tsc-alias',\n 'tsconfig-paths',\n 'typescript',\n 'typescript-eslint',\n ]),\n };\n\n return {\n ...versionPkg,\n name: projectName,\n scripts: {\n build:\n 'tsc && tsc-alias -p tsconfig.json && make-dir ./dist/public && make-dir ./dist/temp && cp-cli ./public ./dist/public && cp-cli ./package.json ./dist/package.json',\n ['copy:assets']:\n 'make-dir ./public && cp-cli node_modules/@imgly/background-removal-node/dist/. public',\n ['copy:fonts']: 'cp-cli fonts/. dist/fonts',\n dev: 'nodemon',\n format: 'prettier --write \"src/**/*.{ts,tsx}\"',\n lint: 'eslint ./src',\n postinstall: 'npm run copy:assets',\n start:\n 'node --experimental-specifier-resolution=node --loader --env-file=.env ts-node/esm dist/server.js',\n ['start:dev']:\n 'cp-cli .env ./dist/.env && cd dist && NODE_ENV=development NODE_OPTIONS=\"--max-old-space-size=4096\" node --env-file=.env ./server.js',\n },\n dependencies: sortObjectKeys(dependencies),\n devDependencies: sortObjectKeys(devDependencies),\n };\n }\n\n const dependencies = {\n ...pick(versionPkg.dependencies, [\n '@dotenvx/dotenvx',\n '@imgly/background-removal-node',\n 'archiver',\n 'cors',\n 'dotenv',\n 'express',\n 'helmet',\n 'morgan',\n 'multer',\n 'p-queue',\n 'pino',\n 'pino-http',\n 'pino-pretty',\n 'tslib',\n 'tsx',\n 'uuid',\n 'zod',\n ]),\n ...pick(localVersions, [\n '@inditextech/weave-sdk',\n '@inditextech/weave-store-websockets',\n '@inditextech/weave-store-standalone',\n ]),\n };\n\n const devDependencies = {\n ...pick(versionPkg.devDependencies, [\n '@eslint/js',\n '@types/archiver',\n '@types/cors',\n '@types/express',\n '@types/morgan',\n '@types/multer',\n '@types/node',\n '@typescript-eslint/eslint-plugin',\n '@typescript-eslint/parser',\n 'cp-cli',\n 'eslint',\n 'eslint-config-prettier',\n 'globals',\n 'make-dir-cli',\n 'nodemon',\n 'prettier',\n 'tsc-alias',\n 'tsconfig-paths',\n 'typescript',\n 'typescript-eslint',\n ]),\n };\n\n return {\n ...versionPkg,\n name: projectName,\n scripts: {\n build:\n 'tsc && tsc-alias -p tsconfig.json && make-dir ./dist/public && make-dir ./dist/temp && cp-cli ./public ./dist/public && cp-cli ./package.json ./dist/package.json',\n ['copy:assets']:\n 'make-dir ./public && cp-cli node_modules/@imgly/background-removal-node/dist/. public',\n ['copy:fonts']: 'cp-cli fonts/. dist/fonts',\n dev: 'nodemon',\n format: 'prettier --write \"src/**/*.{ts,tsx}\"',\n lint: 'eslint ./src',\n postinstall: 'npm run copy:assets',\n start:\n 'node --experimental-specifier-resolution=node --loader --env-file=.env ts-node/esm dist/server.js',\n ['start:dev']:\n 'cp-cli .env ./dist/.env && cd dist && NODE_ENV=development NODE_OPTIONS=\"--max-old-space-size=4096\" node --env-file=.env ./server.js',\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":";;;;;;;AAIA,SAAgB,oBAAoC;CAClD,MAAM,YAAY,QAAQ,IAAI,yBAAyB;CAEvD,IAAI,UAAU,WAAW,MAAM,GAC7B,OAAO;CAGT,IAAI,UAAU,WAAW,MAAM,GAC7B,OAAO;CAGT,IAAI,UAAU,WAAW,KAAK,GAC5B,OAAO;CAGT,OAAO;AACT;AAEA,SAAgB,YACd,SACA,MACe;CACf,OAAO,IAAI,SAAS,KAAK,WAAW;EAWlC,MAV6B,SAAS,CAAC,SAAS,GAAG;GACjD,OAAO;GACP,KAAK;IACH,GAAG,QAAQ;IACX,UAAU;IACV,wBAAwB;GAC1B;GACA,KAAK;EACP,CAEa,CAAC,CAAC,GAAG,UAAU,SAAS;GACnC,IAAI,SAAS,GACX,uBAAO,IAAI,MAAM,gBAAgB,CAAC;QAElC,IAAI;EAER,CAAC;CACH,CAAC;AACH;;;ACnCA,SAAS,kBAAkB,KAAsB;CAC/C,IAAI;EACF,SAAS,uCAAuC;GAAE,OAAO;GAAU;EAAI,CAAC;EACxE,OAAO;CACT,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,wBAAwB,KAAsB;CACrD,IAAI;EACF,SAAS,mBAAmB;GAAE,OAAO;GAAU;EAAI,CAAC;EACpD,OAAO;CACT,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,mBAAmB,KAAsB;CAChD,IAAI;EACF,SAAS,iCAAiC;GAAE,OAAO;GAAU;EAAI,CAAC;EAClE,OAAO;CACT,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAgB,WAAW,MAAuB;CAChD,IAAI,UAAU;CAEd,IAAI;EACF,SAAS,iBAAiB,EAAE,OAAO,SAAS,CAAC;EAC7C,IAAI,kBAAkB,IAAI,KAAK,wBAAwB,IAAI,GACzD,OAAO;EAGT,SAAS,YAAY;GAAE,OAAO;GAAU,KAAK;EAAK,CAAC;EACnD,UAAU;EAEV,IAAI,CAAC,mBAAmB,IAAI,GAC1B,SAAS,wBAAwB;GAAE,OAAO;GAAU,KAAK;EAAK,CAAC;EAGjE,SAAS,cAAc;GAAE,OAAO;GAAU,KAAK;EAAK,CAAC;EACrD,SAAS,6DAA2D;GAClE,OAAO;GACP,KAAK;EACP,CAAC;EACD,OAAO;CACT,QAAQ;EACN,IAAI,SACF,IAAI;GACF,OAAO,KAAK,MAAM,MAAM,GAAG;IAAE,WAAW;IAAM,OAAO;GAAK,CAAC;EAC7D,QAAQ,CAER;EAGF,OAAO;CACT;AACF;;;ACtEA,MAAa,WAAW;CAAC,4BAA2B;CAAQ,0BAAyB;CAAQ,6CAA4C;CAAQ,uCAAsC;CAAQ,uCAAsC;CAAQ,4BAA2B;AAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AEE/Q,MAAa,YAAY,cAAc,IAAI,IAAI,OAAO,YAAY,GAAG,CAAC,CAAC,IAAI;AAC3E,MAAa,MAAM,QAAQ,IAAI;;;ACiB/B,eAAsB,OAAO,SAAiC;CAC5D,MAAM,EACJ,cAAc,MACd,gBAAgB,MAChB,MAAM,QAAQ,QACZ;CACJ,MAAM,cAAc,KAAK,SAAS,QAAQ,SAAS;CACnD,MAAM,OAAO,KAAK,QAAQ,KAAK,QAAQ,SAAS;CAEhD,SAAS,cAAc,MAAsB;EAC3C,OAAO,KAAK,QAAQ,qBAAqB,YAAY;EACrD,OAAO,KAAK,QAAQ,eAAe,MAAM;EAEzC,OAAO;CACT;CAEA,MAAM,KACJ,KAAK,KAAK,WAAW,YAAY,QAAQ,UAAU,GACnD,MACA,aACF;CAIA,MAAM,eAAe,KAAK,KAAK,MAAM,eAAe;CACpD,MAAM,WAAW,MAAM,GAAG,SAAS,YAAY,EAAA,CAAG,SAAS;CAE3D,MAAM,SAAS,KAAK,MAAM,OAAO;CAEjC,IAAI,OAAO,iBAAiB,OAC1B,OAAO,OAAO,OAAO,gBAAgB,OAAO,EAC1C,OAAO,CAAC,SAAS,EACnB,CAAC;CAGH,MAAM,GAAG,UAAU,cAAc,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;CAGhE,MAAM,cAAc,kBAAkB,aAAa,OAAO;CAC1D,MAAM,GAAG,UACP,KAAK,KAAK,MAAM,cAAc,GAC9B,KAAK,UAAU,aAAa,MAAM,CAAC,CACrC;CAEA,MAAM,SAAS,MAAM,UAAU,MAAM,WAAW;CAChD,MAAM,GAAG,UAAU,KAAK,KAAK,MAAM,WAAW,GAAG,MAAM;CAEvD,IAAI,aAAa;EACf,MAAM,YAAY,QAAQ,gBAAgB,IAAI;EAC9C,IAAI,wBAAwB;CAC9B;CAEA,IAAI,iBAAiB,WAAW,IAAI,GAClC,IAAI,4BAA4B;AAEpC;AAEA,eAAe,UAAU,MAAc,aAAsC;CAK3E,OAAO,KAAK,YAAY,MAAM,MAJP,GACpB,SAAS,KAAK,KAAK,MAAM,WAAW,CAAC,CAAC,CACtC,MAAM,QAAQ,IAAI,SAAS,CAAC;AAGjC;AAEA,eAAe,KACb,MACA,IACA,UAAiC,MAAM,GACxB;CAGf,KAAI,MAFgB,GAAG,KAAK,IAAI,EAAA,CAEtB,YAAY,GAAG;EACvB,MAAM,QAAQ,MAAM,GAAG,QAAQ,IAAI;EAEnC,MAAM,QAAQ,IACZ,MAAM,KAAK,SACT,KAAK,KAAK,KAAK,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,CACzD,CACF;CACF,OAAO;EACL,MAAM,GAAG,MAAM,KAAK,QAAQ,EAAE,GAAG,EAAE,WAAW,KAAK,CAAC;EACpD,MAAM,GAAG,SAAS,MAAM,EAAE;CAC5B;AACF;AAEA,SAAS,kBAAkB,aAAqB,SAA0B;CACxE,IAAI,QAAQ,aAAa,6BAA6B;EACpD,MAAM,eAAe;GACnB,GAAG,KAAKA,UAAe;IACrB;IACA;IACA;GACF,CAAC;GACD,GAAG,KAAKC,gBAAW,cAAc;IAC/B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACF,CAAC;EACH;EAEA,MAAM,kBAAkB,EACtB,GAAG,KAAKA,gBAAW,iBAAiB;GAClC;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC,EACH;EAEA,OAAO;GACL,GAAGA;GACH,MAAM;GACN,SAAS;IACP,OACE;KACD,gBACC;KACD,eAAe;IAChB,KAAK;IACL,QAAQ;IACR,MAAM;IACN,aAAa;IACb,OACE;KACD,cACC;GACJ;GACA,cAAc,eAAe,YAAY;GACzC,iBAAiB,eAAe,eAAe;EACjD;CACF;CAEA,MAAM,eAAe;EACnB,GAAG,KAAKA,gBAAW,cAAc;GAC/B;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,CAAC;EACD,GAAG,KAAKD,UAAe;GACrB;GACA;GACA;EACF,CAAC;CACH;CAEA,MAAM,kBAAkB,EACtB,GAAG,KAAKC,gBAAW,iBAAiB;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,EACH;CAEA,OAAO;EACL,GAAGA;EACH,MAAM;EACN,SAAS;GACP,OACE;IACD,gBACC;IACD,eAAe;GAChB,KAAK;GACL,QAAQ;GACR,MAAM;GACN,aAAa;GACb,OACE;IACD,cACC;EACJ;EACA,cAAc,eAAe,YAAY;EACzC,iBAAiB,eAAe,eAAe;CACjD;AACF;AAGA,SAAS,eAA8C,KAAW;CAChE,MAAM,gBAAgB,OAAO,KAAK,GAAG,CAAC,CACnC,KAAK,CAAC,CACN,KAAK,QAAQ,CAAC,KAAK,IAAI,IAAI,CAA0B;CAExD,OAAO,OAAO,YAAY,aAAa;AACzC;AAEA,SAAS,KACP,KACA,MACY;CACZ,MAAM,SAAqB,CAAC;CAE5B,KAAK,MAAM,OAAO,MAChB,IAAI,OAAO,KACT,OAAO,OAAO,IAAI;CAItB,OAAO;AACT"}
@@ -1,2 +1,2 @@
1
- import { t as create } from "./create-app-FCjCsi1n.js";
1
+ import { t as create } from "./create-app-BGyZtsUA.js";
2
2
  export { create };
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import { n as cwd, r as getPackageManager, t as create } from "./create-app-FCjCsi1n.js";
2
+ import { n as cwd, r as getPackageManager, t as create } from "./create-app-BGyZtsUA.js";
3
3
  import fs from "node:fs/promises";
4
4
  import path from "node:path";
5
5
  import { cancel, confirm, group, intro, isCancel, outro, select, spinner, text } from "@clack/prompts";
6
6
  import pc from "picocolors";
7
7
  //#region package.json
8
- var version = "5.4.0";
8
+ var version = "5.4.1";
9
9
  //#endregion
10
10
  //#region src/index.ts
11
11
  const manager = getPackageManager();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-weave-backend-app",
3
- "version": "5.4.0",
3
+ "version": "5.4.1",
4
4
  "description": "Create a new backend artifact for site with Weave.js",
5
5
  "keywords": [
6
6
  "NextJs",