mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-01-28 07:03:17 +08:00
refactor(deps): replace moment
with dayjs
Replace Mermaid's dependency on `moment` with `dayjs`. [Moment is now in maintenance mode][1], and they don't recommend using it. [Dayjs][2] has almost exactly the same API as moment, and is still curently being maintained. Unlike moment, dayjs objects are immutable, which makes our life much easier, but we need to do `a = a.add(1, "day")` instead of just `a.add(1, "day")`. We can't use `dayjs.duration`, because unlike `moment.duration`, [dayjs durations always degrade to ms][3]. This causes issues with daylight savings, since it assumes that each day is 24 hours, when some days have 23/25 hours with daylight savings. (it also assumes that each month is 30 days). However, `dayjs.add(1, "d");` correctly adds 1 days, even when that day is only 23 hours long, so we can use that instead. [1]: https://momentjs.com/docs/#/-project-status/ [2]: https://day.js.org/ [3]: https://day.js.org/docs/en/durations/durations
This commit is contained in:
parent
06640aba06
commit
a5db04b01c
@ -184,7 +184,7 @@ The following formatting options are supported:
|
|||||||
| `YY` | 14 | 2 digit year |
|
| `YY` | 14 | 2 digit year |
|
||||||
| `Q` | 1..4 | Quarter of year. Sets month to first month in quarter. |
|
| `Q` | 1..4 | Quarter of year. Sets month to first month in quarter. |
|
||||||
| `M MM` | 1..12 | Month number |
|
| `M MM` | 1..12 | Month number |
|
||||||
| `MMM MMMM` | January..Dec | Month name in locale set by `moment.locale()` |
|
| `MMM MMMM` | January..Dec | Month name in locale set by `dayjs.locale()` |
|
||||||
| `D DD` | 1..31 | Day of month |
|
| `D DD` | 1..31 | Day of month |
|
||||||
| `Do` | 1st..31st | Day of month with ordinal |
|
| `Do` | 1st..31st | Day of month with ordinal |
|
||||||
| `DDD DDDD` | 1..365 | Day of year |
|
| `DDD DDDD` | 1..365 | Day of year |
|
||||||
@ -200,7 +200,7 @@ The following formatting options are supported:
|
|||||||
| `SSS` | 0..999 | Thousandths of a second |
|
| `SSS` | 0..999 | Thousandths of a second |
|
||||||
| `Z ZZ` | +12:00 | Offset from UTC as +-HH:mm, +-HHmm, or Z |
|
| `Z ZZ` | +12:00 | Offset from UTC as +-HH:mm, +-HHmm, or Z |
|
||||||
|
|
||||||
More info in: <https://momentjs.com/docs/#/parsing/string-format/>
|
More info in: <https://day.js.org/docs/en/parse/string-format/>
|
||||||
|
|
||||||
### Output date format on the axis
|
### Output date format on the axis
|
||||||
|
|
||||||
|
@ -57,11 +57,11 @@
|
|||||||
"cytoscape-fcose": "^2.1.0",
|
"cytoscape-fcose": "^2.1.0",
|
||||||
"d3": "^7.4.0",
|
"d3": "^7.4.0",
|
||||||
"dagre-d3-es": "7.0.9",
|
"dagre-d3-es": "7.0.9",
|
||||||
|
"dayjs": "^1.11.7",
|
||||||
"dompurify": "2.4.3",
|
"dompurify": "2.4.3",
|
||||||
"elkjs": "^0.8.2",
|
"elkjs": "^0.8.2",
|
||||||
"khroma": "^2.0.0",
|
"khroma": "^2.0.0",
|
||||||
"lodash-es": "^4.17.21",
|
"lodash-es": "^4.17.21",
|
||||||
"moment-mini": "^2.29.4",
|
|
||||||
"non-layered-tidy-tree-layout": "^2.0.2",
|
"non-layered-tidy-tree-layout": "^2.0.2",
|
||||||
"stylis": "^4.1.2",
|
"stylis": "^4.1.2",
|
||||||
"ts-dedent": "^2.2.0",
|
"ts-dedent": "^2.2.0",
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
import moment from 'moment-mini';
|
|
||||||
import { sanitizeUrl } from '@braintree/sanitize-url';
|
import { sanitizeUrl } from '@braintree/sanitize-url';
|
||||||
|
import dayjs from 'dayjs';
|
||||||
|
import dayjsIsoWeek from 'dayjs/plugin/isoWeek';
|
||||||
|
import dayjsCustomParseFormat from 'dayjs/plugin/customParseFormat';
|
||||||
|
import dayjsAdvancedFormat from 'dayjs/plugin/advancedFormat';
|
||||||
import { log } from '../../logger';
|
import { log } from '../../logger';
|
||||||
import * as configApi from '../../config';
|
import * as configApi from '../../config';
|
||||||
import utils from '../../utils';
|
import utils from '../../utils';
|
||||||
@ -15,6 +18,10 @@ import {
|
|||||||
getDiagramTitle,
|
getDiagramTitle,
|
||||||
} from '../../commonDb';
|
} from '../../commonDb';
|
||||||
|
|
||||||
|
dayjs.extend(dayjsIsoWeek);
|
||||||
|
dayjs.extend(dayjsCustomParseFormat);
|
||||||
|
dayjs.extend(dayjsAdvancedFormat);
|
||||||
|
|
||||||
let dateFormat = '';
|
let dateFormat = '';
|
||||||
let axisFormat = '';
|
let axisFormat = '';
|
||||||
let tickInterval = undefined;
|
let tickInterval = undefined;
|
||||||
@ -162,18 +169,58 @@ export const isInvalidDate = function (date, dateFormat, excludes, includes) {
|
|||||||
return excludes.includes(date.format(dateFormat.trim()));
|
return excludes.includes(date.format(dateFormat.trim()));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: fully document what this function does and what types it accepts
|
||||||
|
*
|
||||||
|
* @param {object} task - The task to check.
|
||||||
|
* @param {string | Date} task.startTime - Might be a `Date` or a `string`.
|
||||||
|
* TODO: is this always a Date?
|
||||||
|
* @param {string | Date} task.endTime - Might be a `Date` or a `string`.
|
||||||
|
* TODO: is this always a Date?
|
||||||
|
* @param {string} dateFormat - Dayjs date format string.
|
||||||
|
* @param {*} excludes
|
||||||
|
* @param {*} includes
|
||||||
|
*/
|
||||||
const checkTaskDates = function (task, dateFormat, excludes, includes) {
|
const checkTaskDates = function (task, dateFormat, excludes, includes) {
|
||||||
if (!excludes.length || task.manualEndTime) {
|
if (!excludes.length || task.manualEndTime) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let startTime = moment(task.startTime, dateFormat, true);
|
let startTime;
|
||||||
startTime.add(1, 'd');
|
if (task.startTime instanceof Date) {
|
||||||
let endTime = moment(task.endTime, dateFormat, true);
|
startTime = dayjs(task.startTime);
|
||||||
let renderEndTime = fixTaskDates(startTime, endTime, dateFormat, excludes, includes);
|
} else {
|
||||||
task.endTime = endTime.toDate();
|
startTime = dayjs(task.startTime, dateFormat, true);
|
||||||
|
}
|
||||||
|
startTime = startTime.add(1, 'd');
|
||||||
|
|
||||||
|
let originalEndTime;
|
||||||
|
if (task.endTime instanceof Date) {
|
||||||
|
originalEndTime = dayjs(task.endTime);
|
||||||
|
} else {
|
||||||
|
originalEndTime = dayjs(task.endTime, dateFormat, true);
|
||||||
|
}
|
||||||
|
const [fixedEndTime, renderEndTime] = fixTaskDates(
|
||||||
|
startTime,
|
||||||
|
originalEndTime,
|
||||||
|
dateFormat,
|
||||||
|
excludes,
|
||||||
|
includes
|
||||||
|
);
|
||||||
|
task.endTime = fixedEndTime.toDate();
|
||||||
task.renderEndTime = renderEndTime;
|
task.renderEndTime = renderEndTime;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: what does this function do?
|
||||||
|
*
|
||||||
|
* @param {dayjs.Dayjs} startTime - The start time.
|
||||||
|
* @param {dayjs.Dayjs} endTime - The original end time (will return a different end time if it's invalid).
|
||||||
|
* @param {string} dateFormat - Dayjs date format string.
|
||||||
|
* @param {*} excludes
|
||||||
|
* @param {*} includes
|
||||||
|
* @returns {[endTime: dayjs.Dayjs, renderEndTime: Date | null]} The new `endTime`, and the end time to render.
|
||||||
|
* `renderEndTime` may be `null` if `startTime` is newer than `endTime`.
|
||||||
|
*/
|
||||||
const fixTaskDates = function (startTime, endTime, dateFormat, excludes, includes) {
|
const fixTaskDates = function (startTime, endTime, dateFormat, excludes, includes) {
|
||||||
let invalid = false;
|
let invalid = false;
|
||||||
let renderEndTime = null;
|
let renderEndTime = null;
|
||||||
@ -183,11 +230,11 @@ const fixTaskDates = function (startTime, endTime, dateFormat, excludes, include
|
|||||||
}
|
}
|
||||||
invalid = isInvalidDate(startTime, dateFormat, excludes, includes);
|
invalid = isInvalidDate(startTime, dateFormat, excludes, includes);
|
||||||
if (invalid) {
|
if (invalid) {
|
||||||
endTime.add(1, 'd');
|
endTime = endTime.add(1, 'd');
|
||||||
}
|
}
|
||||||
startTime.add(1, 'd');
|
startTime = startTime.add(1, 'd');
|
||||||
}
|
}
|
||||||
return renderEndTime;
|
return [endTime, renderEndTime];
|
||||||
};
|
};
|
||||||
|
|
||||||
const getStartDate = function (prevTime, dateFormat, str) {
|
const getStartDate = function (prevTime, dateFormat, str) {
|
||||||
@ -223,7 +270,7 @@ const getStartDate = function (prevTime, dateFormat, str) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check for actual date set
|
// Check for actual date set
|
||||||
let mDate = moment(str, dateFormat.trim(), true);
|
let mDate = dayjs(str, dateFormat.trim(), true);
|
||||||
if (mDate.isValid()) {
|
if (mDate.isValid()) {
|
||||||
return mDate.toDate();
|
return mDate.toDate();
|
||||||
} else {
|
} else {
|
||||||
@ -238,11 +285,14 @@ const getStartDate = function (prevTime, dateFormat, str) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parse a string as a moment duration.
|
* Parse a string into the args for `dayjs.add()`.
|
||||||
*
|
*
|
||||||
* The string have to be compound by a value and a shorthand duration unit. For example `5d`
|
* The string have to be compound by a value and a shorthand duration unit. For example `5d`
|
||||||
* represents 5 days.
|
* represents 5 days.
|
||||||
*
|
*
|
||||||
|
* Please be aware that 1 day may be 23 or 25 hours, if the user lives in an area
|
||||||
|
* that has daylight savings time (or even 23.5/24.5 hours in Lord Howe Island!)
|
||||||
|
*
|
||||||
* Shorthand unit supported are:
|
* Shorthand unit supported are:
|
||||||
*
|
*
|
||||||
* - `y` for years
|
* - `y` for years
|
||||||
@ -254,33 +304,36 @@ const getStartDate = function (prevTime, dateFormat, str) {
|
|||||||
* - `ms` for milliseconds
|
* - `ms` for milliseconds
|
||||||
*
|
*
|
||||||
* @param {string} str - A string representing the duration.
|
* @param {string} str - A string representing the duration.
|
||||||
* @returns {moment.Duration} A moment duration, including an invalid moment for invalid input
|
* @returns {[value: number, unit: dayjs.ManipulateType]} Arguments to pass to `dayjs.add()`
|
||||||
* string.
|
|
||||||
*/
|
*/
|
||||||
const parseDuration = function (str) {
|
const parseDuration = function (str) {
|
||||||
const statement = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(str.trim());
|
const statement = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(str.trim());
|
||||||
if (statement !== null) {
|
if (statement !== null) {
|
||||||
return moment.duration(Number.parseFloat(statement[1]), statement[2]);
|
return [Number.parseFloat(statement[1]), statement[2]];
|
||||||
}
|
}
|
||||||
return moment.duration.invalid();
|
// NaN means an invalid duration
|
||||||
|
return [NaN, 'ms'];
|
||||||
};
|
};
|
||||||
|
|
||||||
const getEndDate = function (prevTime, dateFormat, str, inclusive = false) {
|
const getEndDate = function (prevTime, dateFormat, str, inclusive = false) {
|
||||||
str = str.trim();
|
str = str.trim();
|
||||||
|
|
||||||
// Check for actual date
|
// Check for actual date
|
||||||
let mDate = moment(str, dateFormat.trim(), true);
|
let mDate = dayjs(str, dateFormat.trim(), true);
|
||||||
if (mDate.isValid()) {
|
if (mDate.isValid()) {
|
||||||
if (inclusive) {
|
if (inclusive) {
|
||||||
mDate.add(1, 'd');
|
mDate = mDate.add(1, 'd');
|
||||||
}
|
}
|
||||||
return mDate.toDate();
|
return mDate.toDate();
|
||||||
}
|
}
|
||||||
|
|
||||||
const endTime = moment(prevTime);
|
let endTime = dayjs(prevTime);
|
||||||
const duration = parseDuration(str);
|
const [durationValue, durationUnit] = parseDuration(str);
|
||||||
if (duration.isValid()) {
|
if (!Number.isNaN(durationValue)) {
|
||||||
endTime.add(duration);
|
const newEndTime = endTime.add(durationValue, durationUnit);
|
||||||
|
if (newEndTime.isValid()) {
|
||||||
|
endTime = newEndTime;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return endTime.toDate();
|
return endTime.toDate();
|
||||||
};
|
};
|
||||||
@ -346,7 +399,7 @@ const compileData = function (prevTask, dataStr) {
|
|||||||
|
|
||||||
if (endTimeData) {
|
if (endTimeData) {
|
||||||
task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
|
task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
|
||||||
task.manualEndTime = moment(endTimeData, 'YYYY-MM-DD', true).isValid();
|
task.manualEndTime = dayjs(endTimeData, 'YYYY-MM-DD', true).isValid();
|
||||||
checkTaskDates(task, dateFormat, excludes, includes);
|
checkTaskDates(task, dateFormat, excludes, includes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -496,7 +549,7 @@ const compileTasks = function () {
|
|||||||
);
|
);
|
||||||
if (rawTasks[pos].endTime) {
|
if (rawTasks[pos].endTime) {
|
||||||
rawTasks[pos].processed = true;
|
rawTasks[pos].processed = true;
|
||||||
rawTasks[pos].manualEndTime = moment(
|
rawTasks[pos].manualEndTime = dayjs(
|
||||||
rawTasks[pos].raw.endTime.data,
|
rawTasks[pos].raw.endTime.data,
|
||||||
'YYYY-MM-DD',
|
'YYYY-MM-DD',
|
||||||
true
|
true
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// @ts-nocheck TODO: Fix TS
|
// @ts-nocheck TODO: Fix TS
|
||||||
import moment from 'moment-mini';
|
import dayjs from 'dayjs';
|
||||||
import ganttDb from './ganttDb';
|
import ganttDb from './ganttDb';
|
||||||
import { convert } from '../../tests/util';
|
import { convert } from '../../tests/util';
|
||||||
|
|
||||||
@ -9,7 +9,7 @@ describe('when using the ganttDb', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('when using duration', function () {
|
describe('when using duration', function () {
|
||||||
it.each([{ str: '1d', expected: moment.duration(1, 'd') }])(
|
it.each([{ str: '1d', expected: [1, 'd'] }])(
|
||||||
'should %s resulting in $o duration',
|
'should %s resulting in $o duration',
|
||||||
({ str, expected }) => {
|
({ str, expected }) => {
|
||||||
expect(ganttDb.parseDuration(str)).toEqual(expected);
|
expect(ganttDb.parseDuration(str)).toEqual(expected);
|
||||||
@ -19,11 +19,11 @@ describe('when using the ganttDb', function () {
|
|||||||
it.each(
|
it.each(
|
||||||
convert`
|
convert`
|
||||||
str | expected
|
str | expected
|
||||||
${'1d'} | ${moment.duration(1, 'd')}
|
${'1d'} | ${[1, 'd']}
|
||||||
${'2w'} | ${moment.duration(2, 'w')}
|
${'2w'} | ${[2, 'w']}
|
||||||
${'1ms'} | ${moment.duration(1, 'ms')}
|
${'1ms'} | ${[1, 'ms']}
|
||||||
${'0.1s'} | ${moment.duration(100, 'ms')}
|
${'0.1s'} | ${[0.1, 's']}
|
||||||
${'1f'} | ${moment.duration.invalid()}
|
${'1f'} | ${[NaN, 'ms']}
|
||||||
`
|
`
|
||||||
)('should $str resulting in $expected duration', ({ str, expected }) => {
|
)('should $str resulting in $expected duration', ({ str, expected }) => {
|
||||||
expect(ganttDb.parseDuration(str)).toEqual(expected);
|
expect(ganttDb.parseDuration(str)).toEqual(expected);
|
||||||
@ -171,44 +171,44 @@ describe('when using the ganttDb', function () {
|
|||||||
|
|
||||||
const tasks = ganttDb.getTasks();
|
const tasks = ganttDb.getTasks();
|
||||||
|
|
||||||
expect(tasks[0].startTime).toEqual(moment('2019-02-01', 'YYYY-MM-DD').toDate());
|
expect(tasks[0].startTime).toEqual(dayjs('2019-02-01', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[0].endTime).toEqual(moment('2019-02-04', 'YYYY-MM-DD').toDate());
|
expect(tasks[0].endTime).toEqual(dayjs('2019-02-04', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[0].renderEndTime).toEqual(moment('2019-02-02', 'YYYY-MM-DD').toDate());
|
expect(tasks[0].renderEndTime).toEqual(dayjs('2019-02-02', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[0].id).toEqual('id1');
|
expect(tasks[0].id).toEqual('id1');
|
||||||
expect(tasks[0].task).toEqual('test1');
|
expect(tasks[0].task).toEqual('test1');
|
||||||
|
|
||||||
expect(tasks[1].startTime).toEqual(moment('2019-02-04', 'YYYY-MM-DD').toDate());
|
expect(tasks[1].startTime).toEqual(dayjs('2019-02-04', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[1].endTime).toEqual(moment('2019-02-07', 'YYYY-MM-DD').toDate());
|
expect(tasks[1].endTime).toEqual(dayjs('2019-02-07', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[1].renderEndTime).toEqual(moment('2019-02-06', 'YYYY-MM-DD').toDate());
|
expect(tasks[1].renderEndTime).toEqual(dayjs('2019-02-06', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[1].id).toEqual('id2');
|
expect(tasks[1].id).toEqual('id2');
|
||||||
expect(tasks[1].task).toEqual('test2');
|
expect(tasks[1].task).toEqual('test2');
|
||||||
|
|
||||||
expect(tasks[2].startTime).toEqual(moment('2019-02-07', 'YYYY-MM-DD').toDate());
|
expect(tasks[2].startTime).toEqual(dayjs('2019-02-07', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[2].endTime).toEqual(moment('2019-02-20', 'YYYY-MM-DD').toDate());
|
expect(tasks[2].endTime).toEqual(dayjs('2019-02-20', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[2].renderEndTime).toEqual(moment('2019-02-20', 'YYYY-MM-DD').toDate());
|
expect(tasks[2].renderEndTime).toEqual(dayjs('2019-02-20', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[2].id).toEqual('id3');
|
expect(tasks[2].id).toEqual('id3');
|
||||||
expect(tasks[2].task).toEqual('test3');
|
expect(tasks[2].task).toEqual('test3');
|
||||||
|
|
||||||
expect(tasks[3].startTime).toEqual(moment('2019-02-01', 'YYYY-MM-DD').toDate());
|
expect(tasks[3].startTime).toEqual(dayjs('2019-02-01', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[3].endTime).toEqual(moment('2019-02-20', 'YYYY-MM-DD').toDate());
|
expect(tasks[3].endTime).toEqual(dayjs('2019-02-20', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[3].renderEndTime).toBeNull(); // Fixed end
|
expect(tasks[3].renderEndTime).toBeNull(); // Fixed end
|
||||||
expect(tasks[3].id).toEqual('id4');
|
expect(tasks[3].id).toEqual('id4');
|
||||||
expect(tasks[3].task).toEqual('test4');
|
expect(tasks[3].task).toEqual('test4');
|
||||||
|
|
||||||
expect(tasks[4].startTime).toEqual(moment('2019-02-20', 'YYYY-MM-DD').toDate());
|
expect(tasks[4].startTime).toEqual(dayjs('2019-02-20', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[4].endTime).toEqual(moment('2019-02-21', 'YYYY-MM-DD').toDate());
|
expect(tasks[4].endTime).toEqual(dayjs('2019-02-21', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[4].renderEndTime).toEqual(moment('2019-02-21', 'YYYY-MM-DD').toDate());
|
expect(tasks[4].renderEndTime).toEqual(dayjs('2019-02-21', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[4].id).toEqual('id5');
|
expect(tasks[4].id).toEqual('id5');
|
||||||
expect(tasks[4].task).toEqual('test5');
|
expect(tasks[4].task).toEqual('test5');
|
||||||
|
|
||||||
expect(tasks[5].startTime).toEqual(moment('2019-02-13', 'YYYY-MM-DD').toDate());
|
expect(tasks[5].startTime).toEqual(dayjs('2019-02-13', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[5].endTime).toEqual(moment('2019-02-18', 'YYYY-MM-DD').toDate());
|
expect(tasks[5].endTime).toEqual(dayjs('2019-02-18', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[5].renderEndTime).toEqual(moment('2019-02-15', 'YYYY-MM-DD').toDate());
|
expect(tasks[5].renderEndTime).toEqual(dayjs('2019-02-15', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[5].id).toEqual('id6');
|
expect(tasks[5].id).toEqual('id6');
|
||||||
expect(tasks[5].task).toEqual('test6');
|
expect(tasks[5].task).toEqual('test6');
|
||||||
|
|
||||||
expect(tasks[6].startTime).toEqual(moment('2019-02-18', 'YYYY-MM-DD').toDate());
|
expect(tasks[6].startTime).toEqual(dayjs('2019-02-18', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[6].endTime).toEqual(moment('2019-02-19', 'YYYY-MM-DD').toDate());
|
expect(tasks[6].endTime).toEqual(dayjs('2019-02-19', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[6].id).toEqual('id7');
|
expect(tasks[6].id).toEqual('id7');
|
||||||
expect(tasks[6].task).toEqual('test7');
|
expect(tasks[6].task).toEqual('test7');
|
||||||
});
|
});
|
||||||
@ -243,109 +243,103 @@ describe('when using the ganttDb', function () {
|
|||||||
const tasks = ganttDb.getTasks();
|
const tasks = ganttDb.getTasks();
|
||||||
|
|
||||||
// Section - A section
|
// Section - A section
|
||||||
expect(tasks[0].startTime).toEqual(moment('2014-01-06', 'YYYY-MM-DD').toDate());
|
expect(tasks[0].startTime).toEqual(dayjs('2014-01-06', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[0].endTime).toEqual(moment('2014-01-08', 'YYYY-MM-DD').toDate());
|
expect(tasks[0].endTime).toEqual(dayjs('2014-01-08', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[0].order).toEqual(0);
|
expect(tasks[0].order).toEqual(0);
|
||||||
expect(tasks[0].id).toEqual('des1');
|
expect(tasks[0].id).toEqual('des1');
|
||||||
expect(tasks[0].task).toEqual('Completed task');
|
expect(tasks[0].task).toEqual('Completed task');
|
||||||
|
|
||||||
expect(tasks[1].startTime).toEqual(moment('2014-01-09', 'YYYY-MM-DD').toDate());
|
expect(tasks[1].startTime).toEqual(dayjs('2014-01-09', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[1].endTime).toEqual(moment('2014-01-12', 'YYYY-MM-DD').toDate());
|
expect(tasks[1].endTime).toEqual(dayjs('2014-01-12', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[1].order).toEqual(1);
|
expect(tasks[1].order).toEqual(1);
|
||||||
expect(tasks[1].id).toEqual('des2');
|
expect(tasks[1].id).toEqual('des2');
|
||||||
expect(tasks[1].task).toEqual('Active task');
|
expect(tasks[1].task).toEqual('Active task');
|
||||||
|
|
||||||
expect(tasks[2].startTime).toEqual(moment('2014-01-12', 'YYYY-MM-DD').toDate());
|
expect(tasks[2].startTime).toEqual(dayjs('2014-01-12', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[2].endTime).toEqual(moment('2014-01-17', 'YYYY-MM-DD').toDate());
|
expect(tasks[2].endTime).toEqual(dayjs('2014-01-17', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[2].order).toEqual(2);
|
expect(tasks[2].order).toEqual(2);
|
||||||
expect(tasks[2].id).toEqual('des3');
|
expect(tasks[2].id).toEqual('des3');
|
||||||
expect(tasks[2].task).toEqual('Future task');
|
expect(tasks[2].task).toEqual('Future task');
|
||||||
|
|
||||||
expect(tasks[3].startTime).toEqual(moment('2014-01-17', 'YYYY-MM-DD').toDate());
|
expect(tasks[3].startTime).toEqual(dayjs('2014-01-17', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[3].endTime).toEqual(moment('2014-01-22', 'YYYY-MM-DD').toDate());
|
expect(tasks[3].endTime).toEqual(dayjs('2014-01-22', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[3].order).toEqual(3);
|
expect(tasks[3].order).toEqual(3);
|
||||||
expect(tasks[3].id).toEqual('des4');
|
expect(tasks[3].id).toEqual('des4');
|
||||||
expect(tasks[3].task).toEqual('Future task2');
|
expect(tasks[3].task).toEqual('Future task2');
|
||||||
|
|
||||||
// Section - Critical tasks
|
// Section - Critical tasks
|
||||||
expect(tasks[4].startTime).toEqual(moment('2014-01-06', 'YYYY-MM-DD').toDate());
|
expect(tasks[4].startTime).toEqual(dayjs('2014-01-06', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[4].endTime).toEqual(moment('2014-01-07', 'YYYY-MM-DD').toDate());
|
expect(tasks[4].endTime).toEqual(dayjs('2014-01-07', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[4].order).toEqual(4);
|
expect(tasks[4].order).toEqual(4);
|
||||||
expect(tasks[4].id).toEqual('task1');
|
expect(tasks[4].id).toEqual('task1');
|
||||||
expect(tasks[4].task).toEqual('Completed task in the critical line');
|
expect(tasks[4].task).toEqual('Completed task in the critical line');
|
||||||
|
|
||||||
expect(tasks[5].startTime).toEqual(moment('2014-01-08', 'YYYY-MM-DD').toDate());
|
expect(tasks[5].startTime).toEqual(dayjs('2014-01-08', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[5].endTime).toEqual(moment('2014-01-10', 'YYYY-MM-DD').toDate());
|
expect(tasks[5].endTime).toEqual(dayjs('2014-01-10', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[5].order).toEqual(5);
|
expect(tasks[5].order).toEqual(5);
|
||||||
expect(tasks[5].id).toEqual('task2');
|
expect(tasks[5].id).toEqual('task2');
|
||||||
expect(tasks[5].task).toEqual('Implement parser and jison');
|
expect(tasks[5].task).toEqual('Implement parser and jison');
|
||||||
|
|
||||||
expect(tasks[6].startTime).toEqual(moment('2014-01-10', 'YYYY-MM-DD').toDate());
|
expect(tasks[6].startTime).toEqual(dayjs('2014-01-10', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[6].endTime).toEqual(moment('2014-01-13', 'YYYY-MM-DD').toDate());
|
expect(tasks[6].endTime).toEqual(dayjs('2014-01-13', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[6].order).toEqual(6);
|
expect(tasks[6].order).toEqual(6);
|
||||||
expect(tasks[6].id).toEqual('task3');
|
expect(tasks[6].id).toEqual('task3');
|
||||||
expect(tasks[6].task).toEqual('Create tests for parser');
|
expect(tasks[6].task).toEqual('Create tests for parser');
|
||||||
|
|
||||||
expect(tasks[7].startTime).toEqual(moment('2014-01-13', 'YYYY-MM-DD').toDate());
|
expect(tasks[7].startTime).toEqual(dayjs('2014-01-13', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[7].endTime).toEqual(moment('2014-01-18', 'YYYY-MM-DD').toDate());
|
expect(tasks[7].endTime).toEqual(dayjs('2014-01-18', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[7].order).toEqual(7);
|
expect(tasks[7].order).toEqual(7);
|
||||||
expect(tasks[7].id).toEqual('task4');
|
expect(tasks[7].id).toEqual('task4');
|
||||||
expect(tasks[7].task).toEqual('Future task in critical line');
|
expect(tasks[7].task).toEqual('Future task in critical line');
|
||||||
|
|
||||||
expect(tasks[8].startTime).toEqual(moment('2014-01-18', 'YYYY-MM-DD').toDate());
|
expect(tasks[8].startTime).toEqual(dayjs('2014-01-18', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[8].endTime).toEqual(moment('2014-01-20', 'YYYY-MM-DD').toDate());
|
expect(tasks[8].endTime).toEqual(dayjs('2014-01-20', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[8].order).toEqual(8);
|
expect(tasks[8].order).toEqual(8);
|
||||||
expect(tasks[8].id).toEqual('task5');
|
expect(tasks[8].id).toEqual('task5');
|
||||||
expect(tasks[8].task).toEqual('Create tests for renderer');
|
expect(tasks[8].task).toEqual('Create tests for renderer');
|
||||||
|
|
||||||
expect(tasks[9].startTime).toEqual(moment('2014-01-20', 'YYYY-MM-DD').toDate());
|
expect(tasks[9].startTime).toEqual(dayjs('2014-01-20', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[9].endTime).toEqual(moment('2014-01-21', 'YYYY-MM-DD').toDate());
|
expect(tasks[9].endTime).toEqual(dayjs('2014-01-21', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[9].order).toEqual(9);
|
expect(tasks[9].order).toEqual(9);
|
||||||
expect(tasks[9].id).toEqual('task6');
|
expect(tasks[9].id).toEqual('task6');
|
||||||
expect(tasks[9].task).toEqual('Add to mermaid');
|
expect(tasks[9].task).toEqual('Add to mermaid');
|
||||||
|
|
||||||
// Section - Documentation
|
// Section - Documentation
|
||||||
expect(tasks[10].startTime).toEqual(moment('2014-01-08', 'YYYY-MM-DD').toDate());
|
expect(tasks[10].startTime).toEqual(dayjs('2014-01-08', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[10].endTime).toEqual(moment('2014-01-11', 'YYYY-MM-DD').toDate());
|
expect(tasks[10].endTime).toEqual(dayjs('2014-01-11', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[10].order).toEqual(10);
|
expect(tasks[10].order).toEqual(10);
|
||||||
expect(tasks[10].id).toEqual('a1');
|
expect(tasks[10].id).toEqual('a1');
|
||||||
expect(tasks[10].task).toEqual('Describe gantt syntax');
|
expect(tasks[10].task).toEqual('Describe gantt syntax');
|
||||||
|
|
||||||
expect(tasks[11].startTime).toEqual(moment('2014-01-11', 'YYYY-MM-DD').toDate());
|
expect(tasks[11].startTime).toEqual(dayjs('2014-01-11', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[11].endTime).toEqual(
|
expect(tasks[11].endTime).toEqual(dayjs('2014-01-11 20:00:00', 'YYYY-MM-DD HH:mm:ss').toDate());
|
||||||
moment('2014-01-11 20:00:00', 'YYYY-MM-DD HH:mm:ss').toDate()
|
|
||||||
);
|
|
||||||
expect(tasks[11].order).toEqual(11);
|
expect(tasks[11].order).toEqual(11);
|
||||||
expect(tasks[11].id).toEqual('task7');
|
expect(tasks[11].id).toEqual('task7');
|
||||||
expect(tasks[11].task).toEqual('Add gantt diagram to demo page');
|
expect(tasks[11].task).toEqual('Add gantt diagram to demo page');
|
||||||
|
|
||||||
expect(tasks[12].startTime).toEqual(moment('2014-01-11', 'YYYY-MM-DD').toDate());
|
expect(tasks[12].startTime).toEqual(dayjs('2014-01-11', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[12].endTime).toEqual(moment('2014-01-13', 'YYYY-MM-DD').toDate());
|
expect(tasks[12].endTime).toEqual(dayjs('2014-01-13', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[12].order).toEqual(12);
|
expect(tasks[12].order).toEqual(12);
|
||||||
expect(tasks[12].id).toEqual('doc1');
|
expect(tasks[12].id).toEqual('doc1');
|
||||||
expect(tasks[12].task).toEqual('Add another diagram to demo page');
|
expect(tasks[12].task).toEqual('Add another diagram to demo page');
|
||||||
|
|
||||||
// Section - Last section
|
// Section - Last section
|
||||||
expect(tasks[13].startTime).toEqual(moment('2014-01-13', 'YYYY-MM-DD').toDate());
|
expect(tasks[13].startTime).toEqual(dayjs('2014-01-13', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[13].endTime).toEqual(moment('2014-01-16', 'YYYY-MM-DD').toDate());
|
expect(tasks[13].endTime).toEqual(dayjs('2014-01-16', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[13].order).toEqual(13);
|
expect(tasks[13].order).toEqual(13);
|
||||||
expect(tasks[13].id).toEqual('task8');
|
expect(tasks[13].id).toEqual('task8');
|
||||||
expect(tasks[13].task).toEqual('Describe gantt syntax');
|
expect(tasks[13].task).toEqual('Describe gantt syntax');
|
||||||
|
|
||||||
expect(tasks[14].startTime).toEqual(moment('2014-01-16', 'YYYY-MM-DD').toDate());
|
expect(tasks[14].startTime).toEqual(dayjs('2014-01-16', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[14].endTime).toEqual(
|
expect(tasks[14].endTime).toEqual(dayjs('2014-01-16 20:00:00', 'YYYY-MM-DD HH:mm:ss').toDate());
|
||||||
moment('2014-01-16 20:00:00', 'YYYY-MM-DD HH:mm:ss').toDate()
|
|
||||||
);
|
|
||||||
expect(tasks[14].order).toEqual(14);
|
expect(tasks[14].order).toEqual(14);
|
||||||
expect(tasks[14].id).toEqual('task9');
|
expect(tasks[14].id).toEqual('task9');
|
||||||
expect(tasks[14].task).toEqual('Add gantt diagram to demo page');
|
expect(tasks[14].task).toEqual('Add gantt diagram to demo page');
|
||||||
|
|
||||||
expect(tasks[15].startTime).toEqual(
|
expect(tasks[15].startTime).toEqual(
|
||||||
moment('2014-01-16 20:00:00', 'YYYY-MM-DD HH:mm:ss').toDate()
|
dayjs('2014-01-16 20:00:00', 'YYYY-MM-DD HH:mm:ss').toDate()
|
||||||
);
|
|
||||||
expect(tasks[15].endTime).toEqual(
|
|
||||||
moment('2014-01-18 20:00:00', 'YYYY-MM-DD HH:mm:ss').toDate()
|
|
||||||
);
|
);
|
||||||
|
expect(tasks[15].endTime).toEqual(dayjs('2014-01-18 20:00:00', 'YYYY-MM-DD HH:mm:ss').toDate());
|
||||||
expect(tasks[15].order).toEqual(15);
|
expect(tasks[15].order).toEqual(15);
|
||||||
expect(tasks[15].id).toEqual('task10');
|
expect(tasks[15].id).toEqual('task10');
|
||||||
expect(tasks[15].task).toEqual('Add another diagram to demo page');
|
expect(tasks[15].task).toEqual('Add another diagram to demo page');
|
||||||
@ -358,14 +352,14 @@ describe('when using the ganttDb', function () {
|
|||||||
ganttDb.addTask('test2', 'id2,after id1,20d');
|
ganttDb.addTask('test2', 'id2,after id1,20d');
|
||||||
const tasks = ganttDb.getTasks();
|
const tasks = ganttDb.getTasks();
|
||||||
|
|
||||||
expect(tasks[0].startTime).toEqual(moment('2019-09-30', 'YYYY-MM-DD').toDate());
|
expect(tasks[0].startTime).toEqual(dayjs('2019-09-30', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[0].endTime).toEqual(moment('2019-10-11', 'YYYY-MM-DD').toDate());
|
expect(tasks[0].endTime).toEqual(dayjs('2019-10-11', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[1].renderEndTime).toBeNull(); // Fixed end
|
expect(tasks[1].renderEndTime).toBeNull(); // Fixed end
|
||||||
expect(tasks[0].id).toEqual('id1');
|
expect(tasks[0].id).toEqual('id1');
|
||||||
expect(tasks[0].task).toEqual('test1');
|
expect(tasks[0].task).toEqual('test1');
|
||||||
|
|
||||||
expect(tasks[1].startTime).toEqual(moment('2019-10-11', 'YYYY-MM-DD').toDate());
|
expect(tasks[1].startTime).toEqual(dayjs('2019-10-11', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[1].endTime).toEqual(moment('2019-10-31', 'YYYY-MM-DD').toDate());
|
expect(tasks[1].endTime).toEqual(dayjs('2019-10-31', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[1].renderEndTime).toBeNull(); // Fixed end
|
expect(tasks[1].renderEndTime).toBeNull(); // Fixed end
|
||||||
expect(tasks[1].id).toEqual('id2');
|
expect(tasks[1].id).toEqual('id2');
|
||||||
expect(tasks[1].task).toEqual('test2');
|
expect(tasks[1].task).toEqual('test2');
|
||||||
@ -414,13 +408,13 @@ describe('when using the ganttDb', function () {
|
|||||||
});
|
});
|
||||||
it('should automatically add one day to all end dates', function () {
|
it('should automatically add one day to all end dates', function () {
|
||||||
const tasks = ganttDb.getTasks();
|
const tasks = ganttDb.getTasks();
|
||||||
expect(tasks[0].startTime).toEqual(moment('2019-02-01', 'YYYY-MM-DD').toDate());
|
expect(tasks[0].startTime).toEqual(dayjs('2019-02-01', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[0].endTime).toEqual(moment('2019-02-02', 'YYYY-MM-DD').toDate());
|
expect(tasks[0].endTime).toEqual(dayjs('2019-02-02', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[0].id).toEqual('id1');
|
expect(tasks[0].id).toEqual('id1');
|
||||||
expect(tasks[0].task).toEqual('test1');
|
expect(tasks[0].task).toEqual('test1');
|
||||||
|
|
||||||
expect(tasks[1].startTime).toEqual(moment('2019-02-01', 'YYYY-MM-DD').toDate());
|
expect(tasks[1].startTime).toEqual(dayjs('2019-02-01', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[1].endTime).toEqual(moment('2019-02-04', 'YYYY-MM-DD').toDate());
|
expect(tasks[1].endTime).toEqual(dayjs('2019-02-04', 'YYYY-MM-DD').toDate());
|
||||||
expect(tasks[1].renderEndTime).toBeNull(); // Fixed end
|
expect(tasks[1].renderEndTime).toBeNull(); // Fixed end
|
||||||
expect(tasks[1].manualEndTime).toBeTruthy();
|
expect(tasks[1].manualEndTime).toBeTruthy();
|
||||||
expect(tasks[1].id).toEqual('id2');
|
expect(tasks[1].id).toEqual('id2');
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import moment from 'moment-mini';
|
import dayjs from 'dayjs';
|
||||||
import { log } from '../../logger';
|
import { log } from '../../logger';
|
||||||
import {
|
import {
|
||||||
select,
|
select,
|
||||||
@ -435,16 +435,16 @@ export const draw = function (text, id, version, diagObj) {
|
|||||||
|
|
||||||
const excludeRanges = [];
|
const excludeRanges = [];
|
||||||
let range = null;
|
let range = null;
|
||||||
let d = moment(minTime);
|
let d = dayjs(minTime);
|
||||||
while (d.valueOf() <= maxTime) {
|
while (d.valueOf() <= maxTime) {
|
||||||
if (diagObj.db.isInvalidDate(d, dateFormat, excludes, includes)) {
|
if (diagObj.db.isInvalidDate(d, dateFormat, excludes, includes)) {
|
||||||
if (!range) {
|
if (!range) {
|
||||||
range = {
|
range = {
|
||||||
start: d.clone(),
|
start: d,
|
||||||
end: d.clone(),
|
end: d,
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
range.end = d.clone();
|
range.end = d;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (range) {
|
if (range) {
|
||||||
@ -452,7 +452,7 @@ export const draw = function (text, id, version, diagObj) {
|
|||||||
range = null;
|
range = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
d.add(1, 'd');
|
d = d.add(1, 'd');
|
||||||
}
|
}
|
||||||
|
|
||||||
const rectangles = svg.append('g').selectAll('rect').data(excludeRanges).enter();
|
const rectangles = svg.append('g').selectAll('rect').data(excludeRanges).enter();
|
||||||
@ -467,7 +467,7 @@ export const draw = function (text, id, version, diagObj) {
|
|||||||
})
|
})
|
||||||
.attr('y', conf.gridLineStartPadding)
|
.attr('y', conf.gridLineStartPadding)
|
||||||
.attr('width', function (d) {
|
.attr('width', function (d) {
|
||||||
const renderEnd = d.end.clone().add(1, 'day');
|
const renderEnd = d.end.add(1, 'day');
|
||||||
return timeScale(renderEnd) - timeScale(d.start);
|
return timeScale(renderEnd) - timeScale(d.start);
|
||||||
})
|
})
|
||||||
.attr('height', h - theTopPad - conf.gridLineStartPadding)
|
.attr('height', h - theTopPad - conf.gridLineStartPadding)
|
||||||
|
@ -116,7 +116,7 @@ The following formatting options are supported:
|
|||||||
| `YY` | 14 | 2 digit year |
|
| `YY` | 14 | 2 digit year |
|
||||||
| `Q` | 1..4 | Quarter of year. Sets month to first month in quarter. |
|
| `Q` | 1..4 | Quarter of year. Sets month to first month in quarter. |
|
||||||
| `M MM` | 1..12 | Month number |
|
| `M MM` | 1..12 | Month number |
|
||||||
| `MMM MMMM` | January..Dec | Month name in locale set by `moment.locale()` |
|
| `MMM MMMM` | January..Dec | Month name in locale set by `dayjs.locale()` |
|
||||||
| `D DD` | 1..31 | Day of month |
|
| `D DD` | 1..31 | Day of month |
|
||||||
| `Do` | 1st..31st | Day of month with ordinal |
|
| `Do` | 1st..31st | Day of month with ordinal |
|
||||||
| `DDD DDDD` | 1..365 | Day of year |
|
| `DDD DDDD` | 1..365 | Day of year |
|
||||||
@ -132,7 +132,7 @@ The following formatting options are supported:
|
|||||||
| `SSS` | 0..999 | Thousandths of a second |
|
| `SSS` | 0..999 | Thousandths of a second |
|
||||||
| `Z ZZ` | +12:00 | Offset from UTC as +-HH:mm, +-HHmm, or Z |
|
| `Z ZZ` | +12:00 | Offset from UTC as +-HH:mm, +-HHmm, or Z |
|
||||||
|
|
||||||
More info in: https://momentjs.com/docs/#/parsing/string-format/
|
More info in: https://day.js.org/docs/en/parse/string-format/
|
||||||
|
|
||||||
### Output date format on the axis
|
### Output date format on the axis
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||||
/* eslint-disable @typescript-eslint/no-empty-function */
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
import moment from 'moment-mini';
|
import dayjs from 'dayjs';
|
||||||
|
|
||||||
export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
|
export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
|
||||||
|
|
||||||
@ -85,6 +85,6 @@ export const setLogLevel = function (level: keyof typeof LEVELS | number | strin
|
|||||||
* @returns The format with the timestamp and log level
|
* @returns The format with the timestamp and log level
|
||||||
*/
|
*/
|
||||||
const format = (level: Uppercase<LogLevel>): string => {
|
const format = (level: Uppercase<LogLevel>): string => {
|
||||||
const time = moment().format('ss.SSS');
|
const time = dayjs().format('ss.SSS');
|
||||||
return `%c${time} : ${level} : `;
|
return `%c${time} : ${level} : `;
|
||||||
};
|
};
|
||||||
|
@ -7,8 +7,8 @@ Jest code
|
|||||||
```ts
|
```ts
|
||||||
it.each`
|
it.each`
|
||||||
str | expected
|
str | expected
|
||||||
${'1d'} | ${moment.duration(1, 'd')}
|
${'1d'} | ${dayjs.duration(1, 'd')}
|
||||||
${'2w'} | ${moment.duration(2, 'w')}
|
${'2w'} | ${dayjs.duration(2, 'w')}
|
||||||
`('should parse $str to $expected duration', ({ str, expected }) => {
|
`('should parse $str to $expected duration', ({ str, expected }) => {
|
||||||
expect(yourFunction(str)).toEqual(expected);
|
expect(yourFunction(str)).toEqual(expected);
|
||||||
});
|
});
|
||||||
@ -18,8 +18,8 @@ Vitest code
|
|||||||
```ts
|
```ts
|
||||||
it.each(convert`
|
it.each(convert`
|
||||||
str | expected
|
str | expected
|
||||||
${'1d'} | ${moment.duration(1, 'd')}
|
${'1d'} | ${dayjs.duration(1, 'd')}
|
||||||
${'2w'} | ${moment.duration(2, 'w')}
|
${'2w'} | ${dayjs.duration(2, 'w')}
|
||||||
`)('should parse $str to $expected duration', ({ str, expected }) => {
|
`)('should parse $str to $expected duration', ({ str, expected }) => {
|
||||||
expect(yourFunction(str)).toEqual(expected);
|
expect(yourFunction(str)).toEqual(expected);
|
||||||
});
|
});
|
||||||
|
158
pnpm-lock.yaml
generated
158
pnpm-lock.yaml
generated
@ -48,10 +48,10 @@ importers:
|
|||||||
version: 4.2.1
|
version: 4.2.1
|
||||||
'@typescript-eslint/eslint-plugin':
|
'@typescript-eslint/eslint-plugin':
|
||||||
specifier: ^5.48.2
|
specifier: ^5.48.2
|
||||||
version: 5.48.2_azmbqzqvrlvblbdtiwxwvyvjjy
|
version: 5.48.2_iljmjqxcygjq3saipl7gerxpvi
|
||||||
'@typescript-eslint/parser':
|
'@typescript-eslint/parser':
|
||||||
specifier: ^5.48.2
|
specifier: ^5.48.2
|
||||||
version: 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm
|
version: 5.48.2_yygwinqv3a2io74xmwofqb7uka
|
||||||
'@vitest/coverage-c8':
|
'@vitest/coverage-c8':
|
||||||
specifier: ^0.28.4
|
specifier: ^0.28.4
|
||||||
version: 0.28.4_vun5xzxu3tkrssf3erdbijyyki
|
version: 0.28.4_vun5xzxu3tkrssf3erdbijyyki
|
||||||
@ -93,7 +93,7 @@ importers:
|
|||||||
version: 7.1.0
|
version: 7.1.0
|
||||||
eslint-plugin-jest:
|
eslint-plugin-jest:
|
||||||
specifier: ^27.1.5
|
specifier: ^27.1.5
|
||||||
version: 27.1.5_i5clxtuiaceouxhg5syqkw5wwi
|
version: 27.1.5_5rcd23qw3h5vuffwo2owxb3hw4
|
||||||
eslint-plugin-jsdoc:
|
eslint-plugin-jsdoc:
|
||||||
specifier: ^39.6.2
|
specifier: ^39.6.2
|
||||||
version: 39.6.2_eslint@8.32.0
|
version: 39.6.2_eslint@8.32.0
|
||||||
@ -162,10 +162,10 @@ importers:
|
|||||||
version: 1.15.4
|
version: 1.15.4
|
||||||
ts-node:
|
ts-node:
|
||||||
specifier: ^10.9.1
|
specifier: ^10.9.1
|
||||||
version: 10.9.1_w6ufic3jqylcjznzspnj4wjqfe
|
version: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54
|
||||||
typescript:
|
typescript:
|
||||||
specifier: ^4.8.4
|
specifier: ^4.8.4
|
||||||
version: 4.9.5
|
version: 4.8.4
|
||||||
vite:
|
vite:
|
||||||
specifier: ^4.1.1
|
specifier: ^4.1.1
|
||||||
version: 4.1.1_@types+node@18.11.9
|
version: 4.1.1_@types+node@18.11.9
|
||||||
@ -193,6 +193,9 @@ importers:
|
|||||||
dagre-d3-es:
|
dagre-d3-es:
|
||||||
specifier: 7.0.9
|
specifier: 7.0.9
|
||||||
version: 7.0.9
|
version: 7.0.9
|
||||||
|
dayjs:
|
||||||
|
specifier: ^1.11.7
|
||||||
|
version: 1.11.7
|
||||||
dompurify:
|
dompurify:
|
||||||
specifier: 2.4.3
|
specifier: 2.4.3
|
||||||
version: 2.4.3
|
version: 2.4.3
|
||||||
@ -205,9 +208,6 @@ importers:
|
|||||||
lodash-es:
|
lodash-es:
|
||||||
specifier: ^4.17.21
|
specifier: ^4.17.21
|
||||||
version: 4.17.21
|
version: 4.17.21
|
||||||
moment-mini:
|
|
||||||
specifier: ^2.29.4
|
|
||||||
version: 2.29.4
|
|
||||||
non-layered-tidy-tree-layout:
|
non-layered-tidy-tree-layout:
|
||||||
specifier: ^2.0.2
|
specifier: ^2.0.2
|
||||||
version: 2.0.2
|
version: 2.0.2
|
||||||
@ -1266,11 +1266,11 @@ packages:
|
|||||||
'@types/node': 14.18.29
|
'@types/node': 14.18.29
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
cosmiconfig: 7.0.1
|
cosmiconfig: 7.0.1
|
||||||
cosmiconfig-typescript-loader: 4.1.0_2uclxasecupgvdn72amnhmyg7y
|
cosmiconfig-typescript-loader: 4.1.0_nxlrwu45zhpwmwjzs33dzt3ak4
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
resolve-from: 5.0.0
|
resolve-from: 5.0.0
|
||||||
ts-node: 10.9.1_yxpazyh7n5pql7jdaglasgwqki
|
ts-node: 10.9.1_sqjhzn5m3vxyw66a2xhtc43hby
|
||||||
typescript: 4.9.5
|
typescript: 4.8.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- '@swc/core'
|
- '@swc/core'
|
||||||
- '@swc/wasm'
|
- '@swc/wasm'
|
||||||
@ -3087,7 +3087,7 @@ packages:
|
|||||||
/@types/serve-index/1.9.1:
|
/@types/serve-index/1.9.1:
|
||||||
resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==}
|
resolution: {integrity: sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/express': 4.17.14
|
'@types/express': 4.17.17
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/serve-static/1.15.0:
|
/@types/serve-static/1.15.0:
|
||||||
@ -3190,7 +3190,7 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/eslint-plugin/5.48.2_azmbqzqvrlvblbdtiwxwvyvjjy:
|
/@typescript-eslint/eslint-plugin/5.48.2_iljmjqxcygjq3saipl7gerxpvi:
|
||||||
resolution: {integrity: sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==}
|
resolution: {integrity: sha512-sR0Gja9Ky1teIq4qJOl0nC+Tk64/uYdX+mi+5iB//MH8gwyx8e3SOyhEzeLZEFEEfCaLf8KJq+Bd/6je1t+CAg==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -3201,18 +3201,18 @@ packages:
|
|||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/parser': 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm
|
'@typescript-eslint/parser': 5.48.2_yygwinqv3a2io74xmwofqb7uka
|
||||||
'@typescript-eslint/scope-manager': 5.48.2
|
'@typescript-eslint/scope-manager': 5.48.2
|
||||||
'@typescript-eslint/type-utils': 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm
|
'@typescript-eslint/type-utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka
|
||||||
'@typescript-eslint/utils': 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm
|
'@typescript-eslint/utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
eslint: 8.32.0
|
eslint: 8.32.0
|
||||||
ignore: 5.2.0
|
ignore: 5.2.0
|
||||||
natural-compare-lite: 1.4.0
|
natural-compare-lite: 1.4.0
|
||||||
regexpp: 3.2.0
|
regexpp: 3.2.0
|
||||||
semver: 7.3.8
|
semver: 7.3.8
|
||||||
tsutils: 3.21.0_typescript@4.9.5
|
tsutils: 3.21.0_typescript@4.8.4
|
||||||
typescript: 4.9.5
|
typescript: 4.8.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
@ -3237,7 +3237,7 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/parser/5.48.2_et5x32uxl7z5ldub3ye5rhlyqm:
|
/@typescript-eslint/parser/5.48.2_yygwinqv3a2io74xmwofqb7uka:
|
||||||
resolution: {integrity: sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==}
|
resolution: {integrity: sha512-38zMsKsG2sIuM5Oi/olurGwYJXzmtdsHhn5mI/pQogP+BjYVkK5iRazCQ8RGS0V+YLk282uWElN70zAAUmaYHw==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -3249,10 +3249,10 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/scope-manager': 5.48.2
|
'@typescript-eslint/scope-manager': 5.48.2
|
||||||
'@typescript-eslint/types': 5.48.2
|
'@typescript-eslint/types': 5.48.2
|
||||||
'@typescript-eslint/typescript-estree': 5.48.2_typescript@4.9.5
|
'@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
eslint: 8.32.0
|
eslint: 8.32.0
|
||||||
typescript: 4.9.5
|
typescript: 4.8.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
@ -3293,7 +3293,7 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/type-utils/5.48.2_et5x32uxl7z5ldub3ye5rhlyqm:
|
/@typescript-eslint/type-utils/5.48.2_yygwinqv3a2io74xmwofqb7uka:
|
||||||
resolution: {integrity: sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==}
|
resolution: {integrity: sha512-QVWx7J5sPMRiOMJp5dYshPxABRoZV1xbRirqSk8yuIIsu0nvMTZesKErEA3Oix1k+uvsk8Cs8TGJ6kQ0ndAcew==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -3303,12 +3303,12 @@ packages:
|
|||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/typescript-estree': 5.48.2_typescript@4.9.5
|
'@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4
|
||||||
'@typescript-eslint/utils': 5.48.2_et5x32uxl7z5ldub3ye5rhlyqm
|
'@typescript-eslint/utils': 5.48.2_yygwinqv3a2io74xmwofqb7uka
|
||||||
debug: 4.3.4
|
debug: 4.3.4
|
||||||
eslint: 8.32.0
|
eslint: 8.32.0
|
||||||
tsutils: 3.21.0_typescript@4.9.5
|
tsutils: 3.21.0_typescript@4.8.4
|
||||||
typescript: 4.9.5
|
typescript: 4.8.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
@ -3344,28 +3344,7 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/typescript-estree/5.42.1_typescript@4.9.5:
|
/@typescript-eslint/typescript-estree/5.48.2_typescript@4.8.4:
|
||||||
resolution: {integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==}
|
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
||||||
peerDependencies:
|
|
||||||
typescript: '*'
|
|
||||||
peerDependenciesMeta:
|
|
||||||
typescript:
|
|
||||||
optional: true
|
|
||||||
dependencies:
|
|
||||||
'@typescript-eslint/types': 5.42.1
|
|
||||||
'@typescript-eslint/visitor-keys': 5.42.1
|
|
||||||
debug: 4.3.4
|
|
||||||
globby: 11.1.0
|
|
||||||
is-glob: 4.0.3
|
|
||||||
semver: 7.3.8
|
|
||||||
tsutils: 3.21.0_typescript@4.9.5
|
|
||||||
typescript: 4.9.5
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@typescript-eslint/typescript-estree/5.48.2_typescript@4.9.5:
|
|
||||||
resolution: {integrity: sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==}
|
resolution: {integrity: sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -3380,32 +3359,12 @@ packages:
|
|||||||
globby: 11.1.0
|
globby: 11.1.0
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
semver: 7.3.8
|
semver: 7.3.8
|
||||||
tsutils: 3.21.0_typescript@4.9.5
|
tsutils: 3.21.0_typescript@4.8.4
|
||||||
typescript: 4.9.5
|
typescript: 4.8.4
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/utils/5.42.1_et5x32uxl7z5ldub3ye5rhlyqm:
|
|
||||||
resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==}
|
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
|
||||||
peerDependencies:
|
|
||||||
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
|
|
||||||
dependencies:
|
|
||||||
'@types/json-schema': 7.0.11
|
|
||||||
'@types/semver': 7.3.12
|
|
||||||
'@typescript-eslint/scope-manager': 5.42.1
|
|
||||||
'@typescript-eslint/types': 5.42.1
|
|
||||||
'@typescript-eslint/typescript-estree': 5.42.1_typescript@4.9.5
|
|
||||||
eslint: 8.32.0
|
|
||||||
eslint-scope: 5.1.1
|
|
||||||
eslint-utils: 3.0.0_eslint@8.32.0
|
|
||||||
semver: 7.3.8
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
- typescript
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@typescript-eslint/utils/5.42.1_yygwinqv3a2io74xmwofqb7uka:
|
/@typescript-eslint/utils/5.42.1_yygwinqv3a2io74xmwofqb7uka:
|
||||||
resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==}
|
resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
@ -3426,7 +3385,7 @@ packages:
|
|||||||
- typescript
|
- typescript
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@typescript-eslint/utils/5.48.2_et5x32uxl7z5ldub3ye5rhlyqm:
|
/@typescript-eslint/utils/5.48.2_yygwinqv3a2io74xmwofqb7uka:
|
||||||
resolution: {integrity: sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==}
|
resolution: {integrity: sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==}
|
||||||
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -3436,7 +3395,7 @@ packages:
|
|||||||
'@types/semver': 7.3.12
|
'@types/semver': 7.3.12
|
||||||
'@typescript-eslint/scope-manager': 5.48.2
|
'@typescript-eslint/scope-manager': 5.48.2
|
||||||
'@typescript-eslint/types': 5.48.2
|
'@typescript-eslint/types': 5.48.2
|
||||||
'@typescript-eslint/typescript-estree': 5.48.2_typescript@4.9.5
|
'@typescript-eslint/typescript-estree': 5.48.2_typescript@4.8.4
|
||||||
eslint: 8.32.0
|
eslint: 8.32.0
|
||||||
eslint-scope: 5.1.1
|
eslint-scope: 5.1.1
|
||||||
eslint-utils: 3.0.0_eslint@8.32.0
|
eslint-utils: 3.0.0_eslint@8.32.0
|
||||||
@ -5014,7 +4973,7 @@ packages:
|
|||||||
layout-base: 2.0.1
|
layout-base: 2.0.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/cosmiconfig-typescript-loader/4.1.0_2uclxasecupgvdn72amnhmyg7y:
|
/cosmiconfig-typescript-loader/4.1.0_nxlrwu45zhpwmwjzs33dzt3ak4:
|
||||||
resolution: {integrity: sha512-HbWIuR5O+XO5Oj9SZ5bzgrD4nN+rfhrm2PMb0FVx+t+XIvC45n8F0oTNnztXtspWGw0i2IzHaUWFD5LzV1JB4A==}
|
resolution: {integrity: sha512-HbWIuR5O+XO5Oj9SZ5bzgrD4nN+rfhrm2PMb0FVx+t+XIvC45n8F0oTNnztXtspWGw0i2IzHaUWFD5LzV1JB4A==}
|
||||||
engines: {node: '>=12', npm: '>=6'}
|
engines: {node: '>=12', npm: '>=6'}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -5025,8 +4984,8 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 14.18.29
|
'@types/node': 14.18.29
|
||||||
cosmiconfig: 7.0.1
|
cosmiconfig: 7.0.1
|
||||||
ts-node: 10.9.1_yxpazyh7n5pql7jdaglasgwqki
|
ts-node: 10.9.1_sqjhzn5m3vxyw66a2xhtc43hby
|
||||||
typescript: 4.9.5
|
typescript: 4.8.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/cosmiconfig/7.0.1:
|
/cosmiconfig/7.0.1:
|
||||||
@ -5378,7 +5337,7 @@ packages:
|
|||||||
cli-table3: 0.6.3
|
cli-table3: 0.6.3
|
||||||
commander: 5.1.0
|
commander: 5.1.0
|
||||||
common-tags: 1.8.2
|
common-tags: 1.8.2
|
||||||
dayjs: 1.11.5
|
dayjs: 1.11.7
|
||||||
debug: 4.3.4_supports-color@8.1.1
|
debug: 4.3.4_supports-color@8.1.1
|
||||||
enquirer: 2.3.6
|
enquirer: 2.3.6
|
||||||
eventemitter2: 6.4.7
|
eventemitter2: 6.4.7
|
||||||
@ -5718,9 +5677,8 @@ packages:
|
|||||||
engines: {node: '>=0.11'}
|
engines: {node: '>=0.11'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/dayjs/1.11.5:
|
/dayjs/1.11.7:
|
||||||
resolution: {integrity: sha512-CAdX5Q3YW3Gclyo5Vpqkgpj8fSdLQcRuzfX6mC6Phy0nfJ0eGYOeS7m4mt2plDWLAtA4TqTakvbboHvUxfe4iA==}
|
resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==}
|
||||||
dev: true
|
|
||||||
|
|
||||||
/debug/2.6.9:
|
/debug/2.6.9:
|
||||||
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
|
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
|
||||||
@ -6240,7 +6198,7 @@ packages:
|
|||||||
htmlparser2: 8.0.1
|
htmlparser2: 8.0.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/eslint-plugin-jest/27.1.5_i5clxtuiaceouxhg5syqkw5wwi:
|
/eslint-plugin-jest/27.1.5_5rcd23qw3h5vuffwo2owxb3hw4:
|
||||||
resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==}
|
resolution: {integrity: sha512-CK2dekZ5VBdzsOSOH5Fc1rwC+cWXjkcyrmf1RV714nDUDKu+o73TTJiDxpbILG8PtPPpAAl3ywzh5QA7Ft0mjA==}
|
||||||
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -6253,8 +6211,8 @@ packages:
|
|||||||
jest:
|
jest:
|
||||||
optional: true
|
optional: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@typescript-eslint/eslint-plugin': 5.48.2_azmbqzqvrlvblbdtiwxwvyvjjy
|
'@typescript-eslint/eslint-plugin': 5.48.2_iljmjqxcygjq3saipl7gerxpvi
|
||||||
'@typescript-eslint/utils': 5.42.1_et5x32uxl7z5ldub3ye5rhlyqm
|
'@typescript-eslint/utils': 5.42.1_yygwinqv3a2io74xmwofqb7uka
|
||||||
eslint: 8.32.0
|
eslint: 8.32.0
|
||||||
jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi
|
jest: 29.3.1_odkjkoia5xunhxkdrka32ib6vi
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@ -7882,7 +7840,7 @@ packages:
|
|||||||
pretty-format: 29.3.1
|
pretty-format: 29.3.1
|
||||||
slash: 3.0.0
|
slash: 3.0.0
|
||||||
strip-json-comments: 3.1.1
|
strip-json-comments: 3.1.1
|
||||||
ts-node: 10.9.1_w6ufic3jqylcjznzspnj4wjqfe
|
ts-node: 10.9.1_cbe7ovvae6zqfnmtgctpgpys54
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
@ -8259,8 +8217,8 @@ packages:
|
|||||||
'@sideway/pinpoint': 2.0.0
|
'@sideway/pinpoint': 2.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/joi/17.7.1:
|
/joi/17.8.3:
|
||||||
resolution: {integrity: sha512-teoLhIvWE298R6AeJywcjR4sX2hHjB3/xJX4qPjg+gTg+c0mzUDsziYlqPmLomq9gVsfaMcgPaGc7VxtD/9StA==}
|
resolution: {integrity: sha512-q5Fn6Tj/jR8PfrLrx4fpGH4v9qM6o+vDUfD4/3vxxyg34OmKcNqYZ1qn2mpLza96S8tL0p0rIw2gOZX+/cTg9w==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@hapi/hoek': 9.3.0
|
'@hapi/hoek': 9.3.0
|
||||||
'@hapi/topo': 5.1.0
|
'@hapi/topo': 5.1.0
|
||||||
@ -9338,10 +9296,6 @@ packages:
|
|||||||
ufo: 1.0.1
|
ufo: 1.0.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/moment-mini/2.29.4:
|
|
||||||
resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/mri/1.2.0:
|
/mri/1.2.0:
|
||||||
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
|
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
@ -11352,7 +11306,7 @@ packages:
|
|||||||
engines: {node: '>=6.10'}
|
engines: {node: '>=6.10'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/ts-node/10.9.1_w6ufic3jqylcjznzspnj4wjqfe:
|
/ts-node/10.9.1_cbe7ovvae6zqfnmtgctpgpys54:
|
||||||
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
|
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -11378,12 +11332,12 @@ packages:
|
|||||||
create-require: 1.1.1
|
create-require: 1.1.1
|
||||||
diff: 4.0.2
|
diff: 4.0.2
|
||||||
make-error: 1.3.6
|
make-error: 1.3.6
|
||||||
typescript: 4.9.5
|
typescript: 4.8.4
|
||||||
v8-compile-cache-lib: 3.0.1
|
v8-compile-cache-lib: 3.0.1
|
||||||
yn: 3.1.1
|
yn: 3.1.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/ts-node/10.9.1_yxpazyh7n5pql7jdaglasgwqki:
|
/ts-node/10.9.1_sqjhzn5m3vxyw66a2xhtc43hby:
|
||||||
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
|
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -11409,7 +11363,7 @@ packages:
|
|||||||
create-require: 1.1.1
|
create-require: 1.1.1
|
||||||
diff: 4.0.2
|
diff: 4.0.2
|
||||||
make-error: 1.3.6
|
make-error: 1.3.6
|
||||||
typescript: 4.9.5
|
typescript: 4.8.4
|
||||||
v8-compile-cache-lib: 3.0.1
|
v8-compile-cache-lib: 3.0.1
|
||||||
yn: 3.1.1
|
yn: 3.1.1
|
||||||
dev: true
|
dev: true
|
||||||
@ -11432,16 +11386,6 @@ packages:
|
|||||||
typescript: 4.8.4
|
typescript: 4.8.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/tsutils/3.21.0_typescript@4.9.5:
|
|
||||||
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
|
|
||||||
engines: {node: '>= 6'}
|
|
||||||
peerDependencies:
|
|
||||||
typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
|
|
||||||
dependencies:
|
|
||||||
tslib: 1.14.1
|
|
||||||
typescript: 4.9.5
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/tunnel-agent/0.6.0:
|
/tunnel-agent/0.6.0:
|
||||||
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
|
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -11544,12 +11488,6 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/typescript/4.9.5:
|
|
||||||
resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
|
|
||||||
engines: {node: '>=4.2.0'}
|
|
||||||
hasBin: true
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/uc.micro/1.0.6:
|
/uc.micro/1.0.6:
|
||||||
resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
|
resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -12146,7 +12084,7 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
axios: 0.27.2_debug@4.3.4
|
axios: 0.27.2_debug@4.3.4
|
||||||
joi: 17.7.1
|
joi: 17.8.3
|
||||||
lodash: 4.17.21
|
lodash: 4.17.21
|
||||||
minimist: 1.2.8
|
minimist: 1.2.8
|
||||||
rxjs: 7.8.0
|
rxjs: 7.8.0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user