@librechat/data-schemas 0.0.45 → 0.0.46

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.
Files changed (50) hide show
  1. package/dist/admin/capabilities.cjs +5 -5
  2. package/dist/admin/capabilities.cjs.map +1 -1
  3. package/dist/admin/capabilities.es.js +5 -5
  4. package/dist/admin/capabilities.es.js.map +1 -1
  5. package/dist/app/resolution.cjs +5 -11
  6. package/dist/app/resolution.cjs.map +1 -1
  7. package/dist/app/resolution.es.js +5 -11
  8. package/dist/app/resolution.es.js.map +1 -1
  9. package/dist/index.cjs +4 -0
  10. package/dist/index.cjs.map +1 -1
  11. package/dist/index.es.js +2 -0
  12. package/dist/index.es.js.map +1 -1
  13. package/dist/methods/config.cjs +60 -30
  14. package/dist/methods/config.cjs.map +1 -1
  15. package/dist/methods/config.es.js +60 -30
  16. package/dist/methods/config.es.js.map +1 -1
  17. package/dist/methods/prompt.cjs +96 -25
  18. package/dist/methods/prompt.cjs.map +1 -1
  19. package/dist/methods/prompt.es.js +96 -25
  20. package/dist/methods/prompt.es.js.map +1 -1
  21. package/dist/migrations/promptGroupIndexes.cjs +53 -0
  22. package/dist/migrations/promptGroupIndexes.cjs.map +1 -0
  23. package/dist/migrations/promptGroupIndexes.es.js +51 -0
  24. package/dist/migrations/promptGroupIndexes.es.js.map +1 -0
  25. package/dist/schema/config.cjs +1 -7
  26. package/dist/schema/config.cjs.map +1 -1
  27. package/dist/schema/config.es.js +1 -7
  28. package/dist/schema/config.es.js.map +1 -1
  29. package/dist/schema/prompt.cjs +1 -0
  30. package/dist/schema/prompt.cjs.map +1 -1
  31. package/dist/schema/prompt.es.js +1 -0
  32. package/dist/schema/prompt.es.js.map +1 -1
  33. package/dist/schema/promptGroup.cjs +1 -1
  34. package/dist/schema/promptGroup.cjs.map +1 -1
  35. package/dist/schema/promptGroup.es.js +1 -1
  36. package/dist/schema/promptGroup.es.js.map +1 -1
  37. package/dist/types/app/resolution.d.ts +1 -6
  38. package/dist/types/index.d.ts +1 -1
  39. package/dist/types/methods/config.d.ts +9 -3
  40. package/dist/types/methods/prompt.d.ts +5 -7
  41. package/dist/types/migrations/index.d.ts +1 -0
  42. package/dist/types/migrations/promptGroupIndexes.d.ts +31 -0
  43. package/dist/types/types/admin.d.ts +3 -2
  44. package/dist/types/utils/index.d.ts +1 -0
  45. package/dist/types/utils/objectId.d.ts +2 -0
  46. package/dist/utils/objectId.cjs +7 -0
  47. package/dist/utils/objectId.cjs.map +1 -0
  48. package/dist/utils/objectId.es.js +5 -0
  49. package/dist/utils/objectId.es.js.map +1 -0
  50. package/package.json +1 -1
@@ -51,13 +51,13 @@ const CapabilityImplications = {
51
51
  // Capability utility functions
52
52
  // ---------------------------------------------------------------------------
53
53
  /** Reverse map: for a given read capability, which manage capabilities imply it? */
54
- const _impliedBy = {};
54
+ const impliedByMap = {};
55
55
  for (const [manage, reads] of Object.entries(CapabilityImplications)) {
56
56
  for (const read of reads) {
57
- if (!_impliedBy[read]) {
58
- _impliedBy[read] = [];
57
+ if (!impliedByMap[read]) {
58
+ impliedByMap[read] = [];
59
59
  }
60
- _impliedBy[read].push(manage);
60
+ impliedByMap[read].push(manage);
61
61
  }
62
62
  }
63
63
  /**
@@ -68,7 +68,7 @@ function hasImpliedCapability(held, required) {
68
68
  if (held.includes(required)) {
69
69
  return true;
70
70
  }
71
- const impliers = _impliedBy[required];
71
+ const impliers = impliedByMap[required];
72
72
  if (impliers) {
73
73
  for (const cap of impliers) {
74
74
  if (held.includes(cap)) {
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.cjs","sources":["../../src/admin/capabilities.ts"],"sourcesContent":[null],"names":["ResourceType"],"mappings":";;;;AAQA;AACA;AACA;AAEA;;;;;;;AAOG;AACI,MAAM,kBAAkB,GAAG;AAChC,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,cAAc,EAAE,gBAAgB;AAChC,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,WAAW,EAAE,aAAa;AAC1B,IAAA,aAAa,EAAE,eAAe;AAC9B,IAAA,kBAAkB,EAAE,mBAAmB;AACvC,IAAA,YAAY,EAAE,cAAc;AAC5B,IAAA,cAAc,EAAE,gBAAgB;;AAEhC,IAAA,eAAe,EAAE,iBAAiB;AAClC,IAAA,iBAAiB,EAAE,mBAAmB;;AAGxC;;;AAGG;AACI,MAAM,sBAAsB,GACjC;IACE,CAAC,kBAAkB,CAAC,YAAY,GAAG,CAAC,kBAAkB,CAAC,UAAU,CAAC;IAClE,CAAC,kBAAkB,CAAC,aAAa,GAAG,CAAC,kBAAkB,CAAC,WAAW,CAAC;IACpE,CAAC,kBAAkB,CAAC,YAAY,GAAG,CAAC,kBAAkB,CAAC,UAAU,CAAC;IAClE,CAAC,kBAAkB,CAAC,cAAc,GAAG,CAAC,kBAAkB,CAAC,YAAY,CAAC;IACtE,CAAC,kBAAkB,CAAC,aAAa,GAAG,CAAC,kBAAkB,CAAC,WAAW,CAAC;IACpE,CAAC,kBAAkB,CAAC,cAAc,GAAG,CAAC,kBAAkB,CAAC,YAAY,CAAC;IACtE,CAAC,kBAAkB,CAAC,iBAAiB,GAAG,CAAC,kBAAkB,CAAC,eAAe,CAAC;;AAGhF;AACA;AACA;AAEA;AACA,MAAM,UAAU,GAA6B,EAAE;AAC/C,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,EAAE;AACpE,IAAA,KAAK,MAAM,IAAI,IAAI,KAAiB,EAAE;AACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACrB,YAAA,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE;QACvB;QACA,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAC/B;AACF;AAEA;;;AAGG;AACG,SAAU,oBAAoB,CAAC,IAAc,EAAE,QAAgB,EAAA;AACnE,IAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AAC3B,QAAA,OAAO,IAAI;IACb;AACA,IAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IACrC,IAAI,QAAQ,EAAE;AACZ,QAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;AAC1B,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACtB,gBAAA,OAAO,IAAI;YACb;QACF;IACF;AACA,IAAA,OAAO,KAAK;AACd;AAEA;;;AAGG;AACG,SAAU,kBAAkB,CAAC,UAAoB,EAAA;AACrD,IAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC;AACpC,IAAA,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;AAC5B,QAAA,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAA2B,CAAC;QACnE,IAAI,OAAO,EAAE;AACX,YAAA,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AACzB,gBAAA,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YACnB;QACF;IACF;AACA,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC7B;AAEA;AACA;AACA;AAEA;;;;;AAKG;AACI,MAAM,qBAAqB,GAA2C;AAC3E,IAAA,CAACA,kCAAY,CAAC,KAAK,GAAG,kBAAkB,CAAC,aAAa;AACtD,IAAA,CAACA,kCAAY,CAAC,WAAW,GAAG,kBAAkB,CAAC,cAAc;AAC7D,IAAA,CAACA,kCAAY,CAAC,SAAS,GAAG,kBAAkB,CAAC,kBAAkB;AAC/D,IAAA,CAACA,kCAAY,CAAC,YAAY,GAAG,kBAAkB,CAAC,aAAa;;AAG/D;;;;;;;;;AASG;AACG,SAAU,gBAAgB,CAAC,OAAsB,EAAA;IACrD,OAAO,CAAA,eAAA,EAAkB,OAAO,CAAA,CAAE;AACpC;AAEA;;;AAGG;AACG,SAAU,oBAAoB,CAAC,OAAsB,EAAA;IACzD,OAAO,CAAA,aAAA,EAAgB,OAAO,CAAA,CAAE;AAClC;AAEA;AACA;AACA;AAEA;AACO,MAAM,wBAAwB,GAAG;AAExC;AACO,MAAM,qBAAqB,GAAyB;AACzD,IAAA;AACE,QAAA,GAAG,EAAE,OAAO;AACZ,QAAA,QAAQ,EAAE,mBAAmB;QAC7B,YAAY,EAAE,CAAC,kBAAkB,CAAC,YAAY,EAAE,kBAAkB,CAAC,UAAU,CAAC;AAC/E,KAAA;AACD,IAAA;AACE,QAAA,GAAG,EAAE,QAAQ;AACb,QAAA,QAAQ,EAAE,oBAAoB;QAC9B,YAAY,EAAE,CAAC,kBAAkB,CAAC,aAAa,EAAE,kBAAkB,CAAC,WAAW,CAAC;AACjF,KAAA;AACD,IAAA;AACE,QAAA,GAAG,EAAE,OAAO;AACZ,QAAA,QAAQ,EAAE,mBAAmB;QAC7B,YAAY,EAAE,CAAC,kBAAkB,CAAC,YAAY,EAAE,kBAAkB,CAAC,UAAU,CAAC;AAC/E,KAAA;AACD,IAAA;AACE,QAAA,GAAG,EAAE,QAAQ;AACb,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,YAAY,EAAE;AACZ,YAAA,kBAAkB,CAAC,cAAc;AACjC,YAAA,kBAAkB,CAAC,YAAY;AAC/B,YAAA,kBAAkB,CAAC,cAAc;AAClC,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,GAAG,EAAE,SAAS;AACd,QAAA,QAAQ,EAAE,qBAAqB;AAC/B,QAAA,YAAY,EAAE;AACZ,YAAA,kBAAkB,CAAC,aAAa;AAChC,YAAA,kBAAkB,CAAC,WAAW;AAC9B,YAAA,kBAAkB,CAAC,cAAc;AACjC,YAAA,kBAAkB,CAAC,YAAY;AAC/B,YAAA,kBAAkB,CAAC,iBAAiB;AACpC,YAAA,kBAAkB,CAAC,eAAe;AAClC,YAAA,kBAAkB,CAAC,kBAAkB;AACtC,SAAA;AACF,KAAA;AACD,IAAA;AACE,QAAA,GAAG,EAAE,QAAQ;AACb,QAAA,QAAQ,EAAE,oBAAoB;QAC9B,YAAY,EAAE,CAAC,kBAAkB,CAAC,YAAY,EAAE,kBAAkB,CAAC,UAAU,CAAC;AAC/E,KAAA;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"capabilities.cjs","sources":["../../src/admin/capabilities.ts"],"sourcesContent":[null],"names":["ResourceType"],"mappings":"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"}
@@ -49,13 +49,13 @@ const CapabilityImplications = {
49
49
  // Capability utility functions
50
50
  // ---------------------------------------------------------------------------
51
51
  /** Reverse map: for a given read capability, which manage capabilities imply it? */
52
- const _impliedBy = {};
52
+ const impliedByMap = {};
53
53
  for (const [manage, reads] of Object.entries(CapabilityImplications)) {
54
54
  for (const read of reads) {
55
- if (!_impliedBy[read]) {
56
- _impliedBy[read] = [];
55
+ if (!impliedByMap[read]) {
56
+ impliedByMap[read] = [];
57
57
  }
58
- _impliedBy[read].push(manage);
58
+ impliedByMap[read].push(manage);
59
59
  }
60
60
  }
61
61
  /**
@@ -66,7 +66,7 @@ function hasImpliedCapability(held, required) {
66
66
  if (held.includes(required)) {
67
67
  return true;
68
68
  }
69
- const impliers = _impliedBy[required];
69
+ const impliers = impliedByMap[required];
70
70
  if (impliers) {
71
71
  for (const cap of impliers) {
72
72
  if (held.includes(cap)) {
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.es.js","sources":["../../src/admin/capabilities.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capabilities.es.js","sources":["../../src/admin/capabilities.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,21 +1,19 @@
1
1
  'use strict';
2
2
 
3
- /**
4
- * Deep merge source into target, returning a new object.
5
- * Arrays are replaced (not concatenated). Primitives from source override target.
6
- */
7
- function deepMerge(target, source) {
3
+ const MAX_MERGE_DEPTH = 10;
4
+ function deepMerge(target, source, depth = 0) {
8
5
  const result = { ...target };
9
6
  for (const key of Object.keys(source)) {
10
7
  const sourceVal = source[key];
11
8
  const targetVal = result[key];
12
- if (sourceVal != null &&
9
+ if (depth < MAX_MERGE_DEPTH &&
10
+ sourceVal != null &&
13
11
  typeof sourceVal === 'object' &&
14
12
  !Array.isArray(sourceVal) &&
15
13
  targetVal != null &&
16
14
  typeof targetVal === 'object' &&
17
15
  !Array.isArray(targetVal)) {
18
- result[key] = deepMerge(targetVal, sourceVal);
16
+ result[key] = deepMerge(targetVal, sourceVal, depth + 1);
19
17
  }
20
18
  else {
21
19
  result[key] = sourceVal;
@@ -28,10 +26,6 @@ function deepMerge(target, source) {
28
26
  *
29
27
  * Configs are sorted by priority ascending (lowest first, highest wins).
30
28
  * Each config's `overrides` is deep-merged into the base config in order.
31
- *
32
- * @param baseConfig - The base AppConfig from AppService (YAML-derived, cached)
33
- * @param configs - Array of Config documents from the DB
34
- * @returns Merged AppConfig with overrides applied
35
29
  */
36
30
  function mergeConfigOverrides(baseConfig, configs) {
37
31
  if (!configs || configs.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolution.cjs","sources":["../../src/app/resolution.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAGA;;;AAGG;AACH,SAAS,SAAS,CAChB,MAA+B,EAC/B,MAA+B,EAAA;AAE/B,IAAA,MAAM,MAAM,GAA4B,EAAE,GAAG,MAAM,EAAE;IACrD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACrC,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;AAC7B,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;QAC7B,IACE,SAAS,IAAI,IAAI;YACjB,OAAO,SAAS,KAAK,QAAQ;AAC7B,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;AACzB,YAAA,SAAS,IAAI,IAAI;YACjB,OAAO,SAAS,KAAK,QAAQ;AAC7B,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EACzB;YACA,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,SAAoC,EACpC,SAAoC,CACrC;QACH;aAAO;AACL,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS;QACzB;IACF;AACA,IAAA,OAAO,MAAM;AACf;AAEA;;;;;;;;;AASG;AACG,SAAU,oBAAoB,CAAC,UAAqB,EAAE,OAAkB,EAAA;IAC5E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,QAAA,OAAO,UAAU;IACnB;IAEA,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;AAEnE,IAAA,IAAI,MAAM,GAA4B,EAAE,GAAG,UAAU,EAAwC;AAC7F,IAAA,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;QAC3B,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE;YAC5D,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,SAA+C,CAAC;QACpF;IACF;AAEA,IAAA,OAAO,MAA8B;AACvC;;;;"}
1
+ {"version":3,"file":"resolution.cjs","sources":["../../src/app/resolution.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAIA,MAAM,eAAe,GAAG,EAAE;AAE1B,SAAS,SAAS,CAAsB,MAAS,EAAE,MAAiB,EAAE,KAAK,GAAG,CAAC,EAAA;AAC7E,IAAA,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAe;IACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACrC,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;AAC7B,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;QAC7B,IACE,KAAK,GAAG,eAAe;AACvB,YAAA,SAAS,IAAI,IAAI;YACjB,OAAO,SAAS,KAAK,QAAQ;AAC7B,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;AACzB,YAAA,SAAS,IAAI,IAAI;YACjB,OAAO,SAAS,KAAK,QAAQ;AAC7B,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EACzB;AACA,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,SAAsB,EAAE,SAAsB,EAAE,KAAK,GAAG,CAAC,CAAC;QACpF;aAAO;AACL,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS;QACzB;IACF;AACA,IAAA,OAAO,MAAW;AACpB;AAEA;;;;;AAKG;AACG,SAAU,oBAAoB,CAAC,UAAqB,EAAE,OAAkB,EAAA;IAC5E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,QAAA,OAAO,UAAU;IACnB;IAEA,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;AAEnE,IAAA,IAAI,MAAM,GAAG,EAAE,GAAG,UAAU,EAAE;AAC9B,IAAA,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;QAC3B,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE;YAC5D,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,SAAsB,CAAC;QAC3D;IACF;AAEA,IAAA,OAAO,MAAM;AACf;;;;"}
@@ -1,19 +1,17 @@
1
- /**
2
- * Deep merge source into target, returning a new object.
3
- * Arrays are replaced (not concatenated). Primitives from source override target.
4
- */
5
- function deepMerge(target, source) {
1
+ const MAX_MERGE_DEPTH = 10;
2
+ function deepMerge(target, source, depth = 0) {
6
3
  const result = { ...target };
7
4
  for (const key of Object.keys(source)) {
8
5
  const sourceVal = source[key];
9
6
  const targetVal = result[key];
10
- if (sourceVal != null &&
7
+ if (depth < MAX_MERGE_DEPTH &&
8
+ sourceVal != null &&
11
9
  typeof sourceVal === 'object' &&
12
10
  !Array.isArray(sourceVal) &&
13
11
  targetVal != null &&
14
12
  typeof targetVal === 'object' &&
15
13
  !Array.isArray(targetVal)) {
16
- result[key] = deepMerge(targetVal, sourceVal);
14
+ result[key] = deepMerge(targetVal, sourceVal, depth + 1);
17
15
  }
18
16
  else {
19
17
  result[key] = sourceVal;
@@ -26,10 +24,6 @@ function deepMerge(target, source) {
26
24
  *
27
25
  * Configs are sorted by priority ascending (lowest first, highest wins).
28
26
  * Each config's `overrides` is deep-merged into the base config in order.
29
- *
30
- * @param baseConfig - The base AppConfig from AppService (YAML-derived, cached)
31
- * @param configs - Array of Config documents from the DB
32
- * @returns Merged AppConfig with overrides applied
33
27
  */
34
28
  function mergeConfigOverrides(baseConfig, configs) {
35
29
  if (!configs || configs.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolution.es.js","sources":["../../src/app/resolution.ts"],"sourcesContent":[null],"names":[],"mappings":"AAGA;;;AAGG;AACH,SAAS,SAAS,CAChB,MAA+B,EAC/B,MAA+B,EAAA;AAE/B,IAAA,MAAM,MAAM,GAA4B,EAAE,GAAG,MAAM,EAAE;IACrD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACrC,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;AAC7B,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;QAC7B,IACE,SAAS,IAAI,IAAI;YACjB,OAAO,SAAS,KAAK,QAAQ;AAC7B,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;AACzB,YAAA,SAAS,IAAI,IAAI;YACjB,OAAO,SAAS,KAAK,QAAQ;AAC7B,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EACzB;YACA,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,SAAoC,EACpC,SAAoC,CACrC;QACH;aAAO;AACL,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS;QACzB;IACF;AACA,IAAA,OAAO,MAAM;AACf;AAEA;;;;;;;;;AASG;AACG,SAAU,oBAAoB,CAAC,UAAqB,EAAE,OAAkB,EAAA;IAC5E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,QAAA,OAAO,UAAU;IACnB;IAEA,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;AAEnE,IAAA,IAAI,MAAM,GAA4B,EAAE,GAAG,UAAU,EAAwC;AAC7F,IAAA,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;QAC3B,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE;YAC5D,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,SAA+C,CAAC;QACpF;IACF;AAEA,IAAA,OAAO,MAA8B;AACvC;;;;"}
1
+ {"version":3,"file":"resolution.es.js","sources":["../../src/app/resolution.ts"],"sourcesContent":[null],"names":[],"mappings":"AAIA,MAAM,eAAe,GAAG,EAAE;AAE1B,SAAS,SAAS,CAAsB,MAAS,EAAE,MAAiB,EAAE,KAAK,GAAG,CAAC,EAAA;AAC7E,IAAA,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,EAAe;IACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACrC,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;AAC7B,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC;QAC7B,IACE,KAAK,GAAG,eAAe;AACvB,YAAA,SAAS,IAAI,IAAI;YACjB,OAAO,SAAS,KAAK,QAAQ;AAC7B,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;AACzB,YAAA,SAAS,IAAI,IAAI;YACjB,OAAO,SAAS,KAAK,QAAQ;AAC7B,YAAA,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EACzB;AACA,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,SAAsB,EAAE,SAAsB,EAAE,KAAK,GAAG,CAAC,CAAC;QACpF;aAAO;AACL,YAAA,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS;QACzB;IACF;AACA,IAAA,OAAO,MAAW;AACpB;AAEA;;;;;AAKG;AACG,SAAU,oBAAoB,CAAC,UAAqB,EAAE,OAAkB,EAAA;IAC5E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,QAAA,OAAO,UAAU;IACnB;IAEA,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;AAEnE,IAAA,IAAI,MAAM,GAAG,EAAE,GAAG,UAAU,EAAE;AAC9B,IAAA,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE;QAC3B,IAAI,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE;YAC5D,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,SAAsB,CAAC;QAC3D;IACF;AAEA,IAAA,OAAO,MAAM;AACf;;;;"}
package/dist/index.cjs CHANGED
@@ -43,12 +43,14 @@ var principal = require('./utils/principal.cjs');
43
43
  var string = require('./utils/string.cjs');
44
44
  var tempChatRetention = require('./utils/tempChatRetention.cjs');
45
45
  var transactions = require('./utils/transactions.cjs');
46
+ var objectId = require('./utils/objectId.cjs');
46
47
  var index$1 = require('./models/index.cjs');
47
48
  var index = require('./methods/index.cjs');
48
49
  var winston = require('./config/winston.cjs');
49
50
  var meiliLogger = require('./config/meiliLogger.cjs');
50
51
  var tenantContext = require('./config/tenantContext.cjs');
51
52
  var tenantIndexes = require('./migrations/tenantIndexes.cjs');
53
+ var promptGroupIndexes = require('./migrations/promptGroupIndexes.cjs');
52
54
  var session = require('./methods/session.cjs');
53
55
  var user = require('./methods/user.cjs');
54
56
  var tx = require('./methods/tx.cjs');
@@ -129,6 +131,7 @@ exports.getTempChatRetentionHours = tempChatRetention.getTempChatRetentionHours;
129
131
  exports.CANCEL_RATE = transactions.CANCEL_RATE;
130
132
  exports.getTransactionSupport = transactions.getTransactionSupport;
131
133
  exports.supportsTransactions = transactions.supportsTransactions;
134
+ exports.isValidObjectIdString = objectId.isValidObjectIdString;
132
135
  exports.createModels = index$1.createModels;
133
136
  exports.createMethods = index.createMethods;
134
137
  exports.logger = winston;
@@ -138,6 +141,7 @@ exports.getTenantId = tenantContext.getTenantId;
138
141
  exports.runAsSystem = tenantContext.runAsSystem;
139
142
  exports.tenantStorage = tenantContext.tenantStorage;
140
143
  exports.dropSupersededTenantIndexes = tenantIndexes.dropSupersededTenantIndexes;
144
+ exports.dropSupersededPromptGroupIndexes = promptGroupIndexes.dropSupersededPromptGroupIndexes;
141
145
  exports.DEFAULT_REFRESH_TOKEN_EXPIRY = session.DEFAULT_REFRESH_TOKEN_EXPIRY;
142
146
  exports.DEFAULT_SESSION_EXPIRY = user.DEFAULT_SESSION_EXPIRY;
143
147
  exports.cacheTokenValues = tx.cacheTokenValues;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.es.js CHANGED
@@ -41,12 +41,14 @@ export { normalizePrincipalId } from './utils/principal.es.js';
41
41
  export { escapeRegExp } from './utils/string.es.js';
42
42
  export { DEFAULT_RETENTION_HOURS, MAX_RETENTION_HOURS, MIN_RETENTION_HOURS, createTempChatExpirationDate, getTempChatRetentionHours } from './utils/tempChatRetention.es.js';
43
43
  export { CANCEL_RATE, getTransactionSupport, supportsTransactions } from './utils/transactions.es.js';
44
+ export { isValidObjectIdString } from './utils/objectId.es.js';
44
45
  export { createModels } from './models/index.es.js';
45
46
  export { createMethods } from './methods/index.es.js';
46
47
  export { default as logger } from './config/winston.es.js';
47
48
  export { default as meiliLogger } from './config/meiliLogger.es.js';
48
49
  export { SYSTEM_TENANT_ID, getTenantId, runAsSystem, tenantStorage } from './config/tenantContext.es.js';
49
50
  export { dropSupersededTenantIndexes } from './migrations/tenantIndexes.es.js';
51
+ export { dropSupersededPromptGroupIndexes } from './migrations/promptGroupIndexes.es.js';
50
52
  export { DEFAULT_REFRESH_TOKEN_EXPIRY } from './methods/session.es.js';
51
53
  export { DEFAULT_SESSION_EXPIRY } from './methods/user.es.js';
52
54
  export { cacheTokenValues, defaultRate, premiumTokenValues, tokenValues } from './methods/tx.es.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -4,25 +4,29 @@ var librechatDataProvider = require('librechat-data-provider');
4
4
  var capabilities = require('../admin/capabilities.cjs');
5
5
 
6
6
  function createConfigMethods(mongoose) {
7
- async function findConfigByPrincipal(principalType, principalId, session) {
7
+ async function findConfigByPrincipal(principalType, principalId, options, session) {
8
8
  const Config = mongoose.models.Config;
9
- const query = Config.findOne({
9
+ const filter = {
10
10
  principalType,
11
11
  principalId: principalId.toString(),
12
- isActive: true,
13
- });
14
- if (session) {
15
- query.session(session);
12
+ };
13
+ if (!(options === null || options === void 0 ? void 0 : options.includeInactive)) {
14
+ filter.isActive = true;
16
15
  }
17
- return await query.lean();
16
+ return await Config.findOne(filter)
17
+ .session(session !== null && session !== void 0 ? session : null)
18
+ .lean();
18
19
  }
19
- async function listAllConfigs(session) {
20
+ async function listAllConfigs(filter, session) {
20
21
  const Config = mongoose.models.Config;
21
- const query = Config.find({ isActive: true }).sort({ priority: 1 });
22
- if (session) {
23
- query.session(session);
22
+ const where = {};
23
+ if ((filter === null || filter === void 0 ? void 0 : filter.isActive) !== undefined) {
24
+ where.isActive = filter.isActive;
24
25
  }
25
- return await query.lean();
26
+ return await Config.find(where)
27
+ .sort({ priority: 1 })
28
+ .session(session !== null && session !== void 0 ? session : null)
29
+ .lean();
26
30
  }
27
31
  async function getApplicableConfigs(principals, session) {
28
32
  const Config = mongoose.models.Config;
@@ -41,14 +45,13 @@ function createConfigMethods(mongoose) {
41
45
  }
42
46
  }
43
47
  }
44
- const configQuery = Config.find({
48
+ return await Config.find({
45
49
  $or: principalsQuery,
46
50
  isActive: true,
47
- });
48
- if (session) {
49
- configQuery.session(session);
50
- }
51
- return await configQuery.lean();
51
+ })
52
+ .sort({ priority: 1 })
53
+ .session(session !== null && session !== void 0 ? session : null)
54
+ .lean();
52
55
  }
53
56
  async function upsertConfig(principalType, principalId, principalModel, overrides, priority, session) {
54
57
  const Config = mongoose.models.Config;
@@ -71,32 +74,59 @@ function createConfigMethods(mongoose) {
71
74
  setDefaultsOnInsert: true,
72
75
  ...(session ? { session } : {}),
73
76
  };
74
- return await Config.findOneAndUpdate(query, update, options);
77
+ try {
78
+ return await Config.findOneAndUpdate(query, update, options);
79
+ }
80
+ catch (err) {
81
+ if (err.code === 11000) {
82
+ return await Config.findOneAndUpdate(query, { $set: update.$set, $inc: update.$inc }, { new: true, ...(session ? { session } : {}) });
83
+ }
84
+ throw err;
85
+ }
86
+ }
87
+ async function patchConfigFields(principalType, principalId, principalModel, fields, priority, session) {
88
+ const Config = mongoose.models.Config;
89
+ const setPayload = {
90
+ principalModel,
91
+ priority,
92
+ };
93
+ for (const [path, value] of Object.entries(fields)) {
94
+ setPayload[`overrides.${path}`] = value;
95
+ }
96
+ const options = {
97
+ upsert: true,
98
+ new: true,
99
+ setDefaultsOnInsert: true,
100
+ ...(session ? { session } : {}),
101
+ };
102
+ return await Config.findOneAndUpdate({ principalType, principalId: principalId.toString() }, { $set: setPayload, $inc: { configVersion: 1 } }, options);
103
+ }
104
+ async function unsetConfigField(principalType, principalId, fieldPath, session) {
105
+ const Config = mongoose.models.Config;
106
+ const options = {
107
+ new: true,
108
+ ...(session ? { session } : {}),
109
+ };
110
+ return await Config.findOneAndUpdate({ principalType, principalId: principalId.toString() }, { $unset: { [`overrides.${fieldPath}`]: '' }, $inc: { configVersion: 1 } }, options);
75
111
  }
76
112
  async function deleteConfig(principalType, principalId, session) {
77
113
  const Config = mongoose.models.Config;
78
- const query = Config.findOneAndDelete({
114
+ return await Config.findOneAndDelete({
79
115
  principalType,
80
116
  principalId: principalId.toString(),
81
- });
82
- if (session) {
83
- query.session(session);
84
- }
85
- return await query;
117
+ }).session(session !== null && session !== void 0 ? session : null);
86
118
  }
87
119
  async function toggleConfigActive(principalType, principalId, isActive, session) {
88
120
  const Config = mongoose.models.Config;
89
- const query = Config.findOneAndUpdate({ principalType, principalId: principalId.toString() }, { $set: { isActive } }, { new: true });
90
- if (session) {
91
- query.session(session);
92
- }
93
- return await query;
121
+ return await Config.findOneAndUpdate({ principalType, principalId: principalId.toString() }, { $set: { isActive } }, { new: true, ...(session ? { session } : {}) });
94
122
  }
95
123
  return {
96
124
  listAllConfigs,
97
125
  findConfigByPrincipal,
98
126
  getApplicableConfigs,
99
127
  upsertConfig,
128
+ patchConfigFields,
129
+ unsetConfigField,
100
130
  deleteConfig,
101
131
  toggleConfigActive,
102
132
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.cjs","sources":["../../src/methods/config.ts"],"sourcesContent":[null],"names":["PrincipalType","BASE_CONFIG_PRINCIPAL_ID"],"mappings":"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"}
1
+ {"version":3,"file":"config.cjs","sources":["../../src/methods/config.ts"],"sourcesContent":[null],"names":["PrincipalType","BASE_CONFIG_PRINCIPAL_ID"],"mappings":"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"}
@@ -2,25 +2,29 @@ import { PrincipalType } from 'librechat-data-provider';
2
2
  import { BASE_CONFIG_PRINCIPAL_ID } from '../admin/capabilities.es.js';
3
3
 
4
4
  function createConfigMethods(mongoose) {
5
- async function findConfigByPrincipal(principalType, principalId, session) {
5
+ async function findConfigByPrincipal(principalType, principalId, options, session) {
6
6
  const Config = mongoose.models.Config;
7
- const query = Config.findOne({
7
+ const filter = {
8
8
  principalType,
9
9
  principalId: principalId.toString(),
10
- isActive: true,
11
- });
12
- if (session) {
13
- query.session(session);
10
+ };
11
+ if (!(options === null || options === void 0 ? void 0 : options.includeInactive)) {
12
+ filter.isActive = true;
14
13
  }
15
- return await query.lean();
14
+ return await Config.findOne(filter)
15
+ .session(session !== null && session !== void 0 ? session : null)
16
+ .lean();
16
17
  }
17
- async function listAllConfigs(session) {
18
+ async function listAllConfigs(filter, session) {
18
19
  const Config = mongoose.models.Config;
19
- const query = Config.find({ isActive: true }).sort({ priority: 1 });
20
- if (session) {
21
- query.session(session);
20
+ const where = {};
21
+ if ((filter === null || filter === void 0 ? void 0 : filter.isActive) !== undefined) {
22
+ where.isActive = filter.isActive;
22
23
  }
23
- return await query.lean();
24
+ return await Config.find(where)
25
+ .sort({ priority: 1 })
26
+ .session(session !== null && session !== void 0 ? session : null)
27
+ .lean();
24
28
  }
25
29
  async function getApplicableConfigs(principals, session) {
26
30
  const Config = mongoose.models.Config;
@@ -39,14 +43,13 @@ function createConfigMethods(mongoose) {
39
43
  }
40
44
  }
41
45
  }
42
- const configQuery = Config.find({
46
+ return await Config.find({
43
47
  $or: principalsQuery,
44
48
  isActive: true,
45
- });
46
- if (session) {
47
- configQuery.session(session);
48
- }
49
- return await configQuery.lean();
49
+ })
50
+ .sort({ priority: 1 })
51
+ .session(session !== null && session !== void 0 ? session : null)
52
+ .lean();
50
53
  }
51
54
  async function upsertConfig(principalType, principalId, principalModel, overrides, priority, session) {
52
55
  const Config = mongoose.models.Config;
@@ -69,32 +72,59 @@ function createConfigMethods(mongoose) {
69
72
  setDefaultsOnInsert: true,
70
73
  ...(session ? { session } : {}),
71
74
  };
72
- return await Config.findOneAndUpdate(query, update, options);
75
+ try {
76
+ return await Config.findOneAndUpdate(query, update, options);
77
+ }
78
+ catch (err) {
79
+ if (err.code === 11000) {
80
+ return await Config.findOneAndUpdate(query, { $set: update.$set, $inc: update.$inc }, { new: true, ...(session ? { session } : {}) });
81
+ }
82
+ throw err;
83
+ }
84
+ }
85
+ async function patchConfigFields(principalType, principalId, principalModel, fields, priority, session) {
86
+ const Config = mongoose.models.Config;
87
+ const setPayload = {
88
+ principalModel,
89
+ priority,
90
+ };
91
+ for (const [path, value] of Object.entries(fields)) {
92
+ setPayload[`overrides.${path}`] = value;
93
+ }
94
+ const options = {
95
+ upsert: true,
96
+ new: true,
97
+ setDefaultsOnInsert: true,
98
+ ...(session ? { session } : {}),
99
+ };
100
+ return await Config.findOneAndUpdate({ principalType, principalId: principalId.toString() }, { $set: setPayload, $inc: { configVersion: 1 } }, options);
101
+ }
102
+ async function unsetConfigField(principalType, principalId, fieldPath, session) {
103
+ const Config = mongoose.models.Config;
104
+ const options = {
105
+ new: true,
106
+ ...(session ? { session } : {}),
107
+ };
108
+ return await Config.findOneAndUpdate({ principalType, principalId: principalId.toString() }, { $unset: { [`overrides.${fieldPath}`]: '' }, $inc: { configVersion: 1 } }, options);
73
109
  }
74
110
  async function deleteConfig(principalType, principalId, session) {
75
111
  const Config = mongoose.models.Config;
76
- const query = Config.findOneAndDelete({
112
+ return await Config.findOneAndDelete({
77
113
  principalType,
78
114
  principalId: principalId.toString(),
79
- });
80
- if (session) {
81
- query.session(session);
82
- }
83
- return await query;
115
+ }).session(session !== null && session !== void 0 ? session : null);
84
116
  }
85
117
  async function toggleConfigActive(principalType, principalId, isActive, session) {
86
118
  const Config = mongoose.models.Config;
87
- const query = Config.findOneAndUpdate({ principalType, principalId: principalId.toString() }, { $set: { isActive } }, { new: true });
88
- if (session) {
89
- query.session(session);
90
- }
91
- return await query;
119
+ return await Config.findOneAndUpdate({ principalType, principalId: principalId.toString() }, { $set: { isActive } }, { new: true, ...(session ? { session } : {}) });
92
120
  }
93
121
  return {
94
122
  listAllConfigs,
95
123
  findConfigByPrincipal,
96
124
  getApplicableConfigs,
97
125
  upsertConfig,
126
+ patchConfigFields,
127
+ unsetConfigField,
98
128
  deleteConfig,
99
129
  toggleConfigActive,
100
130
  };
@@ -1 +1 @@
1
- {"version":3,"file":"config.es.js","sources":["../../src/methods/config.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAMM,SAAU,mBAAmB,CAAC,QAAmC,EAAA;AACrE,IAAA,eAAe,qBAAqB,CAClC,aAA4B,EAC5B,WAAoC,EACpC,OAAuB,EAAA;AAEvB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAwB;AACvD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;YAC3B,aAAa;AACb,YAAA,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;AACnC,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC;QACF,IAAI,OAAO,EAAE;AACX,YAAA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB;AACA,QAAA,OAAO,MAAM,KAAK,CAAC,IAAI,EAAE;IAC3B;IAEA,eAAe,cAAc,CAAC,OAAuB,EAAA;AACnD,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAwB;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACnE,IAAI,OAAO,EAAE;AACX,YAAA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB;AACA,QAAA,OAAO,MAAM,KAAK,CAAC,IAAI,EAAE;IAC3B;AAEA,IAAA,eAAe,oBAAoB,CACjC,UAAoF,EACpF,OAAuB,EAAA;AAEvB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAwB;AAEvD,QAAA,MAAM,aAAa,GAAG;YACpB,aAAa,EAAE,aAAa,CAAC,IAAc;AAC3C,YAAA,WAAW,EAAE,wBAAwB;SACtC;AAED,QAAA,MAAM,eAAe,GAAG,CAAC,aAAa,CAAC;QAEvC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;AAC1B,gBAAA,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS,EAAE;oBAC/B,eAAe,CAAC,IAAI,CAAC;wBACnB,aAAa,EAAE,CAAC,CAAC,aAAa;AAC9B,wBAAA,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE;AACtC,qBAAA,CAAC;gBACJ;YACF;QACF;AAEA,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;AAC9B,YAAA,GAAG,EAAE,eAAe;AACpB,YAAA,QAAQ,EAAE,IAAI;AACf,SAAA,CAAC;QAEF,IAAI,OAAO,EAAE;AACX,YAAA,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;QAC9B;AAEA,QAAA,OAAO,MAAM,WAAW,CAAC,IAAI,EAAE;IACjC;AAEA,IAAA,eAAe,YAAY,CACzB,aAA4B,EAC5B,WAAoC,EACpC,cAA8B,EAC9B,SAAkC,EAClC,QAAgB,EAChB,OAAuB,EAAA;AAEvB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAwB;AAEvD,QAAA,MAAM,KAAK,GAAG;YACZ,aAAa;AACb,YAAA,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;SACpC;AAED,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,IAAI,EAAE;gBACJ,cAAc;gBACd,SAAS;gBACT,QAAQ;AACR,gBAAA,QAAQ,EAAE,IAAI;AACf,aAAA;AACD,YAAA,IAAI,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE;SAC3B;AAED,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,mBAAmB,EAAE,IAAI;AACzB,YAAA,IAAI,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;SAChC;QAED,OAAO,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;IAC9D;AAEA,IAAA,eAAe,YAAY,CACzB,aAA4B,EAC5B,WAAoC,EACpC,OAAuB,EAAA;AAEvB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAwB;AAEvD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC;YACpC,aAAa;AACb,YAAA,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE;AACpC,SAAA,CAAC;QAEF,IAAI,OAAO,EAAE;AACX,YAAA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB;QAEA,OAAO,MAAM,KAAK;IACpB;IAEA,eAAe,kBAAkB,CAC/B,aAA4B,EAC5B,WAAoC,EACpC,QAAiB,EACjB,OAAuB,EAAA;AAEvB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAwB;AAEvD,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CACnC,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAC,QAAQ,EAAE,EAAE,EACtD,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EACtB,EAAE,GAAG,EAAE,IAAI,EAAE,CACd;QAED,IAAI,OAAO,EAAE;AACX,YAAA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB;QAEA,OAAO,MAAM,KAAK;IACpB;IAEA,OAAO;QACL,cAAc;QACd,qBAAqB;QACrB,oBAAoB;QACpB,YAAY;QACZ,YAAY;QACZ,kBAAkB;KACnB;AACH;;;;"}
1
+ {"version":3,"file":"config.es.js","sources":["../../src/methods/config.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}