clefbase 1.4.1 → 1.5.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.
package/dist/index.js CHANGED
@@ -3,44 +3,61 @@
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 {
7
+ * initClefbase, getDatabase, getAuth, getStorage, getHosting,
8
+ * getFunctions, httpsCallable, callFunction, deployFunction, deployFromFile,
9
+ * setAuthToken, FunctionsError, FieldValue,
10
+ * } from "clefbase";
7
11
  *
8
- * const app = initClefbase({
9
- * serverUrl: "https://api.cleforyx.com",
10
- * projectId: "my_project_abc",
11
- * apiKey: "cfx_...",
12
- * adminSecret: "...", // only needed for hosting
13
- * });
12
+ * const app = initClefbase({ serverUrl, projectId, apiKey, adminSecret: "" });
13
+ * const fns = getFunctions(app);
14
+ * const auth = getAuth(app);
14
15
  *
15
- * const db = getDatabase(app);
16
+ * // ── Auth-aware function call ───────────────────────────────────────────────
17
+ * const { token } = await auth.signIn("alice@example.com", "password123");
18
+ * setAuthToken(app, token); // ctx.auth.uid / email now available in function
16
19
  *
17
- * // FieldValue sentinels
18
- * await db.collection("posts").doc("p1").update({
19
- * views: FieldValue.increment(1),
20
- * score: FieldValue.decrement(0.5),
21
- * publishedAt: FieldValue.serverTimestamp(),
22
- * draft: FieldValue.deleteField(),
23
- * tags: FieldValue.arrayUnion("featured"),
24
- * oldTags: FieldValue.arrayRemove("wip"),
25
- * });
20
+ * // ── Typed callable ────────────────────────────────────────────────────────
21
+ * const greet = httpsCallable<{ name: string }, { message: string }>(fns, "greetUser");
22
+ * const { data } = await greet({ name: "Alice" });
23
+ *
24
+ * // ── One-shot call ─────────────────────────────────────────────────────────
25
+ * const { data } = await callFunction(fns, "greetUser", { name: "Bob" });
26
26
  *
27
- * // Batch writes
28
- * const batch = db.batch();
29
- * batch.update(db.collection("counters").doc("hits"), { n: FieldValue.increment(1) });
30
- * batch.delete(db.collection("sessions").doc("expired"));
31
- * await batch.commit();
27
+ * // ── Deploy from source ────────────────────────────────────────────────────
28
+ * await deployFunction(fns, {
29
+ * name: "greetUser",
30
+ * runtime: "node",
31
+ * trigger: { type: "http" },
32
+ * source: `export async function handler(ctx) { return { message: "Hi " + ctx.data.name }; }`,
33
+ * });
32
34
  *
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 });
35
+ * // ── Deploy from file (Node.js) ────────────────────────────────────────────
36
+ * await deployFromFile(fns, {
37
+ * name: "processOrder",
38
+ * runtime: "node",
39
+ * trigger: { type: "http" },
40
+ * filePath: "./src/functions/processOrder.ts",
37
41
  * });
38
42
  *
39
- * // Collection-group queries
40
- * const allComments = await db.collectionGroup("comments").where({ approved: true }).getDocs();
43
+ * // ── Error handling ────────────────────────────────────────────────────────
44
+ * try {
45
+ * await callFunction(fns, "mayFail");
46
+ * } catch (err) {
47
+ * if (err instanceof FunctionsError) {
48
+ * console.error(err.httpStatus, err.message);
49
+ * }
50
+ * }
51
+ *
52
+ * // ── Database ──────────────────────────────────────────────────────────────
53
+ * const db = getDatabase(app);
54
+ * await db.collection("posts").doc("p1").update({
55
+ * views: FieldValue.increment(1),
56
+ * publishedAt: FieldValue.serverTimestamp(),
57
+ * });
41
58
  */
42
59
  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;
60
+ exports.ClefbaseError = exports.FieldValueSentinel = exports.FieldValue = exports.deployFromFile = exports.setAuthToken = exports.getFunctionExecutions = exports.listFunctions = exports.deleteFunction = exports.deployFunction = exports.callFunction = exports.httpsCallable = exports.FunctionsError = 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
61
  // ─── App ──────────────────────────────────────────────────────────────────────
45
62
  var app_1 = require("./app");
46
63
  Object.defineProperty(exports, "ClefbaseApp", { enumerable: true, get: function () { return app_1.ClefbaseApp; } });
@@ -50,6 +67,7 @@ Object.defineProperty(exports, "getDatabase", { enumerable: true, get: function
50
67
  Object.defineProperty(exports, "getAuth", { enumerable: true, get: function () { return app_1.getAuth; } });
51
68
  Object.defineProperty(exports, "getStorage", { enumerable: true, get: function () { return app_1.getStorage; } });
52
69
  Object.defineProperty(exports, "getHosting", { enumerable: true, get: function () { return app_1.getHosting; } });
70
+ Object.defineProperty(exports, "getFunctions", { enumerable: true, get: function () { return app_1.getFunctions; } });
53
71
  // ─── Database ─────────────────────────────────────────────────────────────────
54
72
  var db_1 = require("./db");
55
73
  Object.defineProperty(exports, "Database", { enumerable: true, get: function () { return db_1.Database; } });
@@ -75,6 +93,21 @@ Object.defineProperty(exports, "EmailVerificationCard", { enumerable: true, get:
75
93
  var hosting_1 = require("./hosting");
76
94
  Object.defineProperty(exports, "ClefbaseHosting", { enumerable: true, get: function () { return hosting_1.ClefbaseHosting; } });
77
95
  Object.defineProperty(exports, "SiteReference", { enumerable: true, get: function () { return hosting_1.SiteReference; } });
96
+ // ─── Functions ────────────────────────────────────────────────────────────────
97
+ var functions_1 = require("./functions");
98
+ // Class
99
+ Object.defineProperty(exports, "ClefbaseFunctions", { enumerable: true, get: function () { return functions_1.ClefbaseFunctions; } });
100
+ // Error
101
+ Object.defineProperty(exports, "FunctionsError", { enumerable: true, get: function () { return functions_1.FunctionsError; } });
102
+ // Top-level factory / convenience (mirrors the standalone SDK's API shape)
103
+ Object.defineProperty(exports, "httpsCallable", { enumerable: true, get: function () { return functions_1.httpsCallable; } });
104
+ Object.defineProperty(exports, "callFunction", { enumerable: true, get: function () { return functions_1.callFunction; } });
105
+ Object.defineProperty(exports, "deployFunction", { enumerable: true, get: function () { return functions_1.deployFunction; } });
106
+ Object.defineProperty(exports, "deleteFunction", { enumerable: true, get: function () { return functions_1.deleteFunction; } });
107
+ Object.defineProperty(exports, "listFunctions", { enumerable: true, get: function () { return functions_1.listFunctions; } });
108
+ Object.defineProperty(exports, "getFunctionExecutions", { enumerable: true, get: function () { return functions_1.getFunctionExecutions; } });
109
+ Object.defineProperty(exports, "setAuthToken", { enumerable: true, get: function () { return functions_1.setAuthToken; } });
110
+ Object.defineProperty(exports, "deployFromFile", { enumerable: true, get: function () { return functions_1.deployFromFile; } });
78
111
  // ─── FieldValue ───────────────────────────────────────────────────────────────
79
112
  var field_value_1 = require("./field_value");
80
113
  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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;;;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,yCAcqB;AAbnB,QAAQ;AACR,8GAAA,iBAAiB,OAAA;AACjB,QAAQ;AACR,2GAAA,cAAc,OAAA;AACd,2EAA2E;AAC3E,0GAAA,aAAa,OAAA;AACb,yGAAA,YAAY,OAAA;AACZ,2GAAA,cAAc,OAAA;AACd,2GAAA,cAAc,OAAA;AACd,0GAAA,aAAa,OAAA;AACb,kHAAA,qBAAqB,OAAA;AACrB,yGAAA,YAAY,OAAA;AACZ,2GAAA,cAAc,OAAA;AAehB,iFAAiF;AACjF,6CAA+D;AAAtD,yGAAA,UAAU,OAAA;AAAE,iHAAA,kBAAkB,OAAA;AAiBvC,iCAAwC;AAA/B,sGAAA,aAAa,OAAA"}
package/dist/types.d.ts CHANGED
@@ -74,6 +74,170 @@ export interface AuthResult {
74
74
  /** Shorthand for session.token */
75
75
  token: string;
76
76
  }
77
+ /**
78
+ * Options for rendering a Google-branded sign-in button.
79
+ * Pass to `auth.signInWithGoogle()` to show a button instead of One Tap.
80
+ */
81
+ export interface GoogleButtonOptions {
82
+ container: HTMLElement;
83
+ theme?: "outline" | "filled_blue" | "filled_black";
84
+ size?: "large" | "medium" | "small";
85
+ text?: "signin_with" | "signup_with" | "continue_with" | "signin";
86
+ shape?: "rectangular" | "pill";
87
+ width?: number;
88
+ locale?: string;
89
+ }
90
+ /** Supported function runtimes */
91
+ export type FunctionRuntime = "node" | "python";
92
+ /**
93
+ * Every trigger type the server supports.
94
+ *
95
+ * | Type | Fires when… |
96
+ * |---------------------|------------------------------------------------|
97
+ * | `http` | `POST /functions/call/:name` |
98
+ * | `schedule` | Cron timer fires |
99
+ * | `onDocumentCreate` | A document is inserted into `collection` |
100
+ * | `onDocumentUpdate` | A document is updated |
101
+ * | `onDocumentDelete` | A document is deleted |
102
+ * | `onDocumentWrite` | Any create / update / delete |
103
+ * | `onUserCreate` | A new user signs up or is created |
104
+ * | `onUserDelete` | A user is deleted |
105
+ * | `onFileUpload` | A file is uploaded to storage |
106
+ * | `onFileDelete` | A file is deleted from storage |
107
+ */
108
+ export type FunctionTriggerType = "http" | "schedule" | "onDocumentWrite" | "onDocumentCreate" | "onDocumentUpdate" | "onDocumentDelete" | "onUserCreate" | "onUserDelete" | "onFileUpload" | "onFileDelete";
109
+ export interface FunctionTrigger {
110
+ type: FunctionTriggerType;
111
+ /**
112
+ * Standard 5-part cron expression. Required for `"schedule"` triggers.
113
+ * @example "0 * * * *" (every hour)
114
+ */
115
+ cron?: string;
116
+ /**
117
+ * Collection path. Required for document triggers.
118
+ * @example "users" or "orders/{orderId}/items"
119
+ */
120
+ collection?: string;
121
+ /**
122
+ * Bucket name filter. Optional for storage triggers.
123
+ * Leave undefined to fire on all buckets.
124
+ */
125
+ bucket?: string;
126
+ }
127
+ /** Options passed to `fns.deploy()` / `deployFunction()` */
128
+ export interface DeployFunctionOptions {
129
+ /**
130
+ * Unique function name within the project.
131
+ * Must start with a letter; only letters, numbers, hyphens, underscores allowed.
132
+ * Max 64 characters.
133
+ */
134
+ name: string;
135
+ description?: string;
136
+ /**
137
+ * Runtime to use for executing this function.
138
+ * - `"node"` — JavaScript / TypeScript (transpiled on-demand, no build step)
139
+ * - `"python"` — Python 3
140
+ */
141
+ runtime: FunctionRuntime;
142
+ /** What event fires this function */
143
+ trigger: FunctionTrigger;
144
+ /**
145
+ * Source code as a plain string.
146
+ *
147
+ * **Node runtime** — export a function with the name matching `entryPoint`:
148
+ * ```js
149
+ * export async function handler(ctx) {
150
+ * const { data, auth, trigger } = ctx;
151
+ * return { ok: true };
152
+ * }
153
+ * ```
154
+ *
155
+ * **Python runtime** — define a function matching `entryPoint`:
156
+ * ```python
157
+ * def handler(ctx):
158
+ * return {"ok": True}
159
+ * ```
160
+ */
161
+ source: string;
162
+ /**
163
+ * Exported function name to invoke inside `source`.
164
+ * @default "handler"
165
+ */
166
+ entryPoint?: string;
167
+ /**
168
+ * Execution timeout in milliseconds.
169
+ * @default 30_000
170
+ * @min 1_000
171
+ * @max 540_000 (9 minutes)
172
+ */
173
+ timeoutMs?: number;
174
+ /** Environment variables injected into the function subprocess */
175
+ env?: Record<string, string>;
176
+ }
177
+ /** A deployed function definition as returned by the server */
178
+ export interface FunctionDef {
179
+ id: string;
180
+ dbId: string;
181
+ name: string;
182
+ description?: string;
183
+ runtime: FunctionRuntime;
184
+ trigger: FunctionTrigger;
185
+ /** Raw source code (omitted from list responses for bandwidth) */
186
+ source?: string;
187
+ entryPoint: string;
188
+ timeoutMs: number;
189
+ env: Record<string, string>;
190
+ status: "active" | "disabled";
191
+ createdAt: string;
192
+ updatedAt: string;
193
+ lastInvokedAt?: string;
194
+ invocationCount: number;
195
+ errorCount: number;
196
+ }
197
+ /** The result of a single function invocation */
198
+ export interface FunctionExecution {
199
+ id: string;
200
+ functionId: string;
201
+ dbId: string;
202
+ functionName: string;
203
+ status: "success" | "error" | "timeout";
204
+ durationMs: number;
205
+ result?: unknown;
206
+ error?: string;
207
+ logs: string[];
208
+ triggeredBy: string;
209
+ startedAt: string;
210
+ finishedAt: string;
211
+ }
212
+ /** Project-level functions configuration */
213
+ export interface FunctionsConfig {
214
+ dbId: string;
215
+ maxConcurrentExecutions: number;
216
+ defaultTimeoutMs: number;
217
+ createdAt: string;
218
+ }
219
+ /** Aggregated stats for a project's functions */
220
+ export interface FunctionStats {
221
+ total: number;
222
+ active: number;
223
+ disabled: number;
224
+ totalInvocations: number;
225
+ totalErrors: number;
226
+ byTrigger: Record<string, number>;
227
+ }
228
+ /**
229
+ * The return type of a callable HTTP function.
230
+ *
231
+ * @example
232
+ * const add = httpsCallable<{ a: number; b: number }, { sum: number }>(fns, "addNumbers");
233
+ * const { data, durationMs } = await add({ a: 3, b: 4 });
234
+ */
235
+ export interface HttpsCallableResult<T = unknown> {
236
+ /** Return value from the function */
237
+ data: T;
238
+ /** Server-side execution time in milliseconds */
239
+ durationMs: number;
240
+ }
77
241
  export declare class ClefbaseError extends Error {
78
242
  readonly code?: string | undefined;
79
243
  readonly status?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAID,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,gBAAgB;IAC/C,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+DAA+D;AAC/D,MAAM,MAAM,cAAc,GACtB;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GACf;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,GAAG,EAAE,OAAO,CAAA;CAAE,GAChB;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1B,2EAA2E;AAC3E,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,cAAc,CAAC;AAE3E,8DAA8D;AAC9D,MAAM,WAAW,WAAW;IAC1B,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;CAC7B;AAID,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;CACf;AAID,qBAAa,aAAc,SAAQ,KAAK;aAGpB,IAAI,CAAC,EAAE,MAAM;aACb,MAAM,CAAC,EAAE,MAAM;gBAF/B,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,MAAM,CAAC,EAAE,MAAM,YAAA;CAQlC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,iFAAiF;;;AAmFjF,iFAAiF;AAEjF,MAAa,aAAc,SAAQ,KAAK;IACtC,YACE,OAAe,EACC,IAAa,EACb,MAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAS;QACb,WAAM,GAAN,MAAM,CAAS;QAG/B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF;AAZD,sCAYC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,iFAAiF;;;AA6QjF,iFAAiF;AAEjF,MAAa,aAAc,SAAQ,KAAK;IACtC,YACE,OAAe,EACC,IAAa,EACb,MAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAS;QACb,WAAM,GAAN,MAAM,CAAS;QAG/B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF;AAZD,sCAYC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "clefbase",
3
- "version": "1.4.1",
4
- "description": "Firebase-style SDK and CLI for Clefbase — database, auth, storage, and hosting",
3
+ "version": "1.5.1",
4
+ "description": "Firebase-style SDK and CLI for Clefbase — database, auth, storage, hosting, and functions",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "bin": {
@@ -47,6 +47,8 @@
47
47
  "auth",
48
48
  "storage",
49
49
  "hosting",
50
+ "functions",
51
+ "serverless",
50
52
  "firebase-alternative",
51
53
  "cli"
52
54
  ],