@hasna/uptime 0.1.2 → 0.1.3

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/store.d.ts CHANGED
@@ -1,30 +1,133 @@
1
- import type { CheckResult, CreateMonitorInput, Incident, ListResultsOptions, Monitor, UpdateMonitorInput, UptimeSummary } from "./types.js";
1
+ import type { CheckResult, Incident, ImportedMonitorInput, ImportedUpdateMonitorInput, ListResultsOptions, Monitor, ProbeCheckJob, ProbeIdentity, ProbeSubmissionReceipt, UptimeSummary } from "./types.js";
2
2
  export interface UptimeStoreOptions {
3
3
  dbPath?: string;
4
+ mode?: UptimeRuntimeMode;
5
+ allowHostedLocalStore?: boolean;
6
+ cloudDatabaseUrl?: string;
7
+ }
8
+ export type UptimeRuntimeMode = "local" | "hosted";
9
+ export interface UptimeBackup {
10
+ sourcePath: string;
11
+ backupPath: string;
12
+ bytes: number;
13
+ createdAt: string;
14
+ }
15
+ export interface UptimeBackupCheck {
16
+ ok: boolean;
17
+ backupPath: string;
18
+ integrity: string;
19
+ schemaVersion: string | null;
20
+ missingTables: string[];
21
+ monitors: number;
22
+ results: number;
23
+ incidents: number;
24
+ }
25
+ export interface MonitorProvenance {
26
+ monitorId: string;
27
+ source: string;
28
+ sourceId: string;
29
+ sourceLabel: string | null;
30
+ importedAt: string;
31
+ snapshot: unknown;
32
+ }
33
+ export interface UpsertMonitorProvenanceInput {
34
+ monitorId: string;
35
+ source: string;
36
+ sourceId: string;
37
+ sourceLabel?: string | null;
38
+ snapshot: unknown;
39
+ }
40
+ export interface StoredImportBatch {
41
+ id: string;
42
+ source: string;
43
+ status: "applied" | "rolled_back";
44
+ createdAt: string;
45
+ rolledBackAt: string | null;
46
+ records: unknown[];
47
+ }
48
+ export interface SaveImportBatchInput {
49
+ id: string;
50
+ source: string;
51
+ records: unknown[];
4
52
  }
5
53
  export declare class StaleCheckResultError extends Error {
6
54
  constructor(message: string);
7
55
  }
8
56
  export declare class UptimeStore {
9
57
  readonly dbPath: string;
58
+ readonly mode: UptimeRuntimeMode;
59
+ readonly dataMode: "local-sqlite" | "hosted-local-sqlite";
10
60
  private readonly db;
11
61
  constructor(options?: UptimeStoreOptions);
12
62
  close(): void;
13
63
  migrate(): void;
14
- createMonitor(input: CreateMonitorInput): Monitor;
64
+ backup(destinationPath?: string): UptimeBackup;
65
+ verifyBackup(backupPath: string): UptimeBackupCheck;
66
+ static verifyBackup(backupPath: string): UptimeBackupCheck;
67
+ static restoreBackup(backupPath: string, destinationPath?: string): UptimeBackup;
68
+ createMonitor(input: ImportedMonitorInput, options?: {
69
+ allowBrowserPage?: boolean;
70
+ }): Monitor;
15
71
  listMonitors(options?: {
16
72
  includeDisabled?: boolean;
17
73
  }): Monitor[];
18
74
  getMonitor(idOrName: string): Monitor | null;
19
- updateMonitor(idOrName: string, input: UpdateMonitorInput): Monitor;
75
+ updateMonitor(idOrName: string, input: ImportedUpdateMonitorInput, options?: {
76
+ allowBrowserPage?: boolean;
77
+ }): Monitor;
20
78
  deleteMonitor(idOrName: string): boolean;
79
+ createProbeIdentity(input: {
80
+ name: string;
81
+ publicKeyPem: string;
82
+ publicKeyFingerprint: string;
83
+ enabled?: boolean;
84
+ }): ProbeIdentity;
85
+ listProbeIdentities(options?: {
86
+ includeDisabled?: boolean;
87
+ }): ProbeIdentity[];
88
+ getProbeIdentity(idOrName: string): ProbeIdentity | null;
89
+ updateProbeIdentity(idOrName: string, input: {
90
+ enabled?: boolean;
91
+ name?: string;
92
+ }): ProbeIdentity;
93
+ touchProbeIdentity(idOrName: string, seenAt?: string): void;
94
+ createProbeCheckJob(input: {
95
+ monitorId: string;
96
+ scheduleSlot: string;
97
+ dueAt?: string;
98
+ }): ProbeCheckJob;
99
+ getProbeCheckJob(id: string): ProbeCheckJob | null;
100
+ claimProbeCheckJob(input: {
101
+ jobId: string;
102
+ probeId: string;
103
+ leaseTtlMs?: number;
104
+ }): ProbeCheckJob;
105
+ completeProbeCheckJob(input: {
106
+ jobId: string;
107
+ probeId: string;
108
+ fencingToken: string;
109
+ checkResultId: string;
110
+ submittedAt?: string;
111
+ }): ProbeCheckJob;
112
+ private expireProbeCheckJob;
113
+ getProbeSubmission(probeId: string, nonce: string): ProbeSubmissionReceipt | null;
114
+ recordProbeSubmission(input: Omit<ProbeSubmissionReceipt, "id" | "submittedAt"> & {
115
+ submittedAt?: string;
116
+ }): ProbeSubmissionReceipt;
21
117
  acquireCheckLease(monitorId: string, owner: string, ttlMs: number): boolean;
22
118
  releaseCheckLease(monitorId: string, owner: string): void;
23
119
  recordCheckResult(input: Omit<CheckResult, "id" | "checkedAt"> & {
24
120
  checkedAt?: string;
25
121
  expectedMonitorRevision?: number;
26
122
  }): CheckResult;
123
+ getCheckResult(id: string): CheckResult | null;
27
124
  listResults(options?: ListResultsOptions): CheckResult[];
125
+ getProvenance(source: string, sourceId: string): MonitorProvenance | null;
126
+ upsertMonitorProvenance(input: UpsertMonitorProvenanceInput): MonitorProvenance;
127
+ saveImportBatch(input: SaveImportBatchInput): StoredImportBatch;
128
+ getImportBatch(batchId: string): StoredImportBatch | null;
129
+ markImportBatchRolledBack(batchId: string): StoredImportBatch;
130
+ runInTransaction<T>(fn: () => T): T;
28
131
  listIncidents(options?: {
29
132
  status?: "open" | "closed";
30
133
  monitorId?: string;
@@ -37,5 +140,8 @@ export declare class UptimeStore {
37
140
  private reconcileIncidentInTransaction;
38
141
  private closeOpenIncident;
39
142
  private ensureColumn;
143
+ private ensureMonitorKindAllowsBrowserPage;
144
+ private vacuumInto;
40
145
  }
146
+ export declare function resolveRuntimeMode(mode?: UptimeRuntimeMode): UptimeRuntimeMode;
41
147
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,kBAAkB,EAClB,OAAO,EAGP,kBAAkB,EAClB,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAkED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,WAAW;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;gBAElB,OAAO,GAAE,kBAAuB;IAW5C,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;IA6Df,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO;IAoDjD,YAAY,CAAC,OAAO,GAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,OAAO,EAAE;IAOpE,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAO5C,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO;IAqCnE,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAOxC,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAmB3E,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzD,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,uBAAuB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW;IAwDvI,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,WAAW,EAAE;IAU5D,aAAa,CAAC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,QAAQ,EAAE;IAmB3G,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAOnD,OAAO,IAAI,aAAa;IAkBxB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,8BAA8B;IA4BtC,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}