@appsbyme/create-basekit 1.0.1 → 1.0.2
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/README.md +3 -1
- package/dist/commands/app/index.cjs +22 -15
- package/dist/commands/mobile/index.cjs +2 -2
- package/dist/commands/web/index.cjs +2 -2
- package/dist/index.cjs +24 -17
- package/fixtures/new_project.py +0 -0
- package/package.json +3 -3
- package/template-mobile/scripts/check-env.sh +0 -0
- package/template-web/.npmrc +2 -0
- package/template-web/scripts/setup-testing.js +0 -0
- package/template-web/scripts/setup.js +0 -0
- package/template-mobile/.yarnrc.yml +0 -1
- package/template-web/.github/workflows/ci.yml +0 -57
- package/template-web/.github/workflows/release.yml +0 -43
- package/template-web/.yarnrc.yml +0 -12
package/README.md
CHANGED
|
@@ -73,7 +73,9 @@ Useful flags: `--yes`, `--no-git`, `--no-install`, `--monorepo`, `--port-offset
|
|
|
73
73
|
| `--yes`, `-y` | Non-interactive mode with defaults |
|
|
74
74
|
| `--mobile` | Include Expo mobile app (BE + FE + mobile) |
|
|
75
75
|
| `--mobile-only` | Backend + Expo mobile only (skip web frontend) |
|
|
76
|
-
| `--ai-helpers` | Sync AI helper assets after scaffold |
|
|
76
|
+
| `--ai-helpers` | Sync AI helper assets after scaffold (also passes `--with-claude`) |
|
|
77
|
+
|
|
78
|
+
The Django backend installs **`appsbyme-basekit[cli]` from PyPI** by default. Kit authors can override with `BASEKIT_DJANGO_BASE=/path/to/basekit` or a local `../basekit` sibling checkout. Frontend `@appsbyme/basekit-*` packages always come from the public npm registry when you use `npx` (no local `basekit-web` needed).
|
|
77
79
|
|
|
78
80
|
## Development
|
|
79
81
|
|
|
@@ -5232,7 +5232,7 @@ function createSpinner(text) {
|
|
|
5232
5232
|
init_cjs_shims();
|
|
5233
5233
|
var import_fs2 = __toESM(require("fs"), 1);
|
|
5234
5234
|
var import_path = __toESM(require("path"), 1);
|
|
5235
|
-
var
|
|
5235
|
+
var DJANGO_BASE_PYPI_REQUIREMENT = "appsbyme-basekit[cli]==1.0.0";
|
|
5236
5236
|
function getWebKitRootFromPackage() {
|
|
5237
5237
|
let dir = import_path.default.resolve(__dirname);
|
|
5238
5238
|
for (let i = 0; i < 6; i += 1) {
|
|
@@ -5245,6 +5245,12 @@ function getWebKitRootFromPackage() {
|
|
|
5245
5245
|
}
|
|
5246
5246
|
return import_path.default.resolve(__dirname, "../../..");
|
|
5247
5247
|
}
|
|
5248
|
+
function djangoBasePipInstallArg(spec) {
|
|
5249
|
+
if (spec.kind === "pypi") {
|
|
5250
|
+
return spec.pipSpec;
|
|
5251
|
+
}
|
|
5252
|
+
return `appsbyme-basekit[cli] @ ${spec.pipSpec}`;
|
|
5253
|
+
}
|
|
5248
5254
|
function isUsableCheckout(dir) {
|
|
5249
5255
|
return import_fs2.default.existsSync(dir) && (import_fs2.default.existsSync(import_path.default.join(dir, "pyproject.toml")) || import_fs2.default.existsSync(import_path.default.join(dir, "setup.py")) || import_fs2.default.existsSync(import_path.default.join(dir, "setup.cfg")));
|
|
5250
5256
|
}
|
|
@@ -5286,9 +5292,9 @@ function resolveDjangoBaseInstallSpec(opts) {
|
|
|
5286
5292
|
}
|
|
5287
5293
|
}
|
|
5288
5294
|
return {
|
|
5289
|
-
kind: "
|
|
5290
|
-
pipSpec:
|
|
5291
|
-
label: "
|
|
5295
|
+
kind: "pypi",
|
|
5296
|
+
pipSpec: DJANGO_BASE_PYPI_REQUIREMENT,
|
|
5297
|
+
label: "PyPI (appsbyme-basekit)"
|
|
5292
5298
|
};
|
|
5293
5299
|
}
|
|
5294
5300
|
|
|
@@ -5313,17 +5319,18 @@ async function scaffoldBackend(opts) {
|
|
|
5313
5319
|
projectRoot,
|
|
5314
5320
|
webKitRoot: getWebKitRootFromPackage()
|
|
5315
5321
|
});
|
|
5316
|
-
const
|
|
5322
|
+
const pipArg = djangoBasePipInstallArg(djangoBase);
|
|
5323
|
+
const installSpinner = createSpinner(`Installing appsbyme-basekit[cli] from ${djangoBase.label}\u2026`);
|
|
5317
5324
|
const installResult = await execAsync(
|
|
5318
|
-
`"${pip}" install "
|
|
5325
|
+
`"${pip}" install "${pipArg}"`,
|
|
5319
5326
|
backendDir
|
|
5320
5327
|
);
|
|
5321
5328
|
if (!installResult.success) {
|
|
5322
|
-
installSpinner.fail("Failed to install basekit[cli]");
|
|
5329
|
+
installSpinner.fail("Failed to install appsbyme-basekit[cli]");
|
|
5323
5330
|
logError(installResult.error ?? "unknown error");
|
|
5324
5331
|
throw new Error("pip install failed");
|
|
5325
5332
|
}
|
|
5326
|
-
installSpinner.succeed(`basekit[cli] installed (${djangoBase.label})`);
|
|
5333
|
+
installSpinner.succeed(`appsbyme-basekit[cli] installed (${djangoBase.label})`);
|
|
5327
5334
|
const configPath = writeTempConfig(projectName, portOffset, includeMobile);
|
|
5328
5335
|
logStep("Running basekit init (answer the remaining prompts)");
|
|
5329
5336
|
console.log("");
|
|
@@ -6408,7 +6415,7 @@ async function runWebCommand(argv) {
|
|
|
6408
6415
|
return;
|
|
6409
6416
|
}
|
|
6410
6417
|
if (args.includes("--version") || args.includes("-v")) {
|
|
6411
|
-
console.log("1.0.
|
|
6418
|
+
console.log("1.0.2");
|
|
6412
6419
|
return;
|
|
6413
6420
|
}
|
|
6414
6421
|
printBanner();
|
|
@@ -6612,7 +6619,7 @@ async function runWebCommand(argv) {
|
|
|
6612
6619
|
function printBanner() {
|
|
6613
6620
|
console.log("");
|
|
6614
6621
|
console.log(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557");
|
|
6615
|
-
console.log(` \u2551 create-basekit web v${"1.0.
|
|
6622
|
+
console.log(` \u2551 create-basekit web v${"1.0.2"} \u2551`);
|
|
6616
6623
|
console.log(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D");
|
|
6617
6624
|
console.log("");
|
|
6618
6625
|
}
|
|
@@ -7274,7 +7281,7 @@ async function runMobileCommand(argv) {
|
|
|
7274
7281
|
return;
|
|
7275
7282
|
}
|
|
7276
7283
|
if (args.includes("--version") || args.includes("-v")) {
|
|
7277
|
-
console.log("1.0.
|
|
7284
|
+
console.log("1.0.2");
|
|
7278
7285
|
return;
|
|
7279
7286
|
}
|
|
7280
7287
|
printBanner2();
|
|
@@ -7377,7 +7384,7 @@ async function runMobileCommand(argv) {
|
|
|
7377
7384
|
function printBanner2() {
|
|
7378
7385
|
console.log("");
|
|
7379
7386
|
console.log(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557");
|
|
7380
|
-
console.log(` \u2551 create-basekit mobile v${"1.0.
|
|
7387
|
+
console.log(` \u2551 create-basekit mobile v${"1.0.2"} \u2551`);
|
|
7381
7388
|
console.log(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D");
|
|
7382
7389
|
console.log("");
|
|
7383
7390
|
console.log(" Expo (React Native) app scaffolder");
|
|
@@ -8560,7 +8567,7 @@ async function runAppCommand(argv) {
|
|
|
8560
8567
|
return;
|
|
8561
8568
|
}
|
|
8562
8569
|
if (args.includes("--version") || args.includes("-V")) {
|
|
8563
|
-
console.log("1.0.
|
|
8570
|
+
console.log("1.0.2");
|
|
8564
8571
|
return;
|
|
8565
8572
|
}
|
|
8566
8573
|
printBanner3();
|
|
@@ -8722,7 +8729,7 @@ function initRootGit(projectRoot, includeMobile = false) {
|
|
|
8722
8729
|
function printBanner3() {
|
|
8723
8730
|
console.log("");
|
|
8724
8731
|
console.log(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557");
|
|
8725
|
-
console.log(` \u2551 create-basekit app v${"1.0.
|
|
8732
|
+
console.log(` \u2551 create-basekit app v${"1.0.2"} \u2551`);
|
|
8726
8733
|
console.log(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D");
|
|
8727
8734
|
console.log("");
|
|
8728
8735
|
console.log(" Full-stack project scaffolder");
|
|
@@ -8730,7 +8737,7 @@ function printBanner3() {
|
|
|
8730
8737
|
}
|
|
8731
8738
|
function printHelp3() {
|
|
8732
8739
|
console.log(`
|
|
8733
|
-
create-basekit app v${"1.0.
|
|
8740
|
+
create-basekit app v${"1.0.2"}
|
|
8734
8741
|
|
|
8735
8742
|
Usage: npx @appsbyme/create-basekit app [project-name] [options]
|
|
8736
8743
|
|
|
@@ -5365,7 +5365,7 @@ async function runMobileCommand(argv) {
|
|
|
5365
5365
|
return;
|
|
5366
5366
|
}
|
|
5367
5367
|
if (args.includes("--version") || args.includes("-v")) {
|
|
5368
|
-
console.log("1.0.
|
|
5368
|
+
console.log("1.0.2");
|
|
5369
5369
|
return;
|
|
5370
5370
|
}
|
|
5371
5371
|
printBanner();
|
|
@@ -5468,7 +5468,7 @@ async function runMobileCommand(argv) {
|
|
|
5468
5468
|
function printBanner() {
|
|
5469
5469
|
console.log("");
|
|
5470
5470
|
console.log(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557");
|
|
5471
|
-
console.log(` \u2551 create-basekit mobile v${"1.0.
|
|
5471
|
+
console.log(` \u2551 create-basekit mobile v${"1.0.2"} \u2551`);
|
|
5472
5472
|
console.log(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D");
|
|
5473
5473
|
console.log("");
|
|
5474
5474
|
console.log(" Expo (React Native) app scaffolder");
|
|
@@ -5957,7 +5957,7 @@ async function runWebCommand(argv) {
|
|
|
5957
5957
|
return;
|
|
5958
5958
|
}
|
|
5959
5959
|
if (args.includes("--version") || args.includes("-v")) {
|
|
5960
|
-
console.log("1.0.
|
|
5960
|
+
console.log("1.0.2");
|
|
5961
5961
|
return;
|
|
5962
5962
|
}
|
|
5963
5963
|
printBanner();
|
|
@@ -6161,7 +6161,7 @@ async function runWebCommand(argv) {
|
|
|
6161
6161
|
function printBanner() {
|
|
6162
6162
|
console.log("");
|
|
6163
6163
|
console.log(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557");
|
|
6164
|
-
console.log(` \u2551 create-basekit web v${"1.0.
|
|
6164
|
+
console.log(` \u2551 create-basekit web v${"1.0.2"} \u2551`);
|
|
6165
6165
|
console.log(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D");
|
|
6166
6166
|
console.log("");
|
|
6167
6167
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -5974,7 +5974,7 @@ async function runWebCommand(argv) {
|
|
|
5974
5974
|
return;
|
|
5975
5975
|
}
|
|
5976
5976
|
if (args.includes("--version") || args.includes("-v")) {
|
|
5977
|
-
console.log("1.0.
|
|
5977
|
+
console.log("1.0.2");
|
|
5978
5978
|
return;
|
|
5979
5979
|
}
|
|
5980
5980
|
printBanner();
|
|
@@ -6178,7 +6178,7 @@ async function runWebCommand(argv) {
|
|
|
6178
6178
|
function printBanner() {
|
|
6179
6179
|
console.log("");
|
|
6180
6180
|
console.log(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557");
|
|
6181
|
-
console.log(` \u2551 create-basekit web v${"1.0.
|
|
6181
|
+
console.log(` \u2551 create-basekit web v${"1.0.2"} \u2551`);
|
|
6182
6182
|
console.log(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D");
|
|
6183
6183
|
console.log("");
|
|
6184
6184
|
}
|
|
@@ -6716,7 +6716,7 @@ async function runMobileCommand(argv) {
|
|
|
6716
6716
|
return;
|
|
6717
6717
|
}
|
|
6718
6718
|
if (args.includes("--version") || args.includes("-v")) {
|
|
6719
|
-
console.log("1.0.
|
|
6719
|
+
console.log("1.0.2");
|
|
6720
6720
|
return;
|
|
6721
6721
|
}
|
|
6722
6722
|
printBanner2();
|
|
@@ -6819,7 +6819,7 @@ async function runMobileCommand(argv) {
|
|
|
6819
6819
|
function printBanner2() {
|
|
6820
6820
|
console.log("");
|
|
6821
6821
|
console.log(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557");
|
|
6822
|
-
console.log(` \u2551 create-basekit mobile v${"1.0.
|
|
6822
|
+
console.log(` \u2551 create-basekit mobile v${"1.0.2"} \u2551`);
|
|
6823
6823
|
console.log(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D");
|
|
6824
6824
|
console.log("");
|
|
6825
6825
|
console.log(" Expo (React Native) app scaffolder");
|
|
@@ -7175,6 +7175,12 @@ function getWebKitRootFromPackage() {
|
|
|
7175
7175
|
}
|
|
7176
7176
|
return import_path6.default.resolve(__dirname, "../../..");
|
|
7177
7177
|
}
|
|
7178
|
+
function djangoBasePipInstallArg(spec) {
|
|
7179
|
+
if (spec.kind === "pypi") {
|
|
7180
|
+
return spec.pipSpec;
|
|
7181
|
+
}
|
|
7182
|
+
return `appsbyme-basekit[cli] @ ${spec.pipSpec}`;
|
|
7183
|
+
}
|
|
7178
7184
|
function isUsableCheckout(dir) {
|
|
7179
7185
|
return import_fs7.default.existsSync(dir) && (import_fs7.default.existsSync(import_path6.default.join(dir, "pyproject.toml")) || import_fs7.default.existsSync(import_path6.default.join(dir, "setup.py")) || import_fs7.default.existsSync(import_path6.default.join(dir, "setup.cfg")));
|
|
7180
7186
|
}
|
|
@@ -7216,19 +7222,19 @@ function resolveDjangoBaseInstallSpec(opts) {
|
|
|
7216
7222
|
}
|
|
7217
7223
|
}
|
|
7218
7224
|
return {
|
|
7219
|
-
kind: "
|
|
7220
|
-
pipSpec:
|
|
7221
|
-
label: "
|
|
7225
|
+
kind: "pypi",
|
|
7226
|
+
pipSpec: DJANGO_BASE_PYPI_REQUIREMENT,
|
|
7227
|
+
label: "PyPI (appsbyme-basekit)"
|
|
7222
7228
|
};
|
|
7223
7229
|
}
|
|
7224
|
-
var import_fs7, import_path6,
|
|
7230
|
+
var import_fs7, import_path6, DJANGO_BASE_PYPI_REQUIREMENT;
|
|
7225
7231
|
var init_resolve_django_base = __esm({
|
|
7226
7232
|
"src/commands/app/resolve-django-base.ts"() {
|
|
7227
7233
|
"use strict";
|
|
7228
7234
|
init_cjs_shims();
|
|
7229
7235
|
import_fs7 = __toESM(require("fs"), 1);
|
|
7230
7236
|
import_path6 = __toESM(require("path"), 1);
|
|
7231
|
-
|
|
7237
|
+
DJANGO_BASE_PYPI_REQUIREMENT = "appsbyme-basekit[cli]==1.0.0";
|
|
7232
7238
|
}
|
|
7233
7239
|
});
|
|
7234
7240
|
|
|
@@ -7253,17 +7259,18 @@ async function scaffoldBackend(opts) {
|
|
|
7253
7259
|
projectRoot,
|
|
7254
7260
|
webKitRoot: getWebKitRootFromPackage()
|
|
7255
7261
|
});
|
|
7256
|
-
const
|
|
7262
|
+
const pipArg = djangoBasePipInstallArg(djangoBase);
|
|
7263
|
+
const installSpinner = createSpinner3(`Installing appsbyme-basekit[cli] from ${djangoBase.label}\u2026`);
|
|
7257
7264
|
const installResult = await execAsync3(
|
|
7258
|
-
`"${pip}" install "
|
|
7265
|
+
`"${pip}" install "${pipArg}"`,
|
|
7259
7266
|
backendDir
|
|
7260
7267
|
);
|
|
7261
7268
|
if (!installResult.success) {
|
|
7262
|
-
installSpinner.fail("Failed to install basekit[cli]");
|
|
7269
|
+
installSpinner.fail("Failed to install appsbyme-basekit[cli]");
|
|
7263
7270
|
logError3(installResult.error ?? "unknown error");
|
|
7264
7271
|
throw new Error("pip install failed");
|
|
7265
7272
|
}
|
|
7266
|
-
installSpinner.succeed(`basekit[cli] installed (${djangoBase.label})`);
|
|
7273
|
+
installSpinner.succeed(`appsbyme-basekit[cli] installed (${djangoBase.label})`);
|
|
7267
7274
|
const configPath = writeTempConfig(projectName, portOffset, includeMobile);
|
|
7268
7275
|
logStep3("Running basekit init (answer the remaining prompts)");
|
|
7269
7276
|
console.log("");
|
|
@@ -8725,7 +8732,7 @@ async function runAppCommand(argv) {
|
|
|
8725
8732
|
return;
|
|
8726
8733
|
}
|
|
8727
8734
|
if (args.includes("--version") || args.includes("-V")) {
|
|
8728
|
-
console.log("1.0.
|
|
8735
|
+
console.log("1.0.2");
|
|
8729
8736
|
return;
|
|
8730
8737
|
}
|
|
8731
8738
|
printBanner3();
|
|
@@ -8887,7 +8894,7 @@ function initRootGit(projectRoot, includeMobile = false) {
|
|
|
8887
8894
|
function printBanner3() {
|
|
8888
8895
|
console.log("");
|
|
8889
8896
|
console.log(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557");
|
|
8890
|
-
console.log(` \u2551 create-basekit app v${"1.0.
|
|
8897
|
+
console.log(` \u2551 create-basekit app v${"1.0.2"} \u2551`);
|
|
8891
8898
|
console.log(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D");
|
|
8892
8899
|
console.log("");
|
|
8893
8900
|
console.log(" Full-stack project scaffolder");
|
|
@@ -8895,7 +8902,7 @@ function printBanner3() {
|
|
|
8895
8902
|
}
|
|
8896
8903
|
function printHelp3() {
|
|
8897
8904
|
console.log(`
|
|
8898
|
-
create-basekit app v${"1.0.
|
|
8905
|
+
create-basekit app v${"1.0.2"}
|
|
8899
8906
|
|
|
8900
8907
|
Usage: npx @appsbyme/create-basekit app [project-name] [options]
|
|
8901
8908
|
|
|
@@ -9066,7 +9073,7 @@ function printHelp4() {
|
|
|
9066
9073
|
console.log("");
|
|
9067
9074
|
}
|
|
9068
9075
|
function printVersion() {
|
|
9069
|
-
console.log("1.0.
|
|
9076
|
+
console.log("1.0.2");
|
|
9070
9077
|
}
|
|
9071
9078
|
async function main() {
|
|
9072
9079
|
const argv = process.argv.slice(2);
|
package/fixtures/new_project.py
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appsbyme/create-basekit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "Scaffold Basekit web, mobile, or full-stack apps",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": "./dist/index.cjs",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"prompts": "^2.4.2"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@appsbyme/basekit-tsconfig": "
|
|
26
|
+
"@appsbyme/basekit-tsconfig": "^1.0.0",
|
|
27
27
|
"@types/node": "^24.0.14",
|
|
28
28
|
"@types/prompts": "^2.4.9",
|
|
29
29
|
"tsup": "^8.4.0",
|
|
@@ -52,4 +52,4 @@
|
|
|
52
52
|
"engines": {
|
|
53
53
|
"node": ">=18"
|
|
54
54
|
}
|
|
55
|
-
}
|
|
55
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
nodeLinker: node-modules
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [main]
|
|
8
|
-
workflow_dispatch: # Allow manual re-triggers (e.g. after transient GitHub infra failures)
|
|
9
|
-
|
|
10
|
-
jobs:
|
|
11
|
-
check:
|
|
12
|
-
name: Type-check · Lint · Test
|
|
13
|
-
runs-on: ubuntu-latest
|
|
14
|
-
|
|
15
|
-
steps:
|
|
16
|
-
- name: Checkout
|
|
17
|
-
uses: actions/checkout@v4
|
|
18
|
-
|
|
19
|
-
- name: Enable Corepack (Yarn 4)
|
|
20
|
-
run: corepack enable
|
|
21
|
-
|
|
22
|
-
- name: Setup Node.js
|
|
23
|
-
uses: actions/setup-node@v4
|
|
24
|
-
with:
|
|
25
|
-
node-version: 22
|
|
26
|
-
|
|
27
|
-
- name: Install dependencies
|
|
28
|
-
run: yarn install --no-immutable
|
|
29
|
-
|
|
30
|
-
- name: Type-check
|
|
31
|
-
run: yarn type-check
|
|
32
|
-
|
|
33
|
-
- name: Lint (ESLint)
|
|
34
|
-
run: yarn lint
|
|
35
|
-
|
|
36
|
-
- name: Lint (Stylelint)
|
|
37
|
-
run: yarn stylelint
|
|
38
|
-
|
|
39
|
-
- name: Tests (with coverage gates)
|
|
40
|
-
run: yarn vitest run --coverage --reporter=verbose
|
|
41
|
-
|
|
42
|
-
- name: Build app
|
|
43
|
-
run: yarn build
|
|
44
|
-
|
|
45
|
-
- name: Install Playwright browsers
|
|
46
|
-
run: npx playwright install --with-deps chromium
|
|
47
|
-
|
|
48
|
-
- name: E2E tests (Playwright)
|
|
49
|
-
run: yarn e2e
|
|
50
|
-
|
|
51
|
-
- name: Upload Playwright report
|
|
52
|
-
uses: actions/upload-artifact@v4
|
|
53
|
-
if: ${{ !cancelled() }}
|
|
54
|
-
with:
|
|
55
|
-
name: playwright-report
|
|
56
|
-
path: playwright-report/
|
|
57
|
-
retention-days: 14
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
name: Build & Deploy
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
workflow_dispatch:
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
build:
|
|
10
|
-
name: Build
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
|
|
13
|
-
steps:
|
|
14
|
-
- name: Checkout
|
|
15
|
-
uses: actions/checkout@v4
|
|
16
|
-
|
|
17
|
-
- name: Enable Corepack (Yarn 4)
|
|
18
|
-
run: corepack enable
|
|
19
|
-
|
|
20
|
-
- name: Setup Node.js
|
|
21
|
-
uses: actions/setup-node@v4
|
|
22
|
-
with:
|
|
23
|
-
node-version: 22
|
|
24
|
-
|
|
25
|
-
- name: Install dependencies
|
|
26
|
-
run: yarn install --no-immutable
|
|
27
|
-
|
|
28
|
-
- name: Build app
|
|
29
|
-
run: yarn build
|
|
30
|
-
|
|
31
|
-
# Uncomment and configure for your deployment target:
|
|
32
|
-
# - name: Deploy to GitHub Pages
|
|
33
|
-
# uses: peaceiris/actions-gh-pages@v4
|
|
34
|
-
# with:
|
|
35
|
-
# github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
36
|
-
# publish_dir: ./dist
|
|
37
|
-
|
|
38
|
-
- name: Upload build artifact
|
|
39
|
-
uses: actions/upload-artifact@v4
|
|
40
|
-
with:
|
|
41
|
-
name: dist
|
|
42
|
-
path: dist/
|
|
43
|
-
retention-days: 30
|
package/template-web/.yarnrc.yml
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
nodeLinker: node-modules
|
|
2
|
-
|
|
3
|
-
# Public @appsbyme packages resolve from registry.npmjs.org (default).
|
|
4
|
-
# No npmScopes needed unless you later switch to a private registry.
|
|
5
|
-
|
|
6
|
-
packageExtensions:
|
|
7
|
-
"@appsbyme/basekit-ui@*":
|
|
8
|
-
dependencies:
|
|
9
|
-
"@appsbyme/basekit-utils": "^1.0.0"
|
|
10
|
-
"@appsbyme/basekit-hooks@*":
|
|
11
|
-
dependencies:
|
|
12
|
-
"@appsbyme/basekit-utils": "^1.0.0"
|