andesine 0.1.0 → 0.5.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 +39 -0
- package/README.md +93 -8
- package/dist/cli.js +4590 -616
- package/dist/cli.js.map +1 -1
- package/dist/config.schema.json +20 -3
- package/dist/templates/extension/.env.example +5 -0
- package/dist/templates/extension/LICENSE +21 -0
- package/dist/templates/extension/README.md +33 -0
- package/dist/templates/extension/andesine.config.ts +79 -0
- package/dist/templates/extension/andesine.keys.json +4 -0
- package/dist/templates/extension/gitignore +4 -0
- package/dist/templates/extension/package.template.json +27 -0
- package/dist/templates/extension/src/backend/server.ts +85 -0
- package/dist/templates/extension/src/frontend/about-section.tsx +47 -0
- package/dist/templates/extension/src/frontend/bookmarks-panel.tsx +67 -0
- package/dist/templates/extension/src/frontend/hello-panel.tsx +61 -0
- package/dist/templates/extension/src/frontend/index.tsx +6 -0
- package/dist/templates/extension/src/frontend/note-view.tsx +54 -0
- package/dist/templates/extension/src/frontend/shout-action.tsx +57 -0
- package/dist/templates/extension/tsconfig.json +16 -0
- package/dist/templates/pages/.env.example +5 -0
- package/dist/templates/pages/AGENTS.md +79 -0
- package/dist/templates/pages/LICENSE +21 -0
- package/dist/templates/pages/README.md +72 -0
- package/dist/templates/pages/andesine.config.ts +39 -0
- package/dist/templates/pages/astro.config.ts +23 -0
- package/dist/templates/pages/gitignore +13 -0
- package/dist/templates/pages/package.template.json +45 -0
- package/dist/templates/pages/src/api/openapi.yaml +246 -0
- package/dist/templates/pages/src/assets/andesine.svg +1 -0
- package/dist/templates/pages/src/assets/andesine.ts +6 -0
- package/dist/templates/pages/src/assets/favicon.svg +13 -0
- package/dist/templates/pages/src/assets/social-dots.svg +14 -0
- package/dist/templates/pages/src/components/content/callout.astro +26 -0
- package/dist/templates/pages/src/components/content/card-grid.astro +1 -0
- package/dist/templates/pages/src/components/content/card.astro +31 -0
- package/dist/templates/pages/src/components/content/code-block.astro +34 -0
- package/dist/templates/pages/src/components/content/code-group.astro +13 -0
- package/dist/templates/pages/src/components/content/copy-button.tsx +53 -0
- package/dist/templates/pages/src/components/content/disclosure.astro +26 -0
- package/dist/templates/pages/src/components/content/figure.astro +10 -0
- package/dist/templates/pages/src/components/content/file-tree.astro +47 -0
- package/dist/templates/pages/src/components/content/index.ts +30 -0
- package/dist/templates/pages/src/components/content/steps.astro +16 -0
- package/dist/templates/pages/src/components/content/tab.astro +7 -0
- package/dist/templates/pages/src/components/content/tabs.astro +15 -0
- package/dist/templates/pages/src/components/content/tabs.tsx +99 -0
- package/dist/templates/pages/src/components/effects/page-scroll-shadow.tsx +27 -0
- package/dist/templates/pages/src/components/effects/page-scrollbar.tsx +35 -0
- package/dist/templates/pages/src/components/layout/call-to-action.tsx +28 -0
- package/dist/templates/pages/src/components/layout/footer.astro +44 -0
- package/dist/templates/pages/src/components/layout/group-label.tsx +34 -0
- package/dist/templates/pages/src/components/layout/header.astro +53 -0
- package/dist/templates/pages/src/components/layout/mobile-navigation.tsx +51 -0
- package/dist/templates/pages/src/components/layout/navigation-links.tsx +57 -0
- package/dist/templates/pages/src/components/layout/navigation-tree.tsx +138 -0
- package/dist/templates/pages/src/components/layout/outline.tsx +162 -0
- package/dist/templates/pages/src/components/layout/page-actions.tsx +87 -0
- package/dist/templates/pages/src/components/layout/powered-by.tsx +29 -0
- package/dist/templates/pages/src/components/layout/section-tabs.tsx +83 -0
- package/dist/templates/pages/src/components/layout/sidebar.tsx +65 -0
- package/dist/templates/pages/src/components/primitives/button.tsx +121 -0
- package/dist/templates/pages/src/components/primitives/card.tsx +25 -0
- package/dist/templates/pages/src/components/primitives/dialog.tsx +47 -0
- package/dist/templates/pages/src/components/primitives/input.tsx +22 -0
- package/dist/templates/pages/src/components/primitives/logo.tsx +41 -0
- package/dist/templates/pages/src/components/primitives/menu.tsx +121 -0
- package/dist/templates/pages/src/components/primitives/scroll-area.tsx +103 -0
- package/dist/templates/pages/src/components/primitives/shortcut.tsx +60 -0
- package/dist/templates/pages/src/components/primitives/tooltip.tsx +39 -0
- package/dist/templates/pages/src/components/reference/facts.astro +27 -0
- package/dist/templates/pages/src/components/reference/fields.astro +102 -0
- package/dist/templates/pages/src/components/reference/method-badge.astro +18 -0
- package/dist/templates/pages/src/components/reference/methods.ts +17 -0
- package/dist/templates/pages/src/components/reference/operation.astro +252 -0
- package/dist/templates/pages/src/components/reference/styles.ts +14 -0
- package/dist/templates/pages/src/components/search/highlighted-text.tsx +22 -0
- package/dist/templates/pages/src/components/search/search-answer.tsx +123 -0
- package/dist/templates/pages/src/components/search/search-palette.tsx +174 -0
- package/dist/templates/pages/src/components/search/search-results.tsx +229 -0
- package/dist/templates/pages/src/components/social/card.ts +77 -0
- package/dist/templates/pages/src/content/docs/customization/index.mdx +11 -0
- package/dist/templates/pages/src/content/docs/customization/styles.mdx +18 -0
- package/dist/templates/pages/src/content/docs/getting-started/api-reference.mdx +100 -0
- package/dist/templates/pages/src/content/docs/getting-started/components.mdx +156 -0
- package/dist/templates/pages/src/content/docs/getting-started/configuration.mdx +194 -0
- package/dist/templates/pages/src/content/docs/getting-started/deployment.mdx +142 -0
- package/dist/templates/pages/src/content/docs/getting-started/index.mdx +22 -0
- package/dist/templates/pages/src/content/docs/getting-started/writing-pages.mdx +35 -0
- package/dist/templates/pages/src/content/docs/index.mdx +21 -0
- package/dist/templates/pages/src/content.config.ts +1 -0
- package/dist/templates/pages/src/layouts/page.astro +195 -0
- package/dist/templates/pages/src/styles/global.css +95 -0
- package/dist/templates/pages/tsconfig.json +10 -0
- package/dist/templates/pages/uno.config.ts +168 -0
- package/package.json +18 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.5.0
|
|
4
|
+
|
|
5
|
+
- Accept the `extensions` role permission (manage workspace extensions) in role commands.
|
|
6
|
+
- Add `andesine extensions init [directory]`, which creates an extension with a backend
|
|
7
|
+
from the template of the same release and generates its first backend key.
|
|
8
|
+
- Add `andesine extensions build`: manifest validation with the registry rules, the
|
|
9
|
+
frontend bundle with the generated `startExtension` call, view and icon CSS, and
|
|
10
|
+
`dist/extension.json` with the artifact digests and sizes.
|
|
11
|
+
- Add `andesine extensions keys generate`, `check`, and `revoke`. Private keys stay in
|
|
12
|
+
`.andesine/keys` and are never uploaded.
|
|
13
|
+
- Leave extension-only API operations (which need extension JWTs) out of the generated
|
|
14
|
+
command bindings.
|
|
15
|
+
- Add `andesine extensions dev`, which runs an extension on a local instance for the
|
|
16
|
+
signed-in member: it uploads each build with a development key, reloads it on changes,
|
|
17
|
+
writes the key and the instance URL to the backend's `.env`, and stops it on exit
|
|
18
|
+
(`--remove` uninstalls it; `--backend <url>` points it at a local backend). It refuses hosts
|
|
19
|
+
that are not local.
|
|
20
|
+
- Add `andesine extensions test-event <webhook> <type>` for sample events to the
|
|
21
|
+
development extension's webhooks.
|
|
22
|
+
- Add `andesine extensions registry check` and `registry build` for extension registry CI:
|
|
23
|
+
validation with the instance rules, new versions without overwriting published ones, and
|
|
24
|
+
the registry index.
|
|
25
|
+
|
|
26
|
+
## 0.4.0
|
|
27
|
+
|
|
28
|
+
- Add `andesine pages init [directory]`, which creates an Andesine Pages site from
|
|
29
|
+
the template of the same release in a new or empty directory (default `docs`).
|
|
30
|
+
- Depend on `@andesine/sdk` 0.4.0. Align the version with the other Andesine
|
|
31
|
+
packages.
|
|
32
|
+
|
|
33
|
+
## 0.3.0
|
|
34
|
+
|
|
35
|
+
- Add generated webhook commands for management (including bulk enable/disable and
|
|
36
|
+
delete), delivery history, signed tests, and single or bulk replay.
|
|
37
|
+
|
|
38
|
+
## 0.2.0
|
|
39
|
+
|
|
40
|
+
- Add slug-path API flags, collection selection, and generated type bindings.
|
|
41
|
+
|
|
3
42
|
## 0.1.0
|
|
4
43
|
|
|
5
44
|
- Add `types generate`, read-only `--check`, foreground `--watch`, atomic output
|
package/README.md
CHANGED
|
@@ -21,6 +21,83 @@ andesine --help
|
|
|
21
21
|
andesine --version
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
+
## Documentation sites
|
|
25
|
+
|
|
26
|
+
```sh
|
|
27
|
+
npx andesine pages init docs
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Creates an Andesine Pages site in a new or empty directory (default `docs`) from the
|
|
31
|
+
template of this CLI release, with `@andesine/pages` and `@andesine/ui` pinned to the
|
|
32
|
+
same version. Then run `npm install` and `npm run dev` in the directory. The command
|
|
33
|
+
needs no credentials.
|
|
34
|
+
|
|
35
|
+
## Extensions
|
|
36
|
+
|
|
37
|
+
```sh
|
|
38
|
+
npx andesine extensions init hello --name acme/hello
|
|
39
|
+
npx andesine extensions build
|
|
40
|
+
npx andesine extensions keys generate
|
|
41
|
+
npx andesine extensions keys check --registry https://registry.example.com/index.json
|
|
42
|
+
npx andesine extensions keys revoke key-2026-10-07
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
`extensions init` creates an extension with a Solid frontend and a Node backend in a new or
|
|
46
|
+
empty directory (default `extension`), and generates its first backend key.
|
|
47
|
+
|
|
48
|
+
`extensions build` loads `andesine.config.ts`, validates the manifest with the same rules
|
|
49
|
+
as the extension registry, bundles the frontend into one script with a generated
|
|
50
|
+
`startExtension` call for the manifest's view entries, and generates the CSS of the views
|
|
51
|
+
and of the manifest icons. It writes `dist/frontend.js`, `dist/styles.css`,
|
|
52
|
+
`dist/icons.css`, and `dist/extension.json` (the manifest and the SHA-256 digest and size
|
|
53
|
+
of each file). Builds are deterministic.
|
|
54
|
+
|
|
55
|
+
`extensions keys generate` creates an Ed25519 key pair. The public key goes to
|
|
56
|
+
`andesine.keys.json`, which the manifest imports; the private key goes to
|
|
57
|
+
`.andesine/keys/<kid>.json` (mode 0600) and is never uploaded. `keys check` compares the
|
|
58
|
+
private key in `ANDESINE_EXTENSION_KEY` or `--key` with the manifest keys and, with
|
|
59
|
+
`--registry`, with the keys of the registry entry. `keys revoke` moves a key ID to
|
|
60
|
+
`revokedKeys`. Extension commands use `--root <directory>` (default: current directory);
|
|
61
|
+
only `dev` and `test-event` need credentials.
|
|
62
|
+
|
|
63
|
+
### Local development
|
|
64
|
+
|
|
65
|
+
```sh
|
|
66
|
+
npx andesine --base-url http://localhost:3333 --workspace ws_... extensions dev
|
|
67
|
+
npx andesine extensions test-event content entry.created
|
|
68
|
+
npx andesine extensions dev --remove
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
`extensions dev` runs the extension on a local instance for the signed-in member only. It
|
|
72
|
+
needs `andesine auth login` against that instance (API keys cannot develop extensions), a
|
|
73
|
+
selected workspace, and `EXTENSIONS_DEVELOPMENT_ENABLED=true` on the local backend; it refuses
|
|
74
|
+
other hosts than `localhost`, `127.0.0.1`, `[::1]`, `*.localhost`, `*.local`, and `*.test`.
|
|
75
|
+
It creates a development key pair in `.andesine/keys/development.json`, uploads only its
|
|
76
|
+
public key with each build, and writes the private key and the instance URL to the backend's
|
|
77
|
+
environment file (`--env-file`, default `.env`). `--backend <url>` uses a local backend URL
|
|
78
|
+
in place of the manifest's, so the manifest can keep its HTTPS deployment URL. Each change rebuilds and reloads the
|
|
79
|
+
extension; a failed build waits for the next change. A build that asks for more permissions
|
|
80
|
+
waits for approval in Settings → Extensions. Ctrl+C stops the extension and keeps its
|
|
81
|
+
configuration and storage. `extensions test-event <webhook> <type>` sends a sample event to a
|
|
82
|
+
webhook and reports the first attempt; `extensions dev --remove` uninstalls the development
|
|
83
|
+
extension and deletes its state.
|
|
84
|
+
|
|
85
|
+
### Registry
|
|
86
|
+
|
|
87
|
+
```sh
|
|
88
|
+
npx andesine extensions registry check --published <site checkout>
|
|
89
|
+
npx andesine extensions registry build --published <site checkout> --site-url https://extensions.andesine.app
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
For the CI of an extension registry repository (projects under `extensions/<scope>/<name>`,
|
|
93
|
+
each with `andesine.registry.json` for the publisher, and `registry/revocations.json`).
|
|
94
|
+
`registry check` validates every project with the instance rules: manifests, keys (published
|
|
95
|
+
keys never change, revoked keys stay revoked), version order, published versions that cannot
|
|
96
|
+
change and must rebuild to the same styles, revocations, and no removed extensions.
|
|
97
|
+
`registry build` runs the check, writes each new version's files and `version.json` next to the
|
|
98
|
+
published ones without overwriting them, and writes `index.json` last. Dependencies of each
|
|
99
|
+
project must be installed.
|
|
100
|
+
|
|
24
101
|
## Project configuration
|
|
25
102
|
|
|
26
103
|
Run `andesine init` for guided setup. It uses Clack prompts and progress indicators
|
|
@@ -45,9 +122,10 @@ changed by flags. `--snapshot snp_…` selects a fixed snapshot instead of a cha
|
|
|
45
122
|
Use `--include-entry-ids`, `--include-entry-paths`, and `--include-tree` to opt into
|
|
46
123
|
additional types, or their `--no-…` forms to remove existing selections.
|
|
47
124
|
|
|
48
|
-
The collection picker offers IDs for rename stability
|
|
125
|
+
The collection picker offers IDs for rename stability, name paths, and slug paths.
|
|
49
126
|
`--collection` accepts one or more IDs or decoded paths, including collection-ID
|
|
50
|
-
anchors.
|
|
127
|
+
anchors. Use `--collection-slug-path /docs` for derived URL paths; it can be
|
|
128
|
+
combined with `--collection`. The API validates them against the selected source. `--all-collections`
|
|
51
129
|
clears an existing selection. Empty collection selections mean all accessible
|
|
52
130
|
collections, including collections added later.
|
|
53
131
|
|
|
@@ -103,7 +181,8 @@ rejected. Trailing slashes are removed.
|
|
|
103
181
|
The default type source is the `published` channel. Use
|
|
104
182
|
`{ "kind": "published", "snapshotID": "snp_example" }` for a fixed snapshot, or
|
|
105
183
|
`{ "kind": "current" }` for current schemas. Channel and snapshot are exclusive.
|
|
106
|
-
Collection selectors are IDs
|
|
184
|
+
Collection selectors are IDs, name paths, or `{ "collectionSlugPath": "/docs" }`
|
|
185
|
+
objects, resolved by the API in the generation
|
|
107
186
|
step. An omitted or empty collection list selects all accessible collections.
|
|
108
187
|
Entry IDs, entry paths, and tree types are off by default.
|
|
109
188
|
|
|
@@ -218,12 +297,14 @@ andesine api --help
|
|
|
218
297
|
andesine api content get-tree --help
|
|
219
298
|
andesine api entries create --schema
|
|
220
299
|
andesine api content get-tree --channel published
|
|
221
|
-
andesine api content get --path /
|
|
300
|
+
andesine api content get --slug-path /docs/introduction --channel published --full
|
|
222
301
|
andesine api content list-entries --channel published --paginate
|
|
223
302
|
andesine api search published --input @search.json --semantic false
|
|
224
303
|
andesine api search ask-published-stream --input @question.json --format text
|
|
225
304
|
andesine api assets upload --asset-id ast_example --file ./image.png
|
|
226
305
|
andesine api type-metadata get-published --collections '["/Tutorials"]'
|
|
306
|
+
andesine api webhooks list
|
|
307
|
+
andesine api webhooks send-test --help
|
|
227
308
|
```
|
|
228
309
|
|
|
229
310
|
Pass simple values as flags, or supply an API input object through `--input @file`
|
|
@@ -278,7 +359,7 @@ type without warnings. These API commands return metadata only; use
|
|
|
278
359
|
andesine types generate
|
|
279
360
|
andesine types generate --check
|
|
280
361
|
andesine types generate --watch
|
|
281
|
-
andesine types generate --source current --collection /
|
|
362
|
+
andesine types generate --source current --collection-slug-path /tutorials
|
|
282
363
|
andesine types generate --snapshot snp_example --include-entry-paths
|
|
283
364
|
andesine init --generate
|
|
284
365
|
```
|
|
@@ -333,6 +414,10 @@ allowed block kinds. Custom element names and properties remain general because
|
|
|
333
414
|
schemas do not define them. Defaults are not treated as value constraints.
|
|
334
415
|
Empty and schema-free collections use general content types without warnings.
|
|
335
416
|
|
|
417
|
+
`--include-entry-paths` emits both name-path and slug-path bindings, plus named
|
|
418
|
+
`EntryPath` and `EntrySlugPath` unions. Collection and tree bindings include slug
|
|
419
|
+
paths automatically.
|
|
420
|
+
|
|
336
421
|
Entry ID bindings, entry path bindings, and ordered tree types are separate
|
|
337
422
|
opt-ins. Tree exports include their entry identities. Published trees narrow
|
|
338
423
|
`content.getTree()`; current trees describe the metadata's child-ID lists only.
|
|
@@ -354,9 +439,9 @@ values, content bodies, or timestamps.
|
|
|
354
439
|
## Development
|
|
355
440
|
|
|
356
441
|
```sh
|
|
357
|
-
pnpm
|
|
358
|
-
pnpm
|
|
359
|
-
pnpm --filter
|
|
442
|
+
pnpm exec turbo run typecheck --filter=andesine
|
|
443
|
+
pnpm api:generate
|
|
444
|
+
pnpm build --filter=andesine
|
|
360
445
|
node packages/public/cli/dist/cli.js --help
|
|
361
446
|
```
|
|
362
447
|
|