@knymbus/firestoredb 1.2.2 → 1.2.5

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.
@@ -1,5 +1,5 @@
1
1
  import type { QueryConstraint } from "firebase/firestore";
2
- import { FirestoreSDK, PaginationMetadata, SortDescriptor, WithSystemFields } from "./types";
2
+ import { FirestoreSDK, NormalizedResponse, PaginationConfig, SortDescriptor, StandardResponse, WithSystemFields } from "./types";
3
3
  import { LRUCache } from './utils';
4
4
  import { FirestoreCursor } from "./utils/FirestoreCursor";
5
5
  export declare class FirestoreQuery<T> {
@@ -42,6 +42,7 @@ export declare class FirestoreQuery<T> {
42
42
  /** Simple execution (Returns Array) */
43
43
  execute(): Promise<WithSystemFields<T>[]>;
44
44
  /**
45
+ * @deprecated Use the config-based version for more control over complexity.
45
46
  * Paginated execution (Returns Data + Metadata)
46
47
  *
47
48
  * @example
@@ -59,10 +60,21 @@ export declare class FirestoreQuery<T> {
59
60
 
60
61
  console.log(`Viewing page ${metadata.currentPage} of ${metadata.totalPages}`);
61
62
  */
62
- paginate(alreadyLoadedCount?: number): Promise<{
63
- data: WithSystemFields<T>[];
64
- metadata: PaginationMetadata;
65
- }>;
63
+ paginate(alreadyLoadedCount?: number): Promise<StandardResponse<T>>;
64
+ /**
65
+ * Advanced pagination with complexity control.
66
+ * Returns either a flat array (oN) or a normalized object (o1).
67
+ * @param config Configuration object for data shape and loading offset.
68
+ */
69
+ paginate(config?: PaginationConfig & {
70
+ timeComplexity: "o1";
71
+ }): Promise<NormalizedResponse<T>>;
72
+ /**
73
+ * Overload for O(N) complexity -> returns Standard array
74
+ */
75
+ paginate(config?: PaginationConfig & {
76
+ timeComplexity: "oN";
77
+ }): Promise<StandardResponse<T>>;
66
78
  stream(): ReadableStream<T & {
67
79
  _id: string;
68
80
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"FirestoreQuery.d.ts","sourceRoot":"","sources":["../../src/FirestoreQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG7F,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D,qBAAa,cAAc,CAAC,CAAC;IAgBrB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,SAAS;IAEjB,OAAO,CAAC,gBAAgB;IArB5B,OAAc,YAAY,WAAkB;IAC5C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,WAAW,CAAa;IAGhC,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAmC;gBAG1C,EAAE,EAAE,GAAG,EACP,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,IAAI,EAAE,YAAY,EAClB,gBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,eAAe,EAAE,EAC/C,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,EAC9C,mBAAmB,EAAE,OAAO,EACpB,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO;IAKpH,4CAA4C;IAC5C,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM;IAMpB;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM;IAKP,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAK7C,KAAK,CAAC,CAAC,EAAE,MAAM;IAKtB,4BAA4B;IACrB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAW1C,gCAAgC;IACzB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAW3C;;;OAGG;IACH,WAAW;IAKX,WAAW;IAEX,uCAAuC;IAC1B,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IActD;;;;;;;;;;;;;;;;;OAiBG;IACU,QAAQ,CAAC,kBAAkB,GAAE,MAAU,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QAAC,QAAQ,EAAE,kBAAkB,CAAA;KAAE,CAAC;IA0CtH,MAAM,IAAI,cAAc,CAAC,CAAC,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAkBpD;;;;;;;;;;OAUG;IACU,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAapC,mBAAmB;IAsCjC,OAAO,CAAC,iBAAiB;IAezB;;GAED;IACC,OAAO,CAAC,eAAe;CAQ1B"}
1
+ {"version":3,"file":"FirestoreQuery.d.ts","sourceRoot":"","sources":["../../src/FirestoreQuery.ts"],"names":[],"mappings":"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"}
@@ -103,26 +103,14 @@ class FirestoreQuery {
103
103
  });
104
104
  });
105
105
  }
106
- /**
107
- * Paginated execution (Returns Data + Metadata)
108
- *
109
- * @example
110
- * // React State example
111
- const [currentPage, setCurrentPage] = useState(1);
112
- const [lastId, setLastId] = useState(null);
113
-
114
- const { data, metadata } = await Products.find({ category: 'electronics' })
115
- .sort({ price: 'asc' })
116
- .limit(10)
117
- .page(currentPage) // Sets the metadata
118
- .after(lastId) // Sets the cursor
119
- .cache() // Speeds up the "Back" button
120
- .paginate();
121
-
122
- console.log(`Viewing page ${metadata.currentPage} of ${metadata.totalPages}`);
123
- */
124
- paginate() {
125
- return __awaiter(this, arguments, void 0, function* (alreadyLoadedCount = 0) {
106
+ // Implementation
107
+ paginate(arg) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ var _a, _b;
110
+ // Set the Configuration based on the input args
111
+ const config = (typeof arg === 'object' && arg !== null)
112
+ ? arg
113
+ : { alreadyLoadedCount: arg !== null && arg !== void 0 ? arg : 0, timeComplexity: "oN" };
126
114
  // set the global key for this query
127
115
  const key = this._generateCacheKey();
128
116
  // 1. Check Cache
@@ -135,25 +123,54 @@ class FirestoreQuery {
135
123
  const data = yield this.execute();
136
124
  const totalRecords = yield this.countDocs(this.filter);
137
125
  const totalPages = this._limit > 0 ? Math.ceil(totalRecords / this._limit) : 1;
138
- const currentTotalFetched = alreadyLoadedCount + data.length;
126
+ const currentTotalFetched = config.alreadyLoadedCount + data.length;
139
127
  const totalRemaining = Math.max(0, totalRecords - currentTotalFetched);
140
- const result = {
141
- data,
142
- metadata: {
143
- totalRecords,
144
- totalPages,
145
- totalRemaining,
146
- currentPage: this._pageNumber,
147
- hasNext: data.length === this._limit && totalRemaining > 0,
148
- hasPrevious: this._pageNumber > 1 || !!this._cursorId
149
- }
128
+ let result;
129
+ // Prepare the meta data to be returned no matter the options
130
+ const meta = {
131
+ totalRecords,
132
+ totalPages,
133
+ totalRemaining,
134
+ currentPage: this._pageNumber,
135
+ hasNext: data.length === this._limit && totalRemaining > 0,
136
+ hasPrevious: this._pageNumber > 1 || !!this._cursorId
150
137
  };
151
- // 2. Fetch & Store
152
- if (this._useCache) {
153
- FirestoreQuery._globalCache.set(key, {
154
- data: result,
155
- timestamp: Date.now()
138
+ if (config.timeComplexity === 'oN') {
139
+ result = {
140
+ data,
141
+ metadata: meta,
142
+ firstId: ((_a = data[0]) === null || _a === void 0 ? void 0 : _a._id) || null,
143
+ lastId: ((_b = data[data.length - 1]) === null || _b === void 0 ? void 0 : _b._id) || null
144
+ };
145
+ // 2. Fetch & Store
146
+ if (this._useCache) {
147
+ FirestoreQuery._globalCache.set(key, {
148
+ data: result,
149
+ timestamp: Date.now()
150
+ });
151
+ }
152
+ return result;
153
+ }
154
+ if (config.timeComplexity === 'o1') {
155
+ const transformed = { ids: [], dataById: {} };
156
+ data.map(el => {
157
+ transformed.ids.push(el._id);
158
+ transformed.dataById[el._id] = el;
156
159
  });
160
+ result = {
161
+ data: transformed,
162
+ metadata: meta,
163
+ firstId: transformed.ids[0] || null,
164
+ lastId: transformed.ids[transformed.ids.length - 1] || null
165
+ };
166
+ // 2. Fetch & Store
167
+ if (this._useCache) {
168
+ FirestoreQuery._globalCache.set(key, {
169
+ data: result,
170
+ timestamp: Date.now()
171
+ });
172
+ }
173
+ return result; // Type assertion required in the implementation body
157
174
  }
158
175
  return result;
159
176
  });
@@ -58,6 +58,25 @@ export interface DBOptions {
58
58
  security?: SecurityPolicy;
59
59
  tenant?: TenantOptions;
60
60
  }
61
+ export type PaginationConfig = {
62
+ alreadyLoadedCount: number;
63
+ timeComplexity: "oN" | "o1";
64
+ };
65
+ export type StandardResponse<T> = {
66
+ data: WithSystemFields<T>[];
67
+ metadata: PaginationMetadata;
68
+ lastId: string | null;
69
+ firstId: string | null;
70
+ };
71
+ export type NormalizedResponse<T> = {
72
+ data: {
73
+ ids: string[];
74
+ dataById: Record<string, WithSystemFields<T>>;
75
+ };
76
+ metadata: PaginationMetadata;
77
+ lastId: string | null;
78
+ firstId: string | null;
79
+ };
61
80
  /**
62
81
  * TYPE DEFINITIONS
63
82
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,SAAS,EAAE,mBAAmB,EAAE,iBAAiB,EACjD,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EACpD,YAAY,EACZ,cAAc,EACd,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,kBAAkB,EACrB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,CAAA;AAC3C,MAAM,WAAW,kBAAkB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAC5D;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG;CACvB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAGxB,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CACrB,CAAA;AAID,KAAK,mBAAmB,GAAG;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,CAAC,EAAE,IAAI,CAAA;CACnB,CAAA;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;AAE3C,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE;QACH,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC;QACzC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC;QAC5C,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC;QACzD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;KAC7C,CAAC;IACF,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAA;CACjC;AAGD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC;AAE1D,MAAM,WAAW,SAAS;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,MAAM,CAAC,EAAE,aAAa,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,mBAAmB,CAAC;IACjE,GAAG,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,mBAAmB,CAAC,YAAY,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE,KAAK,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACvK,MAAM,EAAE,CAAC,GAAG,EAAE,iBAAiB,CAAC,YAAY,EAAE,YAAY,CAAC,KAAK,OAAO,CAAC,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;IACtH,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IACrG,MAAM,EAAE,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,SAAS,EAAE,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,SAAS,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,UAAU,EAAE,CAAC,EAAE,EAAE,SAAS,KAAK,UAAU,CAAC;IAC1C,KAAK,EAAE,CAAC,GAAG,EAAE,mBAAmB,GAAG,KAAK,EAAE,GAAG,WAAW,EAAE,eAAe,EAAE,KAAK,KAAK,CAAC;IACtF,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,KAAK,eAAe,CAAC;IAC/D,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,eAAe,CAAC;IACtC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,KAAK,eAAe,CAAC;IAClE,UAAU,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,eAAe,CAAC;IACxD,SAAS,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,eAAe,CAAC;IACvD,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,eAAe,CAAC;IAC5C,eAAe,EAAE,MAAM,GAAG,CAAC;IAC3B,kBAAkB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACnD,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC;IAC3D,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtE,KAAK,EAAE,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,sBAAsB,EAAE,CAAC,iBAAiB,SAAS,aAAa,EAAE,YAAY,EAAE,WAAW,SAAS,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,aAAa,EAAE,iBAAiB,KAAK,OAAO,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAC9Q,UAAU,EAAE;QAER,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE;YACrD,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;YACzC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;YACxC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;SACzB,GAAG,WAAW,CAAC;QAGhB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE;YACrB,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;YACzC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;YACxC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;SACzB,GAAG,WAAW,CAAC;QAGhB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;QAG7K,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;QAG7I,CAAC,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;QAC1L,CAAC,GAAG,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;KAC7J,CAAC;IACF,cAAc,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,CAAA;CAClJ"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { QueryConstraint } from "firebase/firestore";
2
- import { FirestoreSDK, PaginationMetadata, SortDescriptor, WithSystemFields } from "./types";
2
+ import { FirestoreSDK, NormalizedResponse, PaginationConfig, SortDescriptor, StandardResponse, WithSystemFields } from "./types";
3
3
  import { LRUCache } from './utils';
4
4
  import { FirestoreCursor } from "./utils/FirestoreCursor";
5
5
  export declare class FirestoreQuery<T> {
@@ -42,6 +42,7 @@ export declare class FirestoreQuery<T> {
42
42
  /** Simple execution (Returns Array) */
43
43
  execute(): Promise<WithSystemFields<T>[]>;
44
44
  /**
45
+ * @deprecated Use the config-based version for more control over complexity.
45
46
  * Paginated execution (Returns Data + Metadata)
46
47
  *
47
48
  * @example
@@ -59,10 +60,21 @@ export declare class FirestoreQuery<T> {
59
60
 
60
61
  console.log(`Viewing page ${metadata.currentPage} of ${metadata.totalPages}`);
61
62
  */
62
- paginate(alreadyLoadedCount?: number): Promise<{
63
- data: WithSystemFields<T>[];
64
- metadata: PaginationMetadata;
65
- }>;
63
+ paginate(alreadyLoadedCount?: number): Promise<StandardResponse<T>>;
64
+ /**
65
+ * Advanced pagination with complexity control.
66
+ * Returns either a flat array (oN) or a normalized object (o1).
67
+ * @param config Configuration object for data shape and loading offset.
68
+ */
69
+ paginate(config?: PaginationConfig & {
70
+ timeComplexity: "o1";
71
+ }): Promise<NormalizedResponse<T>>;
72
+ /**
73
+ * Overload for O(N) complexity -> returns Standard array
74
+ */
75
+ paginate(config?: PaginationConfig & {
76
+ timeComplexity: "oN";
77
+ }): Promise<StandardResponse<T>>;
66
78
  stream(): ReadableStream<T & {
67
79
  _id: string;
68
80
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"FirestoreQuery.d.ts","sourceRoot":"","sources":["../../src/FirestoreQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAG7F,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D,qBAAa,cAAc,CAAC,CAAC;IAgBrB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,gBAAgB;IACxB,OAAO,CAAC,SAAS;IAEjB,OAAO,CAAC,gBAAgB;IArB5B,OAAc,YAAY,WAAkB;IAC5C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,WAAW,CAAa;IAGhC,OAAO,CAAC,WAAW,CAAuC;IAC1D,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAmC;gBAG1C,EAAE,EAAE,GAAG,EACP,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,GAAG,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,IAAI,EAAE,YAAY,EAClB,gBAAgB,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,eAAe,EAAE,EAC/C,SAAS,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,CAAC,EAC9C,mBAAmB,EAAE,OAAO,EACpB,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO;IAKpH,4CAA4C;IAC5C,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM;IAMpB;;OAEG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM;IAKP,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IAK7C,KAAK,CAAC,CAAC,EAAE,MAAM;IAKtB,4BAA4B;IACrB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAW1C,gCAAgC;IACzB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAW3C;;;OAGG;IACH,WAAW;IAKX,WAAW;IAEX,uCAAuC;IAC1B,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IActD;;;;;;;;;;;;;;;;;OAiBG;IACU,QAAQ,CAAC,kBAAkB,GAAE,MAAU,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QAAC,QAAQ,EAAE,kBAAkB,CAAA;KAAE,CAAC;IA0CtH,MAAM,IAAI,cAAc,CAAC,CAAC,GAAG;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAkBpD;;;;;;;;;;OAUG;IACU,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAapC,mBAAmB;IAsCjC,OAAO,CAAC,iBAAiB;IAezB;;GAED;IACC,OAAO,CAAC,eAAe;CAQ1B"}
1
+ {"version":3,"file":"FirestoreQuery.d.ts","sourceRoot":"","sources":["../../src/FirestoreQuery.ts"],"names":[],"mappings":"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"}
@@ -103,26 +103,14 @@ class FirestoreQuery {
103
103
  });
104
104
  });
105
105
  }
106
- /**
107
- * Paginated execution (Returns Data + Metadata)
108
- *
109
- * @example
110
- * // React State example
111
- const [currentPage, setCurrentPage] = useState(1);
112
- const [lastId, setLastId] = useState(null);
113
-
114
- const { data, metadata } = await Products.find({ category: 'electronics' })
115
- .sort({ price: 'asc' })
116
- .limit(10)
117
- .page(currentPage) // Sets the metadata
118
- .after(lastId) // Sets the cursor
119
- .cache() // Speeds up the "Back" button
120
- .paginate();
121
-
122
- console.log(`Viewing page ${metadata.currentPage} of ${metadata.totalPages}`);
123
- */
124
- paginate() {
125
- return __awaiter(this, arguments, void 0, function* (alreadyLoadedCount = 0) {
106
+ // Implementation
107
+ paginate(arg) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ var _a, _b;
110
+ // Set the Configuration based on the input args
111
+ const config = (typeof arg === 'object' && arg !== null)
112
+ ? arg
113
+ : { alreadyLoadedCount: arg !== null && arg !== void 0 ? arg : 0, timeComplexity: "oN" };
126
114
  // set the global key for this query
127
115
  const key = this._generateCacheKey();
128
116
  // 1. Check Cache
@@ -135,25 +123,54 @@ class FirestoreQuery {
135
123
  const data = yield this.execute();
136
124
  const totalRecords = yield this.countDocs(this.filter);
137
125
  const totalPages = this._limit > 0 ? Math.ceil(totalRecords / this._limit) : 1;
138
- const currentTotalFetched = alreadyLoadedCount + data.length;
126
+ const currentTotalFetched = config.alreadyLoadedCount + data.length;
139
127
  const totalRemaining = Math.max(0, totalRecords - currentTotalFetched);
140
- const result = {
141
- data,
142
- metadata: {
143
- totalRecords,
144
- totalPages,
145
- totalRemaining,
146
- currentPage: this._pageNumber,
147
- hasNext: data.length === this._limit && totalRemaining > 0,
148
- hasPrevious: this._pageNumber > 1 || !!this._cursorId
149
- }
128
+ let result;
129
+ // Prepare the meta data to be returned no matter the options
130
+ const meta = {
131
+ totalRecords,
132
+ totalPages,
133
+ totalRemaining,
134
+ currentPage: this._pageNumber,
135
+ hasNext: data.length === this._limit && totalRemaining > 0,
136
+ hasPrevious: this._pageNumber > 1 || !!this._cursorId
150
137
  };
151
- // 2. Fetch & Store
152
- if (this._useCache) {
153
- FirestoreQuery._globalCache.set(key, {
154
- data: result,
155
- timestamp: Date.now()
138
+ if (config.timeComplexity === 'oN') {
139
+ result = {
140
+ data,
141
+ metadata: meta,
142
+ firstId: ((_a = data[0]) === null || _a === void 0 ? void 0 : _a._id) || null,
143
+ lastId: ((_b = data[data.length - 1]) === null || _b === void 0 ? void 0 : _b._id) || null
144
+ };
145
+ // 2. Fetch & Store
146
+ if (this._useCache) {
147
+ FirestoreQuery._globalCache.set(key, {
148
+ data: result,
149
+ timestamp: Date.now()
150
+ });
151
+ }
152
+ return result;
153
+ }
154
+ if (config.timeComplexity === 'o1') {
155
+ const transformed = { ids: [], dataById: {} };
156
+ data.map(el => {
157
+ transformed.ids.push(el._id);
158
+ transformed.dataById[el._id] = el;
156
159
  });
160
+ result = {
161
+ data: transformed,
162
+ metadata: meta,
163
+ firstId: transformed.ids[0] || null,
164
+ lastId: transformed.ids[transformed.ids.length - 1] || null
165
+ };
166
+ // 2. Fetch & Store
167
+ if (this._useCache) {
168
+ FirestoreQuery._globalCache.set(key, {
169
+ data: result,
170
+ timestamp: Date.now()
171
+ });
172
+ }
173
+ return result; // Type assertion required in the implementation body
157
174
  }
158
175
  return result;
159
176
  });
@@ -58,6 +58,25 @@ export interface DBOptions {
58
58
  security?: SecurityPolicy;
59
59
  tenant?: TenantOptions;
60
60
  }
61
+ export type PaginationConfig = {
62
+ alreadyLoadedCount: number;
63
+ timeComplexity: "oN" | "o1";
64
+ };
65
+ export type StandardResponse<T> = {
66
+ data: WithSystemFields<T>[];
67
+ metadata: PaginationMetadata;
68
+ lastId: string | null;
69
+ firstId: string | null;
70
+ };
71
+ export type NormalizedResponse<T> = {
72
+ data: {
73
+ ids: string[];
74
+ dataById: Record<string, WithSystemFields<T>>;
75
+ };
76
+ metadata: PaginationMetadata;
77
+ lastId: string | null;
78
+ firstId: string | null;
79
+ };
61
80
  /**
62
81
  * TYPE DEFINITIONS
63
82
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knymbus/firestoredb",
3
- "version": "1.2.2",
3
+ "version": "1.2.5",
4
4
  "description": "MongoDB-style wrapper for Firestore with parallel streaming and caching.",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",