@oneuptime/common 10.0.45 → 10.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.
@@ -1,7 +1,6 @@
1
1
  // Show a large modal full of components.
2
2
  import ErrorMessage from "../ErrorMessage/ErrorMessage";
3
3
  import Icon from "../Icon/Icon";
4
- import Input from "../Input/Input";
5
4
  import SideOver from "../SideOver/SideOver";
6
5
  import IconProp from "../../../Types/Icon/IconProp";
7
6
  import ComponentMetadata, {
@@ -12,6 +11,7 @@ import React, {
12
11
  FunctionComponent,
13
12
  ReactElement,
14
13
  useEffect,
14
+ useRef,
15
15
  useState,
16
16
  } from "react";
17
17
 
@@ -23,20 +23,62 @@ export interface ComponentProps {
23
23
  categories: Array<ComponentCategory>;
24
24
  }
25
25
 
26
+ const escapeRegExp: (value: string) => string = (value: string): string => {
27
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
28
+ };
29
+
30
+ const getSearchScore: (
31
+ componentMetadata: ComponentMetadata,
32
+ searchTerm: string,
33
+ ) => number = (
34
+ componentMetadata: ComponentMetadata,
35
+ searchTerm: string,
36
+ ): number => {
37
+ const title: string = componentMetadata.title.toLowerCase();
38
+ const description: string = componentMetadata.description.toLowerCase();
39
+ const category: string = componentMetadata.category.toLowerCase();
40
+
41
+ let score: number = 0;
42
+
43
+ if (title.startsWith(searchTerm)) {
44
+ score += 140;
45
+ } else if (title.includes(searchTerm)) {
46
+ score += 100;
47
+ }
48
+
49
+ if (category.startsWith(searchTerm)) {
50
+ score += 75;
51
+ } else if (category.includes(searchTerm)) {
52
+ score += 55;
53
+ }
54
+
55
+ if (description.includes(searchTerm)) {
56
+ score += 35;
57
+ }
58
+
59
+ if (
60
+ title.split(" ").some((word: string) => {
61
+ return word.trim().startsWith(searchTerm);
62
+ })
63
+ ) {
64
+ score += 15;
65
+ }
66
+
67
+ return score;
68
+ };
69
+
26
70
  const ComponentsModal: FunctionComponent<ComponentProps> = (
27
71
  props: ComponentProps,
28
72
  ): ReactElement => {
29
73
  const [search, setSearch] = useState<string>("");
74
+ const searchInputRef: React.RefObject<HTMLInputElement> =
75
+ useRef<HTMLInputElement>(null);
30
76
 
31
77
  const [components, setComponents] = useState<Array<ComponentMetadata>>([]);
32
78
  const [categories, setCategories] = useState<Array<ComponentCategory>>([]);
33
-
34
79
  const [componentsToShow, setComponentsToShow] = useState<
35
80
  Array<ComponentMetadata>
36
81
  >([]);
37
-
38
- const [isSearching, setIsSearching] = useState<boolean>(false);
39
-
40
82
  const [selectedComponentMetadata, setSelectedComponentMetadata] =
41
83
  useState<ComponentMetadata | null>(null);
42
84
 
@@ -44,37 +86,135 @@ const ComponentsModal: FunctionComponent<ComponentProps> = (
44
86
  setComponents(props.components);
45
87
  setComponentsToShow([...props.components]);
46
88
  setCategories(props.categories);
47
- }, []);
89
+ }, [props.categories, props.components]);
48
90
 
49
91
  useEffect(() => {
50
- if (!isSearching) {
51
- return;
52
- }
53
- if (!search) {
54
- setComponentsToShow([
55
- ...components.filter((componentMetadata: ComponentMetadata) => {
56
- return componentMetadata.componentType === props.componentsType;
57
- }),
58
- ]);
59
- }
92
+ const normalizedSearch: string = search.trim().toLowerCase();
93
+
94
+ const filteredComponents: Array<ComponentMetadata> = components
95
+ .filter((componentMetadata: ComponentMetadata) => {
96
+ return componentMetadata.componentType === props.componentsType;
97
+ })
98
+ .filter((componentMetadata: ComponentMetadata) => {
99
+ if (!normalizedSearch) {
100
+ return true;
101
+ }
60
102
 
61
- setComponentsToShow([
62
- ...components.filter((componentMetadata: ComponentMetadata) => {
63
103
  return (
64
- componentMetadata.componentType === props.componentsType &&
65
- (componentMetadata.title
104
+ componentMetadata.title.toLowerCase().includes(normalizedSearch) ||
105
+ componentMetadata.description
66
106
  .toLowerCase()
67
- .includes(search.trim().toLowerCase()) ||
68
- componentMetadata.description
69
- .toLowerCase()
70
- .includes(search.trim().toLowerCase()) ||
71
- componentMetadata.category
72
- .toLowerCase()
73
- .includes(search.trim().toLowerCase()))
107
+ .includes(normalizedSearch) ||
108
+ componentMetadata.category.toLowerCase().includes(normalizedSearch)
74
109
  );
75
- }),
76
- ]);
77
- }, [search]);
110
+ })
111
+ .sort((componentA: ComponentMetadata, componentB: ComponentMetadata) => {
112
+ if (!normalizedSearch) {
113
+ return componentA.title.localeCompare(componentB.title);
114
+ }
115
+
116
+ const scoreDifference: number =
117
+ getSearchScore(componentB, normalizedSearch) -
118
+ getSearchScore(componentA, normalizedSearch);
119
+
120
+ if (scoreDifference !== 0) {
121
+ return scoreDifference;
122
+ }
123
+
124
+ return componentA.title.localeCompare(componentB.title);
125
+ });
126
+
127
+ setComponentsToShow(filteredComponents);
128
+ }, [components, props.componentsType, search]);
129
+
130
+ useEffect(() => {
131
+ searchInputRef.current?.focus();
132
+ }, []);
133
+
134
+ useEffect(() => {
135
+ const handleKeyDown: (event: KeyboardEvent) => void = (
136
+ event: KeyboardEvent,
137
+ ): void => {
138
+ const target: HTMLElement | null = event.target as HTMLElement | null;
139
+
140
+ const isTypingContext: boolean = Boolean(
141
+ target &&
142
+ (target.tagName === "INPUT" ||
143
+ target.tagName === "TEXTAREA" ||
144
+ target.getAttribute("contenteditable") === "true"),
145
+ );
146
+
147
+ if (
148
+ event.key === "/" &&
149
+ !event.metaKey &&
150
+ !event.ctrlKey &&
151
+ !event.altKey &&
152
+ !isTypingContext
153
+ ) {
154
+ event.preventDefault();
155
+ searchInputRef.current?.focus();
156
+ }
157
+ };
158
+
159
+ window.addEventListener("keydown", handleKeyDown);
160
+
161
+ return () => {
162
+ window.removeEventListener("keydown", handleKeyDown);
163
+ };
164
+ }, []);
165
+
166
+ const hasSearchTerm: boolean = search.trim().length > 0;
167
+ const normalizedSearch: string = search.trim().toLowerCase();
168
+ const totalComponentCount: number = components.length;
169
+ const componentTypeLabel: string = `${props.componentsType.toLowerCase()}${
170
+ totalComponentCount === 1 ? "" : "s"
171
+ }`;
172
+ const suggestedCategories: Array<ComponentCategory> = categories
173
+ .filter((category: ComponentCategory) => {
174
+ return components.some((componentMetadata: ComponentMetadata) => {
175
+ return componentMetadata.category === category.name;
176
+ });
177
+ })
178
+ .slice(0, 4);
179
+
180
+ const renderHighlightedText: (
181
+ text: string,
182
+ markClassName?: string,
183
+ ) => React.ReactNode = (
184
+ text: string,
185
+ markClassName?: string,
186
+ ): React.ReactNode => {
187
+ if (!hasSearchTerm) {
188
+ return text;
189
+ }
190
+
191
+ const highlightedParts: Array<string> = text.split(
192
+ new RegExp(`(${escapeRegExp(search.trim())})`, "ig"),
193
+ );
194
+
195
+ return (
196
+ <>
197
+ {highlightedParts.map((part: string, index: number) => {
198
+ if (part.toLowerCase() === normalizedSearch) {
199
+ return (
200
+ <mark
201
+ key={`${part}-${index}`}
202
+ className={
203
+ markClassName || "rounded bg-amber-100 px-0.5 text-current"
204
+ }
205
+ >
206
+ {part}
207
+ </mark>
208
+ );
209
+ }
210
+
211
+ return (
212
+ <React.Fragment key={`${part}-${index}`}>{part}</React.Fragment>
213
+ );
214
+ })}
215
+ </>
216
+ );
217
+ };
78
218
 
79
219
  return (
80
220
  <SideOver
@@ -93,31 +233,151 @@ const ComponentsModal: FunctionComponent<ComponentProps> = (
93
233
  <>
94
234
  <div className="flex flex-col h-full">
95
235
  {/* Search box */}
96
- <div className="mt-4 mb-4">
97
- <div className="relative">
98
- <div className="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
99
- <Icon
100
- icon={IconProp.Search}
101
- className="h-4 w-4 text-gray-400"
102
- />
236
+ <div className="mt-4 mb-5">
237
+ <div className="rounded-3xl border border-slate-200 bg-gradient-to-br from-white via-indigo-50 to-slate-50 p-3 shadow-sm">
238
+ <div className="mb-3 flex items-start justify-between gap-3">
239
+ <div className="min-w-0">
240
+ <label
241
+ htmlFor="workflow-component-search"
242
+ className="block text-xs font-semibold uppercase tracking-wide text-slate-500"
243
+ >
244
+ Search {componentTypeLabel}
245
+ </label>
246
+ <p className="mt-1 text-sm text-slate-600">
247
+ {hasSearchTerm
248
+ ? "Showing the closest matches first across title, description, and category."
249
+ : `Find the right ${props.componentsType.toLowerCase()} by name, category, or the job you need it to do.`}
250
+ </p>
251
+ </div>
252
+ <div className="inline-flex flex-shrink-0 items-center rounded-full bg-white/90 px-3 py-1 text-xs font-semibold text-slate-500 ring-1 ring-slate-200">
253
+ {hasSearchTerm
254
+ ? `${componentsToShow.length} match${
255
+ componentsToShow.length === 1 ? "" : "es"
256
+ }`
257
+ : `${totalComponentCount} available`}
258
+ </div>
103
259
  </div>
104
- <div className="pl-9">
105
- <Input
106
- placeholder={`Search ${props.componentsType.toLowerCase()}s...`}
107
- onChange={(text: string) => {
108
- setIsSearching(true);
109
- setSearch(text);
110
- }}
111
- />
260
+
261
+ <div className="relative flex items-center gap-3 rounded-2xl border border-slate-200 bg-white/90 px-3 py-3 shadow-sm transition-all duration-200 hover:border-slate-300 focus-within:border-indigo-500 focus-within:ring-4 focus-within:ring-indigo-100">
262
+ <div className="flex h-11 w-11 flex-shrink-0 items-center justify-center rounded-2xl bg-gradient-to-br from-white via-indigo-50 to-sky-100 text-indigo-600 ring-1 ring-indigo-100 shadow-sm">
263
+ <Icon icon={IconProp.Search} className="h-4 w-4" />
264
+ </div>
265
+ <div className="min-w-0 flex-1">
266
+ <input
267
+ id="workflow-component-search"
268
+ ref={searchInputRef}
269
+ type="text"
270
+ value={search}
271
+ placeholder={`Search ${componentTypeLabel} by name, description, or category`}
272
+ autoComplete="off"
273
+ className="block w-full border-0 bg-transparent p-0 text-base font-semibold text-slate-900 placeholder:text-slate-400 focus:outline-none focus:ring-0"
274
+ onChange={(event: React.ChangeEvent<HTMLInputElement>) => {
275
+ setSearch(event.target.value);
276
+ }}
277
+ onKeyDown={(
278
+ event: React.KeyboardEvent<HTMLInputElement>,
279
+ ) => {
280
+ if (event.key === "Escape" && hasSearchTerm) {
281
+ setSearch("");
282
+ searchInputRef.current?.focus();
283
+ }
284
+ }}
285
+ />
286
+ <div className="mt-1 flex flex-wrap items-center gap-2 text-xs text-slate-500">
287
+ <span>
288
+ {hasSearchTerm
289
+ ? `Showing ${componentsToShow.length} of ${totalComponentCount} ${componentTypeLabel}.`
290
+ : "Searches title, description, and category."}
291
+ </span>
292
+ {!hasSearchTerm && (
293
+ <span className="hidden items-center gap-1 rounded-full bg-slate-100 px-2 py-1 font-medium text-slate-500 sm:inline-flex">
294
+ <kbd className="rounded bg-white px-1.5 py-0.5 text-[10px] font-semibold text-slate-500 ring-1 ring-slate-200">
295
+ /
296
+ </kbd>
297
+ Quick focus
298
+ </span>
299
+ )}
300
+ {hasSearchTerm && (
301
+ <span className="hidden items-center gap-1 rounded-full bg-indigo-50 px-2 py-1 font-medium text-indigo-600 sm:inline-flex">
302
+ <kbd className="rounded bg-white px-1.5 py-0.5 text-[10px] font-semibold text-indigo-600 ring-1 ring-indigo-100">
303
+ Esc
304
+ </kbd>
305
+ Clear search
306
+ </span>
307
+ )}
308
+ </div>
309
+ </div>
310
+
311
+ {hasSearchTerm && (
312
+ <div className="flex flex-shrink-0 items-center gap-2">
313
+ <button
314
+ type="button"
315
+ className="inline-flex items-center gap-1 rounded-full bg-slate-900 px-3 py-1.5 text-xs font-medium text-white shadow-sm transition-colors duration-150 hover:bg-slate-700"
316
+ onClick={() => {
317
+ setSearch("");
318
+ searchInputRef.current?.focus();
319
+ }}
320
+ >
321
+ <Icon icon={IconProp.Close} className="h-3 w-3" />
322
+ Clear
323
+ </button>
324
+ </div>
325
+ )}
112
326
  </div>
327
+
328
+ {suggestedCategories.length > 0 && (
329
+ <div className="mt-3 flex flex-wrap items-center gap-2">
330
+ <span className="text-xs font-medium text-slate-500">
331
+ Quick filters:
332
+ </span>
333
+ {suggestedCategories.map((category: ComponentCategory) => {
334
+ const isActive: boolean =
335
+ normalizedSearch === category.name.toLowerCase();
336
+
337
+ return (
338
+ <button
339
+ key={category.name}
340
+ type="button"
341
+ onClick={() => {
342
+ setSearch(category.name);
343
+ searchInputRef.current?.focus();
344
+ }}
345
+ className={`inline-flex items-center gap-1 rounded-full border px-3 py-1.5 text-xs font-medium transition-colors duration-150 ${
346
+ isActive
347
+ ? "border-indigo-200 bg-indigo-50 text-indigo-700"
348
+ : "border-slate-200 bg-white text-slate-600 hover:border-slate-300 hover:bg-slate-50"
349
+ }`}
350
+ >
351
+ <Icon icon={category.icon} className="h-3 w-3" />
352
+ {category.name}
353
+ </button>
354
+ );
355
+ })}
356
+ </div>
357
+ )}
113
358
  </div>
114
359
  </div>
115
360
 
116
361
  <div className="overflow-y-auto overflow-x-hidden flex-1">
117
362
  {!componentsToShow ||
118
363
  (componentsToShow.length === 0 && (
119
- <div className="w-full flex justify-center mt-20 px-4">
120
- <ErrorMessage message="No components that match your search. If you are looking for an integration that does not exist currently - you can use Custom Code or API component to build anything you like." />
364
+ <div className="mt-20 flex w-full flex-col items-center justify-center gap-4 px-4">
365
+ <div className="max-w-2xl">
366
+ <ErrorMessage message="No components that match your search. If you are looking for an integration that does not exist currently - you can use Custom Code or API component to build anything you like." />
367
+ </div>
368
+ {hasSearchTerm && (
369
+ <button
370
+ type="button"
371
+ className="inline-flex items-center gap-2 rounded-full border border-slate-200 bg-white px-4 py-2 text-sm font-medium text-slate-600 shadow-sm transition-colors duration-150 hover:bg-slate-50 hover:text-slate-800"
372
+ onClick={() => {
373
+ setSearch("");
374
+ searchInputRef.current?.focus();
375
+ }}
376
+ >
377
+ <Icon icon={IconProp.Close} className="h-3.5 w-3.5" />
378
+ Reset search
379
+ </button>
380
+ )}
121
381
  </div>
122
382
  ))}
123
383
 
@@ -223,17 +483,41 @@ const ComponentsModal: FunctionComponent<ComponentProps> = (
223
483
 
224
484
  {/* Text */}
225
485
  <div style={{ minWidth: 0, flex: 1 }}>
226
- <p
227
- style={{
228
- fontSize: "0.8125rem",
229
- fontWeight: 600,
230
- color: isSelected ? "#4338ca" : "#1e293b",
231
- margin: 0,
232
- lineHeight: "1.25rem",
233
- }}
234
- >
235
- {componentMetadata.title}
236
- </p>
486
+ <div className="flex items-start justify-between gap-2">
487
+ <p
488
+ style={{
489
+ fontSize: "0.8125rem",
490
+ fontWeight: 600,
491
+ color: isSelected ? "#4338ca" : "#1e293b",
492
+ margin: 0,
493
+ lineHeight: "1.25rem",
494
+ }}
495
+ >
496
+ {renderHighlightedText(
497
+ componentMetadata.title,
498
+ isSelected
499
+ ? "rounded bg-white/80 px-0.5 text-current"
500
+ : "rounded bg-amber-100 px-0.5 text-current",
501
+ )}
502
+ </p>
503
+
504
+ {hasSearchTerm && (
505
+ <span
506
+ className={`mt-0.5 inline-flex flex-shrink-0 rounded-full px-2 py-0.5 text-[11px] font-medium ${
507
+ isSelected
508
+ ? "bg-white/80 text-indigo-700"
509
+ : "bg-slate-100 text-slate-500"
510
+ }`}
511
+ >
512
+ {renderHighlightedText(
513
+ componentMetadata.category,
514
+ isSelected
515
+ ? "rounded bg-indigo-100 px-0.5 text-current"
516
+ : "rounded bg-white px-0.5 text-current",
517
+ )}
518
+ </span>
519
+ )}
520
+ </div>
237
521
  <p
238
522
  style={{
239
523
  fontSize: "0.75rem",
@@ -247,7 +531,12 @@ const ComponentsModal: FunctionComponent<ComponentProps> = (
247
531
  overflow: "hidden",
248
532
  }}
249
533
  >
250
- {componentMetadata.description}
534
+ {renderHighlightedText(
535
+ componentMetadata.description,
536
+ isSelected
537
+ ? "rounded bg-white/80 px-0.5 text-current"
538
+ : "rounded bg-amber-100 px-0.5 text-current",
539
+ )}
251
540
  </p>
252
541
  </div>
253
542
 
@@ -231,6 +231,7 @@ abstract class Navigation {
231
231
 
232
232
  if (options?.forceNavigate && to instanceof Route) {
233
233
  window.location.href = finalUrl;
234
+ return;
234
235
  }
235
236
 
236
237
  if (this.navigateHook && to instanceof Route && !this.isOnThisPage(to)) {
@@ -180,6 +180,31 @@ function readEnvFile(pathToFile) {
180
180
  return env;
181
181
  }
182
182
 
183
+ function resolvePackageRoot(packageName) {
184
+ const resolutionPaths = [
185
+ process.cwd(),
186
+ __dirname,
187
+ path.resolve(__dirname, '..'),
188
+ path.resolve(__dirname, '../..'),
189
+ ];
190
+
191
+ for (const resolutionPath of resolutionPaths) {
192
+ try {
193
+ const packageJsonPath = require.resolve(`${packageName}/package.json`, {
194
+ paths: [resolutionPath],
195
+ });
196
+
197
+ return path.dirname(packageJsonPath);
198
+ } catch (error) {
199
+ continue;
200
+ }
201
+ }
202
+
203
+ throw new Error(
204
+ `Unable to locate ${packageName} package for esbuild alias resolution.`,
205
+ );
206
+ }
207
+
183
208
  /**
184
209
  * Create esbuild configuration for a service
185
210
  * @param {Object} options - Configuration options
@@ -204,6 +229,7 @@ function createConfig(options) {
204
229
 
205
230
  const isDev = process.env.NODE_ENV !== 'production';
206
231
  const isAnalyze = process.env.analyze === 'true';
232
+ const reactRoot = resolvePackageRoot('react');
207
233
 
208
234
  return {
209
235
  entryPoints: [entryPoint],
@@ -223,7 +249,9 @@ function createConfig(options) {
223
249
  },
224
250
  external: ['react-native-sqlite-storage', ...additionalExternal],
225
251
  alias: {
226
- 'react': path.resolve('./node_modules/react'),
252
+ 'react': reactRoot,
253
+ 'react/jsx-runtime': path.join(reactRoot, 'jsx-runtime.js'),
254
+ 'react/jsx-dev-runtime': path.join(reactRoot, 'jsx-dev-runtime.js'),
227
255
  ...additionalAlias,
228
256
  },
229
257
  plugins: [createMermaidPlugin(), createRefractorCompatibilityPlugin(), createCSSPlugin(), createFileLoaderPlugin()],
@@ -30,6 +30,7 @@ import IncidentStateService from "./IncidentStateService";
30
30
  import IncidentStateTimelineService from "./IncidentStateTimelineService";
31
31
  //Labels.
32
32
  import LabelService from "./LabelService";
33
+ import KubernetesClusterService from "./KubernetesClusterService";
33
34
  import LlmProviderService from "./LlmProviderService";
34
35
  import LogService from "./LogService";
35
36
  import MailService from "./MailService";
@@ -234,6 +235,7 @@ const services = [
234
235
  IncidentStateTimelineService,
235
236
  IncidentFeedService,
236
237
  LabelService,
238
+ KubernetesClusterService,
237
239
  LlmProviderService,
238
240
  MailService,
239
241
  MonitorCustomFieldService,
@@ -1 +1 @@
1
- {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../Server/Services/Index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../Server/Services/Index.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAG9D,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,WAAW;AACX,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,4BAA4B,MAAM,+BAA+B,CAAC;AACzE,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,6BAA6B,MAAM,iCAAiC,CAAC;AAC5E,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,YAAY;AACZ,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,YAAY;AACZ,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,SAAS;AACT,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D,WAAW;AACX,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,6CAA6C,MAAM,iDAAiD,CAAC;AAC5G,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,yCAAyC,MAAM,6CAA6C,CAAC;AACpG,OAAO,yCAAyC,MAAM,6CAA6C,CAAC;AACpG,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,2CAA2C,MAAM,+CAA+C,CAAC;AACxG,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,wCAAwC,MAAM,4CAA4C,CAAC;AAClG,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,eAAe;AACf,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,6BAA6B,MAAM,iCAAiC,CAAC;AAC5E,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,uBAAuB;AACvB,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,sCAAsC,MAAM,0CAA0C,CAAC;AAC9F,OAAO,uCAAuC,MAAM,2CAA2C,CAAC;AAChG,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,wBAAwB;AACxB,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,wCAAwC,MAAM,4CAA4C,CAAC;AAClG,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,kBAAkB;AAClB,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,6BAA6B,MAAM,iCAAiC,CAAC;AAC5E,OAAO,qCAAqC,MAAM,yCAAyC,CAAC;AAC5F,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,yCAAyC,MAAM,6CAA6C,CAAC;AACpG,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,cAAc;AACd,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,+CAA+C,MAAM,mDAAmD,CAAC;AAChH,OAAO,yDAAyD,MAAM,6DAA6D,CAAC;AACpI,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO;AACP,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AACjE,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AACxE,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,6BAA6B,MAAM,iCAAiC,CAAC;AAC5E,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,aAAa;AACb,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,wBAAwB,MAAM,2BAA2B,CAAC;AAEjE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,4CAA4C,MAAM,gDAAgD,CAAC;AAC1G,OAAO,4CAA4C,MAAM,gDAAgD,CAAC;AAE1G,iBAAiB;AACjB,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAElE,wBAAwB;AACxB,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAElF,2BAA2B;AAC3B,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,0BAA0B,MAAM,8BAA8B,CAAC;AACtE,OAAO,kCAAkC,MAAM,sCAAsC,CAAC;AACtF,OAAO,4BAA4B,MAAM,gCAAgC,CAAC;AAC1E,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,sBAAsB,MAAM,0BAA0B,CAAC;AAC9D,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAExD,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,6BAA6B,MAAM,iCAAiC,CAAC;AAC5E,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAChE,OAAO,gCAAgC,MAAM,oCAAoC,CAAC;AAClF,OAAO,+BAA+B,MAAM,mCAAmC,CAAC;AAChF,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AACxF,OAAO,mCAAmC,MAAM,uCAAuC,CAAC;AAExF,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAElE,MAAM,QAAQ,GAAuB;IACnC,8BAA8B;IAC9B,sBAAsB;IACtB,gBAAgB;IAChB,wBAAwB;IACxB,2BAA2B;IAE3B,eAAe;IACf,mBAAmB;IACnB,8CAA8C;IAC9C,kBAAkB;IAClB,uBAAuB;IACvB,aAAa;IAEb,qBAAqB;IACrB,4BAA4B;IAC5B,cAAc;IAEd,cAAc;IACd,WAAW;IAEX,oBAAoB;IACpB,aAAa;IAEb,eAAe;IACf,6BAA6B;IAE7B,WAAW;IAEX,2BAA2B;IAC3B,yBAAyB;IAEzB,0BAA0B;IAC1B,2BAA2B;IAC3B,wBAAwB;IACxB,wBAAwB;IACxB,mBAAmB;IACnB,qBAAqB;IACrB,yBAAyB;IACzB,eAAe;IACf,uBAAuB;IACvB,oBAAoB;IACpB,4BAA4B;IAC5B,mBAAmB;IAEnB,YAAY;IACZ,wBAAwB;IACxB,kBAAkB;IAElB,WAAW;IACX,yBAAyB;IACzB,uBAAuB;IACvB,uBAAuB;IACvB,mBAAmB;IACnB,cAAc;IACd,oBAAoB;IACpB,4BAA4B;IAC5B,oBAAoB;IACpB,kBAAkB;IAElB,mBAAmB;IAEnB,kCAAkC;IAClC,qCAAqC;IACrC,yCAAyC;IACzC,yCAAyC;IACzC,mCAAmC;IACnC,2CAA2C;IAC3C,uBAAuB;IACvB,mCAAmC;IAEnC,cAAc;IACd,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;IACrB,6BAA6B;IAC7B,iBAAiB;IAEjB,sCAAsC;IACtC,uCAAuC;IACvC,oCAAoC;IACpC,oCAAoC;IACpC,qCAAqC;IACrC,2BAA2B;IAC3B,gCAAgC;IAChC,wCAAwC;IACxC,+BAA+B;IAE/B,gBAAgB;IAChB,aAAa;IACb,kBAAkB;IAClB,UAAU;IAEV,6BAA6B;IAC7B,qCAAqC;IACrC,4BAA4B;IAC5B,sBAAsB;IACtB,uBAAuB;IACvB,2BAA2B;IAC3B,sBAAsB;IACtB,2BAA2B;IAC3B,0BAA0B;IAC1B,0BAA0B;IAC1B,4BAA4B;IAC5B,mCAAmC;IACnC,yBAAyB;IACzB,iBAAiB;IACjB,oBAAoB;IACpB,2BAA2B;IAC3B,+CAA+C;IAC/C,yDAAyD;IACzD,yCAAyC;IAEzC,iBAAiB;IACjB,4BAA4B;IAC5B,qBAAqB;IACrB,4BAA4B;IAC5B,WAAW;IAEX,WAAW;IACX,kBAAkB;IAClB,eAAe;IACf,gBAAgB;IAChB,2BAA2B;IAC3B,8BAA8B;IAC9B,oBAAoB;IACpB,4BAA4B;IAC5B,cAAc;IACd,6BAA6B;IAC7B,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IAEnB,kBAAkB;IAClB,eAAe;IACf,wBAAwB;IAExB,wBAAwB;IACxB,mBAAmB;IACnB,2BAA2B;IAC3B,4BAA4B;IAC5B,4BAA4B;IAE5B,+BAA+B;IAC/B,+BAA+B;IAC/B,wCAAwC;IACxC,oCAAoC;IACpC,6CAA6C;IAE7C,mBAAmB;IACnB,2BAA2B;IAC3B,yBAAyB;IAEzB,cAAc;IACd,uBAAuB;IACvB,uBAAuB;IACvB,wBAAwB;IACxB,qBAAqB;IACrB,4BAA4B;IAE5B,yBAAyB;IAEzB,kCAAkC;IAClC,mCAAmC;IACnC,4CAA4C;IAC5C,4CAA4C;IAE5C,iBAAiB;IACjB,YAAY;IACZ,uBAAuB;IACvB,yBAAyB;IACzB,wBAAwB;IACxB,qBAAqB;IACrB,qBAAqB;IACrB,oBAAoB;IACpB,wBAAwB;IACxB,gBAAgB;IAEhB,wBAAwB;IACxB,mBAAmB;IACnB,uBAAuB;IACvB,+BAA+B;IAC/B,yBAAyB;IACzB,4BAA4B;IAC5B,4BAA4B;IAC5B,gCAAgC;IAEhC,2BAA2B;IAC3B,sBAAsB;IACtB,0BAA0B;IAC1B,kCAAkC;IAClC,4BAA4B;IAC5B,gCAAgC;IAChC,+BAA+B;IAC/B,+BAA+B;IAC/B,mCAAmC;IACnC,gCAAgC;IAChC,wBAAwB;IACxB,sBAAsB;IACtB,kBAAkB;IAElB,gBAAgB;IAChB,kBAAkB;IAElB,gCAAgC;IAChC,6BAA6B;IAC7B,uBAAuB;IACvB,gCAAgC;IAChC,+BAA+B;IAC/B,mCAAmC;IAEnC,qBAAqB;IACrB,wBAAwB;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAE1B;IACF,UAAU;IACV,WAAW;IACX,aAAa;IACb,wBAAwB;IACxB,iBAAiB;IACjB,cAAc;IACd,oBAAoB;CACrB,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -3,7 +3,7 @@ import CommonAPI from "../API/Index";
3
3
  import { AppVersion, IsBillingEnabled, getFrontendEnvVars, } from "../EnvironmentConfig";
4
4
  import LocalCache from "../Infrastructure/LocalCache";
5
5
  import "./Environment";
6
- import Express, { ExpressJson, ExpressRaw, ExpressStatic, ExpressUrlEncoded, } from "./Express";
6
+ import Express, { ExpressJson, ExpressRaw, ExpressStatic, ExpressUrlEncoded, headerValueToString, } from "./Express";
7
7
  import logger from "./Logger";
8
8
  import "./Process";
9
9
  import Response from "./Response";
@@ -77,22 +77,21 @@ app.use((req, _res, next) => {
77
77
  next();
78
78
  });
79
79
  /*
80
- * Parse protobuf (binary) bodies for OTLP ingestion before JSON/gzip middleware.
81
- * The .NET OpenTelemetry SDK (and others) send telemetry data as application/x-protobuf.
82
- * Without this, express.json() skips protobuf requests and req.body remains undefined.
80
+ * Parse protobuf (binary) bodies for non-OTLP routes.
81
+ * OTLP HTTP ingestion bypasses the global body parsers and handles raw/gzip
82
+ * payloads in the telemetry router to avoid conflicts with the merged app stack.
83
83
  */
84
84
  const protobufBodyParserMiddleware = ExpressRaw({
85
85
  type: ["application/x-protobuf", "application/protobuf"],
86
86
  limit: "50mb",
87
87
  });
88
88
  app.use((req, res, next) => {
89
- const contentType = req.headers["content-type"];
90
- if (contentType &&
91
- (contentType.includes("application/x-protobuf") ||
92
- contentType.includes("application/protobuf"))) {
93
- protobufBodyParserMiddleware(req, res, next);
89
+ if (req.path.includes("/otlp/v1/")) {
90
+ return next();
94
91
  }
95
- else if (req.headers["content-encoding"] === "gzip") {
92
+ const contentType = headerValueToString(req.headers["content-type"]);
93
+ const contentEncoding = headerValueToString(req.headers["content-encoding"]);
94
+ if (contentEncoding === null || contentEncoding === void 0 ? void 0 : contentEncoding.includes("gzip")) {
96
95
  const buffers = [];
97
96
  req.on("data", (chunk) => {
98
97
  buffers.push(chunk);
@@ -109,12 +108,19 @@ app.use((req, res, next) => {
109
108
  });
110
109
  });
111
110
  }
111
+ else if (contentType &&
112
+ (contentType.includes("application/x-protobuf") ||
113
+ contentType.includes("application/protobuf"))) {
114
+ protobufBodyParserMiddleware(req, res, next);
115
+ }
112
116
  else {
113
117
  jsonBodyParserMiddleware(req, res, next);
114
118
  }
115
119
  });
116
120
  app.use((req, res, next) => {
117
- if (req.headers["content-encoding"] === "gzip") {
121
+ var _a;
122
+ if (req.path.includes("/otlp/v1/") ||
123
+ ((_a = headerValueToString(req.headers["content-encoding"])) === null || _a === void 0 ? void 0 : _a.includes("gzip"))) {
118
124
  next();
119
125
  }
120
126
  else {