@ham2k/extension-sdk 0.5.3 → 0.5.4

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/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- // @ham2k/extension-sdk 0.5.3
1
+ // @ham2k/extension-sdk 0.5.4
2
2
  /** Experimental v1 scene contract. All coordinates are in the scene's viewBox. */
3
3
  export interface SvgScene {
4
4
  version: 1;
@@ -235,6 +235,7 @@ export interface HookContext {
235
235
  }
236
236
  export interface HistoryForCallOptions {
237
237
  refType?: string | string[];
238
+ refPrefix?: string | string[];
238
239
  operation?: string | string[];
239
240
  excludeOperation?: string | string[];
240
241
  fromDate?: string;
@@ -412,6 +412,36 @@ and the offer returns next launch. Twins that did arrive stay on disk, unused
412
412
  until an upgrade completes — the built-in each one supersedes is what runs
413
413
  meanwhile.
414
414
 
415
+ A bundle the engine will not evaluate takes the whole runtime with it, so the
416
+ upgrade puts that one aside — the boot names the bundle it died on — and
417
+ restarts once more. What boots then is the upgrade minus that extension, named
418
+ in the dialog in a sentence of its own. Refused rather than
419
+ withdrawn: the panel still lists it, badged, because the row is where an
420
+ operator sees that something they installed is doing nothing, and updating it
421
+ there is what lifts the refusal. Keyed by the VERSION that failed, so a fixed
422
+ release arrives as an ordinary update and clears it. Only an INSTALLED
423
+ extension is ever put aside; a built-in that
424
+ will not evaluate is a defect in the app, and skipping it would ship an
425
+ install quietly missing part of itself.
426
+
427
+ A refusal is kept even when putting the bundle aside did not get a runtime
428
+ back: it still will not evaluate, and an extension with no built-in behind it
429
+ is in the reverted set too, so re-admitting it there would kill the boot that
430
+ was about to give the operator everything back. Every dialog, and the notice
431
+ that stands in for one, names what stayed out — except a downloaded copy the
432
+ revert superseded, whose built-in is running again. Uninstalling clears the
433
+ record, so a reinstall of the same bytes gets its chance.
434
+
435
+ A refused extension is treated like a revoked one in everything else: it
436
+ keeps its switch, and its downloaded data expires on the same clock as any
437
+ extension the app is not loading.
438
+
439
+ What this does NOT cover is a failure that names no bundle. Only a bundle
440
+ that fails while it is being EVALUATED names itself: a kernel that will not
441
+ load, or an extension that throws while ACTIVATING, takes the generation down
442
+ under a name that is not a key. Those revert the whole upgrade as before, and
443
+ it is offered again at the next launch.
444
+
415
445
  The upgrade restarts the extension runtime, which takes the footer items of
416
446
  the generation going down with it: a data file's import raises an error rather
417
447
  than returning into a torn-down runtime, so its progress line is cleared and
package/docs/hooks.md CHANGED
@@ -64,7 +64,10 @@ hook method receives `(args, ctx)` where `ctx: HookContext` is:
64
64
  `options` (`HistoryForCallOptions` in `types.ts`) narrow the history
65
65
  before it is ordered and limited, so `{ refType: 'cwt' }` finds last
66
66
  month's CWT exchange behind a week of POTA contacts. The filters are
67
- `refType` (a ref in the QSO's own `refs`), `operation`/`excludeOperation`,
67
+ `refType` (a ref in the QSO's own `refs`), `refPrefix` (a ref whose `ref`
68
+ starts with it, ignoring ASCII case; with `refType`, the same ref must pass
69
+ both, so `{ refType: 'potaActivation', refPrefix: 'FR-' }` finds French
70
+ parks), `operation`/`excludeOperation`,
68
71
  `band`/`excludeBand`, `mode`/`excludeMode` (`SSB` also matches its
69
72
  sidebands, and `CW`/`PHONE`/`DATA` match their whole family), whole UTC
70
73
  days through `fromDate`/`toDate` or `fromDateMillis`/`toDateMillis`, and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ham2k/extension-sdk",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "Write extensions for the Ham2K Logger: typed hook contracts and the host API",
5
5
  "keywords": [
6
6
  "ham2k",