@redjay/threads-firebase-storage 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Joshua Ramirez
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,45 @@
1
+ # @redjay/threads-firebase-storage
2
+
3
+ Firebase Firestore storage adapter for the Threads platform. Enables cloud-based storage with real-time sync capabilities.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @redjay/threads-firebase-storage firebase-admin
9
+ ```
10
+
11
+ Note: `firebase-admin` is a peer dependency and must be installed separately.
12
+
13
+ ## Usage
14
+
15
+ ```typescript
16
+ import { FirebaseStorageAdapter } from '@redjay/threads-firebase-storage';
17
+ import * as admin from 'firebase-admin';
18
+
19
+ // Initialize Firebase
20
+ admin.initializeApp({
21
+ credential: admin.credential.applicationDefault()
22
+ });
23
+
24
+ const storage = new FirebaseStorageAdapter({
25
+ firestore: admin.firestore()
26
+ });
27
+
28
+ // Use storage adapter
29
+ const threads = await storage.getAllThreads();
30
+ ```
31
+
32
+ ## Features
33
+
34
+ - Cloud-based Firestore storage
35
+ - Real-time sync across devices
36
+ - Scalable for large datasets
37
+ - Firebase security rules support
38
+
39
+ ## Configuration
40
+
41
+ Requires Firebase Admin SDK initialization with appropriate credentials. See [Firebase Admin SDK Setup](https://firebase.google.com/docs/admin/setup) for details.
42
+
43
+ ## License
44
+
45
+ MIT
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Firestore implementation of IAsyncThreadStore.
3
+ *
4
+ * Data model (per architecture):
5
+ * tenants/{tenantId}/threads/{threadId}
6
+ * tenants/{tenantId}/containers/{containerId}
7
+ * tenants/{tenantId}/groups/{groupId}
8
+ *
9
+ * Uses callback pattern: operations invoke IStorageClient methods on completion.
10
+ */
11
+ import { Firestore } from 'firebase-admin/firestore';
12
+ import { Thread, Container, Group, Entity } from '@redjay/threads-core';
13
+ import { IAsyncThreadStore, IStorageClient, ThreadFilter, ContainerFilter } from '@redjay/threads-storage';
14
+ export interface FirestoreStoreOptions {
15
+ /** Firestore instance (from firebase-admin) */
16
+ firestore: Firestore;
17
+ /** Tenant ID for multi-tenant isolation */
18
+ tenantId: string;
19
+ }
20
+ /**
21
+ * Firestore-backed storage for Threads data.
22
+ *
23
+ * Each tenant has isolated collections under tenants/{tenantId}/.
24
+ * All operations invoke the registered IStorageClient callbacks on completion.
25
+ */
26
+ export declare class FirestoreStore implements IAsyncThreadStore {
27
+ private readonly db;
28
+ private readonly tenantId;
29
+ private client;
30
+ constructor(options: FirestoreStoreOptions);
31
+ /**
32
+ * Register the client that receives operation callbacks.
33
+ */
34
+ setClient(client: IStorageClient): void;
35
+ private get threadsCollection();
36
+ private get containersCollection();
37
+ private get groupsCollection();
38
+ getAllThreads(): Promise<void>;
39
+ getThreadById(id: string): Promise<void>;
40
+ getThreadByName(name: string): Promise<void>;
41
+ findThreads(filter: ThreadFilter): Promise<void>;
42
+ addThread(thread: Thread): Promise<void>;
43
+ updateThread(id: string, updates: Partial<Thread>): Promise<void>;
44
+ deleteThread(id: string): Promise<void>;
45
+ getAllContainers(): Promise<void>;
46
+ getContainerById(id: string): Promise<void>;
47
+ getContainerByName(name: string): Promise<void>;
48
+ findContainers(filter: ContainerFilter): Promise<void>;
49
+ addContainer(container: Container): Promise<void>;
50
+ updateContainer(id: string, updates: Partial<Container>): Promise<void>;
51
+ deleteContainer(id: string): Promise<void>;
52
+ getAllGroups(): Promise<void>;
53
+ getGroupById(id: string): Promise<void>;
54
+ getGroupByName(name: string): Promise<void>;
55
+ addGroup(group: Group): Promise<void>;
56
+ updateGroup(id: string, updates: Partial<Group>): Promise<void>;
57
+ deleteGroup(id: string): Promise<void>;
58
+ getEntityById(id: string): Promise<void>;
59
+ getEntityByName(name: string): Promise<void>;
60
+ getAllEntities(): Promise<void>;
61
+ isContainer(entity: Entity): entity is Container;
62
+ isThread(entity: Entity): entity is Thread;
63
+ }
64
+ //# sourceMappingURL=firestore-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestore-store.d.ts","sourceRoot":"","sources":["../src/firestore-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,448 @@
1
+ "use strict";
2
+ /**
3
+ * Firestore implementation of IAsyncThreadStore.
4
+ *
5
+ * Data model (per architecture):
6
+ * tenants/{tenantId}/threads/{threadId}
7
+ * tenants/{tenantId}/containers/{containerId}
8
+ * tenants/{tenantId}/groups/{groupId}
9
+ *
10
+ * Uses callback pattern: operations invoke IStorageClient methods on completion.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.FirestoreStore = void 0;
14
+ /**
15
+ * Firestore-backed storage for Threads data.
16
+ *
17
+ * Each tenant has isolated collections under tenants/{tenantId}/.
18
+ * All operations invoke the registered IStorageClient callbacks on completion.
19
+ */
20
+ class FirestoreStore {
21
+ db;
22
+ tenantId;
23
+ client = null;
24
+ constructor(options) {
25
+ // Validate tenant ID to prevent invalid collection paths
26
+ if (!options.tenantId || typeof options.tenantId !== 'string') {
27
+ throw new Error('tenantId is required');
28
+ }
29
+ if (!/^[a-zA-Z0-9_-]+$/.test(options.tenantId)) {
30
+ throw new Error('tenantId contains invalid characters');
31
+ }
32
+ this.db = options.firestore;
33
+ this.tenantId = options.tenantId;
34
+ }
35
+ /**
36
+ * Register the client that receives operation callbacks.
37
+ */
38
+ setClient(client) {
39
+ this.client = client;
40
+ }
41
+ // === Collection References ===
42
+ get threadsCollection() {
43
+ return this.db.collection(`tenants/${this.tenantId}/threads`);
44
+ }
45
+ get containersCollection() {
46
+ return this.db.collection(`tenants/${this.tenantId}/containers`);
47
+ }
48
+ get groupsCollection() {
49
+ return this.db.collection(`tenants/${this.tenantId}/groups`);
50
+ }
51
+ // === Thread Operations ===
52
+ async getAllThreads() {
53
+ try {
54
+ const snapshot = await this.threadsCollection.get();
55
+ const threads = snapshot.docs.map((doc) => doc.data());
56
+ this.client?.onThreadsListed(threads);
57
+ }
58
+ catch (error) {
59
+ console.error('[FirestoreStore] getAllThreads failed:', error);
60
+ this.client?.onError('getAllThreads', error instanceof Error ? error : new Error(String(error)));
61
+ }
62
+ }
63
+ async getThreadById(id) {
64
+ try {
65
+ const doc = await this.threadsCollection.doc(id).get();
66
+ const thread = doc.exists ? doc.data() : undefined;
67
+ this.client?.onThreadFound(thread);
68
+ }
69
+ catch (error) {
70
+ console.error(`[FirestoreStore] getThreadById(${id}) failed:`, error);
71
+ this.client?.onError('getThreadById', error instanceof Error ? error : new Error(String(error)));
72
+ }
73
+ }
74
+ async getThreadByName(name) {
75
+ try {
76
+ const lower = name.toLowerCase();
77
+ const snapshot = await this.threadsCollection.get();
78
+ const thread = snapshot.docs
79
+ .map((doc) => doc.data())
80
+ .find((t) => t.name.toLowerCase() === lower);
81
+ this.client?.onThreadFound(thread);
82
+ }
83
+ catch (error) {
84
+ console.error(`[FirestoreStore] getThreadByName(${name}) failed:`, error);
85
+ this.client?.onError('getThreadByName', error instanceof Error ? error : new Error(String(error)));
86
+ }
87
+ }
88
+ async findThreads(filter) {
89
+ try {
90
+ // Start with all threads, apply filters in memory
91
+ // Firestore compound queries require indexes; for flexibility, filter client-side
92
+ const snapshot = await this.threadsCollection.get();
93
+ const all = snapshot.docs.map((doc) => doc.data());
94
+ const filtered = all.filter((t) => {
95
+ if (filter.status !== undefined && t.status !== filter.status)
96
+ return false;
97
+ if (filter.temperature !== undefined && t.temperature !== filter.temperature)
98
+ return false;
99
+ if (filter.size !== undefined && t.size !== filter.size)
100
+ return false;
101
+ if (filter.importance !== undefined && t.importance !== filter.importance)
102
+ return false;
103
+ if (filter.parentId !== undefined && t.parentId !== filter.parentId)
104
+ return false;
105
+ if (filter.groupId !== undefined && t.groupId !== filter.groupId)
106
+ return false;
107
+ if (filter.tags && filter.tags.length > 0) {
108
+ const threadTags = t.tags || [];
109
+ if (!filter.tags.some((tag) => threadTags.includes(tag)))
110
+ return false;
111
+ }
112
+ if (filter.search) {
113
+ const searchLower = filter.search.toLowerCase();
114
+ const inName = t.name.toLowerCase().includes(searchLower);
115
+ const inDesc = t.description?.toLowerCase().includes(searchLower) ?? false;
116
+ if (!inName && !inDesc)
117
+ return false;
118
+ }
119
+ return true;
120
+ });
121
+ this.client?.onThreadsListed(filtered);
122
+ }
123
+ catch (error) {
124
+ console.error('[FirestoreStore] findThreads failed:', error);
125
+ this.client?.onError('findThreads', error instanceof Error ? error : new Error(String(error)));
126
+ }
127
+ }
128
+ async addThread(thread) {
129
+ try {
130
+ await this.threadsCollection.doc(thread.id).set(thread);
131
+ this.client?.onThreadCreated(thread);
132
+ }
133
+ catch (error) {
134
+ console.error(`[FirestoreStore] addThread(${thread.id}) failed:`, error);
135
+ this.client?.onError('addThread', error instanceof Error ? error : new Error(String(error)));
136
+ }
137
+ }
138
+ async updateThread(id, updates) {
139
+ try {
140
+ const docRef = this.threadsCollection.doc(id);
141
+ const doc = await docRef.get();
142
+ if (!doc.exists) {
143
+ this.client?.onError('updateThread', new Error(`Thread not found: ${id}`));
144
+ return;
145
+ }
146
+ const updatedData = {
147
+ ...updates,
148
+ modified: new Date().toISOString(),
149
+ };
150
+ await docRef.update(updatedData);
151
+ // Fetch updated document to return complete thread
152
+ const updatedDoc = await docRef.get();
153
+ const thread = updatedDoc.data();
154
+ this.client?.onThreadUpdated(thread);
155
+ }
156
+ catch (error) {
157
+ console.error(`[FirestoreStore] updateThread(${id}) failed:`, error);
158
+ this.client?.onError('updateThread', error instanceof Error ? error : new Error(String(error)));
159
+ }
160
+ }
161
+ async deleteThread(id) {
162
+ try {
163
+ const docRef = this.threadsCollection.doc(id);
164
+ const doc = await docRef.get();
165
+ if (!doc.exists) {
166
+ this.client?.onError('deleteThread', new Error(`Thread not found: ${id}`));
167
+ return;
168
+ }
169
+ await docRef.delete();
170
+ this.client?.onThreadDeleted(id);
171
+ }
172
+ catch (error) {
173
+ console.error(`[FirestoreStore] deleteThread(${id}) failed:`, error);
174
+ this.client?.onError('deleteThread', error instanceof Error ? error : new Error(String(error)));
175
+ }
176
+ }
177
+ // === Container Operations ===
178
+ async getAllContainers() {
179
+ try {
180
+ const snapshot = await this.containersCollection.get();
181
+ const containers = snapshot.docs.map((doc) => doc.data());
182
+ this.client?.onContainersListed(containers);
183
+ }
184
+ catch (error) {
185
+ console.error('[FirestoreStore] getAllContainers failed:', error);
186
+ this.client?.onError('getAllContainers', error instanceof Error ? error : new Error(String(error)));
187
+ }
188
+ }
189
+ async getContainerById(id) {
190
+ try {
191
+ const doc = await this.containersCollection.doc(id).get();
192
+ const container = doc.exists ? doc.data() : undefined;
193
+ this.client?.onContainerFound(container);
194
+ }
195
+ catch (error) {
196
+ console.error(`[FirestoreStore] getContainerById(${id}) failed:`, error);
197
+ this.client?.onError('getContainerById', error instanceof Error ? error : new Error(String(error)));
198
+ }
199
+ }
200
+ async getContainerByName(name) {
201
+ try {
202
+ const lower = name.toLowerCase();
203
+ const snapshot = await this.containersCollection.get();
204
+ const container = snapshot.docs
205
+ .map((doc) => doc.data())
206
+ .find((c) => c.name.toLowerCase() === lower);
207
+ this.client?.onContainerFound(container);
208
+ }
209
+ catch (error) {
210
+ console.error(`[FirestoreStore] getContainerByName(${name}) failed:`, error);
211
+ this.client?.onError('getContainerByName', error instanceof Error ? error : new Error(String(error)));
212
+ }
213
+ }
214
+ async findContainers(filter) {
215
+ try {
216
+ const snapshot = await this.containersCollection.get();
217
+ const all = snapshot.docs.map((doc) => doc.data());
218
+ const filtered = all.filter((c) => {
219
+ if (filter.parentId !== undefined && c.parentId !== filter.parentId)
220
+ return false;
221
+ if (filter.groupId !== undefined && c.groupId !== filter.groupId)
222
+ return false;
223
+ if (filter.tags && filter.tags.length > 0) {
224
+ const containerTags = c.tags || [];
225
+ if (!filter.tags.some((tag) => containerTags.includes(tag)))
226
+ return false;
227
+ }
228
+ if (filter.search) {
229
+ const searchLower = filter.search.toLowerCase();
230
+ const inName = c.name.toLowerCase().includes(searchLower);
231
+ const inDesc = c.description?.toLowerCase().includes(searchLower) ?? false;
232
+ if (!inName && !inDesc)
233
+ return false;
234
+ }
235
+ return true;
236
+ });
237
+ this.client?.onContainersListed(filtered);
238
+ }
239
+ catch (error) {
240
+ console.error('[FirestoreStore] findContainers failed:', error);
241
+ this.client?.onError('findContainers', error instanceof Error ? error : new Error(String(error)));
242
+ }
243
+ }
244
+ async addContainer(container) {
245
+ try {
246
+ await this.containersCollection.doc(container.id).set(container);
247
+ this.client?.onContainerCreated(container);
248
+ }
249
+ catch (error) {
250
+ console.error(`[FirestoreStore] addContainer(${container.id}) failed:`, error);
251
+ this.client?.onError('addContainer', error instanceof Error ? error : new Error(String(error)));
252
+ }
253
+ }
254
+ async updateContainer(id, updates) {
255
+ try {
256
+ const docRef = this.containersCollection.doc(id);
257
+ const doc = await docRef.get();
258
+ if (!doc.exists) {
259
+ this.client?.onError('updateContainer', new Error(`Container not found: ${id}`));
260
+ return;
261
+ }
262
+ const updatedData = {
263
+ ...updates,
264
+ modified: new Date().toISOString(),
265
+ };
266
+ await docRef.update(updatedData);
267
+ // Fetch updated document to return complete container
268
+ const updatedDoc = await docRef.get();
269
+ const container = updatedDoc.data();
270
+ this.client?.onContainerUpdated(container);
271
+ }
272
+ catch (error) {
273
+ console.error(`[FirestoreStore] updateContainer(${id}) failed:`, error);
274
+ this.client?.onError('updateContainer', error instanceof Error ? error : new Error(String(error)));
275
+ }
276
+ }
277
+ async deleteContainer(id) {
278
+ try {
279
+ const docRef = this.containersCollection.doc(id);
280
+ const doc = await docRef.get();
281
+ if (!doc.exists) {
282
+ this.client?.onError('deleteContainer', new Error(`Container not found: ${id}`));
283
+ return;
284
+ }
285
+ await docRef.delete();
286
+ this.client?.onContainerDeleted(id);
287
+ }
288
+ catch (error) {
289
+ console.error(`[FirestoreStore] deleteContainer(${id}) failed:`, error);
290
+ this.client?.onError('deleteContainer', error instanceof Error ? error : new Error(String(error)));
291
+ }
292
+ }
293
+ // === Group Operations ===
294
+ async getAllGroups() {
295
+ try {
296
+ const snapshot = await this.groupsCollection.get();
297
+ const groups = snapshot.docs.map((doc) => doc.data());
298
+ this.client?.onGroupsListed(groups);
299
+ }
300
+ catch (error) {
301
+ console.error('[FirestoreStore] getAllGroups failed:', error);
302
+ this.client?.onError('getAllGroups', error instanceof Error ? error : new Error(String(error)));
303
+ }
304
+ }
305
+ async getGroupById(id) {
306
+ try {
307
+ const doc = await this.groupsCollection.doc(id).get();
308
+ const group = doc.exists ? doc.data() : undefined;
309
+ this.client?.onGroupFound(group);
310
+ }
311
+ catch (error) {
312
+ console.error(`[FirestoreStore] getGroupById(${id}) failed:`, error);
313
+ this.client?.onError('getGroupById', error instanceof Error ? error : new Error(String(error)));
314
+ }
315
+ }
316
+ async getGroupByName(name) {
317
+ try {
318
+ const lower = name.toLowerCase();
319
+ const snapshot = await this.groupsCollection.get();
320
+ const group = snapshot.docs
321
+ .map((doc) => doc.data())
322
+ .find((g) => g.name.toLowerCase() === lower);
323
+ this.client?.onGroupFound(group);
324
+ }
325
+ catch (error) {
326
+ console.error(`[FirestoreStore] getGroupByName(${name}) failed:`, error);
327
+ this.client?.onError('getGroupByName', error instanceof Error ? error : new Error(String(error)));
328
+ }
329
+ }
330
+ async addGroup(group) {
331
+ try {
332
+ await this.groupsCollection.doc(group.id).set(group);
333
+ this.client?.onGroupCreated(group);
334
+ }
335
+ catch (error) {
336
+ console.error(`[FirestoreStore] addGroup(${group.id}) failed:`, error);
337
+ this.client?.onError('addGroup', error instanceof Error ? error : new Error(String(error)));
338
+ }
339
+ }
340
+ async updateGroup(id, updates) {
341
+ try {
342
+ const docRef = this.groupsCollection.doc(id);
343
+ const doc = await docRef.get();
344
+ if (!doc.exists) {
345
+ this.client?.onError('updateGroup', new Error(`Group not found: ${id}`));
346
+ return;
347
+ }
348
+ const updatedData = {
349
+ ...updates,
350
+ modified: new Date().toISOString(),
351
+ };
352
+ await docRef.update(updatedData);
353
+ // Fetch updated document to return complete group
354
+ const updatedDoc = await docRef.get();
355
+ const group = updatedDoc.data();
356
+ this.client?.onGroupUpdated(group);
357
+ }
358
+ catch (error) {
359
+ console.error(`[FirestoreStore] updateGroup(${id}) failed:`, error);
360
+ this.client?.onError('updateGroup', error instanceof Error ? error : new Error(String(error)));
361
+ }
362
+ }
363
+ async deleteGroup(id) {
364
+ try {
365
+ const docRef = this.groupsCollection.doc(id);
366
+ const doc = await docRef.get();
367
+ if (!doc.exists) {
368
+ this.client?.onError('deleteGroup', new Error(`Group not found: ${id}`));
369
+ return;
370
+ }
371
+ await docRef.delete();
372
+ this.client?.onGroupDeleted(id);
373
+ }
374
+ catch (error) {
375
+ console.error(`[FirestoreStore] deleteGroup(${id}) failed:`, error);
376
+ this.client?.onError('deleteGroup', error instanceof Error ? error : new Error(String(error)));
377
+ }
378
+ }
379
+ // === Entity Operations ===
380
+ async getEntityById(id) {
381
+ try {
382
+ // Check threads first
383
+ const threadDoc = await this.threadsCollection.doc(id).get();
384
+ if (threadDoc.exists) {
385
+ this.client?.onEntityFound(threadDoc.data());
386
+ return;
387
+ }
388
+ // Then containers
389
+ const containerDoc = await this.containersCollection.doc(id).get();
390
+ if (containerDoc.exists) {
391
+ this.client?.onEntityFound(containerDoc.data());
392
+ return;
393
+ }
394
+ this.client?.onEntityFound(undefined);
395
+ }
396
+ catch (error) {
397
+ console.error(`[FirestoreStore] getEntityById(${id}) failed:`, error);
398
+ this.client?.onError('getEntityById', error instanceof Error ? error : new Error(String(error)));
399
+ }
400
+ }
401
+ async getEntityByName(name) {
402
+ try {
403
+ const lower = name.toLowerCase();
404
+ // Check threads first
405
+ const threadSnapshot = await this.threadsCollection.get();
406
+ const thread = threadSnapshot.docs
407
+ .map((doc) => doc.data())
408
+ .find((t) => t.name.toLowerCase() === lower);
409
+ if (thread) {
410
+ this.client?.onEntityFound(thread);
411
+ return;
412
+ }
413
+ // Then containers
414
+ const containerSnapshot = await this.containersCollection.get();
415
+ const container = containerSnapshot.docs
416
+ .map((doc) => doc.data())
417
+ .find((c) => c.name.toLowerCase() === lower);
418
+ this.client?.onEntityFound(container);
419
+ }
420
+ catch (error) {
421
+ console.error(`[FirestoreStore] getEntityByName(${name}) failed:`, error);
422
+ this.client?.onError('getEntityByName', error instanceof Error ? error : new Error(String(error)));
423
+ }
424
+ }
425
+ async getAllEntities() {
426
+ try {
427
+ const [threadSnapshot, containerSnapshot] = await Promise.all([
428
+ this.threadsCollection.get(),
429
+ this.containersCollection.get(),
430
+ ]);
431
+ const threads = threadSnapshot.docs.map((doc) => doc.data());
432
+ const containers = containerSnapshot.docs.map((doc) => doc.data());
433
+ this.client?.onEntitiesListed([...threads, ...containers]);
434
+ }
435
+ catch (error) {
436
+ console.error('[FirestoreStore] getAllEntities failed:', error);
437
+ this.client?.onError('getAllEntities', error instanceof Error ? error : new Error(String(error)));
438
+ }
439
+ }
440
+ isContainer(entity) {
441
+ return entity.type === 'container';
442
+ }
443
+ isThread(entity) {
444
+ return entity.type !== 'container';
445
+ }
446
+ }
447
+ exports.FirestoreStore = FirestoreStore;
448
+ //# sourceMappingURL=firestore-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firestore-store.js","sourceRoot":"","sources":["../src/firestore-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { FirestoreStore, FirestoreStoreOptions } from './firestore-store';
2
+ export type { IAsyncThreadStore, ThreadFilter, ContainerFilter } from '@redjay/threads-storage';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FirestoreStore = void 0;
4
+ // FirestoreStore implementation
5
+ var firestore_store_1 = require("./firestore-store");
6
+ Object.defineProperty(exports, "FirestoreStore", { enumerable: true, get: function () { return firestore_store_1.FirestoreStore; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,gCAAgC;AAChC,qDAA0E;AAAjE,iHAAA,cAAc,OAAA"}
package/package.json ADDED
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "@redjay/threads-firebase-storage",
3
+ "version": "1.1.0",
4
+ "description": "Firebase Firestore storage adapter for Threads platform",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "default": "./dist/index.js"
11
+ }
12
+ },
13
+ "files": [
14
+ "dist",
15
+ "README.md",
16
+ "LICENSE"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc -b",
20
+ "clean": "rm -rf dist",
21
+ "typecheck": "tsc --noEmit"
22
+ },
23
+ "keywords": [
24
+ "threads",
25
+ "firebase",
26
+ "firestore",
27
+ "storage"
28
+ ],
29
+ "author": "Joshua Ramirez",
30
+ "license": "MIT",
31
+ "engines": {
32
+ "node": ">=20.0.0"
33
+ },
34
+ "repository": {
35
+ "type": "git",
36
+ "url": "git+https://github.com/JoshuaRamirez/threads-cli.git",
37
+ "directory": "packages/firebase-storage"
38
+ },
39
+ "bugs": {
40
+ "url": "https://github.com/JoshuaRamirez/threads-cli/issues"
41
+ },
42
+ "homepage": "https://github.com/JoshuaRamirez/threads-cli/tree/master/packages/firebase-storage#readme",
43
+ "publishConfig": {
44
+ "access": "public",
45
+ "registry": "https://registry.npmjs.org/"
46
+ },
47
+ "dependencies": {
48
+ "@redjay/threads-core": "workspace:*",
49
+ "@redjay/threads-storage": "workspace:*"
50
+ },
51
+ "devDependencies": {
52
+ "typescript": "^5.9.3"
53
+ },
54
+ "peerDependencies": {
55
+ "firebase-admin": ">=12.0.0"
56
+ }
57
+ }