@rh-support/utils 2.4.3-beta.5 → 2.5.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/lib/esm/dateUtils.d.ts
CHANGED
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
type Granularity = 'day' | 'week' | 'month' | 'year';
|
|
2
2
|
export declare const formatDate: (date: any, locale?: string, format?: Intl.DateTimeFormatOptions) => string;
|
|
3
3
|
export declare const formatDateTime: (date: any, locale?: string, format?: Intl.DateTimeFormatOptions) => string;
|
|
4
|
-
export declare const
|
|
4
|
+
export declare const isCurrentDateAfterDate: (date: string, granularity?: Granularity) => boolean;
|
|
5
5
|
export declare const getTimezoneOffsetFromTZName: (tzName: string) => string;
|
|
6
6
|
export declare const getPastUTCDateFromNow: (pastDays: number) => string;
|
|
7
|
-
export declare const
|
|
8
|
-
export
|
|
9
|
-
type AddToDate = {
|
|
7
|
+
export declare const isFutureDate: (date: string, granularity?: Granularity) => boolean;
|
|
8
|
+
export interface AddToDate {
|
|
10
9
|
days: number;
|
|
11
|
-
date?: string;
|
|
12
|
-
}
|
|
13
|
-
export declare const addDaysToDate: (params: AddToDate) =>
|
|
10
|
+
date?: Date | string | number;
|
|
11
|
+
}
|
|
12
|
+
export declare const addDaysToDate: (params: AddToDate) => Date;
|
|
14
13
|
export declare const isValidDate: (dateString: string) => boolean;
|
|
15
14
|
export declare const generateUniqueIdBasedOnNowDate: () => string;
|
|
16
15
|
export declare const ABTestSplitSplitBasedOnDate: (testVariationWeight: number, dateString: string) => "A" | "B";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateUtils.d.ts","sourceRoot":"","sources":["../../src/dateUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dateUtils.d.ts","sourceRoot":"","sources":["../../src/dateUtils.ts"],"names":[],"mappings":"AAaA,KAAK,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAErD,eAAO,MAAM,UAAU,wCAGX,IAAI,CAAC,qBAAqB,WASrC,CAAC;AAEF,eAAO,MAAM,cAAc,wCAGf,IAAI,CAAC,qBAAqB,WAerC,CAAC;AAEF,eAAO,MAAM,sBAAsB,SAAU,MAAM,gBAAe,WAAW,KAAW,OA4BvF,CAAC;AAEF,eAAO,MAAM,2BAA2B,WAAY,MAAM,KAAG,MAI5D,CAAC;AAEF,eAAO,MAAM,qBAAqB,aAAc,MAAM,KAAG,MAGxD,CAAC;AAEF,eAAO,MAAM,YAAY,SAAU,MAAM,gBAAe,WAAW,KAAW,OA6B7E,CAAC;AAEF,MAAM,WAAW,SAAS;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;CACjC;AAED,eAAO,MAAM,aAAa,WAAY,SAAS,KAAG,IAGjD,CAAC;AAEF,eAAO,MAAM,WAAW,eAAgB,MAAM,YAI7C,CAAC;AAEF,eAAO,MAAM,8BAA8B,cAE1C,CAAC;AAQF,eAAO,MAAM,2BAA2B,wBAAyB,MAAM,cAAc,MAAM,cAe1F,CAAC;AASF,eAAO,MAAM,+BAA+B,wBAAyB,MAAM,iBAAiB,MAAM,cAkBjG,CAAC"}
|
package/lib/esm/dateUtils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { isValid, parseISO } from 'date-fns';
|
|
2
|
-
import
|
|
1
|
+
import { addDays, isAfter, isValid, parseISO, startOfDay, startOfMonth, startOfWeek, startOfYear, subDays, } from 'date-fns';
|
|
2
|
+
import { format, formatInTimeZone, fromZonedTime } from 'date-fns-tz';
|
|
3
3
|
export const formatDate = (date, locale = 'en-us', format = { month: 'short', day: 'numeric', year: 'numeric' }) => {
|
|
4
4
|
if (!date) {
|
|
5
5
|
return '';
|
|
@@ -24,22 +24,72 @@ export const formatDateTime = (date, locale = 'en-us', format = {
|
|
|
24
24
|
}
|
|
25
25
|
return formatDate(date, locale, format);
|
|
26
26
|
};
|
|
27
|
-
export const
|
|
27
|
+
export const isCurrentDateAfterDate = (date, granularity = 'day') => {
|
|
28
|
+
const parsedDate = parseISO(date);
|
|
29
|
+
const now = new Date();
|
|
30
|
+
let comparisonDate;
|
|
31
|
+
let comparisonNow;
|
|
32
|
+
switch (granularity) {
|
|
33
|
+
case 'day':
|
|
34
|
+
comparisonDate = startOfDay(parsedDate);
|
|
35
|
+
comparisonNow = startOfDay(now);
|
|
36
|
+
break;
|
|
37
|
+
case 'week':
|
|
38
|
+
comparisonDate = startOfWeek(parsedDate);
|
|
39
|
+
comparisonNow = startOfWeek(now);
|
|
40
|
+
break;
|
|
41
|
+
case 'month':
|
|
42
|
+
comparisonDate = startOfMonth(parsedDate);
|
|
43
|
+
comparisonNow = startOfMonth(now);
|
|
44
|
+
break;
|
|
45
|
+
case 'year':
|
|
46
|
+
comparisonDate = startOfYear(parsedDate);
|
|
47
|
+
comparisonNow = startOfYear(now);
|
|
48
|
+
break;
|
|
49
|
+
default:
|
|
50
|
+
throw new Error('Invalid granularity');
|
|
51
|
+
}
|
|
52
|
+
return isAfter(comparisonNow, comparisonDate);
|
|
53
|
+
};
|
|
28
54
|
export const getTimezoneOffsetFromTZName = (tzName) => {
|
|
29
|
-
|
|
55
|
+
const date = new Date();
|
|
56
|
+
const zonedDate = fromZonedTime(date, tzName);
|
|
57
|
+
return format(zonedDate, 'xxx', { timeZone: tzName });
|
|
30
58
|
};
|
|
31
59
|
export const getPastUTCDateFromNow = (pastDays) => {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
export const isCurrentDateSameAsOrBeforeDate = (date, granularity = 'day') => {
|
|
35
|
-
return moment(moment.now()).isSameOrBefore(date, granularity);
|
|
60
|
+
const date = subDays(new Date(), pastDays);
|
|
61
|
+
return formatInTimeZone(date, 'UTC', "yyyy-MM-dd'T'HH:mm:ss'Z'");
|
|
36
62
|
};
|
|
37
63
|
export const isFutureDate = (date, granularity = 'day') => {
|
|
38
|
-
|
|
64
|
+
const parsedDate = parseISO(date);
|
|
65
|
+
const now = new Date();
|
|
66
|
+
let comparisonDate;
|
|
67
|
+
let comparisonNow;
|
|
68
|
+
switch (granularity) {
|
|
69
|
+
case 'day':
|
|
70
|
+
comparisonDate = startOfDay(parsedDate);
|
|
71
|
+
comparisonNow = startOfDay(now);
|
|
72
|
+
break;
|
|
73
|
+
case 'week':
|
|
74
|
+
comparisonDate = startOfWeek(parsedDate);
|
|
75
|
+
comparisonNow = startOfWeek(now);
|
|
76
|
+
break;
|
|
77
|
+
case 'month':
|
|
78
|
+
comparisonDate = startOfMonth(parsedDate);
|
|
79
|
+
comparisonNow = startOfMonth(now);
|
|
80
|
+
break;
|
|
81
|
+
case 'year':
|
|
82
|
+
comparisonDate = startOfYear(parsedDate);
|
|
83
|
+
comparisonNow = startOfYear(now);
|
|
84
|
+
break;
|
|
85
|
+
default:
|
|
86
|
+
throw new Error('Invalid granularity');
|
|
87
|
+
}
|
|
88
|
+
return isAfter(comparisonDate, comparisonNow);
|
|
39
89
|
};
|
|
40
90
|
export const addDaysToDate = (params) => {
|
|
41
91
|
const { days, date = new Date() } = params;
|
|
42
|
-
return
|
|
92
|
+
return addDays(new Date(date), days);
|
|
43
93
|
};
|
|
44
94
|
export const isValidDate = (dateString) => {
|
|
45
95
|
const parsedDate = parseISO(dateString);
|
package/lib/esm/eventUtils.d.ts
CHANGED
|
@@ -5,7 +5,17 @@ export interface IPendoTrackEventProperty {
|
|
|
5
5
|
declare function haltEvent(event: React.SyntheticEvent<{}>): void;
|
|
6
6
|
declare function pendoTrackEvent(name: any, properties?: IPendoTrackEventProperty): void;
|
|
7
7
|
declare function dtmTrackEvent(eventName: string, stepName: string, caseNumber?: string, product?: string): void;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Gets the page name used in track events based off the current pathname.
|
|
10
|
+
* @param pathname the current pathname
|
|
11
|
+
* @returns the track event page name
|
|
12
|
+
*/
|
|
13
|
+
export declare function getPageName(pathname: string): string;
|
|
14
|
+
declare function dtmTrackEventCaseCreationStepEncountered(caseSection: boolean, stepName: string, caseNumber?: string, caseType?: string, caseTitle?: string, product?: string, version?: string): void;
|
|
15
|
+
export declare function dtmTrackEventCaseStepEncountered(stepName: 'close' | 'comment' | 'follow' | 'review', caseNumber?: string, product?: string, version?: string): void;
|
|
16
|
+
export declare function dtmTrackEventPageLoadStarted(pageName: string): void;
|
|
17
|
+
declare function dtmTrackEventRecommendationListingItemClicked(url: string, activityName: string, contentListingRegion: string, contentID: string, contentPosition: number, contentTitle: string, contentUrl: string, displayFeature: string, displayFeatureTitle: string): void;
|
|
18
|
+
declare function dtmTrackEventRecommendationListingDisplayed(contentListingRegion: any, activityName: any, listing: any, resultsCount: any): void;
|
|
19
|
+
export declare function dtmTrackEventUploadFileToAnalyze(caseSection: boolean, stepName: string, caseType?: string, caseTitle?: string, product?: string, version?: string): void;
|
|
20
|
+
export { haltEvent, pendoTrackEvent, dtmTrackEvent, dtmTrackEventCaseCreationStepEncountered, dtmTrackEventRecommendationListingItemClicked, dtmTrackEventRecommendationListingDisplayed, };
|
|
11
21
|
//# sourceMappingURL=eventUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventUtils.d.ts","sourceRoot":"","sources":["../../src/eventUtils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,wBAAwB;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,iBAAS,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,QAKjD;AAKD,iBAAS,eAAe,CAAC,IAAI,KAAA,EAAE,UAAU,GAAE,wBAA6B,QAMvE;AAED,iBAAS,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,QAUhG;AAED,iBAAS,
|
|
1
|
+
{"version":3,"file":"eventUtils.d.ts","sourceRoot":"","sources":["../../src/eventUtils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,wBAAwB;IACrC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,iBAAS,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,QAKjD;AAKD,iBAAS,eAAe,CAAC,IAAI,KAAA,EAAE,UAAU,GAAE,wBAA6B,QAMvE;AAED,iBAAS,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,QAUhG;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAGD,iBAAS,wCAAwC,CAC7C,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,QAkBnB;AAGD,wBAAgB,gCAAgC,CAC5C,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,EACnD,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,QAcnB;AAGD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,QAW5D;AAGD,iBAAS,6CAA6C,CAClD,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,oBAAoB,EAAE,MAAM,EAC5B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,mBAAmB,EAAE,MAAM,QA6B9B;AAGD,iBAAS,2CAA2C,CAAC,oBAAoB,KAAA,EAAE,YAAY,KAAA,EAAE,OAAO,KAAA,EAAE,YAAY,KAAA,QAW7G;AAGD,wBAAgB,gCAAgC,CAC5C,WAAW,EAAE,OAAO,EACpB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,QAiBnB;AAED,OAAO,EACH,SAAS,EACT,eAAe,EACf,aAAa,EACb,wCAAwC,EACxC,6CAA6C,EAC7C,2CAA2C,GAC9C,CAAC"}
|
package/lib/esm/eventUtils.js
CHANGED
|
@@ -27,10 +27,94 @@ function dtmTrackEvent(eventName, stepName, caseNumber, product) {
|
|
|
27
27
|
},
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Gets the page name used in track events based off the current pathname.
|
|
32
|
+
* @param pathname the current pathname
|
|
33
|
+
* @returns the track event page name
|
|
34
|
+
*/
|
|
35
|
+
export function getPageName(pathname) {
|
|
36
|
+
return `cp|support|cases|${pathname.replace('#', '').split('/').filter(Boolean).join('|')}`;
|
|
32
37
|
}
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
// https://github.com/further-external/redhat-datalayer/blob/main/EDDL/global-datalayer.md#case-creation-step-encountered
|
|
39
|
+
function dtmTrackEventCaseCreationStepEncountered(caseSection, stepName, caseNumber, caseType, caseTitle, product, version) {
|
|
40
|
+
const event = 'Case Creation Step Encountered';
|
|
41
|
+
const caseObject = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ type: 'cp-support', caseSection: caseSection ? 'case' : 'troubleshoot', stepName }, (caseNumber && { caseNumber })), (version && { caseProductVersion: version })), (caseType && { caseType })), (caseTitle && { caseTitle })), (product && { caseProduct: product }));
|
|
42
|
+
(window.appEventData || []).push({
|
|
43
|
+
event,
|
|
44
|
+
case: caseObject,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// https://github.com/further-external/redhat-datalayer/blob/main/EDDL/global-datalayer.md#Case-Step-Encountered
|
|
48
|
+
export function dtmTrackEventCaseStepEncountered(stepName, caseNumber, product, version) {
|
|
49
|
+
const event = 'Case Step Encountered';
|
|
50
|
+
const caseObject = Object.assign(Object.assign({ type: 'cp-support', stepName }, (caseNumber && { caseNumber })), (product && { caseProduct: `${product}|${version}` }));
|
|
51
|
+
(window.appEventData || []).push({
|
|
52
|
+
event,
|
|
53
|
+
case: caseObject,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
// https://github.com/further-external/redhat-datalayer/blob/main/EDDL/global-datalayer.md#Page-Load-Started
|
|
57
|
+
export function dtmTrackEventPageLoadStarted(pageName) {
|
|
58
|
+
const event = 'Page Load Started';
|
|
59
|
+
const caseObject = {
|
|
60
|
+
type: 'cp-support',
|
|
61
|
+
pageName,
|
|
62
|
+
};
|
|
63
|
+
(window.appEventData || []).push({
|
|
64
|
+
event,
|
|
65
|
+
case: caseObject,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
// https://github.com/further-external/redhat-datalayer/blob/main/EDDL/global-datalayer.md#recommendation-listing-item-clicked
|
|
69
|
+
function dtmTrackEventRecommendationListingItemClicked(url, activityName, contentListingRegion, contentID, contentPosition, contentTitle, contentUrl, displayFeature, displayFeatureTitle) {
|
|
70
|
+
(window.appEventData || []).push({
|
|
71
|
+
event: 'Recommendation Listing Item Clicked',
|
|
72
|
+
linkInfo: {
|
|
73
|
+
href: url,
|
|
74
|
+
linkType: 'list',
|
|
75
|
+
linkTypeName: 'listing result click',
|
|
76
|
+
targetHost: 'access.redhat.com',
|
|
77
|
+
text: 'text',
|
|
78
|
+
},
|
|
79
|
+
listingItemClicked: {
|
|
80
|
+
activityName,
|
|
81
|
+
contentListingRegion,
|
|
82
|
+
listing: [
|
|
83
|
+
{
|
|
84
|
+
content: {
|
|
85
|
+
contentID,
|
|
86
|
+
contentPosition,
|
|
87
|
+
contentTitle,
|
|
88
|
+
contentUrl,
|
|
89
|
+
displayFeature,
|
|
90
|
+
displayFeatureTitle,
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
listingType: 'Support Cases',
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
// https://github.com/further-external/redhat-datalayer/blob/main/EDDL/global-datalayer.md#recommendation-listing-displayed
|
|
99
|
+
function dtmTrackEventRecommendationListingDisplayed(contentListingRegion, activityName, listing, resultsCount) {
|
|
100
|
+
(window.appEventData || []).push({
|
|
101
|
+
event: 'Recommendation Listing Displayed',
|
|
102
|
+
listingDisplayed: {
|
|
103
|
+
activityName,
|
|
104
|
+
contentListingRegion,
|
|
105
|
+
listing,
|
|
106
|
+
listingType: 'content',
|
|
107
|
+
resultsCount,
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
// https://github.com/further-external/redhat-datalayer/blob/main/EDDL/global-datalayer.md#Upload-File-to-Analyze
|
|
112
|
+
export function dtmTrackEventUploadFileToAnalyze(caseSection, stepName, caseType, caseTitle, product, version) {
|
|
113
|
+
const eventName = 'Upload File to Analyze';
|
|
114
|
+
const caseObject = Object.assign(Object.assign(Object.assign(Object.assign({ type: 'cp-support', caseSection: caseSection ? 'case' : 'troubleshoot', stepName }, (product && { caseProduct: product })), (version && { caseProductVersion: version })), (caseType && { caseType })), (caseTitle && { caseTitle }));
|
|
115
|
+
(window.appEventData || []).push({
|
|
116
|
+
event: eventName,
|
|
117
|
+
case: caseObject,
|
|
118
|
+
});
|
|
35
119
|
}
|
|
36
|
-
export { haltEvent, pendoTrackEvent, dtmTrackEvent,
|
|
120
|
+
export { haltEvent, pendoTrackEvent, dtmTrackEvent, dtmTrackEventCaseCreationStepEncountered, dtmTrackEventRecommendationListingItemClicked, dtmTrackEventRecommendationListingDisplayed, };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const emojiPattern = /[\u{1f300}-\u{1f5ff}\u{1f900}-\u{1f9ff}\u{1f600}-\u{1f64f}\u{1f680}-\u{1f6ff}\u{2600}-\u{26ff}\u{2700}-\u{27bf}\u{1f1e6}-\u{1f1ff}\u{1f191}-\u{1f251}\u{1f004}\u{1f0cf}\u{1f170}-\u{1f171}\u{1f17e}-\u{1f17f}\u{1f18e}\u{3030}\u{2b50}\u{2b55}\u{2934}-\u{2935}\u{2b05}-\u{2b07}\u{2b1b}-\u{2b1c}\u{3297}\u{3299}\u{303d}\u{00a9}\u{00ae}\u{2122}\u{23f3}\u{24c2}\u{23e9}-\u{23ef}\u{25b6}\u{23f8}-\u{23fa}]/gu;
|
|
2
2
|
const mailformat = new RegExp(
|
|
3
3
|
// eslint-disable-next-line no-control-regex
|
|
4
|
-
"([!#-'*+/-9=?A-Z^-~-]+(
|
|
4
|
+
"^([!#-'*+/-9=?A-Z^-~-]+(\\.[!#-'*+/-9=?A-Z^-~-]+)*|\"([]!#-[^-~ \\t]|(\\[\\t -~]))+\")@([!#-'*+/-9=?A-Z^-~-]+(\\.[!#-'*+/-9=?A-Z^-~-]+)*|\\[[\\t -Z^-~]*])$");
|
|
5
5
|
const imageRegex = /^image\/(gif|png|jpeg)$/;
|
|
6
6
|
// To check if email is valid
|
|
7
7
|
function isEmailValid(object) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rh-support/utils",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"author": "Vikas Rathee <vrathee@redhat.com>",
|
|
6
6
|
"license": "ISC",
|
|
@@ -51,11 +51,11 @@
|
|
|
51
51
|
"@cee-eng/hydrajs": "4.17.36",
|
|
52
52
|
"@rh-support/types": "2.0.4",
|
|
53
53
|
"date-fns": "3.6.0",
|
|
54
|
+
"date-fns-tz": "^3.1.3",
|
|
54
55
|
"dompurify": "^2.2.6",
|
|
55
56
|
"localforage": "^1.10.0",
|
|
56
57
|
"lodash": "^4.17.21",
|
|
57
58
|
"lucene": "^2.1.1",
|
|
58
|
-
"marked": "^1.2.4",
|
|
59
59
|
"qs": "^6.7.0",
|
|
60
60
|
"solr-query-builder": "1.0.1"
|
|
61
61
|
},
|
|
@@ -68,12 +68,11 @@
|
|
|
68
68
|
"@types/qs": "^6.9.1",
|
|
69
69
|
"i18next": "^23.15.0",
|
|
70
70
|
"jest": "^29.7.0",
|
|
71
|
-
"jest-environment-jsdom": "^29.7.0"
|
|
72
|
-
"moment-timezone": "^0.5.45"
|
|
71
|
+
"jest-environment-jsdom": "^29.7.0"
|
|
73
72
|
},
|
|
74
73
|
"browserslist": [
|
|
75
74
|
"defaults and supports es6-module",
|
|
76
75
|
"maintained node versions"
|
|
77
76
|
],
|
|
78
|
-
"gitHead": "
|
|
77
|
+
"gitHead": "908b440e3c6cd625c77178c3205f4e2908630446"
|
|
79
78
|
}
|