@camstack/addon-pipeline 1.2.363 → 1.2.365
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/audio-analyzer/index.js +3 -3
- package/dist/audio-analyzer/index.mjs +3 -3
- package/dist/{custom-model-catalog-nx2TXAGS.js → custom-model-catalog-C34VqcPo.js} +2 -2
- package/dist/{custom-model-catalog-DHFPSu0E.mjs → custom-model-catalog-CtpK3FKL.mjs} +2 -2
- package/dist/detection-pipeline/index.js +4 -4
- package/dist/detection-pipeline/index.mjs +4 -4
- package/dist/{dist-BX9VTm12.mjs → dist-BshC0NZR.mjs} +411 -291
- package/dist/{dist-CGOb--t-.js → dist-i4kS_3O7.js} +411 -291
- package/dist/{model-catalogs-DHV48cdY.js → model-catalogs-Cy7mZRWh.js} +1 -1
- package/dist/{model-catalogs-DNL4ydAg.mjs → model-catalogs-DNx5ATgm.mjs} +1 -1
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-C8bbmV3c.mjs → node-Dqmrb990.mjs} +1 -1
- package/dist/{node-UBMRK8SK.js → node-TzgGsCvW.js} +1 -1
- package/dist/pipeline-runner/index.js +3 -3
- package/dist/pipeline-runner/index.mjs +3 -3
- package/dist/{process-memory-1BwIq2Ks.js → process-memory-DLCPFTGC.js} +1 -1
- package/dist/{process-memory-BHG2uCeq.mjs → process-memory-DyfrbFY4.mjs} +1 -1
- package/dist/recorder/index.js +2 -2
- package/dist/recorder/index.mjs +2 -2
- package/dist/{segment-demux-js-PkDP-xQg.js → segment-demux-js-C9AYdKkD.js} +1 -1
- package/dist/{segment-demux-js-BhnT__dA.mjs → segment-demux-js-COoPqx93.mjs} +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-vdmrukBk.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DVgnss_e.mjs} +2 -2
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DWI1BCfa.mjs +26 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-BUBmyDde.mjs +26 -0
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-D_DBY5wu.mjs → hostInit-ZvA7Cl_1.mjs} +2 -2
- package/dist/stream-broker/index.js +513 -174
- package/dist/stream-broker/index.mjs +513 -174
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +4 -2
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-ScPS8ZWM.mjs +0 -26
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Cq5NPjBX.mjs +0 -26
|
@@ -15624,6 +15624,329 @@ method(object({
|
|
|
15624
15624
|
password: string()
|
|
15625
15625
|
}), AuthResultSchema.nullable(), { kind: "mutation" }), method(object({ state: string() }), string()), method(record(string(), string()), AuthResultSchema, { kind: "mutation" }), method(object({ token: string() }), AuthResultSchema.nullable());
|
|
15626
15626
|
/**
|
|
15627
|
+
* Query filter for settings-store collections.
|
|
15628
|
+
*/
|
|
15629
|
+
var QueryFilterSchema = object({
|
|
15630
|
+
where: record(string(), unknown()).optional(),
|
|
15631
|
+
whereIn: record(string(), array(unknown())).optional(),
|
|
15632
|
+
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
15633
|
+
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
15634
|
+
whereNot: record(string(), unknown()).optional(),
|
|
15635
|
+
/** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
|
|
15636
|
+
* empty list excludes nothing. See `QueryFilter.whereNotIn`. */
|
|
15637
|
+
whereNotIn: record(string(), array(unknown())).optional(),
|
|
15638
|
+
orderBy: object({
|
|
15639
|
+
field: string(),
|
|
15640
|
+
direction: _enum(["asc", "desc"])
|
|
15641
|
+
}).optional(),
|
|
15642
|
+
limit: number().optional(),
|
|
15643
|
+
offset: number().optional()
|
|
15644
|
+
});
|
|
15645
|
+
/**
|
|
15646
|
+
* The predicate half of a filter, for BULK MUTATIONS.
|
|
15647
|
+
*
|
|
15648
|
+
* Deliberately not `QueryFilterSchema`: `orderBy` / `limit` / `offset` have no
|
|
15649
|
+
* meaning for a statement that rewrites a set, and accepting them would invite
|
|
15650
|
+
* a caller to believe `limit` bounds the damage. Every field is optional here
|
|
15651
|
+
* only so the shape stays composable — the implementation REJECTS a filter
|
|
15652
|
+
* that compiles to no predicate, because that is the whole collection.
|
|
15653
|
+
*/
|
|
15654
|
+
var MutationFilterSchema = object({
|
|
15655
|
+
where: record(string(), unknown()).optional(),
|
|
15656
|
+
whereIn: record(string(), array(unknown())).optional(),
|
|
15657
|
+
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
15658
|
+
whereNot: record(string(), unknown()).optional(),
|
|
15659
|
+
whereNotIn: record(string(), array(unknown())).optional()
|
|
15660
|
+
});
|
|
15661
|
+
/**
|
|
15662
|
+
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
15663
|
+
*
|
|
15664
|
+
* `as` names the slot in the result, so the SAME column may be asked twice with
|
|
15665
|
+
* two operations (`MIN(startMs)` and `MAX(startMs)` in one round trip) — which
|
|
15666
|
+
* a `Record<column, op>` shape could not express.
|
|
15667
|
+
*/
|
|
15668
|
+
var AggregateFieldSchema = object({
|
|
15669
|
+
/** Result key. */
|
|
15670
|
+
as: string().min(1),
|
|
15671
|
+
/** Column to aggregate. Must be a real column of a declared collection. */
|
|
15672
|
+
field: string().min(1),
|
|
15673
|
+
op: _enum([
|
|
15674
|
+
"sum",
|
|
15675
|
+
"min",
|
|
15676
|
+
"max"
|
|
15677
|
+
])
|
|
15678
|
+
});
|
|
15679
|
+
/**
|
|
15680
|
+
* `COUNT(*)` plus one number per requested field.
|
|
15681
|
+
*
|
|
15682
|
+
* `null` means NO ROW MATCHED, never zero: a `SUM` over an empty set and a sum
|
|
15683
|
+
* that really is 0 are different facts, and an accounting caller that renders
|
|
15684
|
+
* "0 bytes, oldest = 0" for "nothing here" reports a lie about a disk.
|
|
15685
|
+
*/
|
|
15686
|
+
var AggregateResultSchema = object({
|
|
15687
|
+
count: number().int(),
|
|
15688
|
+
values: record(string(), number().nullable())
|
|
15689
|
+
});
|
|
15690
|
+
/** A single stored record: `{ id, data }`. */
|
|
15691
|
+
var SettingsRecordSchema = object({
|
|
15692
|
+
id: string(),
|
|
15693
|
+
data: record(string(), unknown())
|
|
15694
|
+
});
|
|
15695
|
+
/**
|
|
15696
|
+
* One record of a BULK insert — {@link SettingsRecordSchema} with the id made
|
|
15697
|
+
* optional.
|
|
15698
|
+
*
|
|
15699
|
+
* A separate schema rather than loosening the shared one: every other method
|
|
15700
|
+
* on this cap addresses a row BY its id, and making that field optional
|
|
15701
|
+
* everywhere would turn a forgotten key into a silently generated one on
|
|
15702
|
+
* `update` and `delete` as well.
|
|
15703
|
+
*/
|
|
15704
|
+
var BulkRecordSchema = object({
|
|
15705
|
+
id: string().optional(),
|
|
15706
|
+
data: record(string(), unknown())
|
|
15707
|
+
});
|
|
15708
|
+
/**
|
|
15709
|
+
* The database FILES one `sqlite-settings` engine process owns (D851).
|
|
15710
|
+
* Closed on purpose: a file is a thing the engine opens, backs up and gives a
|
|
15711
|
+
* serving thread, so a new one is a code change, never a string a caller
|
|
15712
|
+
* invents. `settings` is `camstack.db` and the default for every collection
|
|
15713
|
+
* that names no file.
|
|
15714
|
+
*/
|
|
15715
|
+
var DataStoreDatabaseSchema = _enum([
|
|
15716
|
+
"settings",
|
|
15717
|
+
"events",
|
|
15718
|
+
"history"
|
|
15719
|
+
]);
|
|
15720
|
+
DataStoreDatabaseSchema.options;
|
|
15721
|
+
/**
|
|
15722
|
+
* One write inside a {@link settingsStoreCapability.methods.transact} call.
|
|
15723
|
+
* The three that a "replace this set, bump that revision" write needs, plus
|
|
15724
|
+
* the batched upsert a rollup writer needs.
|
|
15725
|
+
*/
|
|
15726
|
+
var TransactOpSchema = discriminatedUnion("op", [
|
|
15727
|
+
object({
|
|
15728
|
+
op: literal("deleteWhere"),
|
|
15729
|
+
collection: string(),
|
|
15730
|
+
filter: MutationFilterSchema
|
|
15731
|
+
}),
|
|
15732
|
+
object({
|
|
15733
|
+
op: literal("insertMany"),
|
|
15734
|
+
collection: string(),
|
|
15735
|
+
records: array(BulkRecordSchema).readonly()
|
|
15736
|
+
}),
|
|
15737
|
+
object({
|
|
15738
|
+
op: literal("update"),
|
|
15739
|
+
collection: string(),
|
|
15740
|
+
id: string(),
|
|
15741
|
+
data: record(string(), unknown())
|
|
15742
|
+
}),
|
|
15743
|
+
object({
|
|
15744
|
+
op: literal("upsertMany"),
|
|
15745
|
+
collection: string(),
|
|
15746
|
+
conflict: array(string()).readonly(),
|
|
15747
|
+
records: array(BulkRecordSchema).readonly()
|
|
15748
|
+
})
|
|
15749
|
+
]);
|
|
15750
|
+
/**
|
|
15751
|
+
* The precondition of a transaction: the row `key` of `collection` must hold
|
|
15752
|
+
* `equals` in `column`, read INSIDE the transaction.
|
|
15753
|
+
*/
|
|
15754
|
+
var TransactGuardSchema = object({
|
|
15755
|
+
collection: string(),
|
|
15756
|
+
key: string(),
|
|
15757
|
+
column: string(),
|
|
15758
|
+
equals: unknown()
|
|
15759
|
+
});
|
|
15760
|
+
/**
|
|
15761
|
+
* Column declaration for a structured (SQL-backed) collection.
|
|
15762
|
+
*
|
|
15763
|
+
* Logical types — the backend translates each to the matching SQLite
|
|
15764
|
+
* storage class and handles per-type marshaling:
|
|
15765
|
+
* - `TEXT` / `INTEGER` / `REAL` — native SQLite types, pass-through
|
|
15766
|
+
* - `JSON` — TEXT under the hood; serialised on write, parsed on read
|
|
15767
|
+
* - `BOOLEAN` — INTEGER 0/1 under the hood; coerced both directions
|
|
15768
|
+
*/
|
|
15769
|
+
var CollectionColumnSchema = object({
|
|
15770
|
+
name: string(),
|
|
15771
|
+
type: _enum([
|
|
15772
|
+
"TEXT",
|
|
15773
|
+
"INTEGER",
|
|
15774
|
+
"REAL",
|
|
15775
|
+
"JSON",
|
|
15776
|
+
"BOOLEAN"
|
|
15777
|
+
]),
|
|
15778
|
+
primaryKey: boolean().optional(),
|
|
15779
|
+
notNull: boolean().optional(),
|
|
15780
|
+
unique: boolean().optional(),
|
|
15781
|
+
/**
|
|
15782
|
+
* Column DEFAULT. Required for B2: the four `ensureTable` consumers declare
|
|
15783
|
+
* columns like `enabled INTEGER NOT NULL DEFAULT 1`, and without this the
|
|
15784
|
+
* collection surface simply cannot express their existing tables — which is
|
|
15785
|
+
* why they were still on the uncapped `table*` API.
|
|
15786
|
+
*/
|
|
15787
|
+
defaultValue: union([
|
|
15788
|
+
string(),
|
|
15789
|
+
number(),
|
|
15790
|
+
boolean()
|
|
15791
|
+
]).optional()
|
|
15792
|
+
});
|
|
15793
|
+
var CollectionIndexSchema = object({
|
|
15794
|
+
name: string(),
|
|
15795
|
+
columns: array(string()).readonly(),
|
|
15796
|
+
unique: boolean().optional()
|
|
15797
|
+
});
|
|
15798
|
+
/**
|
|
15799
|
+
* The input of `declareCollection` — ONE schema for the door and for the
|
|
15800
|
+
* engine behind it, so the two surfaces cannot drift (the dispatcher forwards
|
|
15801
|
+
* the payload untouched).
|
|
15802
|
+
*
|
|
15803
|
+
* - `database` — the file the collection lives in (D851). Absent means
|
|
15804
|
+
* `settings`. A declaration naming a file other than the one the table is
|
|
15805
|
+
* already in is REFUSED by the engine, never moved.
|
|
15806
|
+
* - `primaryKey` — a COMPOSITE key, as column names. A single name is the same
|
|
15807
|
+
* as `primaryKey: true` on that column. A composite-keyed collection has no
|
|
15808
|
+
* `id`: it is written with `insertMany` / `upsertMany` / `transact` and read
|
|
15809
|
+
* with `query` / `count` / `aggregate` / `deleteWhere`; the calls that
|
|
15810
|
+
* address one row by id are refused.
|
|
15811
|
+
* - `withoutRowid` — emit `WITHOUT ROWID`. Requires a primary key.
|
|
15812
|
+
*/
|
|
15813
|
+
var DeclareCollectionInputSchema = object({
|
|
15814
|
+
namespace: string().optional(),
|
|
15815
|
+
collection: string(),
|
|
15816
|
+
columns: array(CollectionColumnSchema).readonly(),
|
|
15817
|
+
indexes: array(CollectionIndexSchema).readonly().optional(),
|
|
15818
|
+
database: DataStoreDatabaseSchema.optional(),
|
|
15819
|
+
primaryKey: array(string()).readonly().optional(),
|
|
15820
|
+
withoutRowid: boolean().optional()
|
|
15821
|
+
});
|
|
15822
|
+
method(object({
|
|
15823
|
+
namespace: string().optional(),
|
|
15824
|
+
collection: string(),
|
|
15825
|
+
key: string()
|
|
15826
|
+
}), unknown(), { auth: "admin" }), method(object({
|
|
15827
|
+
namespace: string().optional(),
|
|
15828
|
+
collection: string(),
|
|
15829
|
+
key: string(),
|
|
15830
|
+
value: unknown()
|
|
15831
|
+
}), _void(), {
|
|
15832
|
+
kind: "mutation",
|
|
15833
|
+
auth: "admin"
|
|
15834
|
+
}), method(object({
|
|
15835
|
+
namespace: string().optional(),
|
|
15836
|
+
collection: string(),
|
|
15837
|
+
filter: QueryFilterSchema.optional(),
|
|
15838
|
+
columns: array(string()).readonly().optional()
|
|
15839
|
+
}), array(SettingsRecordSchema).readonly(), { auth: "admin" }), method(object({
|
|
15840
|
+
namespace: string().optional(),
|
|
15841
|
+
collection: string(),
|
|
15842
|
+
/** Declared columns identifying the slot; must be covered by a UNIQUE
|
|
15843
|
+
* index on the collection. Never empty. */
|
|
15844
|
+
conflict: array(string()).readonly(),
|
|
15845
|
+
record: BulkRecordSchema
|
|
15846
|
+
}), object({
|
|
15847
|
+
/** The id the row HAS: assigned by SQLite on an insert, or the existing
|
|
15848
|
+
* row's own id on an update. */
|
|
15849
|
+
id: union([string(), number()]) }), {
|
|
15850
|
+
kind: "mutation",
|
|
15851
|
+
auth: "admin"
|
|
15852
|
+
}), method(object({
|
|
15853
|
+
namespace: string().optional(),
|
|
15854
|
+
collection: string(),
|
|
15855
|
+
conflict: array(string()).readonly(),
|
|
15856
|
+
records: array(BulkRecordSchema).readonly()
|
|
15857
|
+
}), object({ upserted: number().int() }), {
|
|
15858
|
+
kind: "mutation",
|
|
15859
|
+
auth: "admin"
|
|
15860
|
+
}), method(object({
|
|
15861
|
+
namespace: string().optional(),
|
|
15862
|
+
collection: string(),
|
|
15863
|
+
record: object({
|
|
15864
|
+
id: string().optional(),
|
|
15865
|
+
data: record(string(), unknown())
|
|
15866
|
+
})
|
|
15867
|
+
}), object({
|
|
15868
|
+
/**
|
|
15869
|
+
* The id the row ACTUALLY got (D473): the one supplied, the UUID minted
|
|
15870
|
+
* for an absent one, or the ROWID SQLite assigned on an `INTEGER`
|
|
15871
|
+
* primary key — which is the only place an auto key is knowable.
|
|
15872
|
+
*/
|
|
15873
|
+
id: union([string(), number()]) }), {
|
|
15874
|
+
kind: "mutation",
|
|
15875
|
+
auth: "admin"
|
|
15876
|
+
}), method(object({
|
|
15877
|
+
namespace: string().optional(),
|
|
15878
|
+
collection: string(),
|
|
15879
|
+
records: array(BulkRecordSchema).readonly()
|
|
15880
|
+
}), object({ inserted: number().int() }), {
|
|
15881
|
+
kind: "mutation",
|
|
15882
|
+
auth: "admin"
|
|
15883
|
+
}), method(object({
|
|
15884
|
+
namespace: string().optional(),
|
|
15885
|
+
guard: TransactGuardSchema.optional(),
|
|
15886
|
+
ops: array(TransactOpSchema).readonly()
|
|
15887
|
+
}), object({
|
|
15888
|
+
applied: boolean(),
|
|
15889
|
+
current: unknown().optional()
|
|
15890
|
+
}), {
|
|
15891
|
+
kind: "mutation",
|
|
15892
|
+
auth: "admin"
|
|
15893
|
+
}), method(object({
|
|
15894
|
+
namespace: string().optional(),
|
|
15895
|
+
collection: string(),
|
|
15896
|
+
id: string(),
|
|
15897
|
+
data: record(string(), unknown())
|
|
15898
|
+
}), _void(), {
|
|
15899
|
+
kind: "mutation",
|
|
15900
|
+
auth: "admin"
|
|
15901
|
+
}), method(object({
|
|
15902
|
+
namespace: string().optional(),
|
|
15903
|
+
collection: string(),
|
|
15904
|
+
key: string()
|
|
15905
|
+
}), _void(), {
|
|
15906
|
+
kind: "mutation",
|
|
15907
|
+
auth: "admin"
|
|
15908
|
+
}), method(object({
|
|
15909
|
+
namespace: string().optional(),
|
|
15910
|
+
collection: string(),
|
|
15911
|
+
filter: MutationFilterSchema
|
|
15912
|
+
}), object({ deleted: number().int() }), {
|
|
15913
|
+
kind: "mutation",
|
|
15914
|
+
auth: "admin"
|
|
15915
|
+
}), method(object({
|
|
15916
|
+
namespace: string().optional(),
|
|
15917
|
+
collection: string(),
|
|
15918
|
+
filter: MutationFilterSchema,
|
|
15919
|
+
data: record(string(), unknown())
|
|
15920
|
+
}), object({ updated: number().int() }), {
|
|
15921
|
+
kind: "mutation",
|
|
15922
|
+
auth: "admin"
|
|
15923
|
+
}), method(object({
|
|
15924
|
+
namespace: string().optional(),
|
|
15925
|
+
collection: string(),
|
|
15926
|
+
filter: QueryFilterSchema.optional()
|
|
15927
|
+
}), number(), { auth: "admin" }), method(object({
|
|
15928
|
+
namespace: string().optional(),
|
|
15929
|
+
collection: string(),
|
|
15930
|
+
fields: array(AggregateFieldSchema).readonly(),
|
|
15931
|
+
filter: QueryFilterSchema.optional()
|
|
15932
|
+
}), AggregateResultSchema, { auth: "admin" }), method(object({
|
|
15933
|
+
namespace: string().optional(),
|
|
15934
|
+
collection: string(),
|
|
15935
|
+
field: string(),
|
|
15936
|
+
bucketSize: number().int().positive(),
|
|
15937
|
+
origin: number().int(),
|
|
15938
|
+
filter: QueryFilterSchema.optional()
|
|
15939
|
+
}), array(object({
|
|
15940
|
+
bucket: number().int(),
|
|
15941
|
+
count: number().int()
|
|
15942
|
+
})).readonly(), { auth: "admin" }), method(object({
|
|
15943
|
+
namespace: string().optional(),
|
|
15944
|
+
collection: string()
|
|
15945
|
+
}), boolean(), { auth: "admin" }), method(DeclareCollectionInputSchema, _void(), {
|
|
15946
|
+
kind: "mutation",
|
|
15947
|
+
auth: "admin"
|
|
15948
|
+
});
|
|
15949
|
+
/**
|
|
15627
15950
|
* How long one snapshot may take end to end: the pinned copy of the whole
|
|
15628
15951
|
* database plus `PRAGMA integrity_check` over the copy, on the hub's slowest
|
|
15629
15952
|
* disk. ~800 MB at a pessimistic 10 MB/s is under 3 minutes; the bound is
|
|
@@ -15636,7 +15959,11 @@ var DATABASE_SNAPSHOT_TIMEOUT_MS = 30 * 6e4;
|
|
|
15636
15959
|
* database has no sidecars and is just as owned). Paths are absolute on the
|
|
15637
15960
|
* owner's host.
|
|
15638
15961
|
*/
|
|
15639
|
-
var DatabaseSnapshotTargetsSchema = object({ databases: array(object({
|
|
15962
|
+
var DatabaseSnapshotTargetsSchema = object({ databases: array(object({
|
|
15963
|
+
/** Which owned file this is — the handle `writeSnapshot` takes. */
|
|
15964
|
+
databaseId: DataStoreDatabaseSchema,
|
|
15965
|
+
livePath: string()
|
|
15966
|
+
})) });
|
|
15640
15967
|
/** One b-tree table of the snapshot and the rows it holds. */
|
|
15641
15968
|
var DatabaseSnapshotTableSchema = object({
|
|
15642
15969
|
name: string(),
|
|
@@ -15669,6 +15996,10 @@ var DatabaseSnapshotResultSchema = object({
|
|
|
15669
15996
|
/** When the pinned read transaction began (ms epoch) — the snapshot's instant. */
|
|
15670
15997
|
takenAt: number()
|
|
15671
15998
|
});
|
|
15999
|
+
/** A snapshot the owner wrote, with the file it belongs to. */
|
|
16000
|
+
var DatabaseSnapshotWrittenSchema = DatabaseSnapshotResultSchema.extend({ databaseId: DataStoreDatabaseSchema });
|
|
16001
|
+
/** Which database `writeSnapshot` copies. Required: an unstated ask is not guessed. */
|
|
16002
|
+
var DatabaseSnapshotRequestSchema = object({ databaseId: DataStoreDatabaseSchema });
|
|
15672
16003
|
/**
|
|
15673
16004
|
* A snapshot as an ARCHIVE records it (`ArchiveManifest.sqliteSnapshots`):
|
|
15674
16005
|
* the same facts, with both paths relative to the archive root (the node's
|
|
@@ -15678,9 +16009,11 @@ var ArchiveSqliteSnapshotSchema = DatabaseSnapshotResultSchema.extend({
|
|
|
15678
16009
|
/** Archive-relative path of the live database the archive does NOT carry. */
|
|
15679
16010
|
livePath: string(),
|
|
15680
16011
|
/** Archive-relative path of the verified copy it carries in its place. */
|
|
15681
|
-
snapshotPath: string()
|
|
16012
|
+
snapshotPath: string(),
|
|
16013
|
+
/** Absent on an archive made before several files were owned: that was `settings`. */
|
|
16014
|
+
databaseId: DataStoreDatabaseSchema.optional()
|
|
15682
16015
|
});
|
|
15683
|
-
method(object({}), DatabaseSnapshotTargetsSchema, { auth: "admin" }), method(
|
|
16016
|
+
method(object({}), DatabaseSnapshotTargetsSchema, { auth: "admin" }), method(DatabaseSnapshotRequestSchema, DatabaseSnapshotWrittenSchema, {
|
|
15684
16017
|
kind: "mutation",
|
|
15685
16018
|
auth: "admin",
|
|
15686
16019
|
timeoutMs: DATABASE_SNAPSHOT_TIMEOUT_MS
|
|
@@ -15801,7 +16134,12 @@ var BackupArchiveEntrySchema = object({
|
|
|
15801
16134
|
/** Top-level locations included in the archive (db, addons, tls, …). */
|
|
15802
16135
|
locations: array(string()).readonly(),
|
|
15803
16136
|
/** Present when the archive is encrypted; restore then needs that key. */
|
|
15804
|
-
encryption: BackupArchiveEncryptionSchema.optional()
|
|
16137
|
+
encryption: BackupArchiveEncryptionSchema.optional(),
|
|
16138
|
+
/**
|
|
16139
|
+
* The databases the run asked to carry (its retention class). Absent on an
|
|
16140
|
+
* archive made before several files were owned: that was `['settings']`.
|
|
16141
|
+
*/
|
|
16142
|
+
databases: array(DataStoreDatabaseSchema).readonly().optional()
|
|
15805
16143
|
});
|
|
15806
16144
|
var BackupEntrySchema = object({
|
|
15807
16145
|
id: string(),
|
|
@@ -15835,7 +16173,12 @@ var ArchiveManifestSchema = object({
|
|
|
15835
16173
|
* Live SQLite databases this archive carries as their OWNER's verified
|
|
15836
16174
|
* snapshot instead of as files (D693). Absent on archives made before.
|
|
15837
16175
|
*/
|
|
15838
|
-
sqliteSnapshots: array(ArchiveSqliteSnapshotSchema).optional()
|
|
16176
|
+
sqliteSnapshots: array(ArchiveSqliteSnapshotSchema).optional(),
|
|
16177
|
+
/**
|
|
16178
|
+
* Owned database files the run did NOT carry (not selected): left out of the
|
|
16179
|
+
* tar and the entry list alike. Absent when every owned file was carried.
|
|
16180
|
+
*/
|
|
16181
|
+
omittedDatabases: array(DataStoreDatabaseSchema).optional()
|
|
15839
16182
|
});
|
|
15840
16183
|
var LocationStatSchema = object({
|
|
15841
16184
|
name: string(),
|
|
@@ -15957,6 +16300,12 @@ var BackupScheduleSchema = object({
|
|
|
15957
16300
|
/** Optional subset of source locations to include; omitted = all. */
|
|
15958
16301
|
dataSources: array(string()).readonly().optional(),
|
|
15959
16302
|
/**
|
|
16303
|
+
* Which database files this schedule carries. Absent = `['settings']`
|
|
16304
|
+
* (an unstated ask is the minimum, D382). Events and history run weekly,
|
|
16305
|
+
* settings nightly (D852).
|
|
16306
|
+
*/
|
|
16307
|
+
databases: array(DataStoreDatabaseSchema).readonly().optional(),
|
|
16308
|
+
/**
|
|
15960
16309
|
* ms-epoch of the last tick that FIRED this schedule. Stamped before the
|
|
15961
16310
|
* archive runs (it is the dedupe anchor), so it says "attempted", never
|
|
15962
16311
|
* "succeeded" — a run refused by every destination stamps it too.
|
|
@@ -15980,7 +16329,9 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
|
|
|
15980
16329
|
* retention). Omitted = each destination's own policy
|
|
15981
16330
|
* retention (manual runs).
|
|
15982
16331
|
*/
|
|
15983
|
-
retentionCount: number().int().min(1).max(1e3).optional()
|
|
16332
|
+
retentionCount: number().int().min(1).max(1e3).optional(),
|
|
16333
|
+
/** Database files to carry; omitted = `['settings']`. */
|
|
16334
|
+
databases: array(DataStoreDatabaseSchema).optional()
|
|
15984
16335
|
}).optional(), BackupTriggerResultSchema, {
|
|
15985
16336
|
kind: "mutation",
|
|
15986
16337
|
auth: "admin"
|
|
@@ -16055,14 +16406,18 @@ method(_void(), array(BackupDestinationInfoSchema).readonly(), { auth: "admin" }
|
|
|
16055
16406
|
ok: boolean(),
|
|
16056
16407
|
error: string().optional(),
|
|
16057
16408
|
nextRuns: array(number()).readonly()
|
|
16058
|
-
})), method(_void(), array(BackupScheduleSchema).readonly(), { auth: "admin" }), method(object({
|
|
16409
|
+
})), method(_void(), array(BackupScheduleSchema).readonly(), { auth: "admin" }), method(_void(), object({
|
|
16410
|
+
answered: boolean(),
|
|
16411
|
+
databases: array(DataStoreDatabaseSchema).readonly()
|
|
16412
|
+
}), { auth: "admin" }), method(object({
|
|
16059
16413
|
id: string().optional(),
|
|
16060
16414
|
label: string(),
|
|
16061
16415
|
cron: string(),
|
|
16062
16416
|
enabled: boolean(),
|
|
16063
16417
|
locationIds: array(string()).readonly(),
|
|
16064
16418
|
retentionCount: number().int().min(1).max(1e3),
|
|
16065
|
-
dataSources: array(string()).readonly().optional()
|
|
16419
|
+
dataSources: array(string()).readonly().optional(),
|
|
16420
|
+
databases: array(DataStoreDatabaseSchema).readonly().optional()
|
|
16066
16421
|
}), BackupScheduleSchema, {
|
|
16067
16422
|
kind: "mutation",
|
|
16068
16423
|
auth: "admin"
|
|
@@ -18079,282 +18434,6 @@ method(_void(), array(CustomModelDescriptorSchema).readonly(), { auth: "admin" }
|
|
|
18079
18434
|
timeoutMs: 30 * 6e4
|
|
18080
18435
|
});
|
|
18081
18436
|
/**
|
|
18082
|
-
* Query filter for settings-store collections.
|
|
18083
|
-
*/
|
|
18084
|
-
var QueryFilterSchema = object({
|
|
18085
|
-
where: record(string(), unknown()).optional(),
|
|
18086
|
-
whereIn: record(string(), array(unknown())).optional(),
|
|
18087
|
-
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
18088
|
-
/** NULL-safe exclusion: matches rows whose field is NULL OR != the value. */
|
|
18089
|
-
whereNot: record(string(), unknown()).optional(),
|
|
18090
|
-
/** NULL-safe exclusion of a SET — `whereNot` for more than one value. An
|
|
18091
|
-
* empty list excludes nothing. See `QueryFilter.whereNotIn`. */
|
|
18092
|
-
whereNotIn: record(string(), array(unknown())).optional(),
|
|
18093
|
-
orderBy: object({
|
|
18094
|
-
field: string(),
|
|
18095
|
-
direction: _enum(["asc", "desc"])
|
|
18096
|
-
}).optional(),
|
|
18097
|
-
limit: number().optional(),
|
|
18098
|
-
offset: number().optional()
|
|
18099
|
-
});
|
|
18100
|
-
/**
|
|
18101
|
-
* The predicate half of a filter, for BULK MUTATIONS.
|
|
18102
|
-
*
|
|
18103
|
-
* Deliberately not `QueryFilterSchema`: `orderBy` / `limit` / `offset` have no
|
|
18104
|
-
* meaning for a statement that rewrites a set, and accepting them would invite
|
|
18105
|
-
* a caller to believe `limit` bounds the damage. Every field is optional here
|
|
18106
|
-
* only so the shape stays composable — the implementation REJECTS a filter
|
|
18107
|
-
* that compiles to no predicate, because that is the whole collection.
|
|
18108
|
-
*/
|
|
18109
|
-
var MutationFilterSchema = object({
|
|
18110
|
-
where: record(string(), unknown()).optional(),
|
|
18111
|
-
whereIn: record(string(), array(unknown())).optional(),
|
|
18112
|
-
whereBetween: record(string(), tuple([unknown(), unknown()])).optional(),
|
|
18113
|
-
whereNot: record(string(), unknown()).optional(),
|
|
18114
|
-
whereNotIn: record(string(), array(unknown())).optional()
|
|
18115
|
-
});
|
|
18116
|
-
/**
|
|
18117
|
-
* One scalar an {@link settingsStoreCapability.methods.aggregate} call asks for.
|
|
18118
|
-
*
|
|
18119
|
-
* `as` names the slot in the result, so the SAME column may be asked twice with
|
|
18120
|
-
* two operations (`MIN(startMs)` and `MAX(startMs)` in one round trip) — which
|
|
18121
|
-
* a `Record<column, op>` shape could not express.
|
|
18122
|
-
*/
|
|
18123
|
-
var AggregateFieldSchema = object({
|
|
18124
|
-
/** Result key. */
|
|
18125
|
-
as: string().min(1),
|
|
18126
|
-
/** Column to aggregate. Must be a real column of a declared collection. */
|
|
18127
|
-
field: string().min(1),
|
|
18128
|
-
op: _enum([
|
|
18129
|
-
"sum",
|
|
18130
|
-
"min",
|
|
18131
|
-
"max"
|
|
18132
|
-
])
|
|
18133
|
-
});
|
|
18134
|
-
/**
|
|
18135
|
-
* `COUNT(*)` plus one number per requested field.
|
|
18136
|
-
*
|
|
18137
|
-
* `null` means NO ROW MATCHED, never zero: a `SUM` over an empty set and a sum
|
|
18138
|
-
* that really is 0 are different facts, and an accounting caller that renders
|
|
18139
|
-
* "0 bytes, oldest = 0" for "nothing here" reports a lie about a disk.
|
|
18140
|
-
*/
|
|
18141
|
-
var AggregateResultSchema = object({
|
|
18142
|
-
count: number().int(),
|
|
18143
|
-
values: record(string(), number().nullable())
|
|
18144
|
-
});
|
|
18145
|
-
/** A single stored record: `{ id, data }`. */
|
|
18146
|
-
var SettingsRecordSchema = object({
|
|
18147
|
-
id: string(),
|
|
18148
|
-
data: record(string(), unknown())
|
|
18149
|
-
});
|
|
18150
|
-
/**
|
|
18151
|
-
* One record of a BULK insert — {@link SettingsRecordSchema} with the id made
|
|
18152
|
-
* optional.
|
|
18153
|
-
*
|
|
18154
|
-
* A separate schema rather than loosening the shared one: every other method
|
|
18155
|
-
* on this cap addresses a row BY its id, and making that field optional
|
|
18156
|
-
* everywhere would turn a forgotten key into a silently generated one on
|
|
18157
|
-
* `update` and `delete` as well.
|
|
18158
|
-
*/
|
|
18159
|
-
var BulkRecordSchema = object({
|
|
18160
|
-
id: string().optional(),
|
|
18161
|
-
data: record(string(), unknown())
|
|
18162
|
-
});
|
|
18163
|
-
/**
|
|
18164
|
-
* One write inside a {@link settingsStoreCapability.methods.transact} call.
|
|
18165
|
-
* Only the three that a "replace this set, bump that revision" write needs.
|
|
18166
|
-
*/
|
|
18167
|
-
var TransactOpSchema = discriminatedUnion("op", [
|
|
18168
|
-
object({
|
|
18169
|
-
op: literal("deleteWhere"),
|
|
18170
|
-
collection: string(),
|
|
18171
|
-
filter: MutationFilterSchema
|
|
18172
|
-
}),
|
|
18173
|
-
object({
|
|
18174
|
-
op: literal("insertMany"),
|
|
18175
|
-
collection: string(),
|
|
18176
|
-
records: array(BulkRecordSchema).readonly()
|
|
18177
|
-
}),
|
|
18178
|
-
object({
|
|
18179
|
-
op: literal("update"),
|
|
18180
|
-
collection: string(),
|
|
18181
|
-
id: string(),
|
|
18182
|
-
data: record(string(), unknown())
|
|
18183
|
-
})
|
|
18184
|
-
]);
|
|
18185
|
-
/**
|
|
18186
|
-
* The precondition of a transaction: the row `key` of `collection` must hold
|
|
18187
|
-
* `equals` in `column`, read INSIDE the transaction.
|
|
18188
|
-
*/
|
|
18189
|
-
var TransactGuardSchema = object({
|
|
18190
|
-
collection: string(),
|
|
18191
|
-
key: string(),
|
|
18192
|
-
column: string(),
|
|
18193
|
-
equals: unknown()
|
|
18194
|
-
});
|
|
18195
|
-
/**
|
|
18196
|
-
* Column declaration for a structured (SQL-backed) collection.
|
|
18197
|
-
*
|
|
18198
|
-
* Logical types — the backend translates each to the matching SQLite
|
|
18199
|
-
* storage class and handles per-type marshaling:
|
|
18200
|
-
* - `TEXT` / `INTEGER` / `REAL` — native SQLite types, pass-through
|
|
18201
|
-
* - `JSON` — TEXT under the hood; serialised on write, parsed on read
|
|
18202
|
-
* - `BOOLEAN` — INTEGER 0/1 under the hood; coerced both directions
|
|
18203
|
-
*/
|
|
18204
|
-
var CollectionColumnSchema = object({
|
|
18205
|
-
name: string(),
|
|
18206
|
-
type: _enum([
|
|
18207
|
-
"TEXT",
|
|
18208
|
-
"INTEGER",
|
|
18209
|
-
"REAL",
|
|
18210
|
-
"JSON",
|
|
18211
|
-
"BOOLEAN"
|
|
18212
|
-
]),
|
|
18213
|
-
primaryKey: boolean().optional(),
|
|
18214
|
-
notNull: boolean().optional(),
|
|
18215
|
-
unique: boolean().optional(),
|
|
18216
|
-
/**
|
|
18217
|
-
* Column DEFAULT. Required for B2: the four `ensureTable` consumers declare
|
|
18218
|
-
* columns like `enabled INTEGER NOT NULL DEFAULT 1`, and without this the
|
|
18219
|
-
* collection surface simply cannot express their existing tables — which is
|
|
18220
|
-
* why they were still on the uncapped `table*` API.
|
|
18221
|
-
*/
|
|
18222
|
-
defaultValue: union([
|
|
18223
|
-
string(),
|
|
18224
|
-
number(),
|
|
18225
|
-
boolean()
|
|
18226
|
-
]).optional()
|
|
18227
|
-
});
|
|
18228
|
-
var CollectionIndexSchema = object({
|
|
18229
|
-
name: string(),
|
|
18230
|
-
columns: array(string()).readonly(),
|
|
18231
|
-
unique: boolean().optional()
|
|
18232
|
-
});
|
|
18233
|
-
method(object({
|
|
18234
|
-
namespace: string().optional(),
|
|
18235
|
-
collection: string(),
|
|
18236
|
-
key: string()
|
|
18237
|
-
}), unknown(), { auth: "admin" }), method(object({
|
|
18238
|
-
namespace: string().optional(),
|
|
18239
|
-
collection: string(),
|
|
18240
|
-
key: string(),
|
|
18241
|
-
value: unknown()
|
|
18242
|
-
}), _void(), {
|
|
18243
|
-
kind: "mutation",
|
|
18244
|
-
auth: "admin"
|
|
18245
|
-
}), method(object({
|
|
18246
|
-
namespace: string().optional(),
|
|
18247
|
-
collection: string(),
|
|
18248
|
-
filter: QueryFilterSchema.optional(),
|
|
18249
|
-
columns: array(string()).readonly().optional()
|
|
18250
|
-
}), array(SettingsRecordSchema).readonly(), { auth: "admin" }), method(object({
|
|
18251
|
-
namespace: string().optional(),
|
|
18252
|
-
collection: string(),
|
|
18253
|
-
/** Declared columns identifying the slot; must be covered by a UNIQUE
|
|
18254
|
-
* index on the collection. Never empty. */
|
|
18255
|
-
conflict: array(string()).readonly(),
|
|
18256
|
-
record: BulkRecordSchema
|
|
18257
|
-
}), object({
|
|
18258
|
-
/** The id the row HAS: assigned by SQLite on an insert, or the existing
|
|
18259
|
-
* row's own id on an update. */
|
|
18260
|
-
id: union([string(), number()]) }), {
|
|
18261
|
-
kind: "mutation",
|
|
18262
|
-
auth: "admin"
|
|
18263
|
-
}), method(object({
|
|
18264
|
-
namespace: string().optional(),
|
|
18265
|
-
collection: string(),
|
|
18266
|
-
record: object({
|
|
18267
|
-
id: string().optional(),
|
|
18268
|
-
data: record(string(), unknown())
|
|
18269
|
-
})
|
|
18270
|
-
}), object({
|
|
18271
|
-
/**
|
|
18272
|
-
* The id the row ACTUALLY got (D473): the one supplied, the UUID minted
|
|
18273
|
-
* for an absent one, or the ROWID SQLite assigned on an `INTEGER`
|
|
18274
|
-
* primary key — which is the only place an auto key is knowable.
|
|
18275
|
-
*/
|
|
18276
|
-
id: union([string(), number()]) }), {
|
|
18277
|
-
kind: "mutation",
|
|
18278
|
-
auth: "admin"
|
|
18279
|
-
}), method(object({
|
|
18280
|
-
namespace: string().optional(),
|
|
18281
|
-
collection: string(),
|
|
18282
|
-
records: array(BulkRecordSchema).readonly()
|
|
18283
|
-
}), object({ inserted: number().int() }), {
|
|
18284
|
-
kind: "mutation",
|
|
18285
|
-
auth: "admin"
|
|
18286
|
-
}), method(object({
|
|
18287
|
-
namespace: string().optional(),
|
|
18288
|
-
guard: TransactGuardSchema.optional(),
|
|
18289
|
-
ops: array(TransactOpSchema).readonly()
|
|
18290
|
-
}), object({
|
|
18291
|
-
applied: boolean(),
|
|
18292
|
-
current: unknown().optional()
|
|
18293
|
-
}), {
|
|
18294
|
-
kind: "mutation",
|
|
18295
|
-
auth: "admin"
|
|
18296
|
-
}), method(object({
|
|
18297
|
-
namespace: string().optional(),
|
|
18298
|
-
collection: string(),
|
|
18299
|
-
id: string(),
|
|
18300
|
-
data: record(string(), unknown())
|
|
18301
|
-
}), _void(), {
|
|
18302
|
-
kind: "mutation",
|
|
18303
|
-
auth: "admin"
|
|
18304
|
-
}), method(object({
|
|
18305
|
-
namespace: string().optional(),
|
|
18306
|
-
collection: string(),
|
|
18307
|
-
key: string()
|
|
18308
|
-
}), _void(), {
|
|
18309
|
-
kind: "mutation",
|
|
18310
|
-
auth: "admin"
|
|
18311
|
-
}), method(object({
|
|
18312
|
-
namespace: string().optional(),
|
|
18313
|
-
collection: string(),
|
|
18314
|
-
filter: MutationFilterSchema
|
|
18315
|
-
}), object({ deleted: number().int() }), {
|
|
18316
|
-
kind: "mutation",
|
|
18317
|
-
auth: "admin"
|
|
18318
|
-
}), method(object({
|
|
18319
|
-
namespace: string().optional(),
|
|
18320
|
-
collection: string(),
|
|
18321
|
-
filter: MutationFilterSchema,
|
|
18322
|
-
data: record(string(), unknown())
|
|
18323
|
-
}), object({ updated: number().int() }), {
|
|
18324
|
-
kind: "mutation",
|
|
18325
|
-
auth: "admin"
|
|
18326
|
-
}), method(object({
|
|
18327
|
-
namespace: string().optional(),
|
|
18328
|
-
collection: string(),
|
|
18329
|
-
filter: QueryFilterSchema.optional()
|
|
18330
|
-
}), number(), { auth: "admin" }), method(object({
|
|
18331
|
-
namespace: string().optional(),
|
|
18332
|
-
collection: string(),
|
|
18333
|
-
fields: array(AggregateFieldSchema).readonly(),
|
|
18334
|
-
filter: QueryFilterSchema.optional()
|
|
18335
|
-
}), AggregateResultSchema, { auth: "admin" }), method(object({
|
|
18336
|
-
namespace: string().optional(),
|
|
18337
|
-
collection: string(),
|
|
18338
|
-
field: string(),
|
|
18339
|
-
bucketSize: number().int().positive(),
|
|
18340
|
-
origin: number().int(),
|
|
18341
|
-
filter: QueryFilterSchema.optional()
|
|
18342
|
-
}), array(object({
|
|
18343
|
-
bucket: number().int(),
|
|
18344
|
-
count: number().int()
|
|
18345
|
-
})).readonly(), { auth: "admin" }), method(object({
|
|
18346
|
-
namespace: string().optional(),
|
|
18347
|
-
collection: string()
|
|
18348
|
-
}), boolean(), { auth: "admin" }), method(object({
|
|
18349
|
-
namespace: string().optional(),
|
|
18350
|
-
collection: string(),
|
|
18351
|
-
columns: array(CollectionColumnSchema).readonly(),
|
|
18352
|
-
indexes: array(CollectionIndexSchema).readonly().optional()
|
|
18353
|
-
}), _void(), {
|
|
18354
|
-
kind: "mutation",
|
|
18355
|
-
auth: "admin"
|
|
18356
|
-
});
|
|
18357
|
-
/**
|
|
18358
18437
|
* What one engine says about itself. The orchestrator uses `kind` to pick
|
|
18359
18438
|
* a registrant for a collection; `engineId` is what a log line names when
|
|
18360
18439
|
* a call is routed or refused.
|
|
@@ -18434,6 +18513,14 @@ id: union([string(), number()]) }), {
|
|
|
18434
18513
|
}), object({ id: union([string(), number()]) }), {
|
|
18435
18514
|
kind: "mutation",
|
|
18436
18515
|
auth: "admin"
|
|
18516
|
+
}), method(object({
|
|
18517
|
+
namespace: string().optional(),
|
|
18518
|
+
collection: string(),
|
|
18519
|
+
conflict: array(string()).readonly(),
|
|
18520
|
+
records: array(BulkRecordSchema).readonly()
|
|
18521
|
+
}), object({ upserted: number().int() }), {
|
|
18522
|
+
kind: "mutation",
|
|
18523
|
+
auth: "admin"
|
|
18437
18524
|
}), method(object({
|
|
18438
18525
|
namespace: string().optional(),
|
|
18439
18526
|
collection: string(),
|
|
@@ -18503,12 +18590,7 @@ id: union([string(), number()]) }), {
|
|
|
18503
18590
|
})).readonly(), { auth: "admin" }), method(object({
|
|
18504
18591
|
namespace: string().optional(),
|
|
18505
18592
|
collection: string()
|
|
18506
|
-
}), boolean(), { auth: "admin" }), method(
|
|
18507
|
-
namespace: string().optional(),
|
|
18508
|
-
collection: string(),
|
|
18509
|
-
columns: array(CollectionColumnSchema).readonly(),
|
|
18510
|
-
indexes: array(CollectionIndexSchema).readonly().optional()
|
|
18511
|
-
}), _void(), {
|
|
18593
|
+
}), boolean(), { auth: "admin" }), method(DeclareCollectionInputSchema, _void(), {
|
|
18512
18594
|
kind: "mutation",
|
|
18513
18595
|
auth: "admin"
|
|
18514
18596
|
});
|
|
@@ -36153,6 +36235,18 @@ var CalendarInfoSchema = object({
|
|
|
36153
36235
|
source: CalendarSourceKindSchema,
|
|
36154
36236
|
enabled: boolean()
|
|
36155
36237
|
});
|
|
36238
|
+
/**
|
|
36239
|
+
* Time contract of {@link CalendarEvent}.
|
|
36240
|
+
*
|
|
36241
|
+
* - Timed event: `startMs` / `endMs` are real instants; `endMs` is exclusive.
|
|
36242
|
+
* - All-day event (`allDay: true`): the event is a run of calendar DATES, not
|
|
36243
|
+
* instants. `startMs` is UTC midnight of the first date and `endMs` is UTC
|
|
36244
|
+
* midnight of the day AFTER the last date (RFC 5545 exclusive DTEND), so a
|
|
36245
|
+
* one-day event spans exactly 24 h. Every provider produces that and no
|
|
36246
|
+
* consumer may read the instants in a local timezone: use
|
|
36247
|
+
* {@link calendarEventLocalSpan}. Reading UTC midnight as local time put an
|
|
36248
|
+
* all-day event on the following day for any viewer ahead of UTC.
|
|
36249
|
+
*/
|
|
36156
36250
|
var CalendarEventSchema = object({
|
|
36157
36251
|
id: string().min(1),
|
|
36158
36252
|
calendarId: string().min(1),
|
|
@@ -38295,7 +38389,15 @@ var HubAddressBookSchema = object({
|
|
|
38295
38389
|
publicEndpoint: HubAddressRoleResolutionSchema
|
|
38296
38390
|
}),
|
|
38297
38391
|
/** The `hub=` an app link carries (D709), or null. */
|
|
38298
|
-
appLinkHub: string().nullable()
|
|
38392
|
+
appLinkHub: string().nullable(),
|
|
38393
|
+
/**
|
|
38394
|
+
* Every origin a browser can really reach this hub at, in the scheme each
|
|
38395
|
+
* listener serves: `https://<lan>:<httpsPort>`, and `http://<lan>:<httpPort>`
|
|
38396
|
+
* while LAN HTTP is on, plus the public and custom addresses. Distinct from
|
|
38397
|
+
* `rows`, which show `http://` only while LAN HTTP is on. Never loopback,
|
|
38398
|
+
* never the app link. Absent on a hub older than D794's amendment.
|
|
38399
|
+
*/
|
|
38400
|
+
listenerOrigins: array(string()).readonly().optional()
|
|
38299
38401
|
});
|
|
38300
38402
|
var AllowedAddressesSchema = object({
|
|
38301
38403
|
/**
|
|
@@ -45692,6 +45794,12 @@ Object.freeze({
|
|
|
45692
45794
|
addonId: null,
|
|
45693
45795
|
access: "view"
|
|
45694
45796
|
},
|
|
45797
|
+
"backup.listAvailableDatabases": {
|
|
45798
|
+
capName: "backup",
|
|
45799
|
+
capScope: "system",
|
|
45800
|
+
addonId: null,
|
|
45801
|
+
access: "view"
|
|
45802
|
+
},
|
|
45695
45803
|
"backup.listDestinations": {
|
|
45696
45804
|
capName: "backup",
|
|
45697
45805
|
capScope: "system",
|
|
@@ -46412,6 +46520,12 @@ Object.freeze({
|
|
|
46412
46520
|
addonId: null,
|
|
46413
46521
|
access: "create"
|
|
46414
46522
|
},
|
|
46523
|
+
"dataStoreProvider.upsertMany": {
|
|
46524
|
+
capName: "data-store-provider",
|
|
46525
|
+
capScope: "system",
|
|
46526
|
+
addonId: null,
|
|
46527
|
+
access: "create"
|
|
46528
|
+
},
|
|
46415
46529
|
"dayNight.getOptions": {
|
|
46416
46530
|
capName: "day-night",
|
|
46417
46531
|
capScope: "device",
|
|
@@ -51260,6 +51374,12 @@ Object.freeze({
|
|
|
51260
51374
|
addonId: null,
|
|
51261
51375
|
access: "create"
|
|
51262
51376
|
},
|
|
51377
|
+
"settingsStore.upsertMany": {
|
|
51378
|
+
capName: "settings-store",
|
|
51379
|
+
capScope: "system",
|
|
51380
|
+
addonId: null,
|
|
51381
|
+
access: "create"
|
|
51382
|
+
},
|
|
51263
51383
|
"smoke.getStatus": {
|
|
51264
51384
|
capName: "smoke",
|
|
51265
51385
|
capScope: "device",
|