@chidchanun/bcp 0.1.29 → 0.2.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/README.md +196 -338
- package/docs/README.md +228 -295
- package/docs/docs-web-manifest.json +11 -2
- package/docs/migration-0.2.md +173 -0
- package/docs/platform-contract.md +159 -0
- package/docs/platform-manifest.json +75 -0
- package/docs/releases/0.2.0.md +146 -0
- package/package.json +1 -1
package/docs/README.md
CHANGED
|
@@ -1,72 +1,80 @@
|
|
|
1
1
|
# BCP Framework Documentation Source
|
|
2
2
|
|
|
3
|
-
The `docs/` directory is the documentation source of truth for BCP Framework and is
|
|
3
|
+
The `docs/` directory is the documentation source of truth for BCP Framework and is organized for **`bcp-docs-web`**.
|
|
4
4
|
|
|
5
|
-
> **Documentation target:** BCP Framework `0.
|
|
5
|
+
> **Documentation target:** BCP Framework `0.2.0`
|
|
6
6
|
>
|
|
7
|
-
> **Release state:** unreleased development target. Do not label `0.
|
|
7
|
+
> **Release state:** unreleased development target. Do not label `0.2.0` as published until RC validation, tagging and npm publication complete.
|
|
8
8
|
|
|
9
|
-
## Documentation
|
|
9
|
+
## Documentation architecture
|
|
10
|
+
|
|
11
|
+
BCP `0.2.0` uses two machine-readable manifests:
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
docs/docs-web-manifest.json
|
|
15
|
+
-> website navigation, routes, Markdown sources and release pages
|
|
16
|
+
|
|
17
|
+
docs/platform-manifest.json
|
|
18
|
+
-> framework version, runtime target, public entrypoints and capability metadata
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Markdown files under `docs/` remain the authored content source.
|
|
22
|
+
|
|
23
|
+
Recommended flow:
|
|
10
24
|
|
|
11
25
|
```text
|
|
12
|
-
|
|
26
|
+
framework source/tests
|
|
13
27
|
↓
|
|
14
28
|
docs/
|
|
29
|
+
├─ Markdown content
|
|
30
|
+
├─ docs-web-manifest.json
|
|
31
|
+
└─ platform-manifest.json
|
|
15
32
|
↓
|
|
16
|
-
|
|
17
|
-
↓
|
|
18
|
-
bcp-docs-web
|
|
33
|
+
bcp-docs-web
|
|
19
34
|
```
|
|
20
35
|
|
|
21
|
-
Framework source and tests
|
|
36
|
+
Framework source and tests remain authoritative for runtime behavior.
|
|
22
37
|
|
|
23
|
-
##
|
|
38
|
+
## 0.2.0 Framework Platform baseline
|
|
24
39
|
|
|
25
|
-
`
|
|
40
|
+
`0.2.0` establishes an explicit compatibility/platform contract rather than introducing a new runtime architecture.
|
|
26
41
|
|
|
27
|
-
|
|
42
|
+
New platform documents:
|
|
28
43
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
Markdown source files
|
|
36
|
-
page titles
|
|
37
|
-
release routes
|
|
38
|
-
```
|
|
44
|
+
| Source | Purpose |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| `platform-manifest.json` | Machine-readable platform/version/public-entrypoint metadata |
|
|
47
|
+
| `platform-contract.md` | Human-readable public platform contract |
|
|
48
|
+
| `migration-0.2.md` | Upgrade guide from the `0.1.x` baseline |
|
|
49
|
+
| `releases/0.2.0.md` | Release notes for the milestone |
|
|
39
50
|
|
|
40
|
-
|
|
51
|
+
Compatibility intent from `0.1.29`:
|
|
41
52
|
|
|
42
53
|
```text
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
↓
|
|
47
|
-
load referenced Markdown file
|
|
48
|
-
↓
|
|
49
|
-
render content/search/prev-next
|
|
54
|
+
intentional public-entrypoint removals: none
|
|
55
|
+
standalone runtime model change: none
|
|
56
|
+
supported production build target: standalone-node
|
|
50
57
|
```
|
|
51
58
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
Markdown remains the content source; the manifest contains navigation metadata only.
|
|
59
|
+
BCP remains pre-1.0, so application upgrades should still be validated before production deployment.
|
|
55
60
|
|
|
56
61
|
## Update rule
|
|
57
62
|
|
|
58
|
-
When framework behavior changes:
|
|
63
|
+
When framework behavior or public surface changes:
|
|
59
64
|
|
|
60
65
|
1. Update framework source.
|
|
61
66
|
2. Add/update regression tests.
|
|
62
|
-
3. Update the matching Markdown
|
|
63
|
-
4. Update `
|
|
64
|
-
5. Update `docs/
|
|
65
|
-
6.
|
|
67
|
+
3. Update the matching Markdown guide.
|
|
68
|
+
4. Update `platform-manifest.json` when public entrypoints/runtime/capability metadata changes.
|
|
69
|
+
5. Update `docs-web-manifest.json` when website navigation/routes change.
|
|
70
|
+
6. Update `docs/releases/<version>.md`.
|
|
71
|
+
7. Change release state to published only after npm publication succeeds.
|
|
72
|
+
|
|
73
|
+
## Current docs-web navigation
|
|
66
74
|
|
|
67
|
-
|
|
75
|
+
`docs/docs-web-manifest.json` is the authoritative ordered navigation contract.
|
|
68
76
|
|
|
69
|
-
|
|
77
|
+
Current sections:
|
|
70
78
|
|
|
71
79
|
```text
|
|
72
80
|
Getting Started
|
|
@@ -76,95 +84,130 @@ Database
|
|
|
76
84
|
Runtime & Infrastructure
|
|
77
85
|
Storage & Uploads
|
|
78
86
|
Developer Experience
|
|
87
|
+
Platform & Compatibility
|
|
79
88
|
Releases
|
|
80
89
|
```
|
|
81
90
|
|
|
82
91
|
### Getting Started
|
|
83
92
|
|
|
84
|
-
| Website route | Markdown source |
|
|
85
|
-
| --- | --- |
|
|
86
|
-
| `/docs/getting-started` | `getting-started.md` |
|
|
87
|
-
| `/docs/configuration` | `configuration.md` |
|
|
88
|
-
| `/docs/application-modules` | `application-modules.md` |
|
|
89
|
-
| `/docs/project-metadata` | `project-metadata.md` |
|
|
90
|
-
| `/docs/deployment` | `deployment.md` |
|
|
91
|
-
| `/docs/updating` | `updating.md` |
|
|
93
|
+
| Website route | Markdown source |
|
|
94
|
+
| --- | --- |
|
|
95
|
+
| `/docs/getting-started` | `getting-started.md` |
|
|
96
|
+
| `/docs/configuration` | `configuration.md` |
|
|
97
|
+
| `/docs/application-modules` | `application-modules.md` |
|
|
98
|
+
| `/docs/project-metadata` | `project-metadata.md` |
|
|
99
|
+
| `/docs/deployment` | `deployment.md` |
|
|
100
|
+
| `/docs/updating` | `updating.md` |
|
|
92
101
|
|
|
93
102
|
### Routing & Data
|
|
94
103
|
|
|
95
|
-
| Website route | Markdown source |
|
|
96
|
-
| --- | --- |
|
|
97
|
-
| `/docs/routing` | `routing.md` |
|
|
98
|
-
| `/docs/server-data-loaders` | `server-data-loaders.md` |
|
|
99
|
-
| `/docs/route-guards` | `route-guards.md` |
|
|
100
|
-
| `/docs/form-actions` | `form-actions.md` |
|
|
101
|
-
| `/docs/server-request-apis` | `server-request-apis.md` |
|
|
102
|
-
| `/docs/validation` | `validation.md` |
|
|
103
|
-
| `/docs/error-handling` | `error-handling.md` |
|
|
104
|
+
| Website route | Markdown source |
|
|
105
|
+
| --- | --- |
|
|
106
|
+
| `/docs/routing` | `routing.md` |
|
|
107
|
+
| `/docs/server-data-loaders` | `server-data-loaders.md` |
|
|
108
|
+
| `/docs/route-guards` | `route-guards.md` |
|
|
109
|
+
| `/docs/form-actions` | `form-actions.md` |
|
|
110
|
+
| `/docs/server-request-apis` | `server-request-apis.md` |
|
|
111
|
+
| `/docs/validation` | `validation.md` |
|
|
112
|
+
| `/docs/error-handling` | `error-handling.md` |
|
|
104
113
|
|
|
105
114
|
### Authentication
|
|
106
115
|
|
|
107
|
-
| Website route | Markdown source |
|
|
108
|
-
| --- | --- |
|
|
109
|
-
| `/docs/authentication` | `authentication.md` |
|
|
110
|
-
| `/docs/auth-route-guards` | `auth-route-guards.md` |
|
|
111
|
-
| `/docs/session-auth` | `session-auth.md` |
|
|
116
|
+
| Website route | Markdown source |
|
|
117
|
+
| --- | --- |
|
|
118
|
+
| `/docs/authentication` | `authentication.md` |
|
|
119
|
+
| `/docs/auth-route-guards` | `auth-route-guards.md` |
|
|
120
|
+
| `/docs/session-auth` | `session-auth.md` |
|
|
112
121
|
|
|
113
122
|
### Database
|
|
114
123
|
|
|
115
|
-
| Website route | Markdown source |
|
|
116
|
-
| --- | --- |
|
|
117
|
-
| `/docs/database` | `database.md` |
|
|
118
|
-
| `/docs/database-migrations` | `database-migrations.md` |
|
|
124
|
+
| Website route | Markdown source |
|
|
125
|
+
| --- | --- |
|
|
126
|
+
| `/docs/database` | `database.md` |
|
|
127
|
+
| `/docs/database-migrations` | `database-migrations.md` |
|
|
119
128
|
|
|
120
129
|
### Runtime & Infrastructure
|
|
121
130
|
|
|
122
|
-
| Website route | Markdown source |
|
|
123
|
-
| --- | --- |
|
|
124
|
-
| `/docs/middleware` | `middleware.md` |
|
|
125
|
-
| `/docs/hydration` | `hydration.md` |
|
|
126
|
-
| `/docs/development-logging` | `development-logging.md` |
|
|
127
|
-
| `/docs/caching` | `caching.md` |
|
|
128
|
-
| `/docs/security` | `security.md` |
|
|
129
|
-
| `/docs/production-hardening` | `production-hardening.md` |
|
|
131
|
+
| Website route | Markdown source |
|
|
132
|
+
| --- | --- |
|
|
133
|
+
| `/docs/middleware` | `middleware.md` |
|
|
134
|
+
| `/docs/hydration` | `hydration.md` |
|
|
135
|
+
| `/docs/development-logging` | `development-logging.md` |
|
|
136
|
+
| `/docs/caching` | `caching.md` |
|
|
137
|
+
| `/docs/security` | `security.md` |
|
|
138
|
+
| `/docs/production-hardening` | `production-hardening.md` |
|
|
130
139
|
|
|
131
140
|
### Storage & Uploads
|
|
132
141
|
|
|
133
|
-
| Website route | Markdown source |
|
|
134
|
-
| --- | --- |
|
|
135
|
-
| `/docs/file-upload` | `file-upload.md` |
|
|
136
|
-
| `/docs/storage` | `storage.md` |
|
|
137
|
-
| `/docs/storage-ecosystem` | `storage-ecosystem.md` |
|
|
138
|
-
| `/docs/s3-storage` | `s3-storage.md` |
|
|
142
|
+
| Website route | Markdown source |
|
|
143
|
+
| --- | --- |
|
|
144
|
+
| `/docs/file-upload` | `file-upload.md` |
|
|
145
|
+
| `/docs/storage` | `storage.md` |
|
|
146
|
+
| `/docs/storage-ecosystem` | `storage-ecosystem.md` |
|
|
147
|
+
| `/docs/s3-storage` | `s3-storage.md` |
|
|
139
148
|
|
|
140
149
|
### Developer Experience
|
|
141
150
|
|
|
142
|
-
| Website route | Markdown source |
|
|
143
|
-
| --- | --- |
|
|
144
|
-
| `/docs/generators` | `generators.md` |
|
|
145
|
-
| `/docs/developer-tools` | `developer-tools.md` |
|
|
151
|
+
| Website route | Markdown source |
|
|
152
|
+
| --- | --- |
|
|
153
|
+
| `/docs/generators` | `generators.md` |
|
|
154
|
+
| `/docs/developer-tools` | `developer-tools.md` |
|
|
146
155
|
|
|
147
|
-
|
|
156
|
+
### Platform & Compatibility
|
|
157
|
+
|
|
158
|
+
| Website route | Markdown source |
|
|
159
|
+
| --- | --- |
|
|
160
|
+
| `/docs/platform-contract` | `platform-contract.md` |
|
|
161
|
+
| `/docs/migration-0.2` | `migration-0.2.md` |
|
|
148
162
|
|
|
149
|
-
|
|
163
|
+
## Platform manifest
|
|
164
|
+
|
|
165
|
+
`docs/platform-manifest.json` is intended for tooling and `bcp-docs-web` metadata displays.
|
|
166
|
+
|
|
167
|
+
It records:
|
|
168
|
+
|
|
169
|
+
```text
|
|
170
|
+
schema version
|
|
171
|
+
framework/version/release state
|
|
172
|
+
Node/React/runtime baseline
|
|
173
|
+
production build target
|
|
174
|
+
public package entrypoints
|
|
175
|
+
CLI command families
|
|
176
|
+
capability groups
|
|
177
|
+
storage-provider families
|
|
178
|
+
previous-baseline compatibility intent
|
|
179
|
+
documentation contract files
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Do not treat the manifest as executable runtime configuration. It describes the supported platform surface; framework source/tests remain authoritative.
|
|
183
|
+
|
|
184
|
+
## Public entrypoint baseline
|
|
185
|
+
|
|
186
|
+
The `0.2.0` platform recognizes:
|
|
150
187
|
|
|
151
188
|
```text
|
|
152
189
|
bcp
|
|
153
|
-
bcp/
|
|
154
|
-
bcp/auth
|
|
155
|
-
bcp/database
|
|
156
|
-
bcp/validation
|
|
157
|
-
bcp/error
|
|
190
|
+
bcp/island
|
|
158
191
|
bcp/cache
|
|
159
192
|
bcp/config
|
|
193
|
+
bcp/validation
|
|
194
|
+
bcp/error
|
|
195
|
+
bcp/database
|
|
196
|
+
bcp/auth
|
|
197
|
+
bcp/server
|
|
198
|
+
bcp/server-only
|
|
160
199
|
bcp/middleware
|
|
161
200
|
```
|
|
162
201
|
|
|
163
|
-
|
|
202
|
+
`bcp-docs-web` can use this list to build an API-reference index without hard-coding a second entrypoint list.
|
|
203
|
+
|
|
204
|
+
## API guide ownership
|
|
205
|
+
|
|
206
|
+
| Entrypoint | Primary guides |
|
|
164
207
|
| --- | --- |
|
|
165
208
|
| `bcp` | `routing.md`, `server-data-loaders.md`, `form-actions.md` |
|
|
166
|
-
| `bcp/server` | `server-request-apis.md`, `file-upload.md`, `storage.md`, `storage-ecosystem.md`, `
|
|
167
|
-
| `bcp/auth` | `authentication.md`, `auth-route-guards.md` |
|
|
209
|
+
| `bcp/server` | `server-request-apis.md`, `file-upload.md`, `storage.md`, `storage-ecosystem.md`, `production-hardening.md` |
|
|
210
|
+
| `bcp/auth` | `authentication.md`, `auth-route-guards.md`, `session-auth.md` |
|
|
168
211
|
| `bcp/database` | `database.md`, `database-migrations.md` |
|
|
169
212
|
| `bcp/validation` | `validation.md` |
|
|
170
213
|
| `bcp/error` | `error-handling.md` |
|
|
@@ -178,164 +221,92 @@ bcp/middleware
|
|
|
178
221
|
|
|
179
222
|
- React SSR/hydration
|
|
180
223
|
- file-based page/API routing
|
|
181
|
-
-
|
|
182
|
-
- route groups
|
|
224
|
+
- dynamic/catch-all/optional catch-all routes
|
|
225
|
+
- layouts/metadata/route groups
|
|
183
226
|
- SPA navigation
|
|
184
227
|
- loaders/guards/form actions
|
|
185
228
|
- client islands / partial hydration
|
|
186
|
-
- Fast Refresh
|
|
187
229
|
|
|
188
|
-
### Server
|
|
230
|
+
### Server/runtime
|
|
189
231
|
|
|
190
|
-
- request-scoped APIs
|
|
191
|
-
- JWT sessions
|
|
232
|
+
- request-scoped server APIs
|
|
233
|
+
- JWT cookie sessions
|
|
192
234
|
- Middleware System v2
|
|
193
|
-
- validation
|
|
194
|
-
- structured logging
|
|
195
|
-
- response caching/
|
|
196
|
-
- production hardening
|
|
197
|
-
-
|
|
198
|
-
-
|
|
199
|
-
- application shutdown hooks
|
|
200
|
-
- trusted-proxy forwarding-header controls
|
|
201
|
-
|
|
202
|
-
### Storage & Uploads
|
|
203
|
-
|
|
204
|
-
- buffered multipart upload APIs
|
|
205
|
-
- production streaming multipart upload (`storeMultipartFile()`)
|
|
206
|
-
- backward-compatible `StorageAdapter` contract
|
|
207
|
-
- local filesystem storage
|
|
208
|
-
- Amazon S3 / Cloudflare R2 / MinIO-compatible storage
|
|
209
|
-
- streaming reads/writes and byte ranges
|
|
210
|
-
- ETag/Last-Modified file delivery
|
|
211
|
-
- upload/storage limits and abort cleanup
|
|
212
|
-
- object listing with cursors
|
|
213
|
-
- copy and move
|
|
214
|
-
- portable user metadata
|
|
215
|
-
- bulk deletion
|
|
216
|
-
- S3 presigned read/write URLs
|
|
217
|
-
- create-app Local Server / Amazon S3 / Cloudflare R2 presets
|
|
235
|
+
- validation and structured HTTP errors
|
|
236
|
+
- structured logging/request IDs
|
|
237
|
+
- response caching/revalidation
|
|
238
|
+
- production hardening/timeouts
|
|
239
|
+
- graceful shutdown and shutdown hooks
|
|
240
|
+
- trusted-proxy controls
|
|
218
241
|
|
|
219
242
|
### Database
|
|
220
243
|
|
|
221
|
-
-
|
|
222
|
-
-
|
|
223
|
-
- prepared execution/query helpers
|
|
244
|
+
- MySQL framework primitives
|
|
245
|
+
- prepared query/execute helpers
|
|
224
246
|
- transactions
|
|
225
247
|
- migrations/status/rollback
|
|
226
248
|
|
|
227
|
-
###
|
|
249
|
+
### Storage & uploads
|
|
250
|
+
|
|
251
|
+
- buffered multipart APIs
|
|
252
|
+
- streaming multipart upload
|
|
253
|
+
- local filesystem storage
|
|
254
|
+
- Amazon S3 / Cloudflare R2 / S3-compatible storage
|
|
255
|
+
- streaming reads/writes and byte ranges
|
|
256
|
+
- list/copy/move
|
|
257
|
+
- portable metadata
|
|
258
|
+
- bulk delete
|
|
259
|
+
- S3 signed read/write URLs
|
|
260
|
+
|
|
261
|
+
### Developer Experience
|
|
228
262
|
|
|
229
263
|
- `create-bcp-app`
|
|
264
|
+
- Local / Amazon S3 / Cloudflare R2 storage presets
|
|
230
265
|
- non-secret `bcp.project.json`
|
|
231
|
-
-
|
|
232
|
-
- `bcp generate api`
|
|
233
|
-
- `bcp generate middleware`
|
|
234
|
-
- `bcp generate migration`
|
|
235
|
-
- `bcp update`
|
|
266
|
+
- page/API/middleware/migration generators
|
|
236
267
|
- Doctor/Inspect v2
|
|
237
|
-
-
|
|
238
|
-
- duplicate framework declaration checks
|
|
239
|
-
- storage/provider diagnostics
|
|
240
|
-
- production-build/Docker/hardening diagnostics
|
|
268
|
+
- framework updater
|
|
241
269
|
- Windows-safe `bcp-framework` alias
|
|
242
|
-
- `docs/docs-web-manifest.json`
|
|
243
|
-
|
|
244
|
-
## BCP 0.1.29 documentation focus
|
|
245
|
-
|
|
246
|
-
### Project generators
|
|
247
270
|
|
|
248
|
-
|
|
249
|
-
bcp generate page dashboard/users
|
|
250
|
-
bcp generate api users
|
|
251
|
-
bcp generate middleware
|
|
252
|
-
bcp generate migration create_users
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
Page/API/middleware generation requires `--force` before replacing existing target files.
|
|
256
|
-
|
|
257
|
-
See `generators.md`.
|
|
258
|
-
|
|
259
|
-
### Doctor / Inspect v2
|
|
260
|
-
|
|
261
|
-
Doctor adds deployment/project-health checks without removing previous checks. Inspect keeps its previous JSON fields and adds a `project` object containing lockfile, package manager, project metadata/presets, build presence, Dockerfile, framework declarations, storage provider and hardening status.
|
|
271
|
+
## Build/runtime baseline
|
|
262
272
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
### Project metadata
|
|
266
|
-
|
|
267
|
-
New `create-bcp-app` projects receive:
|
|
273
|
+
Supported `0.2.0` production target:
|
|
268
274
|
|
|
269
275
|
```text
|
|
270
|
-
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
The file records scaffold choices only and must never contain credentials/secrets.
|
|
274
|
-
|
|
275
|
-
See `project-metadata.md`.
|
|
276
|
-
|
|
277
|
-
### Docs-web contract
|
|
278
|
-
|
|
279
|
-
`docs/docs-web-manifest.json` is intended to be consumed directly by `bcp-docs-web` for navigation and route generation.
|
|
280
|
-
|
|
281
|
-
The website should still read the Markdown source referenced by each manifest page entry.
|
|
282
|
-
|
|
283
|
-
## CLI commands
|
|
284
|
-
|
|
285
|
-
```bash
|
|
286
|
-
bcp dev
|
|
287
|
-
bcp routes
|
|
288
|
-
bcp build
|
|
289
|
-
bcp start
|
|
290
|
-
bcp generate page dashboard/users
|
|
291
|
-
bcp generate api users
|
|
292
|
-
bcp generate middleware
|
|
293
|
-
bcp generate migration create_users
|
|
294
|
-
bcp doctor
|
|
295
|
-
bcp doctor --json
|
|
296
|
-
bcp inspect
|
|
297
|
-
bcp inspect --json
|
|
298
|
-
bcp update
|
|
299
|
-
bcp version
|
|
300
|
-
|
|
301
|
-
bcp db create create_users
|
|
302
|
-
bcp db migrate
|
|
303
|
-
bcp db status
|
|
304
|
-
bcp db rollback
|
|
276
|
+
standalone-node
|
|
305
277
|
```
|
|
306
278
|
|
|
307
|
-
|
|
279
|
+
Build output:
|
|
308
280
|
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
281
|
+
```text
|
|
282
|
+
.bcp-framework/build/
|
|
283
|
+
├─ client/
|
|
284
|
+
├─ public/
|
|
285
|
+
└─ server/
|
|
286
|
+
└─ server.mjs
|
|
315
287
|
```
|
|
316
288
|
|
|
317
|
-
|
|
289
|
+
Native executable, desktop and mobile compilation are not part of the `0.2.0` platform contract.
|
|
318
290
|
|
|
319
291
|
## Releases
|
|
320
292
|
|
|
321
|
-
Release notes live
|
|
293
|
+
Release notes live in:
|
|
322
294
|
|
|
323
295
|
```text
|
|
324
296
|
docs/releases/
|
|
325
297
|
```
|
|
326
298
|
|
|
327
|
-
|
|
299
|
+
Current manifest routes begin with:
|
|
328
300
|
|
|
329
301
|
```text
|
|
302
|
+
/releases/0.2.0
|
|
330
303
|
/releases/0.1.29
|
|
331
304
|
/releases/0.1.28
|
|
332
305
|
/releases/0.1.27
|
|
333
306
|
/releases/0.1.26
|
|
334
|
-
/releases/0.1.25
|
|
335
|
-
/releases/0.1.24
|
|
336
307
|
```
|
|
337
308
|
|
|
338
|
-
Use
|
|
309
|
+
Use release states consistently:
|
|
339
310
|
|
|
340
311
|
```text
|
|
341
312
|
published
|
|
@@ -343,122 +314,83 @@ release candidate
|
|
|
343
314
|
unreleased development target
|
|
344
315
|
```
|
|
345
316
|
|
|
346
|
-
The
|
|
347
|
-
|
|
348
|
-
## Suggested docs-web implementation
|
|
349
|
-
|
|
350
|
-
A simple implementation can model the manifest like:
|
|
351
|
-
|
|
352
|
-
```ts
|
|
353
|
-
interface DocsWebManifest {
|
|
354
|
-
schemaVersion: number;
|
|
355
|
-
framework: string;
|
|
356
|
-
versionTarget: string;
|
|
357
|
-
releaseState: string;
|
|
358
|
-
sections: Array<{
|
|
359
|
-
id: string;
|
|
360
|
-
title: string;
|
|
361
|
-
pages: Array<{
|
|
362
|
-
route: string;
|
|
363
|
-
source: string;
|
|
364
|
-
title: string;
|
|
365
|
-
}>;
|
|
366
|
-
}>;
|
|
367
|
-
releases: Array<{
|
|
368
|
-
route: string;
|
|
369
|
-
source: string;
|
|
370
|
-
version: string;
|
|
371
|
-
state?: string;
|
|
372
|
-
}>;
|
|
373
|
-
}
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
Recommended website behavior:
|
|
377
|
-
|
|
378
|
-
1. Load/validate `docs-web-manifest.json` at build/startup.
|
|
379
|
-
2. Build the sidebar in manifest order.
|
|
380
|
-
3. Resolve each route to its referenced Markdown source.
|
|
381
|
-
4. Generate previous/next links from manifest order.
|
|
382
|
-
5. Index rendered Markdown headings/content for search.
|
|
383
|
-
6. Use `versionTarget` / `releaseState` for the site banner.
|
|
384
|
-
7. Use release entries for the release navigation.
|
|
317
|
+
The presence of a release note does not mean the npm version is published.
|
|
385
318
|
|
|
386
|
-
|
|
319
|
+
## Suggested bcp-docs-web implementation
|
|
387
320
|
|
|
388
|
-
|
|
321
|
+
At build/startup:
|
|
389
322
|
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
323
|
+
```text
|
|
324
|
+
load docs-web-manifest.json
|
|
325
|
+
load platform-manifest.json
|
|
326
|
+
↓
|
|
327
|
+
validate schema/version relationship
|
|
328
|
+
↓
|
|
329
|
+
build sidebar + route map + release map
|
|
330
|
+
↓
|
|
331
|
+
load referenced Markdown
|
|
332
|
+
↓
|
|
333
|
+
render content + prev/next + search index
|
|
334
|
+
↓
|
|
335
|
+
show version/release/platform metadata
|
|
336
|
+
```
|
|
399
337
|
|
|
400
|
-
|
|
338
|
+
Recommended website behavior:
|
|
401
339
|
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
340
|
+
1. Build navigation in manifest order.
|
|
341
|
+
2. Resolve every website route to its Markdown source.
|
|
342
|
+
3. Generate previous/next links from manifest ordering.
|
|
343
|
+
4. Use `versionTarget` and `releaseState` for banners.
|
|
344
|
+
5. Use `platform-manifest.json` for runtime/public-entrypoint metadata.
|
|
345
|
+
6. Index Markdown headings/content for search.
|
|
346
|
+
7. Never ingest runtime `.env` files into public documentation output.
|
|
406
347
|
|
|
407
348
|
## Source conventions
|
|
408
349
|
|
|
409
|
-
- one H1 per page,
|
|
350
|
+
- one H1 per Markdown page,
|
|
410
351
|
- stable heading hierarchy,
|
|
411
352
|
- fenced code blocks with language tags,
|
|
412
353
|
- relative links between docs,
|
|
413
354
|
- exact public API names,
|
|
414
355
|
- clear stable/RC/roadmap labels,
|
|
415
356
|
- security limitations next to affected APIs,
|
|
416
|
-
-
|
|
417
|
-
- no private/internal modules presented as public API.
|
|
357
|
+
- no framework-internal module presented as public API.
|
|
418
358
|
|
|
419
359
|
## Release validation
|
|
420
360
|
|
|
421
|
-
Before publishing
|
|
361
|
+
Before publishing `0.2.0`:
|
|
422
362
|
|
|
423
363
|
```bash
|
|
424
364
|
npm run typecheck
|
|
425
365
|
npm run test:unit
|
|
426
366
|
npm run test:integration
|
|
427
|
-
npm run test:e2e
|
|
428
367
|
npm run test:package
|
|
368
|
+
npm run test:e2e
|
|
429
369
|
npm run rc:check
|
|
430
370
|
```
|
|
431
371
|
|
|
432
|
-
|
|
372
|
+
`0.2.0` adds a platform-contract package smoke check that verifies:
|
|
373
|
+
|
|
374
|
+
- prepared framework/create-app version parity,
|
|
375
|
+
- required public exports,
|
|
376
|
+
- both CLI executable aliases,
|
|
377
|
+
- Node.js engine baseline,
|
|
378
|
+
- inclusion of platform/docs contract files,
|
|
379
|
+
- docs-web target/version consistency.
|
|
433
380
|
|
|
434
|
-
The release
|
|
381
|
+
The final release tag must point to the commit that passed the complete RC sequence.
|
|
435
382
|
|
|
436
383
|
## Documentation QA checklist
|
|
437
384
|
|
|
438
385
|
- every manifest Markdown source exists,
|
|
439
|
-
- every
|
|
440
|
-
-
|
|
441
|
-
-
|
|
442
|
-
-
|
|
443
|
-
-
|
|
444
|
-
-
|
|
445
|
-
-
|
|
446
|
-
-
|
|
447
|
-
- proxy trust remains documented as opt-in,
|
|
448
|
-
- roadmap APIs are not presented as release guarantees.
|
|
449
|
-
|
|
450
|
-
## Next direction after 0.1.29
|
|
451
|
-
|
|
452
|
-
Planned **`0.2.0 — Framework Platform`** focus:
|
|
453
|
-
|
|
454
|
-
- consolidate public API naming/behavior,
|
|
455
|
-
- document compatibility expectations,
|
|
456
|
-
- stabilize supported production deployment paths,
|
|
457
|
-
- complete docs-web integration and documentation coverage,
|
|
458
|
-
- publish migration guidance for pre-`0.2.0` applications,
|
|
459
|
-
- establish a platform baseline before broader feature expansion.
|
|
460
|
-
|
|
461
|
-
These remain roadmap goals until their source/tests land.
|
|
386
|
+
- every website route is unique,
|
|
387
|
+
- docs-web target matches platform version,
|
|
388
|
+
- platform public entrypoints match package exports,
|
|
389
|
+
- examples use public APIs/commands,
|
|
390
|
+
- release states are accurate,
|
|
391
|
+
- secrets are never placed in project/docs metadata,
|
|
392
|
+
- proxy trust remains opt-in,
|
|
393
|
+
- roadmap features are not presented as release guarantees.
|
|
462
394
|
|
|
463
395
|
## Repository authority
|
|
464
396
|
|
|
@@ -470,6 +402,7 @@ public exports
|
|
|
470
402
|
tests
|
|
471
403
|
Markdown docs
|
|
472
404
|
docs-web manifest
|
|
405
|
+
platform manifest
|
|
473
406
|
release notes
|
|
474
407
|
```
|
|
475
408
|
|