clefbase 1.4.0 → 1.5.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.
@@ -0,0 +1,94 @@
1
+ import { HttpClient } from "./http";
2
+ import type { FunctionRuntime, FunctionTrigger, FunctionTriggerType, FunctionDef, FunctionExecution, FunctionsConfig, FunctionStats, DeployFunctionOptions, HttpsCallableResult } from "./types";
3
+ export type { FunctionRuntime, FunctionTrigger, FunctionTriggerType, FunctionDef, FunctionExecution, FunctionsConfig, FunctionStats, DeployFunctionOptions, HttpsCallableResult, };
4
+ /**
5
+ * Create a strongly-typed callable reference to an HTTP-triggered function.
6
+ *
7
+ * @example
8
+ * const add = httpsCallable<{ a: number; b: number }, { sum: number }>(fns, "addNumbers");
9
+ * const { data } = await add({ a: 3, b: 4 });
10
+ * console.log(data.sum); // 7
11
+ */
12
+ export declare function httpsCallable<TInput = unknown, TOutput = unknown>(fns: ClefbaseFunctions, name: string): (data?: TInput) => Promise<HttpsCallableResult<TOutput>>;
13
+ /**
14
+ * Clefbase Functions service.
15
+ *
16
+ * Obtained via `getFunctions(app)`.
17
+ *
18
+ * @example
19
+ * import { initClefbase, getFunctions, httpsCallable } from "clefbase";
20
+ *
21
+ * const app = initClefbase({ serverUrl, projectId, apiKey, adminSecret: "" });
22
+ * const fns = getFunctions(app);
23
+ *
24
+ * // Call an HTTP function
25
+ * const greet = httpsCallable<{ name: string }, { message: string }>(fns, "greetUser");
26
+ * const { data } = await greet({ name: "Alice" });
27
+ *
28
+ * // Deploy from source
29
+ * await fns.deploy({
30
+ * name: "greetUser",
31
+ * runtime: "node",
32
+ * trigger: { type: "http" },
33
+ * source: `export async function handler(ctx) { return { message: "Hi " + ctx.data.name }; }`,
34
+ * });
35
+ */
36
+ export declare class ClefbaseFunctions {
37
+ private readonly _http;
38
+ /** @internal */
39
+ constructor(_http: HttpClient);
40
+ /**
41
+ * Initialise Functions for the project if not already done.
42
+ * Safe to call multiple times — returns the existing config if found.
43
+ * Called automatically by `deploy()` so you rarely need this directly.
44
+ */
45
+ initProject(opts?: {
46
+ maxConcurrentExecutions?: number;
47
+ defaultTimeoutMs?: number;
48
+ }): Promise<FunctionsConfig>;
49
+ /**
50
+ * Deploy (or redeploy) a function from source code.
51
+ * Calling this a second time with the same `name` updates the function in-place.
52
+ *
53
+ * @example
54
+ * await fns.deploy({
55
+ * name: "sendWelcome",
56
+ * runtime: "node",
57
+ * trigger: { type: "onUserCreate" },
58
+ * source: `
59
+ * export async function handler(ctx) {
60
+ * console.log("New user:", ctx.data.email);
61
+ * }
62
+ * `,
63
+ * });
64
+ */
65
+ deploy(options: DeployFunctionOptions): Promise<FunctionDef>;
66
+ /**
67
+ * List all functions deployed to this project.
68
+ * Returns a lightweight summary (no source code).
69
+ */
70
+ list(): Promise<FunctionDef[]>;
71
+ /**
72
+ * Delete a deployed function by name.
73
+ */
74
+ delete(name: string): Promise<{
75
+ deleted: boolean;
76
+ name: string;
77
+ }>;
78
+ /**
79
+ * Call an HTTP-triggered function and return its result.
80
+ * Throws a `ClefbaseError` if the function errors or times out.
81
+ *
82
+ * @example
83
+ * const { data, durationMs } = await fns.call("processOrder", { orderId: "abc" });
84
+ */
85
+ call<TInput = unknown, TOutput = unknown>(name: string, data?: TInput): Promise<HttpsCallableResult<TOutput>>;
86
+ /**
87
+ * Fetch the execution history for a specific function.
88
+ *
89
+ * @param name Function name
90
+ * @param limit Max results to return (default: 20, max: 100)
91
+ */
92
+ executions(name: string, limit?: number): Promise<FunctionExecution[]>;
93
+ }
94
+ //# sourceMappingURL=functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACpB,CAAC;AAIF;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAC/D,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,MAAM,GACX,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAE1D;AAID;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,iBAAiB;IAEhB,OAAO,CAAC,QAAQ,CAAC,KAAK;IADlC,gBAAgB;gBACa,KAAK,EAAE,UAAU;IAI9C;;;;OAIG;IACG,WAAW,CAAC,IAAI,CAAC,EAAE;QAAE,uBAAuB,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAQnH;;;;;;;;;;;;;;;OAeG;IACG,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;IAMlE;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAMpC;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAMvE;;;;;;OAMG;IACG,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAC5C,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IASxC;;;;;OAKG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;CAMzE"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClefbaseFunctions = void 0;
4
+ exports.httpsCallable = httpsCallable;
5
+ // ─── HttpsCallable ────────────────────────────────────────────────────────────
6
+ /**
7
+ * Create a strongly-typed callable reference to an HTTP-triggered function.
8
+ *
9
+ * @example
10
+ * const add = httpsCallable<{ a: number; b: number }, { sum: number }>(fns, "addNumbers");
11
+ * const { data } = await add({ a: 3, b: 4 });
12
+ * console.log(data.sum); // 7
13
+ */
14
+ function httpsCallable(fns, name) {
15
+ return (data) => fns.call(name, data);
16
+ }
17
+ // ─── ClefbaseFunctions ────────────────────────────────────────────────────────
18
+ /**
19
+ * Clefbase Functions service.
20
+ *
21
+ * Obtained via `getFunctions(app)`.
22
+ *
23
+ * @example
24
+ * import { initClefbase, getFunctions, httpsCallable } from "clefbase";
25
+ *
26
+ * const app = initClefbase({ serverUrl, projectId, apiKey, adminSecret: "" });
27
+ * const fns = getFunctions(app);
28
+ *
29
+ * // Call an HTTP function
30
+ * const greet = httpsCallable<{ name: string }, { message: string }>(fns, "greetUser");
31
+ * const { data } = await greet({ name: "Alice" });
32
+ *
33
+ * // Deploy from source
34
+ * await fns.deploy({
35
+ * name: "greetUser",
36
+ * runtime: "node",
37
+ * trigger: { type: "http" },
38
+ * source: `export async function handler(ctx) { return { message: "Hi " + ctx.data.name }; }`,
39
+ * });
40
+ */
41
+ class ClefbaseFunctions {
42
+ /** @internal */
43
+ constructor(_http) {
44
+ this._http = _http;
45
+ }
46
+ // ─── Config ────────────────────────────────────────────────────────────────
47
+ /**
48
+ * Initialise Functions for the project if not already done.
49
+ * Safe to call multiple times — returns the existing config if found.
50
+ * Called automatically by `deploy()` so you rarely need this directly.
51
+ */
52
+ async initProject(opts) {
53
+ // The external SDK router auto-initialises on deploy, but expose this
54
+ // for explicit setup or config updates.
55
+ return this._http.post("/", opts ?? {});
56
+ }
57
+ // ─── Deploy ────────────────────────────────────────────────────────────────
58
+ /**
59
+ * Deploy (or redeploy) a function from source code.
60
+ * Calling this a second time with the same `name` updates the function in-place.
61
+ *
62
+ * @example
63
+ * await fns.deploy({
64
+ * name: "sendWelcome",
65
+ * runtime: "node",
66
+ * trigger: { type: "onUserCreate" },
67
+ * source: `
68
+ * export async function handler(ctx) {
69
+ * console.log("New user:", ctx.data.email);
70
+ * }
71
+ * `,
72
+ * });
73
+ */
74
+ async deploy(options) {
75
+ return this._http.post("/deploy", options);
76
+ }
77
+ // ─── List ──────────────────────────────────────────────────────────────────
78
+ /**
79
+ * List all functions deployed to this project.
80
+ * Returns a lightweight summary (no source code).
81
+ */
82
+ async list() {
83
+ return this._http.get("/");
84
+ }
85
+ // ─── Delete ────────────────────────────────────────────────────────────────
86
+ /**
87
+ * Delete a deployed function by name.
88
+ */
89
+ async delete(name) {
90
+ return this._http.delete(`/${encodeURIComponent(name)}`);
91
+ }
92
+ // ─── Call ──────────────────────────────────────────────────────────────────
93
+ /**
94
+ * Call an HTTP-triggered function and return its result.
95
+ * Throws a `ClefbaseError` if the function errors or times out.
96
+ *
97
+ * @example
98
+ * const { data, durationMs } = await fns.call("processOrder", { orderId: "abc" });
99
+ */
100
+ async call(name, data) {
101
+ return this._http.post(`/call/${encodeURIComponent(name)}`, { data: data ?? null });
102
+ }
103
+ // ─── Executions ────────────────────────────────────────────────────────────
104
+ /**
105
+ * Fetch the execution history for a specific function.
106
+ *
107
+ * @param name Function name
108
+ * @param limit Max results to return (default: 20, max: 100)
109
+ */
110
+ async executions(name, limit = 20) {
111
+ const l = Math.min(limit, 100);
112
+ return this._http.get(`/${encodeURIComponent(name)}/executions?limit=${l}`);
113
+ }
114
+ }
115
+ exports.ClefbaseFunctions = ClefbaseFunctions;
116
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":";;;AAmCA,sCAKC;AAfD,iFAAiF;AAEjF;;;;;;;GAOG;AACH,SAAgB,aAAa,CAC3B,GAAsB,EACtB,IAAY;IAEZ,OAAO,CAAC,IAAa,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAkB,IAAI,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,iFAAiF;AAEjF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,iBAAiB;IAC5B,gBAAgB;IAChB,YAA6B,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;IAAG,CAAC;IAElD,8EAA8E;IAE9E;;;;OAIG;IACH,KAAK,CAAC,WAAW,CAAC,IAAsE;QACtF,sEAAsE;QACtE,wCAAwC;QACxC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAkB,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,8EAA8E;IAE9E;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAc,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,8EAA8E;IAE9E;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,8EAA8E;IAE9E;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAqC,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,8EAA8E;IAE9E;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CACR,IAAY,EACZ,IAAa;QAEb,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CACpB,SAAS,kBAAkB,CAAC,IAAI,CAAC,EAAE,EACnC,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CACvB,CAAC;IACJ,CAAC;IAED,8EAA8E;IAE9E;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,KAAK,GAAG,EAAE;QACvC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CACnB,IAAI,kBAAkB,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CACrD,CAAC;IACJ,CAAC;CACF;AA3FD,8CA2FC"}
package/dist/index.d.ts CHANGED
@@ -2,43 +2,50 @@
2
2
  * clefbase — Firebase-style SDK for Clefbase / Cleforyx
3
3
  *
4
4
  * @example
5
- * import { initClefbase, getDatabase, getAuth, getStorage, getHosting, FieldValue } from "clefbase";
5
+ * import { initClefbase, getDatabase, getAuth, getStorage, getHosting, getFunctions, httpsCallable, FieldValue } from "clefbase";
6
6
  *
7
7
  * const app = initClefbase({
8
8
  * serverUrl: "https://api.cleforyx.com",
9
9
  * projectId: "my_project_abc",
10
10
  * apiKey: "cfx_...",
11
- * adminSecret: "...", // only needed for hosting
11
+ * adminSecret: "", // only needed for hosting
12
12
  * });
13
13
  *
14
+ * // ── Functions ──────────────────────────────────────────────────────────────
15
+ * const fns = getFunctions(app);
16
+ *
17
+ * // Deploy a function
18
+ * await fns.deploy({
19
+ * name: "greetUser",
20
+ * runtime: "node",
21
+ * trigger: { type: "http" },
22
+ * source: `
23
+ * export async function handler(ctx) {
24
+ * return { message: "Hello, " + ctx.data.name + "!" };
25
+ * }
26
+ * `,
27
+ * });
28
+ *
29
+ * // Create a typed callable
30
+ * const greet = httpsCallable<{ name: string }, { message: string }>(fns, "greetUser");
31
+ * const { data } = await greet({ name: "Alice" });
32
+ *
33
+ * // Or call directly
34
+ * const { data } = await fns.call("greetUser", { name: "Alice" });
35
+ *
36
+ * // ── Database ────────────────────────────────────────────────────────────────
14
37
  * const db = getDatabase(app);
15
38
  *
16
- * // FieldValue sentinels
17
39
  * await db.collection("posts").doc("p1").update({
18
40
  * views: FieldValue.increment(1),
19
- * score: FieldValue.decrement(0.5),
20
41
  * publishedAt: FieldValue.serverTimestamp(),
21
- * draft: FieldValue.deleteField(),
22
- * tags: FieldValue.arrayUnion("featured"),
23
- * oldTags: FieldValue.arrayRemove("wip"),
24
42
  * });
25
43
  *
26
- * // Batch writes
27
44
  * const batch = db.batch();
28
45
  * batch.update(db.collection("counters").doc("hits"), { n: FieldValue.increment(1) });
29
- * batch.delete(db.collection("sessions").doc("expired"));
30
46
  * await batch.commit();
31
- *
32
- * // Transactions
33
- * await db.runTransaction(async (tx) => {
34
- * const wallet = await tx.get(db.collection("wallets").doc(uid));
35
- * tx.update(db.collection("wallets").doc(uid), { balance: (wallet?.balance as number ?? 0) + 10 });
36
- * });
37
- *
38
- * // Collection-group queries
39
- * const allComments = await db.collectionGroup("comments").where({ approved: true }).getDocs();
40
47
  */
41
- export { ClefbaseApp, initClefbase, getApp, getDatabase, getAuth, getStorage, getHosting, } from "./app";
48
+ export { ClefbaseApp, initClefbase, getApp, getDatabase, getAuth, getStorage, getHosting, getFunctions, } from "./app";
42
49
  export { Database, CollectionReference, CollectionGroup, DocumentReference, Query, WriteBatch, Transaction, runTransaction, } from "./db";
43
50
  export { Auth } from "./auth";
44
51
  export type { GoogleButtonOptions } from "./auth";
@@ -48,6 +55,8 @@ export type { StorageImageStatus } from "./react/StorageImage";
48
55
  export { EmailVerificationCard } from "./react/EmailVerificationCard";
49
56
  export { ClefbaseHosting, SiteReference } from "./hosting";
50
57
  export type { HostingSite, HostingDeploy, HostingFile, DeployResult, DeployOptions, HostingStatus, DeployStatus, } from "./hosting";
58
+ export { ClefbaseFunctions, httpsCallable } from "./functions";
59
+ export type { FunctionRuntime, FunctionTrigger, FunctionTriggerType, FunctionDef, FunctionExecution, FunctionsConfig, FunctionStats, DeployFunctionOptions, HttpsCallableResult, } from "./functions";
51
60
  export { FieldValue, FieldValueSentinel } from "./field_value";
52
61
  export type { FieldValueType } from "./field_value";
53
62
  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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAGH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,MAAM,EACN,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,GACX,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;AAQ7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,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,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;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,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,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"}
package/dist/index.js CHANGED
@@ -3,44 +3,51 @@
3
3
  * clefbase — Firebase-style SDK for Clefbase / Cleforyx
4
4
  *
5
5
  * @example
6
- * import { initClefbase, getDatabase, getAuth, getStorage, getHosting, FieldValue } from "clefbase";
6
+ * import { initClefbase, getDatabase, getAuth, getStorage, getHosting, getFunctions, httpsCallable, FieldValue } from "clefbase";
7
7
  *
8
8
  * const app = initClefbase({
9
9
  * serverUrl: "https://api.cleforyx.com",
10
10
  * projectId: "my_project_abc",
11
11
  * apiKey: "cfx_...",
12
- * adminSecret: "...", // only needed for hosting
12
+ * adminSecret: "", // only needed for hosting
13
13
  * });
14
14
  *
15
+ * // ── Functions ──────────────────────────────────────────────────────────────
16
+ * const fns = getFunctions(app);
17
+ *
18
+ * // Deploy a function
19
+ * await fns.deploy({
20
+ * name: "greetUser",
21
+ * runtime: "node",
22
+ * trigger: { type: "http" },
23
+ * source: `
24
+ * export async function handler(ctx) {
25
+ * return { message: "Hello, " + ctx.data.name + "!" };
26
+ * }
27
+ * `,
28
+ * });
29
+ *
30
+ * // Create a typed callable
31
+ * const greet = httpsCallable<{ name: string }, { message: string }>(fns, "greetUser");
32
+ * const { data } = await greet({ name: "Alice" });
33
+ *
34
+ * // Or call directly
35
+ * const { data } = await fns.call("greetUser", { name: "Alice" });
36
+ *
37
+ * // ── Database ────────────────────────────────────────────────────────────────
15
38
  * const db = getDatabase(app);
16
39
  *
17
- * // FieldValue sentinels
18
40
  * await db.collection("posts").doc("p1").update({
19
41
  * views: FieldValue.increment(1),
20
- * score: FieldValue.decrement(0.5),
21
42
  * publishedAt: FieldValue.serverTimestamp(),
22
- * draft: FieldValue.deleteField(),
23
- * tags: FieldValue.arrayUnion("featured"),
24
- * oldTags: FieldValue.arrayRemove("wip"),
25
43
  * });
26
44
  *
27
- * // Batch writes
28
45
  * const batch = db.batch();
29
46
  * batch.update(db.collection("counters").doc("hits"), { n: FieldValue.increment(1) });
30
- * batch.delete(db.collection("sessions").doc("expired"));
31
47
  * await batch.commit();
32
- *
33
- * // Transactions
34
- * await db.runTransaction(async (tx) => {
35
- * const wallet = await tx.get(db.collection("wallets").doc(uid));
36
- * tx.update(db.collection("wallets").doc(uid), { balance: (wallet?.balance as number ?? 0) + 10 });
37
- * });
38
- *
39
- * // Collection-group queries
40
- * const allComments = await db.collectionGroup("comments").where({ approved: true }).getDocs();
41
48
  */
42
49
  Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.ClefbaseError = exports.FieldValueSentinel = exports.FieldValue = exports.SiteReference = exports.ClefbaseHosting = exports.EmailVerificationCard = exports.BucketReference = exports.StorageReference = exports.ClefbaseStorage = exports.Auth = exports.runTransaction = exports.Transaction = exports.WriteBatch = exports.Query = exports.DocumentReference = exports.CollectionGroup = exports.CollectionReference = exports.Database = exports.getHosting = exports.getStorage = exports.getAuth = exports.getDatabase = exports.getApp = exports.initClefbase = exports.ClefbaseApp = void 0;
50
+ exports.ClefbaseError = exports.FieldValueSentinel = exports.FieldValue = exports.httpsCallable = exports.ClefbaseFunctions = exports.SiteReference = exports.ClefbaseHosting = exports.EmailVerificationCard = exports.BucketReference = exports.StorageReference = exports.ClefbaseStorage = exports.Auth = exports.runTransaction = exports.Transaction = exports.WriteBatch = exports.Query = exports.DocumentReference = exports.CollectionGroup = exports.CollectionReference = exports.Database = exports.getFunctions = exports.getHosting = exports.getStorage = exports.getAuth = exports.getDatabase = exports.getApp = exports.initClefbase = exports.ClefbaseApp = void 0;
44
51
  // ─── App ──────────────────────────────────────────────────────────────────────
45
52
  var app_1 = require("./app");
46
53
  Object.defineProperty(exports, "ClefbaseApp", { enumerable: true, get: function () { return app_1.ClefbaseApp; } });
@@ -50,6 +57,7 @@ Object.defineProperty(exports, "getDatabase", { enumerable: true, get: function
50
57
  Object.defineProperty(exports, "getAuth", { enumerable: true, get: function () { return app_1.getAuth; } });
51
58
  Object.defineProperty(exports, "getStorage", { enumerable: true, get: function () { return app_1.getStorage; } });
52
59
  Object.defineProperty(exports, "getHosting", { enumerable: true, get: function () { return app_1.getHosting; } });
60
+ Object.defineProperty(exports, "getFunctions", { enumerable: true, get: function () { return app_1.getFunctions; } });
53
61
  // ─── Database ─────────────────────────────────────────────────────────────────
54
62
  var db_1 = require("./db");
55
63
  Object.defineProperty(exports, "Database", { enumerable: true, get: function () { return db_1.Database; } });
@@ -75,6 +83,10 @@ Object.defineProperty(exports, "EmailVerificationCard", { enumerable: true, get:
75
83
  var hosting_1 = require("./hosting");
76
84
  Object.defineProperty(exports, "ClefbaseHosting", { enumerable: true, get: function () { return hosting_1.ClefbaseHosting; } });
77
85
  Object.defineProperty(exports, "SiteReference", { enumerable: true, get: function () { return hosting_1.SiteReference; } });
86
+ // ─── Functions ────────────────────────────────────────────────────────────────
87
+ var functions_1 = require("./functions");
88
+ Object.defineProperty(exports, "ClefbaseFunctions", { enumerable: true, get: function () { return functions_1.ClefbaseFunctions; } });
89
+ Object.defineProperty(exports, "httpsCallable", { enumerable: true, get: function () { return functions_1.httpsCallable; } });
78
90
  // ─── FieldValue ───────────────────────────────────────────────────────────────
79
91
  var field_value_1 = require("./field_value");
80
92
  Object.defineProperty(exports, "FieldValue", { enumerable: true, get: function () { return field_value_1.FieldValue; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;;;AAEH,iFAAiF;AACjF,6BAQe;AAPb,kGAAA,WAAW,OAAA;AACX,mGAAA,YAAY,OAAA;AACZ,6FAAA,MAAM,OAAA;AACN,kGAAA,WAAW,OAAA;AACX,8FAAA,OAAO,OAAA;AACP,iGAAA,UAAU,OAAA;AACV,iGAAA,UAAU,OAAA;AAGZ,iFAAiF;AACjF,2BASc;AARZ,8FAAA,QAAQ,OAAA;AACR,yGAAA,mBAAmB,OAAA;AACnB,qGAAA,eAAe,OAAA;AACf,uGAAA,iBAAiB,OAAA;AACjB,2FAAA,KAAK,OAAA;AACL,gGAAA,UAAU,OAAA;AACV,iGAAA,WAAW,OAAA;AACX,oGAAA,cAAc,OAAA;AAGhB,iFAAiF;AACjF,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AAGb,iFAAiF;AACjF,qCAA+E;AAAtE,0GAAA,eAAe,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAAE,0GAAA,eAAe,OAAA;AAU3D,iFAAiF;AACjF,uEAAsE;AAA7D,8HAAA,qBAAqB,OAAA;AAC9B,iFAAiF;AACjF,qCAA2D;AAAlD,0GAAA,eAAe,OAAA;AAAE,wGAAA,aAAa,OAAA;AAWvC,iFAAiF;AACjF,6CAA+D;AAAtD,yGAAA,UAAU,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAiBvC,iCAAwC;AAA/B,sGAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;;;AAEH,iFAAiF;AACjF,6BASe;AARb,kGAAA,WAAW,OAAA;AACX,mGAAA,YAAY,OAAA;AACZ,6FAAA,MAAM,OAAA;AACN,kGAAA,WAAW,OAAA;AACX,8FAAA,OAAO,OAAA;AACP,iGAAA,UAAU,OAAA;AACV,iGAAA,UAAU,OAAA;AACV,mGAAA,YAAY,OAAA;AAGd,iFAAiF;AACjF,2BASc;AARZ,8FAAA,QAAQ,OAAA;AACR,yGAAA,mBAAmB,OAAA;AACnB,qGAAA,eAAe,OAAA;AACf,uGAAA,iBAAiB,OAAA;AACjB,2FAAA,KAAK,OAAA;AACL,gGAAA,UAAU,OAAA;AACV,iGAAA,WAAW,OAAA;AACX,oGAAA,cAAc,OAAA;AAGhB,iFAAiF;AACjF,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AAGb,iFAAiF;AACjF,qCAA+E;AAAtE,0GAAA,eAAe,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAAE,0GAAA,eAAe,OAAA;AAM3D,iFAAiF;AACjF,uEAAsE;AAA7D,8HAAA,qBAAqB,OAAA;AAE9B,iFAAiF;AACjF,qCAA2D;AAAlD,0GAAA,eAAe,OAAA;AAAE,wGAAA,aAAa,OAAA;AAWvC,iFAAiF;AACjF,yCAA+D;AAAtD,8GAAA,iBAAiB,OAAA;AAAE,0GAAA,aAAa,OAAA;AAazC,iFAAiF;AACjF,6CAA+D;AAAtD,yGAAA,UAAU,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAiBvC,iCAAwC;AAA/B,sGAAA,aAAa,OAAA"}
@@ -1,7 +1,13 @@
1
- import type { Auth } from "../auth";
1
+ export interface User {
2
+ emailVerified?: boolean;
3
+ }
2
4
  export interface EmailVerificationCardProps {
3
- /** Instance of the Clefbase Auth service. */
4
- auth: Auth;
5
+ /** Current user object. */
6
+ user: User | null;
7
+ /** Function to send email verification. */
8
+ sendEmailVerification: () => Promise<void>;
9
+ /** Function to listen for auth state changes. */
10
+ onAuthStateChanged: (callback: (user: User | null) => void) => () => void;
5
11
  /** Optional callback after a successful verification check. */
6
12
  onVerified?: () => void;
7
13
  /** Optional callback when the verification email is successfully sent. */
@@ -14,5 +20,5 @@ export interface EmailVerificationCardProps {
14
20
  buttonText?: string;
15
21
  resendText?: string;
16
22
  }
17
- export declare function EmailVerificationCard({ auth, onVerified, onSent, onError, title, description, buttonText, resendText, }: EmailVerificationCardProps): import("react/jsx-runtime").JSX.Element | null;
23
+ export declare function EmailVerificationCard({ user: initialUser, sendEmailVerification, onAuthStateChanged, onVerified, onSent, onError, title, description, buttonText, resendText, }: EmailVerificationCardProps): import("react/jsx-runtime").JSX.Element | null;
18
24
  //# sourceMappingURL=EmailVerificationCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmailVerificationCard.d.ts","sourceRoot":"","sources":["../../src/react/EmailVerificationCard.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,WAAW,0BAA0B;IACzC,6CAA6C;IAC7C,IAAI,EAAE,IAAI,CAAC;IACX,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,UAAU,EACV,MAAM,EACN,OAAO,EACP,KAA2B,EAC3B,WAA2E,EAC3E,UAAwC,EACxC,UAAsF,GACvF,EAAE,0BAA0B,kDAwE5B"}
1
+ {"version":3,"file":"EmailVerificationCard.d.ts","sourceRoot":"","sources":["../../src/react/EmailVerificationCard.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,IAAI;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;CAEzB;AAED,MAAM,WAAW,0BAA0B;IACzC,2BAA2B;IAC3B,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,2CAA2C;IAC3C,qBAAqB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,iDAAiD;IACjD,kBAAkB,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAC1E,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC/B,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EAAE,WAAW,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,UAAU,EACV,MAAM,EACN,OAAO,EACP,KAA2B,EAC3B,WAA2E,EAC3E,UAAwC,EACxC,UAAsF,GACvF,EAAE,0BAA0B,kDAwE5B"}
@@ -3,19 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EmailVerificationCard = EmailVerificationCard;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
- function EmailVerificationCard({ auth, onVerified, onSent, onError, title = "Verify your email", description = "Please verify your email address to continue using the app.", buttonText = "Resend verification email", resendText = "If you already verified, click the button again to refresh your status.", }) {
7
- const [user, setUser] = (0, react_1.useState)(auth.currentUser);
6
+ function EmailVerificationCard({ user: initialUser, sendEmailVerification, onAuthStateChanged, onVerified, onSent, onError, title = "Verify your email", description = "Please verify your email address to continue using the app.", buttonText = "Resend verification email", resendText = "If you already verified, click the button again to refresh your status.", }) {
7
+ const [user, setUser] = (0, react_1.useState)(initialUser);
8
8
  const [status, setStatus] = (0, react_1.useState)("idle");
9
9
  const [error, setError] = (0, react_1.useState)(null);
10
10
  (0, react_1.useEffect)(() => {
11
- const unsub = auth.onAuthStateChanged((u) => {
11
+ const unsub = onAuthStateChanged((u) => {
12
12
  setUser(u);
13
13
  if (u && u.emailVerified) {
14
14
  onVerified?.();
15
15
  }
16
16
  });
17
17
  return unsub;
18
- }, [auth, onVerified]);
18
+ }, [onAuthStateChanged, onVerified]);
19
19
  const disabled = (0, react_1.useMemo)(() => status === "sending" || !user, [status, user]);
20
20
  if (!user || user.emailVerified)
21
21
  return null;
@@ -23,7 +23,7 @@ function EmailVerificationCard({ auth, onVerified, onSent, onError, title = "Ver
23
23
  setStatus("sending");
24
24
  setError(null);
25
25
  try {
26
- await auth.sendEmailVerification();
26
+ await sendEmailVerification();
27
27
  setStatus("sent");
28
28
  onSent?.();
29
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EmailVerificationCard.js","sourceRoot":"","sources":["../../src/react/EmailVerificationCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmailVerificationCard.js","sourceRoot":"","sources":["../../src/react/EmailVerificationCard.tsx"],"names":[],"mappings":"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"}