sermon-js 0.0.0-stage → 0.2.0
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/LICENSE +21 -0
- package/README.md +239 -2
- package/dist/api/index.cjs +174 -0
- package/dist/api/index.cjs.map +1 -0
- package/dist/api/index.d.cts +77 -0
- package/dist/api/index.d.ts +77 -0
- package/dist/api/index.js +171 -0
- package/dist/api/index.js.map +1 -0
- package/dist/chunk-2M4UBCDM.js +178 -0
- package/dist/chunk-2M4UBCDM.js.map +1 -0
- package/dist/chunk-AH372HLN.js +98 -0
- package/dist/chunk-AH372HLN.js.map +1 -0
- package/dist/chunk-APC2HVSI.js +154 -0
- package/dist/chunk-APC2HVSI.js.map +1 -0
- package/dist/chunk-D7BBJTYU.cjs +335 -0
- package/dist/chunk-D7BBJTYU.cjs.map +1 -0
- package/dist/chunk-ELV4ZU6G.cjs +51 -0
- package/dist/chunk-ELV4ZU6G.cjs.map +1 -0
- package/dist/chunk-EMP7XVKC.js +334 -0
- package/dist/chunk-EMP7XVKC.js.map +1 -0
- package/dist/chunk-I3346MUL.js +49 -0
- package/dist/chunk-I3346MUL.js.map +1 -0
- package/dist/chunk-NP3YYVRZ.cjs +163 -0
- package/dist/chunk-NP3YYVRZ.cjs.map +1 -0
- package/dist/chunk-PARE6EUZ.cjs +184 -0
- package/dist/chunk-PARE6EUZ.cjs.map +1 -0
- package/dist/chunk-XHXEKB3Q.cjs +241 -0
- package/dist/chunk-XHXEKB3Q.cjs.map +1 -0
- package/dist/chunk-XPXIDJUU.js +229 -0
- package/dist/chunk-XPXIDJUU.js.map +1 -0
- package/dist/chunk-ZI442ZA5.cjs +100 -0
- package/dist/chunk-ZI442ZA5.cjs.map +1 -0
- package/dist/config-BEbP-uLf.d.cts +125 -0
- package/dist/config-w1tm1bdu.d.ts +125 -0
- package/dist/generic-BJmlgtUM.d.ts +31 -0
- package/dist/generic-lmrGxMDC.d.cts +31 -0
- package/dist/index.cjs +407 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +93 -0
- package/dist/index.d.ts +93 -0
- package/dist/index.js +330 -0
- package/dist/index.js.map +1 -0
- package/dist/presets/index.cjs +1012 -0
- package/dist/presets/index.cjs.map +1 -0
- package/dist/presets/index.d.cts +516 -0
- package/dist/presets/index.d.ts +516 -0
- package/dist/presets/index.js +971 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/react/heroui/index.cjs +822 -0
- package/dist/react/heroui/index.cjs.map +1 -0
- package/dist/react/heroui/index.d.cts +122 -0
- package/dist/react/heroui/index.d.ts +122 -0
- package/dist/react/heroui/index.js +821 -0
- package/dist/react/heroui/index.js.map +1 -0
- package/dist/react/heroui/styles.css +11 -0
- package/dist/react/index.cjs +71 -0
- package/dist/react/index.cjs.map +1 -0
- package/dist/react/index.d.cts +53 -0
- package/dist/react/index.d.ts +53 -0
- package/dist/react/index.js +70 -0
- package/dist/react/index.js.map +1 -0
- package/dist/status-DsWzgb9Q.d.cts +146 -0
- package/dist/status-zd04ZQ98.d.ts +146 -0
- package/dist/store-DybhDphS.d.cts +77 -0
- package/dist/store-_GuzSP0z.d.ts +77 -0
- package/dist/stores/mongodb.cjs +99 -0
- package/dist/stores/mongodb.cjs.map +1 -0
- package/dist/stores/mongodb.d.cts +40 -0
- package/dist/stores/mongodb.d.ts +40 -0
- package/dist/stores/mongodb.js +97 -0
- package/dist/stores/mongodb.js.map +1 -0
- package/dist/stores/redis.cjs +23 -0
- package/dist/stores/redis.cjs.map +1 -0
- package/dist/stores/redis.d.cts +31 -0
- package/dist/stores/redis.d.ts +31 -0
- package/dist/stores/redis.js +21 -0
- package/dist/stores/redis.js.map +1 -0
- package/dist/stores/sql.cjs +164 -0
- package/dist/stores/sql.cjs.map +1 -0
- package/dist/stores/sql.d.cts +39 -0
- package/dist/stores/sql.d.ts +39 -0
- package/dist/stores/sql.js +162 -0
- package/dist/stores/sql.js.map +1 -0
- package/dist/stores/upstash.cjs +27 -0
- package/dist/stores/upstash.cjs.map +1 -0
- package/dist/stores/upstash.d.cts +19 -0
- package/dist/stores/upstash.d.ts +19 -0
- package/dist/stores/upstash.js +25 -0
- package/dist/stores/upstash.js.map +1 -0
- package/dist/testing/index.cjs +209 -0
- package/dist/testing/index.cjs.map +1 -0
- package/dist/testing/index.d.cts +66 -0
- package/dist/testing/index.d.ts +66 -0
- package/dist/testing/index.js +205 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/tree-BXbXfjF1.d.cts +236 -0
- package/dist/tree-BXbXfjF1.d.ts +236 -0
- package/dist/types-CctvUAs2.d.cts +192 -0
- package/dist/types-CctvUAs2.d.ts +192 -0
- package/package.json +233 -3
|
@@ -0,0 +1,516 @@
|
|
|
1
|
+
export { G as GenericHttpOptions, g as generic } from '../generic-BJmlgtUM.js';
|
|
2
|
+
import { b as PresetOptions, S as ServiceDefinition } from '../config-w1tm1bdu.js';
|
|
3
|
+
import { P as ProbeHelpers, h as CommonOptions } from '../types-CctvUAs2.js';
|
|
4
|
+
|
|
5
|
+
type FlyAppOptions = PresetOptions & {
|
|
6
|
+
/** The Fly app name, e.g. "my-api" */
|
|
7
|
+
app: string;
|
|
8
|
+
secrets: {
|
|
9
|
+
/** A Fly API token. A read-only one is enough: `fly tokens create readonly` */
|
|
10
|
+
token: string | undefined;
|
|
11
|
+
};
|
|
12
|
+
track?: {
|
|
13
|
+
/**
|
|
14
|
+
* Health path probed on each machine that is already running (default "/").
|
|
15
|
+
* Pass `false` to only read machine states. `anyStatus` accepts any HTTP answer,
|
|
16
|
+
* e.g. for servers that answer 404 on their root.
|
|
17
|
+
*/
|
|
18
|
+
health?: string | false | {
|
|
19
|
+
path?: string;
|
|
20
|
+
anyStatus?: boolean;
|
|
21
|
+
};
|
|
22
|
+
/** Report every machine individually (default true) */
|
|
23
|
+
machines?: boolean;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
type FlyMachineEvent = {
|
|
27
|
+
type?: string;
|
|
28
|
+
timestamp?: number;
|
|
29
|
+
request?: {
|
|
30
|
+
exit_event?: {
|
|
31
|
+
exit_code?: number;
|
|
32
|
+
oom_killed?: boolean;
|
|
33
|
+
requested_stop?: boolean;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
/** Last exit of a stopped machine, if it was a crash rather than a scale-to-zero stop */
|
|
38
|
+
declare function crashReason(machine: {
|
|
39
|
+
events?: FlyMachineEvent[];
|
|
40
|
+
}): string | undefined;
|
|
41
|
+
/** Presets for Fly.io */
|
|
42
|
+
declare const fly: {
|
|
43
|
+
app: (options: FlyAppOptions) => ServiceDefinition;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
type GoogleServiceAccount = {
|
|
47
|
+
client_email: string;
|
|
48
|
+
private_key: string;
|
|
49
|
+
project_id?: string;
|
|
50
|
+
};
|
|
51
|
+
/** Parse a service-account JSON key; undefined when it isn't one */
|
|
52
|
+
declare function parseServiceAccount(json: string | undefined): GoogleServiceAccount | undefined;
|
|
53
|
+
/** A signed JWT assertion for Google's OAuth token endpoint (RS256, Web Crypto) */
|
|
54
|
+
declare function signGoogleAssertion({ account, scope, now, }: {
|
|
55
|
+
account: GoogleServiceAccount;
|
|
56
|
+
scope: string;
|
|
57
|
+
now?: number;
|
|
58
|
+
}): Promise<string>;
|
|
59
|
+
/** Forget cached tokens (for tests) */
|
|
60
|
+
declare function clearGoogleTokens(): void;
|
|
61
|
+
/**
|
|
62
|
+
* An OAuth access token for a Google service account, without any Google library: it only
|
|
63
|
+
* needs `fetch` and Web Crypto, so it works on edge runtimes. Tokens are kept in memory until
|
|
64
|
+
* shortly before they expire.
|
|
65
|
+
*/
|
|
66
|
+
declare function googleServiceAccountToken({ account, scope, http, now, }: {
|
|
67
|
+
account: GoogleServiceAccount;
|
|
68
|
+
scope: string;
|
|
69
|
+
http: ProbeHelpers["http"];
|
|
70
|
+
now?: number;
|
|
71
|
+
}): Promise<string>;
|
|
72
|
+
|
|
73
|
+
type GcpInstanceOptions = PresetOptions & {
|
|
74
|
+
/** The Compute Engine instance name */
|
|
75
|
+
instance: string | undefined;
|
|
76
|
+
/** Its zone, e.g. "europe-west1-b" */
|
|
77
|
+
zone: string | undefined;
|
|
78
|
+
/** The project ID (default: the one in the service-account key) */
|
|
79
|
+
project?: string;
|
|
80
|
+
secrets: {
|
|
81
|
+
/** Service-account JSON key allowed to read instances (e.g. Compute Viewer) */
|
|
82
|
+
serviceAccount: string | undefined;
|
|
83
|
+
};
|
|
84
|
+
track?: {
|
|
85
|
+
/** URL probed only while the VM is RUNNING. Any HTTP answer counts as healthy. */
|
|
86
|
+
health?: string | false;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
/** Presets for Google Cloud */
|
|
90
|
+
declare const gcp: {
|
|
91
|
+
instance: (options: GcpInstanceOptions) => ServiceDefinition;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
type AwsSecrets = {
|
|
95
|
+
accessKeyId: string | undefined;
|
|
96
|
+
secretAccessKey: string | undefined;
|
|
97
|
+
};
|
|
98
|
+
type AwsCredentialsOptions = PresetOptions & {
|
|
99
|
+
/** How to call it: these credentials usually belong to one AWS service you use */
|
|
100
|
+
name: string;
|
|
101
|
+
secrets: AwsSecrets;
|
|
102
|
+
};
|
|
103
|
+
type S3BucketOptions = PresetOptions & {
|
|
104
|
+
bucket: string | undefined;
|
|
105
|
+
/** S3-compatible endpoint (Tigris, R2, MinIO…). Default: AWS S3 in `region`. */
|
|
106
|
+
endpoint?: string;
|
|
107
|
+
/** Region (default "us-east-1"; S3-compatible services often use "auto") */
|
|
108
|
+
region?: string;
|
|
109
|
+
secrets: AwsSecrets;
|
|
110
|
+
};
|
|
111
|
+
/** Presets for AWS and S3-compatible storage */
|
|
112
|
+
declare const aws: {
|
|
113
|
+
credentials: (options: AwsCredentialsOptions) => ServiceDefinition;
|
|
114
|
+
s3Bucket: (options: S3BucketOptions) => ServiceDefinition;
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
type MongoDatabase = {
|
|
118
|
+
command(command: Record<string, unknown>): Promise<unknown>;
|
|
119
|
+
};
|
|
120
|
+
type MongoLike = MongoDatabase | {
|
|
121
|
+
db(name?: string): MongoDatabase;
|
|
122
|
+
};
|
|
123
|
+
type MongoPingOptions = PresetOptions & {
|
|
124
|
+
/**
|
|
125
|
+
* Your `MongoClient` (or a `Db`). The driver connects on first use, so there is nothing to
|
|
126
|
+
* await. When undefined the service is "not configured".
|
|
127
|
+
*/
|
|
128
|
+
client: MongoLike | undefined;
|
|
129
|
+
/** Optional: the connection string, only so it is redacted from public errors */
|
|
130
|
+
secrets?: {
|
|
131
|
+
url?: string;
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
/** Presets for MongoDB */
|
|
135
|
+
declare const mongodb: {
|
|
136
|
+
ping: (options: MongoPingOptions) => ServiceDefinition;
|
|
137
|
+
};
|
|
138
|
+
type RedisLike = {
|
|
139
|
+
ping: () => Promise<unknown>;
|
|
140
|
+
} | {
|
|
141
|
+
call: (command: string, ...args: string[]) => Promise<unknown>;
|
|
142
|
+
} | {
|
|
143
|
+
sendCommand: (args: string[]) => Promise<unknown>;
|
|
144
|
+
};
|
|
145
|
+
type RedisPingOptions = PresetOptions & {
|
|
146
|
+
/** A connected ioredis or node-redis client. When undefined the service is "not configured". */
|
|
147
|
+
client: RedisLike | undefined;
|
|
148
|
+
};
|
|
149
|
+
/** Presets for Redis servers reached with a client library */
|
|
150
|
+
declare const redis: {
|
|
151
|
+
ping: (options: RedisPingOptions) => ServiceDefinition;
|
|
152
|
+
};
|
|
153
|
+
type PostgresPingOptions = PresetOptions & {
|
|
154
|
+
/**
|
|
155
|
+
* Runs one statement with the driver you already use (pg, postgres.js, Neon…). When
|
|
156
|
+
* undefined the service is "not configured".
|
|
157
|
+
*/
|
|
158
|
+
query: ((sql: string) => Promise<unknown>) | undefined;
|
|
159
|
+
/** Optional: the connection string, only so it is redacted from public errors */
|
|
160
|
+
secrets?: {
|
|
161
|
+
url?: string;
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
/** Presets for PostgreSQL servers reached with a client library */
|
|
165
|
+
declare const postgres: {
|
|
166
|
+
ping: (options: PostgresPingOptions) => ServiceDefinition;
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
type ApiKey = {
|
|
170
|
+
secrets: {
|
|
171
|
+
apiKey: string | undefined;
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
type DeepgramOptions = PresetOptions & ApiKey & {
|
|
175
|
+
track?: {
|
|
176
|
+
/** Warn when the prepaid balance drops below this amount (default 20). `false` skips the balance. */
|
|
177
|
+
balance?: {
|
|
178
|
+
warnBelow?: number;
|
|
179
|
+
} | false;
|
|
180
|
+
};
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Deepgram. Lists projects, then reads the balance of the first one.
|
|
184
|
+
* - up: the key works
|
|
185
|
+
* - degraded: balance below `track.balance.warnBelow`, or the key sees no project
|
|
186
|
+
* - down: the API rejects the key or errors
|
|
187
|
+
*
|
|
188
|
+
* Reports `metrics.balance`. Keys without billing scope still count as up.
|
|
189
|
+
*/
|
|
190
|
+
declare const deepgram: (options: DeepgramOptions) => ServiceDefinition;
|
|
191
|
+
/** Gladia. Lists live sessions (limit 1). up when the key works; down when rejected. */
|
|
192
|
+
declare const gladia: (options: CommonOptions & ApiKey) => ServiceDefinition;
|
|
193
|
+
type SpeechmaticsOptions = PresetOptions & ApiKey & {
|
|
194
|
+
/** API base URL, e.g. the EU endpoint (default "https://asr.api.speechmatics.com") */
|
|
195
|
+
baseUrl?: string;
|
|
196
|
+
};
|
|
197
|
+
/** Speechmatics. Lists batch jobs (limit 1), which validates the API key. */
|
|
198
|
+
declare const speechmatics: (options: SpeechmaticsOptions) => ServiceDefinition;
|
|
199
|
+
type OpenAIOptions = PresetOptions & ApiKey & {
|
|
200
|
+
/** Sent as the `OpenAI-Organization` header */
|
|
201
|
+
organization?: string;
|
|
202
|
+
track?: {
|
|
203
|
+
/** Also check that the key can use this model (`GET /v1/models/{model}`) */
|
|
204
|
+
model?: string;
|
|
205
|
+
};
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* OpenAI. Lists models, or reads one model when `track.model` is set (both free).
|
|
209
|
+
* It proves the key works; it can't see billing problems, which only show on real requests.
|
|
210
|
+
*/
|
|
211
|
+
declare const openai: (options: OpenAIOptions) => ServiceDefinition;
|
|
212
|
+
/** Anthropic. Lists models (limit 1). up when the key works; down when rejected. */
|
|
213
|
+
declare const anthropic: (options: CommonOptions & ApiKey) => ServiceDefinition;
|
|
214
|
+
/** Google Gemini. Lists models (page size 1). */
|
|
215
|
+
declare const gemini: (options: CommonOptions & ApiKey) => ServiceDefinition;
|
|
216
|
+
/** CAMB.AI. Lists source languages. */
|
|
217
|
+
declare const cambai: (options: CommonOptions & ApiKey) => ServiceDefinition;
|
|
218
|
+
type ElevenLabsOptions = PresetOptions & ApiKey & {
|
|
219
|
+
track?: {
|
|
220
|
+
/** Warn when less than this share of the period's credits is left (default 10) */
|
|
221
|
+
quota?: {
|
|
222
|
+
warnBelowPct?: number;
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* ElevenLabs. Reads the subscription, which validates the API key.
|
|
228
|
+
* - up: the key works. A key without the user scope is refused with `missing_permissions`,
|
|
229
|
+
* which still proves it is valid.
|
|
230
|
+
* - degraded: less than `track.quota.warnBelowPct` of the credits left
|
|
231
|
+
* - down: the API rejects the key or errors
|
|
232
|
+
*
|
|
233
|
+
* Reports a `usage` bar (credits used this period, with the reset time) and `metrics.tier`.
|
|
234
|
+
*/
|
|
235
|
+
declare const elevenlabs: (options: ElevenLabsOptions) => ServiceDefinition;
|
|
236
|
+
|
|
237
|
+
type DeepLOptions = PresetOptions & {
|
|
238
|
+
secrets: {
|
|
239
|
+
apiKey: string | undefined;
|
|
240
|
+
};
|
|
241
|
+
track?: {
|
|
242
|
+
/** Warn when this share of the character quota is used (default 90) */
|
|
243
|
+
quota?: {
|
|
244
|
+
warnAbovePct?: number;
|
|
245
|
+
};
|
|
246
|
+
};
|
|
247
|
+
};
|
|
248
|
+
/**
|
|
249
|
+
* DeepL. Reads `/v2/usage` (free and paid keys are detected from the key).
|
|
250
|
+
* - up: quota available
|
|
251
|
+
* - degraded: usage at or above `track.quota.warnAbovePct`
|
|
252
|
+
* - down: the API rejects the key or errors
|
|
253
|
+
*
|
|
254
|
+
* Reports a `usage` bar: characters used of the limit.
|
|
255
|
+
*/
|
|
256
|
+
declare const deepl: (options: DeepLOptions) => ServiceDefinition;
|
|
257
|
+
type AzureTranslatorOptions = PresetOptions & {
|
|
258
|
+
secrets: {
|
|
259
|
+
apiKey: string | undefined;
|
|
260
|
+
};
|
|
261
|
+
/** Region of the Translator resource (default "westeurope") */
|
|
262
|
+
region?: string;
|
|
263
|
+
};
|
|
264
|
+
/** Azure Translator. Translates a single character, which proves the key and region work. */
|
|
265
|
+
declare const azureTranslator: (options: AzureTranslatorOptions) => ServiceDefinition;
|
|
266
|
+
type GoogleTranslateOptions = PresetOptions & {
|
|
267
|
+
secrets: {
|
|
268
|
+
/** The service-account JSON key (the whole file content), not an API key */
|
|
269
|
+
serviceAccount: string | undefined;
|
|
270
|
+
};
|
|
271
|
+
/** Translation location (default "global") */
|
|
272
|
+
location?: string;
|
|
273
|
+
};
|
|
274
|
+
/**
|
|
275
|
+
* Google Cloud Translation v3, with a service account. Gets a token, then lists supported
|
|
276
|
+
* languages (free: Google bills by characters translated).
|
|
277
|
+
* - up: languages returned
|
|
278
|
+
* - down: the key isn't valid JSON, or auth or the API fails
|
|
279
|
+
*
|
|
280
|
+
* Reports `metrics.languages`.
|
|
281
|
+
*/
|
|
282
|
+
declare const googleTranslate: (options: GoogleTranslateOptions) => ServiceDefinition;
|
|
283
|
+
|
|
284
|
+
type MuxOptions = PresetOptions & {
|
|
285
|
+
secrets: {
|
|
286
|
+
tokenId: string | undefined;
|
|
287
|
+
tokenSecret: string | undefined;
|
|
288
|
+
};
|
|
289
|
+
};
|
|
290
|
+
/** Mux Video. Lists live streams (limit 1). up when the token works; down when rejected. */
|
|
291
|
+
declare const mux: (options: MuxOptions) => ServiceDefinition;
|
|
292
|
+
type CloudflareStreamOptions = PresetOptions & {
|
|
293
|
+
/** The Cloudflare account ID */
|
|
294
|
+
accountId: string | undefined;
|
|
295
|
+
secrets: {
|
|
296
|
+
token: string | undefined;
|
|
297
|
+
};
|
|
298
|
+
track?: {
|
|
299
|
+
/** Warn when this share of the storage plan is used (default 90). `false` skips storage. */
|
|
300
|
+
storage?: {
|
|
301
|
+
warnAbovePct?: number;
|
|
302
|
+
} | false;
|
|
303
|
+
};
|
|
304
|
+
};
|
|
305
|
+
/**
|
|
306
|
+
* Cloudflare Stream. Lists videos (limit 1) and reads storage usage, in parallel.
|
|
307
|
+
* - up: both calls work
|
|
308
|
+
* - degraded: storage at or above `track.storage.warnAbovePct`
|
|
309
|
+
* - down: either call fails
|
|
310
|
+
*
|
|
311
|
+
* Reports a `usage` bar (storage minutes) and `metrics.videos`.
|
|
312
|
+
*/
|
|
313
|
+
declare const cloudflareStream: (options: CloudflareStreamOptions) => ServiceDefinition;
|
|
314
|
+
|
|
315
|
+
type MailerSendOptions = PresetOptions & {
|
|
316
|
+
secrets: {
|
|
317
|
+
apiKey: string | undefined;
|
|
318
|
+
};
|
|
319
|
+
track?: {
|
|
320
|
+
/** Warn when less than this share of the API quota is left (default 10) */
|
|
321
|
+
quota?: {
|
|
322
|
+
warnBelowPct?: number;
|
|
323
|
+
};
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
/**
|
|
327
|
+
* MailerSend. Reads `/v1/api-quota`.
|
|
328
|
+
* - up: quota available
|
|
329
|
+
* - degraded: less than `track.quota.warnBelowPct` of the requests left
|
|
330
|
+
* - down: the API rejects the key or errors
|
|
331
|
+
*
|
|
332
|
+
* Reports a `usage` bar: API requests used, with the reset time.
|
|
333
|
+
*/
|
|
334
|
+
declare const mailersend: (options: MailerSendOptions) => ServiceDefinition;
|
|
335
|
+
type GitHubOptions = PresetOptions & {
|
|
336
|
+
secrets: {
|
|
337
|
+
token: string | undefined;
|
|
338
|
+
};
|
|
339
|
+
track?: {
|
|
340
|
+
/** Also check that the token can read this repository's releases, e.g. "owner/name" */
|
|
341
|
+
repo?: string;
|
|
342
|
+
/** Warn when less than this share of the hourly rate limit is left (default 10) */
|
|
343
|
+
rateLimit?: {
|
|
344
|
+
warnBelowPct?: number;
|
|
345
|
+
};
|
|
346
|
+
};
|
|
347
|
+
};
|
|
348
|
+
/**
|
|
349
|
+
* GitHub. Reads `/rate_limit` (free: it doesn't count against the limit), and optionally
|
|
350
|
+
* checks access to a repository's releases.
|
|
351
|
+
* - up: the token works (and can read the repository)
|
|
352
|
+
* - degraded: less than `track.rateLimit.warnBelowPct` of the hourly requests left
|
|
353
|
+
* - down: bad credentials, or the repository can't be read
|
|
354
|
+
*
|
|
355
|
+
* Reports a `usage` bar: requests this hour, with the reset time.
|
|
356
|
+
*/
|
|
357
|
+
declare const github: (options: GitHubOptions) => ServiceDefinition;
|
|
358
|
+
type RevolutOptions = PresetOptions & {
|
|
359
|
+
secrets: {
|
|
360
|
+
apiKey: string | undefined;
|
|
361
|
+
};
|
|
362
|
+
/** Which Merchant API to call (default "production") */
|
|
363
|
+
environment?: "production" | "sandbox";
|
|
364
|
+
};
|
|
365
|
+
/** Revolut Merchant. Lists orders (limit 1). up when the secret key works; down when rejected. */
|
|
366
|
+
declare const revolut: (options: RevolutOptions) => ServiceDefinition;
|
|
367
|
+
type AttendeeOptions = PresetOptions & {
|
|
368
|
+
secrets: {
|
|
369
|
+
apiKey: string | undefined;
|
|
370
|
+
};
|
|
371
|
+
/** API base URL (default "https://app.attendee.dev") */
|
|
372
|
+
baseUrl?: string;
|
|
373
|
+
};
|
|
374
|
+
/** Attendee (meeting bots). Lists bots (page size 1). */
|
|
375
|
+
declare const attendee: (options: AttendeeOptions) => ServiceDefinition;
|
|
376
|
+
type AxiomOptions = PresetOptions & {
|
|
377
|
+
/** The dataset logs are sent to */
|
|
378
|
+
dataset: string | undefined;
|
|
379
|
+
/** Regional edge domain for ingestion, e.g. "eu-central-1.aws.edge.axiom.co" */
|
|
380
|
+
edge?: string;
|
|
381
|
+
secrets: {
|
|
382
|
+
token: string | undefined;
|
|
383
|
+
};
|
|
384
|
+
};
|
|
385
|
+
/** Axiom. Ingests an empty batch into the dataset: it writes nothing and proves token and dataset. */
|
|
386
|
+
declare const axiom: (options: AxiomOptions) => ServiceDefinition;
|
|
387
|
+
type UpstashRedisOptions = PresetOptions & {
|
|
388
|
+
/** REST URL of the database */
|
|
389
|
+
url: string | undefined;
|
|
390
|
+
secrets: {
|
|
391
|
+
token: string | undefined;
|
|
392
|
+
};
|
|
393
|
+
};
|
|
394
|
+
/**
|
|
395
|
+
* Upstash Redis / Vercel KV, over REST. Sends `PING` as a regular command (which compatible
|
|
396
|
+
* servers such as serverless-redis-http also accept). up on PONG.
|
|
397
|
+
*/
|
|
398
|
+
declare const upstashRedis: (options: UpstashRedisOptions) => ServiceDefinition;
|
|
399
|
+
type StatuspageOptions = PresetOptions & {
|
|
400
|
+
/** The status page, e.g. "https://status.flyio.net" */
|
|
401
|
+
url: string;
|
|
402
|
+
};
|
|
403
|
+
/**
|
|
404
|
+
* Any provider that publishes an Atlassian Statuspage (Fly.io, Vercel, Cloudflare, GitHub…).
|
|
405
|
+
* Reads `/api/v2/status.json`.
|
|
406
|
+
* - up: the provider reports no incident
|
|
407
|
+
* - degraded: a minor incident
|
|
408
|
+
* - down: a major or critical incident
|
|
409
|
+
*
|
|
410
|
+
* The provider's own description becomes the error text.
|
|
411
|
+
*/
|
|
412
|
+
declare const statuspage: (options: StatuspageOptions) => ServiceDefinition;
|
|
413
|
+
type ResendOptions = PresetOptions & {
|
|
414
|
+
secrets: {
|
|
415
|
+
apiKey: string | undefined;
|
|
416
|
+
};
|
|
417
|
+
};
|
|
418
|
+
/**
|
|
419
|
+
* Resend. Lists domains, which validates the API key.
|
|
420
|
+
* - up: the key works. A sending-only key is refused with `restricted_api_key`, which still
|
|
421
|
+
* proves it is valid.
|
|
422
|
+
* - degraded: domains exist, but none is verified
|
|
423
|
+
* - down: the API rejects the key or errors
|
|
424
|
+
*
|
|
425
|
+
* Reports `metrics.domains` and `metrics.verified` for full-access keys.
|
|
426
|
+
*/
|
|
427
|
+
declare const resend: (options: ResendOptions) => ServiceDefinition;
|
|
428
|
+
type MeilisearchOptions = PresetOptions & {
|
|
429
|
+
/** The server, e.g. "https://search.example.com" */
|
|
430
|
+
host: string | undefined;
|
|
431
|
+
/** Also require this index, and report its document count */
|
|
432
|
+
index?: string;
|
|
433
|
+
secrets: {
|
|
434
|
+
apiKey: string | undefined;
|
|
435
|
+
};
|
|
436
|
+
};
|
|
437
|
+
/**
|
|
438
|
+
* Meilisearch. Reads `/health`, then the index (or the list of indexes), which validates the key.
|
|
439
|
+
* - up: the server is available and the key works
|
|
440
|
+
* - degraded: the index does not exist
|
|
441
|
+
* - down: the server is unavailable, or rejects the key
|
|
442
|
+
*
|
|
443
|
+
* Reports `metrics.documents`, and `metrics.indexing` while a batch is running, when the key
|
|
444
|
+
* may read statistics; scoped keys often may not, and that is not held against them.
|
|
445
|
+
*/
|
|
446
|
+
declare const meilisearch: (options: MeilisearchOptions) => ServiceDefinition;
|
|
447
|
+
|
|
448
|
+
type PusherOptions = PresetOptions & {
|
|
449
|
+
appId: string | undefined;
|
|
450
|
+
/** Pusher cluster, e.g. "eu" (default "mt1"). Ignored when `host` is set. */
|
|
451
|
+
cluster?: string;
|
|
452
|
+
/** Custom host, for Pusher-compatible servers such as Soketi */
|
|
453
|
+
host?: string;
|
|
454
|
+
port?: string | number;
|
|
455
|
+
/** Use HTTPS (default: true unless a non-443 port is given) */
|
|
456
|
+
tls?: boolean;
|
|
457
|
+
secrets: {
|
|
458
|
+
key: string | undefined;
|
|
459
|
+
secret: string | undefined;
|
|
460
|
+
};
|
|
461
|
+
track?: {
|
|
462
|
+
connections?: {
|
|
463
|
+
/** Your plan's maximum concurrent connections: turns the counts into usage bars */
|
|
464
|
+
max?: number;
|
|
465
|
+
/** Warn when today's peak reaches this share of `max` (default 90) */
|
|
466
|
+
warnAbovePct?: number;
|
|
467
|
+
};
|
|
468
|
+
};
|
|
469
|
+
};
|
|
470
|
+
/** Path and signed query of a GET to the Pusher HTTP API */
|
|
471
|
+
declare function signPusherRequest({ appId, key, secret, path, params, timestamp, }: {
|
|
472
|
+
appId: string;
|
|
473
|
+
key: string;
|
|
474
|
+
secret: string;
|
|
475
|
+
path: string;
|
|
476
|
+
params?: Record<string, string>;
|
|
477
|
+
timestamp?: number;
|
|
478
|
+
}): Promise<string>;
|
|
479
|
+
/**
|
|
480
|
+
* Pusher Channels (and compatible servers). Lists occupied channels, then reads each one's
|
|
481
|
+
* `subscription_count` to estimate concurrent connections. Pusher has no usage API, so this is
|
|
482
|
+
* an estimate: clients subscribed to several channels make it run slightly high.
|
|
483
|
+
* Requires "subscription counting" enabled in the app settings.
|
|
484
|
+
* - up: the API answers
|
|
485
|
+
* - degraded: today's peak at or above `warnAbovePct` of `track.connections.max`, or subscription counting is off
|
|
486
|
+
* - down: the API rejects the credentials or errors
|
|
487
|
+
*
|
|
488
|
+
* Reports `metrics.channels` and `metrics.signedInUsers`; with `max`, two `usage` bars
|
|
489
|
+
* (connections now, peak today), otherwise the counts as metrics. The daily peak (UTC) is kept
|
|
490
|
+
* in the store's cache.
|
|
491
|
+
*/
|
|
492
|
+
declare const pusher: (options: PusherOptions) => ServiceDefinition;
|
|
493
|
+
|
|
494
|
+
type VercelAiGatewayOptions = PresetOptions & {
|
|
495
|
+
secrets: {
|
|
496
|
+
apiKey: string | undefined;
|
|
497
|
+
};
|
|
498
|
+
track?: {
|
|
499
|
+
/** Warn when the credit balance drops below this amount in USD (default 5). `false` skips the balance. */
|
|
500
|
+
credits?: {
|
|
501
|
+
warnBelow?: number;
|
|
502
|
+
} | false;
|
|
503
|
+
};
|
|
504
|
+
};
|
|
505
|
+
type VercelBlobOptions = PresetOptions & {
|
|
506
|
+
secrets: {
|
|
507
|
+
token: string | undefined;
|
|
508
|
+
};
|
|
509
|
+
};
|
|
510
|
+
/** Presets for Vercel products */
|
|
511
|
+
declare const vercel: {
|
|
512
|
+
aiGateway: (options: VercelAiGatewayOptions) => ServiceDefinition;
|
|
513
|
+
blob: (options: VercelBlobOptions) => ServiceDefinition;
|
|
514
|
+
};
|
|
515
|
+
|
|
516
|
+
export { type AttendeeOptions, type AwsCredentialsOptions, type AxiomOptions, type AzureTranslatorOptions, type CloudflareStreamOptions, type DeepLOptions, type DeepgramOptions, type ElevenLabsOptions, type FlyAppOptions, type GcpInstanceOptions, type GitHubOptions, type GoogleServiceAccount, type GoogleTranslateOptions, type MailerSendOptions, type MeilisearchOptions, type MongoPingOptions, type MuxOptions, type OpenAIOptions, type PostgresPingOptions, type PusherOptions, type RedisPingOptions, type ResendOptions, type RevolutOptions, type S3BucketOptions, type SpeechmaticsOptions, type StatuspageOptions, type UpstashRedisOptions, type VercelAiGatewayOptions, type VercelBlobOptions, anthropic, attendee, aws, axiom, azureTranslator, cambai, clearGoogleTokens, cloudflareStream, crashReason, deepgram, deepl, elevenlabs, fly, gcp, gemini, github, gladia, googleServiceAccountToken, googleTranslate, mailersend, meilisearch, mongodb, mux, openai, parseServiceAccount, postgres, pusher, redis, resend, revolut, signGoogleAssertion, signPusherRequest, speechmatics, statuspage, upstashRedis, vercel };
|