clefbase 1.3.6 → 1.3.8

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,161 @@
1
+ "use strict";
2
+ // ─── FieldValue ───────────────────────────────────────────────────────────────
3
+ //
4
+ // Firebase-style atomic field sentinels.
5
+ //
6
+ // Drop this file alongside your other SDK source files (types.ts, http.ts, …)
7
+ // and export FieldValue from your root index.ts.
8
+ //
9
+ // Wire format sent to the server (via toJSON / JSON.stringify):
10
+ //
11
+ // FieldValue.increment(2) → { __op: "increment", value: 2 }
12
+ // FieldValue.decrement(1) → { __op: "decrement", value: 1 }
13
+ // FieldValue.serverTimestamp() → { __op: "serverTimestamp" }
14
+ // FieldValue.deleteField() → { __op: "delete" }
15
+ // FieldValue.arrayUnion("a","b") → { __op: "arrayUnion", items: ["a","b"] }
16
+ // FieldValue.arrayRemove("a") → { __op: "arrayRemove", items: ["a"] }
17
+ //
18
+ // Because every sentinel implements toJSON(), your existing HttpClient's
19
+ // JSON.stringify(body) call serializes them automatically — no changes needed
20
+ // to http.ts.
21
+ // ─────────────────────────────────────────────────────────────────────────────
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.FieldValue = exports.FieldValueSentinel = void 0;
24
+ /**
25
+ * Opaque sentinel returned by every FieldValue factory.
26
+ * Never construct this directly — use the static helpers on FieldValue.
27
+ */
28
+ class FieldValueSentinel {
29
+ /** @internal */
30
+ constructor(_type, _value) {
31
+ this._type = _type;
32
+ this._value = _value;
33
+ /** @internal discriminator so library code can detect sentinels */
34
+ this.__fieldValue = true;
35
+ }
36
+ /**
37
+ * Serialize to the wire format the Clefbase server expects.
38
+ * Called automatically by JSON.stringify.
39
+ */
40
+ toJSON() {
41
+ switch (this._type) {
42
+ case "increment":
43
+ return { __op: "increment", value: this._value };
44
+ case "decrement":
45
+ return { __op: "decrement", value: this._value };
46
+ case "serverTimestamp":
47
+ return { __op: "serverTimestamp" };
48
+ case "delete":
49
+ return { __op: "delete" };
50
+ case "arrayUnion":
51
+ return { __op: "arrayUnion", items: this._value };
52
+ case "arrayRemove":
53
+ return { __op: "arrayRemove", items: this._value };
54
+ }
55
+ }
56
+ toString() {
57
+ return `FieldValue<${this._type}>`;
58
+ }
59
+ }
60
+ exports.FieldValueSentinel = FieldValueSentinel;
61
+ // ─── Public namespace ─────────────────────────────────────────────────────────
62
+ /**
63
+ * Atomic field-level sentinels for database writes.
64
+ *
65
+ * @example
66
+ * import { FieldValue } from "clefbase";
67
+ *
68
+ * await db.collection("posts").doc("p1").update({
69
+ * views: FieldValue.increment(1),
70
+ * score: FieldValue.decrement(0.5),
71
+ * publishedAt: FieldValue.serverTimestamp(),
72
+ * draftField: FieldValue.deleteField(),
73
+ * tags: FieldValue.arrayUnion("featured", "trending"),
74
+ * oldTags: FieldValue.arrayRemove("draft"),
75
+ * });
76
+ */
77
+ exports.FieldValue = {
78
+ /**
79
+ * Atomically increment a numeric field by `delta` (default 1).
80
+ * Creates the field with value `delta` if it does not yet exist.
81
+ *
82
+ * @example
83
+ * await ref.update({ views: FieldValue.increment(1) });
84
+ * await ref.update({ balance: FieldValue.increment(9.99) });
85
+ */
86
+ increment(delta = 1) {
87
+ if (typeof delta !== "number" || !isFinite(delta)) {
88
+ throw new TypeError("FieldValue.increment: delta must be a finite number");
89
+ }
90
+ return new FieldValueSentinel("increment", delta);
91
+ },
92
+ /**
93
+ * Atomically decrement a numeric field by `delta` (default 1).
94
+ * Sugar for increment(-delta).
95
+ *
96
+ * @example
97
+ * await ref.update({ lives: FieldValue.decrement(1) });
98
+ */
99
+ decrement(delta = 1) {
100
+ if (typeof delta !== "number" || !isFinite(delta)) {
101
+ throw new TypeError("FieldValue.decrement: delta must be a finite number");
102
+ }
103
+ return new FieldValueSentinel("decrement", delta);
104
+ },
105
+ /**
106
+ * Set the field to the server's current timestamp (ISO 8601 string).
107
+ * Avoids clock-skew issues by using the server clock instead of the client.
108
+ *
109
+ * @example
110
+ * await ref.update({ lastSeen: FieldValue.serverTimestamp() });
111
+ */
112
+ serverTimestamp() {
113
+ return new FieldValueSentinel("serverTimestamp");
114
+ },
115
+ /**
116
+ * Remove this field from the document entirely.
117
+ * Only valid inside `.update()` — not `.set()`.
118
+ *
119
+ * @example
120
+ * await ref.update({ tempToken: FieldValue.deleteField() });
121
+ */
122
+ deleteField() {
123
+ return new FieldValueSentinel("delete");
124
+ },
125
+ /**
126
+ * Add one or more items to an array field, ignoring duplicates.
127
+ * Creates the field as a new array if it does not yet exist.
128
+ *
129
+ * @example
130
+ * await ref.update({ roles: FieldValue.arrayUnion("editor", "moderator") });
131
+ */
132
+ arrayUnion(...items) {
133
+ if (items.length === 0) {
134
+ throw new TypeError("FieldValue.arrayUnion: provide at least one item");
135
+ }
136
+ return new FieldValueSentinel("arrayUnion", items);
137
+ },
138
+ /**
139
+ * Remove one or more items from an array field (all matching occurrences).
140
+ * No-ops silently if the item or field does not exist.
141
+ *
142
+ * @example
143
+ * await ref.update({ roles: FieldValue.arrayRemove("moderator") });
144
+ */
145
+ arrayRemove(...items) {
146
+ if (items.length === 0) {
147
+ throw new TypeError("FieldValue.arrayRemove: provide at least one item");
148
+ }
149
+ return new FieldValueSentinel("arrayRemove", items);
150
+ },
151
+ /**
152
+ * Type-guard — returns true if `value` is any FieldValue sentinel.
153
+ *
154
+ * @example
155
+ * if (FieldValue.isSentinel(val)) console.log(val._type);
156
+ */
157
+ isSentinel(value) {
158
+ return value instanceof FieldValueSentinel;
159
+ },
160
+ };
161
+ //# sourceMappingURL=field_value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field_value.js","sourceRoot":"","sources":["../src/field_value.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * clefbase — Firebase-style SDK for Clefbase / Cleforyx
3
3
  *
4
4
  * @example
5
- * import { initClefbase, getDatabase, getAuth, getStorage, getHosting } from "clefbase";
5
+ * import { initClefbase, getDatabase, getAuth, getStorage, getHosting, FieldValue } from "clefbase";
6
6
  *
7
7
  * const app = initClefbase({
8
8
  * serverUrl: "https://api.cleforyx.com",
@@ -11,13 +11,35 @@
11
11
  * adminSecret: "...", // only needed for hosting
12
12
  * });
13
13
  *
14
- * const db = getDatabase(app);
15
- * const auth = getAuth(app);
16
- * const storage = getStorage(app);
17
- * const hosting = getHosting(app);
14
+ * const db = getDatabase(app);
15
+ *
16
+ * // FieldValue sentinels
17
+ * await db.collection("posts").doc("p1").update({
18
+ * views: FieldValue.increment(1),
19
+ * score: FieldValue.decrement(0.5),
20
+ * publishedAt: FieldValue.serverTimestamp(),
21
+ * draft: FieldValue.deleteField(),
22
+ * tags: FieldValue.arrayUnion("featured"),
23
+ * oldTags: FieldValue.arrayRemove("wip"),
24
+ * });
25
+ *
26
+ * // Batch writes
27
+ * const batch = db.batch();
28
+ * batch.update(db.collection("counters").doc("hits"), { n: FieldValue.increment(1) });
29
+ * batch.delete(db.collection("sessions").doc("expired"));
30
+ * 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();
18
40
  */
19
41
  export { ClefbaseApp, initClefbase, getApp, getDatabase, getAuth, getStorage, getHosting, } from "./app";
20
- export { Database, CollectionReference, DocumentReference, Query } from "./db";
42
+ export { Database, CollectionReference, CollectionGroup, DocumentReference, Query, WriteBatch, Transaction, runTransaction, } from "./db";
21
43
  export { Auth } from "./auth";
22
44
  export type { GoogleButtonOptions } from "./auth";
23
45
  export { ClefbaseStorage, StorageReference, BucketReference } from "./storage";
@@ -25,6 +47,8 @@ export type { StorageFile } from "./storage";
25
47
  export type { StorageImageStatus } from "./react/StorageImage";
26
48
  export { ClefbaseHosting, SiteReference } from "./hosting";
27
49
  export type { HostingSite, HostingDeploy, HostingFile, DeployResult, DeployOptions, HostingStatus, DeployStatus, } from "./hosting";
50
+ export { FieldValue, FieldValueSentinel } from "./field_value";
51
+ export type { FieldValueType } from "./field_value";
28
52
  export type { ClefbaseConfig, ClefbaseDocument, QueryOptions, QueryResult, FilterOperator, WhereClause, WhereValue, AuthUser, AuthSession, AuthResult, } from "./types";
29
53
  export { ClefbaseError } from "./types";
30
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,MAAM,EACN,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,GACX,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAG/E,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;AAG/D,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,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAG/D,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"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * clefbase — Firebase-style SDK for Clefbase / Cleforyx
4
4
  *
5
5
  * @example
6
- * import { initClefbase, getDatabase, getAuth, getStorage, getHosting } from "clefbase";
6
+ * import { initClefbase, getDatabase, getAuth, getStorage, getHosting, FieldValue } from "clefbase";
7
7
  *
8
8
  * const app = initClefbase({
9
9
  * serverUrl: "https://api.cleforyx.com",
@@ -12,13 +12,35 @@
12
12
  * adminSecret: "...", // only needed for hosting
13
13
  * });
14
14
  *
15
- * const db = getDatabase(app);
16
- * const auth = getAuth(app);
17
- * const storage = getStorage(app);
18
- * const hosting = getHosting(app);
15
+ * const db = getDatabase(app);
16
+ *
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
+ * });
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();
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();
19
41
  */
20
42
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.ClefbaseError = exports.SiteReference = exports.ClefbaseHosting = exports.BucketReference = exports.StorageReference = exports.ClefbaseStorage = exports.Auth = exports.Query = exports.DocumentReference = exports.CollectionReference = exports.Database = exports.getHosting = exports.getStorage = exports.getAuth = exports.getDatabase = exports.getApp = exports.initClefbase = exports.ClefbaseApp = void 0;
43
+ exports.ClefbaseError = exports.FieldValueSentinel = exports.FieldValue = exports.SiteReference = exports.ClefbaseHosting = 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;
22
44
  // ─── App ──────────────────────────────────────────────────────────────────────
23
45
  var app_1 = require("./app");
24
46
  Object.defineProperty(exports, "ClefbaseApp", { enumerable: true, get: function () { return app_1.ClefbaseApp; } });
@@ -32,8 +54,12 @@ Object.defineProperty(exports, "getHosting", { enumerable: true, get: function (
32
54
  var db_1 = require("./db");
33
55
  Object.defineProperty(exports, "Database", { enumerable: true, get: function () { return db_1.Database; } });
34
56
  Object.defineProperty(exports, "CollectionReference", { enumerable: true, get: function () { return db_1.CollectionReference; } });
57
+ Object.defineProperty(exports, "CollectionGroup", { enumerable: true, get: function () { return db_1.CollectionGroup; } });
35
58
  Object.defineProperty(exports, "DocumentReference", { enumerable: true, get: function () { return db_1.DocumentReference; } });
36
59
  Object.defineProperty(exports, "Query", { enumerable: true, get: function () { return db_1.Query; } });
60
+ Object.defineProperty(exports, "WriteBatch", { enumerable: true, get: function () { return db_1.WriteBatch; } });
61
+ Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return db_1.Transaction; } });
62
+ Object.defineProperty(exports, "runTransaction", { enumerable: true, get: function () { return db_1.runTransaction; } });
37
63
  // ─── Auth ─────────────────────────────────────────────────────────────────────
38
64
  var auth_1 = require("./auth");
39
65
  Object.defineProperty(exports, "Auth", { enumerable: true, get: function () { return auth_1.Auth; } });
@@ -46,6 +72,10 @@ Object.defineProperty(exports, "BucketReference", { enumerable: true, get: funct
46
72
  var hosting_1 = require("./hosting");
47
73
  Object.defineProperty(exports, "ClefbaseHosting", { enumerable: true, get: function () { return hosting_1.ClefbaseHosting; } });
48
74
  Object.defineProperty(exports, "SiteReference", { enumerable: true, get: function () { return hosting_1.SiteReference; } });
75
+ // ─── FieldValue ───────────────────────────────────────────────────────────────
76
+ var field_value_1 = require("./field_value");
77
+ Object.defineProperty(exports, "FieldValue", { enumerable: true, get: function () { return field_value_1.FieldValue; } });
78
+ Object.defineProperty(exports, "FieldValueSentinel", { enumerable: true, get: function () { return field_value_1.FieldValueSentinel; } });
49
79
  var types_1 = require("./types");
50
80
  Object.defineProperty(exports, "ClefbaseError", { enumerable: true, get: function () { return types_1.ClefbaseError; } });
51
81
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;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,2BAA+E;AAAtE,8FAAA,QAAQ,OAAA;AAAE,yGAAA,mBAAmB,OAAA;AAAE,uGAAA,iBAAiB,OAAA;AAAE,2FAAA,KAAK,OAAA;AAEhE,iFAAiF;AACjF,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AAGb,iFAAiF;AACjF,qCAA+E;AAAtE,0GAAA,eAAe,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAAE,0GAAA,eAAe,OAAA;AAW3D,iFAAiF;AACjF,qCAA2D;AAAlD,0GAAA,eAAe,OAAA;AAAE,wGAAA,aAAa,OAAA;AAyBvC,iCAAwC;AAA/B,sGAAA,aAAa,OAAA"}
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;AAW3D,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "clefbase",
3
- "version": "1.3.6",
3
+ "version": "1.3.8",
4
4
  "description": "Firebase-style SDK and CLI for Clefbase — database, auth, storage, and hosting",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",