@oneuptime/common 10.0.19 → 10.0.21

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 (92) hide show
  1. package/Server/API/GitHubAPI.ts +104 -12
  2. package/Server/API/TelemetryAPI.ts +208 -0
  3. package/Server/API/UserCallAPI.ts +29 -0
  4. package/Server/API/UserEmailAPI.ts +29 -0
  5. package/Server/API/UserSmsAPI.ts +29 -0
  6. package/Server/API/UserWhatsAppAPI.ts +29 -0
  7. package/Server/Services/LogAggregationService.ts +251 -0
  8. package/Server/Utils/VM/VMRunner.ts +45 -0
  9. package/Types/Log/LogQueryParser.ts +252 -0
  10. package/Types/Log/LogQueryToFilter.ts +131 -0
  11. package/UI/Components/CopyTextButton/CopyTextButton.tsx +3 -3
  12. package/UI/Components/LogsViewer/LogsViewer.tsx +166 -93
  13. package/UI/Components/LogsViewer/components/ActiveFilterChips.tsx +58 -0
  14. package/UI/Components/LogsViewer/components/FacetSection.tsx +119 -0
  15. package/UI/Components/LogsViewer/components/FacetValueRow.tsx +102 -0
  16. package/UI/Components/LogsViewer/components/HistogramTooltip.tsx +122 -0
  17. package/UI/Components/LogsViewer/components/LiveLogsToggle.tsx +4 -4
  18. package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +22 -26
  19. package/UI/Components/LogsViewer/components/LogSearchBar.tsx +360 -0
  20. package/UI/Components/LogsViewer/components/LogSearchHelp.tsx +128 -0
  21. package/UI/Components/LogsViewer/components/LogSearchSuggestions.tsx +64 -0
  22. package/UI/Components/LogsViewer/components/LogTimeRangePicker.tsx +199 -0
  23. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +172 -0
  24. package/UI/Components/LogsViewer/components/LogsFilterCard.tsx +27 -57
  25. package/UI/Components/LogsViewer/components/LogsHistogram.tsx +268 -0
  26. package/UI/Components/LogsViewer/components/LogsPagination.tsx +12 -10
  27. package/UI/Components/LogsViewer/components/LogsTable.tsx +33 -32
  28. package/UI/Components/LogsViewer/components/LogsViewerToolbar.tsx +16 -18
  29. package/UI/Components/LogsViewer/components/severityColors.ts +31 -0
  30. package/UI/Components/LogsViewer/components/severityTheme.ts +25 -25
  31. package/UI/Components/LogsViewer/types.ts +20 -0
  32. package/build/dist/Server/API/GitHubAPI.js +40 -9
  33. package/build/dist/Server/API/GitHubAPI.js.map +1 -1
  34. package/build/dist/Server/API/TelemetryAPI.js +136 -0
  35. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  36. package/build/dist/Server/API/UserCallAPI.js +17 -0
  37. package/build/dist/Server/API/UserCallAPI.js.map +1 -1
  38. package/build/dist/Server/API/UserEmailAPI.js +17 -0
  39. package/build/dist/Server/API/UserEmailAPI.js.map +1 -1
  40. package/build/dist/Server/API/UserSmsAPI.js +17 -0
  41. package/build/dist/Server/API/UserSmsAPI.js.map +1 -1
  42. package/build/dist/Server/API/UserWhatsAppAPI.js +17 -0
  43. package/build/dist/Server/API/UserWhatsAppAPI.js.map +1 -1
  44. package/build/dist/Server/Services/LogAggregationService.js +163 -0
  45. package/build/dist/Server/Services/LogAggregationService.js.map +1 -0
  46. package/build/dist/Server/Utils/VM/VMRunner.js +31 -0
  47. package/build/dist/Server/Utils/VM/VMRunner.js.map +1 -1
  48. package/build/dist/Types/Log/LogQueryParser.js +200 -0
  49. package/build/dist/Types/Log/LogQueryParser.js.map +1 -0
  50. package/build/dist/Types/Log/LogQueryToFilter.js +96 -0
  51. package/build/dist/Types/Log/LogQueryToFilter.js.map +1 -0
  52. package/build/dist/UI/Components/CopyTextButton/CopyTextButton.js +3 -3
  53. package/build/dist/UI/Components/CopyTextButton/CopyTextButton.js.map +1 -1
  54. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +64 -42
  55. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  56. package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js +24 -0
  57. package/build/dist/UI/Components/LogsViewer/components/ActiveFilterChips.js.map +1 -0
  58. package/build/dist/UI/Components/LogsViewer/components/FacetSection.js +46 -0
  59. package/build/dist/UI/Components/LogsViewer/components/FacetSection.js.map +1 -0
  60. package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js +35 -0
  61. package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js.map +1 -0
  62. package/build/dist/UI/Components/LogsViewer/components/HistogramTooltip.js +64 -0
  63. package/build/dist/UI/Components/LogsViewer/components/HistogramTooltip.js.map +1 -0
  64. package/build/dist/UI/Components/LogsViewer/components/LiveLogsToggle.js +4 -4
  65. package/build/dist/UI/Components/LogsViewer/components/LiveLogsToggle.js.map +1 -1
  66. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js +19 -21
  67. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
  68. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js +230 -0
  69. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js.map +1 -0
  70. package/build/dist/UI/Components/LogsViewer/components/LogSearchHelp.js +84 -0
  71. package/build/dist/UI/Components/LogsViewer/components/LogSearchHelp.js.map +1 -0
  72. package/build/dist/UI/Components/LogsViewer/components/LogSearchSuggestions.js +27 -0
  73. package/build/dist/UI/Components/LogsViewer/components/LogSearchSuggestions.js.map +1 -0
  74. package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js +100 -0
  75. package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js.map +1 -0
  76. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +104 -0
  77. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -0
  78. package/build/dist/UI/Components/LogsViewer/components/LogsFilterCard.js +14 -35
  79. package/build/dist/UI/Components/LogsViewer/components/LogsFilterCard.js.map +1 -1
  80. package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js +127 -0
  81. package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js.map +1 -0
  82. package/build/dist/UI/Components/LogsViewer/components/LogsPagination.js +9 -9
  83. package/build/dist/UI/Components/LogsViewer/components/LogsPagination.js.map +1 -1
  84. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +31 -30
  85. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
  86. package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js +7 -8
  87. package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js.map +1 -1
  88. package/build/dist/UI/Components/LogsViewer/components/severityColors.js +22 -0
  89. package/build/dist/UI/Components/LogsViewer/components/severityColors.js.map +1 -0
  90. package/build/dist/UI/Components/LogsViewer/components/severityTheme.js +25 -25
  91. package/build/dist/UI/Components/LogsViewer/components/severityTheme.js.map +1 -1
  92. package/package.json +1 -1
@@ -0,0 +1,163 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { SQL, Statement } from "../Utils/AnalyticsDatabase/Statement";
11
+ import LogDatabaseService from "./LogService";
12
+ import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
13
+ import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
14
+ export class LogAggregationService {
15
+ static async getHistogram(request) {
16
+ const statement = LogAggregationService.buildHistogramStatement(request);
17
+ const dbResult = await LogDatabaseService.executeQuery(statement);
18
+ const response = await dbResult.json();
19
+ const rows = response.data || [];
20
+ return rows.map((row) => {
21
+ return {
22
+ time: String(row["bucket"] || ""),
23
+ severity: String(row["severityText"] || "Unspecified"),
24
+ count: Number(row["cnt"] || 0),
25
+ };
26
+ });
27
+ }
28
+ static async getFacetValues(request) {
29
+ const statement = LogAggregationService.buildFacetStatement(request);
30
+ const dbResult = await LogDatabaseService.executeQuery(statement);
31
+ const response = await dbResult.json();
32
+ const rows = response.data || [];
33
+ return rows
34
+ .map((row) => {
35
+ return {
36
+ value: String(row["val"] || ""),
37
+ count: Number(row["cnt"] || 0),
38
+ };
39
+ })
40
+ .filter((facet) => {
41
+ return facet.value.length > 0;
42
+ });
43
+ }
44
+ static buildHistogramStatement(request) {
45
+ const intervalSeconds = request.bucketSizeInMinutes * 60;
46
+ const statement = SQL `
47
+ SELECT
48
+ toStartOfInterval(time, INTERVAL ${{
49
+ type: TableColumnType.Number,
50
+ value: intervalSeconds,
51
+ }} SECOND) AS bucket,
52
+ severityText,
53
+ count() AS cnt
54
+ FROM ${LogAggregationService.TABLE_NAME}
55
+ WHERE projectId = ${{
56
+ type: TableColumnType.ObjectID,
57
+ value: request.projectId,
58
+ }}
59
+ AND time >= ${{
60
+ type: TableColumnType.Date,
61
+ value: request.startTime,
62
+ }}
63
+ AND time <= ${{
64
+ type: TableColumnType.Date,
65
+ value: request.endTime,
66
+ }}
67
+ `;
68
+ LogAggregationService.appendCommonFilters(statement, request);
69
+ statement.append(" GROUP BY bucket, severityText ORDER BY bucket ASC");
70
+ return statement;
71
+ }
72
+ static buildFacetStatement(request) {
73
+ var _a;
74
+ const limit = (_a = request.limit) !== null && _a !== void 0 ? _a : LogAggregationService.DEFAULT_FACET_LIMIT;
75
+ const isTopLevelColumn = LogAggregationService.isTopLevelColumn(request.facetKey);
76
+ const escapedKey = LogAggregationService.escapeSingleQuotes(request.facetKey);
77
+ const valueExpression = isTopLevelColumn
78
+ ? `toString(${escapedKey})`
79
+ : `JSONExtractRaw(attributes, '${escapedKey}')`;
80
+ // Build with raw SQL for the expression part, then parameterize WHERE values
81
+ const statement = new Statement();
82
+ statement.append(`SELECT ${valueExpression} AS val, count() AS cnt FROM ${LogAggregationService.TABLE_NAME}`);
83
+ statement.append(SQL ` WHERE projectId = ${{
84
+ type: TableColumnType.ObjectID,
85
+ value: request.projectId,
86
+ }} AND time >= ${{
87
+ type: TableColumnType.Date,
88
+ value: request.startTime,
89
+ }} AND time <= ${{
90
+ type: TableColumnType.Date,
91
+ value: request.endTime,
92
+ }}`);
93
+ if (!isTopLevelColumn) {
94
+ statement.append(` AND JSONHas(attributes, '${escapedKey}') = 1`);
95
+ }
96
+ LogAggregationService.appendCommonFilters(statement, request);
97
+ statement.append(SQL ` GROUP BY val ORDER BY cnt DESC LIMIT ${{
98
+ type: TableColumnType.Number,
99
+ value: limit,
100
+ }}`);
101
+ return statement;
102
+ }
103
+ static appendCommonFilters(statement, request) {
104
+ if (request.serviceIds && request.serviceIds.length > 0) {
105
+ const idStrings = request.serviceIds.map((id) => {
106
+ return `'${id.toString()}'`;
107
+ });
108
+ statement.append(` AND serviceId IN (${idStrings.join(",")})`);
109
+ }
110
+ if (request.severityTexts && request.severityTexts.length > 0) {
111
+ const sevStrings = request.severityTexts.map((s) => {
112
+ return `'${LogAggregationService.escapeSingleQuotes(s)}'`;
113
+ });
114
+ statement.append(` AND severityText IN (${sevStrings.join(",")})`);
115
+ }
116
+ if (request.traceIds && request.traceIds.length > 0) {
117
+ const traceStrings = request.traceIds.map((s) => {
118
+ return `'${LogAggregationService.escapeSingleQuotes(s)}'`;
119
+ });
120
+ statement.append(` AND traceId IN (${traceStrings.join(",")})`);
121
+ }
122
+ if (request.spanIds && request.spanIds.length > 0) {
123
+ const spanStrings = request.spanIds.map((s) => {
124
+ return `'${LogAggregationService.escapeSingleQuotes(s)}'`;
125
+ });
126
+ statement.append(` AND spanId IN (${spanStrings.join(",")})`);
127
+ }
128
+ if (request.bodySearchText && request.bodySearchText.trim().length > 0) {
129
+ statement.append(` AND body ILIKE ${{
130
+ type: TableColumnType.Text,
131
+ value: `%${request.bodySearchText.trim()}%`,
132
+ }}`);
133
+ }
134
+ }
135
+ static isTopLevelColumn(key) {
136
+ const topLevelColumns = new Set([
137
+ "severityText",
138
+ "serviceId",
139
+ "traceId",
140
+ "spanId",
141
+ ]);
142
+ return topLevelColumns.has(key);
143
+ }
144
+ static escapeSingleQuotes(value) {
145
+ return value.replace(/'/g, "\\'");
146
+ }
147
+ }
148
+ LogAggregationService.DEFAULT_FACET_LIMIT = 10;
149
+ LogAggregationService.TABLE_NAME = "LogItem";
150
+ __decorate([
151
+ CaptureSpan(),
152
+ __metadata("design:type", Function),
153
+ __metadata("design:paramtypes", [Object]),
154
+ __metadata("design:returntype", Promise)
155
+ ], LogAggregationService, "getHistogram", null);
156
+ __decorate([
157
+ CaptureSpan(),
158
+ __metadata("design:type", Function),
159
+ __metadata("design:paramtypes", [Object]),
160
+ __metadata("design:returntype", Promise)
161
+ ], LogAggregationService, "getFacetValues", null);
162
+ export default LogAggregationService;
163
+ //# sourceMappingURL=LogAggregationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogAggregationService.js","sourceRoot":"","sources":["../../../../Server/Services/LogAggregationService.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,16 @@ const BLOCKED_SANDBOX_PROPERTIES = new Set([
25
25
  "__proto__",
26
26
  "prototype",
27
27
  "mainModule",
28
+ /*
29
+ * Block Playwright methods that can spawn processes or access internals.
30
+ * Prevents RCE via browser.browserType().launch({executablePath:"/bin/sh"})
31
+ * and traversal via page.context().browser().browserType().launch(...)
32
+ */
33
+ "browserType", // Browser → BrowserType (which has launch/connect)
34
+ "launch", // BrowserType.launch() spawns a child process
35
+ "launchPersistentContext", // BrowserType.launchPersistentContext() spawns a child process
36
+ "connectOverCDP", // BrowserType.connectOverCDP() connects via Chrome DevTools Protocol
37
+ "newCDPSession", // BrowserContext/Page.newCDPSession() opens raw CDP sessions
28
38
  ]);
29
39
  /**
30
40
  * Wraps a host-realm value in a Proxy that blocks prototype-chain traversal.
@@ -91,6 +101,17 @@ function createSandboxProxy(value, cache, parentObj) {
91
101
  return !(typeof k === "string" && BLOCKED_SANDBOX_PROPERTIES.has(k));
92
102
  });
93
103
  },
104
+ getOwnPropertyDescriptor(fnTarget, prop) {
105
+ if (typeof prop === "string" &&
106
+ BLOCKED_SANDBOX_PROPERTIES.has(prop)) {
107
+ return undefined;
108
+ }
109
+ const desc = Reflect.getOwnPropertyDescriptor(fnTarget, prop);
110
+ if (desc && "value" in desc) {
111
+ desc.value = createSandboxProxy(desc.value, cache, fnTarget);
112
+ }
113
+ return desc;
114
+ },
94
115
  });
95
116
  return fnProxy;
96
117
  }
@@ -126,6 +147,16 @@ function createSandboxProxy(value, cache, parentObj) {
126
147
  return !(typeof k === "string" && BLOCKED_SANDBOX_PROPERTIES.has(k));
127
148
  });
128
149
  },
150
+ getOwnPropertyDescriptor(objTarget, prop) {
151
+ if (typeof prop === "string" && BLOCKED_SANDBOX_PROPERTIES.has(prop)) {
152
+ return undefined;
153
+ }
154
+ const desc = Reflect.getOwnPropertyDescriptor(objTarget, prop);
155
+ if (desc && "value" in desc) {
156
+ desc.value = createSandboxProxy(desc.value, cache, objTarget);
157
+ }
158
+ return desc;
159
+ },
129
160
  });
130
161
  cache.set(target, objProxy);
131
162
  return objProxy;
@@ -1 +1 @@
1
- {"version":3,"file":"VMRunner.js","sourceRoot":"","sources":["../../../../../Server/Utils/VM/VMRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VMRunner.js","sourceRoot":"","sources":["../../../../../Server/Utils/VM/VMRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * LogQueryParser
3
+ *
4
+ * Parses a Datadog-style log search query string into structured filter tokens.
5
+ *
6
+ * Supported syntax:
7
+ * - Free text: `connection refused` → body ILIKE '%connection refused%'
8
+ * - Quoted phrase: `"connection refused"` → body ILIKE '%connection refused%'
9
+ * - Field-specific: `severity:error` → severityText = 'error'
10
+ * - Attribute access: `@http.status_code:500` → attributes.http.status_code = '500'
11
+ * - Negation (prefix): `-severity:debug` → severityText != 'debug'
12
+ * - Wildcard: `service:api-*` → serviceId ILIKE 'api-%'
13
+ * - Numeric range: `@duration:>1000` → attributes.duration > 1000
14
+ * - Boolean: `severity:error AND service:api` (AND is default between tokens)
15
+ *
16
+ * Produces an array of ParsedToken objects consumed by the search bar and query builder.
17
+ */
18
+ export var TokenType;
19
+ (function (TokenType) {
20
+ TokenType["FreeText"] = "FreeText";
21
+ TokenType["FieldFilter"] = "FieldFilter";
22
+ TokenType["AttributeFilter"] = "AttributeFilter";
23
+ })(TokenType || (TokenType = {}));
24
+ export var FilterOperator;
25
+ (function (FilterOperator) {
26
+ FilterOperator["Equals"] = "Equals";
27
+ FilterOperator["NotEquals"] = "NotEquals";
28
+ FilterOperator["Contains"] = "Contains";
29
+ FilterOperator["NotContains"] = "NotContains";
30
+ FilterOperator["GreaterThan"] = "GreaterThan";
31
+ FilterOperator["GreaterThanOrEqual"] = "GreaterThanOrEqual";
32
+ FilterOperator["LessThan"] = "LessThan";
33
+ FilterOperator["LessThanOrEqual"] = "LessThanOrEqual";
34
+ FilterOperator["Wildcard"] = "Wildcard";
35
+ })(FilterOperator || (FilterOperator = {}));
36
+ const FIELD_ALIASES = {
37
+ severity: "severityText",
38
+ level: "severityText",
39
+ service: "serviceId",
40
+ trace: "traceId",
41
+ span: "spanId",
42
+ message: "body",
43
+ msg: "body",
44
+ log: "body",
45
+ };
46
+ const BOOLEAN_KEYWORDS = new Set(["AND", "OR", "NOT"]);
47
+ function resolveFieldName(raw) {
48
+ const lower = raw.toLowerCase();
49
+ return FIELD_ALIASES[lower] || raw;
50
+ }
51
+ function detectOperator(value) {
52
+ if (value.startsWith(">=")) {
53
+ return {
54
+ operator: FilterOperator.GreaterThanOrEqual,
55
+ cleanValue: value.slice(2),
56
+ };
57
+ }
58
+ if (value.startsWith("<=")) {
59
+ return {
60
+ operator: FilterOperator.LessThanOrEqual,
61
+ cleanValue: value.slice(2),
62
+ };
63
+ }
64
+ if (value.startsWith(">")) {
65
+ return {
66
+ operator: FilterOperator.GreaterThan,
67
+ cleanValue: value.slice(1),
68
+ };
69
+ }
70
+ if (value.startsWith("<")) {
71
+ return {
72
+ operator: FilterOperator.LessThan,
73
+ cleanValue: value.slice(1),
74
+ };
75
+ }
76
+ if (value.includes("*")) {
77
+ return {
78
+ operator: FilterOperator.Wildcard,
79
+ cleanValue: value,
80
+ };
81
+ }
82
+ return {
83
+ operator: FilterOperator.Equals,
84
+ cleanValue: value,
85
+ };
86
+ }
87
+ function tokenizeRawInput(input) {
88
+ const tokens = [];
89
+ let current = "";
90
+ let inQuotes = false;
91
+ for (let i = 0; i < input.length; i++) {
92
+ const char = input[i];
93
+ if (char === '"') {
94
+ inQuotes = !inQuotes;
95
+ current += char;
96
+ continue;
97
+ }
98
+ if (char === " " && !inQuotes) {
99
+ if (current.length > 0) {
100
+ tokens.push(current);
101
+ current = "";
102
+ }
103
+ continue;
104
+ }
105
+ current += char;
106
+ }
107
+ if (current.length > 0) {
108
+ tokens.push(current);
109
+ }
110
+ return tokens;
111
+ }
112
+ function stripQuotes(value) {
113
+ if (value.startsWith('"') && value.endsWith('"') && value.length >= 2) {
114
+ return value.slice(1, -1);
115
+ }
116
+ return value;
117
+ }
118
+ function parseFieldToken(raw) {
119
+ let workingRaw = raw;
120
+ let negated = false;
121
+ if (workingRaw.startsWith("-")) {
122
+ negated = true;
123
+ workingRaw = workingRaw.slice(1);
124
+ }
125
+ const isAttribute = workingRaw.startsWith("@");
126
+ if (isAttribute) {
127
+ workingRaw = workingRaw.slice(1);
128
+ }
129
+ const colonIndex = workingRaw.indexOf(":");
130
+ if (colonIndex === -1) {
131
+ return {
132
+ type: TokenType.FreeText,
133
+ operator: FilterOperator.Contains,
134
+ value: stripQuotes(workingRaw),
135
+ negated,
136
+ raw,
137
+ };
138
+ }
139
+ const rawField = workingRaw.slice(0, colonIndex);
140
+ const rawValue = stripQuotes(workingRaw.slice(colonIndex + 1));
141
+ const { operator, cleanValue } = detectOperator(rawValue);
142
+ const field = isAttribute ? rawField : resolveFieldName(rawField);
143
+ return {
144
+ type: isAttribute ? TokenType.AttributeFilter : TokenType.FieldFilter,
145
+ field,
146
+ operator: negated && operator === FilterOperator.Equals
147
+ ? FilterOperator.NotEquals
148
+ : operator,
149
+ value: cleanValue,
150
+ negated,
151
+ raw,
152
+ };
153
+ }
154
+ export function parseLogQuery(query) {
155
+ const trimmed = query.trim();
156
+ if (trimmed.length === 0) {
157
+ return [];
158
+ }
159
+ const rawTokens = tokenizeRawInput(trimmed);
160
+ const tokens = [];
161
+ const freeTextParts = [];
162
+ const flushFreeText = () => {
163
+ if (freeTextParts.length > 0) {
164
+ const combined = freeTextParts.join(" ");
165
+ tokens.push({
166
+ type: TokenType.FreeText,
167
+ operator: FilterOperator.Contains,
168
+ value: combined,
169
+ negated: false,
170
+ raw: combined,
171
+ });
172
+ freeTextParts.length = 0;
173
+ }
174
+ };
175
+ for (const rawToken of rawTokens) {
176
+ if (BOOLEAN_KEYWORDS.has(rawToken)) {
177
+ continue;
178
+ }
179
+ const hasColon = rawToken.includes(":") && !rawToken.startsWith('"');
180
+ const isNegatedField = rawToken.startsWith("-") && rawToken.slice(1).includes(":");
181
+ if (hasColon || isNegatedField) {
182
+ flushFreeText();
183
+ tokens.push(parseFieldToken(rawToken));
184
+ }
185
+ else {
186
+ freeTextParts.push(stripQuotes(rawToken));
187
+ }
188
+ }
189
+ flushFreeText();
190
+ return tokens;
191
+ }
192
+ export function tokensToDisplayString(tokens) {
193
+ return tokens
194
+ .map((t) => {
195
+ return t.raw;
196
+ })
197
+ .join(" ");
198
+ }
199
+ export default parseLogQuery;
200
+ //# sourceMappingURL=LogQueryParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogQueryParser.js","sourceRoot":"","sources":["../../../../Types/Log/LogQueryParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Converts parsed log query tokens into a Query<Log> object compatible with
3
+ * the AnalyticsDatabaseService query system.
4
+ */
5
+ import { TokenType, FilterOperator, parseLogQuery, } from "./LogQueryParser";
6
+ import Search from "../BaseDatabase/Search";
7
+ import GreaterThan from "../BaseDatabase/GreaterThan";
8
+ import GreaterThanOrEqual from "../BaseDatabase/GreaterThanOrEqual";
9
+ import LessThan from "../BaseDatabase/LessThan";
10
+ import LessThanOrEqual from "../BaseDatabase/LessThanOrEqual";
11
+ const TOP_LEVEL_FIELDS = new Set([
12
+ "severityText",
13
+ "serviceId",
14
+ "traceId",
15
+ "spanId",
16
+ "body",
17
+ ]);
18
+ function applyFieldFilter(filter, token) {
19
+ if (!token.field) {
20
+ return;
21
+ }
22
+ const value = token.value;
23
+ if (TOP_LEVEL_FIELDS.has(token.field)) {
24
+ applyTopLevelFilter(filter, token.field, value, token.operator);
25
+ }
26
+ else {
27
+ applyAttributeFilter(filter, token.field, value, token.operator);
28
+ }
29
+ }
30
+ function applyTopLevelFilter(filter, field, value, operator) {
31
+ switch (operator) {
32
+ case FilterOperator.Contains:
33
+ case FilterOperator.Wildcard:
34
+ filter[field] = new Search(value.replace(/\*/g, ""));
35
+ break;
36
+ case FilterOperator.GreaterThan:
37
+ filter[field] = new GreaterThan(parseNumericOrString(value));
38
+ break;
39
+ case FilterOperator.GreaterThanOrEqual:
40
+ filter[field] = new GreaterThanOrEqual(parseNumericOrString(value));
41
+ break;
42
+ case FilterOperator.LessThan:
43
+ filter[field] = new LessThan(parseNumericOrString(value));
44
+ break;
45
+ case FilterOperator.LessThanOrEqual:
46
+ filter[field] = new LessThanOrEqual(parseNumericOrString(value));
47
+ break;
48
+ case FilterOperator.Equals:
49
+ case FilterOperator.NotEquals:
50
+ default:
51
+ filter[field] = value;
52
+ break;
53
+ }
54
+ }
55
+ function applyAttributeFilter(filter, field, value, _operator) {
56
+ if (!filter.attributes) {
57
+ filter.attributes = {};
58
+ }
59
+ filter.attributes[field] = value;
60
+ }
61
+ function applyFreeTextFilter(filter, token) {
62
+ if (filter.body && filter.body instanceof Search) {
63
+ const existing = filter.body.toString();
64
+ filter.body = new Search(`${existing} ${token.value}`);
65
+ }
66
+ else if (filter.body && typeof filter.body === "string") {
67
+ filter.body = new Search(`${filter.body} ${token.value}`);
68
+ }
69
+ else {
70
+ filter.body = new Search(token.value);
71
+ }
72
+ }
73
+ function parseNumericOrString(value) {
74
+ const num = Number(value);
75
+ return isNaN(num) ? value : num;
76
+ }
77
+ export function queryStringToFilter(queryString) {
78
+ const tokens = parseLogQuery(queryString);
79
+ const filter = {};
80
+ for (const token of tokens) {
81
+ switch (token.type) {
82
+ case TokenType.FreeText:
83
+ applyFreeTextFilter(filter, token);
84
+ break;
85
+ case TokenType.FieldFilter:
86
+ applyFieldFilter(filter, token);
87
+ break;
88
+ case TokenType.AttributeFilter:
89
+ applyFieldFilter(filter, token);
90
+ break;
91
+ }
92
+ }
93
+ return filter;
94
+ }
95
+ export default queryStringToFilter;
96
+ //# sourceMappingURL=LogQueryToFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LogQueryToFilter.js","sourceRoot":"","sources":["../../../../Types/Log/LogQueryToFilter.ts"],"names":[],"mappings":"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"}
@@ -28,11 +28,11 @@ const CopyTextButton = (props) => {
28
28
  md: "w-4.5 h-4.5",
29
29
  };
30
30
  const variantClasses = {
31
- ghost: "bg-transparent border border-slate-600 text-slate-300 hover:bg-slate-700/40",
32
- soft: "bg-slate-700 text-white border border-slate-600 hover:bg-slate-600",
31
+ ghost: "bg-transparent border border-gray-200 text-gray-400 hover:bg-gray-50 hover:text-gray-600",
32
+ soft: "bg-gray-100 text-gray-600 border border-gray-200 hover:bg-gray-200",
33
33
  solid: "bg-indigo-600 text-white border border-indigo-600 hover:bg-indigo-500",
34
34
  };
35
- const copiedClasses = "bg-emerald-600/20 border border-emerald-500 text-emerald-300";
35
+ const copiedClasses = "bg-emerald-50 border border-emerald-200 text-emerald-600";
36
36
  return (React.createElement("button", { type: "button", className: `inline-flex items-center justify-center gap-1 transition-colors duration-150 cursor-pointer select-none ${copied ? copiedClasses : variantClasses[variant]} ${sizeClasses[size]} ${props.className || ""}`, onClick: handleCopy, onKeyDown: (e) => {
37
37
  if (e.key === "Enter" || e.key === " ") {
38
38
  handleCopy(e);
@@ -1 +1 @@
1
- {"version":3,"file":"CopyTextButton.js","sourceRoot":"","sources":["../../../../../UI/Components/CopyTextButton/CopyTextButton.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAIN,MAAM,OAAO,CAAC;AACf,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAapD,MAAM,cAAc,GAAsC,CACxD,KAAqB,EACP,EAAE;IAChB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,IAAI,GAAuB,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC;IACpD,MAAM,OAAO,GAA+B,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC;IACrE,MAAM,KAAK,GAAW,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC;IAC5C,MAAM,WAAW,GAAW,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC;IAE3D,MAAM,UAAU,GAAyC,KAAK,EAC5D,KAAsD,EACtD,EAAE;QACF,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtD,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,UAAU,CAAC,GAAG,EAAE;YACd,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,WAAW,GAAgC;QAC/C,EAAE,EAAE,mCAAmC;QACvC,EAAE,EAAE,8BAA8B;QAClC,EAAE,EAAE,kCAAkC;KAC9B,CAAC;IAEX,MAAM,SAAS,GAAgC;QAC7C,EAAE,EAAE,aAAa;QACjB,EAAE,EAAE,SAAS;QACb,EAAE,EAAE,aAAa;KACT,CAAC;IAEX,MAAM,cAAc,GAAmC;QACrD,KAAK,EACH,6EAA6E;QAC/E,IAAI,EAAE,oEAAoE;QAC1E,KAAK,EACH,uEAAuE;KACjE,CAAC;IAEX,MAAM,aAAa,GACjB,8DAA8D,CAAC;IAEjE,OAAO,CACL,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,2GACT,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CACjD,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,EAChD,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,CAAC,CAAyC,EAAE,EAAE;YACvD,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACvC,UAAU,CAAC,CAAmD,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,EACD,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,gBACf,KAAK,CAAC,KAAK,IAAI,KAAK;QAGhC,6CAAkB,MAAM,EAAC,SAAS,EAAC,kCAAkC,IAClE,MAAM,CAAC,CAAC,CAAC,CACR,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,KAAK,EACpB,SAAS,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,mBAAmB,GAChD,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,GAAI,CAC/D,CACI;QAEN,CAAC,KAAK,CAAC,QAAQ,IAAI,kCAAO,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAQ,CACxD,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"CopyTextButton.js","sourceRoot":"","sources":["../../../../../UI/Components/CopyTextButton/CopyTextButton.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,KAIN,MAAM,OAAO,CAAC;AACf,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AAapD,MAAM,cAAc,GAAsC,CACxD,KAAqB,EACP,EAAE;IAChB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,MAAM,IAAI,GAAuB,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC;IACpD,MAAM,OAAO,GAA+B,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC;IACrE,MAAM,KAAK,GAAW,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC;IAC5C,MAAM,WAAW,GAAW,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC;IAE3D,MAAM,UAAU,GAAyC,KAAK,EAC5D,KAAsD,EACtD,EAAE;QACF,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,MAAM,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACtD,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,UAAU,CAAC,GAAG,EAAE;YACd,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,WAAW,GAAgC;QAC/C,EAAE,EAAE,mCAAmC;QACvC,EAAE,EAAE,8BAA8B;QAClC,EAAE,EAAE,kCAAkC;KAC9B,CAAC;IAEX,MAAM,SAAS,GAAgC;QAC7C,EAAE,EAAE,aAAa;QACjB,EAAE,EAAE,SAAS;QACb,EAAE,EAAE,aAAa;KACT,CAAC;IAEX,MAAM,cAAc,GAAmC;QACrD,KAAK,EACH,0FAA0F;QAC5F,IAAI,EAAE,oEAAoE;QAC1E,KAAK,EACH,uEAAuE;KACjE,CAAC;IAEX,MAAM,aAAa,GACjB,0DAA0D,CAAC;IAE7D,OAAO,CACL,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,2GACT,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CACjD,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,EAChD,OAAO,EAAE,UAAU,EACnB,SAAS,EAAE,CAAC,CAAyC,EAAE,EAAE;YACvD,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACvC,UAAU,CAAC,CAAmD,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,EACD,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,gBACf,KAAK,CAAC,KAAK,IAAI,KAAK;QAGhC,6CAAkB,MAAM,EAAC,SAAS,EAAC,kCAAkC,IAClE,MAAM,CAAC,CAAC,CAAC,CACR,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,KAAK,EACpB,SAAS,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,mBAAmB,GAChD,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,GAAI,CAC/D,CACI;QAEN,CAAC,KAAK,CAAC,QAAQ,IAAI,kCAAO,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAQ,CACxD,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}