create-urateam 0.1.4 → 0.1.7
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/LICENSE +6 -3
- package/dist/__tests__/integration/tarball.test.d.ts +2 -0
- package/dist/__tests__/integration/tarball.test.d.ts.map +1 -0
- package/dist/__tests__/integration/tarball.test.js +166 -0
- package/dist/__tests__/integration/tarball.test.js.map +1 -0
- package/dist/__tests__/scaffold.test.js +89 -1
- package/dist/__tests__/scaffold.test.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +76 -35
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
- package/template/.urateam/pnpm-workspace.yaml +7 -0
package/LICENSE
CHANGED
|
@@ -7,15 +7,18 @@ Licensed Work: urateam
|
|
|
7
7
|
The Licensed Work is (c) 2026 Jon Becker.
|
|
8
8
|
Additional Use Grant: You may make use of the Licensed Work, provided that
|
|
9
9
|
you do not use the Licensed Work for a Managed Service.
|
|
10
|
+
|
|
10
11
|
A "Managed Service" is a commercial offering that allows
|
|
11
12
|
third parties to access the functionality of the Licensed
|
|
12
|
-
Work
|
|
13
|
-
|
|
13
|
+
Work as part of a hosted or managed product or service.
|
|
14
|
+
For clarity, self-hosting the Licensed Work for your own
|
|
15
|
+
organization's internal use is always permitted regardless
|
|
16
|
+
of organization size.
|
|
14
17
|
Change Date: 2030-04-11
|
|
15
18
|
Change License: Apache License, Version 2.0
|
|
16
19
|
|
|
17
20
|
For information about alternative licensing arrangements for the Licensed Work,
|
|
18
|
-
please contact licensing@
|
|
21
|
+
please contact licensing@urateams.com.
|
|
19
22
|
|
|
20
23
|
Notice
|
|
21
24
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tarball.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/integration/tarball.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { describe, it, expect, beforeAll, afterAll } from "vitest";
|
|
2
|
+
import { execFileSync } from "node:child_process";
|
|
3
|
+
import { mkdtempSync, mkdirSync, rmSync, existsSync, readFileSync, readdirSync, writeFileSync, } from "node:fs";
|
|
4
|
+
import { join, resolve } from "node:path";
|
|
5
|
+
import { pathToFileURL } from "node:url";
|
|
6
|
+
import { tmpdir } from "node:os";
|
|
7
|
+
/**
|
|
8
|
+
* End-to-end packaging test for create-urateam.
|
|
9
|
+
*
|
|
10
|
+
* 1. `pnpm pack` the package into a tarball
|
|
11
|
+
* 2. `npm install <tarball>` into a clean temp directory
|
|
12
|
+
* 3. Import scaffold() from the installed copy and run it against a scratch dir
|
|
13
|
+
* 4. Assert all expected files exist (sidecar, project root, .gitignore)
|
|
14
|
+
*
|
|
15
|
+
* Regression guard for the 0.1.4 ENOENT .gitignore crash: npm publish
|
|
16
|
+
* automatically excludes files literally named `.gitignore` from tarballs,
|
|
17
|
+
* which broke `create-urateam` when it tried to read `template/.gitignore`
|
|
18
|
+
* at runtime. This test would have caught that before publish.
|
|
19
|
+
*
|
|
20
|
+
* We import scaffold() directly rather than spawning the bin shim because
|
|
21
|
+
* the bin uses interactive `prompts`, which doesn't compose with piped
|
|
22
|
+
* stdin in the test runner. Importing from the installed dist/ exercises
|
|
23
|
+
* the same code path (template resolution + .gitignore inlining) that
|
|
24
|
+
* crashed in 0.1.4 — the publishing concern this test guards against.
|
|
25
|
+
*/
|
|
26
|
+
const PACKAGE_DIR = resolve(__dirname, "..", "..", "..");
|
|
27
|
+
describe("create-urateam — installed tarball", () => {
|
|
28
|
+
let workRoot;
|
|
29
|
+
let tarballPath;
|
|
30
|
+
let installRoot;
|
|
31
|
+
let installedScaffold;
|
|
32
|
+
beforeAll(async () => {
|
|
33
|
+
workRoot = mkdtempSync(join(tmpdir(), "create-urateam-tarball-"));
|
|
34
|
+
// 1. Pack
|
|
35
|
+
execFileSync("pnpm", ["pack", "--pack-destination", workRoot], {
|
|
36
|
+
cwd: PACKAGE_DIR,
|
|
37
|
+
stdio: "pipe",
|
|
38
|
+
});
|
|
39
|
+
const tgz = readdirSync(workRoot).find((f) => f.endsWith(".tgz"));
|
|
40
|
+
if (!tgz)
|
|
41
|
+
throw new Error("pnpm pack produced no .tgz file");
|
|
42
|
+
tarballPath = join(workRoot, tgz);
|
|
43
|
+
// 2. Install into a clean tree
|
|
44
|
+
installRoot = join(workRoot, "install");
|
|
45
|
+
mkdirSync(installRoot, { recursive: true });
|
|
46
|
+
execFileSync("npm", ["init", "-y"], { cwd: installRoot, stdio: "pipe" });
|
|
47
|
+
execFileSync("npm", ["install", tarballPath], {
|
|
48
|
+
cwd: installRoot,
|
|
49
|
+
stdio: "pipe",
|
|
50
|
+
});
|
|
51
|
+
// 3. Dynamically import scaffold() from the installed copy
|
|
52
|
+
const installedDist = join(installRoot, "node_modules", "create-urateam", "dist", "index.js");
|
|
53
|
+
const mod = (await import(pathToFileURL(installedDist).href));
|
|
54
|
+
installedScaffold = mod.scaffold;
|
|
55
|
+
}, 120_000);
|
|
56
|
+
afterAll(() => {
|
|
57
|
+
if (workRoot)
|
|
58
|
+
rmSync(workRoot, { recursive: true, force: true });
|
|
59
|
+
});
|
|
60
|
+
it("packs and installs without errors", () => {
|
|
61
|
+
expect(existsSync(tarballPath)).toBe(true);
|
|
62
|
+
expect(existsSync(join(installRoot, "node_modules", "create-urateam"))).toBe(true);
|
|
63
|
+
});
|
|
64
|
+
it("installed package contains dist/ and template/", () => {
|
|
65
|
+
const installedRoot = join(installRoot, "node_modules", "create-urateam");
|
|
66
|
+
expect(existsSync(join(installedRoot, "dist", "index.js"))).toBe(true);
|
|
67
|
+
expect(existsSync(join(installedRoot, "template"))).toBe(true);
|
|
68
|
+
expect(existsSync(join(installedRoot, "template", ".urateam"))).toBe(true);
|
|
69
|
+
});
|
|
70
|
+
it("exposes scaffold() from the installed dist/ entry", () => {
|
|
71
|
+
expect(typeof installedScaffold).toBe("function");
|
|
72
|
+
});
|
|
73
|
+
it("scaffolds a fresh project from the installed package", () => {
|
|
74
|
+
const projectDir = join(workRoot, "scratch-project");
|
|
75
|
+
installedScaffold({
|
|
76
|
+
projectDir,
|
|
77
|
+
projectName: "scratch-project",
|
|
78
|
+
linearApiKey: "lin_api_test",
|
|
79
|
+
linearTeamId: "team-test",
|
|
80
|
+
repoUrl: "https://github.com/test/repo",
|
|
81
|
+
defaultBranch: "main",
|
|
82
|
+
});
|
|
83
|
+
// Sidecar files
|
|
84
|
+
expect(existsSync(join(projectDir, ".urateam", "package.json"))).toBe(true);
|
|
85
|
+
expect(existsSync(join(projectDir, ".urateam", ".env"))).toBe(true);
|
|
86
|
+
expect(existsSync(join(projectDir, ".urateam", "Dockerfile"))).toBe(true);
|
|
87
|
+
expect(existsSync(join(projectDir, ".urateam", "docker-compose.yml"))).toBe(true);
|
|
88
|
+
expect(existsSync(join(projectDir, ".urateam", "README.md"))).toBe(true);
|
|
89
|
+
expect(existsSync(join(projectDir, ".urateam", "pnpm-workspace.yaml"))).toBe(true);
|
|
90
|
+
// Project root files
|
|
91
|
+
expect(existsSync(join(projectDir, "CLAUDE.md"))).toBe(true);
|
|
92
|
+
expect(existsSync(join(projectDir, "README.md"))).toBe(true);
|
|
93
|
+
expect(existsSync(join(projectDir, ".gitignore"))).toBe(true);
|
|
94
|
+
});
|
|
95
|
+
it("pnpm-workspace.yaml from installed copy stops the upward walk (regression guard for urateam#31)", () => {
|
|
96
|
+
const projectDir = join(workRoot, "pnpm-ws-check");
|
|
97
|
+
installedScaffold({
|
|
98
|
+
projectDir,
|
|
99
|
+
projectName: "pnpm-ws-check",
|
|
100
|
+
linearApiKey: "lin_api_test",
|
|
101
|
+
linearTeamId: "team-test",
|
|
102
|
+
repoUrl: "https://github.com/test/repo",
|
|
103
|
+
defaultBranch: "main",
|
|
104
|
+
});
|
|
105
|
+
const ws = readFileSync(join(projectDir, ".urateam", "pnpm-workspace.yaml"), "utf-8");
|
|
106
|
+
expect(ws).toContain("packages: []");
|
|
107
|
+
});
|
|
108
|
+
it("pnpm install inside scaffolded .urateam/ ignores parent workspace and resolves locally (urateam#31 behavioral guard)", { timeout: 120_000 }, () => {
|
|
109
|
+
// Create a parent directory with a pnpm-workspace.yaml that would
|
|
110
|
+
// ordinarily swallow .urateam/ (the bug from #31). Then run scaffold,
|
|
111
|
+
// run a real `pnpm install --offline=false` inside .urateam/, and
|
|
112
|
+
// assert the lockfile + node_modules land under .urateam/, not the
|
|
113
|
+
// parent. Uses --prefer-offline to keep CI fast on warm caches.
|
|
114
|
+
const monorepoRoot = join(workRoot, "fake-monorepo");
|
|
115
|
+
mkdirSync(monorepoRoot, { recursive: true });
|
|
116
|
+
writeFileSync(join(monorepoRoot, "pnpm-workspace.yaml"), 'packages:\n - "apps/*"\n');
|
|
117
|
+
mkdirSync(join(monorepoRoot, "apps", "stub"), { recursive: true });
|
|
118
|
+
writeFileSync(join(monorepoRoot, "apps", "stub", "package.json"), '{"name":"stub","version":"0.0.0","private":true}');
|
|
119
|
+
const projectDir = monorepoRoot;
|
|
120
|
+
installedScaffold({
|
|
121
|
+
projectDir,
|
|
122
|
+
projectName: "fake-monorepo",
|
|
123
|
+
linearApiKey: "lin_api_test",
|
|
124
|
+
linearTeamId: "team-test",
|
|
125
|
+
repoUrl: "https://github.com/test/repo",
|
|
126
|
+
defaultBranch: "main",
|
|
127
|
+
});
|
|
128
|
+
// Pre-flight: confirm scaffold emitted the marker file.
|
|
129
|
+
expect(existsSync(join(projectDir, ".urateam", "pnpm-workspace.yaml"))).toBe(true);
|
|
130
|
+
// Replace the @urateam/cli dep with a small public package so the
|
|
131
|
+
// install completes quickly and doesn't depend on the cli being
|
|
132
|
+
// published. We're testing pnpm's workspace-walk behavior, not the
|
|
133
|
+
// cli itself.
|
|
134
|
+
const sidecarPkgPath = join(projectDir, ".urateam", "package.json");
|
|
135
|
+
const sidecarPkg = JSON.parse(readFileSync(sidecarPkgPath, "utf-8"));
|
|
136
|
+
sidecarPkg.dependencies = { "is-odd": "3.0.1" };
|
|
137
|
+
writeFileSync(sidecarPkgPath, JSON.stringify(sidecarPkg, null, 2));
|
|
138
|
+
execFileSync("pnpm", ["install", "--prefer-offline"], {
|
|
139
|
+
cwd: join(projectDir, ".urateam"),
|
|
140
|
+
stdio: "pipe",
|
|
141
|
+
});
|
|
142
|
+
// Sidecar deps land in .urateam/, NOT in the parent.
|
|
143
|
+
expect(existsSync(join(projectDir, ".urateam", "node_modules", "is-odd"))).toBe(true);
|
|
144
|
+
expect(existsSync(join(projectDir, ".urateam", "pnpm-lock.yaml"))).toBe(true);
|
|
145
|
+
// Negative: the parent must not have been touched.
|
|
146
|
+
expect(existsSync(join(projectDir, "pnpm-lock.yaml"))).toBe(false);
|
|
147
|
+
});
|
|
148
|
+
it(".gitignore from installed copy has urateam entries (regression guard for 0.1.4 ENOENT)", () => {
|
|
149
|
+
const projectDir = join(workRoot, "gitignore-check");
|
|
150
|
+
installedScaffold({
|
|
151
|
+
projectDir,
|
|
152
|
+
projectName: "gitignore-check",
|
|
153
|
+
linearApiKey: "lin_api_test",
|
|
154
|
+
linearTeamId: "team-test",
|
|
155
|
+
repoUrl: "https://github.com/test/repo",
|
|
156
|
+
defaultBranch: "main",
|
|
157
|
+
});
|
|
158
|
+
const gitignore = readFileSync(join(projectDir, ".gitignore"), "utf-8");
|
|
159
|
+
expect(gitignore).toContain("# urateam sidecar");
|
|
160
|
+
expect(gitignore).toContain(".urateam/.env");
|
|
161
|
+
expect(gitignore).toContain(".urateam/.env.*");
|
|
162
|
+
expect(gitignore).toContain("!.urateam/.env.example");
|
|
163
|
+
expect(gitignore).toContain(".urateam/node_modules/");
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
//# sourceMappingURL=tarball.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tarball.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/tarball.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,16 @@ describe("scaffold — sidecar pattern", () => {
|
|
|
55
55
|
expect(content).toContain(".urateam/.env");
|
|
56
56
|
expect(content).toContain(".urateam/node_modules/");
|
|
57
57
|
});
|
|
58
|
+
it("creates .urateam/pnpm-workspace.yaml (pnpm monorepo fix, urateam#31)", () => {
|
|
59
|
+
const projectDir = join(tempDir, "my-project");
|
|
60
|
+
scaffold(baseOptions(projectDir, "my-project"));
|
|
61
|
+
const wsPath = join(projectDir, ".urateam", "pnpm-workspace.yaml");
|
|
62
|
+
expect(existsSync(wsPath)).toBe(true);
|
|
63
|
+
const content = readFileSync(wsPath, "utf-8");
|
|
64
|
+
// Empty `packages:` list stops pnpm's upward workspace walk at .urateam/
|
|
65
|
+
// so `pnpm install` installs the sidecar's own deps locally.
|
|
66
|
+
expect(content).toContain("packages: []");
|
|
67
|
+
});
|
|
58
68
|
it(".urateam/package.json has sidecar name and @urateam/cli dependency", () => {
|
|
59
69
|
const projectDir = join(tempDir, "cool-agent");
|
|
60
70
|
scaffold(baseOptions(projectDir, "cool-agent"));
|
|
@@ -98,13 +108,26 @@ describe("scaffold — sidecar pattern", () => {
|
|
|
98
108
|
expect(content).toContain("# my-project");
|
|
99
109
|
expect(content).not.toContain("{{PROJECT_NAME}}");
|
|
100
110
|
});
|
|
101
|
-
it(".gitignore
|
|
111
|
+
it(".gitignore has .env.* wildcard with example exception", () => {
|
|
102
112
|
const projectDir = join(tempDir, "my-project");
|
|
103
113
|
scaffold(baseOptions(projectDir, "my-project"));
|
|
104
114
|
const content = readFileSync(join(projectDir, ".gitignore"), "utf-8");
|
|
105
115
|
expect(content).toContain(".urateam/.env.*");
|
|
106
116
|
expect(content).toContain("!.urateam/.env.example");
|
|
107
117
|
});
|
|
118
|
+
it(".gitignore content is inlined (not loaded from template file)", () => {
|
|
119
|
+
// Regression test: npm publish excludes files named `.gitignore` from
|
|
120
|
+
// tarballs automatically, so if the scaffold were to read it from disk,
|
|
121
|
+
// it would fail with ENOENT when installed from npm. This test verifies
|
|
122
|
+
// that the scaffold works regardless of whether template/.gitignore
|
|
123
|
+
// exists on disk.
|
|
124
|
+
const projectDir = join(tempDir, "my-project");
|
|
125
|
+
scaffold(baseOptions(projectDir, "my-project"));
|
|
126
|
+
const content = readFileSync(join(projectDir, ".gitignore"), "utf-8");
|
|
127
|
+
expect(content).toContain("# urateam sidecar");
|
|
128
|
+
expect(content).toContain(".urateam/.env");
|
|
129
|
+
expect(content).toContain(".urateam/node_modules/");
|
|
130
|
+
});
|
|
108
131
|
});
|
|
109
132
|
describe("existing project (directory with files already)", () => {
|
|
110
133
|
it("preserves existing CLAUDE.md at project root", () => {
|
|
@@ -177,5 +200,70 @@ describe("scaffold — sidecar pattern", () => {
|
|
|
177
200
|
expect(existsSync(join(projectDir, ".urateam", ".env"))).toBe(true);
|
|
178
201
|
});
|
|
179
202
|
});
|
|
203
|
+
describe("re-run safety (running create-urateam twice)", () => {
|
|
204
|
+
it("preserves existing .urateam/.env with real credentials", () => {
|
|
205
|
+
const projectDir = join(tempDir, "rerun-project");
|
|
206
|
+
scaffold(baseOptions(projectDir, "rerun-project"));
|
|
207
|
+
// Simulate user editing .env with real credentials
|
|
208
|
+
const customEnv = "LINEAR_API_KEY=lin_api_REAL_KEY\n" +
|
|
209
|
+
"LINEAR_WEBHOOK_SECRET=whsec_REAL\n" +
|
|
210
|
+
"DASHBOARD_PASSWORD=my_chosen_password\n";
|
|
211
|
+
writeFileSync(join(projectDir, ".urateam", ".env"), customEnv);
|
|
212
|
+
// Re-run scaffold with different options
|
|
213
|
+
scaffold({
|
|
214
|
+
projectDir,
|
|
215
|
+
projectName: "rerun-project",
|
|
216
|
+
linearApiKey: "lin_api_DIFFERENT",
|
|
217
|
+
linearTeamId: "different-team",
|
|
218
|
+
repoUrl: "https://github.com/other/repo",
|
|
219
|
+
defaultBranch: "main",
|
|
220
|
+
});
|
|
221
|
+
const envAfter = readFileSync(join(projectDir, ".urateam", ".env"), "utf-8");
|
|
222
|
+
expect(envAfter).toBe(customEnv);
|
|
223
|
+
expect(envAfter).toContain("lin_api_REAL_KEY");
|
|
224
|
+
expect(envAfter).not.toContain("lin_api_DIFFERENT");
|
|
225
|
+
expect(envAfter).toContain("my_chosen_password");
|
|
226
|
+
});
|
|
227
|
+
it("preserves existing .urateam/package.json with custom deps", () => {
|
|
228
|
+
const projectDir = join(tempDir, "rerun-project");
|
|
229
|
+
scaffold(baseOptions(projectDir, "rerun-project"));
|
|
230
|
+
// Simulate user adding a custom dep to .urateam/package.json
|
|
231
|
+
const customPkg = {
|
|
232
|
+
name: "rerun-project-urateam",
|
|
233
|
+
private: true,
|
|
234
|
+
type: "module",
|
|
235
|
+
scripts: { dev: "ura dev", start: "ura start" },
|
|
236
|
+
dependencies: {
|
|
237
|
+
"@urateam/cli": "^0.1.4",
|
|
238
|
+
"some-custom-plugin": "^1.0.0",
|
|
239
|
+
},
|
|
240
|
+
};
|
|
241
|
+
writeFileSync(join(projectDir, ".urateam", "package.json"), JSON.stringify(customPkg, null, 2) + "\n");
|
|
242
|
+
// Re-run scaffold
|
|
243
|
+
scaffold(baseOptions(projectDir, "rerun-project"));
|
|
244
|
+
const pkgAfter = JSON.parse(readFileSync(join(projectDir, ".urateam", "package.json"), "utf-8"));
|
|
245
|
+
expect(pkgAfter.dependencies["some-custom-plugin"]).toBe("^1.0.0");
|
|
246
|
+
});
|
|
247
|
+
it("refreshes template files like Dockerfile and docker-compose.yml", () => {
|
|
248
|
+
const projectDir = join(tempDir, "rerun-project");
|
|
249
|
+
scaffold(baseOptions(projectDir, "rerun-project"));
|
|
250
|
+
// Simulate stale/corrupted Dockerfile
|
|
251
|
+
writeFileSync(join(projectDir, ".urateam", "Dockerfile"), "# stale content");
|
|
252
|
+
// Re-run scaffold
|
|
253
|
+
scaffold(baseOptions(projectDir, "rerun-project"));
|
|
254
|
+
const dockerfileAfter = readFileSync(join(projectDir, ".urateam", "Dockerfile"), "utf-8");
|
|
255
|
+
expect(dockerfileAfter).not.toContain("# stale content");
|
|
256
|
+
expect(dockerfileAfter).toContain("FROM node");
|
|
257
|
+
});
|
|
258
|
+
it(".gitignore append is idempotent across multiple runs", () => {
|
|
259
|
+
const projectDir = join(tempDir, "rerun-project");
|
|
260
|
+
scaffold(baseOptions(projectDir, "rerun-project"));
|
|
261
|
+
scaffold(baseOptions(projectDir, "rerun-project"));
|
|
262
|
+
scaffold(baseOptions(projectDir, "rerun-project"));
|
|
263
|
+
const content = readFileSync(join(projectDir, ".gitignore"), "utf-8");
|
|
264
|
+
const matches = content.match(/^\.urateam\/\.env$/gm);
|
|
265
|
+
expect(matches?.length).toBe(1);
|
|
266
|
+
});
|
|
267
|
+
});
|
|
180
268
|
});
|
|
181
269
|
//# sourceMappingURL=scaffold.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.test.js","sourceRoot":"","sources":["../../src/__tests__/scaffold.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scaffold.test.js","sourceRoot":"","sources":["../../src/__tests__/scaffold.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAkBA,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAkGvD"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { mkdirSync, writeFileSync, cpSync, readFileSync, statSync, existsSync, appendFileSync, } from "fs";
|
|
2
|
+
import { mkdirSync, writeFileSync, cpSync, readFileSync, readdirSync, statSync, existsSync, appendFileSync, } from "fs";
|
|
3
3
|
import { join, dirname, basename } from "path";
|
|
4
4
|
import { fileURLToPath } from "url";
|
|
5
5
|
import { randomBytes } from "crypto";
|
|
@@ -32,36 +32,59 @@ export function scaffold(options) {
|
|
|
32
32
|
if (!statSync(templateDir, { throwIfNoEntry: false })?.isDirectory()) {
|
|
33
33
|
templateDir = join(__dirname, "..", "..", "template");
|
|
34
34
|
}
|
|
35
|
-
// --- Sidecar files:
|
|
35
|
+
// --- Sidecar files: refresh template files but preserve .env and package.json ---
|
|
36
|
+
// Template files (Dockerfile, docker-compose.yml, .env.example, README.md)
|
|
37
|
+
// are always overwritten with the latest version from the package.
|
|
38
|
+
// User-editable files (.env, package.json) are preserved if they exist
|
|
39
|
+
// so re-running create-urateam is safe and non-destructive to credentials.
|
|
36
40
|
const urateamDir = join(projectDir, ".urateam");
|
|
37
|
-
|
|
38
|
-
//
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
41
|
+
mkdirSync(urateamDir, { recursive: true });
|
|
42
|
+
// Copy template files from template/.urateam/, skipping .env (generated below)
|
|
43
|
+
const urateamTemplateDir = join(templateDir, ".urateam");
|
|
44
|
+
for (const entry of readdirSync(urateamTemplateDir)) {
|
|
45
|
+
// .env is never in the template — it's generated below — but guard anyway
|
|
46
|
+
if (entry === ".env")
|
|
47
|
+
continue;
|
|
48
|
+
const src = join(urateamTemplateDir, entry);
|
|
49
|
+
const dest = join(urateamDir, entry);
|
|
50
|
+
cpSync(src, dest, { recursive: true, force: true });
|
|
51
|
+
}
|
|
52
|
+
// Write .urateam/package.json only if absent (user may have customized deps)
|
|
53
|
+
const pkgPath = join(urateamDir, "package.json");
|
|
54
|
+
if (!existsSync(pkgPath)) {
|
|
55
|
+
const pkg = {
|
|
56
|
+
name: `${projectName}-urateam`,
|
|
57
|
+
private: true,
|
|
58
|
+
type: "module",
|
|
59
|
+
scripts: {
|
|
60
|
+
dev: "ura dev",
|
|
61
|
+
start: "ura start",
|
|
62
|
+
},
|
|
63
|
+
dependencies: {
|
|
64
|
+
"@urateam/cli": "^0.1.4",
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
|
|
68
|
+
}
|
|
69
|
+
// Write .urateam/.env only if absent — preserves real credentials on re-run.
|
|
70
|
+
// On first run, generates a random DASHBOARD_PASSWORD and fills in values
|
|
71
|
+
// from user prompts. On re-run, the existing .env is kept intact so users
|
|
72
|
+
// can iterate without losing credentials. To force a re-prompt, delete .env.
|
|
73
|
+
const envPath = join(urateamDir, ".env");
|
|
74
|
+
if (!existsSync(envPath)) {
|
|
75
|
+
const envContent = [
|
|
76
|
+
`LINEAR_API_KEY=${linearApiKey}`,
|
|
77
|
+
`LINEAR_WEBHOOK_SECRET=`,
|
|
78
|
+
`LINEAR_TEAM_ID=${linearTeamId}`,
|
|
79
|
+
`REPO_URL=${repoUrl}`,
|
|
80
|
+
`REPO_DEFAULT_BRANCH=${defaultBranch}`,
|
|
81
|
+
`REPO_TEAM_ID=${linearTeamId}`,
|
|
82
|
+
`DATABASE_URL=postgres://urateam:password@postgres:5432/urateam`,
|
|
83
|
+
`DASHBOARD_USER=admin`,
|
|
84
|
+
`DASHBOARD_PASSWORD=${randomBytes(16).toString("hex")}`,
|
|
85
|
+
].join("\n") + "\n";
|
|
86
|
+
writeFileSync(envPath, envContent);
|
|
87
|
+
}
|
|
65
88
|
// --- Project root files: copy only if absent (don't clobber user files) ---
|
|
66
89
|
// Files with {{PROJECT_NAME}} placeholder get the substitution applied.
|
|
67
90
|
const rootFilesWithPlaceholder = ["CLAUDE.md", "README.md"];
|
|
@@ -75,12 +98,13 @@ export function scaffold(options) {
|
|
|
75
98
|
const content = readFileSync(src, "utf-8");
|
|
76
99
|
writeFileSync(dest, content.replace(/\{\{PROJECT_NAME\}\}/g, projectName));
|
|
77
100
|
}
|
|
78
|
-
// Ensure .gitignore at project root has the urateam entries
|
|
101
|
+
// Ensure .gitignore at project root has the urateam entries.
|
|
102
|
+
// Content is inlined here (not loaded from template/) because npm publish
|
|
103
|
+
// excludes files named `.gitignore` from published packages automatically,
|
|
104
|
+
// which would cause an ENOENT at runtime in installed create-urateam.
|
|
79
105
|
const gitignorePath = join(projectDir, ".gitignore");
|
|
80
|
-
const gitignoreTemplateSrc = join(templateDir, ".gitignore");
|
|
81
|
-
const templateGitignore = readFileSync(gitignoreTemplateSrc, "utf-8");
|
|
82
106
|
if (!existsSync(gitignorePath)) {
|
|
83
|
-
writeFileSync(gitignorePath,
|
|
107
|
+
writeFileSync(gitignorePath, URATEAM_GITIGNORE);
|
|
84
108
|
}
|
|
85
109
|
else {
|
|
86
110
|
const existing = readFileSync(gitignorePath, "utf-8");
|
|
@@ -91,10 +115,27 @@ export function scaffold(options) {
|
|
|
91
115
|
.some((line) => line.trim() === ".urateam/.env");
|
|
92
116
|
if (!hasBareEntry) {
|
|
93
117
|
const separator = existing.endsWith("\n") ? "\n" : "\n\n";
|
|
94
|
-
appendFileSync(gitignorePath, separator +
|
|
118
|
+
appendFileSync(gitignorePath, separator + URATEAM_GITIGNORE);
|
|
95
119
|
}
|
|
96
120
|
}
|
|
97
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Inlined .gitignore content for the urateam sidecar.
|
|
124
|
+
*
|
|
125
|
+
* IMPORTANT: This is intentionally NOT loaded from `template/.gitignore`.
|
|
126
|
+
* When this package is published to npm, files named `.gitignore` are
|
|
127
|
+
* automatically excluded from the tarball by npm's default rules, so the
|
|
128
|
+
* file wouldn't exist at runtime in an installed copy. Inlining avoids
|
|
129
|
+
* the packaging pitfall entirely.
|
|
130
|
+
*/
|
|
131
|
+
const URATEAM_GITIGNORE = `# urateam sidecar
|
|
132
|
+
.urateam/.env
|
|
133
|
+
.urateam/.env.*
|
|
134
|
+
!.urateam/.env.example
|
|
135
|
+
.urateam/node_modules/
|
|
136
|
+
.urateam/dist/
|
|
137
|
+
.urateam/pnpm-lock.yaml
|
|
138
|
+
`;
|
|
98
139
|
// CLI entrypoint — only runs when executed directly (not when imported for testing)
|
|
99
140
|
async function main() {
|
|
100
141
|
const arg = process.argv[2];
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EACL,SAAS,EACT,aAAa,EACb,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,cAAc,GACf,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAatC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAwB;IAC/C,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEhG,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,+EAA+E;IAC/E,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACpD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC;QACrE,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-urateam",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
|
+
"license": "BUSL-1.1",
|
|
4
5
|
"type": "module",
|
|
5
6
|
"bin": {
|
|
6
7
|
"create-urateam": "dist/index.js"
|
|
@@ -25,6 +26,7 @@
|
|
|
25
26
|
},
|
|
26
27
|
"scripts": {
|
|
27
28
|
"build": "tsc",
|
|
28
|
-
"test": "vitest run"
|
|
29
|
+
"test": "vitest run",
|
|
30
|
+
"test:integration": "vitest run --config vitest.integration.config.ts"
|
|
29
31
|
}
|
|
30
32
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Empty workspace marker. Stops pnpm's upward `pnpm-workspace.yaml` walk at
|
|
2
|
+
# this directory, so `pnpm install` inside .urateam/ installs the sidecar's
|
|
3
|
+
# own deps locally rather than resolving a parent workspace's projects. See
|
|
4
|
+
# urateam#31. The `.npmrc` `ignore-workspace=true` flag does NOT work for this
|
|
5
|
+
# (it only takes effect as a CLI argument, not from .npmrc, in pnpm 9.x).
|
|
6
|
+
# npm and yarn ignore this file entirely, so it's a no-op for non-pnpm users.
|
|
7
|
+
packages: []
|