@shivaedev/create-app 0.29.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/README.md +1 -1
- package/dist/cli.js +69 -64
- package/dist/updateApp.d.ts.map +1 -1
- package/dist/updateApp.js +11 -6
- package/dist/updateApp.js.map +1 -1
- package/dist/updateChecks.d.ts +4 -0
- package/dist/updateChecks.d.ts.map +1 -0
- package/dist/updateChecks.js +44 -0
- package/dist/updateChecks.js.map +1 -0
- package/package.json +3 -3
- package/src/updateApp.ts +11 -6
- package/src/updateChecks.ts +47 -0
- package/template.json +1 -1
package/dist/updateApp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateApp.d.ts","sourceRoot":"","sources":["../src/updateApp.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"updateApp.d.ts","sourceRoot":"","sources":["../src/updateApp.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQrD,eAAO,MAAM,SAAS,mQAyCpB,CAAC"}
|
package/dist/updateApp.js
CHANGED
|
@@ -6,6 +6,7 @@ import { historicalTemplate } from "./historicalTemplate.js";
|
|
|
6
6
|
import { checkedProcess, runProcess } from "./runProcess.js";
|
|
7
7
|
import { starterPatch } from "./starterPatch.js";
|
|
8
8
|
import { appTemplate } from "./template.js";
|
|
9
|
+
import { updateChecks } from "./updateChecks.js";
|
|
9
10
|
export const updateApp = Effect.fn("CreateApp.updateApp")(function* (folder, templatePath, version) {
|
|
10
11
|
return yield* Effect.scoped(Effect.gen(function* () {
|
|
11
12
|
const fs = yield* FileSystem.FileSystem;
|
|
@@ -23,15 +24,19 @@ export const updateApp = Effect.fn("CreateApp.updateApp")(function* (folder, tem
|
|
|
23
24
|
const result = yield* runProcess(target, "git", ["apply", "--3way", patch.path]);
|
|
24
25
|
if (result.code !== 0) {
|
|
25
26
|
const conflicts = (yield* checkedProcess(target, "git", ["diff", "--name-only", "--diff-filter=U"])).trim();
|
|
26
|
-
|
|
27
|
-
message:
|
|
28
|
-
|
|
29
|
-
: result.stderr.trim(),
|
|
30
|
-
});
|
|
27
|
+
if (!conflicts) {
|
|
28
|
+
return yield* new CreateAppError({ message: result.stderr.trim() });
|
|
29
|
+
}
|
|
31
30
|
}
|
|
32
31
|
}
|
|
33
32
|
yield* writeGeneration(target, { ...generation, version });
|
|
34
|
-
yield*
|
|
33
|
+
const failures = yield* updateChecks(target);
|
|
34
|
+
if (failures.length > 0) {
|
|
35
|
+
return yield* new CreateAppError({
|
|
36
|
+
message: `Recorded create-app ${version}. Finish the update before committing:\n${failures.join("\n\n")}`,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
yield* Console.log(`Applied create-app ${version}. Install and typecheck passed. Review the changes and commit when ready.`);
|
|
35
40
|
}));
|
|
36
41
|
});
|
|
37
42
|
//# sourceMappingURL=updateApp.js.map
|
package/dist/updateApp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updateApp.js","sourceRoot":"","sources":["../src/updateApp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"updateApp.js","sourceRoot":"","sources":["../src/updateApp.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { CreateAppError } from "./CreateAppError.ts";
|
|
3
|
+
export declare const updateChecks: (target: string) => Effect.Effect<string[], CreateAppError | import("effect/PlatformError").PlatformError, import("effect/process/ChildProcessSpawner").ChildProcessSpawner>;
|
|
4
|
+
//# sourceMappingURL=updateChecks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateChecks.d.ts","sourceRoot":"","sources":["../src/updateChecks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAsBrD,eAAO,MAAM,YAAY,8KAuBvB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Console, Effect } from "effect";
|
|
2
|
+
import { CreateAppError } from "./CreateAppError.js";
|
|
3
|
+
import { checkedProcess, runProcess } from "./runProcess.js";
|
|
4
|
+
const conflictMarkers = Effect.fn("CreateApp.conflictMarkers")(function* (target) {
|
|
5
|
+
const result = yield* runProcess(target, "git", [
|
|
6
|
+
"grep",
|
|
7
|
+
"--untracked",
|
|
8
|
+
"--exclude-standard",
|
|
9
|
+
"-I",
|
|
10
|
+
"-l",
|
|
11
|
+
"-z",
|
|
12
|
+
"-E",
|
|
13
|
+
"^((<{7}|[|]{7}|>{7})( |$)|={7}$)",
|
|
14
|
+
"--",
|
|
15
|
+
".",
|
|
16
|
+
]);
|
|
17
|
+
if (result.code > 1) {
|
|
18
|
+
return yield* new CreateAppError({ message: `Could not check conflict markers: ${result.stderr.trim()}` });
|
|
19
|
+
}
|
|
20
|
+
return result.stdout.split("\0").filter(Boolean);
|
|
21
|
+
});
|
|
22
|
+
export const updateChecks = Effect.fn("CreateApp.updateChecks")(function* (target) {
|
|
23
|
+
const failures = [];
|
|
24
|
+
for (const args of [["install"], ["run", "typecheck"]]) {
|
|
25
|
+
yield* Console.log(`Running pnpm ${args.join(" ")}...`);
|
|
26
|
+
const result = yield* runProcess(target, "pnpm", args);
|
|
27
|
+
if (result.code !== 0) {
|
|
28
|
+
failures.push(`pnpm ${args.join(" ")} failed (exit ${result.code}):\n${result.stdout}${result.stderr}`.trim());
|
|
29
|
+
if (`${result.stdout}${result.stderr}`.includes("ERR_PNPM_TRUST_DOWNGRADE")) {
|
|
30
|
+
failures.push("To re-resolve transitive packages pinned by the old lockfile while keeping trustPolicy enabled, run pnpm update --depth Infinity, then pnpm run typecheck. If a flagged version is pinned exactly in the manifest or catalog, change that pin to a trusted version first.");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const markers = yield* conflictMarkers(target);
|
|
35
|
+
if (markers.length > 0) {
|
|
36
|
+
failures.unshift(`Files with conflict markers:\n${markers.join("\n")}`);
|
|
37
|
+
}
|
|
38
|
+
const unresolved = (yield* checkedProcess(target, "git", ["diff", "--name-only", "--diff-filter=U"])).trim();
|
|
39
|
+
if (unresolved !== "") {
|
|
40
|
+
failures.push(`Unresolved Git conflicts:\n${unresolved}`);
|
|
41
|
+
}
|
|
42
|
+
return failures;
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=updateChecks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateChecks.js","sourceRoot":"","sources":["../src/updateChecks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7D,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAc;IACvF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE;QAC/C,MAAM;QACN,aAAa;QACb,oBAAoB;QACpB,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,kCAAkC;QAClC,IAAI;QACJ,GAAG;KACH,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC,CAAC,IAAI,cAAc,CAAC,EAAE,OAAO,EAAE,qCAAqC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAc;IACxF,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QACxD,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,IAAI,OAAO,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/G,IAAI,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;gBAC7E,QAAQ,CAAC,IAAI,CACZ,2QAA2Q,CAC3Q,CAAC;YACH,CAAC;QACF,CAAC;IACF,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,OAAO,CAAC,iCAAiC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7G,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shivaedev/create-app",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"description": "Create and install a Platform application from the maintained starter",
|
|
5
5
|
"homepage": "https://github.com/ShivaeDev/platform/tree/main/packages/create-app#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@effect/platform-node": "4.0.6",
|
|
51
51
|
"@effect/platform-node-shared": "4.0.6",
|
|
52
|
-
"@shivaedev/quality": "0.
|
|
53
|
-
"@shivaedev/test-story": "0.
|
|
52
|
+
"@shivaedev/quality": "0.50.0",
|
|
53
|
+
"@shivaedev/test-story": "0.30.0",
|
|
54
54
|
"@types/node": "24.19.2",
|
|
55
55
|
"effect": "4.0.6",
|
|
56
56
|
"esbuild": "0.28.2",
|
package/src/updateApp.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { historicalTemplate } from "./historicalTemplate.ts";
|
|
|
6
6
|
import { checkedProcess, runProcess } from "./runProcess.ts";
|
|
7
7
|
import { starterPatch } from "./starterPatch.ts";
|
|
8
8
|
import { appTemplate } from "./template.ts";
|
|
9
|
+
import { updateChecks } from "./updateChecks.ts";
|
|
9
10
|
|
|
10
11
|
export const updateApp = Effect.fn("CreateApp.updateApp")(function* (folder: string, templatePath: string, version: string) {
|
|
11
12
|
return yield* Effect.scoped(
|
|
@@ -33,15 +34,19 @@ export const updateApp = Effect.fn("CreateApp.updateApp")(function* (folder: str
|
|
|
33
34
|
const result = yield* runProcess(target, "git", ["apply", "--3way", patch.path]);
|
|
34
35
|
if (result.code !== 0) {
|
|
35
36
|
const conflicts = (yield* checkedProcess(target, "git", ["diff", "--name-only", "--diff-filter=U"])).trim();
|
|
36
|
-
|
|
37
|
-
message:
|
|
38
|
-
|
|
39
|
-
: result.stderr.trim(),
|
|
40
|
-
});
|
|
37
|
+
if (!conflicts) {
|
|
38
|
+
return yield* new CreateAppError({ message: result.stderr.trim() });
|
|
39
|
+
}
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
42
|
yield* writeGeneration(target, { ...generation, version });
|
|
44
|
-
yield*
|
|
43
|
+
const failures = yield* updateChecks(target);
|
|
44
|
+
if (failures.length > 0) {
|
|
45
|
+
return yield* new CreateAppError({
|
|
46
|
+
message: `Recorded create-app ${version}. Finish the update before committing:\n${failures.join("\n\n")}`,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
yield* Console.log(`Applied create-app ${version}. Install and typecheck passed. Review the changes and commit when ready.`);
|
|
45
50
|
}),
|
|
46
51
|
);
|
|
47
52
|
});
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Console, Effect } from "effect";
|
|
2
|
+
import { CreateAppError } from "./CreateAppError.ts";
|
|
3
|
+
import { checkedProcess, runProcess } from "./runProcess.ts";
|
|
4
|
+
|
|
5
|
+
const conflictMarkers = Effect.fn("CreateApp.conflictMarkers")(function* (target: string) {
|
|
6
|
+
const result = yield* runProcess(target, "git", [
|
|
7
|
+
"grep",
|
|
8
|
+
"--untracked",
|
|
9
|
+
"--exclude-standard",
|
|
10
|
+
"-I",
|
|
11
|
+
"-l",
|
|
12
|
+
"-z",
|
|
13
|
+
"-E",
|
|
14
|
+
"^((<{7}|[|]{7}|>{7})( |$)|={7}$)",
|
|
15
|
+
"--",
|
|
16
|
+
".",
|
|
17
|
+
]);
|
|
18
|
+
if (result.code > 1) {
|
|
19
|
+
return yield* new CreateAppError({ message: `Could not check conflict markers: ${result.stderr.trim()}` });
|
|
20
|
+
}
|
|
21
|
+
return result.stdout.split("\0").filter(Boolean);
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
export const updateChecks = Effect.fn("CreateApp.updateChecks")(function* (target: string) {
|
|
25
|
+
const failures: string[] = [];
|
|
26
|
+
for (const args of [["install"], ["run", "typecheck"]]) {
|
|
27
|
+
yield* Console.log(`Running pnpm ${args.join(" ")}...`);
|
|
28
|
+
const result = yield* runProcess(target, "pnpm", args);
|
|
29
|
+
if (result.code !== 0) {
|
|
30
|
+
failures.push(`pnpm ${args.join(" ")} failed (exit ${result.code}):\n${result.stdout}${result.stderr}`.trim());
|
|
31
|
+
if (`${result.stdout}${result.stderr}`.includes("ERR_PNPM_TRUST_DOWNGRADE")) {
|
|
32
|
+
failures.push(
|
|
33
|
+
"To re-resolve transitive packages pinned by the old lockfile while keeping trustPolicy enabled, run pnpm update --depth Infinity, then pnpm run typecheck. If a flagged version is pinned exactly in the manifest or catalog, change that pin to a trusted version first.",
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const markers = yield* conflictMarkers(target);
|
|
39
|
+
if (markers.length > 0) {
|
|
40
|
+
failures.unshift(`Files with conflict markers:\n${markers.join("\n")}`);
|
|
41
|
+
}
|
|
42
|
+
const unresolved = (yield* checkedProcess(target, "git", ["diff", "--name-only", "--diff-filter=U"])).trim();
|
|
43
|
+
if (unresolved !== "") {
|
|
44
|
+
failures.push(`Unresolved Git conflicts:\n${unresolved}`);
|
|
45
|
+
}
|
|
46
|
+
return failures;
|
|
47
|
+
});
|