@sudobility/testomniac_lib 0.0.77 → 0.0.79
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/dist/business/hooks/index.d.ts +6 -0
- package/dist/business/hooks/index.d.ts.map +1 -1
- package/dist/business/hooks/index.js +3 -0
- package/dist/business/hooks/index.js.map +1 -1
- package/dist/business/hooks/useFindingsAnalysis.d.ts +9 -0
- package/dist/business/hooks/useFindingsAnalysis.d.ts.map +1 -0
- package/dist/business/hooks/useFindingsAnalysis.js +26 -0
- package/dist/business/hooks/useFindingsAnalysis.js.map +1 -0
- package/dist/business/hooks/usePageInteractionGroups.d.ts +8 -0
- package/dist/business/hooks/usePageInteractionGroups.d.ts.map +1 -0
- package/dist/business/hooks/usePageInteractionGroups.js +27 -0
- package/dist/business/hooks/usePageInteractionGroups.js.map +1 -0
- package/dist/business/hooks/useTestRunsAnalysis.d.ts +16 -0
- package/dist/business/hooks/useTestRunsAnalysis.d.ts.map +1 -0
- package/dist/business/hooks/useTestRunsAnalysis.js +27 -0
- package/dist/business/hooks/useTestRunsAnalysis.js.map +1 -0
- package/dist/business/utils/formatDate.d.ts +2 -0
- package/dist/business/utils/formatDate.d.ts.map +1 -0
- package/dist/business/utils/formatDate.js +11 -0
- package/dist/business/utils/formatDate.js.map +1 -0
- package/dist/business/utils/formatDuration.d.ts +3 -0
- package/dist/business/utils/formatDuration.d.ts.map +1 -0
- package/dist/business/utils/formatDuration.js +36 -0
- package/dist/business/utils/formatDuration.js.map +1 -0
- package/dist/business/utils/formatMultilineLog.d.ts +2 -0
- package/dist/business/utils/formatMultilineLog.d.ts.map +1 -0
- package/dist/business/utils/formatMultilineLog.js +7 -0
- package/dist/business/utils/formatMultilineLog.js.map +1 -0
- package/dist/business/utils/index.d.ts +7 -1
- package/dist/business/utils/index.d.ts.map +1 -1
- package/dist/business/utils/index.js +7 -1
- package/dist/business/utils/index.js.map +1 -1
- package/dist/business/utils/parseExpertiseTitle.d.ts +5 -0
- package/dist/business/utils/parseExpertiseTitle.d.ts.map +1 -0
- package/dist/business/utils/parseExpertiseTitle.js +8 -0
- package/dist/business/utils/parseExpertiseTitle.js.map +1 -0
- package/dist/business/utils/pathUtils.d.ts +3 -0
- package/dist/business/utils/pathUtils.d.ts.map +1 -0
- package/dist/business/utils/pathUtils.js +38 -0
- package/dist/business/utils/pathUtils.js.map +1 -0
- package/dist/business/utils/scheduleUtils.d.ts +39 -0
- package/dist/business/utils/scheduleUtils.d.ts.map +1 -0
- package/dist/business/utils/scheduleUtils.js +39 -0
- package/dist/business/utils/scheduleUtils.js.map +1 -0
- package/dist/business/utils/validateEmailDomain.d.ts +2 -0
- package/dist/business/utils/validateEmailDomain.d.ts.map +1 -0
- package/dist/business/utils/validateEmailDomain.js +13 -0
- package/dist/business/utils/validateEmailDomain.js.map +1 -0
- package/package.json +1 -1
|
@@ -4,4 +4,10 @@ export { useRunManager } from './useRunManager';
|
|
|
4
4
|
export { usePageMapData } from './usePageMapData';
|
|
5
5
|
export type { PageMapNode, PageMapEdge, UsePageMapDataConfig, } from './usePageMapData';
|
|
6
6
|
export { useEnvironmentManager } from './useEnvironmentManager';
|
|
7
|
+
export { useFindingsAnalysis } from './useFindingsAnalysis';
|
|
8
|
+
export type { FindingsAnalysis } from './useFindingsAnalysis';
|
|
9
|
+
export { useTestRunsAnalysis } from './useTestRunsAnalysis';
|
|
10
|
+
export type { StatusCounts, TestRunsAnalysis } from './useTestRunsAnalysis';
|
|
11
|
+
export { usePageInteractionGroups } from './usePageInteractionGroups';
|
|
12
|
+
export type { PageInteractionGroups } from './usePageInteractionGroups';
|
|
7
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/business/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,WAAW,EACX,WAAW,EACX,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/business/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,WAAW,EACX,WAAW,EACX,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -3,4 +3,7 @@ export { useDashboardManager } from './useDashboardManager';
|
|
|
3
3
|
export { useRunManager } from './useRunManager';
|
|
4
4
|
export { usePageMapData } from './usePageMapData';
|
|
5
5
|
export { useEnvironmentManager } from './useEnvironmentManager';
|
|
6
|
+
export { useFindingsAnalysis } from './useFindingsAnalysis';
|
|
7
|
+
export { useTestRunsAnalysis } from './useTestRunsAnalysis';
|
|
8
|
+
export { usePageInteractionGroups } from './usePageInteractionGroups';
|
|
6
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/business/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/business/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TestRunFindingResponse } from '@sudobility/testomniac_types';
|
|
2
|
+
export interface FindingsAnalysis {
|
|
3
|
+
priorityCounts: Record<number, number>;
|
|
4
|
+
errorCount: number;
|
|
5
|
+
warningCount: number;
|
|
6
|
+
filteredFindings: TestRunFindingResponse[];
|
|
7
|
+
}
|
|
8
|
+
export declare function useFindingsAnalysis(findings: TestRunFindingResponse[], typeFilter: string | null, priorityFilter: number | null): FindingsAnalysis;
|
|
9
|
+
//# sourceMappingURL=useFindingsAnalysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFindingsAnalysis.d.ts","sourceRoot":"","sources":["../../../src/business/hooks/useFindingsAnalysis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAE3E,MAAM,WAAW,gBAAgB;IAE/B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEvC,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,MAAM,CAAC;IAErB,gBAAgB,EAAE,sBAAsB,EAAE,CAAC;CAC5C;AAOD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,sBAAsB,EAAE,EAClC,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,cAAc,EAAE,MAAM,GAAG,IAAI,GAC5B,gBAAgB,CAgClB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
export function useFindingsAnalysis(findings, typeFilter, priorityFilter) {
|
|
3
|
+
const priorityCounts = useMemo(() => {
|
|
4
|
+
const counts = { 0: 0, 1: 0, 2: 0, 3: 0, 4: 0 };
|
|
5
|
+
for (const f of findings) {
|
|
6
|
+
const p = f.priority;
|
|
7
|
+
if (p in counts)
|
|
8
|
+
counts[p]++;
|
|
9
|
+
}
|
|
10
|
+
return counts;
|
|
11
|
+
}, [findings]);
|
|
12
|
+
const errorCount = useMemo(() => findings.filter(f => f.type === 'error').length, [findings]);
|
|
13
|
+
const warningCount = useMemo(() => findings.filter(f => f.type === 'warning').length, [findings]);
|
|
14
|
+
const filteredFindings = useMemo(() => {
|
|
15
|
+
let result = findings;
|
|
16
|
+
if (typeFilter !== null) {
|
|
17
|
+
result = result.filter(f => f.type === typeFilter);
|
|
18
|
+
}
|
|
19
|
+
if (priorityFilter !== null) {
|
|
20
|
+
result = result.filter(f => f.priority === priorityFilter);
|
|
21
|
+
}
|
|
22
|
+
return result;
|
|
23
|
+
}, [findings, typeFilter, priorityFilter]);
|
|
24
|
+
return { priorityCounts, errorCount, warningCount, filteredFindings };
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=useFindingsAnalysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFindingsAnalysis.js","sourceRoot":"","sources":["../../../src/business/hooks/useFindingsAnalysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAmBhC,MAAM,UAAU,mBAAmB,CACjC,QAAkC,EAClC,UAAyB,EACzB,cAA6B;IAE7B,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,MAAM,GAA2B,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACxE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;YACrB,IAAI,CAAC,IAAI,MAAM;gBAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,MAAM,EACrD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,EACvD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,MAAM,GAAG,QAAQ,CAAC;QACtB,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,cAAc,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IAE3C,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { TestInteractionResponse } from '@sudobility/testomniac_types';
|
|
2
|
+
export interface PageInteractionGroups {
|
|
3
|
+
onPageElements: TestInteractionResponse[];
|
|
4
|
+
startingElements: TestInteractionResponse[];
|
|
5
|
+
landingElements: TestInteractionResponse[];
|
|
6
|
+
}
|
|
7
|
+
export declare function usePageInteractionGroups(testInteractions: TestInteractionResponse[], pageId: number): PageInteractionGroups;
|
|
8
|
+
//# sourceMappingURL=usePageInteractionGroups.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePageInteractionGroups.d.ts","sourceRoot":"","sources":["../../../src/business/hooks/usePageInteractionGroups.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IAEpC,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAE1C,gBAAgB,EAAE,uBAAuB,EAAE,CAAC;IAE5C,eAAe,EAAE,uBAAuB,EAAE,CAAC;CAC5C;AAMD,wBAAgB,wBAAwB,CACtC,gBAAgB,EAAE,uBAAuB,EAAE,EAC3C,MAAM,EAAE,MAAM,GACb,qBAAqB,CAyBvB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
export function usePageInteractionGroups(testInteractions, pageId) {
|
|
3
|
+
return useMemo(() => {
|
|
4
|
+
const starting = [];
|
|
5
|
+
const landing = [];
|
|
6
|
+
const onPage = [];
|
|
7
|
+
for (const el of testInteractions) {
|
|
8
|
+
const isSource = el.pageId === pageId;
|
|
9
|
+
const isTarget = el.targetPageId === pageId;
|
|
10
|
+
if (isSource && isTarget) {
|
|
11
|
+
onPage.push(el);
|
|
12
|
+
}
|
|
13
|
+
else if (isSource) {
|
|
14
|
+
starting.push(el);
|
|
15
|
+
}
|
|
16
|
+
else if (isTarget) {
|
|
17
|
+
landing.push(el);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
startingElements: starting,
|
|
22
|
+
landingElements: landing,
|
|
23
|
+
onPageElements: onPage,
|
|
24
|
+
};
|
|
25
|
+
}, [testInteractions, pageId]);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=usePageInteractionGroups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePageInteractionGroups.js","sourceRoot":"","sources":["../../../src/business/hooks/usePageInteractionGroups.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAgBhC,MAAM,UAAU,wBAAwB,CACtC,gBAA2C,EAC3C,MAAc;IAEd,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,QAAQ,GAA8B,EAAE,CAAC;QAC/C,MAAM,OAAO,GAA8B,EAAE,CAAC;QAC9C,MAAM,MAAM,GAA8B,EAAE,CAAC;QAE7C,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,KAAK,MAAM,CAAC;YACtC,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,KAAK,MAAM,CAAC;YAE5C,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClB,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO;YACL,gBAAgB,EAAE,QAAQ;YAC1B,eAAe,EAAE,OAAO;YACxB,cAAc,EAAE,MAAM;SACvB,CAAC;IACJ,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { TestRunResponse } from '@sudobility/testomniac_types';
|
|
2
|
+
export interface StatusCounts {
|
|
3
|
+
completed: number;
|
|
4
|
+
passed: number;
|
|
5
|
+
failed: number;
|
|
6
|
+
error: number;
|
|
7
|
+
running: number;
|
|
8
|
+
pending: number;
|
|
9
|
+
planned: number;
|
|
10
|
+
other: number;
|
|
11
|
+
}
|
|
12
|
+
export interface TestRunsAnalysis {
|
|
13
|
+
statusCounts: StatusCounts;
|
|
14
|
+
}
|
|
15
|
+
export declare function useTestRunsAnalysis(testRuns: TestRunResponse[]): TestRunsAnalysis;
|
|
16
|
+
//# sourceMappingURL=useTestRunsAnalysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTestRunsAnalysis.d.ts","sourceRoot":"","sources":["../../../src/business/hooks/useTestRunsAnalysis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAOD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,eAAe,EAAE,GAC1B,gBAAgB,CAwBlB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
export function useTestRunsAnalysis(testRuns) {
|
|
3
|
+
const statusCounts = useMemo(() => {
|
|
4
|
+
const counts = {
|
|
5
|
+
completed: 0,
|
|
6
|
+
passed: 0,
|
|
7
|
+
failed: 0,
|
|
8
|
+
error: 0,
|
|
9
|
+
running: 0,
|
|
10
|
+
pending: 0,
|
|
11
|
+
planned: 0,
|
|
12
|
+
other: 0,
|
|
13
|
+
};
|
|
14
|
+
for (const run of testRuns) {
|
|
15
|
+
const s = run.status;
|
|
16
|
+
if (s in counts) {
|
|
17
|
+
counts[s]++;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
counts.other++;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return counts;
|
|
24
|
+
}, [testRuns]);
|
|
25
|
+
return { statusCounts };
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=useTestRunsAnalysis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTestRunsAnalysis.js","sourceRoot":"","sources":["../../../src/business/hooks/useTestRunsAnalysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAuBhC,MAAM,UAAU,mBAAmB,CACjC,QAA2B;IAE3B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,MAAM,MAAM,GAAiB;YAC3B,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;SACT,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,GAAG,CAAC,MAA4B,CAAC;YAC3C,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;gBAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACd,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,OAAO,EAAE,YAAY,EAAE,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatDate.d.ts","sourceRoot":"","sources":["../../../src/business/utils/formatDate.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAOvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatDate.js","sourceRoot":"","sources":["../../../src/business/utils/formatDate.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,SAAoC;IAC7D,IAAI,CAAC,SAAS;QAAE,OAAO,QAAQ,CAAC;IAChC,IAAI,CAAC;QACH,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatDuration.d.ts","sourceRoot":"","sources":["../../../src/business/utils/formatDuration.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAWxD;AAQD,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,MAAM,GAAG,IAAI,CAcf"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export function formatDuration(ms) {
|
|
2
|
+
if (ms == null)
|
|
3
|
+
return '\u2014';
|
|
4
|
+
if (ms < 1000)
|
|
5
|
+
return `${ms}ms`;
|
|
6
|
+
const seconds = ms / 1000;
|
|
7
|
+
if (seconds < 60)
|
|
8
|
+
return `${seconds.toFixed(1)}s`;
|
|
9
|
+
const minutes = Math.floor(seconds / 60);
|
|
10
|
+
const remainingSeconds = Math.round(seconds % 60);
|
|
11
|
+
if (minutes < 60)
|
|
12
|
+
return `${minutes}m ${remainingSeconds}s`;
|
|
13
|
+
const hours = Math.floor(minutes / 60);
|
|
14
|
+
const remainingMinutes = minutes % 60;
|
|
15
|
+
return `${hours}h ${remainingMinutes}m`;
|
|
16
|
+
}
|
|
17
|
+
export function formatDurationFromTimestamps(startedAt, completedAt) {
|
|
18
|
+
if (!startedAt)
|
|
19
|
+
return null;
|
|
20
|
+
const start = new Date(startedAt).getTime();
|
|
21
|
+
if (Number.isNaN(start))
|
|
22
|
+
return null;
|
|
23
|
+
const end = completedAt ? new Date(completedAt).getTime() : Date.now();
|
|
24
|
+
const diffMs = end - start;
|
|
25
|
+
const seconds = Math.floor(diffMs / 1000);
|
|
26
|
+
if (seconds < 60)
|
|
27
|
+
return `${seconds}s`;
|
|
28
|
+
const minutes = Math.floor(seconds / 60);
|
|
29
|
+
const remainingSeconds = seconds % 60;
|
|
30
|
+
if (minutes < 60)
|
|
31
|
+
return `${minutes}m ${remainingSeconds}s`;
|
|
32
|
+
const hours = Math.floor(minutes / 60);
|
|
33
|
+
const remainingMinutes = minutes % 60;
|
|
34
|
+
return `${hours}h ${remainingMinutes}m`;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=formatDuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatDuration.js","sourceRoot":"","sources":["../../../src/business/utils/formatDuration.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,cAAc,CAAC,EAAiB;IAC9C,IAAI,EAAE,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC;IAChC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,EAAE,IAAI,CAAC;IAChC,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAClD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IAClD,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,KAAK,gBAAgB,GAAG,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,MAAM,gBAAgB,GAAG,OAAO,GAAG,EAAE,CAAC;IACtC,OAAO,GAAG,KAAK,KAAK,gBAAgB,GAAG,CAAC;AAC1C,CAAC;AAQD,MAAM,UAAU,4BAA4B,CAC1C,SAAwB,EACxB,WAA0B;IAE1B,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5C,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACvE,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC;IAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC1C,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,GAAG,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACzC,MAAM,gBAAgB,GAAG,OAAO,GAAG,EAAE,CAAC;IACtC,IAAI,OAAO,GAAG,EAAE;QAAE,OAAO,GAAG,OAAO,KAAK,gBAAgB,GAAG,CAAC;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;IACvC,MAAM,gBAAgB,GAAG,OAAO,GAAG,EAAE,CAAC;IACtC,OAAO,GAAG,KAAK,KAAK,gBAAgB,GAAG,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatMultilineLog.d.ts","sourceRoot":"","sources":["../../../src/business/utils/formatMultilineLog.ts"],"names":[],"mappings":"AAAA,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC/B,MAAM,GAAG,IAAI,CAIf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatMultilineLog.js","sourceRoot":"","sources":["../../../src/business/utils/formatMultilineLog.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,kBAAkB,CAChC,KAAgC;IAEhC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC"}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export { formatDuration, formatDurationFromTimestamps } from './formatDuration';
|
|
2
|
+
export { formatDate } from './formatDate';
|
|
3
|
+
export { formatMultilineLog } from './formatMultilineLog';
|
|
4
|
+
export { parseExpertiseTitle } from './parseExpertiseTitle';
|
|
5
|
+
export { validateEmailDomain } from './validateEmailDomain';
|
|
6
|
+
export { normalizePath, patternizePath } from './pathUtils';
|
|
7
|
+
export { RECURRENCE_OPTIONS, DAY_OPTIONS, describeScheduleTarget, describeRecurrence, } from './scheduleUtils';
|
|
2
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/business/utils/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/business/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export { formatDuration, formatDurationFromTimestamps } from './formatDuration';
|
|
2
|
+
export { formatDate } from './formatDate';
|
|
3
|
+
export { formatMultilineLog } from './formatMultilineLog';
|
|
4
|
+
export { parseExpertiseTitle } from './parseExpertiseTitle';
|
|
5
|
+
export { validateEmailDomain } from './validateEmailDomain';
|
|
6
|
+
export { normalizePath, patternizePath } from './pathUtils';
|
|
7
|
+
export { RECURRENCE_OPTIONS, DAY_OPTIONS, describeScheduleTarget, describeRecurrence, } from './scheduleUtils';
|
|
2
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/business/utils/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/business/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseExpertiseTitle.d.ts","sourceRoot":"","sources":["../../../src/business/utils/parseExpertiseTitle.ts"],"names":[],"mappings":"AAOA,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG;IAChD,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf,CAMA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseExpertiseTitle.js","sourceRoot":"","sources":["../../../src/business/utils/parseExpertiseTitle.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAI7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACjD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathUtils.d.ts","sourceRoot":"","sources":["../../../src/business/utils/pathUtils.ts"],"names":[],"mappings":"AAMA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAmB5E;AAQD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAkBvD"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export function normalizePath(path) {
|
|
2
|
+
if (!path)
|
|
3
|
+
return null;
|
|
4
|
+
const normalizeValue = (value) => {
|
|
5
|
+
if (value.length > 1 && value.endsWith('/')) {
|
|
6
|
+
return value.replace(/\/+$/, '');
|
|
7
|
+
}
|
|
8
|
+
return value || '/';
|
|
9
|
+
};
|
|
10
|
+
try {
|
|
11
|
+
const parsed = new URL(path);
|
|
12
|
+
return normalizeValue(parsed.pathname || '/');
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
const [pathname] = path.split(/[?#]/, 1);
|
|
16
|
+
if (!pathname)
|
|
17
|
+
return null;
|
|
18
|
+
if (pathname.startsWith('/'))
|
|
19
|
+
return normalizeValue(pathname);
|
|
20
|
+
return normalizeValue(`/${pathname}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export function patternizePath(pathname) {
|
|
24
|
+
const segments = pathname.split('/');
|
|
25
|
+
const result = segments.map(seg => {
|
|
26
|
+
if (!seg)
|
|
27
|
+
return seg;
|
|
28
|
+
if (/^\d+$/.test(seg))
|
|
29
|
+
return ':param';
|
|
30
|
+
if (/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(seg))
|
|
31
|
+
return ':param';
|
|
32
|
+
if (/^[0-9a-f]{12,}$/i.test(seg))
|
|
33
|
+
return ':param';
|
|
34
|
+
return seg;
|
|
35
|
+
});
|
|
36
|
+
return result.join('/') || '/';
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=pathUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathUtils.js","sourceRoot":"","sources":["../../../src/business/utils/pathUtils.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,aAAa,CAAC,IAA+B;IAC3D,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,MAAM,cAAc,GAAG,CAAC,KAAa,EAAE,EAAE;QACvC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,KAAK,IAAI,GAAG,CAAC;IACtB,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO,cAAc,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9D,OAAO,cAAc,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAQD,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QAChC,IAAI,CAAC,GAAG;YAAE,OAAO,GAAG,CAAC;QAErB,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC;QAEvC,IACE,iEAAiE,CAAC,IAAI,CACpE,GAAG,CACJ;YAED,OAAO,QAAQ,CAAC;QAElB,IAAI,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC;QAClD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { TestScheduleResponse } from '@sudobility/testomniac_types';
|
|
2
|
+
export declare const RECURRENCE_OPTIONS: readonly [{
|
|
3
|
+
readonly value: "one_time";
|
|
4
|
+
readonly label: "One time";
|
|
5
|
+
}, {
|
|
6
|
+
readonly value: "daily";
|
|
7
|
+
readonly label: "Daily";
|
|
8
|
+
}, {
|
|
9
|
+
readonly value: "weekday";
|
|
10
|
+
readonly label: "Weekday";
|
|
11
|
+
}, {
|
|
12
|
+
readonly value: "weekly";
|
|
13
|
+
readonly label: "Weekly";
|
|
14
|
+
}];
|
|
15
|
+
export declare const DAY_OPTIONS: readonly [{
|
|
16
|
+
readonly value: 0;
|
|
17
|
+
readonly label: "Sunday";
|
|
18
|
+
}, {
|
|
19
|
+
readonly value: 1;
|
|
20
|
+
readonly label: "Monday";
|
|
21
|
+
}, {
|
|
22
|
+
readonly value: 2;
|
|
23
|
+
readonly label: "Tuesday";
|
|
24
|
+
}, {
|
|
25
|
+
readonly value: 3;
|
|
26
|
+
readonly label: "Wednesday";
|
|
27
|
+
}, {
|
|
28
|
+
readonly value: 4;
|
|
29
|
+
readonly label: "Thursday";
|
|
30
|
+
}, {
|
|
31
|
+
readonly value: 5;
|
|
32
|
+
readonly label: "Friday";
|
|
33
|
+
}, {
|
|
34
|
+
readonly value: 6;
|
|
35
|
+
readonly label: "Saturday";
|
|
36
|
+
}];
|
|
37
|
+
export declare function describeScheduleTarget(schedule: TestScheduleResponse): string;
|
|
38
|
+
export declare function describeRecurrence(schedule: TestScheduleResponse): string;
|
|
39
|
+
//# sourceMappingURL=scheduleUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduleUtils.d.ts","sourceRoot":"","sources":["../../../src/business/utils/scheduleUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAKrB,CAAC;AAEX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;EAQd,CAAC;AAEX,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAO7E;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,MAAM,CAczE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export const RECURRENCE_OPTIONS = [
|
|
2
|
+
{ value: 'one_time', label: 'One time' },
|
|
3
|
+
{ value: 'daily', label: 'Daily' },
|
|
4
|
+
{ value: 'weekday', label: 'Weekday' },
|
|
5
|
+
{ value: 'weekly', label: 'Weekly' },
|
|
6
|
+
];
|
|
7
|
+
export const DAY_OPTIONS = [
|
|
8
|
+
{ value: 0, label: 'Sunday' },
|
|
9
|
+
{ value: 1, label: 'Monday' },
|
|
10
|
+
{ value: 2, label: 'Tuesday' },
|
|
11
|
+
{ value: 3, label: 'Wednesday' },
|
|
12
|
+
{ value: 4, label: 'Thursday' },
|
|
13
|
+
{ value: 5, label: 'Friday' },
|
|
14
|
+
{ value: 6, label: 'Saturday' },
|
|
15
|
+
];
|
|
16
|
+
export function describeScheduleTarget(schedule) {
|
|
17
|
+
if (schedule.testSurfaceBundleId)
|
|
18
|
+
return `Bundle #${schedule.testSurfaceBundleId}`;
|
|
19
|
+
if (schedule.testSurfaceId)
|
|
20
|
+
return `Surface #${schedule.testSurfaceId}`;
|
|
21
|
+
if (schedule.testInteractionId)
|
|
22
|
+
return `Element #${schedule.testInteractionId}`;
|
|
23
|
+
return 'Unknown target';
|
|
24
|
+
}
|
|
25
|
+
export function describeRecurrence(schedule) {
|
|
26
|
+
if (schedule.recurrenceType === 'weekly' && schedule.dayOfWeek != null) {
|
|
27
|
+
const day = DAY_OPTIONS.find(option => option.value === schedule.dayOfWeek)?.label ??
|
|
28
|
+
'Day';
|
|
29
|
+
return `Weekly on ${day} at ${schedule.timeOfDay}`;
|
|
30
|
+
}
|
|
31
|
+
if (schedule.recurrenceType === 'weekday') {
|
|
32
|
+
return `Weekdays at ${schedule.timeOfDay}`;
|
|
33
|
+
}
|
|
34
|
+
if (schedule.recurrenceType === 'daily') {
|
|
35
|
+
return `Daily at ${schedule.timeOfDay}`;
|
|
36
|
+
}
|
|
37
|
+
return `One time at ${schedule.timeOfDay}`;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=scheduleUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduleUtils.js","sourceRoot":"","sources":["../../../src/business/utils/scheduleUtils.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IAClC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACtC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;CAC5B,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC7B,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC7B,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE;IAC9B,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE;IAChC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;IAC/B,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;IAC7B,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE;CACvB,CAAC;AAEX,MAAM,UAAU,sBAAsB,CAAC,QAA8B;IACnE,IAAI,QAAQ,CAAC,mBAAmB;QAC9B,OAAO,WAAW,QAAQ,CAAC,mBAAmB,EAAE,CAAC;IACnD,IAAI,QAAQ,CAAC,aAAa;QAAE,OAAO,YAAY,QAAQ,CAAC,aAAa,EAAE,CAAC;IACxE,IAAI,QAAQ,CAAC,iBAAiB;QAC5B,OAAO,YAAY,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IAClD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAA8B;IAC/D,IAAI,QAAQ,CAAC,cAAc,KAAK,QAAQ,IAAI,QAAQ,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;QACvE,MAAM,GAAG,GACP,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK;YACtE,KAAK,CAAC;QACR,OAAO,aAAa,GAAG,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAC;IACrD,CAAC;IACD,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,eAAe,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,QAAQ,CAAC,cAAc,KAAK,OAAO,EAAE,CAAC;QACxC,OAAO,YAAY,QAAQ,CAAC,SAAS,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,eAAe,QAAQ,CAAC,SAAS,EAAE,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateEmailDomain.d.ts","sourceRoot":"","sources":["../../../src/business/utils/validateEmailDomain.ts"],"names":[],"mappings":"AAWA,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CASvE"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export function validateEmailDomain(email, url) {
|
|
2
|
+
if (!email)
|
|
3
|
+
return true;
|
|
4
|
+
try {
|
|
5
|
+
const urlDomain = new URL(url).hostname.split('.').slice(-2).join('.');
|
|
6
|
+
const emailDomain = email.split('@')[1]?.toLowerCase();
|
|
7
|
+
return emailDomain === urlDomain || emailDomain?.endsWith(`.${urlDomain}`);
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=validateEmailDomain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateEmailDomain.js","sourceRoot":"","sources":["../../../src/business/utils/validateEmailDomain.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,mBAAmB,CAAC,KAAa,EAAE,GAAW;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvE,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QACvD,OAAO,WAAW,KAAK,SAAS,IAAI,WAAW,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|