create-weave-backend-app 5.2.1 → 5.3.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.
@@ -1,38 +1,62 @@
1
- import path, { join } from "node:path";
2
1
  import fs from "node:fs/promises";
2
+ import path, { join } from "node:path";
3
+ import { spawn } from "cross-spawn";
3
4
  import { execSync } from "node:child_process";
4
5
  import { rmSync } from "node:fs";
5
- import { spawn } from "cross-spawn";
6
6
  import { fileURLToPath } from "node:url";
7
-
7
+ //#region src/auto-install.ts
8
+ function getPackageManager() {
9
+ const userAgent = process.env.npm_config_user_agent ?? "";
10
+ if (userAgent.startsWith("yarn")) return "yarn";
11
+ if (userAgent.startsWith("pnpm")) return "pnpm";
12
+ if (userAgent.startsWith("bun")) return "bun";
13
+ return "npm";
14
+ }
15
+ function autoInstall(manager, dest) {
16
+ return new Promise((res, reject) => {
17
+ spawn(manager, ["install"], {
18
+ stdio: "ignore",
19
+ env: {
20
+ ...process.env,
21
+ NODE_ENV: "development",
22
+ DISABLE_OPENCOLLECTIVE: "1"
23
+ },
24
+ cwd: dest
25
+ }).on("close", (code) => {
26
+ if (code !== 0) reject(/* @__PURE__ */ new Error("Install failed"));
27
+ else res();
28
+ });
29
+ });
30
+ }
31
+ //#endregion
8
32
  //#region src/git.ts
9
- function isInGitRepository(cwd$1) {
33
+ function isInGitRepository(cwd) {
10
34
  try {
11
35
  execSync("git rev-parse --is-inside-work-tree", {
12
36
  stdio: "ignore",
13
- cwd: cwd$1
37
+ cwd
14
38
  });
15
39
  return true;
16
40
  } catch {
17
41
  return false;
18
42
  }
19
43
  }
20
- function isInMercurialRepository(cwd$1) {
44
+ function isInMercurialRepository(cwd) {
21
45
  try {
22
46
  execSync("hg --cwd . root", {
23
47
  stdio: "ignore",
24
- cwd: cwd$1
48
+ cwd
25
49
  });
26
50
  return true;
27
51
  } catch {
28
52
  return false;
29
53
  }
30
54
  }
31
- function isDefaultBranchSet(cwd$1) {
55
+ function isDefaultBranchSet(cwd) {
32
56
  try {
33
57
  execSync("git config init.defaultBranch", {
34
58
  stdio: "ignore",
35
- cwd: cwd$1
59
+ cwd
36
60
  });
37
61
  return true;
38
62
  } catch {
@@ -72,114 +96,75 @@ function tryGitInit(root) {
72
96
  return false;
73
97
  }
74
98
  }
75
-
76
99
  //#endregion
77
100
  //#region src/versions.js
78
101
  const versions = {
79
- "@inditextech/weave-react": "5.2.1",
80
- "@inditextech/weave-sdk": "5.2.1",
81
- "@inditextech/weave-store-azure-web-pubsub": "5.2.1",
82
- "@inditextech/weave-store-standalone": "5.2.1",
83
- "@inditextech/weave-store-websockets": "5.2.1",
84
- "@inditextech/weave-types": "5.2.1"
102
+ "@inditextech/weave-react": "5.3.0",
103
+ "@inditextech/weave-sdk": "5.3.0",
104
+ "@inditextech/weave-store-azure-web-pubsub": "5.3.0",
105
+ "@inditextech/weave-store-standalone": "5.3.0",
106
+ "@inditextech/weave-store-websockets": "5.3.0",
107
+ "@inditextech/weave-types": "5.3.0"
85
108
  };
86
-
87
109
  //#endregion
88
110
  //#region template/package.json
89
- var name = "example-versions";
90
- var version = "0.0.0";
91
- var private$1 = true;
92
- var type = "module";
93
- var description = "Used to track dependency versions in create-*-app";
94
- var license = "MIT";
95
- var dependencies = {
96
- "@dotenvx/dotenvx": "^1.44.0",
97
- "@imgly/background-removal-node": "^1.4.5",
98
- "@inditextech/weave-sdk": "0.0.0",
99
- "@inditextech/weave-store-azure-web-pubsub": "0.0.0",
100
- "@inditextech/weave-store-standalone": "0.0.0",
101
- "@inditextech/weave-store-websockets": "0.0.0",
102
- "archiver": "^7.0.1",
103
- "cors": "^2.8.5",
104
- "dotenv": "^16.4.7",
105
- "express": "^4.21.2",
106
- "helmet": "^8.0.0",
107
- "morgan": "^1.10.0",
108
- "multer": "^2.0.2",
109
- "p-queue": "^9.0.1",
110
- "pino": "^9.6.0",
111
- "pino-http": "^10.4.0",
112
- "pino-pretty": "^13.0.0",
113
- "tslib": "^2.8.1",
114
- "tsx": "^4.19.3",
115
- "uuid": "^11.1.1",
116
- "zod": "^3.24.2"
117
- };
118
- var devDependencies = {
119
- "@eslint/js": "^9.26.0",
120
- "@types/archiver": "^7.0.0",
121
- "@types/cors": "^2.8.17",
122
- "@types/express": "^5.0.0",
123
- "@types/morgan": "^1.9.9",
124
- "@types/multer": "^1.4.12",
125
- "@types/node": "^22.13.5",
126
- "@typescript-eslint/eslint-plugin": "^8.25.0",
127
- "@typescript-eslint/parser": "^8.25.0",
128
- "cp-cli": "^2.0.0",
129
- "eslint": "^9.26.0",
130
- "eslint-config-prettier": "^10.1.5",
131
- "globals": "^16.0.0",
132
- "make-dir-cli": "^4.0.0",
133
- "nodemon": "^3.1.9",
134
- "prettier": "^3.5.2",
135
- "tsc-alias": "^1.8.16",
136
- "tsconfig-paths": "^4.2.0",
137
- "typescript": "^5.7.3",
138
- "typescript-eslint": "^8.25.0"
139
- };
140
111
  var package_default = {
141
- name,
142
- version,
143
- private: private$1,
144
- type,
145
- description,
146
- license,
147
- dependencies,
148
- devDependencies
112
+ name: "example-versions",
113
+ version: "0.0.0",
114
+ "private": true,
115
+ type: "module",
116
+ description: "Used to track dependency versions in create-*-app",
117
+ license: "MIT",
118
+ dependencies: {
119
+ "@dotenvx/dotenvx": "^1.44.0",
120
+ "@imgly/background-removal-node": "^1.4.5",
121
+ "@inditextech/weave-sdk": "0.0.0",
122
+ "@inditextech/weave-store-azure-web-pubsub": "0.0.0",
123
+ "@inditextech/weave-store-standalone": "0.0.0",
124
+ "@inditextech/weave-store-websockets": "0.0.0",
125
+ "archiver": "^7.0.1",
126
+ "cors": "^2.8.5",
127
+ "dotenv": "^16.4.7",
128
+ "express": "^4.21.2",
129
+ "helmet": "^8.0.0",
130
+ "morgan": "^1.10.0",
131
+ "multer": "^2.0.2",
132
+ "p-queue": "^9.0.1",
133
+ "pino": "^9.6.0",
134
+ "pino-http": "^10.4.0",
135
+ "pino-pretty": "^13.0.0",
136
+ "tslib": "^2.8.1",
137
+ "tsx": "^4.19.3",
138
+ "uuid": "^11.1.1",
139
+ "zod": "^3.24.2"
140
+ },
141
+ devDependencies: {
142
+ "@eslint/js": "^9.26.0",
143
+ "@types/archiver": "^7.0.0",
144
+ "@types/cors": "^2.8.17",
145
+ "@types/express": "^5.0.0",
146
+ "@types/morgan": "^1.9.9",
147
+ "@types/multer": "^1.4.12",
148
+ "@types/node": "^22.13.5",
149
+ "@typescript-eslint/eslint-plugin": "^8.25.0",
150
+ "@typescript-eslint/parser": "^8.25.0",
151
+ "cp-cli": "^2.0.0",
152
+ "eslint": "^9.26.0",
153
+ "eslint-config-prettier": "^10.1.5",
154
+ "globals": "^16.0.0",
155
+ "make-dir-cli": "^4.0.0",
156
+ "nodemon": "^3.1.9",
157
+ "prettier": "^3.5.2",
158
+ "tsc-alias": "^1.8.16",
159
+ "tsconfig-paths": "^4.2.0",
160
+ "typescript": "^5.7.3",
161
+ "typescript-eslint": "^8.25.0"
162
+ }
149
163
  };
150
-
151
- //#endregion
152
- //#region src/auto-install.ts
153
- function getPackageManager() {
154
- const userAgent = process.env.npm_config_user_agent ?? "";
155
- if (userAgent.startsWith("yarn")) return "yarn";
156
- if (userAgent.startsWith("pnpm")) return "pnpm";
157
- if (userAgent.startsWith("bun")) return "bun";
158
- return "npm";
159
- }
160
- function autoInstall(manager, dest) {
161
- return new Promise((res, reject) => {
162
- const installProcess = spawn(manager, ["install"], {
163
- stdio: "ignore",
164
- env: {
165
- ...process.env,
166
- NODE_ENV: "development",
167
- DISABLE_OPENCOLLECTIVE: "1"
168
- },
169
- cwd: dest
170
- });
171
- installProcess.on("close", (code) => {
172
- if (code !== 0) reject(new Error("Install failed"));
173
- else res();
174
- });
175
- });
176
- }
177
-
178
164
  //#endregion
179
165
  //#region src/constants.ts
180
166
  const sourceDir = fileURLToPath(new URL(`../`, import.meta.url).href);
181
167
  const cwd = process.cwd();
182
-
183
168
  //#endregion
184
169
  //#region src/create-app.ts
185
170
  async function create(options) {
@@ -208,12 +193,10 @@ async function create(options) {
208
193
  if (initializeGit && tryGitInit(dest)) log("Initialized Git repository");
209
194
  }
210
195
  async function getReadme(dest, projectName) {
211
- const template = await fs.readFile(path.join(dest, "README.md")).then((res) => res.toString());
212
- return `# ${projectName}\n\n${template}`;
196
+ return `# ${projectName}\n\n${await fs.readFile(path.join(dest, "README.md")).then((res) => res.toString())}`;
213
197
  }
214
198
  async function copy(from, to, rename = (s) => s) {
215
- const stats = await fs.stat(from);
216
- if (stats.isDirectory()) {
199
+ if ((await fs.stat(from)).isDirectory()) {
217
200
  const files = await fs.readdir(from);
218
201
  await Promise.all(files.map((file) => copy(path.join(from, file), rename(path.join(to, file)))));
219
202
  } else {
@@ -223,7 +206,7 @@ async function copy(from, to, rename = (s) => s) {
223
206
  }
224
207
  function createPackageJson(projectName, options) {
225
208
  if (options.template === "+express+azure-web-pubsub") {
226
- const dependencies$2 = {
209
+ const dependencies = {
227
210
  ...pick(versions, [
228
211
  "@inditextech/weave-sdk",
229
212
  "@inditextech/weave-store-azure-web-pubsub",
@@ -249,7 +232,7 @@ function createPackageJson(projectName, options) {
249
232
  "zod"
250
233
  ])
251
234
  };
252
- const devDependencies$2 = { ...pick(package_default.devDependencies, [
235
+ const devDependencies = { ...pick(package_default.devDependencies, [
253
236
  "@eslint/js",
254
237
  "@types/archiver",
255
238
  "@types/cors",
@@ -285,11 +268,11 @@ function createPackageJson(projectName, options) {
285
268
  start: "node --experimental-specifier-resolution=node --loader --env-file=.env ts-node/esm dist/server.js",
286
269
  ["start:dev"]: "cp-cli .env ./dist/.env && cd dist && NODE_ENV=development NODE_OPTIONS=\"--max-old-space-size=4096\" node --env-file=.env ./server.js"
287
270
  },
288
- dependencies: sortObjectKeys(dependencies$2),
289
- devDependencies: sortObjectKeys(devDependencies$2)
271
+ dependencies: sortObjectKeys(dependencies),
272
+ devDependencies: sortObjectKeys(devDependencies)
290
273
  };
291
274
  }
292
- const dependencies$1 = {
275
+ const dependencies = {
293
276
  ...pick(package_default.dependencies, [
294
277
  "@dotenvx/dotenvx",
295
278
  "@imgly/background-removal-node",
@@ -315,7 +298,7 @@ function createPackageJson(projectName, options) {
315
298
  "@inditextech/weave-store-standalone"
316
299
  ])
317
300
  };
318
- const devDependencies$1 = { ...pick(package_default.devDependencies, [
301
+ const devDependencies = { ...pick(package_default.devDependencies, [
319
302
  "@eslint/js",
320
303
  "@types/archiver",
321
304
  "@types/cors",
@@ -351,8 +334,8 @@ function createPackageJson(projectName, options) {
351
334
  start: "node --experimental-specifier-resolution=node --loader --env-file=.env ts-node/esm dist/server.js",
352
335
  ["start:dev"]: "cp-cli .env ./dist/.env && cd dist && NODE_ENV=development NODE_OPTIONS=\"--max-old-space-size=4096\" node --env-file=.env ./server.js"
353
336
  },
354
- dependencies: sortObjectKeys(dependencies$1),
355
- devDependencies: sortObjectKeys(devDependencies$1)
337
+ dependencies: sortObjectKeys(dependencies),
338
+ devDependencies: sortObjectKeys(devDependencies)
356
339
  };
357
340
  }
358
341
  function sortObjectKeys(obj) {
@@ -364,7 +347,7 @@ function pick(obj, keys) {
364
347
  for (const key of keys) if (key in obj) result[key] = obj[key];
365
348
  return result;
366
349
  }
367
-
368
350
  //#endregion
369
- export { create, cwd, getPackageManager };
370
- //# sourceMappingURL=create-app-DBvewJ0W.js.map
351
+ export { cwd as n, getPackageManager as r, create as t };
352
+
353
+ //# sourceMappingURL=create-app-ChV1im0N.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-app-ChV1im0N.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.3.0\",\"@inditextech/weave-sdk\":\"5.3.0\",\"@inditextech/weave-store-azure-web-pubsub\":\"5.3.0\",\"@inditextech/weave-store-standalone\":\"5.3.0\",\"@inditextech/weave-store-websockets\":\"5.3.0\",\"@inditextech/weave-types\":\"5.3.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,6 +1,5 @@
1
1
  //#region src/auto-install.d.ts
2
2
  type PackageManager = 'npm' | 'pnpm' | 'yarn' | 'bun';
3
-
4
3
  //#endregion
5
4
  //#region src/create-app.d.ts
6
5
  type Template = '+express+websockets' | '+express+azure-web-pubsub';
@@ -13,9 +12,6 @@ interface Options {
13
12
  log?: (message: string) => void;
14
13
  }
15
14
  declare function create(options: Options): Promise<void>;
16
-
17
15
  //#endregion
18
- //# sourceMappingURL=create-app.d.ts.map
19
-
20
16
  export { Options, Template, create };
21
17
  //# sourceMappingURL=create-app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-app.d.ts","names":[],"sources":["../src/auto-install.ts","../src/create-app.ts"],"sourcesContent":null,"mappings":";KAEY,cAAA;;;;AAAA,KCOA,QAAA,GDPc,qBAAA,GAAA,2BAAA;UCST,OAAA;;YAEL;EAJA,cAAQ,EAKF,cALE;EAEH,WAAO,CAAA,EAAA,OAAA;EAAA,aAAA,CAAA,EAAA,OAAA;EAAA,GAEZ,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,GAAA,IAAA;;AACoB,iBAMV,MAAA,CANU,OAAA,EAMM,OANN,CAAA,EAMgB,OANhB,CAAA,IAAA,CAAA;;;AAMhC"}
1
+ {"version":3,"file":"create-app.d.ts","names":[],"sources":["../src/auto-install.ts","../src/create-app.ts"],"mappings":";KAEY;;;KCOA;UAEK;EACf;EACA,UAAU;EACV,gBAAgB;EAChB;EACA;EACA,OAAO;;iBAGa,OAAO,SAAS,UAAU"}
@@ -1,3 +1,2 @@
1
- import { create } from "./create-app-DBvewJ0W.js";
2
-
3
- export { create };
1
+ import { t as create } from "./create-app-ChV1im0N.js";
2
+ export { create };
package/dist/index.d.ts CHANGED
@@ -1 +1 @@
1
- export { };
1
+ export {}
package/dist/index.js CHANGED
@@ -1,102 +1,16 @@
1
1
  #!/usr/bin/env node
2
- import { create, cwd, getPackageManager } from "./create-app-DBvewJ0W.js";
3
- import path from "node:path";
2
+ import { n as cwd, r as getPackageManager, t as create } from "./create-app-ChV1im0N.js";
4
3
  import fs from "node:fs/promises";
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
-
8
7
  //#region package.json
9
- var name = "create-weave-backend-app";
10
- var version = "5.2.1";
11
- var description = "Create a new backend artifact for site with Weave.js";
12
- var keywords = [
13
- "NextJs",
14
- "next",
15
- "react",
16
- "Weave.js"
17
- ];
18
- var homepage = "https://inditextech.github.io/weavejs";
19
- var repository = "github:InditexTech/weavejs";
20
- var license = "Apache-2.0";
21
- var author = "Jesus Manuel Piñeiro Cid <jesusmpc@inditex.com>";
22
- var type = "module";
23
- var bin = "./dist/index.js";
24
- var module = "./dist/create-app.js";
25
- var types = "./dist/create-app.d.ts";
26
- var files = ["template/*", "dist/*"];
27
- var scripts = {
28
- "bump:snapshot": "tsc --noEmit && tsdown --sourcemap",
29
- "build": "tsc --noEmit && tsdown",
30
- "clean": "rimraf dist",
31
- "dev": "tsdown --watch",
32
- "format": "prettier --write ./src ./template",
33
- "link": "npm link",
34
- "lint:fix": "npm run lint -- --fix",
35
- "lint": "eslint ./src",
36
- "pack": "npm pack",
37
- "publish:snapshot": "npm publish --tag next --access public",
38
- "release:perform": "npm publish --access public",
39
- "release:prepare": "npm run verify",
40
- "test": "echo \"No tests defined\" && exit 0",
41
- "types:check": "tsc --noEmit",
42
- "unpublish": "npm unpublish --force",
43
- "verify": "npm run lint && npm run test && npm run build",
44
- "version:development": "npm version $(npm version minor)-SNAPSHOT",
45
- "version:release": "npm version $RELEASE_VERSION -m \"[npm-scripts] prepare release $RELEASE_VERSION\" --tag-version-prefix \"\""
46
- };
47
- var dependencies = {
48
- "@clack/prompts": "^0.10.1",
49
- "cross-spawn": "^7.0.6",
50
- "picocolors": "^1.1.1"
51
- };
52
- var devDependencies = {
53
- "@types/cross-spawn": "^6.0.6",
54
- "@types/node": "22.14.1",
55
- "fast-glob": "^3.3.3",
56
- "eslint": "8.57.1",
57
- "eslint-config-eslint": "11.0.0",
58
- "tsdown": "^0.10.2"
59
- };
60
- var engines = {
61
- "node": ">=18.12",
62
- "npm": ">= 8.19.x"
63
- };
64
- var publishConfig = { "access": "public" };
65
- var nx = { "implicitDependencies": [
66
- "@inditextech/weave-react",
67
- "@inditextech/weave-sdk",
68
- "@inditextech/weave-store-azure-web-pubsub",
69
- "@inditextech/weave-store-standalone",
70
- "@inditextech/weave-store-websockets",
71
- "@inditextech/weave-types"
72
- ] };
73
- var package_default = {
74
- name,
75
- version,
76
- description,
77
- keywords,
78
- homepage,
79
- repository,
80
- license,
81
- author,
82
- type,
83
- bin,
84
- module,
85
- types,
86
- files,
87
- scripts,
88
- dependencies,
89
- devDependencies,
90
- engines,
91
- publishConfig,
92
- nx
93
- };
94
-
8
+ var version = "5.3.0";
95
9
  //#endregion
96
10
  //#region src/index.ts
97
11
  const manager = getPackageManager();
98
12
  async function main() {
99
- intro(pc.bgCyan(pc.bold(`Create Weave.js Backend Service [${package_default.version}]`)));
13
+ intro(pc.bgCyan(pc.bold(`Create Weave.js Backend Service [${version}]`)));
100
14
  const options = await group({
101
15
  name: () => text({
102
16
  message: "Project name",
@@ -130,15 +44,15 @@ async function main() {
130
44
  return;
131
45
  }
132
46
  if (del) {
133
- const info$1 = spinner();
134
- info$1.start(`Deleting files in ${projectName}`);
47
+ const info = spinner();
48
+ info.start(`Deleting files in ${projectName}`);
135
49
  await Promise.all(destDir.map((item) => {
136
50
  return fs.rm(path.join(dest, item), {
137
51
  recursive: true,
138
52
  force: true
139
53
  });
140
54
  }));
141
- info$1.stop(`Deleted files in ${projectName}`);
55
+ info.stop(`Deleted files in ${projectName}`);
142
56
  }
143
57
  }
144
58
  const info = spinner();
@@ -164,6 +78,7 @@ main().catch((e) => {
164
78
  console.error(e);
165
79
  throw e;
166
80
  });
167
-
168
81
  //#endregion
82
+ export {};
83
+
169
84
  //# sourceMappingURL=index.js.map
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-backend-app\",\n \"version\": \"5.2.1\",\n \"description\": \"Create a new backend artifact for 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 \"eslint\": \"8.57.1\",\n \"eslint-config-eslint\": \"11.0.0\",\n \"tsdown\": \"^0.10.2\"\n },\n \"engines\": {\n \"node\": \">=18.12\",\n \"npm\": \">= 8.19.x\"\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-standalone\",\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(\n pc.bold(`Create Weave.js Backend Service [${packageJson.version}]`)\n )\n );\n\n const options = await group(\n {\n name: () =>\n text({\n message: 'Project name',\n placeholder: 'my-service',\n defaultValue: 'my-service',\n }),\n template: () =>\n select({\n message: 'Choose a template',\n initialValue: '+express+websockets' as Template,\n options: [\n {\n value: '+express+websockets',\n label: 'Express.js: Weave.js Websockets Store',\n hint: 'recommended',\n },\n {\n value: '+express+azure-web-pubsub',\n label: 'Express.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 as 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":"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"}
1
+ {"version":3,"file":"index.js","names":["packageJson.version"],"sources":["../package.json","../src/index.ts"],"sourcesContent":["","#!/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(\n pc.bold(`Create Weave.js Backend Service [${packageJson.version}]`)\n )\n );\n\n const options = await group(\n {\n name: () =>\n text({\n message: 'Project name',\n placeholder: 'my-service',\n defaultValue: 'my-service',\n }),\n template: () =>\n select({\n message: 'Choose a template',\n initialValue: '+express+websockets' as Template,\n options: [\n {\n value: '+express+websockets',\n label: 'Express.js: Weave.js Websockets Store',\n hint: 'recommended',\n },\n {\n value: '+express+azure-web-pubsub',\n label: 'Express.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 as 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":";;;;;;;;;;ACoBA,MAAM,UAAU,kBAAkB;AAElC,eAAe,OAAsB;CACnC,MACE,GAAG,OACD,GAAG,KAAK,oCAAoCA,QAAoB,EAAE,CACpE,CACF;CAEA,MAAM,UAAU,MAAM,MACpB;EACE,YACE,KAAK;GACH,SAAS;GACT,aAAa;GACb,cAAc;EAChB,CAAC;EACH,gBACE,OAAO;GACL,SAAS;GACT,cAAc;GACd,SAAS,CACP;IACE,OAAO;IACP,OAAO;IACP,MAAM;GACR,GACA;IACE,OAAO;IACP,OAAO;GACT,CACF;EACF,CAAC;EACH,mBACE,QAAQ,EACN,SAAS,+DAA+D,QAAQ,GAClF,CAAC;CACL,GACA,EACE,gBAAgB;EACd,OAAO,uBAAuB;EAC9B,QAAQ,KAAK,CAAC;CAChB,EACF,CACF;CAEA,MAAM,cAAc,QAAQ,KAAK,YAAY,CAAC,CAAC,QAAQ,MAAM,GAAG;CAChE,MAAM,OAAO,KAAK,QAAQ,KAAK,WAAW;CAE1C,MAAM,UAAU,MAAM,GAAG,QAAQ,IAAI,CAAC,CAAC,YAAY,IAAI;CACvD,IAAI,WAAW,QAAQ,SAAS,GAAG;EACjC,MAAM,MAAM,MAAM,QAAQ,EACxB,SAAS,aAAa,YAAY,mDACpC,CAAC;EAED,IAAI,SAAS,GAAG,GAAG;GACjB,OAAO;GACP;EACF;EAEA,IAAI,KAAK;GACP,MAAM,OAAO,QAAQ;GACrB,KAAK,MAAM,qBAAqB,aAAa;GAE7C,MAAM,QAAQ,IACZ,QAAQ,KAAK,SAAS;IACpB,OAAO,GAAG,GAAG,KAAK,KAAK,MAAM,IAAI,GAAG;KAClC,WAAW;KACX,OAAO;IACT,CAAC;GACH,CAAC,CACH;GAEA,KAAK,KAAK,oBAAoB,aAAa;EAC7C;CACF;CAEA,MAAM,OAAO,QAAQ;CACrB,KAAK,MAAM,oBAAoB;CAE/B,MAAM,OAAO;EACX,gBAAgB;EAChB,UAAU,QAAQ;EAClB,WAAW;EACX,aAAa,QAAQ;EACrB,MAAM,YAAY;GAChB,KAAK,QAAQ,OAAO;EACtB;CACF,CAAC;CAED,KAAK,KAAK,mBAAmB;CAE7B,MAAM,GAAG,QAAQ,GAAG,KAAK,MAAM,CAAC,CAAC;CAEjC,QAAQ,IAAI,GAAG,KAAK,oBAAoB,CAAC;CACzC,QAAQ,IAAI,GAAG,KAAK,MAAM,aAAa,CAAC;CAExC,QAAQ,IAAI,GAAG,KAAK,0BAA0B,CAAC;CAC/C,QAAQ,IAAI,GAAG,KAAK,uCAAuC,CAAC;CAE5D,QAAQ,KAAK,CAAC;AAChB;AAEA,KAAK,CAAC,CAAC,OAAO,MAAe;CAC3B,QAAQ,MAAM,CAAC;CACf,MAAM;AACR,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-weave-backend-app",
3
- "version": "5.2.1",
3
+ "version": "5.3.0",
4
4
  "description": "Create a new backend artifact for site with Weave.js",
5
5
  "keywords": [
6
6
  "NextJs",
@@ -51,7 +51,7 @@
51
51
  "fast-glob": "^3.3.3",
52
52
  "eslint": "8.57.1",
53
53
  "eslint-config-eslint": "11.0.0",
54
- "tsdown": "^0.10.2"
54
+ "tsdown": "0.22.14"
55
55
  },
56
56
  "engines": {
57
57
  "node": ">=18.12",
@@ -3,7 +3,7 @@
3
3
  This is an Express.js application that was generated with **Create Weave.js Backend**
4
4
 
5
5
  This server setup the Weave.js
6
- [Azure Web Pubsub store](https://inditextech.github.io/weavejs/docs/main/build/stores/azure-web-pubsub-store) store. So before perform the quickstart please setup on the `.env` file the configuration for your Azure Web Pubsub instance.
6
+ [Azure Web Pubsub store](https://inditextech.github.io/weavejs/latest/main/build/stores/azure-web-pubsub-store/) store. So before perform the quickstart please setup on the `.env` file the configuration for your Azure Web Pubsub instance.
7
7
 
8
8
  ## Quickstart
9
9
 
@@ -3,7 +3,7 @@
3
3
  This is an Express.js application that was generated with **Create Weave.js Backend**
4
4
 
5
5
  This server setup the Weave.js
6
- [Azure WebSockets](https://inditextech.github.io/weavejs/docs/main/build/stores/websockets-store) store. No extra setup needed.
6
+ [Azure WebSockets](https://inditextech.github.io/weavejs/latest/main/build/stores/websockets-store/) store. No extra setup needed.
7
7
 
8
8
  ## Quickstart
9
9
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-app-DBvewJ0W.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\":\"5.2.1\",\"@inditextech/weave-sdk\":\"5.2.1\",\"@inditextech/weave-store-azure-web-pubsub\":\"5.2.1\",\"@inditextech/weave-store-standalone\":\"5.2.1\",\"@inditextech/weave-store-websockets\":\"5.2.1\",\"@inditextech/weave-types\":\"5.2.1\"}","{\n \"name\": \"example-versions\",\n \"version\": \"0.0.0\",\n \"private\": true,\n \"type\": \"module\",\n \"description\": \"Used to track dependency versions in create-*-app\",\n \"license\": \"MIT\",\n \"dependencies\": {\n \"@dotenvx/dotenvx\": \"^1.44.0\",\n \"@imgly/background-removal-node\": \"^1.4.5\",\n \"@inditextech/weave-sdk\": \"0.0.0\",\n \"@inditextech/weave-store-azure-web-pubsub\": \"0.0.0\",\n \"@inditextech/weave-store-standalone\": \"0.0.0\",\n \"@inditextech/weave-store-websockets\": \"0.0.0\",\n \"archiver\": \"^7.0.1\",\n \"cors\": \"^2.8.5\",\n \"dotenv\": \"^16.4.7\",\n \"express\": \"^4.21.2\",\n \"helmet\": \"^8.0.0\",\n \"morgan\": \"^1.10.0\",\n \"multer\": \"^2.0.2\",\n \"p-queue\": \"^9.0.1\",\n \"pino\": \"^9.6.0\",\n \"pino-http\": \"^10.4.0\",\n \"pino-pretty\": \"^13.0.0\",\n \"tslib\": \"^2.8.1\",\n \"tsx\": \"^4.19.3\",\n \"uuid\": \"^11.1.1\",\n \"zod\": \"^3.24.2\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^9.26.0\",\n \"@types/archiver\": \"^7.0.0\",\n \"@types/cors\": \"^2.8.17\",\n \"@types/express\": \"^5.0.0\",\n \"@types/morgan\": \"^1.9.9\",\n \"@types/multer\": \"^1.4.12\",\n \"@types/node\": \"^22.13.5\",\n \"@typescript-eslint/eslint-plugin\": \"^8.25.0\",\n \"@typescript-eslint/parser\": \"^8.25.0\",\n \"cp-cli\": \"^2.0.0\",\n \"eslint\": \"^9.26.0\",\n \"eslint-config-prettier\": \"^10.1.5\",\n \"globals\": \"^16.0.0\",\n \"make-dir-cli\": \"^4.0.0\",\n \"nodemon\": \"^3.1.9\",\n \"prettier\": \"^3.5.2\",\n \"tsc-alias\": \"^1.8.16\",\n \"tsconfig-paths\": \"^4.2.0\",\n \"typescript\": \"^5.7.3\",\n \"typescript-eslint\": \"^8.25.0\"\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 = '+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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;IACA;IACA;GACD,EAAC;GACF,GAAG,KAAK,gBAAW,cAAc;IAC/B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACD,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;GACA;EACD,EAAC,CACH;AAED,SAAO;GACL,GAAG;GACH,MAAM;GACN,SAAS;IACP,OACE;KACD,gBACC;KACD,eAAe;IAChB,KAAK;IACL,QAAQ;IACR,MAAM;IACN,aAAa;IACb,OACE;KACD,cACC;GACH;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;EACD,EAAC;EACF,GAAG,KAAK,UAAe;GACrB;GACA;GACA;EACD,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;EACA;CACD,EAAC,CACH;AAED,QAAO;EACL,GAAG;EACH,MAAM;EACN,SAAS;GACP,OACE;IACD,gBACC;IACD,eAAe;GAChB,KAAK;GACL,QAAQ;GACR,MAAM;GACN,aAAa;GACb,OACE;IACD,cACC;EACH;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"}