clefbase 1.5.3 → 2.0.1

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.
@@ -5,17 +5,12 @@ export interface HostingSite {
5
5
  id: string;
6
6
  dbId: string;
7
7
  name: string;
8
- /** URL-safe slug — globally unique, used for the preview subdomain */
9
8
  slug: string;
10
9
  description?: string;
11
10
  status: HostingStatus;
12
- /** Auto-provisioned: {slug}.preview.cleforyx.com */
13
11
  previewUrl: string;
14
- /** Optional custom domain the user has configured */
15
12
  customDomain?: string;
16
- /** Cloudflare DNS record ID for the preview subdomain */
17
13
  dnsRecordId?: string;
18
- /** Non-fatal DNS warning set on creation if Cloudflare provisioning failed */
19
14
  dnsWarning?: string;
20
15
  createdAt: string;
21
16
  updatedAt: string;
@@ -62,40 +57,13 @@ export interface DeployOptions {
62
57
  /** Called after each batch with progress info. */
63
58
  onProgress?: (uploaded: number, total: number) => void;
64
59
  }
65
- export interface DnsStatus {
66
- preview: {
67
- exists: boolean;
68
- isCorrect: boolean;
69
- isConflict: boolean;
70
- message: string;
71
- record?: {
72
- name: string;
73
- type: string;
74
- content: string;
75
- };
76
- };
77
- customDomain?: {
78
- domain: string;
79
- cnameOk: boolean;
80
- cnameTarget?: string;
81
- conflict: boolean;
82
- instructions: {
83
- type: string;
84
- name: string;
85
- content: string;
86
- note: string;
87
- };
88
- };
89
- previewUrl: string;
90
- }
91
60
  /**
92
- * A reference to a hosted site.
61
+ * A reference to a hosted site obtained via `hosting.site(siteId)`.
93
62
  *
94
63
  * @example
95
64
  * const site = hosting.site("my-site-id");
96
- * const result = await site.deployFiles({ "index.html": htmlBuffer, "app.js": jsBuffer });
65
+ * const result = await site.deployFiles({ "index.html": htmlBuffer });
97
66
  * console.log(`Live at ${result.url}`);
98
- * console.log(`Preview at ${result.previewUrl}`);
99
67
  */
100
68
  export declare class SiteReference {
101
69
  private readonly hosting;
@@ -109,11 +77,8 @@ export declare class SiteReference {
109
77
  listDeploys(): Promise<HostingDeploy[]>;
110
78
  /**
111
79
  * Deploy a map of { "filePath": Buffer } to this site.
112
- * Creates a deploy, uploads all files in batches, then goes live.
113
80
  *
114
81
  * @example
115
- * import fs from "fs";
116
- *
117
82
  * const result = await site.deployFiles({
118
83
  * "index.html": fs.readFileSync("dist/index.html"),
119
84
  * "app.js": fs.readFileSync("dist/app.js"),
@@ -124,83 +89,28 @@ export declare class SiteReference {
124
89
  * console.log(`Live at ${result.url}`);
125
90
  */
126
91
  deployFiles(files: Record<string, Buffer>, opts?: DeployOptions): Promise<DeployResult>;
127
- /** Check the DNS status of this site's preview + custom domains. */
128
- getDnsStatus(): Promise<DnsStatus>;
129
- /** Re-provision the preview DNS record (e.g. if it was accidentally deleted). */
130
- reprovisionDns(): Promise<{
131
- subdomain: string;
132
- url: string;
133
- created: boolean;
134
- }>;
135
- /** The preview URL for this site ({slug}.preview.cleforyx.com). */
136
- get previewUrl(): string;
137
- /**
138
- * The public URL — custom domain if configured, else preview subdomain.
139
- * Requires the site metadata; use `(await site.get())?.customDomain` to check.
140
- */
141
- get url(): string;
142
92
  }
143
93
  /**
144
- * Hosting service. Obtain via `getHosting(app)`.
94
+ * Hosting service obtained via `getHosting(app)`.
145
95
  *
146
96
  * @example
147
97
  * const hosting = getHosting(app);
148
- *
149
- * // Create a site — automatically provisions {name}.preview.cleforyx.com
150
- * const site = await hosting.createSite("my-app");
151
- * console.log(site.previewUrl); // https://my-app.preview.cleforyx.com
152
- *
153
- * // Deploy files
154
- * const result = await hosting.site(site.id).deployFiles(files);
98
+ * const sites = await hosting.listSites();
99
+ * const result = await hosting.site(sites[0].id).deployFiles(files);
155
100
  * console.log(result.url);
156
101
  */
157
102
  export declare class ClefbaseHosting {
158
103
  private readonly http;
159
- private readonly dbId;
160
- private readonly serverUrl;
161
- constructor(http: HttpClient, dbId: string, serverUrl: string);
104
+ constructor(http: HttpClient);
162
105
  /** List all sites for this project. */
163
106
  listSites(): Promise<HostingSite[]>;
164
- /**
165
- * Create a new hosted site.
166
- *
167
- * Site names must be globally unique across the platform.
168
- * A CNAME record will be automatically provisioned on Cloudflare:
169
- * {slug}.preview.cleforyx.com → cleforyx.com
170
- *
171
- * Throws a 409 ConflictError if the name is already taken.
172
- */
173
- createSite(name: string, description?: string): Promise<HostingSite>;
174
- /** Update site metadata. Handles DNS rename if name changes. */
175
- updateSite(siteId: string, patch: Partial<Pick<HostingSite, "name" | "description" | "status" | "customDomain">>): Promise<HostingSite>;
176
- /**
177
- * Begin site deletion flow.
178
- *
179
- * Pass `confirm: false` (or omit) to get a confirmation prompt with DNS info.
180
- * Pass `confirm: true` to actually delete. Include `deleteDns: true` to also
181
- * remove the Cloudflare DNS record.
182
- */
183
- deleteSite(siteId: string, opts?: {
184
- confirm?: boolean;
185
- deleteDns?: boolean;
186
- }): Promise<{
187
- requiresConfirmation?: boolean;
188
- dnsRecord?: object;
189
- message: string;
190
- deleted?: boolean;
191
- }>;
107
+ /** Get a single site by ID. Returns null if not found. */
108
+ getSite(siteId: string): Promise<HostingSite | null>;
192
109
  /** Return a SiteReference for a specific site ID. */
193
110
  site(siteId: string): SiteReference;
194
- _previewUrl(siteId: string): string;
195
111
  _getSite(siteId: string): Promise<HostingSite | null>;
196
112
  _getActiveDeploy(siteId: string): Promise<HostingDeploy | null>;
197
113
  _listDeploys(siteId: string): Promise<HostingDeploy[]>;
198
- _getDnsStatus(siteId: string): Promise<DnsStatus>;
199
- _reprovisionDns(siteId: string): Promise<{
200
- subdomain: string;
201
- url: string;
202
- created: boolean;
203
- }>;
204
114
  _deployFiles(siteId: string, files: Record<string, Buffer>, opts?: DeployOptions): Promise<DeployResult>;
205
115
  }
206
116
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hosting/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hosting/index.ts"],"names":[],"mappings":"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"}
@@ -36,13 +36,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.ClefbaseHosting = exports.SiteReference = void 0;
37
37
  // ─── SiteReference ────────────────────────────────────────────────────────────
38
38
  /**
39
- * A reference to a hosted site.
39
+ * A reference to a hosted site obtained via `hosting.site(siteId)`.
40
40
  *
41
41
  * @example
42
42
  * const site = hosting.site("my-site-id");
43
- * const result = await site.deployFiles({ "index.html": htmlBuffer, "app.js": jsBuffer });
43
+ * const result = await site.deployFiles({ "index.html": htmlBuffer });
44
44
  * console.log(`Live at ${result.url}`);
45
- * console.log(`Preview at ${result.previewUrl}`);
46
45
  */
47
46
  class SiteReference {
48
47
  constructor(hosting, siteId) {
@@ -63,11 +62,8 @@ class SiteReference {
63
62
  }
64
63
  /**
65
64
  * Deploy a map of { "filePath": Buffer } to this site.
66
- * Creates a deploy, uploads all files in batches, then goes live.
67
65
  *
68
66
  * @example
69
- * import fs from "fs";
70
- *
71
67
  * const result = await site.deployFiles({
72
68
  * "index.html": fs.readFileSync("dist/index.html"),
73
69
  * "app.js": fs.readFileSync("dist/app.js"),
@@ -80,96 +76,38 @@ class SiteReference {
80
76
  async deployFiles(files, opts) {
81
77
  return this.hosting._deployFiles(this.siteId, files, opts);
82
78
  }
83
- /** Check the DNS status of this site's preview + custom domains. */
84
- async getDnsStatus() {
85
- return this.hosting._getDnsStatus(this.siteId);
86
- }
87
- /** Re-provision the preview DNS record (e.g. if it was accidentally deleted). */
88
- async reprovisionDns() {
89
- return this.hosting._reprovisionDns(this.siteId);
90
- }
91
- /** The preview URL for this site ({slug}.preview.cleforyx.com). */
92
- get previewUrl() {
93
- return this.hosting._previewUrl(this.siteId);
94
- }
95
- /**
96
- * The public URL — custom domain if configured, else preview subdomain.
97
- * Requires the site metadata; use `(await site.get())?.customDomain` to check.
98
- */
99
- get url() {
100
- return this.previewUrl; // SDK doesn't cache site; use DeployResult.url for canonical
101
- }
102
79
  }
103
80
  exports.SiteReference = SiteReference;
104
81
  // ─── ClefbaseHosting ──────────────────────────────────────────────────────────
105
82
  /**
106
- * Hosting service. Obtain via `getHosting(app)`.
83
+ * Hosting service obtained via `getHosting(app)`.
107
84
  *
108
85
  * @example
109
86
  * const hosting = getHosting(app);
110
- *
111
- * // Create a site — automatically provisions {name}.preview.cleforyx.com
112
- * const site = await hosting.createSite("my-app");
113
- * console.log(site.previewUrl); // https://my-app.preview.cleforyx.com
114
- *
115
- * // Deploy files
116
- * const result = await hosting.site(site.id).deployFiles(files);
87
+ * const sites = await hosting.listSites();
88
+ * const result = await hosting.site(sites[0].id).deployFiles(files);
117
89
  * console.log(result.url);
118
90
  */
119
91
  class ClefbaseHosting {
120
- constructor(http, dbId, serverUrl) {
92
+ constructor(http) {
121
93
  this.http = http;
122
- this.dbId = dbId;
123
- this.serverUrl = serverUrl;
124
94
  }
125
95
  /** List all sites for this project. */
126
96
  async listSites() {
127
- return this.http.get(`/databases/${this.dbId}/sites`);
97
+ return this.http.get("/sites");
128
98
  }
129
- /**
130
- * Create a new hosted site.
131
- *
132
- * Site names must be globally unique across the platform.
133
- * A CNAME record will be automatically provisioned on Cloudflare:
134
- * {slug}.preview.cleforyx.com → cleforyx.com
135
- *
136
- * Throws a 409 ConflictError if the name is already taken.
137
- */
138
- async createSite(name, description) {
139
- return this.http.post(`/databases/${this.dbId}/sites`, { name, description });
140
- }
141
- /** Update site metadata. Handles DNS rename if name changes. */
142
- async updateSite(siteId, patch) {
143
- return this.http.patch(`/databases/${this.dbId}/sites/${siteId}`, patch);
144
- }
145
- /**
146
- * Begin site deletion flow.
147
- *
148
- * Pass `confirm: false` (or omit) to get a confirmation prompt with DNS info.
149
- * Pass `confirm: true` to actually delete. Include `deleteDns: true` to also
150
- * remove the Cloudflare DNS record.
151
- */
152
- async deleteSite(siteId, opts) {
153
- const params = new URLSearchParams();
154
- if (opts?.confirm)
155
- params.set("confirm", "true");
156
- if (opts?.deleteDns)
157
- params.set("deleteDns", "true");
158
- const qs = params.toString() ? `?${params}` : "";
159
- return this.http.delete(`/databases/${this.dbId}/sites/${siteId}${qs}`);
99
+ /** Get a single site by ID. Returns null if not found. */
100
+ async getSite(siteId) {
101
+ return this._getSite(siteId);
160
102
  }
161
103
  /** Return a SiteReference for a specific site ID. */
162
104
  site(siteId) {
163
105
  return new SiteReference(this, siteId);
164
106
  }
165
- // ─── Internals ─────────────────────────────────────────────────────────────
166
- _previewUrl(siteId) {
167
- // Falls back to server URL path if site metadata isn't cached
168
- return `${this.serverUrl.replace(/\/+$/, "")}/hosted/${this.dbId}/${siteId}`;
169
- }
107
+ // ─── Internals used by SiteReference ──────────────────────────────────────
170
108
  async _getSite(siteId) {
171
109
  try {
172
- return await this.http.get(`/databases/${this.dbId}/sites/${siteId}`);
110
+ return await this.http.get(`/sites/${siteId}`);
173
111
  }
174
112
  catch (err) {
175
113
  if (err.status === 404)
@@ -179,7 +117,7 @@ class ClefbaseHosting {
179
117
  }
180
118
  async _getActiveDeploy(siteId) {
181
119
  try {
182
- const r = await this.http.get(`/databases/${this.dbId}/sites/${siteId}/active`);
120
+ const r = await this.http.get(`/sites/${siteId}/active`);
183
121
  return r.deploy;
184
122
  }
185
123
  catch (err) {
@@ -189,19 +127,13 @@ class ClefbaseHosting {
189
127
  }
190
128
  }
191
129
  async _listDeploys(siteId) {
192
- return this.http.get(`/databases/${this.dbId}/sites/${siteId}/deploys`);
193
- }
194
- async _getDnsStatus(siteId) {
195
- return this.http.get(`/databases/${this.dbId}/sites/${siteId}/dns`);
196
- }
197
- async _reprovisionDns(siteId) {
198
- return this.http.post(`/databases/${this.dbId}/sites/${siteId}/dns/provision`, {});
130
+ return this.http.get(`/sites/${siteId}/deploys`);
199
131
  }
200
132
  async _deployFiles(siteId, files, opts = {}) {
201
133
  const { entrypoint = "index.html", deployedBy, message, batchSize = 20, onProgress } = opts;
202
134
  // 1. Create pending deploy
203
- const pending = await this.http.post(`/databases/${this.dbId}/sites/${siteId}/deploys`, { deployedBy, entrypoint });
204
- // 2. Get site for canonical URL
135
+ const pending = await this.http.post(`/sites/${siteId}/deploys`, { deployedBy, entrypoint });
136
+ // 2. Fetch site for canonical URL — non-fatal
205
137
  const siteData = await this._getSite(siteId).catch(() => null);
206
138
  const filePaths = Object.keys(files);
207
139
  const fileBuffers = Object.values(files);
@@ -220,27 +152,37 @@ class ClefbaseHosting {
220
152
  const batchBuffers = fileBuffers.slice(i, i + batchSize);
221
153
  try {
222
154
  if (hasNativeFormData) {
155
+ // Native FormData (Node 18+ / browsers): the runtime sets Content-Type + boundary.
223
156
  const form = new FormData();
224
157
  for (let j = 0; j < batchPaths.length; j++) {
225
158
  const filename = batchPaths[j].split("/").pop() ?? batchPaths[j];
226
159
  const buf = batchBuffers[j];
227
160
  const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);
228
- const blob = new Blob([ab], { type: "application/octet-stream" });
229
- form.append("files[]", new File([blob], filename, { type: "application/octet-stream" }));
161
+ form.append("files[]", new File([new Blob([ab])], filename, { type: "application/octet-stream" }));
230
162
  form.append("filePaths", batchPaths[j]);
231
163
  }
232
- await this.http.request(`/databases/${this.dbId}/deploys/${pending.id}/files/batch`, { method: "POST", body: form, isFormData: true });
164
+ await this.http.request(`/deploys/${pending.id}/files/batch`, {
165
+ method: "POST",
166
+ body: form,
167
+ isFormData: true,
168
+ });
233
169
  }
234
170
  else {
171
+ // Legacy form-data npm package (Node < 18): must pass getHeaders() explicitly
172
+ // so HttpClient can include the multipart Content-Type + boundary header.
235
173
  const form = new FormDataLegacy();
236
174
  for (let j = 0; j < batchPaths.length; j++) {
237
- form.append("files[]", batchBuffers[j], {
238
- filename: batchPaths[j].split("/").pop() ?? batchPaths[j],
239
- contentType: "application/octet-stream",
240
- });
175
+ form.append("files[]", batchBuffers[j], { filename: batchPaths[j].split("/").pop() ?? batchPaths[j], contentType: "application/octet-stream" });
241
176
  form.append("filePaths", batchPaths[j]);
242
177
  }
243
- await this.http.request(`/databases/${this.dbId}/deploys/${pending.id}/files/batch`, { method: "POST", body: form, isFormData: true });
178
+ // FIX: pass form.getHeaders() so the multipart boundary is sent to the server.
179
+ // Without this, the server receives no Content-Type header and rejects the upload.
180
+ await this.http.request(`/deploys/${pending.id}/files/batch`, {
181
+ method: "POST",
182
+ body: form,
183
+ isFormData: true,
184
+ headers: form.getHeaders(),
185
+ });
244
186
  }
245
187
  uploaded += batchPaths.length;
246
188
  }
@@ -250,16 +192,16 @@ class ClefbaseHosting {
250
192
  onProgress?.(Math.min(i + batchSize, filePaths.length), filePaths.length);
251
193
  }
252
194
  // 5. Finalize → go live
253
- const live = await this.http.post(`/databases/${this.dbId}/deploys/${pending.id}/finalize`, { message: message ?? "Deployed via clefbase SDK" });
195
+ const live = await this.http.post(`/deploys/${pending.id}/finalize`, { message: message ?? "Deployed via clefbase SDK" });
254
196
  const canonicalUrl = siteData?.customDomain
255
197
  ? `https://${siteData.customDomain}`
256
- : siteData?.previewUrl ?? this._previewUrl(siteId);
198
+ : siteData?.previewUrl ?? "";
257
199
  return {
258
200
  deploy: live,
259
201
  filesUploaded: uploaded,
260
202
  errors,
261
203
  url: canonicalUrl,
262
- previewUrl: siteData?.previewUrl ?? this._previewUrl(siteId),
204
+ previewUrl: siteData?.previewUrl ?? "",
263
205
  };
264
206
  }
265
207
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hosting/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hosting/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,58 +4,94 @@
4
4
  * @example
5
5
  * import {
6
6
  * initClefbase, getDatabase, getAuth, getStorage, getHosting,
7
- * getFunctions, httpsCallable, callFunction, deployFunction, deployFromFile,
8
- * setAuthToken, FunctionsError, FieldValue,
7
+ * getFunctions, getAI,
8
+ * httpsCallable, callFunction, deployFunction, deployFromFile,
9
+ * generateText, generateImage, generateVideo, generateEmbedding,
10
+ * setAuthToken, FunctionsError, AIError, FieldValue,
9
11
  * } from "clefbase";
10
12
  *
11
- * const app = initClefbase({ serverUrl, projectId, apiKey, adminSecret: "" });
12
- * const fns = getFunctions(app);
13
- * const auth = getAuth(app);
13
+ * const app = initClefbase({ serverUrl, projectId, apiKey, adminSecret: "" });
14
14
  *
15
- * // ── Auth-aware function call ───────────────────────────────────────────────
15
+ * // ── Auth ──────────────────────────────────────────────────────────────────
16
+ * const auth = getAuth(app);
16
17
  * const { token } = await auth.signIn("alice@example.com", "password123");
17
- * setAuthToken(app, token); // ctx.auth.uid / email now available in function
18
18
  *
19
- * // ── Typed callable ────────────────────────────────────────────────────────
19
+ * // ── Database ──────────────────────────────────────────────────────────────
20
+ * const db = getDatabase(app);
21
+ * await db.collection("posts").doc("p1").update({
22
+ * views: FieldValue.increment(1),
23
+ * publishedAt: FieldValue.serverTimestamp(),
24
+ * });
25
+ *
26
+ * // ── Storage ───────────────────────────────────────────────────────────────
27
+ * const storage = getStorage(app);
28
+ * const url = await storage.ref("avatars/user-123.jpg").getDownloadURL();
29
+ *
30
+ * // ── Functions ─────────────────────────────────────────────────────────────
31
+ * const fns = getFunctions(app);
20
32
  * const greet = httpsCallable<{ name: string }, { message: string }>(fns, "greetUser");
21
33
  * const { data } = await greet({ name: "Alice" });
22
34
  *
23
- * // ── One-shot call ─────────────────────────────────────────────────────────
24
- * const { data } = await callFunction(fns, "greetUser", { name: "Bob" });
35
+ * // ── AI text / code ──────────────────────────────────────────────────────
36
+ * const ai = getAI(app);
25
37
  *
26
- * // ── Deploy from source ────────────────────────────────────────────────────
27
- * await deployFunction(fns, {
28
- * name: "greetUser",
29
- * runtime: "node",
30
- * trigger: { type: "http" },
31
- * source: `export async function handler(ctx) { return { message: "Hi " + ctx.data.name }; }`,
38
+ * const { content } = await ai.text({
39
+ * model: "claude-sonnet-4-5",
40
+ * prompt: "Explain async/await in JavaScript",
32
41
  * });
33
42
  *
34
- * // ── Deploy from file (Node.js) ────────────────────────────────────────────
35
- * await deployFromFile(fns, {
36
- * name: "processOrder",
37
- * runtime: "node",
38
- * trigger: { type: "http" },
39
- * filePath: "./src/functions/processOrder.ts",
43
+ * // Multi-turn chat
44
+ * const reply = await ai.text({
45
+ * model: "gemini-2.5-flash",
46
+ * prompt: "Give me a harder example",
47
+ * systemPrompt: "You are a JavaScript tutor.",
48
+ * history: [{ role: "user", content: "Explain closures" }, { role: "assistant", content: "..." }],
40
49
  * });
41
50
  *
42
- * // ── Error handling ────────────────────────────────────────────────────────
43
- * try {
44
- * await callFunction(fns, "mayFail");
45
- * } catch (err) {
46
- * if (err instanceof FunctionsError) {
47
- * console.error(err.httpStatus, err.message);
48
- * }
49
- * }
51
+ * // ── AI image generation (auto-saved to Storage) ─────────────────────────
52
+ * const { files } = await ai.image({
53
+ * model: "imagen-4.0-generate-001",
54
+ * prompt: "A serene mountain lake at dawn, photorealistic",
55
+ * aspectRatio: "16:9",
56
+ * numberOfImages: 2,
57
+ * outputFolder: "landscapes",
58
+ * });
59
+ * // files[].fullPath → path in project Storage
60
+ * // files[].storageFileId → use with storage.ref() to get the download URL
50
61
  *
51
- * // ── Database ──────────────────────────────────────────────────────────────
52
- * const db = getDatabase(app);
53
- * await db.collection("posts").doc("p1").update({
54
- * views: FieldValue.increment(1),
55
- * publishedAt: FieldValue.serverTimestamp(),
62
+ * // ── AI — video generation (auto-saved to Storage) ─────────────────────────
63
+ * const { status, files: clips } = await ai.video({
64
+ * model: "veo-3.1-generate-preview",
65
+ * prompt: "A slow-motion waterfall in a rainforest",
66
+ * durationSeconds: 8,
67
+ * aspectRatio: "16:9",
68
+ * });
69
+ *
70
+ * // ── AI — embeddings ───────────────────────────────────────────────────────
71
+ * const { embeddings } = await ai.embedding({
72
+ * model: "gemini-embedding-001",
73
+ * input: ["Hello world", "Semantic search"],
74
+ * });
75
+ *
76
+ * // ── AI — browse models ────────────────────────────────────────────────────
77
+ * const imageModels = await ai.listModels({ category: "image" });
78
+ * const allModels = await ai.listModels();
79
+ *
80
+ * // ── AI — usage stats ──────────────────────────────────────────────────────
81
+ * const stats = await ai.getStats();
82
+ * const history = await ai.getUsage({ limit: 20 });
83
+ *
84
+ * // ── AI — convenience top-level functions ──────────────────────────────────
85
+ * const { content: code } = await generateText(ai, {
86
+ * model: "claude-sonnet-4-5",
87
+ * prompt: "Write a merge sort in TypeScript",
88
+ * });
89
+ * const { files: imgs } = await generateImage(ai, {
90
+ * model: "imagen-4.0-fast-generate-001",
91
+ * prompt: "A cute cartoon robot",
56
92
  * });
57
93
  */
58
- export { ClefbaseApp, initClefbase, getApp, getDatabase, getAuth, getStorage, getHosting, getFunctions, } from "./app";
94
+ export { ClefbaseApp, initClefbase, getApp, getDatabase, getAuth, getStorage, getHosting, getFunctions, getAI, } from "./app";
59
95
  export { Database, CollectionReference, CollectionGroup, DocumentReference, Query, WriteBatch, Transaction, runTransaction, } from "./db";
60
96
  export { Auth } from "./auth";
61
97
  export type { GoogleButtonOptions } from "./auth";
@@ -67,6 +103,8 @@ export { ClefbaseHosting, SiteReference } from "./hosting";
67
103
  export type { HostingSite, HostingDeploy, HostingFile, DeployResult, DeployOptions, HostingStatus, DeployStatus, } from "./hosting";
68
104
  export { ClefbaseFunctions, FunctionsError, httpsCallable, callFunction, deployFunction, deleteFunction, listFunctions, getFunctionExecutions, setAuthToken, deployFromFile, } from "./functions";
69
105
  export type { FunctionRuntime, FunctionTrigger, FunctionTriggerType, FunctionDef, FunctionExecution, FunctionsConfig, FunctionStats, DeployFunctionOptions, HttpsCallableResult, } from "./functions";
106
+ export { ClefbaseAI, AIError, generateText, generateImage, generateVideo, generateEmbedding, } from "./ai";
107
+ export type { AIModel, AIProvider, AIModelCategory, GenerateTextOptions, GenerateTextResult, GenerateImageOptions, GenerateImageResult, GeneratedMediaFile, GenerateVideoOptions, GenerateVideoResult, GenerateEmbeddingOptions, GenerateEmbeddingResult, AIUsageRecord, AIUsageStats, } from "./ai";
70
108
  export { FieldValue, FieldValueSentinel } from "./field_value";
71
109
  export type { FieldValueType } from "./field_value";
72
110
  export type { ClefbaseConfig, ClefbaseDocument, QueryOptions, QueryResult, FilterOperator, WhereClause, WhereValue, AuthUser, AuthSession, AuthResult, } from "./types";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAGH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,MAAM,EACN,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,GACb,MAAM,OAAO,CAAC;AAGf,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,KAAK,EACL,UAAU,EACV,WAAW,EACX,cAAc,GACf,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC3D,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,WAAW,CAAC;AAGnB,OAAO,EAEL,iBAAiB,EAEjB,cAAc,EAEd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,UAAU,GACX,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4FG;AAGH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,MAAM,EACN,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,YAAY,EACZ,KAAK,GACN,MAAM,OAAO,CAAC;AAGf,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,KAAK,EACL,UAAU,EACV,WAAW,EACX,cAAc,GACf,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAGlD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC/E,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC3D,YAAY,EACV,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,WAAW,CAAC;AAGnB,OAAO,EAEL,iBAAiB,EAEjB,cAAc,EAEd,aAAa,EACb,YAAY,EACZ,cAAc,EACd,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAEL,UAAU,EAEV,OAAO,EAEP,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,GAClB,MAAM,MAAM,CAAC;AAEd,YAAY,EAEV,OAAO,EACP,UAAU,EACV,eAAe,EAEf,mBAAmB,EACnB,kBAAkB,EAElB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAElB,oBAAoB,EACpB,mBAAmB,EAEnB,wBAAwB,EACxB,uBAAuB,EAEvB,aAAa,EACb,YAAY,GACb,MAAM,MAAM,CAAC;AAGd,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC/D,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,cAAc,EACd,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,UAAU,GACX,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}