@stacksjs/defaults 0.75.336 → 0.75.337
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.
|
@@ -577,6 +577,8 @@ buddy upgrade # upgrade Stacks framework (alias: update)
|
|
|
577
577
|
--canary # upgrade to canary build
|
|
578
578
|
--stable # switch to stable release
|
|
579
579
|
-f/--force # force re-download
|
|
580
|
+
--dry-run # preview; marks any (downgrade) a real run refuses
|
|
581
|
+
--allow-downgrade # accept a release older than the app's own pins
|
|
580
582
|
buddy upgrade:all # upgrade framework + dependencies + Bun + binary
|
|
581
583
|
buddy upgrade:dependencies # upgrade dependencies (alias: upgrade:deps)
|
|
582
584
|
buddy upgrade:bun # upgrade Bun runtime
|
|
@@ -513,15 +513,20 @@ Receipts acknowledge only messages through the id actually displayed.
|
|
|
513
513
|
`send(id, body, retryKey, attachments?)` records files the application has
|
|
514
514
|
already stored. The trait keeps a reference, never bytes: `file` is the
|
|
515
515
|
application's own name for the upload (a disk path, a bucket key, an id), and
|
|
516
|
-
`type`, `size`, `width` and `height` are optional.
|
|
517
|
-
|
|
518
|
-
|
|
516
|
+
`type`, `name`, `size`, `width` and `height` are optional. `name` is what the
|
|
517
|
+
sender called the file (`Week 42 plan.pdf`): `file` is an unguessable stored
|
|
518
|
+
name, so for a document `name` is the only thing that tells the recipient what
|
|
519
|
+
they were sent. Resolving and authorizing the file stays with the application,
|
|
520
|
+
so a disk, a bucket and a CDN look the same from here.
|
|
519
521
|
|
|
520
522
|
```ts
|
|
521
523
|
import type { DirectMessageAttachment } from '@stacksjs/chat'
|
|
522
524
|
|
|
523
525
|
const photo: DirectMessageAttachment = { file: upload.key, type: 'image/jpeg', size: upload.size, width: 1200, height: 900 }
|
|
524
526
|
await messenger.send(thread.id, '', retryKey, [photo])
|
|
527
|
+
|
|
528
|
+
const plan: DirectMessageAttachment = { file: upload.key, type: 'application/pdf', name: upload.originalName, size: upload.size }
|
|
529
|
+
await messenger.send(thread.id, '', retryKey, [plan])
|
|
525
530
|
```
|
|
526
531
|
|
|
527
532
|
- A photo with no caption is a message: `body` may be empty when there is at
|
|
@@ -531,8 +536,10 @@ await messenger.send(thread.id, '', retryKey, [photo])
|
|
|
531
536
|
- A retry key covers the attachments too. The same key with a different file
|
|
532
537
|
is a different message and returns 409, rather than silently keeping the
|
|
533
538
|
first photo.
|
|
534
|
-
- At most 10 attachments, 4000 characters once serialised.
|
|
535
|
-
|
|
539
|
+
- At most 10 attachments, 4000 characters once serialised. `type` and `name`
|
|
540
|
+
are 1 to 255 characters. A key the trait does not know is refused with a 422
|
|
541
|
+
that names it, rather than dropped, so the column cannot become a second
|
|
542
|
+
message body and nothing a caller sent goes missing silently.
|
|
536
543
|
- The column is `chat_messages.attachments`, added by `buddy migrate` to a
|
|
537
544
|
database created before it. A database that has not migrated yet still sends
|
|
538
545
|
text.
|
|
@@ -194,6 +194,20 @@ autoLoadEnv() // .env, .env.local, .env.<effectiveEnv>, .env.<effectiveEnv>.loc
|
|
|
194
194
|
envPlugin()
|
|
195
195
|
```
|
|
196
196
|
|
|
197
|
+
To keep a key out of a child process, withhold it rather than deleting it.
|
|
198
|
+
`delete process.env.X` before a spawn does nothing useful: Bun loads `.env`
|
|
199
|
+
natively in the child and `loadEnv` fills anything absent, so the child reads
|
|
200
|
+
the value straight back from disk (#3028). Pass `withholdEnv(keys)` into the
|
|
201
|
+
child's `env` (it sets `STACKS_ENV_WITHHOLD`). `loadEnv` then skips those keys
|
|
202
|
+
in every file and removes any copy Bun loaded natively; a child that runs no
|
|
203
|
+
Stacks preload calls `applyWithheldEnv()` before reading config.
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
import { withholdEnv } from '@stacksjs/env'
|
|
207
|
+
|
|
208
|
+
await runAction(Action.BuildIos, { env: withholdEnv(['MOBILE_URL']) })
|
|
209
|
+
```
|
|
210
|
+
|
|
197
211
|
## .env Parser
|
|
198
212
|
|
|
199
213
|
```typescript
|
|
@@ -206,6 +206,12 @@ While an app is in TestFlight before its first public release, keep the iOS
|
|
|
206
206
|
marketing version at `1.0.0` and run `buddy release:ios --bump build`. Each
|
|
207
207
|
upload needs a new build number, not a patch to the marketing version.
|
|
208
208
|
|
|
209
|
+
A release never reads dev-shell overrides. `release:ios` withholds
|
|
210
|
+
`MOBILE_URL`, `IOS_APP_VERSION` and `IOS_BUILD_NUMBER` from its build child
|
|
211
|
+
(`withholdEnv` from `@stacksjs/env`, since deleting them from `process.env` is
|
|
212
|
+
undone by the child's own `.env` load), and refuses a generated
|
|
213
|
+
`devServerURL` on a local address before committing or tagging (#3028).
|
|
214
|
+
|
|
209
215
|
Each `release:ios` also creates the tag's GitHub release (the TestFlight build
|
|
210
216
|
number and the changes since the previous tag), using `GITHUB_TOKEN`,
|
|
211
217
|
`GH_TOKEN`, the GitHub CLI's token or the git credential. When that fails the
|
|
@@ -11,7 +11,7 @@ Browser runtime bindings are documented separately in `stacks-auto-imports`.
|
|
|
11
11
|
| Package | Task guidance | Source entry | Retained tests |
|
|
12
12
|
|---|---|---|---|
|
|
13
13
|
| `@stacksjs/action-runner` | [`stacks-actions`](../stacks-actions/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/action-runner/src/index.ts) | 1 |
|
|
14
|
-
| `@stacksjs/actions` | [`stacks-actions`](../stacks-actions/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/index.ts) |
|
|
14
|
+
| `@stacksjs/actions` | [`stacks-actions`](../stacks-actions/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/index.ts) | 90 |
|
|
15
15
|
| `@stacksjs/ai` | [`stacks-ai`](../stacks-ai/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/ai/src/index.ts) | 17 |
|
|
16
16
|
| `@stacksjs/alias` | [`stacks-alias`](../stacks-alias/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/alias/src/index.ts) | 1 |
|
|
17
17
|
| `@stacksjs/analytics` | [`stacks-analytics`](../stacks-analytics/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/analytics/src/index.ts) | 6 |
|
|
@@ -45,7 +45,7 @@ Browser runtime bindings are documented separately in `stacks-auto-imports`.
|
|
|
45
45
|
| `@stacksjs/docs` | [`stacks-docs`](../stacks-docs/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/docs/src/index.ts) | 2 |
|
|
46
46
|
| `@stacksjs/email` | [`stacks-email`](../stacks-email/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/email/src/index.ts) | 23 |
|
|
47
47
|
| `@stacksjs/enums` | [`stacks-enums`](../stacks-enums/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/enums/src/index.ts) | 3 |
|
|
48
|
-
| `@stacksjs/env` | [`stacks-env`](../stacks-env/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/index.ts) |
|
|
48
|
+
| `@stacksjs/env` | [`stacks-env`](../stacks-env/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/index.ts) | 31 |
|
|
49
49
|
| `@stacksjs/error-handling` | [`stacks-error-handling`](../stacks-error-handling/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/error-handling/src/index.ts) | 10 |
|
|
50
50
|
| `@stacksjs/events` | [`stacks-events`](../stacks-events/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/events/src/index.ts) | 12 |
|
|
51
51
|
| `@stacksjs/faker` | [`stacks-faker`](../stacks-faker/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/faker/src/index.ts) | 1 |
|
|
@@ -119,7 +119,7 @@ Declared runtime exports: `BlogAdminError`, `DEFAULT_IOS_DEPENDENCIES`, `DEFAULT
|
|
|
119
119
|
|
|
120
120
|
Local source modules: [src/action.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/action.ts), [src/add.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/add.ts), [src/blog-admin.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/blog-admin.ts), [src/build/ios-toolchain.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/build/ios-toolchain.ts), [src/commit.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/commit.ts), [src/dev/index.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/dev/index.ts), [src/discover-packages.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/discover-packages.ts), [src/generate/index.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/generate/index.ts), [src/github-release.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/github-release.ts), [src/helpers/index.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/helpers/index.ts), [src/library/index.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/library/index.ts), [src/lint/lint.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/lint/lint.ts), [src/lint/stx-gate.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/lint/stx-gate.ts), [src/make-command.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/make-command.ts), [src/make-job.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/make-job.ts), [src/make-policy.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/make-policy.ts), [src/make-resource.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/make-resource.ts), [src/make.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/make.ts), [src/publication-preflight.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/publication-preflight.ts), [src/release-evidence.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/release-evidence.ts), [src/scaffold-crud.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/scaffold-crud.ts), [src/setup/index.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/setup/index.ts), [src/stacks.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/stacks.ts), [src/stx-source.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/stx-source.ts), [src/upgrade/package-project.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/upgrade/package-project.ts), [src/upgrade/route-actions.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/src/upgrade/route-actions.ts).
|
|
121
121
|
|
|
122
|
-
Evidence directory: [
|
|
122
|
+
Evidence directory: [90 retained tests](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/actions/tests). These files are evidence pointers, not a claim that all tests were run for this catalog.
|
|
123
123
|
|
|
124
124
|
### @stacksjs/ai
|
|
125
125
|
|
|
@@ -443,9 +443,9 @@ Guidance: [`stacks-env`](../stacks-env/SKILL.md). Source: [storage/framework/cor
|
|
|
443
443
|
|
|
444
444
|
Read the entrypoint and package export map for re-exported or type-only surfaces.
|
|
445
445
|
|
|
446
|
-
Local source modules: [src/cli.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/cli.ts), [src/crypto.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/crypto.ts), [src/deployment.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/deployment.ts), [src/integrations.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/integrations.ts), [src/numeric-keys.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/numeric-keys.ts), [src/parser.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/parser.ts), [src/plaintext.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/plaintext.ts), [src/plugin.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/plugin.ts), [src/runtime.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/runtime.ts), [src/tenants.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/tenants.ts), [src/types.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/types.ts), [src/utils.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/utils.ts).
|
|
446
|
+
Local source modules: [src/cli.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/cli.ts), [src/crypto.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/crypto.ts), [src/deployment.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/deployment.ts), [src/integrations.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/integrations.ts), [src/numeric-keys.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/numeric-keys.ts), [src/parser.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/parser.ts), [src/plaintext.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/plaintext.ts), [src/plugin.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/plugin.ts), [src/runtime.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/runtime.ts), [src/tenants.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/tenants.ts), [src/types.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/types.ts), [src/utils.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/utils.ts), [src/withheld.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/src/withheld.ts).
|
|
447
447
|
|
|
448
|
-
Evidence directory: [
|
|
448
|
+
Evidence directory: [31 retained tests](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/env/tests). These files are evidence pointers, not a claim that all tests were run for this catalog.
|
|
449
449
|
|
|
450
450
|
### @stacksjs/error-handling
|
|
451
451
|
|
package/ide/vscode/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"publisher": "Stacks",
|
|
3
3
|
"name": "vscode-stacks",
|
|
4
4
|
"displayName": "Stacks",
|
|
5
|
-
"version": "0.75.
|
|
5
|
+
"version": "0.75.337",
|
|
6
6
|
"description": "Stacks, built into VS Code: stx templates, pickier linting and formatting, encrypted env files, the dev server preview and every buddy command. No other extensions required.",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"funding": "https://github.com/sponsors/chrisbbreuer",
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@stacksjs/defaults",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"sideEffects": false,
|
|
5
|
-
"version": "0.75.
|
|
5
|
+
"version": "0.75.337",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "git+https://github.com/stacksjs/stacks.git",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@iconify-json/f7": "^1.2.2",
|
|
47
47
|
"@iconify-json/hugeicons": "^1.2.35",
|
|
48
|
-
"@stacksjs/mobile": "0.75.
|
|
48
|
+
"@stacksjs/mobile": "0.75.337",
|
|
49
49
|
"@stacksjs/sanitizer": "0.2.736",
|
|
50
50
|
"@stacksjs/stx": "0.2.736",
|
|
51
51
|
"@xterm/addon-fit": "^0.11.0",
|