@oneuptime/common 11.5.12 → 11.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/DatabaseModels/AIInsight.ts +30 -0
- package/Models/DatabaseModels/EnterpriseLicense.ts +21 -0
- package/Models/DatabaseModels/EnterpriseLicenseInstance.ts +25 -0
- package/Models/DatabaseModels/GlobalConfig.ts +76 -0
- package/Models/DatabaseModels/Project.ts +30 -0
- package/Models/DatabaseModels/TelemetryException.ts +128 -0
- package/Server/API/AIAgentDataAPI.ts +129 -5
- package/Server/API/AIInvestigationAPI.ts +87 -0
- package/Server/API/EnterpriseLicenseAPI.ts +57 -0
- package/Server/API/GlobalConfigAPI.ts +62 -1
- package/Server/EnvironmentConfig.ts +22 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784640000000-AddExceptionTriageAndPrivacyColumns.ts +56 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784659816363-AddInstanceVersionAndLatestReleaseColumns.ts +38 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784705487674-AddEnterpriseLicenseEvaluationColumns.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
- package/Server/Services/AIRunService.ts +8 -0
- package/Server/Services/AnalyticsDatabaseService.ts +48 -45
- package/Server/Services/DatabaseService.ts +66 -1
- package/Server/Services/TelemetryExceptionService.ts +320 -24
- package/Server/Services/WorkflowService.ts +100 -39
- package/Server/Types/Workflow/Components/Schedule.ts +57 -32
- package/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.ts +15 -4
- package/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.ts +15 -4
- package/Server/Utils/AI/SRE/Insights/InsightScanner.ts +222 -24
- package/Server/Utils/AI/SRE/Insights/InsightTriageRunner.ts +225 -9
- package/Server/Utils/AI/SRE/SubjectCodeFixRun.ts +39 -0
- package/Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.ts +114 -0
- package/Server/Utils/AnalyticsDatabase/InsertDedupContext.ts +59 -0
- package/Server/Utils/Express.ts +13 -0
- package/Server/Utils/Telemetry/ExceptionSanitizer.ts +222 -0
- package/Server/Utils/Telemetry/TelemetryFanInWriter.ts +799 -0
- package/Server/Utils/Telemetry/TelemetryWriterClient.ts +263 -0
- package/Server/Utils/Telemetry/TelemetryWriterServer.ts +240 -0
- package/Server/Utils/Telemetry/TelemetryWriterShedMetrics.ts +93 -0
- package/Tests/Server/Services/DatabaseServiceSanitizeUpdateData.test.ts +232 -0
- package/Tests/Server/Services/TelemetryExceptionCodeFixRun.test.ts +205 -1
- package/Tests/Server/Services/UpdateOneByIdKeepsRowId.test.ts +107 -0
- package/Tests/Server/Services/WorkflowService.test.ts +308 -0
- package/Tests/Server/Utils/AI/Insights/InsightScanner.test.ts +150 -141
- package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +277 -1
- package/Tests/Server/Utils/Attribution.test.ts +203 -0
- package/Tests/Server/Utils/ExceptionSanitizer.test.ts +70 -0
- package/Tests/Server/Utils/InsightTriageClassification.test.ts +57 -0
- package/Tests/Server/Utils/Marketing/ConversionUploadProvider.test.ts +183 -0
- package/Tests/Server/Utils/Marketing/GoogleAds.test.ts +340 -0
- package/Tests/Server/Utils/Monitor/Criteria/ExceptionMonitorCriteria.test.ts +87 -0
- package/Tests/Server/Utils/Monitor/Criteria/LogMonitorCriteria.test.ts +165 -0
- package/Tests/Server/Utils/Monitor/Criteria/TraceMonitorCriteria.test.ts +86 -0
- package/Tests/Server/Utils/Telemetry/TelemetryFanInWriter.test.ts +1565 -0
- package/Tests/Server/Utils/Telemetry/TelemetryWriterClient.test.ts +313 -0
- package/Tests/Server/Utils/Telemetry/TelemetryWriterServer.test.ts +270 -0
- package/Tests/Server/Utils/Telemetry/TelemetryWriterShedMetrics.test.ts +127 -0
- package/Tests/Server/Utils/TelemetryImprovementTaskTrigger.test.ts +141 -0
- package/Tests/Types/AI/CodeFixTaskType.test.ts +3 -0
- package/Tests/Types/Monitor/MonitorCriteriaMetricVariables.test.ts +228 -0
- package/Tests/Types/Monitor/MonitorStepDefaultTelemetryConfig.test.ts +169 -0
- package/Tests/Types/Monitor/MonitorStepExceptionMonitor.test.ts +289 -0
- package/Tests/Types/Monitor/MonitorStepLogMonitor.test.ts +231 -0
- package/Tests/Types/Monitor/MonitorStepMetricViewConfigUtil.test.ts +245 -0
- package/Tests/Types/Monitor/MonitorStepNetworkDeviceMonitor.test.ts +155 -0
- package/Tests/Types/Monitor/MonitorStepTelemetrySerialization.test.ts +141 -0
- package/Tests/Types/Monitor/MonitorStepTraceMonitor.test.ts +137 -0
- package/Tests/Types/Workspace/NotificationRules/NotificationRuleCondition.test.ts +311 -0
- package/Tests/UI/Components/ModelTableSelectFromColumns.test.ts +259 -0
- package/Tests/UI/Utils/Breadcrumb/BreadcrumbTrailResolver.test.ts +461 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +2852 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +758 -0
- package/Tests/UI/Utils/NotificationMethodUtil.test.ts +564 -0
- package/Tests/Utils/Array.test.ts +156 -0
- package/Tests/Utils/CronTab.test.ts +199 -0
- package/Tests/Utils/ModelImportExport.test.ts +101 -0
- package/Tests/Utils/Number.test.ts +179 -0
- package/Tests/Utils/VersionUtil.test.ts +348 -0
- package/Tests/jest.setup.ts +1 -0
- package/Types/AI/CodeFixTaskContext.ts +6 -0
- package/Types/AI/CodeFixTaskType.ts +38 -1
- package/Types/AI/ExceptionAIClassification.ts +27 -0
- package/Types/EnterpriseLicense/EnterpriseLicenseInstanceSummary.ts +6 -0
- package/Types/Log/LogScrubPatternType.ts +7 -0
- package/Types/Monitor/MonitorStep.ts +24 -4
- package/Types/Monitor/MonitorStepMetricViewConfigUtil.ts +105 -0
- package/Types/Trace/TraceScrubPatternType.ts +7 -0
- package/UI/Components/EditionLabel/EditionLabel.tsx +445 -12
- package/UI/Components/ModelTable/BaseModelTable.tsx +15 -46
- package/UI/Components/ModelTable/SelectFromColumns.ts +129 -0
- package/UI/Components/Workflow/ArgumentsForm.tsx +68 -30
- package/UI/Components/Workflow/CronScheduleField.tsx +411 -0
- package/UI/Utils/Breadcrumb/BreadcrumbTrailResolver.ts +176 -0
- package/UI/Utils/NotificationMethodUtil.ts +310 -0
- package/Utils/CronTab.ts +823 -0
- package/Utils/ModelImportExport.ts +21 -6
- package/Utils/VersionUtil.ts +260 -0
- package/build/dist/Models/DatabaseModels/AIInsight.js +31 -0
- package/build/dist/Models/DatabaseModels/AIInsight.js.map +1 -1
- package/build/dist/Models/DatabaseModels/EnterpriseLicense.js +22 -0
- package/build/dist/Models/DatabaseModels/EnterpriseLicense.js.map +1 -1
- package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js +26 -0
- package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalConfig.js +81 -0
- package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +31 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryException.js +134 -0
- package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +97 -8
- package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationAPI.js +55 -0
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/EnterpriseLicenseAPI.js +47 -0
- package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
- package/build/dist/Server/API/GlobalConfigAPI.js +52 -1
- package/build/dist/Server/API/GlobalConfigAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +17 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784640000000-AddExceptionTriageAndPrivacyColumns.js +33 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784640000000-AddExceptionTriageAndPrivacyColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784659816363-AddInstanceVersionAndLatestReleaseColumns.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784659816363-AddInstanceVersionAndLatestReleaseColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784705487674-AddEnterpriseLicenseEvaluationColumns.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784705487674-AddEnterpriseLicenseEvaluationColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AIRunService.js +9 -2
- package/build/dist/Server/Services/AIRunService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +44 -16
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +53 -1
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryExceptionService.js +263 -22
- package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
- package/build/dist/Server/Services/WorkflowService.js +80 -30
- package/build/dist/Server/Services/WorkflowService.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/Schedule.js +44 -19
- package/build/dist/Server/Types/Workflow/Components/Schedule.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js +12 -4
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/ExceptionSpikeDetector.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js +12 -4
- package/build/dist/Server/Utils/AI/SRE/Insights/Detectors/NewExceptionDetector.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js +193 -22
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightScanner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js +178 -9
- package/build/dist/Server/Utils/AI/SRE/Insights/InsightTriageRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js +37 -0
- package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.js +98 -0
- package/build/dist/Server/Utils/AI/SRE/TelemetryImprovementTaskTrigger.js.map +1 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/InsertDedupContext.js +24 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/InsertDedupContext.js.map +1 -0
- package/build/dist/Server/Utils/Express.js +12 -0
- package/build/dist/Server/Utils/Express.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ExceptionSanitizer.js +149 -0
- package/build/dist/Server/Utils/Telemetry/ExceptionSanitizer.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryFanInWriter.js +496 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryFanInWriter.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryWriterClient.js +165 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryWriterClient.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryWriterServer.js +136 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryWriterServer.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryWriterShedMetrics.js +76 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryWriterShedMetrics.js.map +1 -0
- package/build/dist/Types/AI/CodeFixTaskType.js +38 -1
- package/build/dist/Types/AI/CodeFixTaskType.js.map +1 -1
- package/build/dist/Types/AI/ExceptionAIClassification.js +28 -0
- package/build/dist/Types/AI/ExceptionAIClassification.js.map +1 -0
- package/build/dist/Types/Log/LogScrubPatternType.js +7 -0
- package/build/dist/Types/Log/LogScrubPatternType.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +20 -4
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepMetricViewConfigUtil.js +73 -0
- package/build/dist/Types/Monitor/MonitorStepMetricViewConfigUtil.js.map +1 -0
- package/build/dist/Types/Trace/TraceScrubPatternType.js +7 -0
- package/build/dist/Types/Trace/TraceScrubPatternType.js.map +1 -1
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js +261 -13
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +12 -37
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/SelectFromColumns.js +82 -0
- package/build/dist/UI/Components/ModelTable/SelectFromColumns.js.map +1 -0
- package/build/dist/UI/Components/Workflow/ArgumentsForm.js +30 -6
- package/build/dist/UI/Components/Workflow/ArgumentsForm.js.map +1 -1
- package/build/dist/UI/Components/Workflow/CronScheduleField.js +209 -0
- package/build/dist/UI/Components/Workflow/CronScheduleField.js.map +1 -0
- package/build/dist/UI/Utils/Breadcrumb/BreadcrumbTrailResolver.js +129 -0
- package/build/dist/UI/Utils/Breadcrumb/BreadcrumbTrailResolver.js.map +1 -0
- package/build/dist/UI/Utils/NotificationMethodUtil.js +189 -0
- package/build/dist/UI/Utils/NotificationMethodUtil.js.map +1 -0
- package/build/dist/Utils/CronTab.js +609 -0
- package/build/dist/Utils/CronTab.js.map +1 -0
- package/build/dist/Utils/ModelImportExport.js +20 -6
- package/build/dist/Utils/ModelImportExport.js.map +1 -1
- package/build/dist/Utils/VersionUtil.js +193 -0
- package/build/dist/Utils/VersionUtil.js.map +1 -0
- package/package.json +1 -1
|
@@ -197,14 +197,28 @@ export default class ModelImportExport {
|
|
|
197
197
|
return item;
|
|
198
198
|
}
|
|
199
199
|
/*
|
|
200
|
-
* Model-specific fixups so imported items
|
|
201
|
-
* validation.
|
|
202
|
-
*
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
200
|
+
* Model-specific fixups so imported items are safe to create and pass
|
|
201
|
+
* server-side create validation.
|
|
202
|
+
*
|
|
203
|
+
* Workflow: an imported workflow always lands disabled, even if it was
|
|
204
|
+
* enabled where it was exported from. Its graph can reference monitors,
|
|
205
|
+
* on-call policies or other workflows that do not exist in the destination
|
|
206
|
+
* project, and a workflow starts firing the moment it is enabled - so
|
|
207
|
+
* importing must not be a way to put unreviewed automation into production.
|
|
208
|
+
* This also keeps the documented invariant that a new workflow starts
|
|
209
|
+
* disabled and is turned on deliberately.
|
|
210
|
+
*
|
|
211
|
+
* ScheduledMaintenanceTemplate: recurring templates are rejected on create
|
|
212
|
+
* when their first-event dates are in the past (the normal case for an
|
|
213
|
+
* export taken from an established template), so the dates are advanced by
|
|
214
|
+
* the recurrence interval until they are in the future, preserving the
|
|
215
|
+
* offsets between them.
|
|
206
216
|
*/
|
|
207
217
|
static normalizeImportItem(item) {
|
|
218
|
+
if (item.tableName === "Workflow") {
|
|
219
|
+
item["isEnabled"] = false;
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
208
222
|
if (item.tableName !== "ScheduledMaintenanceTemplate") {
|
|
209
223
|
return;
|
|
210
224
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelImportExport.js","sourceRoot":"","sources":["../../../Utils/ModelImportExport.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ModelImportExport.js","sourceRoot":"","sources":["../../../Utils/ModelImportExport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Semantic version parsing and comparison.
|
|
3
|
+
*
|
|
4
|
+
* OneUptime releases are tagged on GitHub as `v11.5.13`, stored in the root
|
|
5
|
+
* VERSION file as `11.5.13` and baked into images as APP_VERSION. This util
|
|
6
|
+
* is the one place that knows how to turn any of those spellings into
|
|
7
|
+
* something comparable, so "is this installation behind the latest release?"
|
|
8
|
+
* has a single answer on the server, in the worker and in the browser.
|
|
9
|
+
*
|
|
10
|
+
* Every entry point is total: anything unparseable ("unknown", "", null,
|
|
11
|
+
* a 5000 character string) yields null or false rather than throwing.
|
|
12
|
+
*/
|
|
13
|
+
class VersionUtil {
|
|
14
|
+
/*
|
|
15
|
+
* Trims, caps the length and strips a leading `v` (GitHub tag names are
|
|
16
|
+
* `v11.5.13`, the VERSION file is `11.5.13`). Returns "" for anything
|
|
17
|
+
* that is not a string.
|
|
18
|
+
*/
|
|
19
|
+
static normalize(value) {
|
|
20
|
+
if (typeof value !== "string") {
|
|
21
|
+
return "";
|
|
22
|
+
}
|
|
23
|
+
const trimmed = value.trim().substring(0, this.maxVersionLength);
|
|
24
|
+
if (trimmed.startsWith("v") || trimmed.startsWith("V")) {
|
|
25
|
+
return trimmed.substring(1);
|
|
26
|
+
}
|
|
27
|
+
return trimmed;
|
|
28
|
+
}
|
|
29
|
+
// Returns null when the value is not a full major.minor.patch version.
|
|
30
|
+
static parse(value) {
|
|
31
|
+
const normalized = this.normalize(value);
|
|
32
|
+
if (!normalized) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const match = normalized.match(this.versionRegex);
|
|
36
|
+
if (!match) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const major = Number.parseInt(match[1], 10);
|
|
40
|
+
const minor = Number.parseInt(match[2], 10);
|
|
41
|
+
const patch = Number.parseInt(match[3], 10);
|
|
42
|
+
if (!Number.isSafeInteger(major) ||
|
|
43
|
+
!Number.isSafeInteger(minor) ||
|
|
44
|
+
!Number.isSafeInteger(patch)) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
major: major,
|
|
49
|
+
minor: minor,
|
|
50
|
+
patch: patch,
|
|
51
|
+
prerelease: match[4] ? match[4] : null,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
static isValid(value) {
|
|
55
|
+
return this.parse(value) !== null;
|
|
56
|
+
}
|
|
57
|
+
/*
|
|
58
|
+
* The canonical spelling of a version, rebuilt from its parts, or null if it
|
|
59
|
+
* is not a version at all. Use this rather than normalize() whenever the
|
|
60
|
+
* result is going to be stored: normalize() strips only ONE leading "v" and
|
|
61
|
+
* parse() normalizes again, so "vv1.2.3" passes isValid() while still
|
|
62
|
+
* carrying a "v" — and the UIs prefix another one when they render it.
|
|
63
|
+
*
|
|
64
|
+
* Build metadata is dropped, since it takes no part in precedence.
|
|
65
|
+
*/
|
|
66
|
+
static canonicalize(value) {
|
|
67
|
+
const parsed = this.parse(value);
|
|
68
|
+
if (!parsed) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
return `${parsed.major}.${parsed.minor}.${parsed.patch}${parsed.prerelease ? `-${parsed.prerelease}` : ""}`;
|
|
72
|
+
}
|
|
73
|
+
/*
|
|
74
|
+
* Semver precedence for the dot-separated identifiers of a prerelease tag:
|
|
75
|
+
* numeric identifiers compare numerically and rank below alphanumeric ones,
|
|
76
|
+
* and when every shared identifier is equal the longer list wins
|
|
77
|
+
* (1.0.0-alpha < 1.0.0-alpha.1).
|
|
78
|
+
*/
|
|
79
|
+
static comparePrereleaseIdentifiers(a, b) {
|
|
80
|
+
const aParts = a.split(".");
|
|
81
|
+
const bParts = b.split(".");
|
|
82
|
+
const length = Math.max(aParts.length, bParts.length);
|
|
83
|
+
for (let index = 0; index < length; index++) {
|
|
84
|
+
const aPart = aParts[index];
|
|
85
|
+
const bPart = bParts[index];
|
|
86
|
+
if (aPart === undefined) {
|
|
87
|
+
return -1;
|
|
88
|
+
}
|
|
89
|
+
if (bPart === undefined) {
|
|
90
|
+
return 1;
|
|
91
|
+
}
|
|
92
|
+
if (aPart === bPart) {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
const aIsNumeric = this.numericIdentifierRegex.test(aPart);
|
|
96
|
+
const bIsNumeric = this.numericIdentifierRegex.test(bPart);
|
|
97
|
+
if (aIsNumeric && bIsNumeric) {
|
|
98
|
+
return Number(aPart) < Number(bPart) ? -1 : 1;
|
|
99
|
+
}
|
|
100
|
+
if (aIsNumeric !== bIsNumeric) {
|
|
101
|
+
// Numeric identifiers always have lower precedence than alphanumeric.
|
|
102
|
+
return aIsNumeric ? -1 : 1;
|
|
103
|
+
}
|
|
104
|
+
return aPart < bPart ? -1 : 1;
|
|
105
|
+
}
|
|
106
|
+
return 0;
|
|
107
|
+
}
|
|
108
|
+
/*
|
|
109
|
+
* -1 when a is older than b, 0 when they are the same release, 1 when a is
|
|
110
|
+
* newer. Null when either side cannot be parsed — callers must treat null
|
|
111
|
+
* as "cannot tell", never as "equal".
|
|
112
|
+
*/
|
|
113
|
+
static compare(a, b) {
|
|
114
|
+
const parsedA = this.parse(a);
|
|
115
|
+
const parsedB = this.parse(b);
|
|
116
|
+
if (!parsedA || !parsedB) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
const triples = [
|
|
120
|
+
[parsedA.major, parsedB.major],
|
|
121
|
+
[parsedA.minor, parsedB.minor],
|
|
122
|
+
[parsedA.patch, parsedB.patch],
|
|
123
|
+
];
|
|
124
|
+
for (const [left, right] of triples) {
|
|
125
|
+
if (left !== right) {
|
|
126
|
+
return left < right ? -1 : 1;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (parsedA.prerelease === parsedB.prerelease) {
|
|
130
|
+
return 0;
|
|
131
|
+
}
|
|
132
|
+
// A release always outranks a prerelease of the same triple.
|
|
133
|
+
if (!parsedA.prerelease) {
|
|
134
|
+
return 1;
|
|
135
|
+
}
|
|
136
|
+
if (!parsedB.prerelease) {
|
|
137
|
+
return -1;
|
|
138
|
+
}
|
|
139
|
+
return this.comparePrereleaseIdentifiers(parsedA.prerelease, parsedB.prerelease);
|
|
140
|
+
}
|
|
141
|
+
/*
|
|
142
|
+
* Whether an installation running currentVersion should be told to upgrade.
|
|
143
|
+
* Deliberately conservative — it drives a banner that nags administrators,
|
|
144
|
+
* so every uncertain case answers false:
|
|
145
|
+
*
|
|
146
|
+
* - either version unparseable (a dev build reporting "unknown", an
|
|
147
|
+
* instance too old to report a version at all) -> false
|
|
148
|
+
* - the latest release is a prerelease -> false, stable installations are
|
|
149
|
+
* never nudged onto a release candidate
|
|
150
|
+
* - the installation is level with, or ahead of, the latest release
|
|
151
|
+
* (someone running a build off master) -> false, never suggest a
|
|
152
|
+
* downgrade
|
|
153
|
+
*/
|
|
154
|
+
static isUpdateAvailable(data) {
|
|
155
|
+
const latest = this.parse(data.latestVersion);
|
|
156
|
+
if (!latest || latest.prerelease) {
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
if (!this.parse(data.currentVersion)) {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
return this.compare(data.latestVersion, data.currentVersion) === 1;
|
|
163
|
+
}
|
|
164
|
+
/*
|
|
165
|
+
* Whether taking the available update crosses a major version. Major
|
|
166
|
+
* upgrades are the ones with breaking changes and manual migration steps —
|
|
167
|
+
* OneUptime's upgrade guide requires applying them one major at a time — so
|
|
168
|
+
* they are the only ones worth interrupting an administrator over.
|
|
169
|
+
*
|
|
170
|
+
* Implies isUpdateAvailable: false whenever there is no update to take.
|
|
171
|
+
*/
|
|
172
|
+
static isMajorUpgrade(data) {
|
|
173
|
+
if (!this.isUpdateAvailable(data)) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
const current = this.parse(data.currentVersion);
|
|
177
|
+
const latest = this.parse(data.latestVersion);
|
|
178
|
+
if (!current || !latest) {
|
|
179
|
+
return false;
|
|
180
|
+
}
|
|
181
|
+
return latest.major > current.major;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/*
|
|
185
|
+
* Version strings arrive from an unauthenticated report endpoint and from
|
|
186
|
+
* a third-party API, so they are length-capped before any regex runs.
|
|
187
|
+
* Matches ColumnLength.ShortText, which is what they are stored in.
|
|
188
|
+
*/
|
|
189
|
+
VersionUtil.maxVersionLength = 100;
|
|
190
|
+
VersionUtil.versionRegex = /^(\d{1,10})\.(\d{1,10})\.(\d{1,10})(?:-([0-9a-z-]+(?:\.[0-9a-z-]+)*))?(?:\+[0-9a-z-]+(?:\.[0-9a-z-]+)*)?$/i;
|
|
191
|
+
VersionUtil.numericIdentifierRegex = /^\d+$/;
|
|
192
|
+
export default VersionUtil;
|
|
193
|
+
//# sourceMappingURL=VersionUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VersionUtil.js","sourceRoot":"","sources":["../../../Utils/VersionUtil.ts"],"names":[],"mappings":"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"}
|