@dereekb/firebase-server 13.41.0 → 13.42.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.
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/calcom",
3
- "version": "13.41.0",
3
+ "version": "13.42.0",
4
4
  "type": "module",
5
5
  "peerDependencies": {
6
- "@dereekb/analytics": "13.41.0",
7
- "@dereekb/calcom": "13.41.0",
8
- "@dereekb/date": "13.41.0",
9
- "@dereekb/firebase": "13.41.0",
10
- "@dereekb/firebase-server": "13.41.0",
11
- "@dereekb/model": "13.41.0",
12
- "@dereekb/nestjs": "13.41.0",
13
- "@dereekb/rxjs": "13.41.0",
14
- "@dereekb/util": "13.41.0",
6
+ "@dereekb/analytics": "13.42.0",
7
+ "@dereekb/calcom": "13.42.0",
8
+ "@dereekb/date": "13.42.0",
9
+ "@dereekb/firebase": "13.42.0",
10
+ "@dereekb/firebase-server": "13.42.0",
11
+ "@dereekb/model": "13.42.0",
12
+ "@dereekb/nestjs": "13.42.0",
13
+ "@dereekb/rxjs": "13.42.0",
14
+ "@dereekb/util": "13.42.0",
15
15
  "@nestjs/common": "^11.1.19",
16
16
  "express": "^5.2.1"
17
17
  },
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/discord",
3
- "version": "13.41.0",
3
+ "version": "13.42.0",
4
4
  "type": "module",
5
5
  "peerDependencies": {
6
- "@dereekb/analytics": "13.41.0",
7
- "@dereekb/date": "13.41.0",
8
- "@dereekb/discord": "13.41.0",
9
- "@dereekb/firebase": "13.41.0",
10
- "@dereekb/firebase-server": "13.41.0",
11
- "@dereekb/model": "13.41.0",
12
- "@dereekb/nestjs": "13.41.0",
13
- "@dereekb/rxjs": "13.41.0",
14
- "@dereekb/util": "13.41.0",
6
+ "@dereekb/analytics": "13.42.0",
7
+ "@dereekb/date": "13.42.0",
8
+ "@dereekb/discord": "13.42.0",
9
+ "@dereekb/firebase": "13.42.0",
10
+ "@dereekb/firebase-server": "13.42.0",
11
+ "@dereekb/model": "13.42.0",
12
+ "@dereekb/nestjs": "13.42.0",
13
+ "@dereekb/rxjs": "13.42.0",
14
+ "@dereekb/util": "13.42.0",
15
15
  "@nestjs/common": "^11.1.19",
16
16
  "express": "^5.2.1"
17
17
  },
package/index.esm.js CHANGED
@@ -907,9 +907,6 @@ function _array_like_to_array$h(arr, len) {
907
907
  function _array_with_holes$5(arr) {
908
908
  if (Array.isArray(arr)) return arr;
909
909
  }
910
- function _array_without_holes$c(arr) {
911
- if (Array.isArray(arr)) return _array_like_to_array$h(arr);
912
- }
913
910
  function _assert_this_initialized$4(self) {
914
911
  if (self === void 0) {
915
912
  throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
@@ -999,9 +996,6 @@ function _inherits$4(subClass, superClass) {
999
996
  });
1000
997
  if (superClass) _set_prototype_of$4(subClass, superClass);
1001
998
  }
1002
- function _iterable_to_array$c(iter) {
1003
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
1004
- }
1005
999
  function _iterable_to_array_limit$5(arr, i) {
1006
1000
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
1007
1001
  if (_i == null) return;
@@ -1029,9 +1023,6 @@ function _iterable_to_array_limit$5(arr, i) {
1029
1023
  function _non_iterable_rest$5() {
1030
1024
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1031
1025
  }
1032
- function _non_iterable_spread$c() {
1033
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1034
- }
1035
1026
  function _object_spread$l(target) {
1036
1027
  for(var i = 1; i < arguments.length; i++){
1037
1028
  var source = arguments[i] != null ? arguments[i] : {};
@@ -1063,9 +1054,6 @@ function _set_prototype_of$4(o, p) {
1063
1054
  function _sliced_to_array$5(arr, i) {
1064
1055
  return _array_with_holes$5(arr) || _iterable_to_array_limit$5(arr, i) || _unsupported_iterable_to_array$h(arr, i) || _non_iterable_rest$5();
1065
1056
  }
1066
- function _to_consumable_array$c(arr) {
1067
- return _array_without_holes$c(arr) || _iterable_to_array$c(arr) || _unsupported_iterable_to_array$h(arr) || _non_iterable_spread$c();
1068
- }
1069
1057
  function _type_of$5(obj) {
1070
1058
  "@swc/helpers - typeof";
1071
1059
  return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
@@ -1502,7 +1490,7 @@ function _ts_generator$i(thisArg, body) {
1502
1490
  return _async_to_generator$i(function() {
1503
1491
  var claims;
1504
1492
  return _ts_generator$i(this, function(_state) {
1505
- claims = _object_spread$l({}, claimsToRetain, this._claimsForRolesChange(_to_consumable_array$c(roles)));
1493
+ claims = _object_spread$l({}, claimsToRetain, this._claimsForRolesChange(Array.from(roles)));
1506
1494
  return [
1507
1495
  2,
1508
1496
  this.setClaims(claims)
@@ -12749,6 +12737,9 @@ function _ts_generator$2(thisArg, body) {
12749
12737
  return file.publicUrl();
12750
12738
  });
12751
12739
  },
12740
+ getPublicUrl: function getPublicUrl() {
12741
+ return file.publicUrl();
12742
+ },
12752
12743
  getSignedUrl: function getSignedUrl(input) {
12753
12744
  return _async_to_generator$2(function() {
12754
12745
  var _ref, _ref1, expires, config;
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/mailgun",
3
- "version": "13.41.0",
3
+ "version": "13.42.0",
4
4
  "type": "module",
5
5
  "peerDependencies": {
6
- "@dereekb/analytics": "13.41.0",
7
- "@dereekb/firebase": "13.41.0",
8
- "@dereekb/firebase-server": "13.41.0",
9
- "@dereekb/date": "13.41.0",
10
- "@dereekb/nestjs": "13.41.0",
11
- "@dereekb/model": "13.41.0",
12
- "@dereekb/rxjs": "13.41.0",
13
- "@dereekb/util": "13.41.0"
6
+ "@dereekb/analytics": "13.42.0",
7
+ "@dereekb/firebase": "13.42.0",
8
+ "@dereekb/firebase-server": "13.42.0",
9
+ "@dereekb/date": "13.42.0",
10
+ "@dereekb/nestjs": "13.42.0",
11
+ "@dereekb/model": "13.42.0",
12
+ "@dereekb/rxjs": "13.42.0",
13
+ "@dereekb/util": "13.42.0"
14
14
  },
15
15
  "exports": {
16
16
  "./package.json": "./package.json",
package/mcp/index.esm.js CHANGED
@@ -214,7 +214,7 @@ function _array_like_to_array$b(arr, len) {
214
214
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
215
215
  return arr2;
216
216
  }
217
- function _array_without_holes$8(arr) {
217
+ function _array_without_holes$7(arr) {
218
218
  if (Array.isArray(arr)) return _array_like_to_array$b(arr);
219
219
  }
220
220
  function _define_property$9(obj, key, value) {
@@ -230,10 +230,10 @@ function _define_property$9(obj, key, value) {
230
230
  }
231
231
  return obj;
232
232
  }
233
- function _iterable_to_array$8(iter) {
233
+ function _iterable_to_array$7(iter) {
234
234
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
235
235
  }
236
- function _non_iterable_spread$8() {
236
+ function _non_iterable_spread$7() {
237
237
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
238
238
  }
239
239
  function _object_spread$7(target) {
@@ -270,8 +270,8 @@ function _object_spread_props$3(target, source) {
270
270
  }
271
271
  return target;
272
272
  }
273
- function _to_consumable_array$8(arr) {
274
- return _array_without_holes$8(arr) || _iterable_to_array$8(arr) || _unsupported_iterable_to_array$b(arr) || _non_iterable_spread$8();
273
+ function _to_consumable_array$7(arr) {
274
+ return _array_without_holes$7(arr) || _iterable_to_array$7(arr) || _unsupported_iterable_to_array$b(arr) || _non_iterable_spread$7();
275
275
  }
276
276
  function _type_of$4(obj) {
277
277
  "@swc/helpers - typeof";
@@ -366,7 +366,7 @@ function _unsupported_iterable_to_array$b(o, minLen) {
366
366
  });
367
367
  if (resolved.required) {
368
368
  var existingRequired = Array.isArray(base.required) ? base.required : [];
369
- next.required = existingRequired.includes(resolved.parameterName) ? _to_consumable_array$8(existingRequired) : _to_consumable_array$8(existingRequired).concat([
369
+ next.required = existingRequired.includes(resolved.parameterName) ? _to_consumable_array$7(existingRequired) : _to_consumable_array$7(existingRequired).concat([
370
370
  resolved.parameterName
371
371
  ]);
372
372
  }
@@ -1771,7 +1771,7 @@ function _array_like_to_array$8(arr, len) {
1771
1771
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
1772
1772
  return arr2;
1773
1773
  }
1774
- function _array_without_holes$7(arr) {
1774
+ function _array_without_holes$6(arr) {
1775
1775
  if (Array.isArray(arr)) return _array_like_to_array$8(arr);
1776
1776
  }
1777
1777
  function asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, key, arg) {
@@ -1803,14 +1803,14 @@ function _async_to_generator$6(fn) {
1803
1803
  });
1804
1804
  };
1805
1805
  }
1806
- function _iterable_to_array$7(iter) {
1806
+ function _iterable_to_array$6(iter) {
1807
1807
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
1808
1808
  }
1809
- function _non_iterable_spread$7() {
1809
+ function _non_iterable_spread$6() {
1810
1810
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
1811
1811
  }
1812
- function _to_consumable_array$7(arr) {
1813
- return _array_without_holes$7(arr) || _iterable_to_array$7(arr) || _unsupported_iterable_to_array$8(arr) || _non_iterable_spread$7();
1812
+ function _to_consumable_array$6(arr) {
1813
+ return _array_without_holes$6(arr) || _iterable_to_array$6(arr) || _unsupported_iterable_to_array$8(arr) || _non_iterable_spread$6();
1814
1814
  }
1815
1815
  function _unsupported_iterable_to_array$8(o, minLen) {
1816
1816
  if (!o) return;
@@ -2114,8 +2114,8 @@ function readInChunks$1(input) {
2114
2114
  ];
2115
2115
  case 2:
2116
2116
  partial = _state.sent();
2117
- (_merged_results = merged.results).push.apply(_merged_results, _to_consumable_array$7(partial.results));
2118
- (_merged_errors = merged.errors).push.apply(_merged_errors, _to_consumable_array$7(partial.errors));
2117
+ (_merged_results = merged.results).push.apply(_merged_results, _to_consumable_array$6(partial.results));
2118
+ (_merged_errors = merged.errors).push.apply(_merged_errors, _to_consumable_array$6(partial.errors));
2119
2119
  _state.label = 3;
2120
2120
  case 3:
2121
2121
  offset += MCP_MODEL_GET_BATCH_SIZE;
@@ -2717,7 +2717,7 @@ function _array_like_to_array$7(arr, len) {
2717
2717
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
2718
2718
  return arr2;
2719
2719
  }
2720
- function _array_without_holes$6(arr) {
2720
+ function _array_without_holes$5(arr) {
2721
2721
  if (Array.isArray(arr)) return _array_like_to_array$7(arr);
2722
2722
  }
2723
2723
  function _define_property$7(obj, key, value) {
@@ -2733,10 +2733,10 @@ function _define_property$7(obj, key, value) {
2733
2733
  }
2734
2734
  return obj;
2735
2735
  }
2736
- function _iterable_to_array$6(iter) {
2736
+ function _iterable_to_array$5(iter) {
2737
2737
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
2738
2738
  }
2739
- function _non_iterable_spread$6() {
2739
+ function _non_iterable_spread$5() {
2740
2740
  throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
2741
2741
  }
2742
2742
  function _object_spread$5(target) {
@@ -2773,8 +2773,8 @@ function _object_spread_props$2(target, source) {
2773
2773
  }
2774
2774
  return target;
2775
2775
  }
2776
- function _to_consumable_array$6(arr) {
2777
- return _array_without_holes$6(arr) || _iterable_to_array$6(arr) || _unsupported_iterable_to_array$7(arr) || _non_iterable_spread$6();
2776
+ function _to_consumable_array$5(arr) {
2777
+ return _array_without_holes$5(arr) || _iterable_to_array$5(arr) || _unsupported_iterable_to_array$7(arr) || _non_iterable_spread$5();
2778
2778
  }
2779
2779
  function _unsupported_iterable_to_array$7(o, minLen) {
2780
2780
  if (!o) return;
@@ -2968,7 +2968,7 @@ function resolveModelInfoOutput(input, manifest) {
2968
2968
  rows.push(output.model);
2969
2969
  } else if (output.mode === 'list' || output.mode === 'multiple') {
2970
2970
  var _rows;
2971
- (_rows = rows).push.apply(_rows, _to_consumable_array$6(output.models));
2971
+ (_rows = rows).push.apply(_rows, _to_consumable_array$5(output.models));
2972
2972
  }
2973
2973
  return rows.filter(function(row) {
2974
2974
  return Array.isArray(row.fields);
@@ -3194,7 +3194,7 @@ function toSummaryRow(entry) {
3194
3194
  *
3195
3195
  * @__NO_SIDE_EFFECTS__
3196
3196
  */ function computeGroupCounts(manifest) {
3197
- var grouped = makeValuesGroupMap(_to_consumable_array$6(manifest), function(entry) {
3197
+ var grouped = makeValuesGroupMap(_to_consumable_array$5(manifest), function(entry) {
3198
3198
  var _entry_modelGroup;
3199
3199
  return (_entry_modelGroup = entry.modelGroup) !== null && _entry_modelGroup !== void 0 ? _entry_modelGroup : MODEL_INFO_UNGROUPED_LABEL;
3200
3200
  });
@@ -4024,9 +4024,6 @@ function _array_like_to_array$6(arr, len) {
4024
4024
  function _array_with_holes$3(arr) {
4025
4025
  if (Array.isArray(arr)) return arr;
4026
4026
  }
4027
- function _array_without_holes$5(arr) {
4028
- if (Array.isArray(arr)) return _array_like_to_array$6(arr);
4029
- }
4030
4027
  function _define_property$5(obj, key, value) {
4031
4028
  if (key in obj) {
4032
4029
  Object.defineProperty(obj, key, {
@@ -4040,9 +4037,6 @@ function _define_property$5(obj, key, value) {
4040
4037
  }
4041
4038
  return obj;
4042
4039
  }
4043
- function _iterable_to_array$5(iter) {
4044
- if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
4045
- }
4046
4040
  function _iterable_to_array_limit$3(arr, i) {
4047
4041
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
4048
4042
  if (_i == null) return;
@@ -4070,9 +4064,6 @@ function _iterable_to_array_limit$3(arr, i) {
4070
4064
  function _non_iterable_rest$3() {
4071
4065
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
4072
4066
  }
4073
- function _non_iterable_spread$5() {
4074
- throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
4075
- }
4076
4067
  function _object_spread$3(target) {
4077
4068
  for(var i = 1; i < arguments.length; i++){
4078
4069
  var source = arguments[i] != null ? arguments[i] : {};
@@ -4091,9 +4082,6 @@ function _object_spread$3(target) {
4091
4082
  function _sliced_to_array$3(arr, i) {
4092
4083
  return _array_with_holes$3(arr) || _iterable_to_array_limit$3(arr, i) || _unsupported_iterable_to_array$6(arr, i) || _non_iterable_rest$3();
4093
4084
  }
4094
- function _to_consumable_array$5(arr) {
4095
- return _array_without_holes$5(arr) || _iterable_to_array$5(arr) || _unsupported_iterable_to_array$6(arr) || _non_iterable_spread$5();
4096
- }
4097
4085
  function _unsupported_iterable_to_array$6(o, minLen) {
4098
4086
  if (!o) return;
4099
4087
  if (typeof o === "string") return _array_like_to_array$6(o, minLen);
@@ -4168,7 +4156,7 @@ function whoamiToolHandler(args, ctx, deps) {
4168
4156
  return key;
4169
4157
  });
4170
4158
  var roleSet = deps.roleReader == null ? new Set() : deps.roleReader(token);
4171
- var roles = _to_consumable_array$5(roleSet).sort(function(a, b) {
4159
+ var roles = Array.from(roleSet).sort(function(a, b) {
4172
4160
  return a.localeCompare(b);
4173
4161
  });
4174
4162
  var claimsByKey = new Map();
package/mcp/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@dereekb/firebase-server/mcp",
3
- "version": "13.41.0",
3
+ "version": "13.42.0",
4
4
  "type": "module",
5
5
  "peerDependencies": {
6
- "@dereekb/analytics": "13.41.0",
7
- "@dereekb/date": "13.41.0",
8
- "@dereekb/firebase": "13.41.0",
9
- "@dereekb/firebase-server": "13.41.0",
10
- "@dereekb/firebase-server/oidc": "13.41.0",
11
- "@dereekb/model": "13.41.0",
12
- "@dereekb/nestjs": "13.41.0",
13
- "@dereekb/rxjs": "13.41.0",
14
- "@dereekb/util": "13.41.0",
15
- "@dereekb/zoho": "13.41.0",
6
+ "@dereekb/analytics": "13.42.0",
7
+ "@dereekb/date": "13.42.0",
8
+ "@dereekb/firebase": "13.42.0",
9
+ "@dereekb/firebase-server": "13.42.0",
10
+ "@dereekb/firebase-server/oidc": "13.42.0",
11
+ "@dereekb/model": "13.42.0",
12
+ "@dereekb/nestjs": "13.42.0",
13
+ "@dereekb/rxjs": "13.42.0",
14
+ "@dereekb/util": "13.42.0",
15
+ "@dereekb/zoho": "13.42.0",
16
16
  "@modelcontextprotocol/node": "2.0.0",
17
17
  "@modelcontextprotocol/server": "2.0.0",
18
18
  "@nestjs/common": "^11.1.19",
@@ -57,6 +57,28 @@ export interface McpManifestModelEntry {
57
57
  readonly identityConst: string;
58
58
  readonly collectionPrefix: string;
59
59
  readonly parentIdentityConst?: string;
60
+ /**
61
+ * `true` when the model's collection holds exactly one document, at the fixed
62
+ * {@link singleItemIdentifier} — `singleItemFirestoreCollection` (one per parent) or
63
+ * `rootSingleItemFirestoreCollection` (one, full stop).
64
+ */
65
+ readonly singleton?: boolean;
66
+ /**
67
+ * Fixed document id of a {@link singleton} model's one document: the `singleItemIdentifier`
68
+ * the collection factory declared, or `'0'`
69
+ * ({@link DEFAULT_SINGLE_ITEM_FIRESTORE_COLLECTION_DOCUMENT_IDENTIFIER}) when it omits one.
70
+ *
71
+ * Published because it cannot be inferred — plenty of single-item collections override the
72
+ * default — so a `model-get` caller reading only the catalog can still build the one key that
73
+ * resolves. Absent when the id was declared as an expression the generator could not read.
74
+ */
75
+ readonly singleItemIdentifier?: string;
76
+ /**
77
+ * Example document key with the parent chain resolved and `<…Id>` placeholders for the ids a
78
+ * caller supplies (e.g. `bg/<billingGroupId>/bgis/bgbs`). Absent when some ancestor identity
79
+ * could not be resolved at generation time.
80
+ */
81
+ readonly exampleKey?: string;
60
82
  readonly description?: string;
61
83
  readonly sourcePackage: string;
62
84
  readonly sourceFile: string;