@stacksjs/defaults 0.75.116 → 0.75.118

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.
@@ -94,7 +94,7 @@ Browser runtime bindings are documented separately in `stacks-auto-imports`.
94
94
  | `@stacksjs/types` | [`stacks-types`](../stacks-types/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/types/src/index.ts) | 2 |
95
95
  | `@stacksjs/ui` | [`stacks-ui`](../stacks-ui/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/ui/src/index.ts) | 5 |
96
96
  | `@stacksjs/utils` | [`stacks-utils`](../stacks-utils/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/utils/src/index.ts) | 15 |
97
- | `@stacksjs/validation` | [`stacks-validation`](../stacks-validation/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/validation/src/index.ts) | 16 |
97
+ | `@stacksjs/validation` | [`stacks-validation`](../stacks-validation/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/validation/src/index.ts) | 17 |
98
98
  | `@stacksjs/video` | [`stacks-video`](../stacks-video/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/video/src/index.ts) | 3 |
99
99
  | `@stacksjs/whois` | [`stacks-whois`](../stacks-whois/SKILL.md) | [entrypoint](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/whois/src/index.ts) | 4 |
100
100
 
@@ -907,7 +907,7 @@ Declared runtime exports: `applyConditionals`, `isArray`, `isBoolean`, `isFuncti
907
907
 
908
908
  Local source modules: [src/input.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/validation/src/input.ts), [src/reporter.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/validation/src/reporter.ts), [src/schema.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/validation/src/schema.ts), [src/validator.ts](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/validation/src/validator.ts).
909
909
 
910
- Evidence directory: [16 retained tests](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/validation/tests). These files are evidence pointers, not a claim that all tests were run for this catalog.
910
+ Evidence directory: [17 retained tests](https://github.com/stacksjs/stacks/blob/main/storage/framework/core/validation/tests). These files are evidence pointers, not a claim that all tests were run for this catalog.
911
911
 
912
912
  ### @stacksjs/video
913
913
 
@@ -195,6 +195,19 @@ For account-persisted initial UI use `keptState` or `cachedQuery`, establish
195
195
  sign-out. Use `clearServerData(key?)` after mutations invalidate hydration
196
196
  data. Ordinary localStorage is a different persistence boundary.
197
197
 
198
+ ### Live API state and offline caching
199
+
200
+ An enabled offline worker may answer API reads from its saved copy while it
201
+ refreshes in the background. For live job progress, connection status and
202
+ other reads whose stale answer could end a running operation, use
203
+ `fetch(url, { cache: 'no-store' })` and return
204
+ `Cache-Control: private, no-store` from the endpoint. STX >= 0.2.428 forwards
205
+ no-store requests directly to the network without reading, writing or falling
206
+ back to its offline cache; no-store responses also remove earlier saved copies.
207
+ A failed network read must remain a failed read, rather than appearing to
208
+ confirm that a background operation finished. Keep ordinary offline-capable
209
+ calendar and workout reads on their configured cache strategy.
210
+
198
211
  ## STX capability discovery
199
212
 
200
213
  ### Core
@@ -13,6 +13,14 @@ allowed-tools: Read Edit Write Bash Grep Glob
13
13
  input order. Invalid entries reject the whole list; optional empty lists require
14
14
  an explicit zero minimum. Use it for channel, role and capability selections.
15
15
 
16
+ `parseObjectInput(value, field)` accepts plain JSON records, including null
17
+ prototype records, and rejects arrays and class instances. `parseArrayInput`
18
+ validates an actual array and its length (`minItems = 0`, `maxItems = 100`).
19
+ `parsePositiveIdListInput(value, field, minItems = 1, maxItems = 100)` validates
20
+ every resource ID and returns unique IDs in input order. Bounds apply before
21
+ deduplication; no malformed entry is silently removed. These dependency-free
22
+ helpers are available from `@stacksjs/validation/input` and the root export.
23
+
16
24
  ## Key Paths
17
25
  - Core package: `storage/framework/core/validation/src/`
18
26
  - Package: `@stacksjs/validation`
@@ -2,7 +2,7 @@
2
2
  "publisher": "Stacks",
3
3
  "name": "vscode-stacks",
4
4
  "displayName": "Stacks",
5
- "version": "0.75.116",
5
+ "version": "0.75.118",
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.116",
5
+ "version": "0.75.118",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/stacksjs/stacks.git",
@@ -55,7 +55,7 @@
55
55
  "dependencies": {
56
56
  "@iconify-json/f7": "^1.2.2",
57
57
  "@iconify-json/hugeicons": "^1.2.35",
58
- "@stacksjs/mobile": "^0.75.116",
58
+ "@stacksjs/mobile": "^0.75.118",
59
59
  "@stacksjs/sanitizer": "^0.2.422",
60
60
  "@xterm/addon-fit": "^0.11.0",
61
61
  "@xterm/xterm": "^6.0.0",
@@ -263,7 +263,8 @@ describe('Native components feel native', () => {
263
263
  // is-open follows `shown`, which present() sets only after the lifted
264
264
  // sheet's closed style is worked out in the body.
265
265
  expect(sheet).toContain("const sheetClass = derived(() => `${shown() ? 'is-open' : ''}")
266
- expect(sheet).toContain('getComputedStyle(sheetPanel).transform')
266
+ expect(sheet).toContain('sheetPanel.getBoundingClientRect()')
267
+ expect(sheet.indexOf('sheetPanel.getBoundingClientRect()')).toBeLessThan(sheet.indexOf('shown.set(true)'))
267
268
  expect(sheet.indexOf('putBack ??= liftToBody(element)')).toBeLessThan(sheet.indexOf('shown.set(true)'))
268
269
  })
269
270