@dereekb/firebase-server 14.5.1 → 14.7.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/mcp/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/mcp",
3
- "version": "14.5.1",
3
+ "version": "14.7.0",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "peerDependencies": {
7
- "@dereekb/analytics": "14.5.1",
8
- "@dereekb/date": "14.5.1",
9
- "@dereekb/firebase": "14.5.1",
10
- "@dereekb/firebase-server": "14.5.1",
11
- "@dereekb/firebase-server/oidc": "14.5.1",
12
- "@dereekb/model": "14.5.1",
13
- "@dereekb/nestjs": "14.5.1",
14
- "@dereekb/oauth-resource": "14.5.1",
15
- "@dereekb/rxjs": "14.5.1",
16
- "@dereekb/util": "14.5.1",
17
- "@dereekb/zoho": "14.5.1",
7
+ "@dereekb/analytics": "14.7.0",
8
+ "@dereekb/date": "14.7.0",
9
+ "@dereekb/firebase": "14.7.0",
10
+ "@dereekb/firebase-server": "14.7.0",
11
+ "@dereekb/firebase-server/oidc": "14.7.0",
12
+ "@dereekb/model": "14.7.0",
13
+ "@dereekb/nestjs": "14.7.0",
14
+ "@dereekb/oauth-resource": "14.7.0",
15
+ "@dereekb/rxjs": "14.7.0",
16
+ "@dereekb/util": "14.7.0",
17
+ "@dereekb/zoho": "14.7.0",
18
18
  "@modelcontextprotocol/node": "2.0.0",
19
19
  "@modelcontextprotocol/server": "2.0.0",
20
20
  "@nestjs/common": "^12.0.1",
@@ -313,6 +313,18 @@ export interface McpCliTokenMintResult {
313
313
  * SHA-256 of the artifact behind {@link downloadUrl}, so the caller can verify what it fetched.
314
314
  */
315
315
  readonly downloadSha256?: string;
316
+ /**
317
+ * Name of the CLI env the credential should be redeemed into, from `CliTokenApiModuleConfig.envName`.
318
+ *
319
+ * Load-bearing for the rendered `handoffCommand`, not decorative. `dbx-cli auth handoff` resolves
320
+ * the issuer to POST the claim to from the ACTIVE env — so on a machine with no active env the
321
+ * bare command fails `AUTH_HANDOFF_NO_ISSUER`, and on one active against a different env it aims
322
+ * the claim at the wrong issuer. A built-in env NAME is only a default template until something
323
+ * instantiates it, so it cannot be relied on to already exist. The deployment is the only party
324
+ * that knows which env it is; passing it through is what lets the tool render a command the target
325
+ * machine can run unmodified.
326
+ */
327
+ readonly envName?: string;
316
328
  }
317
329
  /**
318
330
  * Signature for the optional app-supplied CLI credential minter behind the `cli-token` MCP tool.
@@ -103,7 +103,56 @@ export interface McpManifestModelEntry {
103
103
  readonly exportName: string;
104
104
  readonly sourceFile: string;
105
105
  };
106
+ /**
107
+ * Declared `@dbxModelCompositeKey from=<ModelA>[,<ModelB>...] encoding=<two-way|one-way>` on the
108
+ * model interface — this model's document id is a flattened encoding of a source model's key
109
+ * (structural mirror of `@dereekb/dbx-cli`'s `CliModelCompositeKey`). Absent when the model omits
110
+ * the tag.
111
+ *
112
+ * Drives `model-decode`'s `derivedKeys` / `compositeSource` output and lets `model-get` accept a
113
+ * source model key in place of the flattened id.
114
+ */
115
+ readonly compositeKey?: McpManifestModelCompositeKey;
106
116
  }
117
+ /**
118
+ * Flat-key encoding declared by a `@dbxModelCompositeKey` tag.
119
+ *
120
+ * - `one-way` — `flatFirestoreModelKey()`: slashes removed; the source key cannot be recovered.
121
+ * - `two-way` — `twoWayFlatFirestoreModelKey()`: slashes replaced with underscores; the source key
122
+ * is recoverable with `inferKeyFromTwoWayFlatFirestoreModelKey()`.
123
+ */
124
+ export type McpManifestModelCompositeKeyEncoding = 'one-way' | 'two-way';
125
+ /**
126
+ * Composite-key declaration carried on a {@link McpManifestModelEntry}.
127
+ */
128
+ export interface McpManifestModelCompositeKey {
129
+ /**
130
+ * `'*'` when any model's key may be the source, or the source model names as written in the tag
131
+ * — each an interface name, identity const, or modelType, resolved against the manifest.
132
+ */
133
+ readonly from: readonly string[] | '*';
134
+ readonly encoding: McpManifestModelCompositeKeyEncoding;
135
+ }
136
+ /**
137
+ * Resolves the manifest entries whose `compositeKey.from` names `source` — the models whose document
138
+ * id is derived from a `source` document's key. A wildcard `from=*` matches every model except
139
+ * `source` itself (a model's id is never derived from its own key).
140
+ *
141
+ * @param source - The manifest entry of the decoded key's leaf model.
142
+ * @param manifest - The full model manifest.
143
+ * @returns The composite-key entries derived from `source`, in manifest order.
144
+ */
145
+ export declare function findCompositeKeyModelsDerivedFrom(source: McpManifestModelEntry, manifest: readonly McpManifestModelEntry[]): McpManifestModelEntry[];
146
+ /**
147
+ * Whether `candidate` is a composite-key model whose document id is derived from a `source`
148
+ * document's key — `candidate.compositeKey.from` names `source` (by interface name, identity const,
149
+ * or modelType) or is the wildcard `*`. A model is never derived from its own key.
150
+ *
151
+ * @param source - The manifest entry of the source model.
152
+ * @param candidate - The manifest entry to test.
153
+ * @returns `true` when `candidate`'s id is a flattened `source` key.
154
+ */
155
+ export declare function isCompositeKeyModelDerivedFrom(source: McpManifestModelEntry, candidate: McpManifestModelEntry): boolean;
107
156
  /**
108
157
  * One enum value with its persisted literal and the leading JSDoc paragraph.
109
158
  *
@@ -36,6 +36,10 @@ export interface CliTokenToolOutput {
36
36
  readonly cliName?: string;
37
37
  readonly downloadUrl?: string;
38
38
  readonly downloadSha256?: string;
39
+ /**
40
+ * Name of the CLI env the credential is redeemed into, when the app configured one.
41
+ */
42
+ readonly envName?: string;
39
43
  /**
40
44
  * The exact command to run once the CLI is on the machine.
41
45
  */
@@ -1,4 +1,4 @@
1
- import { type McpManifestModelEntry } from '../mcp.manifest';
1
+ import { type McpManifestModelCompositeKeyEncoding, type McpManifestModelEntry } from '../mcp.manifest';
2
2
  import { type McpToolDefinition } from '../mcp.tool-generator';
3
3
  /**
4
4
  * Reserved tool name for the built-in `model-decode` static tool.
@@ -46,14 +46,46 @@ export interface DecodedKeySegment {
46
46
  readonly sourceFile?: string;
47
47
  }
48
48
  /**
49
- * Output payload for the `model-decode` tool.
49
+ * Segments of a decoded Firestore key — the leaf, its ancestor chain, and any prefixes the manifest
50
+ * could not resolve.
50
51
  */
51
- export interface ModelDecodeToolOutput {
52
+ export interface DecodedKeySegments {
52
53
  readonly key: string;
53
54
  readonly leaf: DecodedKeySegment;
54
55
  readonly ancestors: ReadonlyArray<DecodedKeySegment>;
55
56
  readonly unresolvedPrefixes: ReadonlyArray<string>;
56
57
  }
58
+ /**
59
+ * A composite-key model whose document id is derived from the decoded key, with that document's
60
+ * ready-to-use key. Published so a caller never has to hand-build a flattened id (e.g. decoding a
61
+ * `District` key also yields the `jobDistrict` key `jd/<flattened district key>`).
62
+ */
63
+ export interface DerivedCompositeKey {
64
+ /**
65
+ * The derived document's full key (`<collectionPrefix>/<flattened source key>`).
66
+ */
67
+ readonly key: string;
68
+ readonly modelType: string;
69
+ readonly modelName: string;
70
+ readonly collectionPrefix: string;
71
+ readonly encoding: McpManifestModelCompositeKeyEncoding;
72
+ }
73
+ /**
74
+ * Output payload for the `model-decode` tool.
75
+ */
76
+ export interface ModelDecodeToolOutput extends DecodedKeySegments {
77
+ /**
78
+ * Composite-key models derived from this key (see {@link DerivedCompositeKey}). Empty when the leaf
79
+ * prefix is unresolved or no model declares this leaf as a composite-key source.
80
+ */
81
+ readonly derivedKeys: ReadonlyArray<DerivedCompositeKey>;
82
+ /**
83
+ * When the leaf is itself a `two-way` composite-key model, the source key recovered from its id
84
+ * (`inferKeyFromTwoWayFlatFirestoreModelKey`), decoded. Absent for `one-way` models (the source is
85
+ * not recoverable) and when the id does not parse as a flattened key.
86
+ */
87
+ readonly compositeSource?: DecodedKeySegments;
88
+ }
57
89
  /**
58
90
  * Builds the built-in `model-decode` MCP tool definition.
59
91
  *
@@ -72,16 +104,30 @@ export interface ModelDecodeToolOutput {
72
104
  export declare function createModelDecodeTool(deps: CreateModelDecodeToolDeps): McpToolDefinition;
73
105
  /**
74
106
  * Splits `rawKey` on `/`, resolves each `[prefix, id]` pair against the manifest, and
75
- * returns the leaf segment + ancestor chain.
107
+ * returns the leaf segment + ancestor chain, plus the composite-key relationships declared
108
+ * on the manifest: the keys of models derived from this key (`derivedKeys`) and, for a
109
+ * two-way composite-key leaf, the recovered source key (`compositeSource`).
76
110
  *
77
111
  * Mirrors the dbx-cli `decodeFirestoreModelKey` helper structurally; both implementations
78
- * must stay in lockstep on segment count and resolution order.
112
+ * must stay in lockstep on segment count, resolution order, and composite-key output.
79
113
  *
80
114
  * @param rawKey - The Firestore key string.
81
115
  * @param manifest - The model manifest.
82
- * @returns The decoded key with leaf, ancestors, and any unresolved prefixes.
116
+ * @returns The decoded key with leaf, ancestors, unresolved prefixes, and composite-key relationships.
83
117
  * @throws {Error} When `rawKey` is empty or does not parse into an even number of `prefix/id` segments.
84
118
  *
85
119
  * @__NO_SIDE_EFFECTS__
86
120
  */
87
121
  export declare function decodeFirestoreModelKey(rawKey: string, manifest: ReadonlyArray<McpManifestModelEntry>): ModelDecodeToolOutput;
122
+ /**
123
+ * Splits `rawKey` on `/` and resolves each `[prefix, id]` pair against the manifest — the segment
124
+ * walk shared by {@link decodeFirestoreModelKey} and the two-way composite-source decode.
125
+ *
126
+ * @param rawKey - The Firestore key string.
127
+ * @param manifest - The model manifest.
128
+ * @returns The decoded key with leaf, ancestors, and any unresolved prefixes.
129
+ * @throws {Error} When `rawKey` is empty or does not parse into an even number of `prefix/id` segments.
130
+ *
131
+ * @__NO_SIDE_EFFECTS__
132
+ */
133
+ export declare function decodeFirestoreModelKeySegments(rawKey: string, manifest: ReadonlyArray<McpManifestModelEntry>): DecodedKeySegments;
@@ -1,6 +1,7 @@
1
1
  import { type Maybe } from '@dereekb/util';
2
2
  import { type FirestoreModelIdentity, type FirestoreModelKey, type FirestoreModelType } from '@dereekb/firebase';
3
3
  import { type ModelAccessMultiReadResult, type FirebaseServerAuthData } from '@dereekb/firebase-server';
4
+ import { type McpManifestModelEntry } from '../mcp.manifest';
4
5
  import { type McpToolDefinition } from '../mcp.tool-generator';
5
6
  /**
6
7
  * Reserved tool name for the built-in `model-get` static tool.
@@ -51,6 +52,13 @@ export interface CreateModelGetToolDeps {
51
52
  * `prefix/id` keys.
52
53
  */
53
54
  readonly resolveIdentity: McpModelGetResolveIdentity;
55
+ /**
56
+ * Frozen model catalog. When present, a key whose leaf model is a declared composite-key source of
57
+ * the requested root model (`@dbxModelCompositeKey from=…`) is flattened into that model's id
58
+ * instead of being passed verbatim — e.g. `model-get jobDistrict` accepts a `District` key
59
+ * `rc/…/rcsrd/<id>` and reads `jd/<flattened district key>`. Omit to disable the rewrite.
60
+ */
61
+ readonly manifest?: readonly McpManifestModelEntry[];
54
62
  }
55
63
  /**
56
64
  * Shape of the `model-get` tool input.
@@ -66,6 +74,8 @@ export interface ModelGetToolInput {
66
74
  * - Accepts an array of keys; values containing `/` are treated as full keys and passed verbatim
67
75
  * while bare ids are promoted to `${collectionName}/${id}` for root models.
68
76
  * - Nested (subcollection) models reject bare ids since a parent path is required.
77
+ * - When a manifest is supplied, a root composite-key model also accepts its declared source
78
+ * model's key and flattens it into the document id (see {@link CreateModelGetToolDeps.manifest}).
69
79
  * - Auto-chunks at {@link MCP_MODEL_GET_BATCH_SIZE} keys per backend call, mirroring
70
80
  * `getMultipleModelsOverHttpChunked` on the CLI side.
71
81
  *
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/model",
3
- "version": "14.5.1",
3
+ "version": "14.7.0",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "peerDependencies": {
7
7
  "@cantoo/pdf-lib": ">=2.6.5 <2.11.0",
8
- "@dereekb/analytics": "14.5.1",
9
- "@dereekb/date": "14.5.1",
10
- "@dereekb/firebase": "14.5.1",
11
- "@dereekb/firebase-server": "14.5.1",
12
- "@dereekb/model": "14.5.1",
13
- "@dereekb/nestjs": "14.5.1",
14
- "@dereekb/rxjs": "14.5.1",
15
- "@dereekb/util": "14.5.1",
8
+ "@dereekb/analytics": "14.7.0",
9
+ "@dereekb/date": "14.7.0",
10
+ "@dereekb/firebase": "14.7.0",
11
+ "@dereekb/firebase-server": "14.7.0",
12
+ "@dereekb/model": "14.7.0",
13
+ "@dereekb/nestjs": "14.7.0",
14
+ "@dereekb/rxjs": "14.7.0",
15
+ "@dereekb/util": "14.7.0",
16
16
  "@nestjs/common": "^12.0.1",
17
17
  "@nestjs/config": "^12.0.0",
18
18
  "archiver": "^8.0.0",
package/oidc/index.esm.js CHANGED
@@ -6504,7 +6504,7 @@ var CLI_TOKEN_CLAIM_INVALID_MESSAGE = 'The claim code is invalid, expired, or ha
6504
6504
  * @throws {HttpsError} `401` with no uid, `403` when a gate rejects the caller, `400` when minting is disabled.
6505
6505
  */ function mintCliToken(auth, params, context) {
6506
6506
  return _async_to_generator$7(function() {
6507
- var _parentGrantId, _this_config, _this_config1, _this_config2, _this_config3, _this_config4, _this_config5, uid, isAllowed, _tmp, configuredScope, callerScopes, cliClientId, provider, client, scopeString, ttlSeconds, grantInit, grant, grantId, refreshToken, refreshTokenValue, nowMs, expiresAt, claimExpiresAt, claimCode;
6507
+ var _parentGrantId, _this_config, _this_config1, _this_config2, _this_config3, _this_config4, _this_config5, _this_config6, uid, isAllowed, _tmp, configuredScope, callerScopes, cliClientId, provider, client, scopeString, ttlSeconds, grantInit, grant, grantId, refreshToken, refreshTokenValue, nowMs, expiresAt, claimExpiresAt, claimCode;
6508
6508
  return _ts_generator$7(this, function(_state) {
6509
6509
  switch(_state.label){
6510
6510
  case 0:
@@ -6652,14 +6652,18 @@ var CLI_TOKEN_CLAIM_INVALID_MESSAGE = 'The claim code is invalid, expired, or ha
6652
6652
  case 9:
6653
6653
  _state.sent();
6654
6654
  this._logger.log("Minted CLI credential: minter=".concat(uid, " parentGrant=").concat((_parentGrantId = parentGrantId(auth)) !== null && _parentGrantId !== void 0 ? _parentGrantId : 'unknown', " childGrant=").concat(grantId, " client=").concat(cliClientId, ' scope="').concat(scopeString, '" expiresAt=').concat(expiresAt));
6655
+ // `envName` is returned as well as stored on the claim: the stored copy configures the env AFTER a
6656
+ // successful redeem, but the caller needs the name to BUILD the redeem command in the first place.
6655
6657
  return [
6656
6658
  2,
6657
- {
6659
+ _object_spread$4({
6658
6660
  claimCode: claimCode,
6659
6661
  claimExpiresAt: claimExpiresAt.toISOString(),
6660
6662
  expiresAt: expiresAt,
6661
6663
  scope: scopeString
6662
- }
6664
+ }, ((_this_config6 = this.config) === null || _this_config6 === void 0 ? void 0 : _this_config6.envName) ? {
6665
+ envName: this.config.envName
6666
+ } : undefined)
6663
6667
  ];
6664
6668
  }
6665
6669
  });
package/oidc/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/oidc",
3
- "version": "14.5.1",
3
+ "version": "14.7.0",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "peerDependencies": {
7
- "@dereekb/analytics": "14.5.1",
8
- "@dereekb/date": "14.5.1",
9
- "@dereekb/firebase": "14.5.1",
10
- "@dereekb/firebase-server": "14.5.1",
11
- "@dereekb/model": "14.5.1",
12
- "@dereekb/nestjs": "14.5.1",
13
- "@dereekb/oauth-resource": "14.5.1",
14
- "@dereekb/rxjs": "14.5.1",
15
- "@dereekb/util": "14.5.1",
16
- "@dereekb/zoho": "14.5.1",
7
+ "@dereekb/analytics": "14.7.0",
8
+ "@dereekb/date": "14.7.0",
9
+ "@dereekb/firebase": "14.7.0",
10
+ "@dereekb/firebase-server": "14.7.0",
11
+ "@dereekb/model": "14.7.0",
12
+ "@dereekb/nestjs": "14.7.0",
13
+ "@dereekb/oauth-resource": "14.7.0",
14
+ "@dereekb/rxjs": "14.7.0",
15
+ "@dereekb/util": "14.7.0",
16
+ "@dereekb/zoho": "14.7.0",
17
17
  "@nestjs/common": "^12.0.1",
18
18
  "@nestjs/config": "^12.0.0",
19
19
  "express": "^5.2.1",
@@ -220,6 +220,18 @@ export interface CliTokenMintResult {
220
220
  * The space-delimited scopes the minted credential carries.
221
221
  */
222
222
  readonly scope: string;
223
+ /**
224
+ * Name of the CLI env the credential should be redeemed into, echoed from
225
+ * {@link CliTokenApiModuleConfig.envName}.
226
+ *
227
+ * Returned at MINT time, not only stored in the claim payload, because the redeeming machine needs
228
+ * it BEFORE it can redeem — this is the "information the redeeming machine needs before it can
229
+ * redeem" the {@link CliTokenMintResult.claimCode} note anticipates, supplied alongside the code
230
+ * rather than encoded into it. `dbx-cli auth handoff` takes the issuer it POSTs the claim to from
231
+ * the ACTIVE env, so without a name to pass as `--env` a bare machine fails
232
+ * `AUTH_HANDOFF_NO_ISSUER` and a machine pointed elsewhere sends the claim to the wrong issuer.
233
+ */
234
+ readonly envName?: string;
223
235
  }
224
236
  /**
225
237
  * The credential bundle handed back by `POST /oidc/cli-token/claim`. Everything a bare machine needs
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server",
3
- "version": "14.5.1",
3
+ "version": "14.7.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -58,18 +58,18 @@
58
58
  },
59
59
  "peerDependencies": {
60
60
  "@cantoo/pdf-lib": ">=2.6.5 <2.11.0",
61
- "@dereekb/analytics": "14.5.1",
62
- "@dereekb/calcom": "14.5.1",
63
- "@dereekb/date": "14.5.1",
64
- "@dereekb/dbx-core": "14.5.1",
65
- "@dereekb/discord": "14.5.1",
66
- "@dereekb/firebase": "14.5.1",
67
- "@dereekb/model": "14.5.1",
68
- "@dereekb/nestjs": "14.5.1",
69
- "@dereekb/oauth-resource": "14.5.1",
70
- "@dereekb/rxjs": "14.5.1",
71
- "@dereekb/util": "14.5.1",
72
- "@dereekb/zoho": "14.5.1",
61
+ "@dereekb/analytics": "14.7.0",
62
+ "@dereekb/calcom": "14.7.0",
63
+ "@dereekb/date": "14.7.0",
64
+ "@dereekb/dbx-core": "14.7.0",
65
+ "@dereekb/discord": "14.7.0",
66
+ "@dereekb/firebase": "14.7.0",
67
+ "@dereekb/model": "14.7.0",
68
+ "@dereekb/nestjs": "14.7.0",
69
+ "@dereekb/oauth-resource": "14.7.0",
70
+ "@dereekb/rxjs": "14.7.0",
71
+ "@dereekb/util": "14.7.0",
72
+ "@dereekb/zoho": "14.7.0",
73
73
  "@google-cloud/firestore": "^7.11.6",
74
74
  "@google-cloud/storage": "^7.22.0",
75
75
  "@modelcontextprotocol/node": "2.0.0",
package/test/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/test",
3
- "version": "14.5.1",
3
+ "version": "14.7.0",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "peerDependencies": {
7
- "@dereekb/analytics": "14.5.1",
8
- "@dereekb/date": "14.5.1",
9
- "@dereekb/firebase": "14.5.1",
10
- "@dereekb/firebase-server": "14.5.1",
11
- "@dereekb/firebase-server/oidc": "14.5.1",
12
- "@dereekb/model": "14.5.1",
13
- "@dereekb/nestjs": "14.5.1",
14
- "@dereekb/oauth-resource": "14.5.1",
15
- "@dereekb/rxjs": "14.5.1",
16
- "@dereekb/util": "14.5.1",
7
+ "@dereekb/analytics": "14.7.0",
8
+ "@dereekb/date": "14.7.0",
9
+ "@dereekb/firebase": "14.7.0",
10
+ "@dereekb/firebase-server": "14.7.0",
11
+ "@dereekb/firebase-server/oidc": "14.7.0",
12
+ "@dereekb/model": "14.7.0",
13
+ "@dereekb/nestjs": "14.7.0",
14
+ "@dereekb/oauth-resource": "14.7.0",
15
+ "@dereekb/rxjs": "14.7.0",
16
+ "@dereekb/util": "14.7.0",
17
17
  "@google-cloud/firestore": "^7.11.6",
18
18
  "@google-cloud/storage": "^7.22.0",
19
19
  "@nestjs/common": "^12.0.1",
@@ -26,7 +26,7 @@
26
26
  "supertest": "^7.2.2"
27
27
  },
28
28
  "devDependencies": {
29
- "@dereekb/nestjs": "14.5.1"
29
+ "@dereekb/nestjs": "14.7.0"
30
30
  },
31
31
  "exports": {
32
32
  "./package.json": "./package.json",
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/twilio",
3
- "version": "14.5.1",
3
+ "version": "14.7.0",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "peerDependencies": {
7
- "@dereekb/date": "14.5.1",
8
- "@dereekb/firebase": "14.5.1",
9
- "@dereekb/firebase-server": "14.5.1",
10
- "@dereekb/model": "14.5.1",
11
- "@dereekb/nestjs": "14.5.1",
12
- "@dereekb/rxjs": "14.5.1",
13
- "@dereekb/util": "14.5.1"
7
+ "@dereekb/date": "14.7.0",
8
+ "@dereekb/firebase": "14.7.0",
9
+ "@dereekb/firebase-server": "14.7.0",
10
+ "@dereekb/model": "14.7.0",
11
+ "@dereekb/nestjs": "14.7.0",
12
+ "@dereekb/rxjs": "14.7.0",
13
+ "@dereekb/util": "14.7.0"
14
14
  },
15
15
  "exports": {
16
16
  "./package.json": "./package.json",
package/zoho/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/zoho",
3
- "version": "14.5.1",
3
+ "version": "14.7.0",
4
4
  "sideEffects": false,
5
5
  "type": "module",
6
6
  "peerDependencies": {
7
- "@dereekb/analytics": "14.5.1",
8
- "@dereekb/date": "14.5.1",
9
- "@dereekb/firebase": "14.5.1",
10
- "@dereekb/firebase-server": "14.5.1",
11
- "@dereekb/model": "14.5.1",
12
- "@dereekb/nestjs": "14.5.1",
13
- "@dereekb/rxjs": "14.5.1",
14
- "@dereekb/util": "14.5.1",
15
- "@dereekb/zoho": "14.5.1",
7
+ "@dereekb/analytics": "14.7.0",
8
+ "@dereekb/date": "14.7.0",
9
+ "@dereekb/firebase": "14.7.0",
10
+ "@dereekb/firebase-server": "14.7.0",
11
+ "@dereekb/model": "14.7.0",
12
+ "@dereekb/nestjs": "14.7.0",
13
+ "@dereekb/rxjs": "14.7.0",
14
+ "@dereekb/util": "14.7.0",
15
+ "@dereekb/zoho": "14.7.0",
16
16
  "@nestjs/common": "^12.0.1",
17
17
  "@nestjs/config": "^12.0.0",
18
18
  "express": "^5.2.1"