firebase-mcp 0.1.2 → 0.2.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/README.md +15 -4
- package/dist/firebase/index.d.ts +2 -0
- package/dist/firebase/index.d.ts.map +1 -1
- package/dist/firebase/index.js +2 -1
- package/dist/firebase/index.js.map +1 -1
- package/dist/tools/auth/get_user.d.ts +27 -0
- package/dist/tools/auth/get_user.d.ts.map +1 -0
- package/dist/tools/auth/get_user.js +66 -0
- package/dist/tools/auth/get_user.js.map +1 -0
- package/dist/tools/auth/index.d.ts +3 -0
- package/dist/tools/auth/index.d.ts.map +1 -0
- package/dist/tools/auth/index.js +19 -0
- package/dist/tools/auth/index.js.map +1 -0
- package/dist/tools/auth/list_users.d.ts +23 -0
- package/dist/tools/auth/list_users.d.ts.map +1 -0
- package/dist/tools/auth/list_users.js +46 -0
- package/dist/tools/auth/list_users.js.map +1 -0
- package/dist/tools/firestore/count_documents.d.ts.map +1 -1
- package/dist/tools/firestore/count_documents.js.map +1 -1
- package/dist/tools/firestore/get_document.d.ts.map +1 -1
- package/dist/tools/firestore/get_document.js.map +1 -1
- package/dist/tools/firestore/list_documents.d.ts.map +1 -1
- package/dist/tools/firestore/list_documents.js.map +1 -1
- package/dist/tools/firestore/read_collections.d.ts.map +1 -1
- package/dist/tools/firestore/read_collections.js.map +1 -1
- package/dist/tools/firestore/types.d.ts +0 -1
- package/dist/tools/firestore/types.d.ts.map +1 -1
- package/dist/tools/firestore/types.js +3 -28
- package/dist/tools/firestore/types.js.map +1 -1
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +14 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/normalize.d.ts +2 -0
- package/dist/tools/normalize.d.ts.map +1 -0
- package/dist/tools/normalize.js +36 -0
- package/dist/tools/normalize.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
# firebase-mcp
|
|
2
2
|
|
|
3
|
-
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that exposes Firebase Firestore to AI agents. Built with [Effect](https://effect.website) and the Firebase Admin SDK, it runs over stdio and is designed to be wired directly into any MCP-compatible host (Cursor, Claude Desktop, etc.).
|
|
3
|
+
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that exposes Firebase Firestore and Authentication to AI agents. Built with [Effect](https://effect.website) and the Firebase Admin SDK, it runs over stdio and is designed to be wired directly into any MCP-compatible host (Cursor, Claude Desktop, etc.).
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
7
|
- **11 Firestore read tools** covering collections, documents, queries, aggregations, and schema inference
|
|
8
|
+
- **2 Firebase Auth tools** — look up users by UID or email, list users with pagination
|
|
8
9
|
- **Glob-based access control** — allow/deny rules evaluated per Firestore path before any read is performed
|
|
9
|
-
- **Pagination** on `query_collection` and `
|
|
10
|
+
- **Pagination** on `query_collection`, `read_collection`, and `list_users` via cursor-based tokens
|
|
10
11
|
- **Batch fetching** with configurable `maxBatchFetchSize`
|
|
11
12
|
- **Schema inference** via `get_collection_schema` — samples documents and infers field types without reading the full collection
|
|
12
|
-
-
|
|
13
|
+
- **Normalized output** — Firestore Timestamps, GeoPoints, and DocumentReferences are converted to JSON-serializable values on all tools
|
|
14
|
+
- Zero runtime state — each tool call hits Firebase directly through the Admin SDK
|
|
13
15
|
|
|
14
16
|
## Tools
|
|
15
17
|
|
|
18
|
+
### Firestore
|
|
19
|
+
|
|
16
20
|
| Tool | Description |
|
|
17
21
|
| ------------------------ | ----------------------------------------------------------------------------------------------------------- |
|
|
18
22
|
| `list_collections` | List root collections or subcollections of a document. Optionally include document counts. |
|
|
@@ -27,11 +31,18 @@ A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that ex
|
|
|
27
31
|
| `get_collection_schema` | Sample a collection from both ends and infer field types. |
|
|
28
32
|
| `list_indexes` | List Firestore indexes for the project. |
|
|
29
33
|
|
|
34
|
+
### Auth
|
|
35
|
+
|
|
36
|
+
| Tool | Description |
|
|
37
|
+
| ------------ | ------------------------------------------------------------------------ |
|
|
38
|
+
| `get_user` | Fetch a Firebase Auth user by UID or email. |
|
|
39
|
+
| `list_users` | List Firebase Auth users with optional pagination via `nextPageToken`. |
|
|
40
|
+
|
|
30
41
|
## Requirements
|
|
31
42
|
|
|
32
43
|
- Node.js 18+
|
|
33
44
|
- A Firebase project with Firestore enabled
|
|
34
|
-
- A service account JSON key with Firestore read permissions
|
|
45
|
+
- A service account JSON key with Firestore and Auth read permissions
|
|
35
46
|
|
|
36
47
|
## Setup
|
|
37
48
|
|
package/dist/firebase/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Effect } from 'effect';
|
|
2
2
|
import admin from 'firebase-admin';
|
|
3
|
+
import type { Auth } from 'firebase-admin/auth';
|
|
3
4
|
import { ConfigService } from '../config';
|
|
4
5
|
declare const FirebaseInitError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
5
6
|
readonly _tag: "FirebaseInitError";
|
|
@@ -13,6 +14,7 @@ declare const FirebaseService_base: Effect.Service.Class<FirebaseService, "Fireb
|
|
|
13
14
|
readonly accessors: true;
|
|
14
15
|
readonly effect: Effect.Effect<{
|
|
15
16
|
firestore: () => admin.firestore.Firestore;
|
|
17
|
+
auth: () => Auth;
|
|
16
18
|
}, FirebaseInitError, ConfigService>;
|
|
17
19
|
}>;
|
|
18
20
|
export declare class FirebaseService extends FirebaseService_base {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/firebase/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/firebase/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;;;;AAE1C,qBAAa,iBAAkB,SAAQ,uBAAsC;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;;;;;oBAqCyC,IAAI;;;AAnClD,qBAAa,eAAgB,SAAQ,oBAsCpC;CAAG"}
|
package/dist/firebase/index.js
CHANGED
|
@@ -34,7 +34,8 @@ class FirebaseService extends effect_1.Effect.Service()('FirebaseService', {
|
|
|
34
34
|
catch: (cause) => new FirebaseInitError({ message: `Firebase init failed`, cause }),
|
|
35
35
|
});
|
|
36
36
|
const db = firebase_admin_1.default.firestore();
|
|
37
|
-
|
|
37
|
+
const authClient = firebase_admin_1.default.auth();
|
|
38
|
+
return { firestore: () => db, auth: () => authClient };
|
|
38
39
|
}),
|
|
39
40
|
}) {
|
|
40
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/firebase/index.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAsC;AACtC,oEAAmC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/firebase/index.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAsC;AACtC,oEAAmC;AAEnC,qCAAuC;AACvC,yCAAoC;AACpC,sCAA0C;AAE1C,MAAa,iBAAkB,SAAQ,aAAI,CAAC,WAAW,CAAC,mBAAmB,CAGzE;CAAG;AAHL,8CAGK;AAEL,MAAa,eAAgB,SAAQ,eAAM,CAAC,OAAO,EAAmB,CACpE,iBAAiB,EACjB;IACE,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,sBAAa,CAAC,MAAM,CAAC;QAE3C,MAAM,kBAAkB,GAAG,IAAA,mBAAO,EAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QAEvE,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC;YACvC,GAAG,EAAE,GAAG,EAAE,CACR,IAAI,CAAC,KAAK,CACR,IAAA,sBAAY,EAAC,kBAAkB,EAAE,OAAO,CAAC,CAClB;YAC3B,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,iBAAiB,CAAC;gBACpB,OAAO,EAAE,8BAA8B,kBAAkB,EAAE;gBAC3D,KAAK;aACN,CAAC;SACL,CAAC,CAAC;QAEH,KAAK,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC;YAChB,GAAG,EAAE,GAAG,EAAE;gBACR,wBAAK,CAAC,aAAa,CAAC;oBAClB,UAAU,EAAE,wBAAK,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;oBACjD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;iBACrC,CAAC,CAAC;YACL,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,KAAK,EAAE,CAAC;SACpE,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,wBAAK,CAAC,SAAS,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAS,wBAAK,CAAC,IAAI,EAAE,CAAC;QAEtC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,GAAS,EAAE,CAAC,UAAU,EAAE,CAAC;IAC/D,CAAC,CAAC;CACH,CACF;CAAG;AAtCJ,0CAsCI"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { Effect } from 'effect';
|
|
3
|
+
import { FirebaseService } from '../../firebase';
|
|
4
|
+
declare const AuthGetUserError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
5
|
+
readonly _tag: "AuthGetUserError";
|
|
6
|
+
} & Readonly<A>;
|
|
7
|
+
export declare class AuthGetUserError extends AuthGetUserError_base<{
|
|
8
|
+
readonly message: string;
|
|
9
|
+
readonly cause?: unknown;
|
|
10
|
+
}> {
|
|
11
|
+
}
|
|
12
|
+
declare const AuthUserNotFoundError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
13
|
+
readonly _tag: "AuthUserNotFoundError";
|
|
14
|
+
} & Readonly<A>;
|
|
15
|
+
export declare class AuthUserNotFoundError extends AuthUserNotFoundError_base<{
|
|
16
|
+
readonly identifier: string;
|
|
17
|
+
}> {
|
|
18
|
+
}
|
|
19
|
+
export declare const GET_USER: "get_user";
|
|
20
|
+
export interface GetUserArgs {
|
|
21
|
+
uid?: string;
|
|
22
|
+
email?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const getUserDefinition: Tool;
|
|
25
|
+
export declare const getUser: (input: GetUserArgs) => Effect.Effect<unknown, AuthGetUserError | AuthUserNotFoundError, FirebaseService>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=get_user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_user.d.ts","sourceRoot":"","sources":["../../../src/tools/auth/get_user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;;;;AAGjD,qBAAa,gBAAiB,SAAQ,sBAAqC;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;;;;AAEL,qBAAa,qBAAsB,SAAQ,2BAEzC;IACA,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;CAAG;AAEL,eAAO,MAAM,QAAQ,EAAG,UAAmB,CAAC;AAE5C,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,iBAAiB,EAAE,IAiB/B,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,OAAO,WAAW,sFA2CtC,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUser = exports.getUserDefinition = exports.GET_USER = exports.AuthUserNotFoundError = exports.AuthGetUserError = void 0;
|
|
4
|
+
const effect_1 = require("effect");
|
|
5
|
+
const firebase_1 = require("../../firebase");
|
|
6
|
+
const normalize_1 = require("../normalize");
|
|
7
|
+
class AuthGetUserError extends effect_1.Data.TaggedError('AuthGetUserError') {
|
|
8
|
+
}
|
|
9
|
+
exports.AuthGetUserError = AuthGetUserError;
|
|
10
|
+
class AuthUserNotFoundError extends effect_1.Data.TaggedError('AuthUserNotFoundError') {
|
|
11
|
+
}
|
|
12
|
+
exports.AuthUserNotFoundError = AuthUserNotFoundError;
|
|
13
|
+
exports.GET_USER = 'get_user';
|
|
14
|
+
exports.getUserDefinition = {
|
|
15
|
+
name: exports.GET_USER,
|
|
16
|
+
description: 'Fetch a Firebase Auth user by UID or email. Exactly one of uid or email must be provided.',
|
|
17
|
+
inputSchema: {
|
|
18
|
+
type: 'object',
|
|
19
|
+
properties: {
|
|
20
|
+
uid: {
|
|
21
|
+
type: 'string',
|
|
22
|
+
description: 'The Firebase Auth UID of the user.',
|
|
23
|
+
},
|
|
24
|
+
email: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
description: 'The email address of the user.',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
const getUser = (input) => effect_1.Effect.gen(function* () {
|
|
32
|
+
if (!input.uid && !input.email) {
|
|
33
|
+
return yield* effect_1.Effect.fail(new AuthGetUserError({
|
|
34
|
+
message: 'Either uid or email must be provided',
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
const { auth } = yield* firebase_1.FirebaseService;
|
|
38
|
+
const userRecord = yield* effect_1.Effect.tryPromise({
|
|
39
|
+
try: () => input.uid
|
|
40
|
+
? auth().getUser(input.uid)
|
|
41
|
+
: auth().getUserByEmail(input.email),
|
|
42
|
+
catch: (cause) => {
|
|
43
|
+
const code = cause != null &&
|
|
44
|
+
typeof cause === 'object' &&
|
|
45
|
+
'code' in cause &&
|
|
46
|
+
typeof cause.code === 'string'
|
|
47
|
+
? cause.code
|
|
48
|
+
: '';
|
|
49
|
+
if (code === 'auth/user-not-found') {
|
|
50
|
+
return new AuthUserNotFoundError({
|
|
51
|
+
identifier: input.uid ?? input.email ?? '',
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
return new AuthGetUserError({
|
|
55
|
+
message: `Failed to fetch user: ${input.uid ?? input.email}`,
|
|
56
|
+
cause,
|
|
57
|
+
});
|
|
58
|
+
},
|
|
59
|
+
});
|
|
60
|
+
return (0, normalize_1.normalizeValue)({
|
|
61
|
+
...userRecord.toJSON(),
|
|
62
|
+
providerData: userRecord.providerData.map((p) => ({ ...p.toJSON() })),
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
exports.getUser = getUser;
|
|
66
|
+
//# sourceMappingURL=get_user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get_user.js","sourceRoot":"","sources":["../../../src/tools/auth/get_user.ts"],"names":[],"mappings":";;;AACA,mCAAsC;AAEtC,6CAAiD;AACjD,4CAA8C;AAE9C,MAAa,gBAAiB,SAAQ,aAAI,CAAC,WAAW,CAAC,kBAAkB,CAGvE;CAAG;AAHL,4CAGK;AAEL,MAAa,qBAAsB,SAAQ,aAAI,CAAC,WAAW,CACzD,uBAAuB,CAGvB;CAAG;AAJL,sDAIK;AAEQ,QAAA,QAAQ,GAAG,UAAmB,CAAC;AAO/B,QAAA,iBAAiB,GAAS;IACrC,IAAI,EAAE,gBAAQ;IACd,WAAW,EACT,2FAA2F;IAC7F,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,GAAG,EAAE;gBACH,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oCAAoC;aAClD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAC9C;SACF;KACF;CACF,CAAC;AAEK,MAAM,OAAO,GAAG,CAAC,KAAkB,EAAE,EAAE,CAC5C,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CACvB,IAAI,gBAAgB,CAAC;YACnB,OAAO,EAAE,sCAAsC;SAChD,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,0BAAe,CAAC;IAExC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC;QAC1C,GAAG,EAAE,GAAG,EAAE,CACR,KAAK,CAAC,GAAG;YACP,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YAC3B,CAAC,CAAC,IAAI,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,KAAM,CAAC;QACzC,KAAK,EAAE,CAAC,KAAc,EAAE,EAAE;YACxB,MAAM,IAAI,GACR,KAAK,IAAI,IAAI;gBACb,OAAO,KAAK,KAAK,QAAQ;gBACzB,MAAM,IAAI,KAAK;gBACf,OAAQ,KAA2B,CAAC,IAAI,KAAK,QAAQ;gBACnD,CAAC,CAAE,KAA0B,CAAC,IAAI;gBAClC,CAAC,CAAC,EAAE,CAAC;YAET,IAAI,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACnC,OAAO,IAAI,qBAAqB,CAAC;oBAC/B,UAAU,EAAE,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE;iBAC3C,CAAC,CAAC;YACL,CAAC;YAED,OAAO,IAAI,gBAAgB,CAAC;gBAC1B,OAAO,EAAE,yBAAyB,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE;gBAC5D,KAAK;aACN,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,IAAA,0BAAc,EAAC;QACpB,GAAG,UAAU,CAAC,MAAM,EAAE;QACtB,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;KACtE,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AA3CQ,QAAA,OAAO,WA2Cf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/auth/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./get_user"), exports);
|
|
18
|
+
__exportStar(require("./list_users"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/auth/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,+CAA6B"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import { Effect } from 'effect';
|
|
3
|
+
import { FirebaseService } from '../../firebase';
|
|
4
|
+
declare const AuthListUsersError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
5
|
+
readonly _tag: "AuthListUsersError";
|
|
6
|
+
} & Readonly<A>;
|
|
7
|
+
export declare class AuthListUsersError extends AuthListUsersError_base<{
|
|
8
|
+
readonly message: string;
|
|
9
|
+
readonly cause?: unknown;
|
|
10
|
+
}> {
|
|
11
|
+
}
|
|
12
|
+
export declare const LIST_USERS: "list_users";
|
|
13
|
+
export interface ListUsersArgs {
|
|
14
|
+
maxResults?: number;
|
|
15
|
+
pageToken?: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const listUsersDefinition: Tool;
|
|
18
|
+
export declare const listUsers: (input: ListUsersArgs) => Effect.Effect<{
|
|
19
|
+
users: unknown[];
|
|
20
|
+
nextPageToken: string | null;
|
|
21
|
+
}, AuthListUsersError, FirebaseService>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=list_users.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list_users.d.ts","sourceRoot":"","sources":["../../../src/tools/auth/list_users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;;;;AAGjD,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,eAAO,MAAM,UAAU,EAAG,YAAqB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,EAAE,IAmBjC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,aAAa;;;uCAsB1C,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.listUsers = exports.listUsersDefinition = exports.LIST_USERS = exports.AuthListUsersError = void 0;
|
|
4
|
+
const effect_1 = require("effect");
|
|
5
|
+
const firebase_1 = require("../../firebase");
|
|
6
|
+
const normalize_1 = require("../normalize");
|
|
7
|
+
class AuthListUsersError extends effect_1.Data.TaggedError('AuthListUsersError') {
|
|
8
|
+
}
|
|
9
|
+
exports.AuthListUsersError = AuthListUsersError;
|
|
10
|
+
exports.LIST_USERS = 'list_users';
|
|
11
|
+
exports.listUsersDefinition = {
|
|
12
|
+
name: exports.LIST_USERS,
|
|
13
|
+
description: 'List Firebase Auth users with optional pagination. Returns up to maxResults users and a nextPageToken if more exist.',
|
|
14
|
+
inputSchema: {
|
|
15
|
+
type: 'object',
|
|
16
|
+
properties: {
|
|
17
|
+
maxResults: {
|
|
18
|
+
type: 'number',
|
|
19
|
+
description: 'Maximum number of users to return (1-1000). Defaults to 100.',
|
|
20
|
+
},
|
|
21
|
+
pageToken: {
|
|
22
|
+
type: 'string',
|
|
23
|
+
description: 'Page token from a previous list_users response to fetch the next page.',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
const listUsers = (input) => effect_1.Effect.gen(function* () {
|
|
29
|
+
const { auth } = yield* firebase_1.FirebaseService;
|
|
30
|
+
const result = yield* effect_1.Effect.tryPromise({
|
|
31
|
+
try: () => auth().listUsers(input.maxResults ?? 100, input.pageToken),
|
|
32
|
+
catch: (cause) => new AuthListUsersError({
|
|
33
|
+
message: 'Failed to list users',
|
|
34
|
+
cause,
|
|
35
|
+
}),
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
users: result.users.map((u) => (0, normalize_1.normalizeValue)({
|
|
39
|
+
...u.toJSON(),
|
|
40
|
+
providerData: u.providerData.map((p) => ({ ...p.toJSON() })),
|
|
41
|
+
})),
|
|
42
|
+
nextPageToken: result.pageToken ?? null,
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
exports.listUsers = listUsers;
|
|
46
|
+
//# sourceMappingURL=list_users.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list_users.js","sourceRoot":"","sources":["../../../src/tools/auth/list_users.ts"],"names":[],"mappings":";;;AACA,mCAAsC;AACtC,6CAAiD;AACjD,4CAA8C;AAE9C,MAAa,kBAAmB,SAAQ,aAAI,CAAC,WAAW,CAAC,oBAAoB,CAG3E;CAAG;AAHL,gDAGK;AAEQ,QAAA,UAAU,GAAG,YAAqB,CAAC;AAOnC,QAAA,mBAAmB,GAAS;IACvC,IAAI,EAAE,kBAAU;IAChB,WAAW,EACT,sHAAsH;IACxH,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,8DAA8D;aACjE;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,wEAAwE;aAC3E;SACF;KACF;CACF,CAAC;AAEK,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAE,EAAE,CAChD,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC,0BAAe,CAAC;IAExC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC;QACtC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,IAAI,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC;QACrE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,kBAAkB,CAAC;YACrB,OAAO,EAAE,sBAAsB;YAC/B,KAAK;SACN,CAAC;KACL,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5B,IAAA,0BAAc,EAAC;YACb,GAAG,CAAC,CAAC,MAAM,EAAE;YACb,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;SAC7D,CAAC,CACH;QACD,aAAa,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;KACxC,CAAC;AACJ,CAAC,CAAC,CAAC;AAtBQ,QAAA,SAAS,aAsBjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"count_documents.d.ts","sourceRoot":"","sources":["../../../src/tools/firestore/count_documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"count_documents.d.ts","sourceRoot":"","sources":["../../../src/tools/firestore/count_documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAsB,WAAW,EAAE,MAAM,SAAS,CAAC;;;;AAE1D,qBAAa,mBAAoB,SAAQ,yBAEvC;IACA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,eAAO,MAAM,eAAe,EAAG,iBAA0B,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,wBAAwB,EAAE,IAmBtC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,kBAAkB;;;mGA8BpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"count_documents.js","sourceRoot":"","sources":["../../../src/tools/firestore/count_documents.ts"],"names":[],"mappings":";;;AACA,mCAAsC;
|
|
1
|
+
{"version":3,"file":"count_documents.js","sourceRoot":"","sources":["../../../src/tools/firestore/count_documents.ts"],"names":[],"mappings":";;;AACA,mCAAsC;AAEtC,yCAA6C;AAC7C,6CAAiD;AACjD,mCAA0D;AAE1D,MAAa,mBAAoB,SAAQ,aAAI,CAAC,WAAW,CACvD,qBAAqB,CAIrB;CAAG;AALL,kDAKK;AAEQ,QAAA,eAAe,GAAG,iBAA0B,CAAC;AAO7C,QAAA,wBAAwB,GAAS;IAC5C,IAAI,EAAE,uBAAe;IACrB,WAAW,EACT,6HAA6H;IAC/H,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,oDAAoD;aAClE;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,mDAAmD;gBAChE,KAAK,EAAE,0BAAkB;aAC1B;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;KACzB;CACF,CAAC;AAEK,MAAM,cAAc,GAAG,CAAC,KAAyB,EAAE,EAAE,CAC1D,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,sBAAa,CAAC;IACpC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEtC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,0BAAe,CAAC;IAE7C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC;QACrC,GAAG,EAAE,GAAG,EAAE;YACR,IAAI,KAAK,GAA4B,SAAS,EAAE,CAAC,UAAU,CACzD,KAAK,CAAC,UAAU,CACjB,CAAC;YAEF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACzC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnE,CAAC;YAED,OAAO,KAAK;iBACT,KAAK,EAAE;iBACP,GAAG,EAAE;iBACL,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,mBAAmB,CAAC;YACtB,OAAO,EAAE,iCAAiC,KAAK,CAAC,UAAU,EAAE;YAC5D,KAAK;SACN,CAAC;KACL,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC;AACjD,CAAC,CAAC,CAAC;AA9BQ,QAAA,cAAc,kBA8BtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_document.d.ts","sourceRoot":"","sources":["../../../src/tools/firestore/get_document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"get_document.d.ts","sourceRoot":"","sources":["../../../src/tools/firestore/get_document.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;;;;AAGjD,qBAAa,iBAAkB,SAAQ,uBAAsC;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;;;;AAEL,qBAAa,qBAAsB,SAAQ,2BAEzC;IACA,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;CAAG;AAEL,eAAO,MAAM,YAAY,EAAG,cAAuB,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,eAAO,MAAM,qBAAqB,EAAE,IAmBnC,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,eAAe;;;;yHAqC9C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_document.js","sourceRoot":"","sources":["../../../src/tools/firestore/get_document.ts"],"names":[],"mappings":";;;AACA,mCAAsC;
|
|
1
|
+
{"version":3,"file":"get_document.js","sourceRoot":"","sources":["../../../src/tools/firestore/get_document.ts"],"names":[],"mappings":";;;AACA,mCAAsC;AAEtC,yCAA6C;AAC7C,6CAAiD;AACjD,mCAA4C;AAE5C,MAAa,iBAAkB,SAAQ,aAAI,CAAC,WAAW,CAAC,mBAAmB,CAGzE;CAAG;AAHL,8CAGK;AAEL,MAAa,qBAAsB,SAAQ,aAAI,CAAC,WAAW,CACzD,uBAAuB,CAGvB;CAAG;AAJL,sDAIK;AAEQ,QAAA,YAAY,GAAG,cAAuB,CAAC;AAOvC,QAAA,qBAAqB,GAAS;IACzC,IAAI,EAAE,oBAAY;IAClB,WAAW,EAAE,yCAAyC;IACtD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,uCAAuC;aACrD;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EACT,oEAAoE;aACvE;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;CACF,CAAC;AAEK,MAAM,WAAW,GAAG,CAAC,KAAsB,EAAE,EAAE,CACpD,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,sBAAa,CAAC;IACpC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEhC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,0BAAe,CAAC;IAE7C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC;QAC/B,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACtC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,iBAAiB,CAAC;YACpB,OAAO,EAAE,0BAA0B,KAAK,CAAC,IAAI,EAAE;YAC/C,KAAK;SACN,CAAC;KACL,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC;QACpC,GAAG,EAAE,GAAG,EAAE,CACR,KAAK,CAAC,MAAM,EAAE,MAAM;YAClB,CAAC,CAAC,SAAS,EAAE;iBACR,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;iBAC3C,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;QAClB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,iBAAiB,CAAC;YACpB,OAAO,EAAE,2BAA2B,KAAK,CAAC,IAAI,EAAE;YAChD,KAAK;SACN,CAAC;KACL,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CACvB,IAAI,qBAAqB,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAChD,CAAC;IACJ,CAAC;IAED,OAAO,IAAA,yBAAiB,EAAC,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AArCQ,QAAA,WAAW,eAqCnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list_documents.d.ts","sourceRoot":"","sources":["../../../src/tools/firestore/list_documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"list_documents.d.ts","sourceRoot":"","sources":["../../../src/tools/firestore/list_documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;;;;AAEjD,qBAAa,2BAA4B,SAAQ,iCAE/C;IACA,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,eAAO,MAAM,cAAc,EAAG,gBAAyB,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,uBAAuB,EAAE,IAoBrC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,OAAO,iBAAiB;;;6GAuClD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list_documents.js","sourceRoot":"","sources":["../../../src/tools/firestore/list_documents.ts"],"names":[],"mappings":";;;AACA,mCAAsC;
|
|
1
|
+
{"version":3,"file":"list_documents.js","sourceRoot":"","sources":["../../../src/tools/firestore/list_documents.ts"],"names":[],"mappings":";;;AACA,mCAAsC;AAEtC,yCAA6C;AAC7C,6CAAiD;AAEjD,MAAa,2BAA4B,SAAQ,aAAI,CAAC,WAAW,CAC/D,6BAA6B,CAI7B;CAAG;AALL,kEAKK;AAEQ,QAAA,cAAc,GAAG,gBAAyB,CAAC;AAO3C,QAAA,uBAAuB,GAAS;IAC3C,IAAI,EAAE,sBAAc;IACpB,WAAW,EACT,0OAA0O;IAC5O,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,8DAA8D;aACjE;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,4KAA4K;aAC/K;SACF;QACD,QAAQ,EAAE,CAAC,YAAY,CAAC;KACzB;CACF,CAAC;AAEK,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAE,EAAE,CACxD,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,sBAAa,CAAC;IACpC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEtC,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,0BAAe,CAAC;IAE7C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC;QACpC,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE;QACnE,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,2BAA2B,CAAC;YAC9B,OAAO,EAAE,gCAAgC,KAAK,CAAC,UAAU,EAAE;YAC3D,KAAK;SACN,CAAC;KACL,CAAC,CAAC;IAEH,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC;YACvC,GAAG,EAAE,GAAG,EAAE,CACR,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrB,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,eAAe,EAAE,CAAC;gBAChD,OAAO;oBACL,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1C,CAAC;YACJ,CAAC,CAAC,CACH;YACH,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,2BAA2B,CAAC;gBAC9B,OAAO,EAAE,qCAAqC,KAAK,CAAC,UAAU,EAAE;gBAChE,KAAK;aACN,CAAC;SACL,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAvCQ,QAAA,aAAa,iBAuCrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read_collections.d.ts","sourceRoot":"","sources":["../../../src/tools/firestore/read_collections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"read_collections.d.ts","sourceRoot":"","sources":["../../../src/tools/firestore/read_collections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;;;;AAGjD,qBAAa,kBAAmB,SAAQ,wBAAuC;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;CAAG;AAEL,eAAO,MAAM,eAAe,EAAG,iBAA0B,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,wBAAwB,EAAE,IAiCtC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,kBAAkB;;;;;;;;;;;;;;;;;;;kHAqEpD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read_collections.js","sourceRoot":"","sources":["../../../src/tools/firestore/read_collections.ts"],"names":[],"mappings":";;;AACA,mCAAsC;
|
|
1
|
+
{"version":3,"file":"read_collections.js","sourceRoot":"","sources":["../../../src/tools/firestore/read_collections.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,7 +43,6 @@ export interface QueryOrderBy {
|
|
|
43
43
|
field: string;
|
|
44
44
|
direction?: OrderByDirection;
|
|
45
45
|
}
|
|
46
|
-
export declare const normalizeValue: (value: unknown) => unknown;
|
|
47
46
|
export declare const normalizeDocument: (doc: admin.firestore.QueryDocumentSnapshot | admin.firestore.DocumentSnapshot) => {
|
|
48
47
|
id: string;
|
|
49
48
|
path: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/firestore/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,aAAa,EACd,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/tools/firestore/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,aAAa,EACd,MAAM,0BAA0B,CAAC;AAIlC,eAAO,MAAM,eAAe,EAAE,aAAa,EAW1C,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;CAerB,CAAC;AAEX,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;CAWvB,CAAC;AAEX,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,eAAO,MAAM,iBAAiB,GAC5B,KAAK,KAAK,CAAC,SAAS,CAAC,qBAAqB,GAAG,KAAK,CAAC,SAAS,CAAC,gBAAgB;;;;CAK7E,CAAC"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.normalizeDocument = exports.
|
|
7
|
-
const
|
|
3
|
+
exports.normalizeDocument = exports.ORDER_BY_SCHEMA_ITEM = exports.FILTER_SCHEMA_ITEM = exports.VALID_OPERATORS = void 0;
|
|
4
|
+
const normalize_1 = require("../normalize");
|
|
8
5
|
exports.VALID_OPERATORS = [
|
|
9
6
|
'<',
|
|
10
7
|
'<=',
|
|
@@ -44,32 +41,10 @@ exports.ORDER_BY_SCHEMA_ITEM = {
|
|
|
44
41
|
},
|
|
45
42
|
required: ['field'],
|
|
46
43
|
};
|
|
47
|
-
const normalizeValue = (value) => {
|
|
48
|
-
if (value === null || value === undefined)
|
|
49
|
-
return value;
|
|
50
|
-
if (value instanceof firebase_admin_1.default.firestore.Timestamp) {
|
|
51
|
-
return value.toDate().toISOString();
|
|
52
|
-
}
|
|
53
|
-
if (value instanceof firebase_admin_1.default.firestore.GeoPoint) {
|
|
54
|
-
return { latitude: value.latitude, longitude: value.longitude };
|
|
55
|
-
}
|
|
56
|
-
if (value instanceof firebase_admin_1.default.firestore.DocumentReference)
|
|
57
|
-
return value.path;
|
|
58
|
-
if (Array.isArray(value))
|
|
59
|
-
return value.map(exports.normalizeValue);
|
|
60
|
-
if (typeof value === 'object') {
|
|
61
|
-
return Object.fromEntries(Object.entries(value).map(([k, v]) => [
|
|
62
|
-
k,
|
|
63
|
-
(0, exports.normalizeValue)(v),
|
|
64
|
-
]));
|
|
65
|
-
}
|
|
66
|
-
return value;
|
|
67
|
-
};
|
|
68
|
-
exports.normalizeValue = normalizeValue;
|
|
69
44
|
const normalizeDocument = (doc) => ({
|
|
70
45
|
id: doc.id,
|
|
71
46
|
path: doc.ref.path,
|
|
72
|
-
data: (0,
|
|
47
|
+
data: (0, normalize_1.normalizeValue)(doc.data()),
|
|
73
48
|
});
|
|
74
49
|
exports.normalizeDocument = normalizeDocument;
|
|
75
50
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/firestore/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/firestore/types.ts"],"names":[],"mappings":";;;AAOA,4CAA8C;AAEjC,QAAA,eAAe,GAAoB;IAC9C,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,GAAG;IACH,gBAAgB;IAChB,oBAAoB;IACpB,IAAI;IACJ,QAAQ;CACT,CAAC;AAEW,QAAA,kBAAkB,GAAG;IAChC,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yBAAyB,EAAE;QACjE,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,uBAAe;YACrB,WAAW,EAAE,qBAAqB;SACnC;QACD,KAAK,EAAE;YACL,WAAW,EACT,qGAAqG;SACxG;KACF;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;CAChC,CAAC;AAEE,QAAA,oBAAoB,GAAG;IAClC,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,EAAE;QAC3D,SAAS,EAAE;YACT,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;YACrB,WAAW,EAAE,iCAAiC;SAC/C;KACF;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;CACX,CAAC;AAaJ,MAAM,iBAAiB,GAAG,CAC/B,GAA6E,EAC7E,EAAE,CAAC,CAAC;IACJ,EAAE,EAAE,GAAG,CAAC,EAAE;IACV,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI;IAClB,IAAI,EAAE,IAAA,0BAAc,EAAC,GAAG,CAAC,IAAI,EAAE,CAAC;CACjC,CAAC,CAAC;AANU,QAAA,iBAAiB,qBAM3B"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
2
|
import { Effect } from 'effect';
|
|
3
|
+
import * as AuthTool from './auth';
|
|
3
4
|
import * as FirestoreTool from './firestore';
|
|
4
|
-
type ToolNames = typeof FirestoreTool.AGGREGATE_COLLECTION | typeof FirestoreTool.COUNT_DOCUMENTS | typeof FirestoreTool.GET_COLLECTION_SCHEMA | typeof FirestoreTool.GET_MANY_DOCUMENTS | typeof FirestoreTool.LIST_INDEXES | typeof FirestoreTool.READ_COLLECTION | typeof FirestoreTool.GET_DOCUMENT | typeof FirestoreTool.LIST_COLLECTIONS | typeof FirestoreTool.LIST_DOCUMENTS | typeof FirestoreTool.QUERY_COLLECTION | typeof FirestoreTool.QUERY_COLLECTION_GROUP;
|
|
5
|
+
type ToolNames = typeof FirestoreTool.AGGREGATE_COLLECTION | typeof FirestoreTool.COUNT_DOCUMENTS | typeof FirestoreTool.GET_COLLECTION_SCHEMA | typeof FirestoreTool.GET_MANY_DOCUMENTS | typeof FirestoreTool.LIST_INDEXES | typeof FirestoreTool.READ_COLLECTION | typeof FirestoreTool.GET_DOCUMENT | typeof FirestoreTool.LIST_COLLECTIONS | typeof FirestoreTool.LIST_DOCUMENTS | typeof FirestoreTool.QUERY_COLLECTION | typeof FirestoreTool.QUERY_COLLECTION_GROUP | typeof AuthTool.GET_USER | typeof AuthTool.LIST_USERS;
|
|
5
6
|
export declare const allToolDefinitions: Tool[];
|
|
6
7
|
export declare const dispatchTool: (name: ToolNames | (string & {}), args: Record<string, unknown>) => Effect.Effect<{
|
|
7
8
|
[x: string]: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,aAAa,MAAM,aAAa,CAAC;AAE7C,KAAK,SAAS,GACV,OAAO,aAAa,CAAC,oBAAoB,GACzC,OAAO,aAAa,CAAC,eAAe,GACpC,OAAO,aAAa,CAAC,qBAAqB,GAC1C,OAAO,aAAa,CAAC,kBAAkB,GACvC,OAAO,aAAa,CAAC,YAAY,GACjC,OAAO,aAAa,CAAC,eAAe,GACpC,OAAO,aAAa,CAAC,YAAY,GACjC,OAAO,aAAa,CAAC,gBAAgB,GACrC,OAAO,aAAa,CAAC,cAAc,GACnC,OAAO,aAAa,CAAC,gBAAgB,GACrC,OAAO,aAAa,CAAC,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,QAAQ,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,aAAa,MAAM,aAAa,CAAC;AAE7C,KAAK,SAAS,GACV,OAAO,aAAa,CAAC,oBAAoB,GACzC,OAAO,aAAa,CAAC,eAAe,GACpC,OAAO,aAAa,CAAC,qBAAqB,GAC1C,OAAO,aAAa,CAAC,kBAAkB,GACvC,OAAO,aAAa,CAAC,YAAY,GACjC,OAAO,aAAa,CAAC,eAAe,GACpC,OAAO,aAAa,CAAC,YAAY,GACjC,OAAO,aAAa,CAAC,gBAAgB,GACrC,OAAO,aAAa,CAAC,cAAc,GACnC,OAAO,aAAa,CAAC,gBAAgB,GACrC,OAAO,aAAa,CAAC,sBAAsB,GAC3C,OAAO,QAAQ,CAAC,QAAQ,GACxB,OAAO,QAAQ,CAAC,UAAU,CAAC;AAE/B,eAAO,MAAM,kBAAkB,EAAE,IAAI,EAcpC,CAAC;AAuBF,eAAO,MAAM,YAAY,GACvB,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,EAC/B,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wHAgH5B,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.dispatchTool = exports.allToolDefinitions = void 0;
|
|
37
37
|
const effect_1 = require("effect");
|
|
38
|
+
const AuthTool = __importStar(require("./auth"));
|
|
38
39
|
const FirestoreTool = __importStar(require("./firestore"));
|
|
39
40
|
exports.allToolDefinitions = [
|
|
40
41
|
FirestoreTool.aggregateCollectionDefinition,
|
|
@@ -48,6 +49,8 @@ exports.allToolDefinitions = [
|
|
|
48
49
|
FirestoreTool.getManyDocumentsDefinition,
|
|
49
50
|
FirestoreTool.queryCollectionDefinition,
|
|
50
51
|
FirestoreTool.queryCollectionGroupDefinition,
|
|
52
|
+
AuthTool.getUserDefinition,
|
|
53
|
+
AuthTool.listUsersDefinition,
|
|
51
54
|
];
|
|
52
55
|
const toErrorResult = (code, message, details) => ({
|
|
53
56
|
content: [
|
|
@@ -88,6 +91,10 @@ const dispatchTool = (name, args) => effect_1.Effect.gen(function* () {
|
|
|
88
91
|
return yield* FirestoreTool.getDocument(args);
|
|
89
92
|
case FirestoreTool.QUERY_COLLECTION:
|
|
90
93
|
return yield* FirestoreTool.queryCollection(args);
|
|
94
|
+
case AuthTool.GET_USER:
|
|
95
|
+
return yield* AuthTool.getUser(args);
|
|
96
|
+
case AuthTool.LIST_USERS:
|
|
97
|
+
return yield* AuthTool.listUsers(args);
|
|
91
98
|
default:
|
|
92
99
|
return yield* effect_1.Effect.fail({ _tag: 'UnknownTool', name });
|
|
93
100
|
}
|
|
@@ -113,6 +120,13 @@ const dispatchTool = (name, args) => effect_1.Effect.gen(function* () {
|
|
|
113
120
|
return effect_1.Effect.succeed(toErrorResult('FIRESTORE_ERROR', err.message, {
|
|
114
121
|
cause: String(err.cause),
|
|
115
122
|
}));
|
|
123
|
+
case 'AuthGetUserError':
|
|
124
|
+
case 'AuthListUsersError':
|
|
125
|
+
return effect_1.Effect.succeed(toErrorResult('AUTH_ERROR', err.message, {
|
|
126
|
+
cause: String(err.cause),
|
|
127
|
+
}));
|
|
128
|
+
case 'AuthUserNotFoundError':
|
|
129
|
+
return effect_1.Effect.succeed(toErrorResult('NOT_FOUND', `User not found: ${err.identifier}`, { identifier: err.identifier }));
|
|
116
130
|
case 'UnknownTool':
|
|
117
131
|
return effect_1.Effect.succeed(toErrorResult('UNKNOWN_TOOL', `Unknown tool: ${err.name}`));
|
|
118
132
|
}
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mCAAgC;AAEhC,2DAA6C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/tools/normalize.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,OA6B/C,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.normalizeValue = void 0;
|
|
7
|
+
const firebase_admin_1 = __importDefault(require("firebase-admin"));
|
|
8
|
+
const normalizeValue = (value) => {
|
|
9
|
+
if (value === null || value === undefined)
|
|
10
|
+
return value;
|
|
11
|
+
if (value instanceof firebase_admin_1.default.firestore.Timestamp) {
|
|
12
|
+
return value.toDate().toISOString();
|
|
13
|
+
}
|
|
14
|
+
if (value instanceof firebase_admin_1.default.firestore.GeoPoint) {
|
|
15
|
+
return { latitude: value.latitude, longitude: value.longitude };
|
|
16
|
+
}
|
|
17
|
+
if (value instanceof firebase_admin_1.default.firestore.DocumentReference)
|
|
18
|
+
return value.path;
|
|
19
|
+
if (Array.isArray(value))
|
|
20
|
+
return value.map(exports.normalizeValue);
|
|
21
|
+
if (typeof value === 'object') {
|
|
22
|
+
const obj = value;
|
|
23
|
+
if (typeof obj['_seconds'] === 'number' &&
|
|
24
|
+
typeof obj['_nanoseconds'] === 'number' &&
|
|
25
|
+
Object.keys(obj).length === 2) {
|
|
26
|
+
return new Date(obj['_seconds'] * 1000 + obj['_nanoseconds'] / 1e6).toISOString();
|
|
27
|
+
}
|
|
28
|
+
return Object.fromEntries(Object.entries(obj).map(([k, v]) => [
|
|
29
|
+
k,
|
|
30
|
+
(0, exports.normalizeValue)(v),
|
|
31
|
+
]));
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
};
|
|
35
|
+
exports.normalizeValue = normalizeValue;
|
|
36
|
+
//# sourceMappingURL=normalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/tools/normalize.ts"],"names":[],"mappings":";;;;;;AAAA,oEAAmC;AAE5B,MAAM,cAAc,GAAG,CAAC,KAAc,EAAW,EAAE;IACxD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACxD,IAAI,KAAK,YAAY,wBAAK,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,YAAY,wBAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC9C,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;IAClE,CAAC;IACD,IAAI,KAAK,YAAY,wBAAK,CAAC,SAAS,CAAC,iBAAiB;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,sBAAc,CAAC,CAAC;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,IACE,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ;YACnC,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ;YACvC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAC7B,CAAC;YACD,OAAO,IAAI,IAAI,CACb,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,GAAG,CACnD,CAAC,WAAW,EAAE,CAAC;QAClB,CAAC;QACD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAqB,EAAE,CAAC;YACrD,CAAC;YACD,IAAA,sBAAc,EAAC,CAAC,CAAC;SAClB,CAAC,CACH,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AA7BW,QAAA,cAAc,kBA6BzB"}
|