buildx-cli 1.8.36 → 1.8.38
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 +59 -7
- package/dist/README.md +59 -7
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/package.json +1 -1
- package/dist/templates/schema-as-code-guide.md +134 -43
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -292,6 +292,12 @@ Next.js starter behavior (`--app next`):
|
|
|
292
292
|
- includes built-in theme mode setup (`light|dark|system`) with toggle.
|
|
293
293
|
- includes built-in locale setup (`en|th`) with selector.
|
|
294
294
|
- default web UI stack is HeroUI (`@heroui/react`) as primary component framework.
|
|
295
|
+
- generated provider wiring does not import/wrap `HeroUIProvider` (compatibility with current HeroUI export surface).
|
|
296
|
+
- generated auth wiring supports dual mode:
|
|
297
|
+
- `buildx` mode (root auth API, no project scope)
|
|
298
|
+
- `project` mode (project-scoped auth API with project id)
|
|
299
|
+
- `auto` mode (uses project id only when provided)
|
|
300
|
+
- starter card layout uses `CardContent` (not `CardBody`) for current HeroUI package compatibility.
|
|
295
301
|
- auth screens use shared UI pack components without forcing full-screen background, so page/layout background is controlled by the generated app.
|
|
296
302
|
|
|
297
303
|
Expo starter behavior (`--app expo`):
|
|
@@ -305,6 +311,7 @@ Expo starter behavior (`--app expo`):
|
|
|
305
311
|
- includes required `heroui-native` peer dependencies: `uniwind`, `tailwind-merge`, `tailwind-variants`, `react-native-gesture-handler`, `@gorhom/bottom-sheet`.
|
|
306
312
|
- includes `react-native-worklets` dependency required by current `react-native-reanimated` chain.
|
|
307
313
|
- keeps auth state split (public/private view) and uses shared Buildx auth provider wiring.
|
|
314
|
+
- generated auth wiring supports dual mode (`buildx|project|auto`) with project-id forwarding on auth actions.
|
|
308
315
|
- includes starter auth flows on mobile:
|
|
309
316
|
- sign-in (username/password)
|
|
310
317
|
- sign-up (name/email/tel support)
|
|
@@ -350,6 +357,11 @@ Generated auth-aware structure:
|
|
|
350
357
|
- public screen tree for unauthenticated users
|
|
351
358
|
- private screen tree for authenticated users
|
|
352
359
|
- mobile-first baseline with `heroui-native` provider
|
|
360
|
+
- Generated auth mode env defaults:
|
|
361
|
+
- `NEXT_PUBLIC_BUILDX_AUTH_MODE` / `EXPO_PUBLIC_BUILDX_AUTH_MODE` / `VITE_BUILDX_AUTH_MODE` (default: `auto`)
|
|
362
|
+
- `NEXT_PUBLIC_BUILDX_PROJECT_ID` / `EXPO_PUBLIC_BUILDX_PROJECT_ID` / `VITE_BUILDX_PROJECT_ID` used as default project scope in `project` mode
|
|
363
|
+
- in `project` mode, generated auth forms pass `projectId` explicitly to auth actions
|
|
364
|
+
- in `buildx` mode, generated auth provider forces root scope (no project id)
|
|
353
365
|
- Scaffold layout is single-level:
|
|
354
366
|
- app package files are generated at workspace root (no `apps/web` nesting)
|
|
355
367
|
- `buildx/` artifacts are generated at root level alongside app files
|
|
@@ -364,25 +376,61 @@ UI package dependency resolution:
|
|
|
364
376
|
Notes:
|
|
365
377
|
- Next scaffold requires npm registry connectivity for `create-next-app`.
|
|
366
378
|
- Use `--dry-run` to preview file plan without running scaffold commands.
|
|
379
|
+
- After backend bootstrap, `project:init` automatically runs initial pull via CLI:
|
|
380
|
+
- `schema:pull --target-dir <workspace>/buildx/generated`
|
|
381
|
+
- `function:pull --target-dir <workspace>/buildx`
|
|
382
|
+
- `ai-function:pull --target-dir <workspace>/buildx/ai-functions`
|
|
383
|
+
- `template:pull --target-dir <workspace>/buildx/templates`
|
|
384
|
+
so starter artifact docs/structure are available immediately.
|
|
367
385
|
- Generated projects are package-manager agnostic (no forced `packageManager` lock in generated `package.json`).
|
|
368
386
|
- Next `app/globals.css` is normalized with Tailwind `@source` to include UI pack classes from `node_modules` (prevents missing utilities like `grid-cols-2` from shared components).
|
|
369
387
|
- Next starter includes `@heroui/react` by default.
|
|
370
388
|
- Expo starter includes `heroui-native` by default.
|
|
371
389
|
|
|
372
|
-
###
|
|
390
|
+
### Standard Artifact Guideline
|
|
373
391
|
|
|
374
|
-
|
|
392
|
+
Use this as the standard workflow for project artifacts after `project:init`.
|
|
393
|
+
|
|
394
|
+
Scope and location:
|
|
395
|
+
- schema artifacts: `buildx/generated/*`
|
|
396
|
+
- function artifacts: `buildx/functions/*`
|
|
397
|
+
- AI function artifacts: `buildx/ai-functions/*`
|
|
398
|
+
- template artifacts: `buildx/templates/*`
|
|
399
|
+
|
|
400
|
+
Initial sync baseline:
|
|
401
|
+
- `project:init` auto-pulls all artifact groups (`schema`, `function`, `ai-function`, `template`).
|
|
402
|
+
|
|
403
|
+
Daily standard loop (recommended):
|
|
404
|
+
1. Pull latest remote artifacts first.
|
|
405
|
+
2. Edit local files.
|
|
406
|
+
3. Diff against remote.
|
|
407
|
+
4. Push with `--dry-run`.
|
|
408
|
+
5. Push for real after review.
|
|
375
409
|
|
|
376
410
|
```bash
|
|
377
|
-
#
|
|
411
|
+
# 1) pull latest (all artifact groups)
|
|
378
412
|
npx buildx-cli schema:pull --project-id <project-id>
|
|
379
|
-
npx buildx-cli schema:diff --project-id <project-id>
|
|
380
|
-
npx buildx-cli schema:push --project-id <project-id> --dry-run
|
|
381
|
-
|
|
382
|
-
# function lifecycle
|
|
383
413
|
npx buildx-cli function:pull --project-id <project-id>
|
|
414
|
+
npx buildx-cli ai-function:pull --project-id <project-id>
|
|
415
|
+
npx buildx-cli template:pull --project-id <project-id>
|
|
416
|
+
|
|
417
|
+
# 2) diff before push
|
|
418
|
+
npx buildx-cli schema:diff --project-id <project-id> --details
|
|
384
419
|
npx buildx-cli function:diff --project-id <project-id>
|
|
420
|
+
npx buildx-cli ai-function:diff --project-id <project-id>
|
|
421
|
+
npx buildx-cli template:diff --project-id <project-id>
|
|
422
|
+
|
|
423
|
+
# 3) dry-run push
|
|
424
|
+
npx buildx-cli schema:push --project-id <project-id> --dry-run
|
|
385
425
|
npx buildx-cli function:push --project-id <project-id> --dry-run
|
|
426
|
+
npx buildx-cli ai-function:push --project-id <project-id> --dry-run
|
|
427
|
+
npx buildx-cli template:push --project-id <project-id> --dry-run
|
|
428
|
+
|
|
429
|
+
# 4) push for real
|
|
430
|
+
npx buildx-cli schema:push --project-id <project-id>
|
|
431
|
+
npx buildx-cli function:push --project-id <project-id>
|
|
432
|
+
npx buildx-cli ai-function:push --project-id <project-id>
|
|
433
|
+
npx buildx-cli template:push --project-id <project-id>
|
|
386
434
|
```
|
|
387
435
|
|
|
388
436
|
### Users
|
|
@@ -553,6 +601,10 @@ Field annotations (JSDoc in `types.ts`) are supported:
|
|
|
553
601
|
- `@bx.validate <json_or_string>`
|
|
554
602
|
- `@bx.props <json-object>` (merge custom keys into `propertiesScheme`)
|
|
555
603
|
|
|
604
|
+
Required behavior:
|
|
605
|
+
- converter does not auto-assume `required: true` from non-optional TypeScript syntax by default.
|
|
606
|
+
- use `@bx.required` (or `@bx.required false`) for explicit required control.
|
|
607
|
+
|
|
556
608
|
System-managed fields:
|
|
557
609
|
- `createdAt`, `updatedAt`, `createdBy`, `updatedBy` in `types.ts` are ignored by convert output and never synced back
|
|
558
610
|
|
package/dist/README.md
CHANGED
|
@@ -292,6 +292,12 @@ Next.js starter behavior (`--app next`):
|
|
|
292
292
|
- includes built-in theme mode setup (`light|dark|system`) with toggle.
|
|
293
293
|
- includes built-in locale setup (`en|th`) with selector.
|
|
294
294
|
- default web UI stack is HeroUI (`@heroui/react`) as primary component framework.
|
|
295
|
+
- generated provider wiring does not import/wrap `HeroUIProvider` (compatibility with current HeroUI export surface).
|
|
296
|
+
- generated auth wiring supports dual mode:
|
|
297
|
+
- `buildx` mode (root auth API, no project scope)
|
|
298
|
+
- `project` mode (project-scoped auth API with project id)
|
|
299
|
+
- `auto` mode (uses project id only when provided)
|
|
300
|
+
- starter card layout uses `CardContent` (not `CardBody`) for current HeroUI package compatibility.
|
|
295
301
|
- auth screens use shared UI pack components without forcing full-screen background, so page/layout background is controlled by the generated app.
|
|
296
302
|
|
|
297
303
|
Expo starter behavior (`--app expo`):
|
|
@@ -305,6 +311,7 @@ Expo starter behavior (`--app expo`):
|
|
|
305
311
|
- includes required `heroui-native` peer dependencies: `uniwind`, `tailwind-merge`, `tailwind-variants`, `react-native-gesture-handler`, `@gorhom/bottom-sheet`.
|
|
306
312
|
- includes `react-native-worklets` dependency required by current `react-native-reanimated` chain.
|
|
307
313
|
- keeps auth state split (public/private view) and uses shared Buildx auth provider wiring.
|
|
314
|
+
- generated auth wiring supports dual mode (`buildx|project|auto`) with project-id forwarding on auth actions.
|
|
308
315
|
- includes starter auth flows on mobile:
|
|
309
316
|
- sign-in (username/password)
|
|
310
317
|
- sign-up (name/email/tel support)
|
|
@@ -350,6 +357,11 @@ Generated auth-aware structure:
|
|
|
350
357
|
- public screen tree for unauthenticated users
|
|
351
358
|
- private screen tree for authenticated users
|
|
352
359
|
- mobile-first baseline with `heroui-native` provider
|
|
360
|
+
- Generated auth mode env defaults:
|
|
361
|
+
- `NEXT_PUBLIC_BUILDX_AUTH_MODE` / `EXPO_PUBLIC_BUILDX_AUTH_MODE` / `VITE_BUILDX_AUTH_MODE` (default: `auto`)
|
|
362
|
+
- `NEXT_PUBLIC_BUILDX_PROJECT_ID` / `EXPO_PUBLIC_BUILDX_PROJECT_ID` / `VITE_BUILDX_PROJECT_ID` used as default project scope in `project` mode
|
|
363
|
+
- in `project` mode, generated auth forms pass `projectId` explicitly to auth actions
|
|
364
|
+
- in `buildx` mode, generated auth provider forces root scope (no project id)
|
|
353
365
|
- Scaffold layout is single-level:
|
|
354
366
|
- app package files are generated at workspace root (no `apps/web` nesting)
|
|
355
367
|
- `buildx/` artifacts are generated at root level alongside app files
|
|
@@ -364,25 +376,61 @@ UI package dependency resolution:
|
|
|
364
376
|
Notes:
|
|
365
377
|
- Next scaffold requires npm registry connectivity for `create-next-app`.
|
|
366
378
|
- Use `--dry-run` to preview file plan without running scaffold commands.
|
|
379
|
+
- After backend bootstrap, `project:init` automatically runs initial pull via CLI:
|
|
380
|
+
- `schema:pull --target-dir <workspace>/buildx/generated`
|
|
381
|
+
- `function:pull --target-dir <workspace>/buildx`
|
|
382
|
+
- `ai-function:pull --target-dir <workspace>/buildx/ai-functions`
|
|
383
|
+
- `template:pull --target-dir <workspace>/buildx/templates`
|
|
384
|
+
so starter artifact docs/structure are available immediately.
|
|
367
385
|
- Generated projects are package-manager agnostic (no forced `packageManager` lock in generated `package.json`).
|
|
368
386
|
- Next `app/globals.css` is normalized with Tailwind `@source` to include UI pack classes from `node_modules` (prevents missing utilities like `grid-cols-2` from shared components).
|
|
369
387
|
- Next starter includes `@heroui/react` by default.
|
|
370
388
|
- Expo starter includes `heroui-native` by default.
|
|
371
389
|
|
|
372
|
-
###
|
|
390
|
+
### Standard Artifact Guideline
|
|
373
391
|
|
|
374
|
-
|
|
392
|
+
Use this as the standard workflow for project artifacts after `project:init`.
|
|
393
|
+
|
|
394
|
+
Scope and location:
|
|
395
|
+
- schema artifacts: `buildx/generated/*`
|
|
396
|
+
- function artifacts: `buildx/functions/*`
|
|
397
|
+
- AI function artifacts: `buildx/ai-functions/*`
|
|
398
|
+
- template artifacts: `buildx/templates/*`
|
|
399
|
+
|
|
400
|
+
Initial sync baseline:
|
|
401
|
+
- `project:init` auto-pulls all artifact groups (`schema`, `function`, `ai-function`, `template`).
|
|
402
|
+
|
|
403
|
+
Daily standard loop (recommended):
|
|
404
|
+
1. Pull latest remote artifacts first.
|
|
405
|
+
2. Edit local files.
|
|
406
|
+
3. Diff against remote.
|
|
407
|
+
4. Push with `--dry-run`.
|
|
408
|
+
5. Push for real after review.
|
|
375
409
|
|
|
376
410
|
```bash
|
|
377
|
-
#
|
|
411
|
+
# 1) pull latest (all artifact groups)
|
|
378
412
|
npx buildx-cli schema:pull --project-id <project-id>
|
|
379
|
-
npx buildx-cli schema:diff --project-id <project-id>
|
|
380
|
-
npx buildx-cli schema:push --project-id <project-id> --dry-run
|
|
381
|
-
|
|
382
|
-
# function lifecycle
|
|
383
413
|
npx buildx-cli function:pull --project-id <project-id>
|
|
414
|
+
npx buildx-cli ai-function:pull --project-id <project-id>
|
|
415
|
+
npx buildx-cli template:pull --project-id <project-id>
|
|
416
|
+
|
|
417
|
+
# 2) diff before push
|
|
418
|
+
npx buildx-cli schema:diff --project-id <project-id> --details
|
|
384
419
|
npx buildx-cli function:diff --project-id <project-id>
|
|
420
|
+
npx buildx-cli ai-function:diff --project-id <project-id>
|
|
421
|
+
npx buildx-cli template:diff --project-id <project-id>
|
|
422
|
+
|
|
423
|
+
# 3) dry-run push
|
|
424
|
+
npx buildx-cli schema:push --project-id <project-id> --dry-run
|
|
385
425
|
npx buildx-cli function:push --project-id <project-id> --dry-run
|
|
426
|
+
npx buildx-cli ai-function:push --project-id <project-id> --dry-run
|
|
427
|
+
npx buildx-cli template:push --project-id <project-id> --dry-run
|
|
428
|
+
|
|
429
|
+
# 4) push for real
|
|
430
|
+
npx buildx-cli schema:push --project-id <project-id>
|
|
431
|
+
npx buildx-cli function:push --project-id <project-id>
|
|
432
|
+
npx buildx-cli ai-function:push --project-id <project-id>
|
|
433
|
+
npx buildx-cli template:push --project-id <project-id>
|
|
386
434
|
```
|
|
387
435
|
|
|
388
436
|
### Users
|
|
@@ -553,6 +601,10 @@ Field annotations (JSDoc in `types.ts`) are supported:
|
|
|
553
601
|
- `@bx.validate <json_or_string>`
|
|
554
602
|
- `@bx.props <json-object>` (merge custom keys into `propertiesScheme`)
|
|
555
603
|
|
|
604
|
+
Required behavior:
|
|
605
|
+
- converter does not auto-assume `required: true` from non-optional TypeScript syntax by default.
|
|
606
|
+
- use `@bx.required` (or `@bx.required false`) for explicit required control.
|
|
607
|
+
|
|
556
608
|
System-managed fields:
|
|
557
609
|
- `createdAt`, `updatedAt`, `createdBy`, `updatedBy` in `types.ts` are ignored by convert output and never synced back
|
|
558
610
|
|