@stardeck-customer-apps/compose 0.2.0 → 0.4.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/SKILL.md CHANGED
@@ -23,10 +23,13 @@ Compose turns that declaration into the code Next.js actually builds:
23
23
  npx stardeck-compose [--enabled=a,b,c] [--prune] [--cwd=<repo root>]
24
24
  ```
25
25
 
26
- Run it from the repo root (the directory holding `apps/web`). Today you invoke
27
- it manually — `npx stardeck-compose` before `next dev` / `next build` / your
28
- typecheck — after changing any `module.json`. The `predev` / `prebuild` /
29
- `pretypecheck` / `pretest` wiring that makes this automatic has not landed yet.
26
+ Run it from the repo root (the directory holding `apps/web`). The Blueprint
27
+ island wires `predev`, `prebuild`, `prebuild:check`, `prelint`, `pretypecheck`
28
+ and `pretest` in `apps/web/package.json` to `stardeck-compose --cwd ../..`, and
29
+ a platform migration adds the same hooks to every app, so every
30
+ `npm run dev|build|lint|typecheck|test` composes first. A repo with no
31
+ `apps/web/src/modules` is a valid app: it composes to empty registries and a
32
+ header-only stub ignore list.
30
33
 
31
34
  Needs `typescript` >=5 <7 (it parses your route entries with the compiler API).
32
35
 
@@ -37,6 +40,8 @@ from `apps/web/stardeck.compose.json` instead:
37
40
  ```jsonc
38
41
  {
39
42
  "connectedStores": [
43
+ // `type` is optional and defaults to "database"; "storage" marks an
44
+ // object-storage store. The platform writes database rows only for now.
40
45
  { "storeId": "ds_123", "slug": "media", "bindingKey": null, "accessLevel": "write" }
41
46
  ],
42
47
  "installs": {
@@ -45,8 +50,9 @@ from `apps/web/stardeck.compose.json` instead:
45
50
  }
46
51
  ```
47
52
 
48
- The platform writes it at deploy time; write it by hand to compose locally
49
- against real stores. It is an input, not a result — compose still resolves and
53
+ The platform writes it before every deploy, every dev-server start or restart,
54
+ and every rail reconcile; write it by hand to compose locally against real
55
+ stores. It is an input, not a result — compose still resolves and
50
56
  validates the bindings itself. Without the file, `module-datastores.gen.ts`
51
57
  composes empty and every registry version reads `unreleased`, so an app with
52
58
  bound stores must not compose without it. A malformed file is a hard error, never